{"id":518,"date":"2022-02-17T17:45:43","date_gmt":"2022-02-17T16:45:43","guid":{"rendered":"https:\/\/www.kehrwasser.com\/blog\/?p=518"},"modified":"2022-02-17T17:45:43","modified_gmt":"2022-02-17T16:45:43","slug":"was-bedeutet-webassembly-fuer-it-projekte","status":"publish","type":"post","link":"https:\/\/www.kehrwasser.com\/blog\/2022\/02\/17\/was-bedeutet-webassembly-fuer-it-projekte\/","title":{"rendered":"Was bedeutet WebAssembly f\u00fcr IT-Projekte?"},"content":{"rendered":"<p>Eine der j\u00fcngsten Entwicklungen in der Weblandschaft ist WebAssembly \u2013 ein Bin\u00e4rformat, das unter Web- und App-Entwicklern l\u00e4ngst in aller Munde ist. V\u00f6llig zu Recht, denn es zeichnet sich ab, dass WebAssembly \u00fcber kurz oder lang neue Ma\u00dfst\u00e4be in der Softwareentwicklung setzen wird. Doch was bedeutet das f\u00fcr zuk\u00fcnftige IT-Projekte?<\/p>\n<h4 class=\"wp-block-heading\">Basics first: Was kann WebAssembly?<\/h4>\n<p>WebAssembly (Wasm) ist eine Low Level Assemblersprache, die nativ in Webbrowsern kompiliert werden kann. Im Vergleich zu JavaScript liegt das Format sehr viel n\u00e4her am Maschinencode und unterscheidet sich in seiner Leistung kaum von nativen Apps. Es l\u00e4uft in allen gro\u00dfen Browsern \u2013 Chrome, Firefox, Safari und Edge \u2013 und ist vom W3C als offizieller Web Standard anerkannt. Das Besondere an WebAssembly ist, dass man in der Regel nicht direkt damit programmiert, sondern dass es als Kompilierziel f\u00fcr andere Sprachen fungiert. Da es bereits im Bin\u00e4rformat vorliegt, erfolgt das Parsing deutlich schneller als bei JavaScript.<\/p>\n<p>Konkret hei\u00dft das: WebAssembly bietet die M\u00f6glichkeit, g\u00e4ngige Hochsprachen (z.B. C, C++, Java, Python) in ein ladezeitoptimiertes Format zu kompilieren, das <em>crossbrowser<\/em> und <em>crossplatform<\/em> Eins\u00e4tze m\u00f6glich macht. Jede Desktop Anwendung, die sich in WebAssembly kompilieren l\u00e4sst, k\u00f6nnen Sie auf diese Weise ohne Leistungseinbu\u00dfen im Browser ausf\u00fchren. Damit dient WebAssembly als ideale Erg\u00e4nzung zu JavaScript, um dessen Overheads auszub\u00fcgeln und auch komplexe, rechenintensive Anwendungen im Browser auszuf\u00fchren.<\/p>\n<h4 class=\"wp-block-heading\">Was bedeutet das f\u00fcr IT-Projekte?<\/h4>\n<p>Seit WebAssembly ist JavaScript nicht mehr einzige Option, um Code f\u00fcr den Browser zu schreiben. Und das hat Folgen: Denn statt sich auf die bisherigen Objektprototypen von JavaScript zu beschr\u00e4nken, haben Entwickler zum ersten Mal <strong>eine Auswahl.<\/strong> Im Grunde k\u00f6nnen Sie jede Funktion Ihrer Anwendung in einer beliebigen Sprache programmieren und diese im Anschluss zu Wasm kompilieren. Voraussetzung ist nat\u00fcrlich, dass die gew\u00e4hlte Sprache \u00fcber einen WebAssembly-Compiler verf\u00fcgt.<\/p>\n<p>Ein weiterer Vorteil von WebAssembly: Sie k\u00f6nnen den Wasm Code wiederverwenden und damit eine Br\u00fccke zwischen C#-Backend (als Beispiel) und JS-Frontend bilden. Wenn Sie Ihre DLL mit WebAssembly als Ziel kompilieren, sparen Sie sich den Schritt sie in JavaScript zu implementieren \u2013 und das <strong>spart Entwicklungszeit.<\/strong><\/p>\n<p>IT-Projekte stehen damit vor ganz neuen Chancen, aber auch Herausforderungen. In Bereichen, in denen die Rechenleistung von JavaScript an ihre Grenzen st\u00f6\u00dft, kann zuk\u00fcnftig mit Wasm gearbeitet werden \u2013 zum Beispiel bei 3D Gaming, Image Editing oder Virtual Reality. Desktop und Mobile Apps, f\u00fcr die bisher keine webbasierte Variante geplant war, k\u00f6nnen mit Wasm problemlos im Browser kompiliert werden. Und ja, das betrifft auch Java Anwendungen und alle anderen \u201eweb-fernen\u201c Sprachen.<\/p>\n<h4 class=\"wp-block-heading\">Wird zuk\u00fcnftig nur noch mit WebAssembly programmiert?<\/h4>\n<p>WebAssembly wurde mit dem prim\u00e4ren Ziel entwickelt, leistungsst\u00e4rkere Webanwendungen zu erm\u00f6glichen. Der Trend hin zu browserbasierten Applikationen wird dadurch nat\u00fcrlich verst\u00e4rkt, denn der Vorteil ist: Web Apps haben ein breiteres Publikum. Gleichzeitig macht WebAssembly die Programmierung solcher Apps effizienter, schneller und g\u00fcnstiger. Da inzwischen alle gro\u00dfen Browser das Format unterst\u00fctzen, ist es eigentlich nur eine Frage der Zeit, bis es sich komplett in der Webentwicklung etabliert hat \u2013 vor allem in jenen Bereichen, wo Performance eine gro\u00dfe, wenn nicht sogar entscheidende Rolle spielt. Wiederum wird es JavaScript nicht ersetzen, allein schon deshalb, weil die Wasm Module mit JavaScript geladen werden. Es ist und bleibt daher eine Erg\u00e4nzung, die die bisherigen bestehenden Grenzen in der Softwareentwicklung ein gro\u00dfes St\u00fcck aufbricht.\u00a0<\/p>\n<h4 class=\"wp-block-heading\">Zusammenfassung<\/h4>\n<p>WebAssembly mag in erster Linie f\u00fcr Performancesteigerungen konzipiert worden sein, doch das Format kann weitaus mehr. Entwicklungsteams, die plattform\u00fcbergreifend oder mit einer Client-Server-Aufteilung arbeiten, profitieren zum Beispiel von k\u00fcrzeren Lieferzeiten und mehr Flexibilit\u00e4t beim Programmieren selbst. So ist man nicht mehr an die lose Typisierung von JavaScript gebunden, sondern kann jede Hochsprache, die in Wasm kompiliert werden kann, f\u00fcr die gew\u00fcnschten Funktionen nutzen \u2013 von Rust und C bis hin zu Java. Das Web von morgen wird Apps der Desktop-Klasse mit nativer Leistung ausf\u00fchren, und WebAssembly macht es m\u00f6glich.<\/p>","protected":false},"excerpt":{"rendered":"<p>Eine der j\u00fcngsten Entwicklungen in der Weblandschaft ist WebAssembly \u2013 ein Bin\u00e4rformat, das unter Web- und App-Entwicklern l\u00e4ngst in aller Munde ist. V\u00f6llig zu Recht, denn es zeichnet sich ab, dass WebAssembly \u00fcber kurz oder lang neue Ma\u00dfst\u00e4be in der Softwareentwicklung setzen wird. Doch was bedeutet das f\u00fcr zuk\u00fcnftige IT-Projekte? Basics first: Was kann WebAssembly? [&hellip;]<\/p>","protected":false},"author":7,"featured_media":519,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[42],"tags":[72,121,101,143,144],"class_list":["post-518","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technologien","tag-appentwicklung","tag-code","tag-programmierung","tag-webassembly","tag-webentwicklung"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Was bedeutet WebAssembly f\u00fcr IT-Projekte? - Looped Learning<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.kehrwasser.com\/blog\/2022\/02\/17\/was-bedeutet-webassembly-fuer-it-projekte\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Was bedeutet WebAssembly f\u00fcr IT-Projekte? - Looped Learning\" \/>\n<meta property=\"og:description\" content=\"Eine der j\u00fcngsten Entwicklungen in der Weblandschaft ist WebAssembly \u2013 ein Bin\u00e4rformat, das unter Web- und App-Entwicklern l\u00e4ngst in aller Munde ist. V\u00f6llig zu Recht, denn es zeichnet sich ab, dass WebAssembly \u00fcber kurz oder lang neue Ma\u00dfst\u00e4be in der Softwareentwicklung setzen wird. Doch was bedeutet das f\u00fcr zuk\u00fcnftige IT-Projekte? Basics first: Was kann WebAssembly? [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.kehrwasser.com\/blog\/2022\/02\/17\/was-bedeutet-webassembly-fuer-it-projekte\/\" \/>\n<meta property=\"og:site_name\" content=\"Looped Learning\" \/>\n<meta property=\"article:published_time\" content=\"2022-02-17T16:45:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.kehrwasser.com\/blog\/wp-content\/uploads\/2022\/02\/pexels-negative-space-169573-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1707\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Florian Kastner\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Florian Kastner\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"3\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.kehrwasser.com\/blog\/2022\/02\/17\/was-bedeutet-webassembly-fuer-it-projekte\/\",\"url\":\"https:\/\/www.kehrwasser.com\/blog\/2022\/02\/17\/was-bedeutet-webassembly-fuer-it-projekte\/\",\"name\":\"Was bedeutet WebAssembly f\u00fcr IT-Projekte? - Looped Learning\",\"isPartOf\":{\"@id\":\"https:\/\/www.kehrwasser.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.kehrwasser.com\/blog\/2022\/02\/17\/was-bedeutet-webassembly-fuer-it-projekte\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.kehrwasser.com\/blog\/2022\/02\/17\/was-bedeutet-webassembly-fuer-it-projekte\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/www.kehrwasser.com\/blog\/wp-content\/uploads\/2022\/02\/pexels-negative-space-169573-scaled.jpg?fit=2560%2C1707&ssl=1\",\"datePublished\":\"2022-02-17T16:45:43+00:00\",\"author\":{\"@id\":\"https:\/\/www.kehrwasser.com\/blog\/#\/schema\/person\/8eb5df6fda44e11f99b648c67503ad7a\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.kehrwasser.com\/blog\/2022\/02\/17\/was-bedeutet-webassembly-fuer-it-projekte\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.kehrwasser.com\/blog\/2022\/02\/17\/was-bedeutet-webassembly-fuer-it-projekte\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/www.kehrwasser.com\/blog\/2022\/02\/17\/was-bedeutet-webassembly-fuer-it-projekte\/#primaryimage\",\"url\":\"https:\/\/i0.wp.com\/www.kehrwasser.com\/blog\/wp-content\/uploads\/2022\/02\/pexels-negative-space-169573-scaled.jpg?fit=2560%2C1707&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/www.kehrwasser.com\/blog\/wp-content\/uploads\/2022\/02\/pexels-negative-space-169573-scaled.jpg?fit=2560%2C1707&ssl=1\",\"width\":2560,\"height\":1707},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.kehrwasser.com\/blog\/2022\/02\/17\/was-bedeutet-webassembly-fuer-it-projekte\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\/\/www.kehrwasser.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Was bedeutet WebAssembly f\u00fcr IT-Projekte?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.kehrwasser.com\/blog\/#website\",\"url\":\"https:\/\/www.kehrwasser.com\/blog\/\",\"name\":\"Looped Learning\",\"description\":\"#innovation, #ki, #newWork, #agile, #validatedLearning\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.kehrwasser.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.kehrwasser.com\/blog\/#\/schema\/person\/8eb5df6fda44e11f99b648c67503ad7a\",\"name\":\"Florian Kastner\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/www.kehrwasser.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/51c32ef128ab9aa347d039481bd03fc247cdfbc3070ac84ffa7aabf609fb76c7?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/51c32ef128ab9aa347d039481bd03fc247cdfbc3070ac84ffa7aabf609fb76c7?s=96&d=mm&r=g\",\"caption\":\"Florian Kastner\"},\"url\":\"https:\/\/www.kehrwasser.com\/blog\/author\/kw-florian-kastner\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Was bedeutet WebAssembly f\u00fcr IT-Projekte? - Looped Learning","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.kehrwasser.com\/blog\/2022\/02\/17\/was-bedeutet-webassembly-fuer-it-projekte\/","og_locale":"de_DE","og_type":"article","og_title":"Was bedeutet WebAssembly f\u00fcr IT-Projekte? - Looped Learning","og_description":"Eine der j\u00fcngsten Entwicklungen in der Weblandschaft ist WebAssembly \u2013 ein Bin\u00e4rformat, das unter Web- und App-Entwicklern l\u00e4ngst in aller Munde ist. V\u00f6llig zu Recht, denn es zeichnet sich ab, dass WebAssembly \u00fcber kurz oder lang neue Ma\u00dfst\u00e4be in der Softwareentwicklung setzen wird. Doch was bedeutet das f\u00fcr zuk\u00fcnftige IT-Projekte? Basics first: Was kann WebAssembly? [&hellip;]","og_url":"https:\/\/www.kehrwasser.com\/blog\/2022\/02\/17\/was-bedeutet-webassembly-fuer-it-projekte\/","og_site_name":"Looped Learning","article_published_time":"2022-02-17T16:45:43+00:00","og_image":[{"width":2560,"height":1707,"url":"https:\/\/www.kehrwasser.com\/blog\/wp-content\/uploads\/2022\/02\/pexels-negative-space-169573-scaled.jpg","type":"image\/jpeg"}],"author":"Florian Kastner","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Florian Kastner","Gesch\u00e4tzte Lesezeit":"3\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.kehrwasser.com\/blog\/2022\/02\/17\/was-bedeutet-webassembly-fuer-it-projekte\/","url":"https:\/\/www.kehrwasser.com\/blog\/2022\/02\/17\/was-bedeutet-webassembly-fuer-it-projekte\/","name":"Was bedeutet WebAssembly f\u00fcr IT-Projekte? - Looped Learning","isPartOf":{"@id":"https:\/\/www.kehrwasser.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.kehrwasser.com\/blog\/2022\/02\/17\/was-bedeutet-webassembly-fuer-it-projekte\/#primaryimage"},"image":{"@id":"https:\/\/www.kehrwasser.com\/blog\/2022\/02\/17\/was-bedeutet-webassembly-fuer-it-projekte\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.kehrwasser.com\/blog\/wp-content\/uploads\/2022\/02\/pexels-negative-space-169573-scaled.jpg?fit=2560%2C1707&ssl=1","datePublished":"2022-02-17T16:45:43+00:00","author":{"@id":"https:\/\/www.kehrwasser.com\/blog\/#\/schema\/person\/8eb5df6fda44e11f99b648c67503ad7a"},"breadcrumb":{"@id":"https:\/\/www.kehrwasser.com\/blog\/2022\/02\/17\/was-bedeutet-webassembly-fuer-it-projekte\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.kehrwasser.com\/blog\/2022\/02\/17\/was-bedeutet-webassembly-fuer-it-projekte\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.kehrwasser.com\/blog\/2022\/02\/17\/was-bedeutet-webassembly-fuer-it-projekte\/#primaryimage","url":"https:\/\/i0.wp.com\/www.kehrwasser.com\/blog\/wp-content\/uploads\/2022\/02\/pexels-negative-space-169573-scaled.jpg?fit=2560%2C1707&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.kehrwasser.com\/blog\/wp-content\/uploads\/2022\/02\/pexels-negative-space-169573-scaled.jpg?fit=2560%2C1707&ssl=1","width":2560,"height":1707},{"@type":"BreadcrumbList","@id":"https:\/\/www.kehrwasser.com\/blog\/2022\/02\/17\/was-bedeutet-webassembly-fuer-it-projekte\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/www.kehrwasser.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Was bedeutet WebAssembly f\u00fcr IT-Projekte?"}]},{"@type":"WebSite","@id":"https:\/\/www.kehrwasser.com\/blog\/#website","url":"https:\/\/www.kehrwasser.com\/blog\/","name":"Looped Learning","description":"#innovation, #ki, #newWork, #agile, #validatedLearning","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.kehrwasser.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/www.kehrwasser.com\/blog\/#\/schema\/person\/8eb5df6fda44e11f99b648c67503ad7a","name":"Florian Kastner","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.kehrwasser.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/51c32ef128ab9aa347d039481bd03fc247cdfbc3070ac84ffa7aabf609fb76c7?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/51c32ef128ab9aa347d039481bd03fc247cdfbc3070ac84ffa7aabf609fb76c7?s=96&d=mm&r=g","caption":"Florian Kastner"},"url":"https:\/\/www.kehrwasser.com\/blog\/author\/kw-florian-kastner\/"}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.kehrwasser.com\/blog\/wp-content\/uploads\/2022\/02\/pexels-negative-space-169573-scaled.jpg?fit=2560%2C1707&ssl=1","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.kehrwasser.com\/blog\/wp-json\/wp\/v2\/posts\/518","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kehrwasser.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kehrwasser.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kehrwasser.com\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kehrwasser.com\/blog\/wp-json\/wp\/v2\/comments?post=518"}],"version-history":[{"count":1,"href":"https:\/\/www.kehrwasser.com\/blog\/wp-json\/wp\/v2\/posts\/518\/revisions"}],"predecessor-version":[{"id":520,"href":"https:\/\/www.kehrwasser.com\/blog\/wp-json\/wp\/v2\/posts\/518\/revisions\/520"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kehrwasser.com\/blog\/wp-json\/wp\/v2\/media\/519"}],"wp:attachment":[{"href":"https:\/\/www.kehrwasser.com\/blog\/wp-json\/wp\/v2\/media?parent=518"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kehrwasser.com\/blog\/wp-json\/wp\/v2\/categories?post=518"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kehrwasser.com\/blog\/wp-json\/wp\/v2\/tags?post=518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}