Was mich ja schon oft mal interessiert hat und was ja auch mal durchaus spannend zu hören ist, ist wie ihr zu eurer "Lieblingssprache" gekommen seit und welche eure "Hasssprache" ist. Jeder hat ja da so seine Vorlieben (auch was IDE's angeht). Mich persönlich würde interessieren wie einige zu ihren Sprachen gefunden haben und warum sie die Sprache so mögen

Was mich angeht da wissen sicher einige das ich viel in Java mache und es sich dabei auch um meine Lieblingssprache handelt. Was aber viele nicht wissen ist, dass ich eigentlich Java früher weniger gemocht habe. Erst als ich angefangen habe darüber nachzudenken was ich denn überhaupt mit meinen Programmen machen will bin ich zu Java gekommen. Doch fangen wir mal an wo ich angefangen habe...

Ich bin ja noch recht jung und trotzdem war der Informatikkurs im Abitur darauf ausgelegt Turbo Pascal zu lernen (Rückblickend fand ich das super). Das heißt ich hab mit einer eher "hardware"-nahe Sprache die auch noch prozedural ist angefangen. Ich hab es damals schon geschafft eine Anwendung zu schreiben mit dem man Englisch lernen sollte mit bunter (16 Farben ) ASCII-GUI die ich selbst gemacht habe. Meine Liebe für das Programmieren wurde geweckt. Ich hab in der Anwendung schon damals kleine Spiele eingebaut und wollte da auch mehr machen. Deswegen habe ich nach dem Abi eine Sprache gesucht mit der ich Spiele machen kann.

Da kam Cherry mit seinen ganzen Patches und erzählte mir er tut das alles in FreeBasic, also dachte ich mir: "Hey, klar warum nicht!" Allerdings gefiel mir die Sprache einfach nicht, ich weiß nicht mehr genau warum muss ich sagen... Dann habe ich gelesen das viele Spiele usw. in C++ gemacht werden also hab ich mir das vorgenommen... Das war keine gute Idee. Ein tiefer Hass für C/C++ wurde geboren! Grund dafür war das doofe Tooling und die die nicht vorhandene Dokumentation. Außerdem hatte ich immer das Gefühl man muss C++ schon sehr gut können um damit auch gute Spiele zu machen (Ich glaube aber dennoch das performancelastige Applikationen eher in C++ als in Java gemacht werden sollten). Aaaaaaalso musste etwas anderes her. Etwas wo ich nicht darauf achten musste wie der Speicher verwaltet wird.

In der Uni traf ich das gezwungenermaßen (zunächst) auf Java. Und da bin ich dann auch hängen geblieben. Ich hab noch viele andere Sachen versucht. z.B. C# was aber der VM nachhinkt und für gute Performance muss ich dann doch wieder Unsafe Code nutzen. Die Gründe warum ich immer bei Java geblieben bin will ich mal kurz erläutern.

Zunächst ist der IDE Support einfach gut. Man kann mir sagen was man will aber mit Eclipse/Netbeans hat man schon 2 verdammt mächtige IDE's. Vor allem das tolle Refactoring und wie einfach man Projekte verwalten kann. Es gibt sicher Hardliner die mit Notepad++ oder vim Java coden, aber das wäre ein Grund nicht Java zu nutzen denn: Java ist verbose, verdammt verbose. Das ist natürlich extrem hinderlich für die Produktivität. Aber dank Eclipse/NetBeans hab ich einfach ne Tastenkombi die mir das anzeigt was ich haben will. Noch viel besser, wähle ich Klassen oder Methoden aus zeigt mir das Ding gleich geparsten Textcode mit Klick-Bunti an und zeigt mir was die Klasse/Methode macht. Einfach super Und das gibt es in viele Sprache erst gar nicht. Etwas das mich sehr nervt :/ Ich bin überhaupt nicht der Typ mensch der sich den Inhalt jeder Lib/Klasse/Methode merkt. Ich nutze das Java-Doc gerne. Dank Auto-Completion wurde mein Leben viel einfacher gemacht xD Weiter will ich IDE's nichts sagen. Den Rest wie Projektistorie, auto-build, ants, syntax-highlighting usw. gibt es ja auch in anderen IDE's

Plattformunabhänigigkeit von Haus. Ich bin mir darüber in klaren das es auch andere Sprache auf die das zutrifft (wobei ich aus der Wertung mal Scriptsprachen auslasse). Ich meine damit auch nicht nur Windoof, Mac und Linux. Ich meine damit auch Android, iOS und Konsolen. Mittlerweile gibt es versuche Java Bytecode in C++ zu übersetzen (https://github.com/badlogic/jack). Was wurde schon gut läuft. iOS geht über MonoTouch und IKVM. Aktuell nutze ich ja libgdx und das Ding läuft sogar im Web via WebGL und GWT. Ich finde es toll eine Codebasis zu haben und dann mit einem Klick für die jeweilige Plattform das Spiel zu publishen. Natürlich gibt es schon Abstriche zu die man machen muss, vor allem wenn man an GWT denkt da man viele Sachen emulieren muss. Und von Sound im Web will ich gar nicht erst nachdenken...

Tooling und Support. Ich hab immer das Gefühl, egal was ich brauche, es wurde bereits in Java gemacht. Außerdem ist auch oft alles gut dokumentiert so dass man libs auch versteht und nutzen kann. Diese "eine Metode oder Klasse muss sich selbst erklären"-Einstellung kann ich ja auf den Tod nicht ab :/ Sogar im Web gibt es Java im Form von Java EE. Und das gar nicht mal soooo übel. Mit Vaadin im Schlepptau kann schon einige coole Sachen im Web machen. Und dank der ganzen abgefahrenen Webtechnologien geht das auch noch ohne große Schmerzen. In meinem Praktikum hatte ich viel mit Android zu tun, was ich für ein Paradebeispiel an guter Dokumentation halte (Klar gibt auch Sachen die man da hätten anderes lösen können, ich hab mittels der Doku das programmieren auf dem Android gelernt).

Ich könnte jetzt noch ein paar weitere Gründe nennen, aber ich finde das reicht, man merkt ich steh schon ziemlich auf diese Sprache. Ich bin aber auch durchaus offen für neue Sachen. Erst vor kurzem habe ich Javascript meine Liebe gestanden (danke Lachsen). Tolle Sprache Nicht so toll viel Java aber es macht Spaß mit Javascript zu werkeln. Und da es im Web läuft kann man es ziemlich cool debuggen

So das wars Lasst mal hören wie es bei euch aussieht (Aber bitte nicht sagen: "Hallo ich hab vor 10 Jahren auch mal Java angefasst, war langsam" xD)