Servus!
Welche Programmiersprache kann man einem blutigen Anf�nger empfehlen? Pr�missen: - Compiler und gute Anf�ngerdoku/Tutorials "frei" (wie in Freibier; Freiheit w�re aber auch nicht schlecht) - Platform Linux (mindestens) - geeignet f�r jemanden, der noch nie mit Programmierung zu tun hatte, aber trotzdem wei�, was eine "Datei" ist ;-) - praxisrelevant (Modula und Oberon scheiden damit aus)
Ich w�rde ja beinahe zu Java tendieren...
Gru�, Eric
Hallo, Am Mittwoch, 23. Januar 2002 17:45 schrieb Eric Schaefer:
Ich würde ja beinahe zu Java tendieren...
hmm, voll ins kalte Wasser. Ich habe als Script (perl,php,bash) und 4GL-Programmierer so meine Probleme mit Java, was wohl an der fehlenden Verinnerlichung der Objektorientierung liegt. Dazu kommen noch tausende Klassen, von deren Existenz und/oder Notwendigkeit man erst mal nix weiss. Und da, obwohl ich schon etwas mehr weiss , als was eine Datei ist.
Aber einen Rat kann ich die auch nicht geben, weil ich nix anderes kenne.
Mit freundlichen Grüßen
Jens Puruckherr
was h�llstn von kylix?
das ist einfacher als pascal, weil de damit dir die anwendung zusammenziehst und dann nur noch sagen musst, was wann passiert, weiterhin ist das durch delphi ziemlich tutorialreich!
cu
Am 23.01.02 17:45:56, schrieb Eric Schaefer eric@gixgax.de:
Servus!
Welche Programmiersprache kann man einem blutigen Anf�nger empfehlen? Pr�missen:
- Compiler und gute Anf�ngerdoku/Tutorials "frei" (wie in Freibier; Freiheit
w�re aber auch nicht schlecht)
- Platform Linux (mindestens)
- geeignet f�r jemanden, der noch nie mit Programmierung zu tun hatte,
aber trotzdem wei�, was eine "Datei" ist ;-)
- praxisrelevant (Modula und Oberon scheiden damit aus)
Ich w�rde ja beinahe zu Java tendieren...
Gru�, Eric -- Eigentlich sollten Konjunktive prinzipiell meistens vermeidbar sein.
- Rainer Kersten in <dasr>
Lug-dd maillist - Lug-dd@schlittermann.de http://mailman.schlittermann.de/mailman/listinfo/lug-dd
On Wed, Jan 23, 2002 at 06:17:27PM +0100, Carsten Möhl wrote:
was hällstn von kylix?
das ist einfacher als pascal, weil de damit dir die anwendung zusammenziehst und dann nur noch sagen musst, was wann passiert, weiterhin ist das durch delphi ziemlich tutorialreich!
Naja, kylix ist dafuer aber nur sehr...beschraenkt einsetzbar. Mal im Ernst, die Borland Klickibunti-Programme sind zwar ganz nett, wenn man noch nichts anderes gesehen hat, aber ab einer bestimmten Stelle wird man einfach wesentlich besser, wenn man sie laesst (das sag ich mal aus eigener Erfahrung :)).
Apropos, was spricht eigentlich gegen C++? Wenn man es nicht darauf anlegt, beim code obfuscation contest einen Preis zu gewinnen, ist die Sprache seehr huebsch, und so gigantisch sind die Unterschiede zu Java auch nicht (bevor Kommentare kommen: ich beziehe mich auf Josefs Aussage mit den Fremdsprachen, natuerlich lernt man eine Sprache erst beim Programmieren).
cu, Ulf
On Wed, Jan 23, 2002 at 06:17:27PM +0100, Carsten Möhl wrote:
was hällstn von kylix?
Ich dachte, da sollte jemand _programmieren_ erlernen...
SCNR
Ciao, Tobias
Tag,
On Wednesday, 23. January 2002 17:45, Eric Schaefer wrote:
Servus!
Welche Programmiersprache kann man einem blutigen Anfänger empfehlen?
Vielleicht Python? http://www.honors.montana.edu/~jjc/easytut/easytut/ (Der Autor ist kein Unbekannter)
Prämissen:
- Compiler und gute Anfängerdoku/Tutorials "frei" (wie in Freibier;
Freiheit wäre aber auch nicht schlecht)
Hm, warum Interpreter von der Wahl ausschließen :)
- Platform Linux (mindestens)
- geeignet für jemanden, der noch nie mit Programmierung zu tun hatte, aber trotzdem weiß, was eine "Datei" ist ;-)
- praxisrelevant (Modula und Oberon scheiden damit aus)
ALGOL60!
Ich würde ja beinahe zu Java tendieren...
Der Wahnsinn hat Methode.
Josef Spillner
On Wed, Jan 23, 2002 at 05:45:56PM +0100, Eric Schaefer wrote:
Ich würde ja beinahe zu Java tendieren...
*örks* Vergleiche mal
class Hello { public static void main() { System.out.println("Hello World!"); } }
mit
print "Hello World!";
Um das obere vollständig zu erklären brauchst du garantiert mehr als eine halbe Stunde. Java is extrem einsteigerunfreundlich. Bei einer Einsteigersprache muß man mit wenig Wissen schon kleine Programme schreiben können. Das geht mit Java _nicht_.
Vielleicht Basic oder Phyton oder Perl?
Reinhard
Reinhard Foerster (rf11@inf.tu-dresden.de) wrote:
class Hello { public static void main() { System.out.println("Hello World!"); } } Um das obere vollständig zu erklären brauchst du garantiert mehr als eine halbe Stunde. Java is extrem einsteigerunfreundlich.
Das mag zwar so aussehen. Aber dafür versteht man, wenn man mit Java anfängt, gleich von Anfang an OOP (bzw. man wird dazu gezwungen). Das ist IMHO ein großer Vorteil.
Ein Bekannter von mir programmiert sonst nur Perl, will jetzt Java lernen, und ihm haben schon mindestens 3 Leute + 2 Bücher versucht, OOP zu erklären - er kapiert es einfach nicht.
Java als Einstieg hat also seine Vorteile. Wenn es als erste Programmiersprache aber zu schwer/kompliziert/mächtig ist (die Doku ist allerdings im Allgemeinen sehr gut!), dann kann ich das auch verstehen. Dann ist wohl Perl zu empfehlen, denn damit kommt man wirklich sehr schnell zu Ergebnissen.
Ich kann das Buch "Perl 5 für Dummies" empfehlen ... damit habe ich es an einem halben Tag gelernt.
Andreas
Bonsoir,
On Wednesday, 23. January 2002 18:51, Andreas Reich wrote:
Das mag zwar so aussehen. Aber dafür versteht man, wenn man mit Java anfängt, gleich von Anfang an OOP (bzw. man wird dazu gezwungen). Das ist IMHO ein großer Vorteil.
<drittsemesternitpick> Naja, schade daß ich mir das Beispiel aus der letzten Vorlesung nicht aufgeschrieben habe... 3 mal casten in einer Zeile, das muß man selbst in C erstmal hinbekommen. Und warum? Weil eine Integer-Zahl nicht von Object abgeleitet ist. Java ist also eine Hybrid-Sprache, auch wenn sie im Gegensatz zu C++ schon "objektorientierter" ist. </drittsemesternitpick>
Ein Bekannter von mir programmiert sonst nur Perl, will jetzt Java lernen, und ihm haben schon mindestens 3 Leute + 2 Bücher versucht, OOP zu erklären - er kapiert es einfach nicht.
Falsche Leute, falsche Bücher oder keine Motivation? Aber bei den Programmiersprachen ist es so wie mit den Fremdsprachen: Die erste erlernt man in vielen Jahren, die zweite in wenigen Jahren, die dritte in ein paar Monaten... Er sollte also, auch wenn er OOP nicht versteht, nicht aufgeben, sondern z.B. mal eine andere OOP-Sprache probieren... nicht ständig was neues, aber wenn es mit Java nix wird hat es keinen Sinn ihm daran das OOP-Prinzip zu erklären.
Java als Einstieg hat also seine Vorteile. Wenn es als erste Programmiersprache aber zu schwer/kompliziert/mächtig ist (die Doku ist allerdings im Allgemeinen sehr gut!), dann kann ich das auch verstehen.
Bei Java ist die Einstiegshürde einfach höher. Beispielsweise gibt es kaum Beispielprogramme zu einfacheren Sachen... als ich letztens ein "beginners tutorial" gefunden habe, ging es darum, die Klasse Vector zu erklären... anhand eines multithreaded Webservers. Ich kann mir auch vorstellen, daß das blinde Verlassen auf die Garbage Collection (als Einsteiger wird man die nicht wirklich kontrollieren wollen) z.B. Probleme beim Umstieg auf C++ verursacht: "Hey, mein Programm ist toll, das ist bei top(1)+M schon ganz oben!" Aber das nur so als Vermutung... wie es wirklich ist, wird wohl nur einer sagen können, der mit Java angefangen hat, und das Phänomen tritt (noch?) nicht allzu gehäuft auf.
Dann ist wohl Perl zu empfehlen, denn damit kommt man wirklich sehr schnell zu Ergebnissen.
Ja, Perl ist nicht schlecht wenn man Datentypen, Kontrollstrukturen u.s.w. lernen will, aber ein schneller Wechsel zu einer GUI-enabled Programmiersprache wird dann nicht ausbleiben, weil gerade wenn man seine ersten Programme geschrieben hat will man doch zeigen wie toll die sind. (Also kein Perl/Tk oder Perl/Qt) Oder ist das heute nicht mehr so? Hm. Also ich hab da noch recht gute Erinnerungen an QBasic, da war, nach dem ich den Grafikmodus "entdeckt" habe (Dokus hatte ich keine außer der mitgelieferten), der Textmodus passé, und zwar bis ans Ende meiner QBasic-Zeit.
Ich kann das Buch "Perl 5 für Dummies" empfehlen ... damit habe ich es an einem halben Tag gelernt.
Wow - ich hab das selbe Buch gelesen und hab ein wenig länger gebraucht. Perl schreiben ging recht schnell, aber vorhandene Scripts abändern - das brauchte seine Zeit :)
Josef Spillner
Josef Spillner (dr_maux@maux.de) wrote:
On Wednesday, 23. January 2002 18:51, Andreas Reich wrote:
<drittsemesternitpick> Naja, schade daß ich mir das Beispiel aus der letzten Vorlesung nicht aufgeschrieben habe... 3 mal casten in einer Zeile, das muß man selbst in C erstmal hinbekommen. Und warum? Weil eine Integer-Zahl nicht von Object abgeleitet ist. Java ist also eine Hybrid-Sprache, auch wenn sie im Gegensatz zu C++ schon "objektorientierter" ist. </drittsemesternitpick>
Jein. Es gibt natürlich native Datentypen - int, char, etc. - aber sonst gilt: "Alles ist Objekt" ;) Das mit den Integern ist wirklich ein Nachteil, wenn man z.B. eine Hashtable hat und aus einem int jedesmal ein Objekt Integer machen muss. Keine Sprache ist perfekt ;)
Was außerdem ein bisschen unschön ist: Wenn man bspw. ein Objekt aus einer Enumeration hat, muss man es erst in den Typ casten, den man will. Hier hilft eine sehr gute Java-Erweiterung namens GJ (Generic Java). Den Link habe ich gerade nicht parat, aber es ist auf jeden Fall einen Blick wert.
Ein Bekannter von mir programmiert sonst nur Perl, will jetzt Java lernen, und ihm haben schon mindestens 3 Leute + 2 Bücher versucht, OOP zu erklären - er kapiert es einfach nicht.
Falsche Leute, falsche Bücher oder keine Motivation?
Die Leute sollten eigentlich richtig sein, die Bücher sind eigentlich auch gut, die Motivation ist eigentlich auch da - aber er sieht den Sinn in OOP einfach nicht.
Bei Java ist die Einstiegshürde einfach höher. Beispielsweise gibt es kaum Beispielprogramme zu einfacheren Sachen... als ich letztens ein "beginners tutorial" gefunden habe, ging es darum, die Klasse Vector zu erklären... anhand eines multithreaded Webservers.
Das liegt bestimmt daran, dass es in Java so einfach ist, einen multithreaded Webserver zu schreiben :P
Nun im Ernst, dann hat da jemand ein schlechtes Tutorial geschrieben. Ist das ein Grund gegen die Sprache? (Nein, kein Flamewar ;)
Ich kann mir auch vorstellen, daß das blinde Verlassen auf die Garbage Collection (als Einsteiger wird man die nicht wirklich kontrollieren wollen) z.B. Probleme beim Umstieg auf C++ verursacht: "Hey, mein Programm ist toll, das ist bei top(1)+M schon ganz oben!"
Naja, wer C++ lernt, sollte schon wissen, was er tut ... aber die Garbage Collection ist wirklich sehr praktisch bei Java.
Aber das nur so als Vermutung... wie es wirklich ist, wird wohl nur einer sagen können, der mit Java angefangen hat, und das Phänomen tritt (noch?) nicht allzu gehäuft auf.
Ich habe zuerst Java gelernt, dann C/C++. Und ich achte schon auf meinen Speicher bei C ...
Ja, Perl ist nicht schlecht wenn man Datentypen, Kontrollstrukturen u.s.w. lernen will, aber ein schneller Wechsel zu einer GUI-enabled Programmiersprache wird dann nicht ausbleiben, weil gerade wenn man seine ersten Programme geschrieben hat will man doch zeigen wie toll die sind. Oder ist das heute nicht mehr so?
Ich habe Perl bisher immer nur für CGIs und Konsolenjobs benutzt. An GUIs mit Perl habe ich mich nie rangewagt, dafür ist es IMHO auch nicht wirklich geeignet. (GUIs in Java mag ich übrigens auch nicht.)
Wow - ich hab das selbe Buch gelesen und hab ein wenig länger gebraucht. Perl schreiben ging recht schnell, aber vorhandene Scripts abändern - das brauchte seine Zeit :)
Habe ich gesagt, dass ich sofort vorhandene Scripts abändern konnte? :)
Andreas
On Wed, Jan 23, 2002 at 08:02:11PM +0100, Andreas Reich wrote:
Ich habe Perl bisher immer nur f�r CGIs und Konsolenjobs benutzt. An GUIs mit Perl habe ich mich nie rangewagt, daf�r ist es IMHO auch nicht wirklich geeignet. (GUIs in Java mag ich �brigens auch nicht.)
Also Skriptsprachen habe ich von vornherein ausgeschlossen. Ich bin der Meinung, da� man mit Perl (als Bsp.) nicht wirklich Programmieren lernen kann, da es nicht mal vern�nftige Typen gibt. Mit jeder "richtigen" Sprache wird man dann richtig auf die Schn#*�$ fliegen. Es wird sicher nicht um sonst MODULA gelehrt, denn das hat ein sehr strenges Typsystem. Ich pers�nlich habe mit BASIC angefangen und glaube erst wirklich brauchbaren Code mit Pascal geschrieben zu haben. Ich habe mir gedacht, da� diese Enw�nde zu Java kommen, denn das waren auch meine Gedanken, aber ich dachte auch, da� es einen Grund haben mu�, warum Java jetzt schon Erstsemestern beigebracht wird... Delphi und �hnliche RAD Dinger halte ich f�r richtiggehend falsch, da man erstmal Programmiermethodik erlernen mu� um mit sowas richtige Programme zu schreiben (man sollte schon kapieren was unter der Haube passiert).
Hier mal meine pers�nliche Checkliste zum Thema: - BASIC [ ] (Spielzeug) - Pascal [ ] (das will man niemandem antun) - C [ ] (n�, n�, ab Kapitel drei dann Pointerarithmetik oder was?) - C++ [X] (f�r einfache Programme sind Pointer unn�tig ->Referenzen, und der OO Kram ist ganz leidlich) - Java [ ] (Einsteigerunfreundlich) - MODULA/Oberon [ ] (Einsteigerfreundlich aber b�kse) - Perl/PHP/*sh/younameit [ ] ("Wurstelsprachen") - Delphi/kylix/RAD [ ] ("programmieren lernen" != "klicken lernen") - Vorschl�ge bitte (Begr�ndung?)
Ich denke es wird auf C++ hinauslaufen. Ich selbst habe nur den Stroustroup in Englisch, kennt jemand brauchbare Tutorials auf Deutsch, die nicht (!!) C voraussetzen? Online?
Gru�, Eric
On Wed, 23 Jan 2002, Eric Schaefer wrote:
Date: Wed, 23 Jan 2002 23:09:59 +0100 From: Eric Schaefer eric@gixgax.de Reply-To: lug-dd@schlittermann.de To: lug-dd@schlittermann.de Subject: Re: [Lug-dd] Programmiersprache fuer Anfaenger
On Wed, Jan 23, 2002 at 08:02:11PM +0100, Andreas Reich wrote:
Ich habe Perl bisher immer nur f�r CGIs und Konsolenjobs benutzt. An GUIs mit Perl habe ich mich nie rangewagt, daf�r ist es IMHO auch nicht wirklich geeignet. (GUIs in Java mag ich �brigens auch nicht.)
Also Skriptsprachen habe ich von vornherein ausgeschlossen. Ich bin der Meinung, da� man mit Perl (als Bsp.) nicht wirklich Programmieren lernen kann, da es nicht mal vern�nftige Typen gibt. Mit jeder "richtigen" Sprache wird man dann richtig auf die Schn#*�$ fliegen. Es wird sicher nicht um sonst MODULA gelehrt, denn das hat ein sehr strenges Typsystem. Ich pers�nlich habe mit BASIC angefangen und glaube erst wirklich brauchbaren Code mit Pascal geschrieben zu haben. Ich habe mir gedacht, da� diese Enw�nde zu Java kommen, denn das waren auch meine Gedanken, aber ich dachte auch, da� es einen Grund haben mu�, warum Java jetzt schon Erstsemestern beigebracht wird... Delphi und �hnliche RAD Dinger halte ich f�r richtiggehend falsch, da man erstmal Programmiermethodik erlernen mu� um mit sowas richtige Programme zu schreiben (man sollte schon kapieren was unter der Haube passiert).
Hier mal meine pers�nliche Checkliste zum Thema:
- BASIC [ ] (Spielzeug)
- Pascal [ ] (das will man niemandem antun)
- C [ ] (n�, n�, ab Kapitel drei dann Pointerarithmetik oder was?)
- C++ [X] (f�r einfache Programme sind Pointer unn�tig ->Referenzen, und der OO Kram ist ganz leidlich)
- Java [ ] (Einsteigerunfreundlich)
- MODULA/Oberon [ ] (Einsteigerfreundlich aber b�kse)
- Perl/PHP/*sh/younameit [ ] ("Wurstelsprachen")
- Delphi/kylix/RAD [ ] ("programmieren lernen" != "klicken lernen")
- Vorschl�ge bitte (Begr�ndung?)
Ich denke es wird auf C++ hinauslaufen. Ich selbst habe nur den Stroustroup in Englisch, kennt jemand brauchbare Tutorials auf Deutsch, die nicht (!!) C voraussetzen? Online?
Gru�, Eric -- Eigentlich sollten Konjunktive prinzipiell meistens vermeidbar sein.
- Rainer Kersten in <dasr>
Lug-dd maillist - Lug-dd@schlittermann.de http://mailman.schlittermann.de/mailman/listinfo/lug-dd
Ich verstehe nicht was Ihr alle gegen Pascal habt. Ich persoenlich bevorzuge es, da man da nicht wild mit Pointern schiessen muss. Um schnell mal was fuer X zu schreiben (zusammenzuklicken) ist Kylix was wunderbares. Ich muss aber auch zugeben, das ich frueher sehr viel TP 3 und TP 6 programmiert habe und weiss, was sich im Hintergrund abspielt. Bei kleinen sachen kann es nuetzlich sein ein Pascalprogramm zu schreiben und es dann durch p2c zu scheuchen. Das funktioniert eigendlich recht gut.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hallo Mark-Andreas und Eric,
On Wednesday 23 January 2002 23:55, Mark-Andres Hohm wrote:
On Wed, 23 Jan 2002, Eric Schaefer wrote:
Hier mal meine persönliche Checkliste zum Thema:
- BASIC [ ] (Spielzeug)
versaut einem so richtig die Methodik (ich nutze heut noch goto, und finde das danach meistens nicht mehr lustig)
- Pascal [ ] (das will man niemandem antun)
Ist eigentlich eine prima Sprache, um Strukturiert denken zu lernen, sobald man ueber einige writeln's und zwei drei Prozeduren hinaus ist sollte man es aber weglegen.
- C [ ] (nö, nö, ab Kapitel drei dann Pointerarithmetik oder was?)
Was ist ein Pointer anderes als ein int? Er wird halt grundsaetzlich als Offset im Speicher genutzt. Wo ist das Problem?
- C++ [X] (für einfache Programme sind Pointer unnötig ->Referenzen,
und der OO Kram ist ganz leidlich)
Willkommen in der wunderbaren Welt der anspruchsvollen Sprachkritik. ;-)
- Java [ ] (Einsteigerunfreundlich)
Fand ich eigentlich gar nicht so schlecht, kommt aber auf das Tutorial an.
- MODULA/Oberon [ ] (Einsteigerfreundlich aber bäkse)
Und? Das ist zum Lernen gedacht nicht zum Nutzen!
- Perl/PHP/*sh/younameit [ ] ("Wurstelsprachen")
Gute Umschreibung. Aber eigentlich voellig unterschiedliche Sprachen:
Perl: wenn Du Dir viel Muehe gibst kannst Du damit sehr sauber und grosse Programme schreiben, aber eigentlich ist es fuer quick'n'dirty Datenschaufeln im System am besten geeignet (kleine Scripte, grosse Wirkung).
PHP: eine vollstaendig auf Web ausgelegte Sprache, nicht ganz so effektiv wie Perl, daher eher fuer grosse Projekte eingesetzt, wo es auf Struktur ankommt. Meiner Meinung nach ist PHP sehr gut fuer den Einstieg in Web-Logik geeignet.
- Delphi/kylix/RAD [ ] ("programmieren lernen" != "klicken lernen")
stimm' ich Dir zu. Da Delphi und Kylix von Pascal abstammen kann man hoffentlich die Klickerei weglassen und ein wenig auf der Konsole lernen.
- Vorschläge bitte (Begründung?)
Ich denke es wird auf C++ hinauslaufen. Ich selbst habe nur den Stroustroup in Englisch, kennt jemand brauchbare Tutorials auf Deutsch, die nicht (!!) C voraussetzen? Online?
Vergiss es. C++ ist fuer den Einstieg zu komplex. Ausserdem sagt ja schon der Name "ich bin ein aufgebohrtes C". Also wenn Du partout nicht mit Pascal anfangen willst nimm Java, da koennen Dir keine Pointer verloren gehen, dann steigere Dich auf C und vereine schliesslich beide in C++. Aber erwarte nicht zu viel von Dir: Programmierung lernen ist eine ernste Sache und braucht viel Zeit. Vor allem: erwarten keine Grafik, die kommt erst ganz zum Schluss (naechsten Januar!).
Ich verstehe nicht was Ihr alle gegen Pascal habt.
rm -rf zum Beispiel, aber im Ernst: ein _echtes_ Pascal (z.B. fpk) ist eine prima Sache zum Einstieg.
Ich persoenlich bevorzuge es, da man da nicht wild mit Pointern schiessen muss.
ja das ist schon schoen. Musst Du mit C uebrigens auch nicht, aber man gewoehnt sich verdammt schnell dran. ;-)
Um schnell mal was fuer X zu schreiben (zusammenzuklicken) ist Kylix was wunderbares.
...sagte der Junkie ueber seine Droge.
Mit Pascal grosse Projekte auf einem OS programmieren zu wollen, das fuer C entworfen wurde halte ich an sich schonmal fuer verfehlt. Es dann auch noch zusammenzuklicken ist alles, ausser: professionell, stabil, wartbar, wiederverwendbar und ein dutzend andere wichtige Kriterien, die man u.A. in "Software Engineering" lernt.
Ich muss aber auch zugeben, das ich frueher sehr viel TP 3 und TP 6 programmiert habe und weiss, was sich im Hintergrund abspielt.
Ich auch. Du solltest aber trotzdem ueber Deinen Schatten springen: es lohnt sich.
Bei kleinen sachen kann es nuetzlich sein ein Pascalprogramm zu schreiben und es dann durch p2c zu scheuchen. Das funktioniert eigendlich recht gut.
Man kann auch mit einer Gabel Suppe essen und satt werden, aber es bleibt verdammt viel uebrig, was noch entsorgt werden muss.
Konrad
- -- BOFH excuse #435:
Internet shut down due to maintainance
On Thu, Jan 24, 2002 at 07:47:29AM +0100, Konrad Rosenbaum wrote:
On Wednesday 23 January 2002 23:55, Mark-Andres Hohm wrote:
On Wed, 23 Jan 2002, Eric Schaefer wrote:
Hier mal meine pers�nliche Checkliste zum Thema:
- BASIC [ ] (Spielzeug)
versaut einem so richtig die Methodik (ich nutze heut noch goto, und finde das danach meistens nicht mehr lustig)
Also GOTO hab ich mir ganz schnell abgew�hnt...
- Pascal [ ] (das will man niemandem antun)
Ist eigentlich eine prima Sprache, um Strukturiert denken zu lernen, sobald man ueber einige writeln's und zwei drei Prozeduren hinaus ist sollte man es aber weglegen.
Dann kann man auch Modula nehmen, das ist noch konsequenter.
- C [ ] (n�, n�, ab Kapitel drei dann Pointerarithmetik oder was?)
Was ist ein Pointer anderes als ein int? Er wird halt grundsaetzlich als Offset im Speicher genutzt. Wo ist das Problem?
Wenn jemand absoluter Neuling ist, wird es eben schwer "Offset im Speicher" zu erkl�ren...
- C++ [X] (f�r einfache Programme sind Pointer unn�tig ->Referenzen,
und der OO Kram ist ganz leidlich)
Willkommen in der wunderbaren Welt der anspruchsvollen Sprachkritik. ;-)
Mir ist heut nacht noch ein Gegenargument eingefallen: Wie sieht das typische "Hello world!" in C++ aus? Genau, Streams, *�kseb�*.
- Java [ ] (Einsteigerunfreundlich)
Fand ich eigentlich gar nicht so schlecht, kommt aber auf das Tutorial an.
Also Reinhards "Hello world!" halte ich f�r ein Totschlagargument.
- MODULA/Oberon [ ] (Einsteigerfreundlich aber b�kse)
Und? Das ist zum Lernen gedacht nicht zum Nutzen!
Ebend. Ich finde es aber meistens wenig hilfreich, wenn die Sprache nicht im geringsten praxisrelevant ist.
- Perl/PHP/*sh/younameit [ ] ("Wurstelsprachen")
Gute Umschreibung. Aber eigentlich voellig unterschiedliche Sprachen:
Perl: wenn Du Dir viel Muehe gibst kannst Du damit sehr sauber und grosse Programme schreiben, aber eigentlich ist es fuer quick'n'dirty Datenschaufeln im System am besten geeignet (kleine Scripte, grosse Wirkung).
PHP: eine vollstaendig auf Web ausgelegte Sprache, nicht ganz so effektiv wie Perl, daher eher fuer grosse Projekte eingesetzt, wo es auf Struktur ankommt. Meiner Meinung nach ist PHP sehr gut fuer den Einstieg in Web-Logik geeignet.
Ja. Aber nicht um die Methodik der "echten" Programmierung zu lernen.
- Delphi/kylix/RAD [ ] ("programmieren lernen" != "klicken lernen")
stimm' ich Dir zu. Da Delphi und Kylix von Pascal abstammen kann man hoffentlich die Klickerei weglassen und ein wenig auf der Konsole lernen.
Siehe oben "Pascal".
- Vorschl�ge bitte (Begr�ndung?)
Ich denke es wird auf C++ hinauslaufen. Ich selbst habe nur den Stroustroup in Englisch, kennt jemand brauchbare Tutorials auf Deutsch, die nicht (!!) C voraussetzen? Online?
Vergiss es. C++ ist fuer den Einstieg zu komplex. Ausserdem sagt ja schon der Name "ich bin ein aufgebohrtes C". Also wenn Du partout nicht mit Pascal anfangen willst nimm Java, da koennen Dir keine Pointer verloren gehen, dann steigere Dich auf C und vereine schliesslich beide in C++. Aber erwarte nicht zu viel von Dir: Programmierung lernen ist eine ernste Sache und braucht viel Zeit. Vor allem: erwarten keine Grafik, die kommt erst ganz zum Schluss (naechsten Januar!).
Also erstmal: Es geht nicht um MICH, ich habe alle diese Sprachen schonmal mehr oder weniger produktiv eingesetzt. Es geht vielmehr um meine Holde. Grafik wird gar nicht verlangt. Grafik(GUI) ist f�r die Methodik absolut unwichtig.
Ich verstehe nicht was Ihr alle gegen Pascal habt.
rm -rf zum Beispiel, aber im Ernst: ein _echtes_ Pascal (z.B. fpk) ist eine prima Sache zum Einstieg.
Einziger (wenn auch wichtiger) Pluspunkt f�r Pascal: Es ist beinahe so akademisch wie Modula und trotzdem in der Praxis einsetzbar. Zu mindestens unter DOS war es doch recht beliebt (was hab ich gelacht, als ich mitbekam, da� "2nd reality" in Pascal geschrieben war...). Delphi macht aber alles wieder kaputt: vereinigt die St�rken von Pascal mit den Schw�chen von VB.
Ich persoenlich bevorzuge es, da man da nicht wild mit Pointern schiessen muss.
ja das ist schon schoen. Musst Du mit C uebrigens auch nicht, aber man gewoehnt sich verdammt schnell dran. ;-)
Genau, man mu� gar nix, aber gerade die Pointer machen C m�chtig (hoffentlich lesen Donnerhacke und Weimer nicht mit). Apropos D&W: Hat jemand Erfahrung mir Ada?
Um schnell mal was fuer X zu schreiben (zusammenzuklicken) ist Kylix was wunderbares.
Es soll Methodik vermittelt werden.
Mit Pascal grosse Projekte auf einem OS programmieren zu wollen, das fuer C entworfen wurde halte ich an sich schonmal fuer verfehlt. Es dann auch noch zusammenzuklicken ist alles, ausser: professionell, stabil, wartbar, wiederverwendbar und ein dutzend andere wichtige Kriterien, die man u.A. in "Software Engineering" lernt.
... und die man erst ernst nimmt, wenn mal mal mehr als 100 Zeilen schreiben mu�.
Ich muss aber auch zugeben, das ich frueher sehr viel TP 3 und TP 6 programmiert habe und weiss, was sich im Hintergrund abspielt.
Ich auch. Du solltest aber trotzdem ueber Deinen Schatten springen: es lohnt sich.
ACK. Hast Du schon mal was gr��eres mit kylix/Delphi gemacht? Ich schon und es war grauenhaft.
Bei kleinen sachen kann es nuetzlich sein ein Pascalprogramm zu schreiben und es dann durch p2c zu scheuchen. Das funktioniert eigendlich recht gut.
Man kann auch mit einer Gabel Suppe essen und satt werden, aber es bleibt verdammt viel uebrig, was noch entsorgt werden muss.
[X] made my day *prust*
Gru�, Eric p.s. kommt au�er bei Reinhard noch bei jemandem das Subject falsch an?
Am Donnerstag, dem 24. Januar 2002 um 09:14:01, schrieb Eric Schaefer:
Content-Type: text/plain; charset=us-ascii:iso-8859-1:iso-8859-15:utf-8 User-Agent: Mutt/1.2.5i p.s. kommt außer bei Reinhard noch bei jemandem das Subject falsch an?
Jawoll, du benutzt eine mutt-Option (send_charset), die es scheinbar erst mit Version 1.3.x gibt, mit mutt 1.2.5. Bitte korrigieren oder besser mutt aktualisieren - deiner hat vermutlich eine Schwachstelle, die remote ausnutzbar ist.
Torsten
On Thu Jan 24, 2002 at 09:40:50 +0100, Torsten Werner wrote:
besser mutt aktualisieren - deiner hat vermutlich eine Schwachstelle, die remote ausnutzbar ist.
Nein, die Maschine wird administriert... ;)
Adam
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Thursday 24 January 2002 09:14, Eric Schaefer wrote:
On Thu, Jan 24, 2002 at 07:47:29AM +0100, Konrad Rosenbaum wrote:
On Wednesday 23 January 2002 23:55, Mark-Andres Hohm wrote:
On Wed, 23 Jan 2002, Eric Schaefer wrote:
- Pascal [ ] (das will man niemandem antun)
Ist eigentlich eine prima Sprache, um Strukturiert denken zu lernen, sobald man ueber einige writeln's und zwei drei Prozeduren hinaus ist sollte man es aber weglegen.
Dann kann man auch Modula nehmen, das ist noch konsequenter.
kennst Du einen guten Modula Compiler fuer Linux?
- C++ [X] (für einfache Programme sind Pointer unnötig
->Referenzen, und der OO Kram ist ganz leidlich)
Willkommen in der wunderbaren Welt der anspruchsvollen Sprachkritik. ;-)
Mir ist heut nacht noch ein Gegenargument eingefallen: Wie sieht das typische "Hello world!" in C++ aus? Genau, Streams, *äksebä*.
Was hast Du gegen Streams? Bitte mal etwas qualifiziertere Kritik! Mit Ausdruecken, wie "*äksebä*" kann ich nichts anfangen.
- Java [ ] (Einsteigerunfreundlich)
Fand ich eigentlich gar nicht so schlecht, kommt aber auf das Tutorial an.
Also Reinhards "Hello world!" halte ich für ein Totschlagargument.
Wenn Du Dich von etwas OOP gleich totschlagen laesst... ...was willst Du dann erst bei _richtig_ anspruchsvollen Aufgaben machen?
- MODULA/Oberon [ ] (Einsteigerfreundlich aber bäkse)
Und? Das ist zum Lernen gedacht nicht zum Nutzen!
Ebend. Ich finde es aber meistens wenig hilfreich, wenn die Sprache nicht im geringsten praxisrelevant ist.
Die Praxisrelevanz von Modula/Oberon/Pascal liegt nicht in der Verbreitung unter erfahrenen Programmierern, sonder darin, dass sie den Schueler zwingen strukturiert zu arbeiten. Programmierung ist eine verdammt anspruchsvolle Aufgabe. Wenn Du Autofahren lernst laesst man Dich ja auch nicht gleich mit einem normalen Auto losbrausen, sondern mit einem speziell praeparierten Fahrschulauto mit dem Du nicht ganz so schnell am Baum landest.
Sobald Du's kannst, kannst Du auch auf "was richtiges" umsteigen. (Und Dich dabei gleich daran gewoehnen, dass Du einige dutzend Sprachen lernen wirst.)
- Perl/PHP/*sh/younameit
[cut]
Ja. Aber nicht um die Methodik der "echten" Programmierung zu lernen.
s.o.
- Vorschläge bitte (Begründung?)
Ich denke es wird auf C++ hinauslaufen. Ich selbst habe nur den Stroustroup in Englisch, kennt jemand brauchbare Tutorials auf Deutsch, die nicht (!!) C voraussetzen? Online?
Vergiss es. C++ ist fuer den Einstieg zu komplex. Ausserdem sagt ja schon der Name "ich bin ein aufgebohrtes C". Also wenn Du partout nicht mit Pascal anfangen willst nimm Java, da koennen Dir keine Pointer verloren gehen, dann steigere Dich auf C und vereine schliesslich beide in C++. Aber erwarte nicht zu viel von Dir: Programmierung lernen ist eine ernste Sache und braucht viel Zeit. Vor allem: erwarten keine Grafik, die kommt erst ganz zum Schluss (naechsten Januar!).
Also erstmal: Es geht nicht um MICH, ich habe alle diese Sprachen schonmal mehr oder weniger produktiv eingesetzt. Es geht vielmehr um meine Holde. Grafik wird gar nicht verlangt. Grafik(GUI) ist für die Methodik absolut unwichtig.
Gut, dann wuerde ich an Deiner Stelle mit Pascal anfangen und nach ein paar Monaten langsam steigern. Mit Pascal kann sie immerhin schon einfache (auch praxisrelevante) Aufgaben loesen ohne Gefahr zu laufen gegen einen virtuellen Baum zu fahren (SIGSEGV).
[cut und zustimm]
Mit Pascal grosse Projekte auf einem OS programmieren zu wollen, das fuer C entworfen wurde halte ich an sich schonmal fuer verfehlt. Es dann auch noch zusammenzuklicken ist alles, ausser: professionell, stabil, wartbar, wiederverwendbar und ein dutzend andere wichtige Kriterien, die man u.A. in "Software Engineering" lernt.
... und die man erst ernst nimmt, wenn mal mal mehr als 100 Zeilen schreiben muß.
...glaubt man, bis man mit seiner neu gewonnenen Einsicht ein 10000 Zeilen Projekt gecrasht hat.... erst dann werden die Einsichten in die SWE-Logik interessant!
Ich muss aber auch zugeben, das ich frueher sehr viel TP 3 und TP 6 programmiert habe und weiss, was sich im Hintergrund abspielt.
Ich auch. Du solltest aber trotzdem ueber Deinen Schatten springen: es lohnt sich.
ACK. Hast Du schon mal was größeres mit kylix/Delphi gemacht? Ich schon und es war grauenhaft.
Mein erstes 60000Zeilen Projekt war eine Katastrophe! Es war mit Turbo Vision auf TP 6/7 geschrieben. Hat sich im Rueckblick aber gelohnt, da ich viele notwendige Erfahrungen gemacht habe lange bevor es ernst geworden ist.
Konrad
- -- BOFH excuse #290:
The CPU has shifted, and become decentralized.
On Thu, Jan 24, 2002 at 07:25:19PM +0100, Konrad Rosenbaum wrote:
Dann kann man auch Modula nehmen, das ist noch konsequenter.
kennst Du einen guten Modula Compiler fuer Linux?
Ich hab vor Urzeiten was mit Modula unter Linux gemacht. Der Compiler hie� nicht XYZModula oder sowas, sondern hatte einen ganz anderen Namen, ich wei� aber nicht mehr welchen. Ob der gut war, kann ich nicht beurteilen, auf jeden Fall hat er compiliert.
Mir ist heut nacht noch ein Gegenargument eingefallen: Wie sieht das typische "Hello world!" in C++ aus? Genau, Streams, *�kseb�*.
Was hast Du gegen Streams? Bitte mal etwas qualifiziertere Kritik! Mit Ausdruecken, wie "*�kseb�*" kann ich nichts anfangen.
Wieso? *�kseb�* ist doch eindeutig ;-) Nee, ich mag das C++-Streams-Zeug nicht, weil ich es f�r Unsinn halte. Auf der einen Seite opert man mit Pointern rum und auf der anderen versucht man die eigentlich gut verst�ndliche Sicht aufs Dateisystem durch soeinen Firlefanz zu verstecken. Das ist einfach Bl�dsinn. Was ist an den f-Funktionen denn so falsch?
[Java]
Also Reinhards "Hello world!" halte ich f�r ein Totschlagargument.
Wenn Du Dich von etwas OOP gleich totschlagen laesst... ...was willst Du dann erst bei _richtig_ anspruchsvollen Aufgaben machen?
Ich nicht, aber der Lernende.
Die Praxisrelevanz von Modula/Oberon/Pascal liegt nicht in der Verbreitung unter erfahrenen Programmierern, sonder darin, dass sie den Schueler zwingen strukturiert zu arbeiten. Programmierung ist eine verdammt anspruchsvolle Aufgabe. Wenn Du Autofahren lernst laesst man Dich ja auch nicht gleich mit einem normalen Auto losbrausen, sondern mit einem speziell praeparierten Fahrschulauto mit dem Du nicht ganz so schnell am Baum landest.
Das meine ich doch mit "Praxisrelevanz". Das System funktioniert in der Uni oder in der Schule. Wenn aber jemand zu Hause mal ein bissl in die Programmierung reinschnuppern will und dann kann er damit kaum mal ein kleines Fitzelprogramm schreiben, ohne sich was abzubrechen, dann ist das doof. Dann schon lieber C.
Gut, dann wuerde ich an Deiner Stelle mit Pascal anfangen und nach ein paar Monaten langsam steigern. Mit Pascal kann sie immerhin schon einfache (auch praxisrelevante) Aufgaben loesen ohne Gefahr zu laufen gegen einen virtuellen Baum zu fahren (SIGSEGV).
Hmm. Na mal sehen. Was f�r Compiler sind denn empfehlenswert?
Gru�, Eric
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Thursday 24 January 2002 20:20, Eric Schaefer wrote:
On Thu, Jan 24, 2002 at 07:25:19PM +0100, Konrad Rosenbaum wrote:
Mir ist heut nacht noch ein Gegenargument eingefallen: Wie sieht das typische "Hello world!" in C++ aus? Genau, Streams, *äksebä*.
Was hast Du gegen Streams? Bitte mal etwas qualifiziertere Kritik! Mit Ausdruecken, wie "*äksebä*" kann ich nichts anfangen.
Wieso? *äksebä* ist doch eindeutig ;-) Nee, ich mag das C++-Streams-Zeug nicht, weil ich es für Unsinn halte. Auf der einen Seite opert man mit Pointern rum und auf der anderen versucht man die eigentlich gut verständliche Sicht aufs Dateisystem durch soeinen Firlefanz zu verstecken. Das ist einfach Blödsinn. Was ist an den f-Funktionen denn so falsch?
Ich nehme an, Du meinst fopen, fprintf, etc.pp.
Dass die eigentlich auch noch an den eigentlichen Funktionen vorbeigehen und teilweise eine recht sinnlose Semantik haben. Mit Streams geht das wenigstens etwas mehr OO und besser typisiert. Ansonsten benutze ich fast grundsaetzlich direkt den POSIX-Layer: open, read, write, close, ioctl, fcntl, etc.pp.
Die Praxisrelevanz von Modula/Oberon/Pascal liegt nicht in der Verbreitung unter erfahrenen Programmierern, sonder darin, dass sie den Schueler zwingen strukturiert zu arbeiten. Programmierung ist eine verdammt anspruchsvolle Aufgabe. Wenn Du Autofahren lernst laesst man Dich ja auch nicht gleich mit einem normalen Auto losbrausen, sondern mit einem speziell praeparierten Fahrschulauto mit dem Du nicht ganz so schnell am Baum landest.
Das meine ich doch mit "Praxisrelevanz". Das System funktioniert in der Uni oder in der Schule. Wenn aber jemand zu Hause mal ein bissl in die Programmierung reinschnuppern will und dann kann er damit kaum mal ein kleines Fitzelprogramm schreiben, ohne sich was abzubrechen, dann ist das doof. Dann schon lieber C.
Hmm, mit TP bin ich recht weit gekommen.
Gut, dann wuerde ich an Deiner Stelle mit Pascal anfangen und nach ein paar Monaten langsam steigern. Mit Pascal kann sie immerhin schon einfache (auch praxisrelevante) Aufgaben loesen ohne Gefahr zu laufen gegen einen virtuellen Baum zu fahren (SIGSEGV).
Hmm. Na mal sehen. Was für Compiler sind denn empfehlenswert?
fpk (Free Pascal), der ist TP aehnlich und scheinbar am weitesten entwickelt. gpc hat noch nicht so viel Funktionalitaet und bedient sich auch etwas komplizierter.
Konrad
- -- BOFH excuse #356:
the daemons! the daemons! the terrible daemons!
On Thu, Jan 24, 2002 at 08:20:39PM +0100, Eric Schaefer wrote:
On Thu, Jan 24, 2002 at 07:25:19PM +0100, Konrad Rosenbaum wrote:
Dann kann man auch Modula nehmen, das ist noch konsequenter.
kennst Du einen guten Modula Compiler fuer Linux?
Ich hab vor Urzeiten was mit Modula unter Linux gemacht. Der Compiler hieß nicht XYZModula oder sowas, sondern hatte einen ganz anderen Namen, ich weiß aber nicht mehr welchen. Ob der gut war, kann ich nicht beurteilen, auf jeden Fall hat er compiliert.
apt-cache show mocka
cu, Ulf
On Thu, Jan 24, 2002 at 09:49:45PM +0100, Ulf Lorenz wrote:
On Thu, Jan 24, 2002 at 08:20:39PM +0100, Eric Schaefer wrote:
Ich hab vor Urzeiten was mit Modula unter Linux gemacht. Der Compiler hie� nicht XYZModula oder sowas, sondern hatte einen ganz anderen Namen, ich wei� aber nicht mehr welchen. Ob der gut war, kann ich nicht beurteilen, auf jeden Fall hat er compiliert.
apt-cache show mocka
Bingo.
Eric
Am Donnerstag, dem 24. Januar 2002 um 07:47:29, schrieb Konrad Rosenbaum:
Was ist ein Pointer anderes als ein int? Er wird halt grundsaetzlich als Offset im Speicher genutzt. Wo ist das Problem?
Du hast natürlich Recht, dass jede Programmiersprache, die indizierte Arrays kennt, auch Pointerarithmetik unterstützt - also praktische jede. Das Problem bei C ist, dass man schon bei einfachsten Dingen wie scanf mit Pointern belästigt wird, statt so etwas beispielsweise in einer Bibliothek zu kapseln.
Ich plädiere übrigens für perl: schneller Einstieg, keine explizite Speicherverwaltung, kein expliziter Compileraufruf und komplexe Datenstrukturen lassen sich einfach realisieren.
Torsten
On Thu, Jan 24, 2002 at 09:34:40AM +0100, Torsten Werner wrote:
Ich plädiere übrigens für perl: schneller Einstieg, keine explizite Speicherverwaltung, kein expliziter Compileraufruf und komplexe Datenstrukturen lassen sich einfach realisieren.
Und wenn Eric mal keine Lust mehr hat, seinem Probanten weiter die Sprache beizubringen, präsentiert er ihm einfach ein paar mehrzeilige RegExps und hat wieder seine Ruhe. Netter Nebeneffekt von Perl :-)
Reinhard
On Thu, Jan 24, 2002 at 07:47:29AM +0100, Konrad Rosenbaum wrote:
- BASIC [ ] (Spielzeug)
versaut einem so richtig die Methodik (ich nutze heut noch goto, und finde das danach meistens nicht mehr lustig)
kleine Anmerkung:
Sobald irgendwo jemand Basic flüstert schreien alle "NEIN! Basic is pfui weil goto pfui ist." Das ist mMn der gleiche anerzogene Schwachsinn wie z.B. die Angst vor winzigem, harmlosem Ungeziefer (Spinnen,...)
Wenn dir jemand C/C++ so beigebracht hätte, daß du die komplette Ablaufsteuerung über if/label/goto machen sollst, hättest du das gleiche Gewurstel (TM) wie ein Basic-goto-Freak. Jeder würde dich auslachen. Ist deshalb C/C++ Müll? Versaut deshalb C/C++ die Methodik?
Goto ist lediglich eine Frage des Stils - kein Problem der Programmiersprache Basic an sich. Man _kann_ Programme in Basic ähnlich strukturiert gestalten wie in Pascal oder C. Argumente gegen Basic sind ganz andere Dinge wie z.B. das fehlende Typsystem.
Reinhard
... und manchmal ist ein goto gar nicht so schlecht
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Thursday 24 January 2002 11:06, Reinhard Foerster wrote: [cut]
Wenn dir jemand C/C++ so beigebracht hätte, daß du die komplette Ablaufsteuerung über if/label/goto machen sollst, hättest du das gleiche Gewurstel (TM) wie ein Basic-goto-Freak. Jeder würde dich auslachen. Ist deshalb C/C++ Müll? Versaut deshalb C/C++ die Methodik?
noe, in diesem Fall ist es der Lehrer.
Goto ist lediglich eine Frage des Stils - kein Problem der Programmiersprache Basic an sich. Man _kann_ Programme in Basic ähnlich strukturiert gestalten wie in Pascal oder C.
ok, ich haette das noch dazu sagen sollen: ich habe HC-Basic benutzt (auf einem KC85/4), das kannte keine Unterprogramme. Riesiger, unuebersichtlicher, extrem gesundheitsschaedlicher Spaghetticode war das Ergebnis.
Argumente gegen Basic sind ganz andere Dinge wie z.B. das fehlende Typsystem.
Also das sehe ich nicht so. (HC)Basic kennt zwei Typen: Zahl und String. Ausserdem sehe ich das strenge Typsystem von C/C++ inzwischen auch etwas kritischer. Die Antwort liegt mal wieder irgendwo dazwischen.
... und manchmal ist ein goto gar nicht so schlecht
stimmt. Man muss nur hoellisch aufpassen, wann man es verwendet.
Konrad
- -- BOFH excuse #8:
static buildup
Am Donnerstag, dem 24. Januar 2002 um 19:09:32, schrieb Konrad Rosenbaum:
ok, ich haette das noch dazu sagen sollen: ich habe HC-Basic benutzt (auf einem KC85/4), das kannte keine Unterprogramme.
Na klar gab es da ein GOSUB neben dem GOTO! ;-)
Torsten
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Friday 25 January 2002 08:46, Torsten Werner wrote:
Am Donnerstag, dem 24. Januar 2002 um 19:09:32, schrieb Konrad Rosenbaum:
ok, ich haette das noch dazu sagen sollen: ich habe HC-Basic benutzt (auf einem KC85/4), das kannte keine Unterprogramme.
Na klar gab es da ein GOSUB neben dem GOTO! ;-)
Aber keine Prozedurnamen! Nur Zeilennummern. Irgendwie sieht man als Anfaenger auch den Sinn von gosub nicht ein, wenn es nur auf eine andere Zeile springt.
Konrad
- -- BOFH excuse #108:
The air conditioning water supply pipe ruptured over the machine room
Hi Konrad,
On Fri, Jan 25, 2002 at 18:38:42 +0100, Konrad Rosenbaum wrote:
[GOSUB]
Aber keine Prozedurnamen! Nur Zeilennummern. Irgendwie sieht man als Anfaenger auch den Sinn von gosub nicht ein, wenn es nur auf eine andere Zeile springt.
Aber immerhin legt es die aktuelle Zeilennummer auf den Stack, so dass es mit RETURN an die richtige Stelle zurueck springt.
bye, Chris
Am Mittwoch 23 Januar 2002 19:36 schrieben Sie:
<drittsemesternitpick> Naja, schade daß ich mir das Beispiel aus der letzten Vorlesung nicht aufgeschrieben habe... 3 mal casten in einer Zeile, das muß man selbst in C erstmal hinbekommen. Und warum? Weil eine Integer-Zahl nicht von Object abgeleitet ist. Java ist also eine Hybrid-Sprache, auch wenn sie im Gegensatz zu C++ schon "objektorientierter" ist. </drittsemesternitpick>
Kannst du das Problem bitte näher erläutern?
Ich habe bestimmt schon ein paar tausend(millionen?) Zeilen Java programmiert und hatte noch nie die Notwendigkeit mehr als 1 mal in einer Zeile zu casten.
Außerdem ist Java bekanntlich eher ein C++-light als ein C++++, also warum ist es dann objektorientierter als C++? Dann ist C++ auch eine Hybrid-Sprache, und welche von den praxisrelevanten ist das eigentlich nicht?
Ein Bekannter von mir programmiert sonst nur Perl, will jetzt Java lernen, und ihm haben schon mindestens 3 Leute + 2 Bücher versucht, OOP zu erklären - er kapiert es einfach nicht.
Falsche Leute, falsche Bücher oder keine Motivation? Aber bei den Programmiersprachen ist es so wie mit den Fremdsprachen: Die erste erlernt man in vielen Jahren, die zweite in wenigen Jahren, die dritte in ein paar Monaten... Er sollte also, auch wenn er OOP nicht versteht, nicht aufgeben, sondern z.B. mal eine andere OOP-Sprache probieren... nicht ständig was neues, aber wenn es mit Java nix wird hat es keinen Sinn ihm daran das OOP-Prinzip zu erklären.
OOP/OOA/OOD ist ganz allgemein und hat mit der Syntax nun wirklich nichts zu tun. Syntax ist und bleibt Geschmacksache. Dem einen ist sie zu kurz und dem anderen zu langatmig. Gewisse Grundgedanken sind in allen objektorientieren Sprache vorhanden, nur das die eine Sprache ein paar OOP-Features mehr und die andere ein paar weniger hat. Hat alles Vor- und Nachteile, mit beidem kann man meistens Leben.
Wenn er es nicht kapiert hat man es ihm nicht gut genug erklärt, er will es nicht verstehen oder sein Abstraktionsvermögen ist zu gering.
Im allgemeinen sollte man mit der funktionalen Programmierung vertraut sein, dann klappts auch mit OOP. Denn wer nicht weiß was (globale/lokale) Variablen / Funktionen sind, versteht ganz sicher auch nicht was (statische / private / public / ..) Methoden / Variablen sind. Kapselung und Vererbung benötigen immer nur ein wenig abstraktes Denkvermögen, davon sollte jeder Programmierer sowieso genug haben, auch für Headerfiles, Units, Module, Kompenten, Interface & Co.
Fazit:
Heutzutage also zuerst etwas C oder Pascal lernen. Wer später GUI's programmieren will liegt mit C besser, da er das Wissen dann für Java, C++ und C# verwenden kann. Wer später GUI's zusammenklicken will entsprechend mit Pascal, da er das dann für Delphi & Co. verwenden kann, aber für C++ gibts das bestimmt auch.
Gruß, Stephan
On Wed, Jan 23, 2002 at 05:45:56PM +0100, Eric Schaefer wrote:
Servus!
Welche Programmiersprache kann man einem blutigen Anfänger empfehlen? Prämissen:
- Compiler und gute Anfängerdoku/Tutorials "frei" (wie in Freibier; Freiheit wäre aber auch nicht schlecht)
- Platform Linux (mindestens)
- geeignet für jemanden, der noch nie mit Programmierung zu tun hatte, aber trotzdem weiß, was eine "Datei" ist ;-)
- praxisrelevant (Modula und Oberon scheiden damit aus)
Ich würde ja beinahe zu Java tendieren...
Java ist nicht wirklich frei. Ich würde Python empfehlen. Am 13. Februar werde ich etwas dazu erzählen. Die Doku ist gut und frei, es läuft auf vielen Plattformen, hat eine gute Newsgroup (comp.lang.python) und ist "schöner" als Perl.
thomas
On Wed, Jan 23, 2002 at 05:45:56PM +0100, Eric Schaefer wrote:
Servus!
Welche Programmiersprache kann man einem blutigen Anfänger empfehlen? Prämissen:
Ich würde FreePascal vorschlagen
- Compiler und gute Anfängerdoku/Tutorials "frei" (wie in Freibier; Freiheit wäre aber auch nicht schlecht)
ist eine sehr gute Doku beim Packet enthalten, wo jede Unit mal kurz angesprochen wird. Ansonsten können auch noch manpages der C-Routinen genutzt werden
- Platform Linux (mindestens)
Aber klar doch ;)
- geeignet für jemanden, der noch nie mit Programmierung zu tun hatte, aber trotzdem weiß, was eine "Datei" ist ;-)
Da sicher jede zweite Programmierer von BASIC über Pascal zu C/C++/Java/etc. gekommen ist, scheint Pascal doch nicht so schlecht zum Lernen sein...
- praxisrelevant (Modula und Oberon scheiden damit aus)
FreePascal wurde unter Linux um _viele_ Units erweitert. So kann man nahezu alle Systemcalls und Funktionen aus der glibc nutzen und es gibt CGI-Support, XML-Verarbeitung und GUI-Bindings. Unter Linux/Pascal kann man also wunderbar Programmieren erlernen und gleich sinnvoll anwenden.
Meine 0.2¢
Ciao, Tobias
lug-dd@mailman.schlittermann.de