Man soll fragen: Was wird in welcher Sprachen programmiert?
Die Popularität der Objective C stammt varscheinlich aus der steigenden IOS, IPHONE usw. Verbreitung.
Ich kann raten, dass:
Java - keine Ahnung was wird in der Sprache programmiert
C - Linux-Systemsoftware
C++ - niemand hat noch die Sprache beherrscht. Die 8% aus der Tiobe-Liste sind die Luegner.
Visual X - Schnellprogrammierung fuer Windows-Desktops und .NET
PHP, Python, Javascript - Webseiten
Es ist erstaunlich, dass so wenig Leute SQL verwenden.
Java - Enterprise(J2EE ...) Umfeld, prof. Softwareentwicklung(Eclipse ...)
Python - Skripte zur Automatisierung und Auswertung, sehr wenige Anwendungen(calibre) und ein sehr wenig Web
--
http://www.heise.de/open/meldung/Linux-auf-dem-Desktop-Europa-fuehrt-1243708.html
http://www.heise.de/newsticker/meldung/Immer-mehr-Linux-auf-dem-Desktop-1404775.html
1 mal bearbeitet, zuletzt am 09.01.12 18:26 durch bstea.
> Java - keine Ahnung was wird in der Sprache programmiert
Jede Menge maßgeschneiderte Software, vor allem auf dem Server, das meiste davon sieht man als normaler Anwender eher nicht. Man muss nur nach Java, J2EE, JEE oder so in den gängigen Stellenanzeigen suchen und schon bekommt man ein ganz gutes Bild, wer Java einsetzt.
Naja ich denke die Popularität von java kommt unter anderem auch daher das viele Neueinsteiger damit beginnen weil es verhältnismäßig einfach ist. Jemand der noch nicht programmieren kann sucht auch häufiger im Internet nach Hilfe. Ein Professioneller Entwickler muss verhältnismäßig selten im Internet nach Hilfe suchen. Und wenn dann werden die Probleme so speziell sein das er nicht über Suchmaschinen geht sondern gezielt die API nachschlägt bzw. Fachliteratur zur Seite zieht. Da die Statistik aber rein auf Suchmaschinen Ergebnissen beruht entspricht es nicht unbedingt der Wahrheit.
Wie gesagt, für mich persönlich erkenne ich die Popularität einer Programmiersprache an den Stellenangeboten und da sieht es für Java richtig gut aus. Deswegen glaube ich nicht, dass es damit zu tun hat ob Java anfängerfreundlich oder nicht.
bimini schrieb:
--------------------------------------------------------------------------------
> Naja ich denke die Popularität von java kommt unter anderem auch daher das
> viele Neueinsteiger damit beginnen weil es verhältnismäßig einfach ist.
> Jemand der noch nicht programmieren kann sucht auch häufiger im Internet
> nach Hilfe. Ein Professioneller Entwickler muss verhältnismäßig selten im
> Internet nach Hilfe suchen. Und wenn dann werden die Probleme so speziell
> sein das er nicht über Suchmaschinen geht sondern gezielt die API
> nachschlägt bzw. Fachliteratur zur Seite zieht. Da die Statistik aber rein
> auf Suchmaschinen Ergebnissen beruht entspricht es nicht unbedingt der
> Wahrheit.
andrej611 schrieb:
--------------------------------------------------------------------------------
> Es ist erstaunlich, dass so wenig Leute SQL verwenden.
oh je... SQL ist doch keine Programmierprache :O
andrej611 schrieb:
--------------------------------------------------------------------------------
> Ich kann raten, dass:
> Java - keine Ahnung was wird in der Sprache programmiert
> C - Linux-Systemsoftware
> C++ - niemand hat noch die Sprache beherrscht. Die 8% aus der Tiobe-Liste
> sind die Luegner.
> Visual X - Schnellprogrammierung fuer Windows-Desktops und .NET
> PHP, Python, Javascript - Webseiten
>
> Es ist erstaunlich, dass so wenig Leute SQL verwenden.
java:
im android market gibts im schnitt 40.000 neue java apps im monat.
C:
viele hardwarenahe sachen. z.b. OpenGL
C++:
lernt man im 1. semester informatik gleich nach C (soviel zu "niemand beherscht das"). unzaehlige grosse softwareprojekte sind in C++ geschrieben. microsoft versucht schon laenger c++ zu "toeten" :) deshalb evtl deine unkenntnis und fehlinformation.
Visual X:
was'n das?
python:
wird vor allem zur automatisierung von allmoeglichem zeug benutzt. z.b. portage/emerge von gentoo :). so ziemlich niemand benutzt py in der webentwicklung, zu unpraktisch.
SQL:
ist in der tat KEINE programmiersprache.
mfg
einTroll
> ....
> C++:
> lernt man im 1. semester informatik gleich nach C (soviel zu "niemand
> beherscht das"). unzaehlige grosse softwareprojekte sind in C++
> geschrieben. microsoft versucht schon laenger c++ zu "toeten" :) deshalb
> evtl deine unkenntnis und fehlinformation.
>
Das was der Student in den ersten Semestern lernt, ist vielleicht ein bissel mehr als der Syntax, kratzt aber höchstens an der Oberfläche.
C++ beherrschen ist aber was ganz ganz anders, und das tun nicht wirklich so viele.
MS will C++ sicherlich nicht töten, auch wenn es für Anwendungsentwicklung C# präferiert. Außerdem arbeiten ja schließlich ein paar der C++ Gurus bei MS :).
bimini schrieb:
--------------------------------------------------------------------------------
> Naja ich denke die Popularität von java kommt unter anderem auch daher das
> viele Neueinsteiger damit beginnen weil es verhältnismäßig einfach ist.
> Jemand der noch nicht programmieren kann sucht auch häufiger im Internet
> nach Hilfe.
Jemandem, der noch nicht programmieren kann, würde ich auf gar keinen Fall Java zum Einstieg empfehlen!
_4ubi_ schrieb:
--------------------------------------------------------------------------------
> Das was der Student in den ersten Semestern lernt, ist vielleicht ein
> bissel mehr als der Syntax, kratzt aber höchstens an der Oberfläche.
> C++ beherrschen ist aber was ganz ganz anders, und das tun nicht wirklich
> so viele.
>
> MS will C++ sicherlich nicht töten, auch wenn es für Anwendungsentwicklung
> C# präferiert. Außerdem arbeiten ja schließlich ein paar der C++ Gurus bei
> MS :).
man koennte sich jetzt darueber streiten wie man das wort "beherrschen" in dem zusammenhang jetzt auslegt. ich hab das mal in relation zu den anderen programmier-/auszeichnungs-/abfrage-/ect. sprachen die wir im studium lernen mussten gestellt. ich hatte den eindruck, dass 80-90% derjenigen die den abschluss gemacht haben, C++ befriedigend oder besser "beherrschten".
-vergleiche mal die IDE "visual C++" mit "visual c#".
-versuche eine GUI mit winforms(c++) zu bauen. baue die gleiche gui in "vb .net".
-...
die ms entwicklertools fuer c++ sind meiner meinung nach einfach deutlich schlechter als die der eigenen sprachen. ich glaube, das ms c++ systematisch durch "unterlassen" aushungern will.
mfg
> Jemandem, der noch nicht programmieren kann, würde ich auf gar keinen Fall Java zum Einstieg empfehlen!
soso, und warum dieses nicht?
developer schrieb:
--------------------------------------------------------------------------------
> > Jemandem, der noch nicht programmieren kann, würde ich auf gar keinen
> Fall Java zum Einstieg empfehlen!
>
> soso, und warum dieses nicht?
Weil es für jemanden, der noch nicht programmieren kann viel zu komplex ist. Zum Einstieg gibt es wesentlich einfachere Sprachen/Scriptsprachen als gerade ein objektorientiertes Java.
trollianer schrieb:
--------------------------------------------------------------------------------
> _4ubi_ schrieb:
> ---------------------------------------------------------------------------
> -----
> > Das was der Student in den ersten Semestern lernt, ist vielleicht ein
> > bissel mehr als der Syntax, kratzt aber höchstens an der Oberfläche.
> > C++ beherrschen ist aber was ganz ganz anders, und das tun nicht
> wirklich
> > so viele.
> >
> > MS will C++ sicherlich nicht töten, auch wenn es für
> Anwendungsentwicklung
> > C# präferiert. Außerdem arbeiten ja schließlich ein paar der C++ Gurus
> bei
> > MS :).
>
> man koennte sich jetzt darueber streiten wie man das wort "beherrschen" in
> dem zusammenhang jetzt auslegt. ich hab das mal in relation zu den anderen
> programmier-/auszeichnungs-/abfrage-/ect. sprachen die wir im studium
> lernen mussten gestellt. ich hatte den eindruck, dass 80-90% derjenigen die
> den abschluss gemacht haben, C++ befriedigend oder besser "beherrschten".
>
Ok wahrscheinlich verstehen wir uns da falsch. Beherrschen ist für mich STL, boost, Modern C++ (Andrei Alexandrescu), etc. verstanden zu haben und anwenden zu können. (Und die Probleme von C++ zu kennen (z.B. Scott Meyer Bücher, GotW).
> -vergleiche mal die IDE "visual C++" mit "visual c#".
> -versuche eine GUI mit winforms(c++) zu bauen. baue die gleiche gui in "vb
> .net".
Das VS2010 C++ Intellisense ist wirklich richtig mies im Gegensatz zu früher. Die geloben wohl Besserung für die nächste Version.
> die ms entwicklertools fuer c++ sind meiner meinung nach einfach deutlich
> schlechter als die der eigenen sprachen. ich glaube, das ms c++
> systematisch durch "unterlassen" aushungern will.
>
Ich denke nicht, aber der Fokus wird sicher für die Anwendungsentwicklung auf C# gelegt.
> mfg
andrej611 schrieb:
--------------------------------------------------------------------------------
> Man soll fragen: Was wird in welcher Sprachen programmiert?
Das liest man häufiger, ist aber Unsinn.
Die Frage ist eher, wie groß ist das geplante Projekt, welche Unterstützung benötige
ich vorrangig?
> Ich kann raten, dass:
> Java - keine Ahnung was wird in der Sprache programmiert
Webservices.
Auf Tiobe startet es gut durch, weil es seit einigen Jahren bevorzugte
Ausbildungssprache ist, entsprechend viele Suchanfragen, Foreneinträge und Web-
seiten sich mit dem Thema beschäftigen.
Gefühlt würde ich Java als im Sichtum beschreiben. Am Leben, aber ohne Zukunft,
da weder innovativ, noch wichtig. Es gibt halt viele, die Java können, viel Software
wurde in Java geschrieben, aber wenn's um Neues geht, sind die Java-Rufe wenig
geworden.
Java war ein Hype. Der Hype ist vorbei.
> C - Linux-Systemsoftware
> C++ - niemand hat noch die Sprache beherrscht. Die 8% aus der Tiobe-Liste
> sind die Luegner.
Ich versuche das als "niemand beherrscht die Sprache" zu deuten und widerspreche.
Fakt ist, dass C++ komplexer ist als Java oder C#, das bedeutet höheren Lernaufwand, um alles Möglichkeiten der Sprache zu beherrschen. Java und C# bedürfen weniger Lernaufwand benötigen, weil Möglichkeiten fehlen. Daher ist es dennoch oftmals sinnvoller auf C++ zu setzen, weil das für C#/Java erforderliche Wissen in C++ 1:1 umzusetzen ist. Während man in C#/Java dann an Grenzen stößt (ein "Profi" ist), hat man in C++ erst Halbzeit.
C++ ist besonders in kritischen Bereichen semantisch deutlich stärker ist als Java oder C#. Der C++ Compiler ist in der Lage semantische Programmierfehler zur Kompilierzeit zu erkennen, die Java und C# Compiler nicht erkennen können (Stichwörter Const-Correctness, Referenzen). Fehlerhafte Programme stürzen also nicht ab, sondern können gar nicht erst kompiliert werden.
Weiterhin ist C++ stärker in der Formulierbarkeit von Problemen (Stichwort: Mehrfachvererbung, Templates).
Die Lernkurve bei C++ ist zu beginn flacher als bei C#/Java, steigt aber stetig, meiner Erfahrung nach überholen C++-Einsteiger Java/C#-Einsteiger allerdings, da C++ weniger fehlertolerant ist. Das ist ein Vorteil, da Standard-Fehler (in C++ "Anfängerfehler" genannt) frühzeitig erlernt, erkannt und dann vermieden werden. "C++-Anfängerfehler" werden von auf Java spezialisierten Informatikern gerne noch in professionelle Java-Programme eingebaut.
C++ ist beherrschbar, sicherer als C# und Java und rechnet sich so auch finanziell im Entwicklungsaufwand. Ich bin Dipl. Informatiker und habe als Java Entwickler gearbeitet und dort Fehler debuggt, die in C++ nicht kompilierbar wären. Aktuell bin ich C#-Entwickler, habe aber seit über einem Jahr kein C# mehr gesehen. Die Kernprogrammierung findet in C++ statt. Privat arbeite ich inzwischen ausschließlich mit C++ in allen Bereichen (inkl. serverseitige Websiteprogrammierung).
C++ sollte man nicht unterschätzen, egal auf welchem Platz es ist. Es ist das stärkste und flexibelste Werkzeug, dass in der Softwareentwicklung verfügbar ist, besonders für große und sehr große Projekte. Aber man muss sich natürlich die Mühe machen, es sich anzusehen. Die meisten schreiben kleine Projekte und nutzen diese Werkzeuge dann später auch für größere Projekte.
Mit PHP kann man schnell mal eine Website schreiben, hier ist der Overhead in C++ zu groß. Bei einem aufwendigen Content-Management-System ist der Overhead zu vernachlässigen, die Hilfe durch den Compiler rechnet sich aber in Zeit- und Geldersparnis.
1 mal bearbeitet, zuletzt am 10.01.12 13:14 durch Amüsierter Leser.
JanZmus schrieb:
--------------------------------------------------------------------------------
> developer schrieb:
> ---------------------------------------------------------------------------
> -----
> > > Jemandem, der noch nicht programmieren kann, würde ich auf gar keinen
> > Fall Java zum Einstieg empfehlen!
> >
> > soso, und warum dieses nicht?
>
> Weil es für jemanden, der noch nicht programmieren kann viel zu komplex
> ist. Zum Einstieg gibt es wesentlich einfachere Sprachen/Scriptsprachen als
> gerade ein objektorientiertes Java.
Mit der Empfehlung stimme ich Dir zu.
Aber falsche Begründung.
Nicht die Komplexität ist das Problem, man muss eine Sprache nicht am Stück lernen.
Das Problem ist die Abstraktion. Java ist abstrakt, es läuft auf einer virtuellen Maschine. Es macht Dinge, wie es Java für richtig hält.
Am Schluss arbeitet man aber wieder auf einem Computer. Man sollte die Maschine kennen, auf der man arbeitet, nicht ein virtuelles Etwas.
Wer lernt Computer zu programmieren, sollte Computer verwenden. Die Erfahrung zeigt mir, dass Java-Entwickler ein recht sagen wir phantasiereiches Verständnis von Computern entwickeln. Der Versuch wird in C/C++ nicht gelingen.
Entweder man programmiert für den Computer, oder das Programm fliegt einem um die Ohren. Und das ist ein klares, eindeutiges und kompromissloses Feedback, was auch jeder Anfänger sehr einfach versteht. Ich habe noch keinen C/C++ Entwickler gesehen, der sich ein Phantasiegebilde als Gedankenmodell erstellt hat.
Ja, kann ich auch unterschreiben. Dennoch finde ich die Komplexität einfach für jemanden, der noch NIE programmiert hat, einfach unnötig hoch, d.h. WAS muss ich alles verstehen, bevor ich überhaupt das allererste Programm schreibe. Und da ist es nunmal so, dass man für Java das Prinzip der Klassen einfach verstanden haben muss.
> > Jemandem, der noch nicht programmieren kann, würde ich auf gar keinen
> Fall Java zum Einstieg empfehlen!
>
> soso, und warum dieses nicht?
Weil schon ein simples „Hello, World“ voll von Konzepten steckt, die man erstmal erklären müsste:
class HelloWorld{
public static void main(String[] args){
System.out.println("Hello, World!");}}
Was macht class, was macht public, was macht static, was ist void, was ist String, was machen die eckigen Klammern, wozu dienen die Punkte, etc. – jemand, der dieses wirklich simple Beispiel vollständig verstehen will, muss wissen, was eine Klasse ist, was Methoden sind, wie Typisierung funktioniert, was ein Array ist, usw.
Wieviel einfacher sind doch da diverse andere Sprachen, die ein einfaches
print "Hello, World!"
oder
print("Hello, World!")
können.
Reden ist Silber, Schweigen ist Gold, meine Ausführungen sind Platin.
> Nicht die Komplexität ist das Problem, man muss eine Sprache nicht am Stück
> lernen.
> Das Problem ist die Abstraktion. Java ist abstrakt, es läuft auf einer
> virtuellen Maschine. Es macht Dinge, wie es Java für richtig hält.
>
> Am Schluss arbeitet man aber wieder auf einem Computer. Man sollte die
> Maschine kennen, auf der man arbeitet, nicht ein virtuelles Etwas.
> Wer lernt Computer zu programmieren, sollte Computer verwenden.
Halte ich für falsch. Der Kern des Entwickelns von Software ist das Schreiben von Etwas, dass das Gewünschte tut und Abstraktion, nämlich die Dinge, die Gleiches tun oder gleich sind, zu einem Ding zusammenzufassen – das gilt für alle Programmiersprachen. Ob das, was dann herauskommt, dann interpretiert, in einer virtuellen Maschine ausgeführt oder nativ ausgeführt wird, ist eine Detailfrage.
> Die
> Erfahrung zeigt mir, dass Java-Entwickler ein recht sagen wir
> phantasiereiches Verständnis von Computern entwickeln. Der Versuch wird in
> C/C++ nicht gelingen.
> Entweder man programmiert für den Computer, oder das Programm fliegt einem
> um die Ohren. Und das ist ein klares, eindeutiges und kompromissloses
> Feedback, was auch jeder Anfänger sehr einfach versteht. Ich habe noch
> keinen C/C++ Entwickler gesehen, der sich ein Phantasiegebilde als
> Gedankenmodell erstellt hat.
Deine Erfahrungen kann ich natürlich nicht in Abrede stellen, aber zwei Fragen habe ich dennoch:
1. Sind diese Erfahrungen verallgemeinerbar?
2. Handelt es sich um einen kausalen Zusammenhang, sprich, Java verursacht ein „phantasiereiches Verständnis von Computern“, was immer du darunter verstehst? Oder könnte auch dieses besondere Verständnis nicht die Leute eher zu Java statt zu C/C++ führen oder sogar eine Dritte, bisher unerkannte Ursache sowohl zu diesem Verständnis als auch zu einer Vorliebe für Java führen?
Reden ist Silber, Schweigen ist Gold, meine Ausführungen sind Platin.
GodsBoss schrieb:
--------------------------------------------------------------------------------
> > Am Schluss arbeitet man aber wieder auf einem Computer. Man sollte die
> > Maschine kennen, auf der man arbeitet, nicht ein virtuelles Etwas.
> > Wer lernt Computer zu programmieren, sollte Computer verwenden.
>
> Halte ich für falsch. Der Kern des Entwickelns von Software ist das
> Schreiben von Etwas, dass das Gewünschte tut und Abstraktion, nämlich die
> Dinge, die Gleiches tun oder gleich sind, zu einem Ding zusammenzufassen
> – das gilt für alle Programmiersprachen.
Das ist nicht Abstraktion, die ich meine, denn die gilt für alle Programmiersprachen so soweit, wie diese Sprachen fähig sind, Abstraktionen zu formulieren.
> Ob das, was dann
> herauskommt, dann interpretiert, in einer virtuellen Maschine ausgeführt
> oder nativ ausgeführt wird, ist eine Detailfrage.
Leider nur bedingt.
Hier geht es bereits damit los, dass Java Dinge tut, die wesentlich abstrakter sind, als dass man sie beiläufig begreifen kann. Das beginnt bei der ungefragten Initialisierung von Variablen bis hin zum Unterschied von Java- und C++-Referenzen.
Eine Referenz ist nicht das Objekt. Während eine C++-Referenz verlangt, dass sie auf ein existierendes Objekt initialisiert wird (oder eben nicht kompiliert), ist eine Java-Referenz lediglich eine Referenz auf einen garantiert existierenden Zeiger, der dann aber Null sein kann. So kommt es, dass es in Java zwar keine Zeiger gibt, aber Null-Pointer-Exceptions. Das kann man als Detail beschreiben, aber das Detail ist von einem Einsteiger überhaupt nicht nachvollziehbar.
Gerade zu meiner Studienzeit wurde unterrichtet und propagiert, dass Java ohne gefährliche Zeiger auskommt - dabei hat Java nichts außer Zeiger im Angebot. Das gefährliche C++ liefert eine recht sichere Alternativen und eine absolut totsichere Alternative, die nicht fehlschlagen kann.
Hier kommen wir nicht mehr in Detailfragen, sondern in Softwaresicherheit.
> > Die
> > Erfahrung zeigt mir, dass Java-Entwickler ein recht sagen wir
> > phantasiereiches Verständnis von Computern entwickeln. Der Versuch wird
> in
> > C/C++ nicht gelingen.
> > Entweder man programmiert für den Computer, oder das Programm fliegt
> einem
> > um die Ohren. Und das ist ein klares, eindeutiges und kompromissloses
> > Feedback, was auch jeder Anfänger sehr einfach versteht. Ich habe noch
> > keinen C/C++ Entwickler gesehen, der sich ein Phantasiegebilde als
> > Gedankenmodell erstellt hat.
>
> Deine Erfahrungen kann ich natürlich nicht in Abrede stellen, aber zwei
> Fragen habe ich dennoch:
> 1. Sind diese Erfahrungen verallgemeinerbar?
Ich habe Java-Einsteiger (also min. 12-18 Monate Javakenntnisse) im 3. Semester in C und C++ unterrichtet. Die Luftschlösser waren unterschiedlich. Beim Zugriff auf eine einfache Variable wurde es jedenfalls schon sehr luftig.
> 2. Handelt es sich um einen kausalen Zusammenhang, sprich, Java verursacht
> ein „phantasiereiches Verständnis von Computern“, was immer du
> darunter verstehst?
Ich habe die Erfahrung gemacht, dass das Wissen meiner C-Schüler schärfer von Unwissen abgegrenzt war als das der Java-Leute. Je schärfer diese Abgrenzung ist, desto weniger wird experimentiert, desto klarer ist der Weg vom Problem zu einem klar begehbaren Weg, der zu einer Lösung führt.
> Oder könnte auch dieses besondere Verständnis nicht die
> Leute eher zu Java statt zu C/C++ führen oder sogar eine Dritte, bisher
> unerkannte Ursache sowohl zu diesem Verständnis als auch zu einer Vorliebe
> für Java führen?
Wenn ich Leute in C/C++ mit meiner Auffassung von Java unterrichte, dann ist es nicht verwunderlich, wenn die Leute danach gute Gründe an die Hand bekommen haben, warum sie mit C++ Dinge einfacher formulieren können.
Sie haben aber auch selbst eingesehen, dass dieses "besondere Verständnis" aus Unkenntnis entstanden ist und sie aufhält.
Die Hauptaufgabe, wenn man einem Java-Entwickler C bzw. C++ beibringt, ist ihm klar zu machen, dass er gelernt hat komplizierter zu denken, als es erforderlich ist. Ich hatte häufiger, dass mir Leute sagten, dass sie die richtige Lösung im Kopf hatten, sie aber zu einfach sei, als dass sie richtig sein könnte.
Ich habe im Studium eine Lösung in C geschrieben und später nach Java portiert, weil wir ein Java-Projekt erstellen mussten. Aus 5 Zeilen C-Code, der garantiert nicht fehlschlagen konnte, also auch keine Fehlerbehandlung erforderlich machte, wurden so zwei Bildschirmseiten mit viel erzwungener try-catch-Fehlerbehandlung.
Ich mache auch die Erfahrung, dass ambitionierte Entwickler (die ich nicht unterrichte) und die sich nicht nur auf das konzentrieren, was sie in der Schule/Hochschule lernen und C/C++ kennenlernen, sich häufiger bewusst zu C/C++ orientieren, als davon weg. Die sich von C++ weg orientieren, gibt es natürlich auch. Aber es sind eher wenige.
Ich machte im professionellen Umfeld die Erfahrung, dass C++-Kenntnisse von Java-Kenntnissen deutlich unterschieden werden - was sich z.B. positiv auf mein Gehalt als Java-Entwickler auswirkte. Sie sind ja auch sehr verschieden. Der damalige Projektleiter meinte auf meine Frage, warum man mich als jahrelanger C++-Entwickler (entsprechend weniger Zeit mit Java verbracht) überhaupt eingestellt hat "C++-Entwickler wissen, was sie tun."
An den Bugs, die ich dann später suchen und ausmerzen musste, verstand ich auch, was er damit meinte.
Java ist keine schlechte Sprache. C# ist besser. Aber C++ war zu Beginn der 80er bereits auf einem Level, dass beide heute noch nicht erreicht haben. Mein Kollege hier ist ebenfalls jahrelanger C++ Entwickler. Er kann C++ nicht perfekt. Keine Templates, keine Mehrfachvererbung. Aber Const-Correctness und Referenzen. Er hat dann C# gelernt und darin ein Projekt umgesetzt. Seitdem weigert er sich in C# zu programmieren, das Elend will er sich nicht antun.
Man muss nicht an den Grenzen von C++ gehen, um über Java/C# hinaus zu gehen. Und wenn man erstmal über die Grenzen von Java/C# gegangen ist, dann will man sich nicht mehr einzwängen lassen.
Ich weigere mich nicht C# zu programmieren. Ich bin weiterhin ein Ansprechpartner für andere Entwickler, die Fragen zu C# haben. Aber auch ich konnte es jetzt über ein Jahr vermeiden, selbst C# programmieren zu müssen.
Das mag jetzt arrogant klingen, ist aber nicht so gemeint: Wer akzeptiert, was man ihm vorsetzt, wird auch nichts vermissen. Ich vermisse sehr viel an C++. Ich bin kein C++-Fan. C++ ist lediglich das Werkzeug, dass meinen Bedürfnisse an eine Programmiersprache mit Abstand am nächsten kommt.
Ich mache privat allerdings keine Hello-World-Programme mehr, sondern Projekte in der Größe, die kleinere Softwarefirmen nicht erreichen. Um das zu verwalten, brauche ich maximale Unterstützung durch die Sprache. Darum vermisse ich viel. Nach 25 Jahren Programmierung wäre ich aber nicht in der Lage, Projekte dieser Größe unter Java oder C# sicher zu entwickeln.
So... also an populären Sprachen hätten wir da also für die Anwendungsentwicklung Java, C#, ObjC und C++. C++ hat dank Java-Marketing einen schlechten Ruf und C# ist besser, ObjC ist quasi alternativlos in der Anwendungsentwicklung auf MacOS und iOS. C++ kann man nicht aus der Hand legen, weil es keine Alternative zur Ausführungsgeschwindigkeit und Codequalität gibt. Java interessiert also vorrangig noch auf Windows. Und da ist C# ist besser und innovativer.
Auf dem Mac ist Java schon als Geschichte ausgezählt und der Anstieg von Obj-C weißt darauf hin, dass die Entwickler das dort auch akzeptieren. Cocoa (also Mac) wird nämlich ebenfalls über ObjC angesprochen, nicht nur iOS.
Java hat keine Heimat-Plattform mehr, wie C# oder ObjC. Java ist nicht sonderlich portabel. C++ ist weiterhin die Sprache mit der höchsten Portablität: Linux, Mac, Windows, alles kein Problem. Kein kompliziertes JNI, um fehlende Java-Funktionalität über C/C++ zu erreichen, einfach nur ein #ifdef, um die Plattform zu unterscheiden.
Vor 10-15 Jahren waren übrigens Delphi Entwickler verzweifelt gesucht. Delphi ist die Sprache, die C++ wegfegt, wer sich noch erinnert. Ich habe Delphi im Studium gelernt und habe weiter auf C++ gesetzt. Dann kam Java und sollte C/C++ überflüssig machen. Stattdessen verschwand Delphi.
C und C++ sind so eng verwandt, dass C nahezu als Teilmenge von C++ verstanden werden kann (und von den Compilern auch wird). Addiert man C und C++ bei Tiobe kommt man auf derzeit 26%. Ein Wert, den Java zu Zeiten des absoluten Hypes (27%), als keiner mehr eine Frage stellte, solange die Antwort Java war. Die Kaffee-Maschinen mit 128MB RAM, damit Java läuft, hat es dann doch nie gegeben.
Damals war C und C++ offiziell tot, aber bei Tiobe zusammen trotzdem bei 36%.
Tiobe ist nur ein Indiz, aber der Trend widerspricht mir jedenfalls nicht:
http://www.tiobe.com/index.php/paperinfo/tpci/Java.html
Die Kurve von C++ hatte einen Absturz in Folge der Java-Hype-Zeit und verläuft jetzt mit schwachem Gefälle bei um die 9%. C tendiert zu steigen.
Ich sehe keine Vorlieben für Java mehr. Der Hype ist vorbei.
Java stirbt.
GodsBoss schrieb:
--------------------------------------------------------------------------------
> > > Jemandem, der noch nicht programmieren kann, würde ich auf gar keinen
> > Fall Java zum Einstieg empfehlen!
> > soso, und warum dieses nicht?
> Weil schon ein simples „Hello, World“ voll von Konzepten
> steckt, die man erstmal erklären müsste:
>
> Wieviel einfacher sind doch da diverse andere Sprachen, die ein einfaches
> print "Hello, World!"
> können.
Volle Zustimmung.
(Auch wenn ich C den Vorrang gebe, das C-Hello World ist mir auch zu kompliziert für die erste Stunde, da ärgere ich mich auch regelmäßig drüber, aber bei C#/Java ärgere ich mich noch mehr.)
Kommentare: 171 | letzter Beitrag 20:42 Uhr
Kommentare: 94 | letzter Beitrag 26.05. 19:45
Kommentare: 77 | letzter Beitrag 20:57 Uhr
Kommentare: 70 | letzter Beitrag 18:56 Uhr
Kommentare: 61 | letzter Beitrag 21:29 Uhr
E-Mail an news@golem.de

Der japanische Spieldesigner Goichi Suda - Fans sagen schlicht "Suda 51" - ist für schräge Actionspiele bekannt. Sein nächstes Werk schickt ein scheinbar braves Schulmädchen in den Kampf gegen Zombies.

Weitgehend unbemerkt hat der US-Händler Tigerdirect die ersten Chromebox-Systeme von Google ausgeliefert. Für 330 US-Dollar bekommt der Nutzer recht gute Hardware in Nettop-Form, die sehr viel leistungsfähiger ist als die des Chromebook mit ChromeOS.

Der neue Chef der Piratenpartei steht im Verteidigungsministerium unter Druck. Elektronische Kommunikation für seine Partei ist ihm in der Dienstzeit untersagt. "Es gibt Leute im Ministerium, die darauf warten, dass ich Fehler mache", sagte Schlömer.

Renesas ist nach Elpida der zweite schwer angeschlagene japanische Chiphersteller. Renesas, das Hitachi, Mitsubishi Electric und NEC gehört, macht Verlust und will seine größte Fabrik verkaufen.

RIM soll in den kommenden Tagen erneut einen massiven Stellenabbau ankündigen. "Ich habe herausgefunden, welche Teile ich in meinem Puzzle nicht mehr benötige", sagte Firmenchef Thorsten Heins.

Ein britisches Blog will erfahren haben, dass Facebook den norwegischen Browserhersteller Opera Software kaufen will. Beide Unternehmen wollen sich dazu nicht äußern.