AW: "Ich möchte Programmieren anfangen. Was ist eine gute Sprache und IDE?"
Wenn du schnell Ergebnisse sehen willst eignet sich das ganze Webzeug recht gut. Soll heißen PHP, HTML... Ist auch nicht schlecht für die ersten Ausflüge Richtung Datenbanken, da du dich nicht mit Treibern etc. rumschlagen musst.
Ansonsten kann ich dir Python empfehlen, wenig overhead, einfach zu verstehen.
Wenn du richtig Programmieren lernen willst (also die ganzen Konzepte die hinter Objektorientierung etc. stecken verstehen willst) ist die Antwort Java.
Diese Ratschläge halte ich für ... fragwürdig.
Was sind diese "Ergebnisse", die man schnell sehen will? Darauf kommt es doch immerhin an. Warum nicht Haskell? Da kann man Probleme, die ansatzweise was mit Mathematik zu tun haben, oft schon in einer Zeile schreiben. Warum nicht Ruby, warum nicht Go? Und ist es gut, sich nicht mit Treibern rumschlagen zu müssen? Klar, es erleichtert Arbeit, aber die Sprache ist schlecht designed, wenn man ihre Datenbank Funktionalität nicht mit eigenen Treibern erweitern kann.
Python... wenig Overhead? Was für einen Overhead meinst du hier? Und die Aussage "Einfach zu verstehen" kann und sollte man immer anzweifeln.
Und dein letzter Ratschlag ist leider in vielen Hinsichten nicht richtig: Weder hat "richtiges Programmieren" mit Objektorientierung zu tun, noch mit Java. Wer sagt denn, dass Objektorientierung die richtige Programmierung ausmacht? Warum ist LISP nicht richtiges Programmieren? Oder LowLevel stuff, wie Assembly? Oder rein funktionale Sprachen, wie Haskell? Oder deklarative Sprachen, wie Prolog?
Das ist das Problem an der Sache... die Auswahl an Sprachen ist riesig und nur sehr Wenige haben einen Überblick über alles (ich übrigens auch nicht!). Die meisten Anfänger kommen in Foren und bekommen Vorschläge mit Halbwissen. Aber nur, weil die Leute in diesem Forum ebenso Opfer dieses Halbwissens sind. Auch sie wurden irgendwann mal falsch beraten, auch z.B. von Lehrern, Professoren oder Freunden. Und nicht jeder hat die Zeit oder das Vermögen jede Sprache (und vor allem jede Sprachklasse) dieser Welt auszuprobieren und zu untersuchen; das kann man einem auch nicht vorwerfen.
Aber dadurch entstehen in Foren viele Mythen, die schlichtweg falsch sind oder zumindest gefährliches Halbwissen beinhalten. So wird Objektorientierung schon mal zum "richtigen Programmieren" hochgestuft, nur weil man selber in dem Glauben gelassen wurde und weil alle Business-Anwendungen mit Java laufen. Und es wird schon mal PHP und Java empfohlen, obwohl die Sprachen design-technisch die Hölle sind. Man hatte selber ein paar gute Erfahrungen und Erfolge als Anfänger in der Sprache. Da ist es ganz natürlich, wenn man die Sprache dann weiterempfiehlt, weil man möchte, dass der Anfänger auch diese Momente hat.
Und was ist jetzt mit dem "Einfach zu verstehen"... Ich arbeite jetzt schon ein wenig länger an meiner Uni und helfe dort auch in der Einsteigervorlesung von Informatik. Diese ist ein wenig besonders, weil gleichzeitig das Programmieren in Java und die Grundlagen der Informatik vermittelt werden. Auch hier wieder fragwürdig, ob das ein guter Ansatz ist; Viele großen Universitäten splitten das nämlich in 2 Kurse auf. Aber kommen wir zum Programmieren in Java: Ich sehe wöchentlich so viele Studenten, die Probleme mit Java haben und das weil Java für sie eine Sache einfach unlogisch designed hat. Wir können von Anfängern so einiges lernen, weil man an Anfängern merkt, ob eine Sprache intuitiv ist. Wenn man schon eine Sprache kennt und eine andere lernt, hat man schon Vorwissen und kann nicht mehr wirklich gut einschätzen, ob die Sprache intuitiv für Menschen ist oder ob man durch sein Vorwissen gut mit der Sprache klar kommt.
Jedenfalls: Es haben schon viele Leute über viele Sprachen gesagt, sie seien einfach zu lernen. Und es gibt immer genug Anfänger, die an einer Sprache verzweifeln...
Nunja, was soll das alles?
Zum einen können wir uns nach dem Artikel im Anfangspost richten: Es macht eventuell nicht so viel Unterschied, in welcher Sprache der Anfänger jetzt programmiert, solange er es überhaupt tut und seine guten Momente hat. Und wenn er erstmal angefixt ist, kann man ihm gute Sprachen beibringen. Wenn natürlich noch jemand gar nicht angefangen hat, kann man ihm von Anfang an eine gute Sprache empfehlen. Aber bei diesen Empfehlungen kommt es oft zum Streit, obwohl keiner der Streitpartner wirklich Ahnung von der Materie hat.
Aber insbesondere möchte ich, dass sich alle Leute, die denken, sie wissen, was Programmieren ist, einmal Gedanken machen und sich anschauen, was sie nicht wissen. Viele von euch kennen nur einen Typ von Programmiersprache, behaupte ich einfach mal so gemein: Imperative Programmierung. Also Java, C, PHP, Python. Wie schon gesagt, gibt es da haufenweise andere, wie funktionale und deklarative Programmierung.
Daher möchte ich diesen Post beenden mit einem Zitat aus einer der besten Reden zum Thema Informatik, die je gehalten wurde:
https://www.youtube.com/watch?v=8pTEmbeENF4
Ihr solltet euch die Rede echt mal anschauen, jeder sollte sie gesehen haben.
"So, the most dangerous thought, that you can have as a creative person, is to think that you know what you're doing. Because once you think you know what you're doing, you stop looking around for other ways of doing things."