Zitat Zitat von Kyuu Beitrag anzeigen
Nehmen wir an, ich wäre ein blutiger Anfänger in Sachen Programmierung.
Nun möchte ich meine Kenntnisse aufbessern, es aber klein angehen lassen, d.h. keine GUIs oder sonstwas, denn das würde schon Programmiererfahrung voraussetzen.
Ich will eine einsteigerfreundliche Programmiersprache empfohlen haben, die mir das Wesentliche beim Programmieren zeigt, ohne dabei zu tief zu gehen.
Mit diesen Kenntnissen möchte ich in der Lage sein später auf andere Programmiersprachen unkompliziert aufspringen zu können.
Was wäre deine Empfehlung?
Auch in diesem Fall würde ich erst in einem Gespräch herausfinden, was du dir vom Programmieren erwartest und was du in Zukunft gedenkst zu programmieren. Moment mal: Rekursion?^^

Schießlich geht es nicht darum einfach irgendwie programmieren zu lernen: Es geht dabei gleichzeitig so viel wie möglich davon mitzunehmen. Wie ne Schleife funktioniert, lernt man überall. Aber, nachdem man den absoluten Basis-Kram durch hat - und das geht sehr schnell - geht es ja bereits darum Bibliotheken kennen zu lernen.

Aber, das hatten wir ja schon.


Zitat Zitat
Man möge mir verzeihen, dass ich Rapid Application Development wörtlich nehme und auch mit der Zeit gleichsetze, die ich brauche um ein ausführbares Programm zu schreiben, das über keine GUI-Elemente verfügt. :P
RAD ist sprachunabhängig, anyway.


Zitat Zitat
Richtig, aber sobald man systembezogene Funktionalität nutzt, ist es dahin mit der Plattformunabhängigkeit und dann muss man zum Präprozessor greifen, was den Code aufblähen und unleserlich machen kann.
Mit Python schreibe ich den Code ein mal in seiner Wesentlichkeit und führe ihn auf beliebigen Plattformen aus, ohne Änderungen vornehmen zu müssen. Das meine ich mit Portabilität.
Wenn ich in Py systemspezifische Bibliotheken verwende, kann ich auch nicht mehr das System wechseln. Das ist ein sprachunabhängiges Problem. Wenn ich mir eine gute Plattform unter C aussuche, dann habe ich dieses Problem ebensowenig.

systemspezifische ifdefs brauchst du nur, wenn du Abstraktionsbibliotheken schreibst. Ich möchte behaupten, dass die Meisten leute die das machen eine schlechte Bibliothekswahl getroffen haben, oder eben eine grundlegende schreiben.




Du zählst Vorteile auf, die sprachunabhängig sind.





Zitat Zitat
Ich bin mir ehrlich gesagt nicht sicher, was genau du damit meinst. Wenn es dir um den Unterschied zwischen Low-Level und High-Level geht, so ist das selbstverständlich, ändert aber nichts am Wesen meiner Programmierung.
Wenn jemand mit C/C++ anfängt, bekommt er auf die harte Tour die Grundzüge beigebracht, wie der Computer funktioniert (Memorymanagement (Stack/Heap), Cache (Codecache/L1/L2), Register, RAM (reading/writing), etc.). Er muss mehr aufpassen und kann fatale Fehler verursachen, was aber auch alles ist. Wenn jemand mit einer modernen High-Level-Sprache wie Python anfängt, macht er sich keine Gedanken über Memorymanagement etc. und lernt das Wesentliche beim Programmieren, ohne dabei auf Computerebene zu denken. Wenn er nun will, oder muss, kann er immernoch zu einer Low-Level-fähigen Sprache greifen und ich bezweifle, dass er dabei ein "komisches" Gefühl, oder sonstwas haben wird.

Es geht schlichtweg um alles, was du so nebenbei mit lernst. Vielleicht muss man aber auch so viel Code gelesen haben, wie ich, um den Unterschied sehen zu können. C-Entwickler achten einfach automatisch auf Dinge, die mans sonst gerne ignoriert.


Btw nehme ich C nur als Beispiel her, weil es mir als guter Gegensatz zu Py erscheint.