Welche Programmsprache?

In meiner Nachbarschaft wohnt ein überaus aufgeweckter Junge, der sich
sehr mit Computern beschäftigt. Mittlerweile sind Mathematik und
Physxik seine Lieblingsfächer. Er möchte nun aber richtig Programmieren
lernen. Zu welcher Programmiersprache kann man ihn raten? Der Junge
spricht fließend Englisch, weshalb es da keine Schwierigkeiten gäbe.
Mit Gruß in die Runde, Alexander

Hallo Alexander,

ich würde Java empfehlen.

  1. Die Programmiersprache ist kostenlos (java.sun.com)
  2. Es gibt gleich mehrere kostenlose und ausgezeichnete Entwicklungsumgebungen (eclipse: www.eclipse.org oder netBeans: java.sun.com)
  3. Es gibt (fast) alles für Java und vieles auch noch frei.
  4. Es gibt kostenlose Literatur im Netz (www.galileocomputing.de)

Gruß

Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

In meiner Nachbarschaft wohnt ein überaus aufgeweckter Junge,
der sich
sehr mit Computern beschäftigt. Mittlerweile sind Mathematik
und
Physxik seine Lieblingsfächer. Er möchte nun aber richtig
Programmieren
lernen. Zu welcher Programmiersprache kann man ihn raten?

Das kommt darauf an, was er genau machen will. Für den Anfang empfehle ich persönlich Programmiersprachen, bei denen man den Speicher nicht selbst verwalten muss (sonst ist das oft recht frustrierend). Da bieten sich folgende Sprachen an:
Python, Java, Perl, Ruby, Basic (ist verpönt, aber für den Anfang noch ganz OK) und Pascal.

Ich persönlich finde Skriptsprachen angenehmer wenn man mit einer Sprach noch nicht so gut vertraut ist, deswegen würde ich jetzt mal Python empfehlen. Da lernt er auch gleich richtig einzurücken :wink:.

Grüße,
Moritz

Ich persönlich finde Skriptsprachen angenehmer wenn man mit
einer Sprach noch nicht so gut vertraut ist, deswegen würde
ich jetzt mal Python empfehlen. Da lernt er auch gleich
richtig einzurücken :wink:.

Vollste Zustimmung. Auch ich würde eine Skriptsprache empfehlen, (da) bei der recht schnell Ergebnisse sichtbar sein können. Persönlich würde ich dementsprechend php empfehlen, aber das nimmt sich ja nichts, ob Python, Perl oder php…

Auch würde ich empfehlen html-Seiten als Ausgabe zu haben, denn damit lässt sich auch wieder recht schnell eine Oberfläche kreieren, die als Ergebnis besser geeignet ist als ein prompt.

Gruss, Omar Abo-Namous

Hi Alexander,

es kommt ganz darauf an, was das Ziel des ganzen sein soll. Vorher kann man keinen Tipp geben. (Ich verstehe auch nicht, wie das meine Vorredner konnten?)
Mal ein Paar Beispiele. Soll das Ziel eine WEB-Basierte Geschichte werden, dann haben meine Vorredner recht. Möchte er systemnahe Programmieren, dann z.B. C oder C++. Handelt es sich um einfache Windowsprogramme, Delphi, VB oder C/C++. Die Liste könnte man nahezu beliebig fortsetzen.

Ach ja, es ist natürlich auch nicht unwichtig zu wissen, ob für Hobbyzwecke oder für ein späteres Berufsleben und wie teuer oder billige eine eventuelle Programmierumgebung sein darf.

Also ohne genaue Angaben kann man nur sagen, VB und Pascal/Delphi sind einfach, C/C++ sind schwerer zu erlernen. Java ist auch nicht ganz einfach, da durchgehend objektorientiert, was gerade Anfänger gerne ins straucheln bringt. Die Scriptsprachen fürs WEB (PHP, Pearl, etc.) schenken sich nichts.

