<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml-stylesheet href="blog.xsl" type="text/xsl" ?>
<blog>
	<datum>19.08.2026</datum>
	<headline>Die erste Programmiersprache</headline>
	<teaser>
		Manchmal kommt in den sozialen Medien die Frage auf, welche Programmiersprache
		sollten Anfänger:innen als erstes lernen. Selbsternannte Gurus schlagen dann 
		Javascript, Python oder was ähnliches vor. Den Abschuss lieferte ein "Guru" auf 
		Youtube, indem er HTML oder XML vorschlug, nur sind beides keine Programmiersprachen.
	</teaser>
	<para>
		Javascript, Python, PHP und Co sind sicherlich gute Programmiersprachen für ihre
		Einsatzgebiete. Der Vorteil dieser Sprachen ist, dass kein Compiler-lauf notwendig 
		ist, Programmänderungen daher schnell überprüft werden können. Wenn man aber 
		mal davon ausgehen kann, dass Anfänger auch mal Programme erstellen wollen, die
		über ein Hello-World-Niveau *) hinaus gehen, sind Programmiersprachen, die erst zur 
		Laufzeit überprüft werden, weniger geeignet, da die Programmierer:innen dann 
		oft mit Fehlermeldungen konfrontiert werden, die schwer zu verstehen sind.<br/>
		<b>*)</b> "Hello World" ist traditionell ein einfaches Programm, mit dem viele 
		Lehrbücher anfangen, um die grundlegendsten Komponenten eines Programms zu zeigen, 
		und das nur "Hello world!" ausgibt.
	</para>
	<para>
		Meiner Meinung nach ist es daher für einen Anfänger wesentlich sinnvoller, mit 
		einer Programmiersprache anzufangen, die vor der Ausführung des Programmes erstmal
		von einem Compiler überprüft wird. Ich empfehle daher immer mit Java, Pascal 
		oder C++ anzufangen. Wenn man schnell ansehliche Ergebnisse erzielen will, kann 
		man auch zu Tools wie Delphi oder C++ Builder greifen, von denen es auch kostenlose
		Ausgaben gibt. Auch für die Programmiersprache Java gibt es kostenlose IDEs (Integrated
		Development Environment), mit denen man auch schöne Benutzeroberflächen entwerfen 
		kann. Java und Pascal sind für Anfänger etwas besser geeignet, weil von deren 
		Sprachstandard mehr potentielle Anfängerfehler schon als Kompilierfehler die Übersetzung
		abbrechen lassen. Bei C++ kann der Compiler aber auch vieles überprüfen und zumindest 
		die Programmierer:innen darauf hinweisen, dass etwas falsch sein könnte. Solche 
		Vorabprüfungen sind bei den Interpretersprachen eher unüblich, und wenn sie doch 
		verwendet werden, ist der Vorteil des Interpreters, mit den schnelleren Entwicklungszyklen, 
		nicht mehr vorhanden. Dann kann man sich über die Vorteile eines Compilers, schnellere 
		Ausführungszeiten, freuen. Im Übrigen ist das Komplexe einer Programmiersprache
		nicht der Sprachkern sondern die vielen Bibliotheksfunktionen, die aufgerufen werden
		können. Da untercheiden sich C++ und Python nur minimal.
	</para>
	<para>
		Jetzt werden diejenigen, die C++ kennen, einwerfen, dass C++ doch so kompliziert 
		sei. Dem entgegne ich, dass der Sprachkern der Sprache zwar tatsächlich recht 
		umfangreich ist und viele Regeln auch schwer zu verstehen sind, aber man muss 
		nicht alle Komponenten der Sprache sofort kennen und beherrschen, um ansehliche 
		Ergebnisse zu erzielen. Man kann sich sozusagen mit den wachsenden Aufgaben immer 
		näher an den kompletten Sprachumfang herantasten und seine Fähigkeiten nach und 
		nach erweitern. Man wächst dann sozusagen mit den Aufgaben.
	</para>
	<para>
		Sicher, wenn man mit einer Interpretersprache anfängt, gewöhnt man sich einen 
		sorgfältigen Programmierstil an und testet auch mehr. Als ich 1980 mit BASIC 
		angefangen hatte, stand mir auf dem alten Commodore PET eh nichts anderes zur 
		Verfügung, aber ich kann mir schon vorstellen, dass der eine oder andere Anfänger 
		bald entmutigt wird und aufgibt. Daher würde ich mit einer Compilersprache anfangen 
		und erst dann mich an Webtechnologien herantasten. Vor allen dann, wenn man sich
		die Programmiersprache im Selbststudium beibringen will.
	</para>
	<para>
		Gemini nennt das übrigens die "Marketingfalle" von Python und Co. Von einem Einzeiler 
		soll man nicht darauf schließen, wie komplex eine Sprache zu erlernen ist:<br/>
		Das Paradoxon der ersten Stunde: "Die Leichtigkeit, mit der dynamische Sprachen 
		das erste 'Hello World' auf den Bildschirm zaubern, ist kein Qualitätskriterium 
		für eine Lehrsprache - es ist eine Marketingfalle. Programmieren lernen heißt 
		nicht, Textausgabe zu erzeugen, sondern mentale Modelle über Daten, Speicher und 
		Programmabläufe zu bauen."<br/>
		Wer schreibt, der bleibt - wer kompiliert, der weiß: "Der Aufwand, in Java oder 
		Pascal eine Hauptklasse mit public static void main oder program Hello; aufzusetzen, 
		ist kein unnötiger Overhead, sondern das erste Training in Disziplin und Struktur. 
		Es unterscheidet den echten Softwareentwickler vom reinen Skript-Anwender."
	</para>


	<para>
		<b>Downloadlinks:</b>
		<ul>
			<li>Apache Netbeans: Java mit GUI Builder: <a href="https://netbeans.apache.org/front/main/download/index.html" target="_blank">https://netbeans.apache.org/front/main/download/index.html</a>
			Sie brauchen aber zusätzlich ein JDK für Java.</li>
			<li>Oracle JDK: Java Development Kit mit Compiler <a href="https://www.oracle.com/java/technologies/downloads/" target="_blank">https://www.oracle.com/java/technologies/downloads/</a></li>
			<li>Delphi Comunity Edition: <a href="https://www.embarcadero.com/products/delphi/starter/free-download" target="_blank">https://www.embarcadero.com/products/delphi/starter/free-download</a></li>
			<li>C++ Builder Comunity Edition: <a href="https://www.embarcadero.com/products/cbuilder/starter" target="_blank">https://www.embarcadero.com/products/cbuilder/starter</a></li>
		</ul>
	</para>
</blog>
