{"id":7584,"date":"2013-02-05T00:01:36","date_gmt":"2013-02-04T23:01:36","guid":{"rendered":"http:\/\/www.bernd-leitenberger.de\/blog\/?p=7584"},"modified":"2013-02-03T11:02:26","modified_gmt":"2013-02-03T10:02:26","slug":"was-ist-wichtig-wenn-ich-eine-programmiersprache-lernen-will","status":"publish","type":"post","link":"https:\/\/www.bernd-leitenberger.de\/blog\/2013\/02\/05\/was-ist-wichtig-wenn-ich-eine-programmiersprache-lernen-will\/","title":{"rendered":"Was ist wichtig, wenn ich eine Programmiersprache lernen will"},"content":{"rendered":"<p>Der<a href=\"http:\/\/www.rzbt.haw-hamburg.de\/dankert\/ccppjava.html\/\"> Link von Hans<\/a> hat mich auf etwas gebracht was immer gerne bei den Diskussionen, welche Programmiersprache die beste ist vergessen wird, aber f&uuml;r den Neueinsteiger wichtig ist: Der Komfortfaktor und die Einstiegsschwelle. Um es vorweg zu sagen, ich rede jetzt nicht davon eine Programmiersprache sich anzueignen um Programmieren zu lernen, also systematisch die Konzepte einer Programmiersprache, Algorithmen, Datenstrukturen, die objektorientierte und ereignisorientierte Programmierung mit allem was dazu geh&ouml;rt (Vererbung, Polymorphismus, thread-safe Routinen etc&#8230;) wie es Bestandteil eines Informatikunterrichtes sein sollte, sondern von dem Ansatz her: ich bin Laie, m&ouml;chte sehen ob ich am Programmieren Spa&szlig; habe und vielleicht was n&uuml;tzliches machen kann. Ich will aber nicht Informatiker oder beruflicher Software-Entwickler werden und ich brauche das auch nicht beruflich.<!--more--><\/p>\n<p>Bei den Diskussionen f&uuml;r und gegen eine Sprache kommt man sehr schnell immer auf konkrete Umsetzungen. Denn nat&uuml;rlich sind die Probleme mit Puffer&uuml;berl&auml;ufen bei C bekannt und Compiler sind oft standardm&auml;&szlig;ig so eingestellt dass sie auf den Stack Daten schreiben die sie vor dem R&uuml;cksprung pr&uuml;fen um die Ausf&uuml;hrung von Fremdcode zu verhindern und beim beliebten &#8222;=&#8220; in der If Anweisung gibt&#8217;s zumindest eine Warnung.<\/p>\n<p>Was mich als ich Informatik studierte gest&ouml;rt hat (das war so 2000-2004) wie meilenweit Java und C++ damals von dem Komfortstandard von Delphi entfernt waren. In Delphi konnte ich schon damals relativ einfach visuelle Oberfl&auml;chen gestalten und dann die Ereignisverarbeitungsroutinen schreiben. Trotzdem habe ich nat&uuml;rlich eine leistungsf&auml;hige Sprache im Hintergrund, mit der ich dann auch komplexe Programme schreiben kann. Visual C arbeitete damals mit zig verschiedenen Makros die man einf&uuml;gen musste und visuell konnte man Formulare schon gar nicht designen. Bei Java gab es einen Formulardesigner, aber der war hakelig und schwerg&auml;ngig. Selbst dann sahen die Anwendungen altbacken aus. Zum Ende des Studiums hin hat sich mit C# mit denselben M&ouml;glichkeiten wie Delphi einiges verbessert.<\/p>\n<p>Inzwischen sind ja Ruby und Phyton en Vogue, aber sie haben alle f&uuml;r mich das Henne und Ei Problem. Solange ich damit weniger machen kann als bisher (oder zumindest das, was ich bisher mache nicht m&ouml;glich ist oder ich einen R&uuml;ckschritt zur reinen Programmierung auch von visuellen Oberfl&auml;chen im Quelltexteditor machen muss) solange sind sie f&uuml;r mich keine Alternativen.<\/p>\n<p>F&uuml;r den Anf&auml;nger haben solche komponentenbasierte Systeme den Vorteil, dass er schnell Erfolgserlebnisse hat. Ein Button, einige Eingabefelder und ein Onclick Ereignis und jemand kann schnell eine Berechnung ausf&uuml;hren und das Ergebnis ausgeben. Die gro&szlig;e Gefahr ist, dass man auf diesem Einstiegsniveau kleben bleibt. Ich habe deswegen, als wir vor einigen Monaten diskutiert haben wie es mit dem Informatikunterricht weiter geht, eine ziemliche Diskussion. Da war ein Dozent der genau anderen Meinung als ich: w&auml;hrend ich im ersten Teil nur Konsolenprogramme mache weil ich m&ouml;chte das die Studenten die Grundlagen erlernen, hat dieser immer mit der grafischen Oberfl&auml;che wegen der &#8222;Erfolgserlebnisse&#8220; angefangen. F&uuml;r mich ist sie der zweite Schritt, wobei ich dann die Elemente nicht so vertiefe, sondern dann eben in Algorithmen und komplexere Programme einsteige. Das dort objektorientiert programmiert wird und das System ereignisorientiert ist, kann man bei den wenigen Stunden aber auch nur streifen. F&uuml;r mich ist ein fundiertes Grundger&uuml;st in der prozeduralen Programmierung wichtiger als alles kurz anzusprechen. Doch wer m&ouml;chte der kann sich dies dann aneignen.<\/p>\n<p>Das ist meiner Meinung nach das wichtigste bei einer Programmiersprache f&uuml;r Anf&auml;nger: ein leichter Einstieg, die M&ouml;glichkeit rasch Erfolgserlebnisse zu bekommen, aber auch dass man eine leistungsf&auml;hige Sprache hat, mit den M&ouml;glichkeiten sich weiter zu entwickeln. Ob das ganze dann ein\u00a0 historisch gewachsene Sprache wie Delphi oder Visual BASIC ist, etwas komplett neues von der Wiese wie Ruby, oder so was wie Java die f&uuml;r eine reine Einsteigersprache schon etwas zu komplex ist, man muss sich erst mal in die objektorientierte Programmierung einarbeiten (nichts dagegen und f&uuml;r gr&ouml;&szlig;ere Programme fast unverzichtlich, aber die Einstiegsschwelle ist bei prozeduralem Ansatz doch deutlich niedriger).<\/p>\n<p>Der wohl wichtigste Punkt ist f&uuml;r Anf&auml;nger, dass man die Sprache umsonst bekommt. Schlie&szlig;lich will man erst mal ausprobieren, Leider hat sich bei Borland aka Embaccadero da einiges verschlechtert. Fr&uuml;her gab es noch Delphi Personal Versionen und auch mal Turbo Delphi umsonst &#8211; mit Einschr&auml;nkungen, aber mit denen konnte man leben. Inzwischen ist das nicht mehr so, was auch der Grund bei der Hochschule war, sich von dem Produkt zu verabschieden, weil die Studenten nat&uuml;rlich f&uuml;r &Uuml;bungen zu Hause auch Lizenzen brauchen. Wir haben ja keine Informatiker. Ich glaube daher das keine dieser Lizenzen jemals eine Umsatzverlust bedeutet h&auml;tte, zumal alle mit Online Aktivierung liefen (hat die Uni keine Lizenz mehr l&auml;uft auch die lokal installierte nicht mehr). Wir nutzen nun Lazarus, was in der Oberfl&auml;che und Bedienung einige Generationen hinterher ist, aber weitgehend kompatibel, was die Funktionalit&auml;t angeht. Problematisch ist bei mir dass der Debugger reproduzierbar abst&uuml;rzt wenn er mehr als zweimal in derselben Codezeile &uuml;ber eine Exception stolpert. Aber es ist umsonst und so eine M&ouml;glichkeit f&uuml;r Einsteiger. zudem ist es recht schmal und startet enorm schnell.<\/p>\n<p>Microsoft denkt da weiter und verschenkt seine Express Versionen von Visual Studio nach wie vor. Die Express Version ist eben nur eine Sprache und das reicht ja f&uuml;r Privatpersonen. Da kann man aussuchen ob es Visual Basic oder C# sein soll. Ich w&uuml;rde C# w&auml;hlen, weil man dann relativ leicht zu anderen C-&auml;hnlichen Sprachen wechseln kann. Wie es mit Java, Ruby oder Python aussieht kann ich ehrlich gesagt derzeit nicht sagen, weil ich da seit einigen Jahren nicht mehr mit einer aktuellen IDE gearbeitet habe.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Der Link von Hans hat mich auf etwas gebracht was immer gerne bei den Diskussionen, welche Programmiersprache die beste ist vergessen wird, aber f&uuml;r den Neueinsteiger wichtig ist: Der Komfortfaktor und die Einstiegsschwelle. Um es vorweg zu sagen, ich rede jetzt nicht davon eine Programmiersprache sich anzueignen um Programmieren zu lernen, also systematisch die Konzepte [&hellip;]<\/p>\n","protected":false},"author":169,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4],"tags":[3053,1750,3052,3054],"class_list":["post-7584","post","type-post","status-publish","format-standard","hentry","category-computer","tag-cpython","tag-java","tag-lazarus","tag-ruby","entry"],"a3_pvc":{"activated":false,"total_views":572,"today_views":0},"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":18614,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2026\/03\/29\/galileos-cds-teil-3\/","url_meta":{"origin":7584,"position":0},"title":"Galileos CDS &#8211; Teil 3","author":"Bernd Leitenberger","date":"29. M\u00e4rz 2026","format":false,"excerpt":"So nun zum dritten Teil \u00fcber das prim\u00e4re Computersystem von Galileo, das CDS. Nachdem sich die ersten beiden Teile nur mit dem RCA 1802, warum er gew\u00e4hlt wurde und seiner Architektur befassten geht es heute um das Computersystem selbst. Der Artikel schlie\u00dft so an seine beiden Vorg\u00e4nger gestern und vorgestern\u2026","rel":"","context":"In &quot;Raumfahrt&quot;","block_context":{"text":"Raumfahrt","link":"https:\/\/www.bernd-leitenberger.de\/blog\/category\/raumfahrt\/"},"img":{"alt_text":"","src":"https:\/\/vg07.met.vgwort.de\/na\/6e7f572a246b4ac395de9c260733b707","width":350,"height":200},"classes":[]},{"id":18612,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2026\/03\/28\/galileos-cds-teil-2\/","url_meta":{"origin":7584,"position":1},"title":"Galileos CDS \u2013 Teil 2","author":"Bernd Leitenberger","date":"28. M\u00e4rz 2026","format":false,"excerpt":"So, heute geht es weiter mit Teil 2 \u00fcber Galileos CDS, dieser Beitrag schlie\u00dft nahtlos an den ersten Beitrag von gestern an, wie man schon an der ersten Textzeile sieht. Nach der Einleitung im ersten Teil geht es heute weiter damit warum der RCA 1802 genutzt wurde und was seine\u2026","rel":"","context":"In &quot;Raumfahrt&quot;","block_context":{"text":"Raumfahrt","link":"https:\/\/www.bernd-leitenberger.de\/blog\/category\/raumfahrt\/"},"img":{"alt_text":"","src":"https:\/\/vg07.met.vgwort.de\/na\/191e4b0728de42829cf656027b84dc82","width":350,"height":200},"classes":[]},{"id":13740,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2019\/02\/17\/die-2019-er-spacex-wette\/","url_meta":{"origin":7584,"position":2},"title":"Die 2019-er SpaceX Wette","author":"Bernd Leitenberger","date":"17. Februar 2019","format":false,"excerpt":"Wer mich kennt, wei\u00df, dass ich jedes Jahr eine Wette mit SpaceX eingehe. Das System ist eigentlich sehr einfach: Ich nehme nur eine SpaceX-Aussage und wette dagegen, also, dass sie nicht stimmt oder nicht erreicht wird. Das mache ich schon seit einigen Jahren und bisher habe ich mit einer Ausnahme\u2026","rel":"","context":"In &quot;SpaceX&quot;","block_context":{"text":"SpaceX","link":"https:\/\/www.bernd-leitenberger.de\/blog\/category\/raumfahrt\/spacex\/"},"img":{"alt_text":"","src":"https:\/\/vg06.met.vgwort.de\/na\/7955f286a7004559b4ddbb5d8b481043","width":350,"height":200},"classes":[]},{"id":18610,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2026\/03\/27\/galileos-cds-teil-1\/","url_meta":{"origin":7584,"position":3},"title":"Galileos CDS &#8211; Teil 1","author":"Bernd Leitenberger","date":"27. M\u00e4rz 2026","format":false,"excerpt":"Hall\u00f6chen, es wird Zeit das ich mich mal wieder melde. Es gab zwei Gr\u00fcnde, warum ich mich so rar gemacht habe. Das eine ist das es gerade nicht so viel aktuelles gibt, au\u00dfer einem Update zu Artemis, zu dem ich vielleicht noch etwas schreibe. W\u00e4hrend Trump das ganze Programm nach\u2026","rel":"","context":"In &quot;Raumfahrt&quot;","block_context":{"text":"Raumfahrt","link":"https:\/\/www.bernd-leitenberger.de\/blog\/category\/raumfahrt\/"},"img":{"alt_text":"","src":"https:\/\/vg07.met.vgwort.de\/na\/4fb81c7bafbd4d9d88b5695abdb33d29","width":350,"height":200},"classes":[]},{"id":18502,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2026\/01\/22\/der-ariane-kompatible-orbit\/","url_meta":{"origin":7584,"position":4},"title":"Der Ariane-Kompatible Orbit","author":"Bernd Leitenberger","date":"22. Januar 2026","format":false,"excerpt":"Heute wieder ein Grundlagenblog f\u00fcr alle, die die Grundlagen auf der Website noch nicht entdeckt haben, oder sie ihnen zu detailliert sind oder die einfach nur den Blog lesen. Es geht um einen Begriff, den man heute kaum noch h\u00f6rt, der aber mal das Ma\u00df der Dinge war und was\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/www.bernd-leitenberger.de\/blog\/category\/allgemein\/"},"img":{"alt_text":"","src":"https:\/\/vg06.met.vgwort.de\/na\/901d5ccaac304c8baace44abf9e7aebe","width":350,"height":200},"classes":[]},{"id":18492,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2026\/01\/18\/spacex-nachlese-2025-und-vorausschau-2026\/","url_meta":{"origin":7584,"position":5},"title":"SpaceX Nachlese 2025 und Vorausschau 2026","author":"Bernd Leitenberger","date":"18. Januar 2026","format":false,"excerpt":"Nach meiner allgemeinen Nachlese nun eine spezielle f\u00fcr SpaceX. Starship Das Starship sah ja schon 2023\/2024 nicht gut aus. Gehen wir mal zur\u00fcck zur Jahreswende 2024\/25: Es gab bis dahin 6 Fl\u00fcge des Starship V1 - auch eine Neuerung des letzten Jahres, denn vorher gab es nur ein \"Starship\", nun\u2026","rel":"","context":"In &quot;SpaceX&quot;","block_context":{"text":"SpaceX","link":"https:\/\/www.bernd-leitenberger.de\/blog\/category\/raumfahrt\/spacex\/"},"img":{"alt_text":"","src":"\/img\/starship-v4-tabelle.jpg","width":350,"height":200,"srcset":"\/img\/starship-v4-tabelle.jpg 1x, \/img\/starship-v4-tabelle.jpg 1.5x, \/img\/starship-v4-tabelle.jpg 2x"},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/posts\/7584","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/users\/169"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/comments?post=7584"}],"version-history":[{"count":0,"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/posts\/7584\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/media?parent=7584"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/categories?post=7584"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/tags?post=7584"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}