Wird JAVA C/C++ vom Markt verdrängen?



  • Ich will zwar nicht mitdiskutieren (auch wenn dies ein toller Thread ist), aber den Link zum anderen Thread hier geben; wo der Gast die interesssante Frage ebenfalls gestellt hat.



  • C++ wird in vielen Bereichen weiterhin die erste Wahl sein, weil es mächtige Sprachfeatures liefert

    Welche bitte? Das einzige was ich als "mächtige Sprachfeatures" in C++ bezeichnen würde sind Templates.
    Da bietet Java weitaus mehr.

    Java:
    - Annotations
    - Garbage Container
    - Threads
    - Generics
    - Reflection

    C++
    - pointers
    - templates
    - preprocessor ( ist eher ein Nachteil )

    Mal sehen was der nächste C++ Standard bringt, wenn er mal kommt.



  • Gregor schrieb:

    ich zweifele auch nicht daran, dass C# VB auf diesem Gebiet verdrängt.

    Wieso sollte? Ich sehe, dass die Tendenz ins Gegenteil geht. Was nicht heißen soll, dass VB C# verdrängt, sondern, dass sich im Bereich .NET immer mehr Sprachen nebeneinander ausbreiten (als Beispiel seien nur Boo und Delphi genannt). Jede hat da ihre Stärken und ihre Schwächen. C# und VB nehmen sich prinzipiell nicht viel, hier entscheidet eigentlich nur die Vorliebe der Syntax. VBs Syntax ist klarer, C#s kompakter. Ich verwende beide etwa gleichviel, je nachdem, welche sich gerade besser eignet.

    Wenn man sich die nächste Sprachversion anschaut wird klar, dass Microsoft nicht vorhat, VB fallen zu lassen, im Gegenteil. Was da präsentiert wird (LINQ), mag ein wenig utopisch und ziemlich bekloppt klingen, es eröffnet aber vollkommen neue Welten der Programmierung.



  • sag mal, gast (threadersteller), willst du uns eigentlich verarschen? du bist niveauloser als sat1. in einem c++ forum und einem java forum den gleichen thread zu starten, und dann auch noch fremde antworten aus den threads in dem jeweils anderen forum/thread als deine eigenen auszugeben ist unter aller sau.
    wer die originalbeiträge lesen will, hier: http://www.java-forum.org/de/viewtopic.php?t=31755 👎

    PS: @Artchie: geile argumentation in deinem anti-java-desktop-blog-entry, das zeugt von kompetenz 😉 👍



  • @Konrad Rudolph:

    Ich beobachte ein bischen solche Job-Statistik-Seiten. ...und da habe ich folgendes auf www.jobstats.co.uk festgestellt. Seit dem Erscheinen von C# sind Java und C++ davon nicht sehr stark betroffen. Das heißt, die Jobs, die jetzt für C# entstanden sind, sind nicht auf Kosten der C++-Jobs oder der Java-Jobs entstanden.

    So, und jetzt guck mal da:

    Ich fasse mal zusammen:

    Mai 2001 brauchte man für etwa 11% der Jobs VB Kenntnisse, C# war damals noch gar nicht gefragt. Inzwischen braucht man nur noch für etwa 4,5% der Jobs VB Kenntnisse, dafür aber für etwa 8% der Jobs C# Kenntnisse.

    Ich sehe es als die enfachste Erklärung an, dass da wohl Jobs vom VB-Lager ins C#-Lager abgewandert sind. ...wobei es natürlich noch gewisse andere, kleinere Effekte geben wird. Aber wenn Du eine bessere Erklärung dafür hast: Immer her damit!

    Auf www.gulp.de hat C# übrigens bei weitem nicht die Relevanz gewonnen, die diese Sprache nach der anderen Seite für den englischen Markt gewonnen hat. Ich weiß nicht, woran das liegt: Entweder daran, dass sich Gulp an Selbständige richtet, die vielleicht ganz andere Anforderungsprofile erfüllen müssen, oder daran, dass der deutsche Markt einfach etwas anders aussieht.



  • Gregor schrieb:

    Ich sehe es als die enfachste Erklärung an, dass da wohl Jobs vom VB-Lager ins C#-Lager abgewandert sind.

    Teilweise, ja. Die Realität ist aber weit weniger extrem, als diese Zahlen es darstellen. Zumindest beobachte ich, dass einige Firmen C#-Kenntnisse verlangen (und wer die als VB.NET-Programmierer nicht liefern kann, ist selber schuld). Was dann später tatsächlich verwendet wird, steht auf einem anderen Blatt. Für den Arbeitnehmer gibt es oft keinen Grund, einer der Sprachen den Vorzug zu geben, sodass am Ende doch VB verwendet wird (oder sogar beide).
    Hinzu kommt, dass diese Statistik eventuell auch etwas anderes widerspiegelt (da muss man immer vorsichtig sein), nämlich die sinkende Nachfrage von VB6 zugunsten von .NET (und da wird C# einfach oft zuerst genannt). Und die ist unbestritten.



  • JBeni schrieb:

    Ich will zwar nicht mitdiskutieren (auch wenn dies ein toller Thread ist), aber den Link zum anderen Thread hier geben; wo der Gast die interesssante Frage ebenfalls gestellt hat.

    Was soll der Scheiss???? 😡 Einfach meine Postings in einem anderem Forum ohne meine Erlaubnis 1:1 rüber zu kopieren??? 😡 👎



  • Gast_neu == Troll des Jahres 😃 👍



  • gurkenesser schrieb:

    sag mal, gast (threadersteller), willst du uns eigentlich verarschen? du bist niveauloser als sat1. in einem c++ forum und einem java forum den gleichen thread zu starten, und dann auch noch fremde antworten aus den threads in dem jeweils anderen forum/thread als deine eigenen auszugeben ist unter aller sau.

    Tja, hättest vielleicht mal gründlicher lesen sollen.

    [...]und die Antworten hier posten

    😉

    Freie Meinungsäusserungen stehen nunmal nicht unter einem Copyright. Wer also will, dass seine Antworten nicht cross-gepostet werden, sollte dies besser sagen oder die Klappe halten. Sry, wenn ich damit einige auf den Boden der Realität zurückhole.

    Was das eigentliche Thema betrifft, ich finde solche Vergleiche ja immer recht wertlos. C++ vs. Java ist so sinnvoll, wie ein Vergleich von Äpfel und Birnen. Die Sprachen mögen sich zwar ähnlich sehen, haben aber ein vollkommen anderes "Backend". Von daher sind die sinnvollen Einsatzgebiete nicht unbedingt die gleichen. Und das wird sich auch in naher Zukunft nicht ändern. Ich sehe es zudem eher so, dass sich beide Sprachen mehr und mehr annähern werden. Deshalb könnte, genau wie diese Diskussion, der Einsatz irgendwann mal eine rein subjektive Entscheidung sein.



  • In Deutschland gilt aber das Urheberrecht bei geistigem Eigentum (was meine Postings sind), welches sich vom Copyright-Recht deutlich unterscheidet. Du solltest dich also besser informieren, was hier in Deutschland für Gesetze gelten.



  • Artchi schrieb:

    In Deutschland gilt aber das Urheberrecht bei geistigem Eigentum (was meine Postings sind), welches sich vom Copyright-Recht deutlich unterscheidet. Du solltest dich also besser informieren, was hier in Deutschland für Gesetze gelten.

    aber es stand irgendwo in den Forumregeln das man alle Postings nach belieben kopieren und weiterverwenden kann.



  • @Artchi: tut mir sehr leid, ich dachte das hätte ich ganz klar beschrieben im ersten Posting. Ich werde Deine Kommentare nicht mehr ins Java-Forum übertragen.

    @antigast: dankeschön für den Preis 🙂

    Zur Erklärung warum ich das ganze hier gestartet hatte. Ich war auf der Suche nach ein paar kompetenteren Antworten als es in den üblichen Java vs C++ Threads der Fall ist. Ich war auch sehr gespannt welche Community da realistischer die Einsatzgebiete der beiden Top-Sprachen abgenzt. Mir war auch klar dass ich als erstes die üblichen "troll nicht rum" antworten bekommen würde und viel rumnörgel, weil sie das Thema schon ein dutzend mal durch haben. Ich denke aber weiterhin, dass es doch viele interessiert die grade dabei sind sich auf eine der beiden Sprachen zu spezialisieren.

    Recht subjektiv halte ich die Kommentare hier für objektiver, mich erinnern da viele JAVA-User an Mac-Besitzer, die auf Teufel komm raus ihre Wahl für den heiligen Gral halten womit alles andere überflüssig wird.

    Ich danke allen die sich hier ernsthaft Gedanken gemacht haben und den Thread nicht einfach als "Troll" Versuch abgetan haben. Ich musste erstmal bei Wikipedia nachschauen was dieses Buzzword überhaupt bedeutet. Aber es scheint gerne und schnell geschrieben zu werden. Ist ja auch einfacher als sich sachlich mit dem Thema auseinander zu setzen. Wie nennt man eigendlich die Leute die immer gleich "Troll" schreiben?



  • DEvent schrieb:

    Artchi schrieb:

    In Deutschland gilt aber das Urheberrecht bei geistigem Eigentum (was meine Postings sind), welches sich vom Copyright-Recht deutlich unterscheidet. Du solltest dich also besser informieren, was hier in Deutschland für Gesetze gelten.

    aber es stand irgendwo in den Forumregeln das man alle Postings nach belieben kopieren und weiterverwenden kann.

    Du meinst diesen Abschnitt?

    Die Übertragung der Nutzungsrechte beginnt mit der Absendung des Beitrages. Die Forenbetreiber erhalten insbesondere das Recht zur elektronischen Speicherung der Beiträge in Datenbanken, so wie das Recht zur Vervielfältigung und Verbreitung in fotomechanischen Verfahren und im Wege der elektronischen Datenaufzeichnung auf Speichermedien, einschließlich der Programmierung, Speicherung, Aufnahme in Computerprogramme und der Übertragung auf weitere Datenträger oder Datenanlagen und der Einspeisung in Netzwerke und Online-Dienste.

    Damit ist der Forenbetreiber gemeint, soll heißen, Marcus darf meine Beiträge in SEINEM System vervielfätigen und kopieren. Da steht nicht drin, das ich einräume, das fremde außerhalb des Forums meine Beiträge wegkopieren dürfen.

    Das bekräftigt nochmal dieser Abschnitt der Forenregeln, das "gast_neu" explizit bei Marcus anfragen muß, ob er unsere Beiträge in einem Anderen Forum (das nicht zu den genannten Seiten gehört) vervielfältigen darf:

    Die Vervielfältigung der auf den Seiten www.c-plusplus.net, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz).

    Ich bezweifel, das gast_neu eine schriftliche Erlaubnis hat! 😃

    Das alles gibts auch nochmal so und in ähnlicher Form im dt. Urheberrecht nachzulesen. Denn das dt. Recht kann und darf man nicht aushebeln.

    Naja, Schwamm drüber. 😉



  • DEvent schrieb:

    - Annotations
    - Garbage Container
    - Threads
    - Generics
    - Reflection

    C++
    - pointers
    - templates
    - preprocessor ( ist eher ein Nachteil )

    Mal sehen was der nächste C++ Standard bringt, wenn er mal kommt.

    Naja, jetzt nehmen wir mal boost mit ins boot, wer ernsthaft C++ programmiert kommt da nicht drum rum:

    Java:
    - Annotations // wasn des?
    - Garbage Container // gibts für C++ auch, und mit Smartpointern hat man auch keinen zusätzlichen GC im Hintergrund
    - Threads // boost::thread ist auf dem Weg das vollständig zu ersetzen
    - Generics // templates sind in C++ mächtiger, auch wenn Generics einiges Bietet was auch für C++ interessant wäre.
    - Reflection

    C++
    - pointers
    - templates
    - preprocessor ( ist eher ein Nachteil )// naja, muss nicht sein, man muss ja nicht MFC-like überall makros nutzen, aber sonst sinnvoll

    Mal sehen was der nächste C++ Standard bringt, wenn er mal kommt.

    Die Frage nach dem nächsten C++ Standard ist in der Tat interessant,
    wann kommt eigentlich der erste Java ISO Standard mal raus?

    phlox



  • phlox81 schrieb:

    Die Frage nach dem nächsten C++ Standard ist in der Tat interessant,
    wann kommt eigentlich der erste Java ISO Standard mal raus?

    Hi. Java wird nicht durch eine Standardisierungsorganisation, wie der ISO standardisiert. Das heißt aber nicht, dass es nicht standardisiert ist. Es gibt sehr genaue Dokumente darüber, wie die Sprache definiert ist, wie die JVM definiert ist usw.. Jeder kann diese Dokumente nutzen, um sich seine eigene Implementierung der Sprache zu schaffen.

    Siehe da:

    Was genau erwartest Du jetzt eigentlich von einem Standard bei einer Organisation wie der ISO, was durch solche offen zugänglichen Dokumente nicht abgedeckt wird?



  • Naja, Java ist ein Industriestandard, das ist ein Unterschied zu einem Standard (zu deutsch "Norm"). Schau doch mal warum Java kein ISO- und auch kein ECMA-Standard werden konnte: weil SUN noch viele Rechte an Java behalten wollte, angefangen bei dem Markennamen "Java" bis hin zur Bestimmung wie Java weiter entwickelt wird.

    Was heißt das, für den Anwender von Java? Er muß z.B. Lizenzgebühren für die Marke Java abdrücken... ein Beispiel nur!

    Was wäre aber, wäre Java ISO-Norm? Genau, SUN würde praktisch alle Rechte an Java verlieren. Aber der Anwender könnte somit ohne Problem den Namen Java auf seine Produkte drauf pappen. Ich kann z.B. in meine C++ Anwendung in den Info-Dialog schreiben: "Diese Software wurde mit C++ entwickelt." Keiner kann von mir Lizenzgebühren verlangen.

    Weiterhin muß eine ISO-Norm von mehrere Ländern/Firmen in einem gemeinsamen Gremium und Komitee weiter entrwickelt und verabschiedet werden. SUN hätte hier keine Bestimmungsgewalt mehr, da andere Firmen immer ein Veto bei bestimmten Features einlegen könnte.

    Genau das ist z.B. beim letzten ISO-C++-Komitee-Meeting in Berlin passiert: viele Compilerhersteller haben ein bestimmtes Features (im Bereich Mathematik) des TR1-Draft aus Kostengründen abgelehnt. Gut, d.h. im C++0x-Standard wird dieses Feature nicht rein kommen, obwohl andere es gerne drinn gehabt hätten.

    AT&T, Bjarne Stroustrup und HP haben z.B. damals ebenfalls ihre Rechte an C++ und die STL (bzw. eine Abwandlung davon) an die ISO abgetreten. Diese können heute davon nicht mehr direkt profitieren. Eigentlich nur Ruhm und Ehre...

    Die Boost-Libs die in den TR1 rein gekommen sind (z.B. Smartpointer) gehören jetzt NIEMANDEM mehr rechtlich. Sind jetzt in der ISO-Norm drin.

    Also, es ist schon ein Unterschied, ob es ein Standard ist oder "nur" ein unverbindlicher Industriestandard.



  • Gregor schrieb:

    Hi. Java wird nicht durch eine Standardisierungsorganisation, wie der ISO standardisiert. Das heißt aber nicht, dass es nicht standardisiert ist. Es gibt sehr genaue Dokumente darüber, wie die Sprache definiert ist, wie die JVM definiert ist usw.. Jeder kann diese Dokumente nutzen, um sich seine eigene Implementierung der Sprache zu schaffen.

    Darf ich dann das Java-Logo oder ein "Java Powered" oder "Designed for Java" oder "Java Compatible" auf mein Produkt (z.B. JVM und Runtime) pappen?

    Ich denke mal nicht. SUN will irgendwelche Zertifizierungsgebühren haben, damit ich das machen dürfte. Wennn dem nicht so ist, dann würde es SUN höchstens _dulden_. Aber sie könnten morgen ihre Meinung ändern.

    Lasse mich aber gerne eines besseren aufklären.



  • Artchi schrieb:

    Also, es ist schon ein Unterschied, ob es ein Standard ist oder "nur" ein unverbindlicher Industriestandard.

    "Unverbindlich" ist wohl eher der Standard bei der ISO, ECMA oder ähnlichem. Da Sun den Markennamen Java besitzt, hat es Kontrolle darüber, was sich Java nennen darf. Bei Standards, die bei der ISO oder ECMA oder so vorliegen, interessiert das einfach keinen. Das Resultat sind zum Beispiel Compiler, die nicht standardkonform sind. Damit hatte C++ ja lange Zeit zu kämpfen. Bei Java hat man letztendlich eine Garantie, dass da, wo Java draufsteht auch Java drin ist. ...oder zumindest, dass jede Implementation von Java durch eine ganze Reihe Kompatibilitätstests gegangen ist.

    Deine Argumentation bezüglich Suns Kontrolle beüglich der Entwicklung von Java stimmt nicht mit der Realität überein. In der Realität wird Java durch den Java Community Process www.jcp.org weiterentwickelt. Dem gehören einige hundert Firmen an und auch die Entscheidungen, was zum Beispiel in eine Javaversion aufgenommen wird, werden da von Gremien getroffen, in denen Vertreter mehrerer Firmen sitzen. Sun hat da auch nur eine einzige Stimme und kann dort überstimmt werden. ...und da werden durchaus auch bestimmte APIs und so weiter abgelehnt.

    Gedankenspiele wie "Sun könnte den JCP auflösen, wenn es keine Lust mehr darauf hat", kann man sicherlich auch durchspielen. Man sollte sie aber auch als das sehen, was sie sind: Gedankenspiele. Die Realität sieht momentan so aus, dass der JCP existiert und es ist nicht abzusehen, dass der in irgendeiner Form irgendwann aufgelöst wird.

    Weiterhin erfolgt die Entwicklung von Java sehr transparent. Man kann sich beispielsweise jede Woche einen neuen "Snapshot" der nächsten Javaversion runterladen, kann ihn diskutieren, auf Fehler aufmerksam machen, Fehlerkorrekturen vorschlagen usw.. Die Entwickler, die an Java arbeiten, sind da sehr nah an der Nutzergemeinde dran. Die hören, was in den entsprechenden Foren usw. vorgeschlagen wird und setzen sich auch mit der Community auseinander. Was will man mehr?



  • Artchi schrieb:

    Darf ich dann das Java-Logo oder ein "Java Powered" oder "Designed for Java" oder "Java Compatible" auf mein Produkt (z.B. JVM und Runtime) pappen?

    Ich denke mal nicht. SUN will irgendwelche Zertifizierungsgebühren haben, damit ich das machen dürfte. Wennn dem nicht so ist, dann würde es SUN höchstens _dulden_. Aber sie könnten morgen ihre Meinung ändern.

    Lasse mich aber gerne eines besseren aufklären.

    Wie schon im Beitrag eben gesagt: Das darfst Du natürlich nicht. Du musst aber keine Zertifizierungsgebühren zahlen, sondern die Tests bestehen, die glaube ich im "Java Compatibilitiy Kit" enthalten sind. Das kostet. ...wobei ich meine, mal gehört zu haben, dass Sun das für offene Implementierungen durchaus auch kostenlos macht. Dazu kann ich aber nichts genaues sagen.

    ...und meiner Meinung nach hätten andere Sprachen durchaus auch eine striktere Kontrolle des Standards nötig.



  • Naja, jetzt nehmen wir mal boost mit ins boot, wer ernsthaft C++ programmiert kommt da nicht drum rum:

    Das ist ja das Problem an C++, man kommt nicht drum herum irgendwelche Libs zu nehmen. Bei Java kommt alles "von Haus aus".

    Bei Java habe ich eigentlich sowas wie synchroniced gemeint.
    Java ist halt neuer als der letzte C++-Standard. Hat natürlich auch andere Ziele als C++.

    Ich hoffe der nächste C++-Standard wird:
    - Die Header-Include-System rausschmeisen und durch eine Art packages ersetzen.
    - Generics hinzufügen
    - Threads in der Sprache unterstützen
    Das sind so die wichtigsten Dinge die ich an C++ misse.

    templates sind in C++ mächtiger, auch wenn Generics einiges Bietet was auch für C++ interessant wäre.

    Ich habe nicht den Eindruck das Templates mächtiger sind. Kann man mit Templates Klassen dynamisch zur Laufzeit erzeugen? Gibt es eine Typüberprüfung bei Templates?

    Ich erinnere mich noch an die 5 Zeilen langen Compiler-Fehler wenn ich mal den falschen Typ in eine STL-Klasse geschrieben habe. Da kann man dann ewig rumrätzeln weil das oft nicht eindeutig ist.

    Man kann zwar mit Generics nicht solche Tricks wie die 100ste Potenz zur Compilerzeit ausrechnen, aber wer braucht sowas schon? Wenn ich sowas brauche mach ich mir eine Lookup-Table.


Anmelden zum Antworten