Das dürfte jedenfalls der Programmiererdurchschnitt so sehen. (Zumindest die die ich kenne.)

Ansonsten wird dir (mit wenigen Ausnahmen) immer ein C/C++ Programmierer zu C/C++ raten. ein Delphi-Programmierer zu Delphi, ein Java-Programmierer zu …

Gruß

Michi

Hallo Alexander

In meiner Nachbarschaft wohnt ein
überaus aufgeweckter Junge,

so aufgeweckt?

der sich sehr mit Computern beschäftigt. Mittlerweile
sind Mathematik und Physxik seine Lieblingsfächer.
Er möchte nun aber richtig Programmieren
lernen. Zu welcher Programmiersprache kann man ihn raten?

Das ist schwierig zu beantworten. Das kommt darauf
an, was derjenige kann, der es ihm beibringt.

Ehrlich gesagt meine ich, es gibt zwei Herangehensweisen

a) er sollte/könnte etwas über die „Maschine“ lernen, (also C)
b) er sollte/könnte mit einer expressiven Skriptsprache in
kurzer Zeit große Dinge bewerkstelligen,

Zu b) würde ich, wenn er das übersteht, „Perl“ empfehlen -
das ist wie „Karate schon im Kindergarten anfangen“ :wink:

Geht er daran zugrunde, kann er dann immer noch eine
weniger expressive und extravagante Sache angehen, mit
der man auch recht vernünftige Sachen machen kann (PHP,
Python, Ruby) :wink:

Java würde ich eher nicht empfehlen, zumindest nicht
für den Hausgebrauch. Man will ja auch was damit
anfangen können, ohne in einem 150-Mann-Team mit
7 Mega-Frameworks gleichzeitig arbeiten zu müssen :wink:

Der Junge spricht fließend Englisch, weshalb es da keine
Schwierigkeiten gäbe.

http://www.drchip.de/html/perl_in_21_tagen.html
http://web.dadanini.com:7980/books/Perl_in_21Tagen/i…
und evtl. das neue
http://www.oreilly.de/catalog/intermediateperl/

Grüße

CMБ

Hallo,

Vollste Zustimmung. Auch ich würde eine Skriptsprache
empfehlen, (da) bei der recht schnell Ergebnisse sichtbar sein
können. Persönlich würde ich dementsprechend php empfehlen,
aber das nimmt sich ja nichts, ob Python, Perl oder php…

Php kann ich jetzt überhaupt nicht empfehlen, da es 1) einen Webserver zur Ausführung braucht und 2) auf einen sehr speziellen Zweck zugeschnitten ist. Das ist für Anfänger nicht besonders toll.

Auch würde ich empfehlen html-Seiten als Ausgabe zu haben,
denn damit lässt sich auch wieder recht schnell eine
Oberfläche kreieren, die als Ergebnis besser geeignet ist als
ein prompt.

Es geht ums lernen, und Komandozeile ist da deutlich besser geeignet, weil gleich mehrere Schicht wegfallen, die bei CGI auftauchen.

Kommandozeile: Skript Interpreter Konsole Benutzer
CGI: Skript Interpreter Webserver http Browser Benutzer.

Wenn man dann eine falsche Ausgabe bekommt weiss man of nicht, ob das an falschem HTML liegt oder ob die Programmlogik falsch ist.

Grüße,
Moritz

Hallo,

es kommt ganz darauf an, was das Ziel des ganzen sein soll.

Stimmt.

Mal ein Paar Beispiele. Soll das Ziel eine WEB-Basierte
Geschichte werden, dann haben meine Vorredner recht. Möchte er
systemnahe Programmieren, dann z.B. C oder C++. Handelt es
sich um einfache Windowsprogramme, Delphi, VB oder C/C++. Die
Liste könnte man nahezu beliebig fortsetzen.

Da stimme ich dir im Wesentlichen auch noch zu, aber ich würde keinem noch so aufgewecktem Anfänger zumuten, in C ein Windowsprogramm zu schreiben. Das ist Mord an einem jungen Talent :wink:

