Welche Sprache lernen?
-
Die Realität ist, daß es keine WM für "obfuscant code" in BASIC gibt.
Und das sagt jetzt genau was aus? Ist das hier relevent? Ich denke eher nicht.
Auch frage ich mich gerade, warum Programmiersprachen fuer Einsteiger immer an natuerlicher Sprache angelehnt sein soll. Ich halte das fuer hinderlich. Wenn man Algorithmen oder Vorgaenge wie z.B. das Zubereiten von Speisen mit Worten beschreibt, so baut man auf Wissen und Erfahrung auf. Salz, Hitze oder Butter sind nichts unbekanntes mehr. Im Kontext des Programmierens hat ein Anfaenger aber dieses "Alltagswissen" nicht, gerade weil z.B. die for-Schleife eher selten im normalen Sprachgebrauch verwendet wird. Daneben gibt es noch andere Hindernisse: Der Computer ist dumm und wir muessen deshalb exakt sein.
Auf was dann eine Programmiersprache aufbauen? Mathematik! (Aber das ist meist nicht das Lieblingsfach in Schule und Studium)
Zu allen anderen: Ihr argumentiert mit Beispielen, die vielleicht fuer euch plausibel sind. Aber in einen wirklichen Anfaenger kann sich niemand hinein versetzen, auch wenn ihr alle mal einer gewesen seid.
So what: Es ist egal, mit welcher Programmiersprache begonnen wird. Man sollte vielleicht drauf achten, dass die Community gross ist, viele Buecher drueber gibt ... falls man mal Fragen hat oder nach Antworten sucht. Deshalb bietet Java gegen ueber Basic (C#, C++, ...) keinen Vorteil.
-
µngbd schrieb:
Überhaupt ist "Lisp" mehr ein Prädikat einer Sprache als eine Sprache.
na, das hört sich aber auch nicht gerade anfängertauglich an.
µngbd schrieb:
pumuckl schrieb:
Die ersten Anfänge sind vom Schwierigkeitsgrad her in allen Sprachen minimal, wenn man die Syntax kennt.
Und das ist der Grund, warum das Zeug doch noch kommt: Lisp hat nämlich keine.
wenn lisp keine syntax hat, wie willst du dann einem lisp-interpreter beibringen, was er machen soll? jede programmiersprache besteht doch aus regeln und einer festgelegten art und weise, wie diese zu formulieren sind, damit der mensch einem computerprogramm eindeutige anweisungen geben kann. ohne syntax müsste das ding raten, was du willst.
knivil schrieb:
Auch frage ich mich gerade, warum Programmiersprachen fuer Einsteiger immer an natuerlicher Sprache angelehnt sein soll. Ich halte das fuer hinderlich. Wenn man Algorithmen oder Vorgaenge wie z.B. das Zubereiten von Speisen mit Worten beschreibt, so baut man auf Wissen und Erfahrung auf. Salz, Hitze oder Butter sind nichts unbekanntes mehr. Im Kontext des Programmierens hat ein Anfaenger aber dieses "Alltagswissen" nicht, gerade weil z.B. die for-Schleife eher selten im normalen Sprachgebrauch verwendet wird.
es geht bei BASIC doch gerade darum, einem anfänger, der noch nie programmiert hat, leicht verständliche analogien zu präsentieren, so dass er möglichst viele ähnliche dinge aus der realität beim programmieren wiederfindet. for i=1 to 5 ... next i => mach was 5 mal hintereinander, kommt auch in der wirklichkeit oft vor (z.b. an 5 tagen der woche zur gleichen zeit aufstehen, wenn i die wochentage zählt). in BASIC haste z.b. das schlüsselwort 'let', das gibts nur aus dem einen grund, damit anfänger eine zuweisung besser lesen können. 'let a=1' ist aus anfängersicht verständlicher als einfach 'a=1', auch wenn ihr's nicht glaubt, weil ihr euch schon viel zu weit von der anfänger-sichtweise entfernt habt.
basic ist im prinzip eine 'domain specific language', wobei die domäne 'alle anfänger' ist.
-
realität beim programmieren wiederfindet. for i=1 to 5 ... next i => mach was 5 mal hintereinander
Naja, ich weiss nicht wie deine Realitaet aussieht, aber ich musste noch nie z.B. 500 Mal als Strafarbeit irgendetwas aufschreiben. Dein Wochenbeispiel ist auch nicht gebraeuchlicher, aber durchaus nachvollziehbar fuer mich als Programmierer.
das gibts nur aus dem einen grund, damit anfänger eine zuweisung besser lesen können
Nein! Das gibt es auch in Lisp und macht da auch was ... Irgendwie muss das Ding ja bezeichnet werden. Da ist es doch naheliegend, Formulierungen aus der Mathematik zu verwenden, z.B. "Let n be a natural number and p ... then ...". Genau wie in Mathe fuehrt es eine neue Bezeichnung fuer ein "Ding" ein. Und Ja! Weil mathematische Beweise auch lesbar sein sollen.
prinzip eine 'domain specific language', wobei die domäne 'alle anfänger' ist.
Nein, so ist Domain fuer Sprachen nicht definiert BASIC ist eine general purpose programming language.
-
Ich hab vor fast genau 20 Jahren mit BASIC angefangen und nie im Leben LET für eine Zuweisung benutzt. Ich hab auch nicht begriffen, was LET heißen soll ("Lasse A gleich 10?"). Dass das eine Formulierung aus der Mathematik ist, die man eher mit "Sei A gleich 10" übersetzt, war mir als Fünftklässler nicht klar.
fricky, hast du denn auch mit BASIC angefangen und immer brav dein LET geschrieben?
-
Bashar schrieb:
Ich hab vor fast genau 20 Jahren mit BASIC angefangen und nie im Leben LET für eine Zuweisung benutzt. Ich hab auch nicht begriffen, was LET heißen soll ("Lasse A gleich 10?"). Dass das eine Formulierung aus der Mathematik ist, die man eher mit "Sei A gleich 10" übersetzt, war mir als Fünftklässler nicht klar.
fricky, hast du denn auch mit BASIC angefangen und immer brav dein LET geschrieben?
Noch nie die Beatles gehört? Let it be ...?
Als Fünftklässler "Let A be ten" zu mißinterpretieren, ist auch stark ...Mein erstes größeres BASIC- Programm war eine Umschreibe eines Kalah- Programms für eine VAX11, deren BASIC hat auf "Let" bestanden.
-
Noch nie die Beatles gehört?
Manche sind nicht im imperialistischen Westen gross geworden ...
-
Bashar schrieb:
Ich hab vor fast genau 20 Jahren mit BASIC angefangen und nie im Leben LET für eine Zuweisung benutzt. Ich hab auch nicht begriffen, was LET heißen soll ("Lasse A gleich 10?"). Dass das eine Formulierung aus der Mathematik ist, die man eher mit "Sei A gleich 10" übersetzt, war mir als Fünftklässler nicht klar.
tja, da hatte ich den Vorteil, dass ich damals kein Englisch konnte und ich es einfach als funktionierend hingenommen habe
Ich hatte erst durch BASIC (damals auf dem C64 meines Vaters) den ersten direkten Kontakt mit der englischen SpracheAber auf "Lass A gleich 10 [sein]" bin ich dann auch als Dreikäsehoch gekommen
-
pointercrash() schrieb:
Noch nie die Beatles gehört? Let it be ...?
Ich gehöre eher der Strawberry-Fields-Fraktion an. Wüßte aber nicht, was das mit dem Thema zu tun hat. "Lasse A 10 sein" konnte ich mir schon irgendwie denken, aber es kam mir halt sinnlos umständlich vor. Tut es immer noch.
ObOnT: Englisch natürlich.
-
knivil schrieb:
Nein! Das gibt es auch in Lisp und macht da auch was ... Irgendwie muss das Ding ja bezeichnet werden. Da ist es doch naheliegend, Formulierungen aus der Mathematik zu verwenden, z.B. "Let n be a natural number and p ... then ...". Genau wie in Mathe fuehrt es eine neue Bezeichnung fuer ein "Ding" ein. Und Ja! Weil mathematische Beweise auch lesbar sein sollen.
naja, in BASIC kannste schreiben 'let a = b' und ein paar zeilen später 'let a = c', das ist vielleicht nicht so ganz mathe- und lisp-konform, in BASIC ist es einfach 'ne zuweisung, keine neue definition oder sowas.
Bashar schrieb:
Ich hab vor fast genau 20 Jahren mit BASIC angefangen und nie im Leben LET für eine Zuweisung benutzt. Ich hab auch nicht begriffen, was LET heißen soll ("Lasse A gleich 10?"). Dass das eine Formulierung aus der Mathematik ist, die man eher mit "Sei A gleich 10" übersetzt, war mir als Fünftklässler nicht klar.
damit hatte ich als anfänger kein problem, habs's etwa gelesen wie: 'lass A jetzt 10 sein' und ein anschliessendes 'print A' hat mich davon überzeugt, dass ich richtig lag.
Bashar schrieb:
fricky, hast du denn auch mit BASIC angefangen und immer brav dein LET geschrieben?
kann mich nicht mehr dran erinnern (hatte 'nen C64, da gings auch ohne 'let'), vielleicht am ersten tag, wo ich noch nicht wusste, was variablen sind, kann's wichtig gewesen sein. bestimmt hätte ich A=1 sonst für die lösung einer rechenaufgabe gehalten, oder sowas.
-
naja, in BASIC kannste schreiben 'let a = b' und ein paar zeilen später 'let a = c', das ist vielleicht nicht so ganz mathe- und lisp-konform, in BASIC ist es einfach 'ne zuweisung, keine neue definition oder sowas.
Doch, weil let eine neue Umgebung (Environment, Kontext, ...) anlegt. Und ausserdem ist a ja nur ein Bezeichner, mit dem ich verschiedene Dinge identifizieren kann. Waere schlimm, wenn ich mir in Mathematik als auch beim Programmieren staendig neue Bezeichner ausdenken muss.
-
knivil schrieb:
Doch, weil let eine neue Umgebung (Environment, Kontext, ...) anlegt.
das macht es in BASIC aber nicht. ich sehe schon, von der mathe-schiene her sollte man sich BASIC wohl besser nicht nähern.
(obwohl ich vor jahren mal dieses buch hatte: http://www.amazon.de/Basic-Programme-zur-Höheren-Mathematik/dp/3923923155 )
-
das macht es in BASIC aber nicht.
Hey im Haskellinterpreter ghci kann ich das auch, ohne einen Fehler zu bekommen.
-
knivil schrieb:
das macht es in BASIC aber nicht.
Hey im Haskellinterpreter ghci kann ich das auch, ohne einen Fehler zu bekommen.
aha, also kannst da auch 'let' vor variablenzuweisungen schreiben und es sogar weglassen, wenn du mal nicht magst?
-
;fricky schrieb:
aha, also kannst da auch 'let' vor variablenzuweisungen schreiben und es sogar weglassen, wenn du mal nicht magst?
Geht sogar in C
#define LET #define BE = LET var BE 7;
-
Nein, weglassen darf ich es nicht, zumindest nicht im Interpreter. Was ich damit sagen will: Haskell als programmierte Mathematik ist genauso geeignet fuer Anfaenger, wenn let als Leselichkeitsargument verwendet wird.
-
Wir blödeln jetzt vor uns hin, aber was der OP erfragt hat, könnte man guten Gewissens VB empfehlen, oder?
- es gibt nicht viel, was damit nicht geht.
- nette RAD- IDE obendrauf.
- breite Community.
- VB.NET wartet mit einem brauchbaren OOP auf.Bis der OP merkt, wo er mit VB nicht weiterkommt, dauerts ohnehin ein paar Tage. Und ich glaube nicht, daß er sich bis dahin sein Programmierergemüt bis in alle Ewigkeit für die "höheren Weihen" verdorben hat. Oder er merkt's nichtmal und ist damit auch glücklich ...
-
knivil schrieb:
Haskell als programmierte Mathematik ist genauso geeignet fuer Anfaenger, wenn let als Leselichkeitsargument verwendet wird.
ja, aber nur für programmieranfänger, die sowieso schon mathefreaks sind, oder die es werden wollen. für den gewöhnlichen anfänger dürften OO- oder prozedurale sprachen interessanter (und auch geeigneter) sein.
@Nexus: in C kannste sogar die geschweiften klammern weglassen, naja, zumindest brauchst du nur 2 im ganzen programm, egal wie gross es ist.
-
oh nein bitte nicht eine solche sprache empfehlen. Man sollte schon gleich was richtiges lernen.
-
player4245 schrieb:
oh nein bitte nicht eine solche sprache empfehlen. Man sollte schon gleich was richtiges lernen.
Was ist denn richtig? Und welche Sprache meinst du?
-
knivil schrieb:
player4245 schrieb:
oh nein bitte nicht eine solche sprache empfehlen. Man sollte schon gleich was richtiges lernen.
Was ist denn richtig? Und welche Sprache meinst du?
Na, das war so eine Meldung wie "spiel' nicht mit den Schmuddelkindern, davon kriegst Du nur Läuse".
Ich versuch's nochmal: Nicht jeder, der den Führerschein machen mag, wird F1- Pilot oder will das werden. Also ab in den Golf Diesel mit der Doppelpedalerie, auch wenn das für jeden Rennfahrer unwürdig ist.
Dann darf jeder für sich feststellen, wie begabt er ist. Was empfiehlt man als Einsteigerdieselkiste, die einen in der Windowswelt fast überall hin tragen kann? Das war wohl die OP- Frage.