<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Apache Archive - CEOsBay</title>
	<atom:link href="https://ceosbay.com/tag/apache/feed/" rel="self" type="application/rss+xml" />
	<link>https://ceosbay.com/tag/apache/</link>
	<description>It&#039;s all about Tech</description>
	<lastBuildDate>Wed, 06 Sep 2023 09:35:48 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://i0.wp.com/ceosbay.com/wp-content/uploads/2022/11/image.jpg?fit=32%2C32&#038;ssl=1</url>
	<title>Apache Archive - CEOsBay</title>
	<link>https://ceosbay.com/tag/apache/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">211828771</site>	<item>
		<title>Let’s Encrypt &#8211; Der offene Rechteanbieter</title>
		<link>https://ceosbay.com/2023/09/01/lets-encrypt-der-offene-rechteanbieter/</link>
					<comments>https://ceosbay.com/2023/09/01/lets-encrypt-der-offene-rechteanbieter/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Fri, 01 Sep 2023 19:04:00 +0000</pubDate>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Datenschutz]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Automatische Erneuerung]]></category>
		<category><![CDATA[Browserkompatibilität]]></category>
		<category><![CDATA[Certbot]]></category>
		<category><![CDATA[Cronjob]]></category>
		<category><![CDATA[Datensicherheit]]></category>
		<category><![CDATA[Datenverkehr-Verschlüsselung]]></category>
		<category><![CDATA[Domainvalidierung]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[Internet Security Research Group]]></category>
		<category><![CDATA[ISRG]]></category>
		<category><![CDATA[kostenlose SSL-Zertifikate]]></category>
		<category><![CDATA[Let’s Encrypt]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[Online-Datenschutz]]></category>
		<category><![CDATA[Rate Limits]]></category>
		<category><![CDATA[Server-Sicherheit]]></category>
		<category><![CDATA[systemd-Timer]]></category>
		<category><![CDATA[TLS-Zertifikate]]></category>
		<category><![CDATA[Webperformance]]></category>
		<category><![CDATA[Webseitensicherheit]]></category>
		<category><![CDATA[Webstandard]]></category>
		<category><![CDATA[Webverschlüsselung]]></category>
		<category><![CDATA[Zertifizierungsstelle]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=2282</guid>

					<description><![CDATA[<p>Wenn es darum geht, das Internet sicherer zu machen, spielt Let&#8217;s Encrypt eine Schlüsselrolle. Mit dem Aufkommen von HTTPS und der Notwendigkeit für Websites, eine sichere Verbindung zu bieten, wurde der Bedarf an Zertifikatsanbietern immer &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/09/01/lets-encrypt-der-offene-rechteanbieter/">Let’s Encrypt &#8211; Der offene Rechteanbieter</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Wenn es darum geht, das Internet sicherer zu machen, spielt Let&#8217;s Encrypt eine Schlüsselrolle. Mit dem Aufkommen von <a href="https://ceosbay.com/2023/07/04/https-und-https-eine-reise-zur-web-sicherheit/">HTTPS</a> und der Notwendigkeit für Websites, eine sichere Verbindung zu bieten, wurde der Bedarf an Zertifikatsanbietern immer größer. In diesem Blogbeitrag erkunde ich, was Let&#8217;s Encrypt ist, wie es entstand und wie man es optimal einrichtet.</p>



<h2 class="wp-block-heading">Was ist Let&#8217;s Encrypt?</h2>



<p>Let&#8217;s Encrypt stellt als Zertifizierungsstelle (CA) kostenlose <a href="https://ceosbay.com/2023/08/30/ssl-geschichte-typen-und-einrichtung/">SSL</a>/TLS-Zertifikate bereit. Mit diesen Zertifikaten können Webseitenbetreiber ihre Websites sichern und den Datenverkehr zwischen <a href="https://ceosbay.com/2023/08/29/server-evolution-typen-und-best-practices-fuer-den-aufbau/">Server</a> und Endbenutzer verschlüsseln. Was es besonders macht, ist die Einfachheit und der Fakt, dass es <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open-Source</a> und damit völlig kostenlos ist.</p>



<h2 class="wp-block-heading">Die Entstehungsgeschichte von Let&#8217;s Encrypt</h2>



<p>Die <a href="https://www.abetterinternet.org">Internet Security Research Group</a> (<a href="https://www.abetterinternet.org">ISRG</a>) rief Let&#8217;s Encrypt im Jahr 2015 ins Leben. Die Mission: Einführung von <a href="https://ceosbay.com/2023/07/04/https-und-https-eine-reise-zur-web-sicherheit/">HTTPS</a> im gesamten Internet zu fördern, indem der Prozess des Erwerbs und der Verwaltung von Zertifikaten so einfach wie möglich gemacht wird. Große Technologieunternehmen und Organisationen, darunter Mozilla, Cisco und Akamai, unterstützten diese Initiative.</p>



<h2 class="wp-block-heading">Einrichtung und Umsetzung von</h2>



<ol class="wp-block-list">
<li><strong>Voraussetzungen</strong>: Es ist sicherzustellen, dass man über einen Shell-Zugriff auf den <a href="https://ceosbay.com/2023/08/29/server-evolution-typen-und-best-practices-fuer-den-aufbau/">Server</a> kommt und über die erforderlichen Berechtigungen verfügt.</li>



<li><strong>Certbot verwenden</strong>: Einer der häufigsten Clienten zur Einrichtung von ist Certbot. Um Certbot zu installieren, kann man den Anweisungen auf der <a href="https://certbot.eff.org/">Certbot&#8217;s Website</a> folgen bzw. ich werde in der nahen Zukunft einen Beitrag darüber erstellen.</li>



<li><strong>Zertifikat anfordern</strong>: Nach der Installation führt man den Certbot aus und folgt den Anweisungen, um das <a href="https://ceosbay.com/2023/08/30/ssl-geschichte-typen-und-einrichtung/">SSL</a>-Zertifikat zu erhalten.</li>
</ol>



<p>Beispiel:</p>



<p><code>certbot --apache</code></p>



<p>oder für <a href="https://ceosbay.com/2023/09/01/nginx-ursprung-aufbau-und-best-practices/">Nginx</a>:</p>



<p><code>certbot --nginx</code></p>



<ol class="wp-block-list" start="4">
<li><strong>Automatische Erneuerung einrichten</strong>: <a href="https://ceosbay.com/2023/08/30/ssl-geschichte-typen-und-einrichtung/">SSL</a>-Zertifikate von Let&#8217;s Encrypt haben eine Gültigkeitsdauer von 90 Tagen. Mit Certbot lässt sich die Erneuerung automatisieren. Fügen Sie dazu folgenden Befehl zu Ihrem Cronjob oder systemd-Timer hinzu:</li>
</ol>



<p><code>certbot renew --quiet</code></p>



<h2 class="wp-block-heading">Was beim Einsatz zu beachten ist</h2>



<ul class="wp-block-list">
<li><strong>Kurze Laufzeit</strong>: Man sollte im Hinterkopf behalten, dass die Zertifikate nur 90 Tage gültig sind. Daher ist immer an eine rechtzeitige Erneuerung zu denken.</li>



<li><strong>Rate Limits</strong>: Es hat Beschränkungen hinsichtlich der Anzahl der Anfragen, die man von einer einzelnen IP-Adresse oder für eine Domain stellen kann. Man sollte sich im Voraus über diese Limits informieren.</li>



<li><strong>Kompatibilität</strong>: Einige ältere Geräte oder Browser unterstützen die von Let&#8217;s Encrypt bereitgestellten Zertifikate möglicherweise nicht. In den meisten Fällen sollte dies jedoch kein Problem darstellen.</li>
</ul>



<h2 class="wp-block-heading">Fazit</h2>



<p>Abschließend lässt sich sagen, dass Let&#8217;s Encrypt eine Revolution in der Art und Weise darstellt, wie Websites ihre Verbindungen sichern. Durch die Bereitstellung kostenloser und einfach zu verwaltender Zertifikate trägt es erheblich dazu bei, das Web sicherer zu machen. Wenn man jedoch noch nicht auf <a href="https://ceosbay.com/2023/07/04/https-und-https-eine-reise-zur-web-sicherheit/">HTTPS</a> umgestellt hat, gibt es einem alle Werkzeuge an die Hand, dies zu tun.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/09/01/lets-encrypt-der-offene-rechteanbieter/">Let’s Encrypt &#8211; Der offene Rechteanbieter</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/09/01/lets-encrypt-der-offene-rechteanbieter/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2282</post-id>	</item>
		<item>
		<title>Apache Kafka &#8211; Echtzeit-Datenströme in wertvolle Einblicke verwandeln</title>
		<link>https://ceosbay.com/2022/12/25/erklaerung-apache-kafka/</link>
					<comments>https://ceosbay.com/2022/12/25/erklaerung-apache-kafka/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Sun, 25 Dec 2022 10:51:49 +0000</pubDate>
				<category><![CDATA[Big-Data]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Datenbanken]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Brokers]]></category>
		<category><![CDATA[Cluster]]></category>
		<category><![CDATA[Confluent]]></category>
		<category><![CDATA[Connect]]></category>
		<category><![CDATA[Copy]]></category>
		<category><![CDATA[CPU]]></category>
		<category><![CDATA[Datenströme]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Fazit]]></category>
		<category><![CDATA[Foundation]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JVM]]></category>
		<category><![CDATA[Kafka]]></category>
		<category><![CDATA[LinkedIn]]></category>
		<category><![CDATA[Operatoren]]></category>
		<category><![CDATA[Plattform]]></category>
		<category><![CDATA[Producer]]></category>
		<category><![CDATA[Quellen]]></category>
		<category><![CDATA[Schnittstellen]]></category>
		<category><![CDATA[Skalierbar]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Source]]></category>
		<category><![CDATA[System]]></category>
		<category><![CDATA[Topic]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1043</guid>

					<description><![CDATA[<p>Apache Kafka ist eine Open-Source-Software der Apache Software Foundation, die insbesondere zur Verarbeitung von Datenströmen dient. Kafka ist dazu entwickelt, Datenströme zu speichern und zu verarbeiten, und stellt eine Schnittstelle zum Laden und Exportieren von &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/12/25/erklaerung-apache-kafka/">Apache Kafka &#8211; Echtzeit-Datenströme in wertvolle Einblicke verwandeln</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Apache Kafka ist eine <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/" target="_blank" rel="noreferrer noopener">Open-Source</a>-Software der Apache Software Foundation, die insbesondere zur Verarbeitung von Datenströmen dient. Kafka ist dazu entwickelt, Datenströme zu speichern und zu verarbeiten, und stellt eine Schnittstelle zum Laden und Exportieren von Datenströmen zu Drittsystemen bereit. Die Kernarchitektur bildet ein verteiltes Transaktions-Log.</p>



<p>Apache Kafka ist die Entwicklung von LinkedIn. Seit 2012 ist es Teil der Apache Software Foundation. Im Jahr 2014 gründeten die Entwickler das Unternehmen Confluent aus LinkedIn heraus, welches die Weiterentwicklung von Apache Kafka fokussiert. Apache Kafka ist ein verteiltes System, das skalierbar und fehlertolerant und somit für Big-Data-Anwendungen geeignet ist.</p>



<h3 class="wp-block-heading">Wie funktioniert Apache Kafka?</h3>



<p>Den Kern des Systems bildet ein Rechnerverbund (Cluster), bestehend aus sogenannten Brokern. Broker speichern Schlüssel-Wert-Nachrichten zusammen mit einem Zeitstempel in Topics. Topics wiederum sind in Partitionen aufgeteilt, die im Kafka-Cluster verteilt und repliziert sind. Innerhalb einer Partition werden die Nachrichten in der Reihenfolge gespeichert, in der sie geschrieben wurden. Lese- und Schreibzugriffe umgehen den Arbeitsspeicher durch die direkte Anbindung der Festplatten mit dem Netzwerkadapter (Zero Copy), so dass weniger Kopiervorgänge vor dem Schreiben oder Versenden von Nachrichten nötig sind.</p>



<h3 class="wp-block-heading">Was ist Zero Copy im Kontext Apache Kafka?</h3>



<p>Zero Copy &#8222;Null-Kopie&#8220; beschreibt Computeroperationen, bei denen die CPU keine Daten von einem Speicherbereich in einen anderen kopiert oder bei denen unnötige Datenkopien vermieden werden. Dies wird häufig verwendet, um CPU-Zyklen und Speicherbandbreite bei vielen zeitaufwändigen Aufgaben zu sparen. Beispielsweise bei der Übertragung einer Datei mit hoher Geschwindigkeit über ein Netzwerk, wodurch die Leistung von Programmen (Prozessen), die von einem Computer ausgeführt werden, verbessert wird.</p>



<p>Anwendungen, die Daten in einen Kafka-Cluster schreiben, werden als Producer bezeichnet, Anwendungen, die Daten von dort lesen, als Consumer. Zur Datenstromverarbeitung besteht die Möglichkeit, Kafka Streams zu verwenden. Kafka Streams ist eine Java-Bibliothek, die Daten aus Kafka liest, verarbeitet und die Ergebnisse nach Kafka zurückschreibt. Auch die Verwendung mit anderen Stream-Verarbeitungssystemen ist möglich. Ab der Version 0.11.0.0 ist „„transaktionales Schreiben“ auch möglich, dadurch ist garantiert, dass die Verarbeitung von Nachrichten exakt ein einziges Mal stattfindet, wenn eine Anwendung Kafka Streams verwendet. Stichwort (Exactly-Once processing) &#8211; Wobei dies ein Thema für sich darstellt und den Rahmen hier sprengen würde.</p>



<p>Kafka unterstützt zwei Arten von Topics: „normal“ und „compacted“ Topics. Normale Topics garantieren, Nachrichten für einen konfigurierbaren Zeitraum vorzuhalten oder einen gewissen Speicherbedarf nicht zu überschreiten. Liegen Nachrichten vor, die älter sind als die konfigurierte „retention time“, oder ist das Speicherlimit einer Partition überschritten, kann Kafka alte Nachrichten löschen, um Festplattenspeicher freizugeben. Standardmäßig speichert Kafka Nachrichten für 7 Tage, aber es ist auch möglich, Nachrichten für immer zu speichern. Neben „normal“ Topics bietet Kafka auch „compacted“ Topics an, die keiner Zeit- oder Platzlimitierung unterliegen. Stattdessen werden neuere Nachrichten als Aktualisierung („updates“) alter Nachrichten mit dem gleichen Schlüssel interpretiert. Dadurch ist garantiert, dass keine Löschung der neuesten Nachricht pro Schlüssel stattfindet. Nutzer können Nachrichten jedoch explizit löschen, indem sie eine Spezialnachricht (sog. tombstone) mit null-Wert für den entsprechenden Schlüssel schreiben.</p>



<h3 class="wp-block-heading">Apache Kafka bietet vier Hauptschnittstellen an:</h3>



<ul class="wp-block-list">
<li>Producer API<br>Für Anwendungen, die Daten in einen Kafka-Cluster schreiben wollen.&nbsp;</li>



<li>Consumer API<br>Für Anwendungen, die Daten aus einem Kafka-Cluster lesen wollen.</li>



<li>Connect API<br>Import/Export-Schnittstelle zur Anbindung von Drittsystemen und baut auf der Consumer- und der Producer-API auf. Kafka Connect führt sogenannte Konnektoren („connectors“) aus, welche die eigentliche Kommunikation mit dem Drittsystem übernehmen. Dabei definiert die Connect-API die Programmierschnittstellen, die von einem Connector implementiert werden müssen. Es gibt bereits viele frei verfügbare und kommerzielle Konnektoren, die genutzt werden können. Apache Kafka liefert selbst keine produktreifen Konnektoren.</li>



<li>Streams API<br>Java-Bibliothek zur Datenstromverarbeitung. Die Bibliothek ermöglicht es, zustandsbehaftete Datenstromverarbeitungsprogramme zu entwickeln, die sowohl skalierbar, flexibel als auch fehlertolerant sind. Dafür bietet Kafka Streams eine eigene domänenspezifische Sprache (DSL) an, die Operatoren zum Filtern, Abbilden (Mappen) oder Gruppieren enthält. Des Weiteren werden Zeitfenster, Joins, und Tabellen unterstützt. Ergänzend zur domänenspezifischen Sprache ist es auch möglich, eigene Operatoren in der Processor-API zu implementieren. Diese Operatoren können auch in der domänenspezifischen Sprache genutzt werden. Zur Unterstützung zustandsbehafteter Operatoren wird RocksDB verwendet. Dies erlaubt es, Operatorzustände lokal vorzuhalten und Zustände, die größer als der verfügbare Hauptspeicher sind, als RocksDB-Daten auf die Festplatte auszulagern. Um den Anwendungszustand verlustsicher zu speichern, werden alle Zustandsänderungen zusätzlich in einem Kafka-Topic protokolliert. Im Falle eines Ausfalls können alle Zustandsübergänge aus dem Topic ausgelesen werden, um den Zustand wiederherzustellen.</li>
</ul>



<p>Die Consumer- und Producer-Schnittstellen basieren auf dem Kafka-Nachrichtenprotokoll und können als Referenzimplementierung in Java angesehen werden. Das eigentliche Kafka-Nachrichtenprotokoll ist ein binäres Protokoll und erlaubt es damit, Consumer- und Producer-Clients in jeder beliebigen Programmiersprache zu entwickeln. Damit ist Kafka nicht an das JVM-Ökosystem gebunden.</p>



<h3 class="wp-block-heading">Fazit</h3>



<p>Apache Kafka bietet als Plattform ein redundantes und skalierbares Event-Streaming. Es funktioniert sowohl auf einem einzelnen Server als auch in riesigen Clustern mit multiplen Brokern. Die Datenquellen und Senken werden in Kafka als Producer und Consumer bezeichnet, die Events in Topics schreiben oder aus Topics lesen. Zusätzlich können verschiedene Systeme über Kafka Connect angebunden werden. Eine Echtzeitdatenverarbeitung auf Stream Basis ist über das Kafka-Streams-Framework möglich. Durch Consumer Groups kann man auch die Anwendungen, die ihre Daten aus Kafka beziehen, verteilt ausgeführen, ohne dass die Verarbeitung eines Events mehrfach stattfindet.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/12/25/erklaerung-apache-kafka/">Apache Kafka &#8211; Echtzeit-Datenströme in wertvolle Einblicke verwandeln</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2022/12/25/erklaerung-apache-kafka/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1043</post-id>	</item>
		<item>
		<title>React &#8211; Die Bibliothek für eine dynamische und interaktive Benutzeroberfläche</title>
		<link>https://ceosbay.com/2022/12/21/erklaerung-react/</link>
					<comments>https://ceosbay.com/2022/12/21/erklaerung-react/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Wed, 21 Dec 2022 21:47:05 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Anwendung]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Bibliothek]]></category>
		<category><![CDATA[BSD]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JSX]]></category>
		<category><![CDATA[Leichtgewicht]]></category>
		<category><![CDATA[LightWeight]]></category>
		<category><![CDATA[Lizenz]]></category>
		<category><![CDATA[Node]]></category>
		<category><![CDATA[Open]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Performant]]></category>
		<category><![CDATA[React]]></category>
		<category><![CDATA[Schnell]]></category>
		<category><![CDATA[Streit]]></category>
		<category><![CDATA[Vue]]></category>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1017</guid>

					<description><![CDATA[<p>React wird häufig im Zusammenhang mit Web-UI-Frameworks wie Vue.js oder Angular genannt – tatsächlich handelt es sich bei React aber nicht um ein Framework im eigentlichen Sinn. Stattdessen ist es eine vergleichsweise kleine und einfache &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/12/21/erklaerung-react/">React &#8211; Die Bibliothek für eine dynamische und interaktive Benutzeroberfläche</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>React wird häufig im Zusammenhang mit Web-UI-<a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Frameworks</a> wie Vue.js oder Angular genannt – tatsächlich handelt es sich bei React aber nicht um ein <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a> im eigentlichen Sinn. Stattdessen ist es eine vergleichsweise kleine und einfache Programmbibliothek zum Rendern webbasierter grafischer Oberflächen. Anders als UI-<a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Frameworks</a> verzichtet es auf Konzepte für Datenbindung, Routing, Dependency-Injection und Ähnliches. Das macht React zunächst einmal viel &#8222;leichtgewichtiger&#8220; als viele der Alternativen.</p>



<p>Das Modell von React verspricht durch die Konzepte des unidirektionalen Datenflusses und des Virtual DOM den einfachen, aber trotzdem performanten Aufbau komplexer Anwendungen. React bildet aus diesem Grund die Basis für Single-Page-Webanwendungen, kann jedoch auch mit <a href="https://ceosbay.com/2022/11/11/node-js-mit-npm-auf-macos/" target="_blank" rel="noreferrer noopener">Node.js</a> serverseitig (vor-)gerendert werden.</p>



<p>Ja, im Jahr 2013 war dies schon etwas ziemlich Gutes. Vor allem im Vergleich zum damaligen Angular, dass zwar komfortabel zu benutzen war aber aufgrund einer mäßigen Performance und der fehlenden Skalierbarkeit kaum in der Lage war, komplexe UIs abzubilden. Genau diese Probleme hat React damals bereits adressiert und führte zu diesem Zweck verschiedene Konzepte aus der funktionalen Programmierung in die UI-Welt ein.</p>



<h3 class="wp-block-heading">Kurze Zeitreise</h3>



<p>React ist die Entwicklung von Jordan Walke, einem Softwareentwickler bei Facebook. Erstmals 2011 für den Facebooks Newsfeed und später für Instagram eingesetzt. Facebook kündigte 2013 an, dass die Weiterführung des Projekts zukünftig als <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/" target="_blank" rel="noreferrer noopener">Open-Source</a> stattfindet. Im Oktober 2014 wurde die Lizenz von der anfangs Apache-Lizenz auf die BSD-Lizenz mit zusätzlicher Patentlizenz geändert, welche den Widerruf der Lizenz bei Klagen gegen oder bei Patentstreitigkeiten mit Facebook vorbehält.</p>



<p>Diese unkonventionelle Klausel führte zu einer kontroversen Diskussion. Eine Umformulierung dieser Patentklausel im April 2015 beendete die Auseinandersetzung nicht. Im Juli 2017 kündigte die Apache Software Foundation an, keine Apache-Projekte mehr mit dieser Zusatzlizenz zu erlauben. Entgegen anfänglichen Angaben, nicht von der Klausel abrücken zu wollen, veröffentlichte Facebook im September 2017 React in der Version 16.0.0 unter der MIT-Lizenz. Vielleicht werde ich in der Zukunft noch die verschiedenen Lizenzmodelle etwas näher erläutern.</p>



<h3 class="wp-block-heading">Fazit</h3>



<p>Wie bereits erwähnt, ist es eine sehr spezialisierte und leichtgewichtige Programmbibliothek, sodass man es als einen Baustein von vielen betrachten kann. Da man React zwingend mit anderen Modulen kombinieren muss, um eine vollständige Anwendung zu entwickeln, kann React nicht zu einer systemrelevanten Größe heranwachsen. Gleichzeitig bildet diese Tatsache auch den Nachteil. Bei Angular hat man beispielsweise weniger Aufwand. Doch über Angular werde ich noch später schreiben.</p>



<p>Nicht zu vergessen ist die Integration mit <a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a>. Anders als zum Beispiel in Vue.js oder Angular gibt es in React keinen proprietären Weg, um eine Schleife, eine Bedingung oder eine Datenbindung herzustellen. Stattdessen verwendet React hierfür schlichtweg die Konstrukte, die es in <a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a> ohnehin gibt. Alles in allem ist es eine gute Lösung, mit einer eigenen Philosophie und einer relativ hohen Einstiegshürde, da man sich mit JSX auseinandersetzen muss. Ja, auch ich werde mich in einem zukünftigen Beitrag damit auseinandersetzen 🙂 Aber Einstiegshürden sind ja in der Regel relativ und es lässt sich darüber diskutieren, ob der Einstieg nun leicht oder schwer ist 😉</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/12/21/erklaerung-react/">React &#8211; Die Bibliothek für eine dynamische und interaktive Benutzeroberfläche</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2022/12/21/erklaerung-react/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1017</post-id>	</item>
		<item>
		<title>Selenium &#8211; Zur Automatisierung von Web-Tests für zuverlässige Webanwendungen</title>
		<link>https://ceosbay.com/2022/11/25/selenium/</link>
					<comments>https://ceosbay.com/2022/11/25/selenium/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Fri, 25 Nov 2022 12:36:09 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Automatisierung]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[CD]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Core]]></category>
		<category><![CDATA[Dev]]></category>
		<category><![CDATA[Entwickler]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Java Script]]></category>
		<category><![CDATA[Open]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[Selenium]]></category>
		<category><![CDATA[Selenium Core]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Web-Dev]]></category>
		<category><![CDATA[Werkzeug]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=685</guid>

					<description><![CDATA[<p>Selenium ist ein Open Source Framework für automatisierte Softwaretests von Webanwendungen. Entwickelt und von der Firma ThoughtWorks unter der Apache-2.0-Lizenz veröffentlicht. Mit Selenium kann man Interaktionen, in der Regel Testsequenzen, mit einer Webanwendung aufnehmen und &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/11/25/selenium/">Selenium &#8211; Zur Automatisierung von Web-Tests für zuverlässige Webanwendungen</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Selenium ist ein <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source</a> Framework für automatisierte Softwaretests von Webanwendungen. Entwickelt und von der Firma ThoughtWorks unter der <a href="https://www.apache.org/licenses/LICENSE-2.0" target="_blank" rel="noreferrer noopener">Apache-2.0-Lizenz</a> veröffentlicht.</p>



<p>Mit Selenium kann man Interaktionen, in der Regel Testsequenzen, mit einer Webanwendung aufnehmen und diese Tests automatisiert beliebig oft wiederholen. Es nimmt vor allem Entwicklern sehr viel Arbeit ab, da beispielsweise beim Ausfüllen von Webformularen das Testen wesentlich schneller, flexibler und verlässlicher abläuft.</p>



<p>Selenium basiert rein auf HTML und JavaScript. Für einen schnellen Einstieg kann man direkt die Selenium-IDE z. B. als Browser-Add-on installieren und mit dem Testing beginnen. Der Benutzer interagiert ausschließlich mit Firefox, während Selenium die Aufnahme und das Abspielen der Tests übernimmt.</p>



<h3 class="wp-block-heading">Eine kurze Zeitreise</h3>



<p>Im Jahr 2003 fing Jason Huggins, der bereits einige Testing Tools entwickelt hatte, mit der Entwicklung von Selenium an.</p>



<p>Damals war ThoughtWorks weltweit vertreten, aber jeder, der sich außerhalb des Hauptsitzes befand, hatte mit enormen Latenzzeiten zu kämpfen. Allein die Erfassung von Stundenzetteln dauerte eine Ewigkeit. Um diese Einschränkungen zu überwinden, beschloss Jasons Team, JavaScript im Browser zu verwenden, um die Arbeit zu erledigen, anstatt den Server zu verwenden.</p>



<p>Zu dem Zeitpunkt war JavaScript noch nicht zum Standard geworden. Der von Jason geschriebene Code lief zwar in dem Browser Internet Explorer aber nicht auf Mozilla. Die Anpassung des Codes für Mozilla, hätten den Code für Internet Explorer beschädigen können und umgekehrt. Ganz abgesehen von all den zukünftigen Updates für beide Browser gleichzeitig. Dies hätte mehr Schaden als Nutzen verursacht.</p>



<p>Jasons Team brauchte eine zuverlässige Methode, um die Anwendung in den Browsern zu testen. Also recherchierten Jason und zwei weitere Kollegen bei ThoughtWorks ob es irgendwelche Tools gab, die sie verwenden konnten. Wie es meistens so ist, war nichts zu finden, was den eigenen Anforderungen entsprach. So ging es an die Entwicklung von Selenium. Das Tool, welches sie programmiert hatten, konnte Daten eingeben und Schaltflächen auf einer Reihe von Webseiten anklicken, um verschiedene Testszenarien zu durchlaufen dies in mehreren Browsern gleichzeitig.</p>



<p>Im Laufe der Zeit schlossen sich immer mehr Mitarbeiter von ThoughtWorks seiner Arbeit an, bis Paul Hammant dem Team beitrat und die Entwicklung des Programms in die Richtung des heutigen &#8222;Selenium Remote Control&#8220; (RC) leitete. Dabei handelt es sich mittlerweile um ein veraltetes Modul.</p>



<p>2007 wechselte Huggins zum Softwarekonzern Google, wo er die Weiterentwicklung und die Fehlerausbesserung des Programms zusammen mit anderen Programmierern vorantrieb. Zur gleichen Zeit entwickelte Simon Stewart bei ThoughtWorks die Browsersteuerung Webdriver (Darüber schreibe ich voraussichtlich auch noch einen Beitrag). Da es für die Entwickler beider Projekte nicht sinnvoll erschien, zwei separate Projekte voranzutreiben, beschlossen sie die beiden Projekte zu &#8222;Selenium Webdriver&#8220; bzw. &#8222;Selenium 2.0&#8220; zu vereinen.</p>



<p>2008 entwickelte Philippe Hanrigou &#8222;Grid&#8220;, welches die Ausführung multipler Instanzen ermöglichte. So konnte man das Tool auf einer unbegrenzten Anzahl von Rechnern laufen lassen. Dies führte dazu, dass die Ausführungszeit für große Teststrukturen drastisch verkürzt wurde.</p>



<h3 class="wp-block-heading">Randnotiz 😀</h3>



<p>Der Name Selenium entstand aus einer scherzhaften Bemerkung von Huggins, der in einer E-Mail seine Mitbewerber Mercury damit verspottete, dass eine Quecksilbervergiftung (Mercury poisoning) durch die Einnahme von Selenium geheilt werden kann.</p>



<h3 class="wp-block-heading">Bestandteile von Selenium</h3>



<h4 class="wp-block-heading">Selenium Core</h4>



<p>Das Core-Modul enthält die komplette Basisfunktionalität von Selenium. Die Testbefehl-API und den TestRunner. Unter Verwendung des Core-Modules kann die TestRunner.html-Webseite mit verschiedenen Browsern geöffnet werden. Dadurch werden Kompatibilitätstests mit verschiedenen Browsertypen ermöglicht.</p>



<h4 class="wp-block-heading">Selenium IDE</h4>



<p>Das Selenium IDE ist ein Add-on für Google Chrome und Mozilla Firefox, mit dem man direkt im Browser durch die Interaktion mit einer Webanwendung Testfälle aufnehmen und wieder abspielen kann. Neben der reinen Capture-Replay-Funktionalität lassen sich weitere Überprüfungen mittels „verify“ und „assert“ einbinden. Zudem wird das schrittweise Abspielen von Testfällen, das Setzen von Breakpoints zur Überprüfung der Testfälle und die Wiederverwendung von geteilten Testabläufen unterstützt. Einzelne Testfälle lassen sich zu Testsuites kombinieren und wiederverwenden.</p>



<h4 class="wp-block-heading">Selenium WebDriver</h4>



<p>Selenium WebDriver ist der Nachfolger von Remote Control. Auf Remote Control werde ich nicht weiter eingehen, da dieses Modul veraltet ist. Es akzeptiert Befehle in Selenese oder über die Client-API und leitet diese an den jeweiligen Browser weiter. Eine Besonderheit bildet HtmlUnit. Ab Version 3.0 ist HtmlUnit nicht mehr Bestandteil des WebDrivers. Es handelt sich dabei um einen Webbrowser ohne grafische Anzeige (Headless). Der Selenium WebDriver ist über den Browser Driver implementiert, wodurch die gängigsten Browser unterstützt werden.</p>



<h4 class="wp-block-heading">Selenium Grid</h4>



<p>Selenium Grid ist eine Erweiterung von RC und ermöglicht die parallele Ausführung von Tests auf mehreren Servern, um die Dauer der Testdurchführung zu verkürzen. Der Client-Treiber verbindet sich dabei mit dem Hub anstatt mit dem Server. Der Hub wiederum leitet die Tests auf freie Selenium-Server weiter.</p>



<h4 class="wp-block-heading">Fazit</h4>



<p>Selenium ermöglich, wie mehrfach angesprochen, das direkte Aufzeichnen diverser Test-Szenarien. Bei der Aufzeichnung solcher Testszenarien ist auf jeden Fall Vorsicht geboten, da sich bei einer unkonzentrierten Arbeitsweise Fehler einschleichen können, die einem nachfolgend eventuell nicht auffallen. Die Nutzung von Testsuites kann Sinn machen, da man dadurch eine Gliederung in separate Module erreicht. Die Auswirkungen von Änderungen innerhalb der Applikation können so einfacher auf bestehende Tests übertragen werden, was zu einer besseren Wartung und Wiederverwendbarkeit führt. Sicherlich kann man auch die Arbeit damit wesentlich optimierter und angenehmer realisieren, indem man einiges automatisiert. Aber dazu vielleicht in der Zukunft mehr.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/11/25/selenium/">Selenium &#8211; Zur Automatisierung von Web-Tests für zuverlässige Webanwendungen</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2022/11/25/selenium/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">685</post-id>	</item>
		<item>
		<title>Open Source &#8211; Wissen teilen und vermehren</title>
		<link>https://ceosbay.com/2022/11/16/erklaerung-open-source/</link>
					<comments>https://ceosbay.com/2022/11/16/erklaerung-open-source/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Wed, 16 Nov 2022 17:03:21 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Bildung]]></category>
		<category><![CDATA[Blockchain]]></category>
		<category><![CDATA[Buchempfehlung]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Autor]]></category>
		<category><![CDATA[CEO]]></category>
		<category><![CDATA[Deutschland]]></category>
		<category><![CDATA[Diskriminierung]]></category>
		<category><![CDATA[Eric Raymond]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Freie]]></category>
		<category><![CDATA[GNU]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Instagram]]></category>
		<category><![CDATA[IRC]]></category>
		<category><![CDATA[Libre]]></category>
		<category><![CDATA[Lizenz]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Neutralität]]></category>
		<category><![CDATA[Open]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Personen]]></category>
		<category><![CDATA[Produktneutralität]]></category>
		<category><![CDATA[Quellcode]]></category>
		<category><![CDATA[Quelle]]></category>
		<category><![CDATA[Red Hat]]></category>
		<category><![CDATA[SHARE]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Source]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Suse]]></category>
		<category><![CDATA[Technologie]]></category>
		<category><![CDATA[Technologieneutralität]]></category>
		<category><![CDATA[Umwelt]]></category>
		<category><![CDATA[Uneingeschränkt]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[USA]]></category>
		<category><![CDATA[UUCP]]></category>
		<category><![CDATA[Verantwortung]]></category>
		<category><![CDATA[Weiterverbreitung]]></category>
		<category><![CDATA[Welt]]></category>
		<category><![CDATA[Werke]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=557</guid>

					<description><![CDATA[<p>Heute kümmere ich mich um eines meiner Lieblingsthemen. Dafür werde ich mir auch ein bisschen mehr Zeit nehmen. Open Source (Offene Quelle) ist ein Begriff, der ursprünglich auf Open Source Software (OSS) zurückgeht. Dabei handelt &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source &#8211; Wissen teilen und vermehren</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Heute kümmere ich mich um eines meiner Lieblingsthemen. Dafür werde ich mir auch ein bisschen mehr Zeit nehmen. <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source</a> (Offene Quelle) ist ein Begriff, der ursprünglich auf <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source</a> Software (OSS) zurückgeht. Dabei handelt es sich um Quellcode bzw. Code, der für die Öffentlichkeit zugänglich ist. Folglich kann jeder den Code einsehen, anzeigen, nach Belieben verändern und verteilen. <br>Ganz im Sinne von &#8222;Das Wissen der Menschheit gehört der Welt&#8220;.</p>



<h3 class="wp-block-heading">Was ist Open Source Software?</h3>



<p><a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source Software</a> wird in der Regel dezentral, innerhalb einer Kollaboration entwickelt und stützt sich auf Peer-Review. Eine von Fachkollegen begutachtete Veröffentlichung wird als Peer(s) und Community-Produktion bezeichnet. Die Software ist nicht selten kostenlos bzw. günstiger, flexibler und langlebiger als proprietäre Produkte. Vor allem, weil sie nicht von einem einzelnen Programmierer oder Unternehmen, sondern in und durch Communities entwickelt wird. In der Regel verstehen die diese Personen etwas von ihrem Handwerk.</p>



<p>Open Source hat sich in der jüngeren Vergangenheit zu einer Bewegung geformt. Geradezu zu einer neuen Art des Arbeitens und des Lifestyles, die über die reine Softwareproduktion hinausgeht. Sie nutzt die Werte, sowie das dezentrale Produktionsmodell der Open Source Software, um neue Wege zu finden, Probleme in Communities, diversen Branchen und des Alltags zu lösen.</p>



<h3 class="wp-block-heading">Kriterien für Open Source</h3>



<p>Doch allein der freie Zugang zum Quellcode reicht nicht aus, damit eine Software als Open-Source-Software deklariert werden kann. Folgende Kriterien müssen ebenfalls erfüllt sein:</p>



<p><strong>Freie Weiterverbreitung</strong> &#8211; Die Lizenz muss es jedermann erlauben, die Software weiterzugeben oder als Teil einer Sammlung zu verkaufen. Man darf keine Lizenzgebühren verlangen.</p>



<p><strong>Zugang zum Quellcode</strong> &#8211; Die Software muss im Quelltext in verständlicher Form verfügbar sein.</p>



<p><strong>Zulässigkeit von abgeleiteten Werken</strong> &#8211; Die Lizenz muss Modifikationen und Weiterentwicklungen zulassen und deren Weitergabe unter denselben Bedingungen erlauben wie die Original-Software.</p>



<p><strong>Integrität des Quellcodes des Autors</strong> &#8211; Zwar muss die Lizenz die Weitergabe von Software mit verändertem Quellcode zulassen, darf aber verlangen, dass abgeleitete Werke einen anderen Namen oder eine andere Versionsnummer tragen müssen.</p>



<p><strong>Keine Diskriminierung von Personen oder Gruppen</strong> &#8211; Die Lizenz darf keine Personen oder Personengruppen benachteiligen.</p>



<p><strong>Keine Nutzungseinschränkung</strong> &#8211; Die Lizenz darf die Nutzung der Software nicht für bestimmte Zwecke oder Tätigkeitsbereiche ausschließen, etwa den Einsatz in Unternehmen.</p>



<p><strong>Allgemeingültigkeit der Lizenz bei Weitergabe</strong> &#8211; Die Lizenz muss für alle gelten, an die die Software weitergegeben wird. Es dürfen keine zusätzlichen Lizenzen vergeben werden.</p>



<p><strong>Produktneutralität der Lizenz</strong> &#8211; Die Lizenz darf nicht davon abhängen, ob die Software ein Bestandteil einer bestimmten Distribution ist. Sie muss auch dann gelten, wenn das Programm eigenständig verwendet oder zusammen mit anderer Software weiterverbreitet wird.</p>



<p><strong>Keine Einschränkung anderer Software</strong> &#8211; Die Lizenz darf keine Einschränkungen für andere Software enthalten, die zusammen mit der lizenzierten Software weitergegeben wird.</p>



<p><strong>Technologieneutralität</strong> &#8211; Die Lizenz darf die Weitergabe der Software nicht auf eine bestimmte Technologie beschränken.</p>



<h3 class="wp-block-heading"><strong>Wie ist Open Source entstanden?</strong></h3>



<p>In den Anfängen der Informatik, etwa in den 50er bzw. 60er Jahren, tauschten Wissenschaftler, Programmierer und Entwickler Software aus, um voneinander zu lernen und um die Informatik weiterzuentwickeln. Zu den frühen Beispielen für die freie Weitergabe von Quellcode gehören auch die von <a href="https://www.ibm.com/de-de">IBM</a> herausgegebenen Quelltexte seiner Betriebssysteme und anderer Programme sowie die SHARE-Benutzergruppe, die sich bildete, um den Austausch von Software zu erleichtern. </p>



<p>Ab den 60er Jahren nutzten ARPANET-Forscher ein offenes &#8222;Request for Comments&#8220;-Verfahren (RFC), um Rückmeldungen zu frühen Telekommunikationsnetzprotokollen zu fördern. Dies führte 1969 zur Entstehung des frühen Internets. Die gemeinsame Nutzung von Quellcode im Internet begann, als das Internet noch relativ primitiv war, mit Software, die über UUCP, Usenet, IRC (Werde ich demnächst auch mal thematisieren. Denn damit ging es auch bei mir los 😉 ) und Gopher verbreitet wurde. BSD zum Beispiel wurde auch zuerst durch Beiträge in comp.os.linux im Usenet verbreitet, wo auch die Entwicklung diskutiert wurde. Linux folgte diesem Modell. </p>



<p>Zwischen den 70er und 80er Jahren wurde der Open-Source-Gedanke schließlich von der Kommerzialisierung der Software verdrängt. Akademiker entwickelten jedoch weiterhin häufig Software in Zusammenarbeit. Beispiele hierfür sind Donald Knuth 1979 mit dem TeX-Satzsystem und Richard Stallman 1983 mit dem GNU-Betriebssystem. </p>



<p>1997 veröffentlichte Eric Raymond () das Buch „The Cathedral and the Bazaar“ (Dies ist gleichzeitig eine Buchempfehlung und stellt eine Bildungslücke dar, falls bisher noch nicht gelesen! Besonders, wenn man in der IT tätig ist!), eine reflektierende Analyse der Hacker-Gemeinschaft und der Grundsätze freier Software. Das Whitepaper fand Anfang 1998 große Beachtung. Es war ein wesentlicher Faktor, der die Netscape Communications Corporation dazu veranlasste, ihre beliebte Internet-Suite Netscape Communicator als freie Software zu deklarieren und zu veröffentlichen. Die Netscape Communications Corporation war ein unabhängiges amerikanisches Unternehmen, für Computerdienstleistungen mit Hauptsitz in Mountain View, Kalifornien, und anschließend in Dulles, Virginia. Dieser Quellcode wird später zur Grundlage von SeaMonkey, Mozilla Firefox, Thunderbird und KompoZer, die heute noch im Einsatz sind.</p>



<p>Das Vorgehen von Netscape veranlasste wiederum Eric Raymond und andere dazu, sich mit der Frage zu beschäftigen, wie man die Ideen der Free Software Foundation und die von ihr erkannten Vorteile, für die kommerzielle Softwareindustrie nutzbar machen kann. Sie kamen zu dem Entschluss, dass der soziale Aktivismus der FSF, für Unternehmen wie Netscape nicht attraktiv war. Also suchten sie nach einer Möglichkeit, der Freien-Software-Bewegung einen neuen Namen zu geben. Dies sollte das geschäftliche Potenzial des Austausches und der Zusammenarbeit an Software-Quellcode voll ausschöpfen. </p>



<p>Dies war die Geburtsstunde des Bergriffs &#8222;<a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source</a>&#8222;. Die Definition wurde bald darauf von Bruce Perens, einem amerikanischen Programmierer und Verfechter der Bewegung für freie Software definiert, manifestiert und veröffentlicht. Der Verleger Tim O&#8217;Reilly machte unter Anderem den Begriff <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source</a> relativ schnell populär. Und Linus Torvalds, ein finnisch-US-amerikanischer Informatiker sowie Software-Entwickler, der bis heute als Initiator und als treibende Kraft bei der Entwicklung des Linux-Kernels gilt. Der Kernel bzw. die Arbeitsmethodik wird von vielen anderen genau so weitergeführt. Die Entwicklung wird übrigens bis heute noch von ihm koordiniert.</p>



<p>Im Februar 1998 die Gründung der OSI (<a href="https://opensource.org" target="_blank" rel="noreferrer noopener">Open Source Initiative</a>). Sie sollte die Verwendung des neuen Begriffs fördern und die Open-Source-Prinzipien propagieren. Was in Anbetracht der gegenwertigen Situation auch ganz gut gelungen ist. Vor allem wenn man bedenkt, wie viele große Konzerne damals zu <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source</a> Software Stellung bezogen haben. Und wie sie heute selbst <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source</a> Software nutzen. Dazu aber nachfolgend mehr.</p>



<p>Zur gleichen Zeit sahen sich kommerzielle Softwarehersteller zunehmend durch das Konzept der frei verteilten und erhältlichen Software und des allgemeinen Zugangs zum Quellcode einer Anwendung bedroht. Der Microsoft-Manager Jim Allchin, ein amerikanischer Informatiker und ehemalige Führungskraft bei Microsoft, erklärte 2001 öffentlich: &#8222;<a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source</a> ist ein Zerstörer geistigen Eigentums. Ich kann mir nichts Schlimmeres für das Softwaregeschäft und das Geschäft mit dem geistigen Eigentum vorstellen.&#8220; Oder Steve Ballmer (CEO von Microsoft von 2000 bis 2014), der 2001, bei einem Interview, Linux als Krebs bezeichnete.</p>



<h3 class="wp-block-heading">Open Source Software heute</h3>



<p>Freie und quelloffene Software hat Anfangs eine Rolle außerhalb des Mainstreams eine Rolle gespielt.  Also eher in der privaten Softwareentwicklung. Größere Unternehmen wie Microsoft, Google, Facebook, IBM, Oracle usw. hatten begonnen, offizielle Open Source &#8222;Plattformen&#8220; im Internet aufzubauen. Damit haben sich die ehemaligen „Gegner“ auf die ein oder andere Art der Bewegung für freie und quelloffene Software angeschlossen. </p>



<p>Dadurch hat sich die Sichtweise auf Open-Source-Software grundlegend geändert. Hinzu kommt, dass auch von denen Konzernen viel Kapital und Resourcen in die Entwicklung von Open Source Software fließen. Zu den Mitwirkenden, Geldgebern und gemeinnützigen Organisationen an Open-Source-Projekten gehören unter anderem die Linux Foundation, die WordPress Foundation, Creative Commons, das Android Open Source Project und die Mozilla Foundation. Auch Epic Games hat in den letzten Jahren nicht wenig Geld in Blender und dessen Weiterentwicklung gesteckt. Doch das Thema Blender werde ich in den kommenden Wochen auch in Angriff nehmen und in einem Beitrag festhalten.</p>



<h3 class="wp-block-heading">Beliebte Open Source Software &#8222;Lizenzen&#8220;</h3>



<p><strong>MIT License©</strong>: MIT License ist eine freie Softwarelizenz. Nutzern ist es erlaubt, den Originalcode mit sehr wenigen Einschränkungen zu verändern.<br><strong>GNU General Public© (GPL)</strong>: GNU ist eine Reihe von Lizenzen für freie Software. Es gibt Endbenutzern die Möglichkeit, Software auszuführen, zu untersuchen, weiterzugeben und zu verändern.<br><strong>BSD</strong>: Die BSD Lizenz hat weniger Beschränkungen für Entwickler. Es erlaubt den Nutzern, den Code zu verwenden und zu verändern, ohne die Änderungen weitergeben zu müssen.<br><strong>Ubuntu®</strong>: Ubuntu ist eine Linux-Distribution, die aus freier und Open-Source-Software besteht. Es wird primär in den Bereichen Desktop, Cloud und IoT veröffentlicht.<br><strong>Red Hat</strong>: Eine Open-Source-Softwareplattform und ein IBM-Derivat, das eine Vielzahl von Produktivitätsanwendungen für Unternehmen bietet.<br><strong>Blender</strong>: Blender ist eine freie, mit der GPL lizenzierte 3D-Grafiksuite, mit der sich 3D-Körper modellieren, texturieren und animieren lassen. Die Inhalte finden in Grafiken, Animationen und Software Anwendung. Geschaffene Bildsynthesen können mithilfe des integrierten Compositors und Videoschnittprogramms nachbearbeitet werden. Programmiersprachen, die zum Einsatz kommen sind C und C++. Python wird als Skriptsprache verwendet.<br><strong>Mozilla</strong>: Die Mozilla Public License ist eine freie und quelloffene schwache Copyleft-Lizenz. Für die meiste Software der Mozilla Foundation wie Firefox und Thunderbird. Die MPL-Lizenz ist von Mozilla und die Entwicklung bzw. Pflege, findet In-House statt.<br><strong>SUSE</strong>: SUSE Linux basiert auf einem Open-Source-Linux-Kernel und wird mit System- und Anwendungssoftware vertrieben.<br><strong>LibreOffice</strong>: Ein Open-Source-Büroprogramm, das den Microsoft Office-Programmen ähnelt.<br><strong>Apache®</strong>: Die Apache License ist eine freie Softwarelizenz. Sie erlaubt den Nutzern, die Software für jeden Zweck zu verwenden, zu verändern und zu verbreiten.<br><strong>Berkeley Software Distribution</strong>: Ist ein Betriebssystem, das auf Research Unix basiert. Die Computer Systems Research Group an der University of California, Berkeley, entwickelt und kümmert sich um den Vertrieb.<br><strong>MySQL™</strong>: MySQL ist ein Open-Source-Datenbankverwaltungssystem mit zwei separaten Lizenzen &#8211; der MySQL Standard Edition und der MySQL Enterprise Edition.</p>



<h3 class="wp-block-heading">Nachteile von Open Source Software</h3>



<p>Obwohl Open Source Software und die Lizenzen enorm zum Wachstum der Softwareentwicklung und der Entwicklung der internationalen IT-Landschaft beigetragen haben, wird ihre weite Verbreitung nicht von Wenigen als negativ erachtet. Dies wird auf die fehlende Regulierung zurückgeführt, die zu zahlreichen juristischen Problemen führen kann. Auch bezüglich der Definition, was als Open Source und was Closed Source deklariert werden kann, stellt einen wesentlichen Problemfaktor dar. </p>



<p>Um diesen Umständen entgegenzuwirken hat die Open-Source-Gemeinschaft Klassifizierungsschemata eingeführt, die in der Regel auf Copyleft-Bestimmungen (Um ein Programm unter das Copyleft zu stellen, wird es zuerst unter ein Copyright gestellt; danach werden als Rechtsmittel Vertriebsbestimmungen hinzugefügt, die es allen erlauben, den Quellcode des Programms oder jedes davon abgeleiteten Programms zu verwenden, zu ändern und weiter zu verteilen) beruhen, um geeignete Anwendungsfälle für das Open-Source-Softwareentwicklungsmodell zu bestimmen. </p>



<p>Das US-Bundesberufungsgericht, entschied darüber hinaus, dass OSS-Lizenzen rechtsverbindliche Anforderungen für die Nutzung von urheberrechtlich geschütztem Material enthalten müssen. Findet durch einen Benutzer ein Regelverstoß gegen diese offenen Standards statt, verliert er seine Lizenz und verstößt damit gegen die Norm für Urheberrechtsverletzungen, ähnlich wie bei der unbefugten Nutzung einer proprietären Lizenz. Die Folgen dafür können gravierend sein.</p>



<h3 class="wp-block-heading">Übrigens: Open Source vs. freie Software</h3>



<p>“Open Source” und “Freie Software” bezeichnen im Wesentlichen das Gleiche. Der Begriff “Freie Software” ist lediglich etwas älter (1985) und stammt von der Free Software Foundation. Der Gedanke der frei zugänglichen Software ist gleich, nur die Motivation dahinter ist verschieden. Bei Open Source ist es der praktische Nutzen, der durch die gemeinsame Weiterentwicklung von Software entsteht. Bei der freien Software ist es die Ideologie dahinter und der Nutzen für den Anwender.</p>



<h3 class="wp-block-heading">Fazit</h3>



<p>Ich bin davon überzeugt, dass das Wissen der Menschheit der Welt gehört und durch das Wissen auch die Vermittlung von Bildung besser vonstattengehen kann. So dient das Wissen auch der Fähigkeitsvermittlung, bei der eine Gesamtheit der Fähigkeiten zum Tragen kommt. Bildung wiederum hat auch eine moralische Funktion. </p>



<p>Daher kann durch Bildung die Voraussetzung dafür geschaffen werden, dass Menschen eher Verantwortung für sich selbst, sowie für andere in ihrem Umfeld und ihrer Umwelt übernehmen. Kurz: Mithilfe von Wissen und Bildung kann ein Mensch eher zwischen Gut und Böse unterscheiden. Ohne Wissen und Bildung funktioniert keine moderne Software oder Demokratie. Und dies sind nun einmal die Schlüssel für ein gutes Miteinander, zu Arbeit und Beruf in unserer heutigen Zeit. </p>



<p>Deshalb muss sowohl Wissen als auch die Bildung kostenlos zugänglich gemacht werden &#8211; Damit auch Quellcodes von Software. Dies alles mag zwar auf dem ersten Blick etwas verzerrt wirken, doch wenn man bedenkt, dass viele Menschen ihr Wissen heutzutage fast ausschließlich aus dem Internet bzw. von den digitalen Medien beziehen, kann es meiner Meinung nach durchaus Sinn machen. Aber ich lasse mich auch gerne jederzeit eines Besseren belehren 😉</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source &#8211; Wissen teilen und vermehren</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2022/11/16/erklaerung-open-source/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">557</post-id>	</item>
		<item>
		<title>JavaScript &#8211; Die Sprache für interaktive und dynamische Webanwendungen</title>
		<link>https://ceosbay.com/2022/11/12/javascript/</link>
					<comments>https://ceosbay.com/2022/11/12/javascript/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Sat, 12 Nov 2022 06:00:00 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Acrobat]]></category>
		<category><![CDATA[Anwendungsentwicklung]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Bibliotheken]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Codestruktur]]></category>
		<category><![CDATA[Deklarativ]]></category>
		<category><![CDATA[Dojo]]></category>
		<category><![CDATA[Dynamisch]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[Geschichte]]></category>
		<category><![CDATA[Heute]]></category>
		<category><![CDATA[Imperativ]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Multiparadigmisch]]></category>
		<category><![CDATA[Multipragmatisch]]></category>
		<category><![CDATA[Objektorientiert]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Paradigmen]]></category>
		<category><![CDATA[Programmierer]]></category>
		<category><![CDATA[Quellcode]]></category>
		<category><![CDATA[Reac]]></category>
		<category><![CDATA[React]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[Semantik]]></category>
		<category><![CDATA[Single]]></category>
		<category><![CDATA[Thread]]></category>
		<category><![CDATA[Three]]></category>
		<category><![CDATA[ThreeJs]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=510</guid>

					<description><![CDATA[<p>JavaScript ist eine der bekanntesten Skriptsprachen für Websites. Es ist eine leichtgewichtige, interpretierte und just-in-time kompilierte Software-Sprache, die erstklassige Funktionen nutzt. Viele Nicht-Browser-Umgebungen wie Adobe Acrobat, Apache CouchDB und Node.JS® nutzen JavaScript. Diese weit verbreitete &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/11/12/javascript/">JavaScript &#8211; Die Sprache für interaktive und dynamische Webanwendungen</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>JavaScript ist eine der bekanntesten Skriptsprachen für Websites. Es ist eine leichtgewichtige, interpretierte und just-in-time kompilierte Software-Sprache, die erstklassige Funktionen nutzt. Viele Nicht-Browser-Umgebungen wie Adobe Acrobat, Apache CouchDB und <a href="https://ceosbay.com/2022/11/11/node-js-mit-npm-auf-macos/">Node.JS®</a> nutzen JavaScript. Diese weit verbreitete Software-Sprache ist prototypenbasiert, deklarativ, imperativ, stark objektorientiert, single-thread, dynamisch und multiparadigmatisch. Die genannten Begriffe werden nachfolgend erklärt aber zu einem späteren Zeitpunkt in einen anderen Beitrag, bei dem ich verschiedene Paradigmen vorstelle, verschoben.</p>



<h3 class="wp-block-heading">Prototypenbasierte Programmierung</h3>



<p>Prototypenbasierte Programmierung, auch als klassenlose Objektorientierung bekannt, ist eine Form der objektorientierten Programmierung, die auf das Sprachelement der Klasse verzichtet. Objekte werden nicht durch Instanziierung (Der&nbsp;Prozess des Lesens oder des Angebens von Informationen) einer Klasse, sondern durch Klonen bereits existierender Objekte erzeugt. Bei diesem Klonen werden alle Eigenschaften (Attribute und Methoden) des Prototyp-Objektes kopiert. Sie können aber überschrieben werden, und das neue Objekt kann mit neuen Eigenschaften versehen werden. Hierzu aber in einem anderen Beitrag mehr.</p>



<h3 class="wp-block-heading">Deklarative Programmierung</h3>



<p>In der Informatik ist die deklarative Programmierung ein Programmierparadigma &#8211; ein Stil zum Aufbau der Struktur und der Elemente von Computerprogrammen -, dass die Logik einer Berechnung ausdrückt, ohne ihren Kontrollfluss zu beschreiben. Folglich wird im Quellcode festgelegt, was in welcher Reihenfolge und wie zu tun ist: „First do this and next do that / Erst dies und dann das tun“.  Ich werde dieses Thema aber noch in einem anderen Beitrag ausführlich behandeln.</p>



<h3 class="wp-block-heading">Imperative Programmierung</h3>



<p>Die Imperative Programmierung ist ein Programmierparadigma, nach dem „ein Programm aus einer Folge von Anweisungen besteht, die vorgeben, in welcher Reihenfolge was vom Computer getan werden soll. Auch dieses Thema wird später noch in einem anderen Beitrag genauer thematisiert.</p>



<h3 class="wp-block-heading">Objektorientierte Programmierung</h3>



<p>Die objektorientierte Programmierung (kurz OOP) ist ein auf dem Konzept der Objektorientierung basierendes Programmierparadigma. Die Grundidee besteht darin, die Architektur einer Software an den Grundstrukturen desjenigen Bereichs der Wirklichkeit auszurichten, der die gegebene Anwendung betrifft. Eines der wichtigsten Programmierparadigmen unserer Zeit. Ich werde noch einige Beiträge zur objektorientierten Programmierung erstellen.</p>



<h3 class="wp-block-heading">Single-thread</h3>



<p>In der Informatik bezeichnet Thread einen Ausführungsstrang oder eine Ausführungsreihenfolge in der Abarbeitung eines Programms. Ein Thread ist Teil eines Prozesses. In meiner Jugend kannte man diesen Begriff noch in Zusammenhang mit Multithreading bei Prozessoren. War damals für uns wie ein Traum. Aber auch zu diesen Begrifflichkeit in einem anderen Beitrag mehr.</p>



<h3 class="wp-block-heading">Dynamische Programmierung</h3>



<p>Die dynamische Programmierung dient zur Lösung eines Optimierungsproblems durch algorithmische Verfahren. Das Problem wird in Teilprobleme zergliedert und es werden systematisch Zwischenergebnisse gespeichert. Auch hierzu in einem späteren Beitrag mehr.</p>



<h3 class="wp-block-heading">Multiparadigmatische Programmiersprachen</h3>



<p>Eine Multiparadigmen Programmiersprache ist eine Programmiersprache, die zur Problemlösung mit verschiedenen Programmierparadigmen die geeigneten Sprachmittel besitzt.</p>



<h3 class="wp-block-heading">Java = / ≠ JavaScript</h3>



<p>Sowohl Java als auch JavaScript sind in den USA und anderen Ländern eingetragene Marken von Oracle. Sie sind aber keineswegs identisch. Obwohl sie ähnlich klingen, sind sie in Bezug auf Syntax, Semantik und Anwendung der Sprache im wirklichen Leben sehr unterschiedlich.</p>



<h3 class="wp-block-heading">Geschichte</h3>



<p>Brendan Eich (Ein Programmierer der Netscape Communication Corporation) hat JavaScript 1995 entwickelt. Offenbar brauchte er etwa 10 Tage, um Mocha zu entwickeln. Später wurde der Name der Sprache in Mona und dann in LiveScript geändert. Derzeit ist sie allgemein als JavaScript bekannt. 1996 wurde es von der ECMA übernommen, die JavaScript mit der ECMAScript Language Specification und den ECMAScript Internationalized API Spezifikationen versah. Im Jahr 2005 traten Eich und Mozilla der ECMA bei, und die JavaScript-Gemeinschaft blühte auf. Im Jahr 2016 nutzten 92 % der Websites JavaScript, von großen Tech-Giganten wie Facebook und Google bis hin zu kleinen Start-Ups, wie <a href="https://www.coezbay.com" target="_blank" rel="noreferrer noopener">meines</a>.</p>



<h3 class="wp-block-heading">Heute</h3>



<p>Derzeit wird die Sprache immer noch überall eingesetzt und ist eine der am häufigsten verwendeten clientseitigen Skriptsprachen. Von 1995 bis heute hat JavaScript einen langen Weg zurückgelegt. Heutzutage wird es innerhalb von HTML-Elementen geschrieben, um Dynamik in Webprojekten und konventionellen Desktop-Anwendungen zu ermöglichen. So ziemlich alle Echtzeit Onlinespiele beinhalten die Sprache. Viele andere Technologien wurden auf der Grundlage von JavaScript entwickelt, zum Beispiel <a href="https://ceosbay.com/2022/11/11/node-js-mit-npm-auf-macos/">NodeJS®</a> &#8211; welches ich in einem anderen Beitrag kurz angeschnitten habe, React &#8211; was ich in einem anderen Beitrag thematisieren werde. JavaScript ist zwar alt und hat eine komplexe Vergangenheit, doch genau diese Tatsache haben wir es zu verdanken, dass sie auch enorm großes Spektrum an Bibliotheken und Frameworks bietet. Hierzu nachfolgend mehr.</p>



<h3 class="wp-block-heading">JavaScript-Bibliotheken</h3>



<p><a href="https://dev.to/t/discuss"></a>Um die Programmierung zu erleichtern, gibt es, wie bereits erwähnt, Unmengen an sogenannter JavaScript-Bibliotheken und -Frameworks. Diese Bibliotheken werden verwendet, um Code für komplexere Funktionalitäten schneller schreiben zu können. Sie ermöglichen es Entwicklern, vorgefertigte Code-Snippets zu nutzen und eigene Code-Snippets für die zukünftige Verwendung zu erstellen und zu speichern. Wenn man solch eine Bibliothek für seine eigenen Routinen erstellt hat und Herr dieser Daten ist, sind auch Zeit- als auch Arbeitsersparnisse die daraus resultieren immens. Beispiele für JavaScript-Bibliotheken sind: jQuery, ReactJS, Google Polymer, Dojo-Toolkit und Three.js. Wobei Three.js eine browserübergreifende JavaScript-Bibliothek und gleichzeitig eine Anwendungsprogrammierschnittstelle zur Erstellung und Anzeige animierter 3D-Computergrafiken in einem Webbrowser mit WebGL darstellt. Letzteres ist eines meiner Lieblingsdinge, mit denen ich mich beruflich als auch privat gerne beschäftige.</p>



<h3 class="wp-block-heading">JavaScript-Frameworks</h3>



<p>JavaScript-Frameworks sind Vorlagen, die eine Codestruktur vorgeben, der man folgen kann. Dadurch wird die Entwicklung teilweise erleichtert. Doch gleichzeitig schränkt es einen auch in gewisser Weise ein, da man als Entwickler gewisse Regeln beachten muss. Beispiele für JavaScript-Frameworks sind. beispielsweise Vue.js, AngularJS und Apache Royale.</p>



<p>Übrigens: Wenn JavaScript ohne die Verwendung von Bibliotheken oder Frameworks geschrieben, wird es als „Vanilla-JavaScript“ bezeichnet.</p>



<h3 class="wp-block-heading">Clientseitiges JavaScript und serverseitiges JavaScript</h3>



<p>JavaScript kann sowohl clientseitig als auch serverseitig genutzt werden. Clientseitiges JavaScript ermöglicht die Manipulation von Browsern und Webseiten. Es führt das Skript im Browser des Nutzers aus und ist eine der häufigsten Verwendungsformen von JavaScript. Ich habe hierzu in einem anderen <a href="https://ceosbay.com/2022/10/30/aus-alt-mach-neu/">Beitrag</a> ein paar Zeilen geschrieben bzw. es findet in der Three.js Web-Anwendung statt, die im Header Bereich <a href="https://cagatayoezbay.com">meiner persönlichen Website</a> zum Einsatz kommt.</p>



<p>Serverseitiges JavaScript läuft nicht im Browser, sondern auf dem Server. Generell ist es weniger verbreitet als clientseitiges JavaScript. Ein Beispiel für ein beliebtes serverseitiges Scripting-Framework für JavaScript ist <a href="https://ceosbay.com/2022/11/11/node-js-mit-npm-auf-macos/">NodeJS®</a>.</p>



<h3 class="wp-block-heading">Fazit</h3>



<p>JavaScript ist eine der wichtigsten Programmiersprachen. Sie ist sehr dynamisch und wird sowohl in der Anwendungs-, Frontend- als auch in der Backend-Webentwicklung verwendet.</p>



<p>Angesichts der möglichen Auswirkungen auf die Geschwindigkeit und Performance der Anwendung oder Webseite ist es wichtig zu verstehen, wie JavaScript funktioniert. Anhand von Best Practices kann man lernen, effektiver zu programmieren und die Leistung seiner Anwendungen und Webseiten zu verbessern. Auch in Bezug auf SEO (Search Engine Optimization = Suchmaschinenoptimierung &#8211; Die Maßnahmen, die dazu dienen, um die Sichtbarkeit einer Webseite und ihrer Inhalte für Benutzer einer Suchmaschine bzw. die Auffindbarkeit zu erhöhen) spielt dies eine sehr große Rolle. Aber das Thema SEO werde ich in einem späteren Beitrag thematisieren.<br></p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/11/12/javascript/">JavaScript &#8211; Die Sprache für interaktive und dynamische Webanwendungen</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2022/11/12/javascript/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">510</post-id>	</item>
	</channel>
</rss>