Ach ja, es ist natürlich auch nicht unwichtig zu wissen, ob
für Hobbyzwecke oder für ein späteres Berufsleben und wie
teuer oder billige eine eventuelle Programmierumgebung sein
darf.

Ich denke für einen Anfänger gibt es gute, kostenlose Compiler und IDEs. Wer sich soetwas kauft ohne vorher die Sprach zu kennen hat eindeutig zu viel Geld.

Die Scriptsprachen fürs WEB (PHP, Pearl, etc.)
schenken sich nichts.

Unsinn. PHP und und Perl (ohne ‚a‘ im Namen) sind unterschiedlicher also sie am Anfang scheinen mögen. Siehe z.B. hier: http://verplant.org/perl.vs.php.shtml

Viel Spass beim zurückflamen,

Moritz

Hallo,

Unsinn. PHP und und Perl (ohne ‚a‘ im Namen)

‚Pearl‘ darf man sagen, wenn man weiss, was man sagt :wink:
vgl.: => the Camel-Book:

 The name then became "Pearl", which mutated into 
 our present-day "Perl", partly because Larry saw a reference to
 another language called PEARL, but mostly because he's too lazy to 
 type five letters all the time. And, of course, <u>so that Perl</u>
<u>could be used as a four-letter word</u>. (You'll note, however, 
 the vestiges of the former spelling in the acronym's gloss: 
 "Practical Extraction And Report Language".)

sind unterschiedlicher also sie am Anfang scheinen mögen.
Siehe z.B. hier: http://verplant.org/perl.vs.php.shtml

‚PHP‘ wurde vielleicht das ‚BASIC‘ des modernen Webs,
so wie Java das ‚COBOL‘ der modernen Keilschrift-Tontäfel-
chenkratzer wurde …

Grüße

CMБ

Hallo,

Ich persönlich finde Skriptsprachen angenehmer wenn man mit
einer Sprach noch nicht so gut vertraut ist, deswegen würde
ich jetzt mal Python empfehlen. Da lernt er auch gleich
richtig einzurücken :wink:.

Da bin ich der selben Meinung. War die zweite Sprache, mit der ich Programmieren begonnen hab (programmiere seit ungefähr 2-3 Jahren mit Python) und benutzte sie immer noch fast jeden Tag. Python ist zwar nicht gerade schnell, aber dafür ungemein flexibel, was ein richtiger Pluspunkt für Anfänger ist. Durch den Live-Interpreter, der bei Python dabei ist, kann man wunderbar Befehle ausprobieren, ohne eine Datei zu schreiben. Die Sprache lässt sich auch endlos erweitern. Wenn man z.B. mal Spiele Programmieren will: PyOpenGL, PyGame, …

Gruß,
Ulrich

Wie alt? [Bücken!]
Das dürfte didaktisch nicht ganz unwichtig sein. Wann man das erste Erfolgserlebnis hat, ist nämlich durchaus unterschiedlich, und für einen Zwölfjährigen bleistiftsweise auch lernerfolgsentscheidend.

Noch ein Randgedanke : Warum nicht die ersten Schritte mit einem programierbaren Taschenrechner unternehmen? Gerade physikalische und mathematische (Schul-) Aufgabenstellungen lassen sich doch sehr schön auf so einem Ding schreiben : Da kann man schnell Ergebnisse erzielen; und bei den Mädels ist er auch noch der King (was bei PC-Programmen eher nicht so doll ist) *g* „der Weise mit dem externen Hirntuning“ …

und Programmieren ist Programmieren ist Programmieren; wer die grundlegende Logik begriffen hat, hat gewonnen.

Gruß Eillicht zu Vensre

Noch ein Randgedanke : Warum nicht die ersten Schritte mit
einem programierbaren Taschenrechner unternehmen? …

