AW: Programmieren lernen am Mac — Vor- und Nachteile der verschiedenen Sprachen
Wer Kernel verstehen will und begreifen wie UNIXe funktionieren der lerne C
Ja und nein, C ist nicht nur im UNIX-Umfeld eine weit verbreitete Sprache. Man mag es ja kaum glauben, aber große Teile des Windows-Kernels sind ebenfalls in C geschrieben (von wegen, Treiberprogrammierung unter Windows ist hauptsächlich C++)
wer für die Industrie lernen will der lerne C++ ( die Sprache hat trotz vieler Nachteile eine große
Und Java! Die meisten Webservices und Webplattformen werden in der Industrie mit Java geschrieben. IMHO hat die Industrie derzeit drei Lieblingssprachen: C++, C# und Java. Je nach Anwendungsbereich kommt mal die Eine, mal die Andere zum einsatz.
Ich meine keine Bugs. Mit "Macken" meine ich die Dinge die als Negativum entstehen wenn eine Sprache versucht sich durch ein Paradigma besonders hervorzutun. Java ist da sehr deskriptiv. Erlangt dadurch aber auch eine recht hohe Fehlerfreiheit. Eine typische "Macke" in meinem Sinne sind die zigfach ineinander verschachtelten Getter/Setter bei einigen komplexeren Aufrufen die es kaum mehr möglich machen auf den ersten Blick zu entscheiden ob da nun letztlich ein getXY() oder ein setXY() ausgeführt wird.
Sowas findet sich in nahezu jeder Sprache wieder. Bei Java haben sich dadurch zahlreiche Design- und Antipatterns herausgebildet die es Sinn macht zu kennen. Dann kann man auch mit den "Nachteilen" dieser Sprache sehr gut leben.
Ich nutze Java durchaus auch und nur weil es eine (IMHO) gute Ausbildungssprache ist heißt das ja nicht das man damit nicht auch Sinnvolles tun kann
Gerade Java erfordert wegen dieser kranken Getter und Setter-Geschichten ein sauberes Design. Wer Setter benutzt, doch bitte nur, wenn da mehr passiert als nur ne Variable zu setzen (Validieren, Exception handling usw). Ich hab mich schon maßlos über tief kaskadierende Setter geärgert. Der Code ist faktisch nicht mehr lesbar.
Das ist aber nur ein kleiner Designfehler der Sprache. Die seit Java 5 eingeführten Generics sind auch weder Fisch noch Fleisch.
Wer für den MS-Zug gewappnet sein will lerne C# entweder mit Monodevelop auf dem Mac oder mit VisualStudio Express in einer VM oder gleich mit Windows
Wer sich eh nur auf dem Mac herumtreibt, keine andere Plattform sucht, gerne auch mal einen etwas anderen Ansatz als bei den meisten Sprachen lernen möchte ( The Smalltalk Way of Life) der greife zu Obj-C!
C# ist aber nicht auf Windows gebunden, wie du schon feststellst. Es gibt zum ersten Mal eine weit verbreitete Unterstützung für eine neue Programmiersprache. Was mir hier allerdings garnicht gefällt, ist der lachse Umgang mit der Fehlerbehandlung. Das ist aber eher den Umsteigern aus VB zu schulden, die mit dem Exception Handling garnichts anfangen können.
Grundlegend hat jede Programmiersprache, ob nun C++, Java, C#, Perl, Python, PHP, Basic, Assembler, Erlang, oder was auch immer, ihre Berechtigung. Jede unterstützt in ihrem Umfeld den Programmierer gut bei seiner Arbeit. Mit der neuen Release von C++, in der jetzt auch endlich Bibliotheken wie Boost einzug gehalten haben, ist diese Sprache auch deutlich besser zu handhaben. Für Einsteiger halte ich sie aber auch noch immer zu komplex.