{"id":1860,"date":"2024-06-19T09:39:52","date_gmt":"2024-06-19T09:39:52","guid":{"rendered":"https:\/\/research.swissdigitization.ch\/?p=1860"},"modified":"2024-06-19T09:51:10","modified_gmt":"2024-06-19T09:51:10","slug":"applets-sind-da-programmierung-mit-events-1996-erfahrungsbericht","status":"publish","type":"post","link":"https:\/\/research.swissdigitization.ch\/?p=1860","title":{"rendered":"Applets (VM) sind da &#8211; Programmierung mit Events &#8211; 1996+ [Erfahrungsbericht]"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"577\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2024\/06\/1669047243551-1024x577.png\" alt=\"\" class=\"wp-image-1868\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2024\/06\/1669047243551-1024x577.png 1024w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2024\/06\/1669047243551-300x169.png 300w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2024\/06\/1669047243551-768x433.png 768w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2024\/06\/1669047243551-624x352.png 624w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2024\/06\/1669047243551.png 1277w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p id=\"block-11f1f4ea-8ddb-45f1-97d1-350d54c7df5d\">\/\/ <a href=\"https:\/\/www.linkedin.com\/pulse\/key-dates-java-history-interlogic\/\">https:\/\/www.linkedin.com\/pulse\/key-dates-java-history-interlogic\/<\/a><\/p>\n\n\n\n<p id=\"block-18b7d752-dbff-419c-a853-da0ff814906e\">Und da waren sie da, die Elemente in HTML-Seiten, die man programmieren konnte: Java-Applet. Ungeheuerlich. Statt statischem Inhalt (Javascript damals 1995+ .-) konnte man hier richtig programmieren und zwar alles: von Grafik bis Sound.<\/p>\n\n\n\n<p id=\"block-bba0c9dc-6bcf-4b23-bbb4-4f3f980d8b5c\">Die ersten Schritte aber sind frustrierend, warum funktioniert das Ganze nicht wie gedacht. Man erstellt einen Loop und will darin animieren. Keine Chance, irgendwas Komisches passierte.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p id=\"block-6fb313a7-1d4b-4033-be67-90bd9e3ea4b0\">Dies geht so lange, bis man begreift, dass sich gerade ein Paradigma gewechselt hat. Statt einem einzigen Gameloop, wo alles drin l\u00e4uft, programmiert man hier in Events und teilt das Ganze auf:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"211\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2024\/06\/Bildschirmfoto-2024-06-19-um-11.32.19-1024x211.png\" alt=\"\" class=\"wp-image-1861\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2024\/06\/Bildschirmfoto-2024-06-19-um-11.32.19-1024x211.png 1024w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2024\/06\/Bildschirmfoto-2024-06-19-um-11.32.19-300x62.png 300w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2024\/06\/Bildschirmfoto-2024-06-19-um-11.32.19-768x158.png 768w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2024\/06\/Bildschirmfoto-2024-06-19-um-11.32.19-1536x317.png 1536w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2024\/06\/Bildschirmfoto-2024-06-19-um-11.32.19-624x129.png 624w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2024\/06\/Bildschirmfoto-2024-06-19-um-11.32.19.png 1890w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p id=\"block-2db0dfc6-5442-430f-a1e4-569616b7a15d\">\/\/ <a href=\"https:\/\/de.wikipedia.org\/wiki\/Java-Applet\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/de.wikipedia.org\/wiki\/Java-Applet<\/a><\/p>\n\n\n\n<p id=\"block-d56fbc97-5cd6-4bb1-872d-8b0522538425\">Java und mit ihnen die Applets hatten die vorher hardwaregebundene Programmierung entkoppelt und virtualisiert oder anders gesagt &#8222;eventisiert&#8220;. Statt einem endlosen Loop nun ein Event. Man musste also den gesamten Loop Splitten und damit pro Frame ausf\u00fchrbar machen.<\/p>\n\n\n\n<p>Die Sprache Java \u00fcbernahm mit ihrem Garbage Collector (meist) auch das Releasen und Freigeben von Speicher f\u00fcr Variabeln und Co. <\/p>\n\n\n\n<p id=\"block-bd5f6640-0f9e-4ca5-a03e-15ac1e14f9f9\">Das ist eigentlich bis heute so geblieben. Damit endete die letzte Art von Kontrolle und damit der Maschine und der Vollzugriff. Die Virtualisierung erm\u00f6glichte nun mehr und gleichzeitig weniger: Pixelperfect war endg\u00fcltig am Ende gerade im Gamebereich.<br><br>Damit war auch gemeint: Dynamische GUIs wie <a href=\"https:\/\/en.wikipedia.org\/wiki\/Abstract_Window_Toolkit\">AWT<\/a> waren ganz was anderes als fixe Bildschirme und Co. <br><br>Alles wurde virtuell.<\/p>\n\n\n\n<p>Doch Microsoft (der Hardware based Konzern schlechthin) wollte da nicht mitmachen und hat letztlich die Innovation abgew\u00fcrgt mit dem Versuch zumindest das Web-Java selbst umzudeuten. Mit massivem Erfolg, das dann letztlich den Aufstieg von Flash so richtig m\u00f6glich machte.<\/p>\n\n\n\n<p>Netscape hat dabei verloren und ihr Spruch: &#8222;Wir werden Windows zu einem Ger\u00e4tetreiber&#8220; machen ging nie in Erf\u00fcllung bis heute. <\/p>\n\n\n\n<p>\/\/ ToDo: In Applets umgesetzte Software &#8211; Breoid &#8211; Arkanoid mit Editor, Diverse Chats, viele Prototypen Games, ein Schuh-Preview Tool &#8211; wo man sah welche Stoffe wie aussahen und ???<br>\/\/ ToDo: Nicht monetarisierbare Applets<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\/\/ https:\/\/www.linkedin.com\/pulse\/key-dates-java-history-interlogic\/ Und da waren sie da, die Elemente in HTML-Seiten, die man programmieren konnte: Java-Applet. Ungeheuerlich. Statt statischem Inhalt (Javascript damals 1995+ .-) konnte man hier richtig programmieren und zwar alles: von Grafik bis Sound. Die ersten Schritte aber sind frustrierend, warum funktioniert das Ganze nicht wie gedacht. Man erstellt einen Loop und will [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1860","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/posts\/1860","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1860"}],"version-history":[{"count":7,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/posts\/1860\/revisions"}],"predecessor-version":[{"id":1870,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/posts\/1860\/revisions\/1870"}],"wp:attachment":[{"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1860"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1860"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1860"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}