und Programmieren ist Programmieren ist Programmieren; wer die
grundlegende Logik begriffen hat, hat gewonnen.

Gruß Eillicht zu Vensre

Hallo Eillicht,

sieh an, ein Turing-Fan. Aber wo findet man heute einen programmierbaren Taschenrechner (ausser auf jedem meiner Arbeitsplätze natürlich)?

Gruss Reinhard

Hallo,

Vollste Zustimmung. Auch ich würde eine Skriptsprache
empfehlen, (da) bei der recht schnell Ergebnisse sichtbar sein
können. Persönlich würde ich dementsprechend php empfehlen,
aber das nimmt sich ja nichts, ob Python, Perl oder php…

Php kann ich jetzt überhaupt nicht empfehlen, da es 1) einen
Webserver zur Ausführung braucht und 2) auf einen sehr
speziellen Zweck zugeschnitten ist. Das ist für Anfänger nicht
besonders toll.

Damit hast du natürlich Recht, die Programmierumgebung ist um einiges umfangreicher als bei einer Kommandozeilensprache (auch wenn php auch als solche verwendet werden kann). Aber die Umgebung kann man ja soweit vorbereiten und demjenigen sagen, er soll die Skripte, die er schreibt in ein bestimmtes Verzeichnis ablegen. Mein Anliegen ist eigentlich, dass Neuprogrammierer schnell ‚schöne‘ Ergebnisse sehen können. Ich habe es bereits mit meiner kleinen Schwester ausprobiert und sie schien mit der Idee (Design und Programmierung in einem Schritt (mehr oder minder)) sehr zufrieden zu sein (auch wenn sie danach nicht weitergemacht hat).

Gruss, Omar Abo-Namous

Hallo Michael,

es kommt ganz darauf an, was das Ziel des ganzen sein soll.

Dieser Meinung kann ich nicht zustimmen. Es ist uninteressant, in welche Richtung jemand weiterprogrammieren möchte, wenn er zunächst einmal die Grundelemente der Programmierung (Schleifen, Unter-Routinen/Subs/funktionen, Abfragen usw…) erlernen möchte. Die sind in fast jeder Sprache gleich. Wenn das nicht so speziell wäre, hätte ich im Normalfall LabView als Einstieg vorgeschlagen, denn damit lassen sich tatsächlich „Bausteine“ einsetzen, ohne dass die grossen Tippfehler gemacht werden müssten. Leider ist das ein wenig zu teuer (für Anfänger) und ausserdem würde dieser Anfänger beim Umstieg auf eine textbasierte Programmiersprache vor den Kopf gestossen.

Was ich meine ist: Keiner fängt damit an, einen Treiber zu schreiben, bevor er nicht verstanden hat, wie if-Abfragen programmiert…

Gruss, Omar Abo-Namous

… Aber wo findet man heute einen
programmierbaren Taschenrechner (ausser auf jedem meiner
Arbeitsplätze natürlich)?

Hallo,
gibt es in Zeiten von Laptop und Palmtops und PDAs diese Saurier wirklich noch? Mein Büronachbachbar hat z.B. vor wenigen Wochen ein Microgerät angeschleppt, für das wir ihn vor wenigen Jahren an der Uni locker umgebracht hätten, superklein, Klassergrafik, Linux drauf … :smile:

Erinnerungen an meinen ersten HP67 (den mit dem ewig kaputten Motor für die Magnetkarten) und das ‚Spiel‘ Lunar-Lander werden wach.

Gruss
bernhard

‚Pearl‘ darf man sagen, wenn man weiss, was man sagt :wink:
vgl.: => the Camel-Book:

The name then became „Pearl“,
which mutated into
our present-day „Perl“, partly because Larry saw a reference
to
another language called PEARL,…

Hallo,

das „echte“ PEARL gibt es nach wie vor (Process and Experiment Automation Realtime Language). Es ist nach DIN genormt und wird wohl von der Uni Hannover gepflegt. Mit Perl hat es ausser der Tatsache, dass beides Programmiersprachen sind, kaum etwas gemein. Da es von völlig verschiedenen Anwenderkreisen benutzt wird, besteht auch kaum Verwechslungsgefahr.

Gruss Reinhard

Hallo.

gibt es in Zeiten von Laptop und Palmtops und PDAs diese Saurier
wirklich noch?

Ja, in der Tat *tüt* … zum Bleistift da, wo es nicht auf die eierlegende Wollmilchsau ankommt, die von allem ein bisschen und dann doch nix richtig kann, sondern auf schiere Rechenleistung. Ich habe mir selbst wieder einen Rechner angeschafft, der genau das ist - mit Matrizenrechnung, Grafikdisplay, Bla und Blubb. Selbst bei HP gibt es inzwischen die algebraische Notation, also nix mehr mit rechnen wie Yoda spricht. Bis mindestens Sek II leistet das Gerät sehr gute Dienste, und wie ich schon schrub : Programmieren lernt sich darauf mindestens genau so gut wie auf den üblichen Hirnprothesen. Hinzu kommt, dass Taschenrechner nicht bimmeln und sich auch keine Viren einfangen - höchstens die Mogelgrippe, wenn der Lehrer vor der Klassenarbeit die Batterien rausnimmt :wink:

Gruß Eillicht zu Vensre

1 Like

… nix mehr mit rechnen wie Yoda spricht …

Klasse-Kommentar zu UPN!

gruss
bernhard

Hallo Michi,

es kommt ganz darauf an, was das Ziel des ganzen sein soll.
Vorher kann man keinen Tipp geben. (Ich verstehe auch nicht,
wie das meine Vorredner konnten?)
Mal ein Paar Beispiele. Soll das Ziel eine WEB-Basierte
Geschichte werden, dann haben meine Vorredner recht. Möchte er
systemnahe Programmieren, dann z.B. C oder C++. Handelt es
sich um einfache Windowsprogramme, Delphi, VB oder C/C++. Die
Liste könnte man nahezu beliebig fortsetzen.

Grundsätzlich stehen Pascal, bzw. der Nachfolger Modula, eigentlich immer noch ganz oben auf der Liste, der Anfängersprachen, weil dies die einzigen Programmi9ersprachen sind, welche nach didaktischen Gesichtspunkten gestaltet wurden (ausgenommen noch die „Kindersprache“ LOGO mit der Schildkröten-Graphik).
Pascal geht sehr streng mit den Datentypen um und erzieht dadurch zu einem unterscheiden dieser.

Ganz gefährlich ist in diesem zusammenhang z.B. BASIC, welches es normalerweise zulässt einen Integer einer Strinvariablen zuzuweisen. Spätestens bei C lässt dies zwar der Compiler noch zu, aber zur Laufzeit gescheen dann verwirrende Dinge.
Pascal ist zwar sehr geignet das Programmieren zu lernen, hat dann aber seine Grenzen, wenn es um praktische Programme geht.

Wie ich leider immer wieder bewiesen bekomme, ist C/C++ eine Sprache für „Erwachsene“. Vieles was in C zulässig ist, sollte nicht in jedem Fall auch gemacht werden. Gerade wenn Programme auf unterschiedlichen CPUs laufen sollen, zeigt sich ob jemand verstanden hat wie eine CPU arbeitet oder nicht (z.B. Big/Little Endian, unterschiedliche grössen von int, unterschiedliche Speicherbelegung von structs, usw.). Viele Laufzeitprobleme entstehen auch schon beim Mischen von signed/unsigned.

MfG Peter(TOO)
P.S. Seit 20 Jahren gehöre ich zum C-Lager. Angefangen habe ich vor über 30 Jahren mal mit BASIC auf einem Wang 2200VT, dann kam 6502-Assembler und jede menge anderer Programmiersprachen.

1 Like

Hallo Peter,

Grundsätzlich stehen Pascal, bzw. der Nachfolger Modula,
eigentlich immer noch ganz oben auf der Liste, der
Anfängersprachen, weil dies die einzigen Programmiersprachen
sind, welche nach didaktischen Gesichtspunkten gestaltet
wurden

Die Frage ist dann allerdings, ob diese „Gestaltung nach …“
auch gelungen ist ? :wink:

Pascal geht sehr streng mit den Datentypen um und erzieht
dadurch zu einem unterscheiden dieser.

Nun gut, Pascal ist ja per Absicht als eine
streng typisierte Sprache entstanden, um ein
günstiges Laufzeitverhalten auf (damals) zeitge-
nössischer Architektur zu haben.

Die Datentypen in Pascal sind dabei *exakt* die
zugrundeliegenden Gegebenheiten der Maschine,
also wie in C - wobei Pascals String-Typ die einzige
vorsichtige Abstraktion darstellt.

Ganz gefährlich ist in diesem zusammenhang z.B.
BASIC, welches es normalerweise zulässt einen
Integer einer Stringvariablen zuzuweisen.

Das halte ich gar nicht für gefährlich. Nur dann,
wenn die Prämisse „Maschinennähe“ lautet, ist so etwas
bestenfalls ineffizient.

Spätestens bei C lässt dies zwar der Compiler noch
zu, aber zur Laufzeit gescheen dann verwirrende Dinge.

Verwirrend? Eigentlich nicht. Dann hast
Du einen Zeiger!? Dachte ich?

Pascal ist zwar sehr geignet das Programmieren zu lernen, hat
dann aber seine Grenzen, wenn es um praktische Programme geht.

Das finde ich eigentlich auch nicht. Seinerzeit zum Ende
des Studiums (lang ist’s her) habe ich (learning by doing)
eine „größere“ Anwendung in Turbo-C/BGI geschrieben, ein
Kommilitone hat als „Konkurrent“ eine ähnliche Anwendung
in Turbo-Pascal/BGI gebaut. Beide Programme konnten
schöne Dinge und waren ziemlich umfangreich :wink:

Wie ich leider immer wieder bewiesen bekomme, ist C/C++ eine
Sprache für „Erwachsene“. Vieles was in C zulässig ist, sollte
nicht in jedem Fall auch gemacht werden. Gerade wenn Programme
auf unterschiedlichen CPUs laufen sollen, zeigt sich ob jemand
verstanden hat wie eine CPU arbeitet oder nicht (z.B.
Big/Little Endian, unterschiedliche grössen von int,
unterschiedliche Speicherbelegung von structs, usw.). Viele
Laufzeitprobleme entstehen auch schon beim Mischen von
signed/unsigned.

Ja, aber das ganze Spiel macht man, weil die
Prämisse existiert, ein bestimmtes Problem mit
maximaler (Maschinen-)Geschwindigkeit zu lösen.
Ist dies nicht nötig, wäre es imho ausgesprochen
ungünstig, ein komplexes Programm in C zu schreiben.
Das geht zwar (hab ich selber früher genug gemacht),
aber die Produktivität ist sehr niedrig und die
Wartbarkeit (Robustheit) gerade bei C „verschwindend“.

P.S. Seit 20 Jahren gehöre ich zum C-Lager. Angefangen habe
ich vor über 30 Jahren mal mit BASIC auf einem Wang 2200VT,
dann kam 6502-Assembler und jede menge anderer
Programmiersprachen.

Ich finde „schwache Typisierung“ für die entsprechende
Problemdomäne gar nicht schlecht, - dadurch sind
„generische Konzepte“ bereits kostenlos „mit“ zu haben, -
etwas, wofür man bei sinnvoll (C++ usw.) typisierten
bzw. unsinnig (Java usw.) typisierten Sprachen große
Bibliotheken und/oder Basteleien hinzuziehen muß :wink:

Grüße

CMБ