Forum: PC-Programmierung C++ oder Java?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Chris (Gast)


Lesenswert?

Hi,

ich habe bereits C gelernt und würde gerne noch eine weitere 
Programmiersprache lernen, was meint ihr lohnt sich mehr?
C++ oder Java?

Anwendungen unter anderem auch Apps

Danke!

von Timmo H. (masterfx)


Lesenswert?

Wenn du vor hast eher Apps für Android zu programmieren dann solltest du 
Java lernen

von Besucher (Gast)


Lesenswert?

Wenn es für Deine berufliche Zukunft sein soll:
- im Embedded-Bereich wird vornehmlich C++ gesprochen
- bei allem was mit dem Web zu tun hat wird gerne Java verwendet
- ansonsten mal Stellenanzeigen wälzen, was da in deinem bevorzugten 
Bereich so gefordert wird

Privat würde ich Dir eher zu Java raten, und zwar einfach weil Java 
"angenehmer in der Handhabung" ist:
- Java unterstützt/erzwingt einen saubereren Programmierstil als C++
- Java kommt mit umfangreichen Bibliotheken daher, die auch noch 
einheitlich aufgebaut sind
- bei Java muss man sich nicht um "Banalitäten" wie die Bitbreite von 
Integern oder das Freigeben von Speicher kümmern
- Java schmiert i.d.R. nicht einfach mit einem Coredump ab sondern mit 
einer (zumeist recht aussagekräftigen) Exception, was die Fehlersuche 
vereinfacht

Bei der Ausführungsgeschwindigkeit der compilierten Programme nehmen 
sich C++ und Java erfahrungsgemäß kaum noch etwas. Vergleiche zwischen 
beiden Sprachen sind nicht ganz leicht zu treffen, da Java-Plattformen 
bisweilen diverse Späße zur Optimierung enthalten (z.B. einen 
JIT-Compiler, welcher häufig verwendete Programmteile auch während der 
Laufzeit noch optimieren kann).

Vorteile von C(++) wären u.a.:
- man kann damit auch mal Hardware ansteuern. Das geht bei Java in aller 
Regel nur über JNI (Java Native Interface), also über externe Libs, 
welche (zumeist) in C(++) geschrieben wurden.
- der Resourcenbedarf von C(++)-Programmen ist besser abschätzbar, da es 
hier keine virtuelle Maschine/JIT-Compiler gibt (Resourcen bedeutet 
hier: Speicher, Rechenzeit, Stromverbrauch etc.). Darüberhinaus 
benötigen C(++)-Programme von Haus aus eher weniger Resourcen als 
vergleichbare Java-Programme. (Wobei der Resourcenbedarf eines halbwegs 
modernen Programms auf einem halbwegs modernen PC erfahrungsgemäß eher 
selten eine Rolle spielt...)

Ansonsten gilt natürlich das man am besten beide Sprachen lernt. Ob der 
spätere Umstieg von Java nach C++ einfacher ist als umgekehrt liegt im 
Auge des Betrachters. Darüber hinaus haben sich übrigens auch noch 
zusätzliche Kenntnisse in Matlab und Perl als sehr praktisch 
herausgestellt. :)

von Dussel (Gast)


Lesenswert?

Obwohl ich Java lange abgelehnt habe, würde ich es eher als C++ 
empfehlen. Java ist merklich angenehmer zu programmieren.
Die Vorteile von C++ wirst du wahrscheinlich nicht brauchen, wenn du 
gerade in dem Bereich anfängst. Solltest du dann etwas von C++ brauchen, 
wird der Umstieg mit der dann vorhandenen Erfahrung nicht mehr so schwer 
sein. USB (und andere Hardwarezugriffe) ist allerdings ist Java ein 
Problem.

von chris_ (Gast)


Lesenswert?

>Obwohl ich Java lange abgelehnt habe, würde ich es eher als C++
>empfehlen. Java ist merklich angenehmer zu programmieren.

Das sehe ich auch so.
Ansonsten würde ich sagen: Beides lernen.

Falls man noch nicht Objekt-Orientiert programmiert hat, würde ich mit 
Python anfangen und mich damit in die Objekt-Orientierung einarbeiten. 
Danach Java und dann C++.

von Arc N. (arc)


Lesenswert?

Besucher schrieb:
> Wenn es für Deine berufliche Zukunft sein soll:
> - im Embedded-Bereich wird vornehmlich C++ gesprochen

Seit wann bzw. was ist Embedded? Die Hauptsprache ist in diesem Bereich 
und wird es (leider) auch noch länger bleiben C.
Es gibt zwar ein paar sehr vielversprechende Ansätze wie bspw. Kvasir 
1), verbreitet ist C++ in diesem Bereich allerdings noch lange nicht, 
obwohl es, sinnvoll angewandt, deutliche Vorteile gegenüber C hätte.

1) http://kvasir.io/

> - bei allem was mit dem Web zu tun hat wird gerne Java verwendet

Wird verwendet != sollte verwendet werden... wer da immer noch auf Java 
setzt, hat imho die sinnvolle Entwicklung der letzten Jahre weg von Java 
verpasst (das Oracles Java/VM, neben den Browsern, mittlerweile eines 
der Haupteinfallstore für Viren auf PCs ist, spielt dabei nicht einmal 
die größte Rolle...)

> Privat würde ich Dir eher zu Java raten, und zwar einfach weil Java
> "angenehmer in der Handhabung" ist:
> - Java unterstützt/erzwingt einen saubereren Programmierstil als C++

Bei C++98 und davor vielleicht. Spätestens mit C++11 und C++14 hat sich 
C++ soweit gewandelt, dass man da durchaus von einer neuen Sprache 
sprechen könnte.

> - Java kommt mit umfangreichen Bibliotheken daher, die auch noch
> einheitlich aufgebaut sind

Einheitlich schlecht.

> - bei Java muss man sich nicht um "Banalitäten" wie die Bitbreite von
> Integern oder das Freigeben von Speicher kümmern

Das kennt noch nicht mal unsigned integer bzw. gibt's seit 1.8(?) mal 
ein paar Methoden in der Integerklasse.
Speicherfreigabe geht auch in C++ automatisch. Und das ist der große 
Vorteil: Man kann es nutzen, wird aber nicht dazu gezwungen.

> - Java schmiert i.d.R. nicht einfach mit einem Coredump ab sondern mit
> einer (zumeist recht aussagekräftigen) Exception, was die Fehlersuche
> vereinfacht
>
> Bei der Ausführungsgeschwindigkeit der compilierten Programme nehmen
> sich C++ und Java erfahrungsgemäß kaum noch etwas.

http://benchmarksgame.alioth.debian.org/u64q/java.html
"Bester" Benchmark: In Java geschriebene IDEs vs. IDEs die nicht mit/in 
Java geschrieben wurden...

> (Wobei der Resourcenbedarf eines halbwegs
> modernen Programms auf einem halbwegs modernen PC erfahrungsgemäß eher
> selten eine Rolle spielt...)

Der Desktop ist da auch so ziemlich die einzige Ausnahme. In allen 
anderen Bereichen spielt es eine Rolle.

von Larry (Gast)


Lesenswert?

Arc N. schrieb:
> Besucher schrieb:
>> - Java kommt mit umfangreichen Bibliotheken daher, die auch noch
>> einheitlich aufgebaut sind
>
> Einheitlich schlecht.
>

Lass mal deinen persönlichen Argwohn stecken. Was es an Bibliotheken 
gibt ist doch nicht zu verachten. Und für unsigned int, manuelle 
Speicherverwaltung oder Performance im direkten Vergleich muss man sich 
nicht interessieren, das geht auch ohne. Java ist eben eine 
Abstraktionsschicht höher angesetzt.

Ich denke es ist egal welche Sprache genommen wird. OOP als nächsten 
Lernschritt kannst Du mit beiden gut. Falls Dir dann Multivererbung 
fehlt und Du dich für Java entschieden hast, wechselst du eben zu C++.

von Besucher (Gast)


Lesenswert?

Arc N. schrieb:
> Besucher schrieb:
>> Wenn es für Deine berufliche Zukunft sein soll:
>> - im Embedded-Bereich wird vornehmlich C++ gesprochen
> Seit wann bzw. was ist Embedded? Die Hauptsprache ist in diesem Bereich
> und wird es (leider) auch noch länger bleiben C.
Stimmt, müsste C heissen. Nichtsdestotrotz kommt C++ hier noch lange vor 
Java.

>> - bei allem was mit dem Web zu tun hat wird gerne Java verwendet
>
> Wird verwendet != sollte verwendet werden... wer da immer noch auf Java
> setzt, hat imho die sinnvolle Entwicklung der letzten Jahre weg von Java
> verpasst (das Oracles Java/VM, neben den Browsern, mittlerweile eines
> der Haupteinfallstore für Viren auf PCs ist, spielt dabei nicht einmal
> die größte Rolle...)
Möglicherweise hast ja du verpasst das es im Bereich "Web" nicht mehr 
vornehmlich um die Client-Seite geht? ;-)

> Bei C++98 und davor vielleicht. Spätestens mit C++11 und C++14 hat sich
> C++ soweit gewandelt, dass man da durchaus von einer neuen Sprache
> sprechen könnte.
Wenn man unbedingt will kann man das sicher. Diese "neue Sprache" 
basiert allerdings immer noch auf dem gleichen alten Mumpitz.

>> - Java kommt mit umfangreichen Bibliotheken daher, die auch noch
>> einheitlich aufgebaut sind
>
> Einheitlich schlecht.
Unsinn.

> Das kennt noch nicht mal unsigned integer
Und?

> Der Desktop ist da auch so ziemlich die einzige Ausnahme. In allen
> anderen Bereichen spielt es eine Rolle.
Trotzdem wird Java auch ausserhalb von Desktops verwendet (Und das nicht 
nur weil allen Menschen - außer dir - der Durchblick fehlt).

von Arc N. (arc)


Lesenswert?

Besucher schrieb:
> Möglicherweise hast ja du verpasst das es im Bereich "Web" nicht mehr
> vornehmlich um die Client-Seite geht? ;-)

Auf der anderen Seite geht es schon lange nicht mehr um Java... die 
Innovationen kommen aus anderen Ecken.
Auf dem Desktop war Java schon tot bevor es die Evangelisten und 
Vertriebler von Sun gepusht haben.


>
>> Bei C++98 und davor vielleicht. Spätestens mit C++11 und C++14 hat sich
>> C++ soweit gewandelt, dass man da durchaus von einer neuen Sprache
>> sprechen könnte.
> Wenn man unbedingt will kann man das sicher. Diese "neue Sprache"
> basiert allerdings immer noch auf dem gleichen alten Mumpitz.

Ebenso bei Java. Der Unterschied: Andere Sprachen entwickeln sich 
weiter, Java nicht.

>>> - Java kommt mit umfangreichen Bibliotheken daher, die auch noch
>>> einheitlich aufgebaut sind
>>
>> Einheitlich schlecht.
> Unsinn.

Das geht mit "Generics" und Type Erasure los (name clash) oder anders 
gesagt: es geht direkt mit der Sprache los aufgrund der in vielen Fällen 
nichts brauchbares rauskommen kann

>> Das kennt noch nicht mal unsigned integer
> Und?

Arrays mit negativer Länge etc. es gibt etliche Fälle in denen alleine 
dieses "Feature" schon div. Checks überflüssig machen würde (selbes 
Argument bei "dynamisch" 1) typisierten Sprachen wie JS)

1) letztlich sind diese Sprachen extrem statisch typisiert: sie kennen 
nur einen Typen und halsen dem Entwickler die Arbeit auf, die ansonsten 
der Compiler nebenbei erledigen kann.

>> Der Desktop ist da auch so ziemlich die einzige Ausnahme. In allen
>> anderen Bereichen spielt es eine Rolle.
> Trotzdem wird Java auch ausserhalb von Desktops verwendet (Und das nicht
> nur weil allen Menschen - außer dir - der Durchblick fehlt).

Danke für die Aufklärung. Es geht nur nicht darum ob etwas und wie oft 
verwendet wird, sondern ob es sinnvoll ist und/oder es bessere 
Lösungen/Alternativen gibt d.h. leichter zu schreiben, besser zu warten, 
höhere Performance etc. pp und davon kann Java nichts am besten

von PittyJ (Gast)


Lesenswert?

Wird Java eigentlich noch genutzt?

Wenn ich mich an früher erinnere, dann musste man für ein paar 
Applikationen immer die Java-Umgebung bereit halten. Die hatte dann 
garantiert auch die falsche Version. Auch im Browser liefen Java 
Applets, dafür brauchte der auch eine Java-VM.

Ich habe seit 5 Jahren da nichts mehr geupdated oder überhaupt 
hochgeladen. Und das letzte Java-Applet war damals die 
Post-Frankierungsapp, mit der man Pakete online bezahlen konnte. Auch 
das ist Vergangenheit. Im Browser wird nur noch Javascript benutzt.

Beruflich und privat ist auf meinen Rechnern kein Java mehr drauf, weil 
kaum ein Anwendungsprogramm das wohl noch benötigt.

von xxx (Gast)


Lesenswert?

Besucher schrieb:
> Wenn es für Deine berufliche Zukunft sein soll:
> - im Embedded-Bereich wird vornehmlich C++ gesprochen

Schön wärs, hier wird z.B. (leider) C und (nochmal leider) Java 
verwendet. C++ ist erst im kommen bei embedded Anwendungen. Mit Java 
gibt es die meisten Probleme. Es gibt immer wieder mal ein neues 
Framework und dann funktioniert irgendwas nicht mehr richtig (= 
Pflegeaufwand)

> - bei allem was mit dem Web zu tun hat wird gerne Java verwendet
Ich sehe hier eine Trend zu Scriptsprachen


> - ansonsten mal Stellenanzeigen wälzen, was da in deinem bevorzugten
> Bereich so gefordert wird

Ist das interesse Privat oder Geschäftlich? Ich z.B. würde nie private 
Interessen mit geschäftlichen Interessen verwurschteln.

>
> Privat würde ich Dir eher zu Java raten, und zwar einfach weil Java
> "angenehmer in der Handhabung" ist:
> - Java unterstützt/erzwingt einen saubereren Programmierstil als C++
Durch verschiedene Einschränkungen bei Java gegenüber C++ sehe ich 
öfters Codeverdoppelungen. In C++ hätte man ganz elegant 
Funktionstemplates verwenden können. Und ja Generics gibt es in Java die 
sind aber so stark eingeschränkt das vieles nicht geht. Const 
correctness gibt es in Java auch nicht, Defaultparameter gibt es auch 
nicht, usw. usf.. Ich persönlich fühle mich stark eingeschränkt in Java. 
Java ist schon deshalb langsamer weil man jedes kleine Objekt per new 
anlegen muss während man in C++ auch den Stack verwenden kann.

> - Java kommt mit umfangreichen Bibliotheken daher, die auch noch
> einheitlich aufgebaut sind
Gibt es in C++ auch: stl, boost, usw...

> - bei Java muss man sich nicht um "Banalitäten" wie die Bitbreite von
> Integern oder das Freigeben von Speicher kümmern
Hier sollte man lieber schreiben: .... man kann sich nicht darum 
kümmern...

> - Java schmiert i.d.R. nicht einfach mit einem Coredump ab sondern mit
> einer (zumeist recht aussagekräftigen) Exception, was die Fehlersuche
> vereinfacht
Ich bekomme andauernd NULL-Pointer Exceptions was die Fehlersuche auch 
nicht gerade vereinfacht (Hähä man höre und staune angeblich gibt es 
doch keine Pointer, stimmt nicht in Java gibt es besonders viele 
Pointer)

............
>
> Ansonsten gilt natürlich das man am besten beide Sprachen lernt.
Stimmt

Ich empfehle allerdings zuerst C++ und dann Java, da Java recht ähnlich 
zu C++ ist mit ein paar Besonderheiten und vielen Einschränkungen.

Letztendlich kann man die Sprache auch danach aussuchen ob es für das 
gestellte Problem vielleicht nicht schon eine Lösung (in Java, in 
Python, in ...) gibt und dann einfach diese nutzen.

von nicht"Gast" (Gast)


Lesenswert?

chris_ schrieb:
> Falls man noch nicht Objekt-Orientiert programmiert hat, würde ich mit
> Python anfangen und mich damit in die Objekt-Orientierung einarbeiten.
> Danach Java und dann C++.

Python...Grusel.

Jetzt mal ehrlich. Ich programmiere mittlerweile viel in Python und es 
macht auch einigermaßen Spaß. Man kann mit der Sprache viel in kurzer 
Zeit erreichen.
Allerdings ist das Konzept der Objektorientierung so dermaßen im Arsch 
bei diese Sprache. (keine wirklich privaten Member, diese bescheuerten 
self.__ bei den Variablen, die irgend wo stehen dürfen -> Tschüß 
Übersichtlichkeit)

Will sagen zum Lernen von OO halte ich Python für eine schlechte Wahl. 
Dann doch lieber Java. C++ würde ich persönlich bevorzugen, allerdings 
ist das der echt schwere Weg.


Grüße,

von Der Andere (Gast)


Lesenswert?

Arc N. schrieb:
> Der Unterschied: Andere Sprachen entwickeln sich
> weiter, Java nicht.

Sorry, aber Java hat wohl in den letzten 10 Jahren sich etwas 5-10 mal 
dynamsicher entwickelt als C++.

Und dein generelles Schlechtgerede kann ich auch nicht nachvollziehen.

Ich sage nicht, dass Java eine ideale Sprache ohne Fehler ist, aber man 
kann in ihr Probleme zügig und zielgerichtet umsetzen, und vor allem 
praktisch unabhängig von DBMS und Betriebssystem.
Und das gern genutzte Schlagwort "Big Data" ist auch kein Problem. Man 
muss sich nicht um Unicode scheren, man hat eine saubere Trennung 
einheitliche Schnittstellen zwischen Byte und Character, man kann 
einheitlich deployen, ...

Für Spielsoftware oder Software, die auf einem µC laufen soll ist das 
nichts, aber Software die unabhängig vom Betriebssystem auf Server 
Clustern laufen soll ist das deutlich mehr wert als die 30-100% 
schnellere Ausführzeit eines C++ Codes.

C++ ist eine hybride Sprache mit all ihren Nachteilen. Wenn du dir 
fremden C++ Code anschaust ist zu 90% objktorientierte und prozedurale 
Programmierung wild gemischt. Das führt zu einem unsäglichen 
Codegewurstel den kein Mensch mehr durchblickt, selbst der Verfasser 
nach einem halben Jahr nicht mehr, selbst oft genug sehen müssen.
Wir verarbeiten hier große Datenvolumina, (Millionen Finanztransaktionen 
pro Tag) in Echtzeit, und sowohl bei uns als auch unserem Mutterkonzern 
wird nur Java im Backend Bereich benutzt.

Arc N. schrieb:
> davon kann Java nichts am besten
Man muss nicht unbadingt etwas am besten können, es reicht wenn man 
vieles gut kann.
Schreibe mal eine Software für 10 Betriebssysteme (incl. Host) und ca. 
20 veraschiedene DBMS Systeme in C / C++ und verwalte das in der 
Generierung Tests und Auslieferung. Wie haben das früher gemchat incl. 
solchen Dingen wie OS/2, AS400, IBM-MVS, CICS, sogar BS2000 und Vax VMS, 
jeweils mit unterschiedlichen DBMS auch solchen Dingen wie VSAM, ISAM, 
...

Wir haben das gemacht.

von Wolfgang R. (portside)


Lesenswert?

Der Andere schrieb:
> Man muss nicht unbadingt etwas am besten können, es reicht wenn man
> vieles gut kann.

Dies liegt inzwischen aber nicht mehr an der Qualität der Software und 
Programmierer sondern an der immer schnelleren Hardware.
Wenn's nicht mehr läuft einfach schnelleren Prozessor nehmen.

von Draco (Gast)


Lesenswert?

Timmo H. schrieb:
> Wenn du vor hast eher Apps für Android zu programmieren dann
> solltest du Java lernen

Bis zum zweiten Post gekommen, und schon die Augen gerollt.

Nur weil viele Java nutzen, heißt das nicht das es

a.) Gut ist,
b.) Java sich langsam selbst begräbt,
c.) Gut ist,
d.) Das sinnvollste für Android ist,
e.) Gut ist,
f.) Performant ist.

Ich habe früher meine Apps auch mit Java geschrieben und bin froh 
mittlerweile davon weg zu sein. Zu langsam, zu ineffektiv.

Wäre Android nixhr, wäre Java schon längst tot. In den Webservices ist 
es, zu Recht, aus Sicherheitsrelevanten Gründen langsam völlig weg. Auf 
der Desktop Ebene ist es einfach nur unperformant. Aus Embedded Geräten 
wird es auch nach und nach verschwinden.

Egal in welche Richtung deine Reise geht - Schnupper mal rein, aber lass 
Java links liegen.

von Der Andere (Gast)


Lesenswert?

Wolfgang R. schrieb:
> Dies liegt inzwischen aber nicht mehr an der Qualität der Software und
> Programmierer sondern an der immer schnelleren Hardware.
> Wenn's nicht mehr läuft einfach schnelleren Prozessor nehmen.

Du kannst natürlich auch 5 jahre statt einem Jahr eine Software 
entwickeln nur um dann zu sehen, daß dein Konkurrent mit seiner etwas 
langsameren Version schon seit 4 Jahren Gerd bei DEINEN Kunden damit 
verdient.

Und C++ kann auch vieles absolut schlecht, z.B. daß viele 
durchschnittliche Entwickler wartbaren und lesbaren Code erzeugen, ein 
Deployment auf vielen Plattformen, ...
Ich denke du hast den Punkt den ich rausstellen wollte nicht vestanden.
Bleib bei deinen kleinen µCs, dort ist C oder auch c++ viel besser und 
Java völliger Unfug, aber im geschäft kommt es oft auf anderes an als 
die letzten 30% perdormance.
Wo (ausser vieleicht im Cern) werden mehr Daten schnell verarbeitet als 
bei google, amazon und co?

Und was nehmen die im Serverbereich? Rate mal.

von Draco (Gast)


Lesenswert?

Der Andere schrieb:
> Sorry, aber Java hat wohl in den letzten 10 Jahren sich etwas 5-10 mal
> dynamsicher entwickelt als C++.

Was allerdings nicht heißt das das positiv zu Bewerten ist, ganz im 
Gegenteil. Gerade weil C / C++ so beständig sind / sind sie heute noch 
die gefragtesten. Und wer halt die Vorteile von C++ braucht, aber dies 
in ein Wrapper für z.b. Webservices benötigt - schreibt dies halt in C# 
und vice versa...

von Draco (Gast)


Lesenswert?

Der Andere schrieb:
> Wo (ausser vieleicht im Cern) werden mehr Daten schnell verarbeitet als
> bei google, amazon und co?
>
> Und was nehmen die im Serverbereich? Rate mal.

Eigentor... Google jedenfalls programmiert mit Gc. Go - ein C Derivat 
;-)

von Operator S. (smkr)


Lesenswert?

Draco schrieb:
> Der Andere schrieb:
>> Wo (ausser vieleicht im Cern) werden mehr Daten schnell verarbeitet als
>> bei google, amazon und co?
>>
>> Und was nehmen die im Serverbereich? Rate mal.
>
> Eigentor... Google jedenfalls programmiert mit Gc. Go - ein C Derivat
> ;-)

Bei meinem letzten Kontakt mit einem Googlemitarbeiter war die Aussage 
aber, dass Go nur die wenigsten einsetzen. Der Rest programmiert in C++.

Bezüglich den zig verschiedenen DBMS ansprechen, schau mal was C# LINQ 
kann. Meiner Meinung nach hat C# in den letzten Jahren Java den Rang 
abgelaufen. Und seit der Offenlegung des .NET Codes spricht auch nicht 
mehr viel gegen C#.

von N. N. (clancy688)


Lesenswert?

Ich würde Java nehmen, wenn's darum geht, OOP zu lernen.

Java zwingt dich quasi objektorientiert zu programmieren, während man da 
bei C++ "freier" ist und alle möglichen Schweinereien machen kann. ;)

Wenn dann irgendwann die Denke hinter OOP verstanden ist, kann man mit 
C++ weitermachen.

von Moppel (Gast)


Lesenswert?

c++ iss moppelkotze. da versteht der eine das programm vom andern nich 
weil jeder nur seine 20% c++ gern hat.

von xxx (Gast)


Lesenswert?

Moppel schrieb:
> c++ iss moppelkotze. da versteht der eine das programm vom andern
> nich
> weil jeder nur seine 20% c++ gern hat.

Java ist genauso. Schon mal ein (embedded) Java Programm gesehen, wo 
alle Objekte global angelegt werden um ja nicht zur Laufzeit den Garbage 
Collector zu bemühen? Das ist dann auch "mobbelkotze" den keiner mehr 
versteht.

Sch... zusammen programmieren geht in jeder Programmiersprache

von Der Andere (Gast)


Lesenswert?

xxx schrieb:
> Schon mal ein (embedded) Java Programm

Es wurde oben schon gesagt, daß Java für embedded Unfug ist.

Operator S. schrieb:
> Meiner Meinung nach hat C# in den letzten Jahren Java den Rang
> abgelaufen. Und seit der Offenlegung des .NET Codes spricht auch nicht
> mehr viel gegen C#.

Nur für PC Gebastel. Nicht auf Servern. Die Welt ist größer als Windows. 
Und portable DBMS Zugriffe sind damit meines Wissens auch nicht möglich.

Operator S. schrieb:
> Bei meinem letzten Kontakt mit einem Googlemitarbeiter war die Aussage
> aber, dass Go nur die wenigsten einsetzen. Der Rest programmiert in C++.

Auch nicht, vieleicht die Core Routinen beim Suchen, aber viel drumrum 
wird meines Wissens mit Java programmiert.

von xxx (Gast)


Lesenswert?

Der Andere schrieb:
> Es wurde oben schon gesagt, daß Java für embedded Unfug ist.

ja ich weiss, aber es ging ja um die moppelkotze. Und moppelkotze gibt 
es überall (wenn man sich ein bißchen anstrengt)

von chris_ (Gast)


Lesenswert?

Autor: PittyJ (Gast) schrieb
>Wird Java eigentlich noch genutzt?

>Wenn ich mich an früher erinnere, dann musste man für ein paar
>Applikationen immer die Java-Umgebung bereit halten. Die hatte dann
>garantiert auch die falsche Version. Auch im Browser liefen Java
>Applets, dafür brauchte der auch eine Java-VM.

<ironie>
Geht so, Java liegt beim Tiobe Index an erster Stelle der am meisten 
verwendeten Programmiersprachen.
http://www.tiobe.com/tiobe-index/
<\ironie>

von Mano W. (Firma: ---) (manow)


Lesenswert?

Chris schrieb:
> Anwendungen unter anderem auch Apps

Apps für was? - Smartphone, Web, Desktop, Uhren ...

von Hier trieft es vor Ironie (Gast)


Lesenswert?

chris_ schrieb:
> <ironie>
> Geht so, Java liegt beim Tiobe Index an erster Stelle der am meisten
> verwendeten Programmiersprachen.
> http://www.tiobe.com/tiobe-index/
> <\ironie>

<ironie>
Na, endlich mal ein fundierter Beitrag von jemandem, der ganz genau 
verstanden hat, was der TIOBE-Index tatsächlich misst.
</ironie>

von Andreas H. (ahz)


Lesenswert?

Hier trieft es vor Ironie schrieb:
> chris_ schrieb:
>> <ironie>
>> Geht so, Java liegt beim Tiobe Index an erster Stelle der am meisten
>> verwendeten Programmiersprachen.
>> http://www.tiobe.com/tiobe-index/
>> <\ironie>
>
> <ironie>
> Na, endlich mal ein fundierter Beitrag von jemandem, der ganz genau
> verstanden hat, was der TIOBE-Index tatsächlich misst.
> </ironie>

Hat er (hoffetlich) nicht gewusst. Darum nochmal zum nachlesen.
http://www.tiobe.com/tiobe-index/programming-languages-definition/

Und DAS ist ein Kriterium?

Ehrlich gesagt interessiert mich weniger wie hip eine Sprache gerade 
ist.
Viel interessanter ist doch eher was die Sprache kann, ob Programme 
formal verifizierbar sind, wie die "Langzeitverfügbarkeit" (z.B. 
Verfügbarkeit verifizierter Compiler) ist.

Zugegeben: Für die neue WEB-Site oder ein Game völlig egal.
Für (z.B.) ein ATC oder die Streckensteuerung eines Bahnnetzes auch?

/regards

von Stefan F. (Gast)


Lesenswert?

Schau Dir Stellenausschreibungen von Berufen an, die dich interessieren. 
Aber nicht auf Xing, Stepstone, etc sondern in der Zeitung oder auf den 
Webseiten der jeweiligen Arbeitgeber. Und dann achte darauf, welche 
Programmiersprache die vorgeben.

Du hast mehr davon, wenn du eine wirklich gefragte Sprache lernst, als 
wenn du die vermeintlich beste Sprache lernst.

Und traue nicht diversen Statistiken und Rankings. Die berücksichtigen 
den jeweiligen Beruf nicht und erscheinen mir unabhängig davon äußerst 
fragwürdig. Vielleicht werden diese Statistiken von den selben Leuten 
erstellt, die früher für den ADAC gearbeitet hatten.

von Draco (Gast)


Lesenswert?

Der TIOBE Index wird daraus ermittelt wie oft eine Programmiersprache 
bei Suchmaschinen gesucht wird?! :-D Na das nenne ich ja mal eine 
"Aussagekräftige Statistik"! :'D

von Hier trieft es vor Ironie (Gast)


Lesenswert?

Draco schrieb:
> Der TIOBE Index wird daraus ermittelt wie oft eine Programmiersprache
> bei Suchmaschinen gesucht wird?!

Meine Güte, es ist doch wirklich fast zum Verzweifeln...

Also jetzt hier ganz explizit zum Mitmeißeln: Der TIOBE-Index misst 
ausschließlich die Anzahl von Treffern, die von diversen Suchmaschinen 
auf den Suchbegriff +"<language> programming" hin zurückgeliefert wird. 
Nichts, aber auch wirklich gar nichts anderes sagt dieses Ranking aus. 
Das steht auch genau so in dem Link, den Andreas gepostet hat.

Das ändert aber am Ende natürlich nichts daran, dass diese "Metrik"
für die Praxis völlig irrelevant ist.

von Hier trieft es vor Ironie (Gast)


Lesenswert?

Ach, und weil ich gerade so schön in Fahrt bin, möchte ich hiermit den 
BULLSHIT-Index als neues Ranking vorstellen. Aus den zugrundeliegenden, 
von mir sorgfältig ausgewählten, höchst wissenschaftlichen Metriken
ergibt sich, dass Java exakt sieben Mal so beschissen ist wie C++.

http://www.google.de/search?q=%2B%22java+programming+sucks%22&btnG=Suche&hl=de&gbv=1
http://www.google.de/search?q=%2B%22c%2B%2B+programming+sucks%22&btnG=Suche&hl=de&gbv=1

Damit wäre ja dann die Ausgangsfrage auch endlich geklärt.

von Stefan F. (Gast)


Lesenswert?

YMMD

von chris_ (Gast)


Lesenswert?

> chris_ schrieb:
>> Geht so, Java liegt beim Tiobe Index an erster Stelle der am meisten
>> verwendeten Programmiersprachen.
>> http://www.tiobe.com/tiobe-index/
>Autor: Hier trieft es vor Ironie (Gast)
>Das ändert aber am Ende natürlich nichts daran, dass diese "Metrik"
>für die Praxis völlig irrelevant ist.

Ich wage mal zu behaupten, dass das für die Praxis am meisten relevante 
Metrik überhaupt ist.
Oder um es etwas genauer zu sagen: für die Programmierpraxis

Es zeigt nämlich, wie viel Unterstützung durch Forenbeiträge man für die 
Sprache bekommt.
Alleine Stack-Overflow: Dort gibt es fast für jede Frage zu Java eine 
Antwort. Meistens mit fertigen Code-Beispielen, die direkt laufen.

von Rolf M. (rmagnus)


Lesenswert?

chris_ schrieb:
> Es zeigt nämlich, wie viel Unterstützung durch Forenbeiträge man für die
> Sprache bekommt.

Oder es zeigt, wie häufig Leute Probleme mit der Sprache haben und 
deshalb in Foren nachfragen müssen.
Die Zahl der Suchmaschinen-Ergebnisse kann so ziemlich alles bedeuten, 
deshalb ist es sinnlos, darauf basierend einen Index zu erstellen. Das 
einzige, was dabei rauskommt, ist, wie häufig eine Sprache im Gespräch 
ist, aus welchem Grund auch immer.

von Carl D. (jcw2)


Lesenswert?

Rolf M. schrieb:
> chris_ schrieb:
>> Es zeigt nämlich, wie viel Unterstützung durch Forenbeiträge man für die
>> Sprache bekommt.
>
> Oder es zeigt, wie häufig Leute Probleme mit der Sprache haben und
> deshalb in Foren nachfragen müssen.
> Die Zahl der Suchmaschinen-Ergebnisse kann so ziemlich alles bedeuten,
> deshalb ist es sinnlos, darauf basierend einen Index zu erstellen. Das
> einzige, was dabei rauskommt, ist, wie häufig eine Sprache im Gespräch
> ist, aus welchem Grund auch immer.

Das einzige was dabei wirklich rauskommt, sind viele Clicks auf der 
Werbebanner-bewehrten Tiobe Website. Und je weniger klar ist, was man 
eigentlich ausgewertet hat, desto $$$

von chris_ (Gast)


Lesenswert?

Autor: Rolf Magnus (rmagnus)
>Oder es zeigt, wie häufig Leute Probleme mit der Sprache haben und
>deshalb in Foren nachfragen müssen.

Da C++ noch deutlich schwieriger als Java zu handhaben ist, dürfte es 
dort auch deutlich mehr Probleme geben. Insofern müsste Java in der 
Realität im Index noch weiter oben liegen, weil nach Deiner 
Argumentation durch die C++ Problemfragen der Index noch  weiter in 
Richtung C++ verzerrt wird.

Autor: Carl Drexler (jcw2)
>Das einzige was dabei wirklich rauskommt, sind viele Clicks auf der
>Werbebanner-bewehrten Tiobe Website

Das denke ich nicht, sonst würde der Index nicht so oft im 
Heise-Newsticker erwähnt.
Sicherlich gibt es mit der absoluten Genauigkeit der Tiobe-Metrik einige 
Kritikpunkte, aber als Schätzung, wie viele Leute sich mit einer 
Programmiersprache befassen, taugt er näherungsweise sicherlich.

Und was Java anbelangt: Insbesondere weil es Milliarden an 
Android-Geräten und deren Apps gibt, muss Java ziemlich verbreitet sein.

von Hier trieft es vor Ironie (Gast)


Lesenswert?

chris_ schrieb:
> Alleine Stack-Overflow: Dort gibt es fast für jede Frage zu Java eine
> Antwort. Meistens mit fertigen Code-Beispielen, die direkt laufen.

Aha, und das wirkt sich nun wie auf den TIOBE-Index aus?

http://www.google.de/search?q=%2B%22Java+programming%22+site%3Astackoverflow.com
http://www.google.de/search?q=%2B%22C%2B%2B+programming%22+site%3Astackoverflow.com

Da passt aber irgendwas nicht so ganz zusammen...

chris_ schrieb:
> Und was Java anbelangt: Insbesondere weil es Milliarden an
> Android-Geräten und deren Apps gibt, muss Java ziemlich verbreitet sein.

Und wie viele Milliarden Geräte gibt es, in denen winzige 8-Bit-
Controller werkeln? Klar, die Leute, die solche Systeme in C/C++ 
programmieren, werden wohl nicht mehr so häufig Fragen auf Stack 
Overflow stellen müssen wie die ganzen Erstsemester, die mit dem 
Java-Programmierzettel komplett überfordert sind und sich ihre 
Hausaufgaben "vom Internet" machen lassen.

von Rolf M. (rmagnus)


Lesenswert?

chris_ schrieb:
> Autor: Rolf Magnus (rmagnus)
>>Oder es zeigt, wie häufig Leute Probleme mit der Sprache haben und
>>deshalb in Foren nachfragen müssen.
>
> Da C++ noch deutlich schwieriger als Java zu handhaben ist, dürfte es
> dort auch deutlich mehr Probleme geben. Insofern müsste Java in der
> Realität im Index noch weiter oben liegen, weil nach Deiner
> Argumentation durch die C++ Problemfragen der Index noch  weiter in
> Richtung C++ verzerrt wird.

Du hast mich nicht verstanden. Meine Argumentation ist, dass es Tausend 
Gründe geben, kann, warum eine Sprache in einem Suchergebnis auftaucht - 
sowohl positive, als auch negative. Das, was ich oben geschrieben habe, 
war nur ein Beispiel, wie ein Suchergebnis auch das Gegenteil von dem 
bedeuten kann, was du geschrieben hast.
Somit sind daraus keine Rückschlüsse darüber möglich, wie gut oder 
beliebt eine Sprache im Vergleich zu den anderen ist.

> Sicherlich gibt es mit der absoluten Genauigkeit der Tiobe-Metrik einige
> Kritikpunkte, aber als Schätzung, wie viele Leute sich mit einer
> Programmiersprache befassen, taugt er näherungsweise sicherlich.
>
> Und was Java anbelangt: Insbesondere weil es Milliarden an
> Android-Geräten und deren Apps gibt, muss Java ziemlich verbreitet sein.

Man darf nicht vergessen, dass Milliarden von Geräten existieren, in 
denen µCs verbaut sind. Das sind keine offensichtlichen Computer, aber 
Code läuft darauf auch jede Menge - allerdings ist der selten in Java 
geschrieben.
Es gibt auch einen Unterschied zwischen der Anzahl der Geräte und der 
Anzahl der Programmierer, die dafür Code schreiben. Sehr viel Code wird 
anwendungsspezifisch und damit für Einzelstückzahlen geschrieben.

von Stefan F. (Gast)


Lesenswert?

Bedenke das Java mit dem Internet groß geworden ist.

Da war C/C++ längst Erwachsen und deren Anwender längst erfahren. Die 
stellen weniger Fragen.

Ich schätze, dass die allermeisten Fragen zu Java von Anfängern kommen, 
die es gerade erst lernen. Die allermeisten C Anfänger hatten gar keine 
Chance ihre Fragen im Internet zu diskutieren, weil es da noch gar kein 
Internet gab.

Ich gebe euch mal ein anderes Beispiel für blöde Zählungen dieser Art:

"elektro Auto" wird von Google 5,6 Millionen mal gefunden.
"benzin auto" wird 34 Millionen mal gefunden.

Was leiten wir daraus ab? Dass man bei Neuentwicklungen auf Benziner 
setzen soll? Da sind sämtliche Experten sicher anderer Meinung.

Oder soll das heißen, dass in naher Zukunft Benzin Autos weiterhin am 
beliebtesten sein werden? Wohl kaum. Ich kenne niemanden, der plant, 
demnächst einen Benziner zu kaufen. Alle wollen Elektro, sobald die 
Voraussetzungen dafür geschaffen sind.

von chris_ (Gast)


Lesenswert?

>Du hast mich nicht verstanden. Meine Argumentation ist, dass es Tausend
>Gründe geben, kann, warum eine Sprache in einem Suchergebnis auftaucht -
>sowohl positive,

Es kann tausend Gründe geben. Nur der Satz von oben, dass Java eine tote 
Sprache sei, ist wohl ziemlicher Quatsch. Es mag schwierig sein, die 
Zahl der C-Programmierer mit der Anzahl der Java Programmierer aus dem 
Tiobe-Index abzuleiten, aber die Verbreitung von Java zu leugnen halte 
ich für falsch.

von Nixomat (Gast)


Lesenswert?

Man vergesse auch nicht die Millionen von Android-Furzapps, deren 
"Programmierer" von Java oft keine Ahnung haben, überall nerven und Java 
im TIOBE PCI ordentlich hochdrücken.

Stefan U. schrieb:
> Oder soll das heißen, dass in naher Zukunft Benzin Autos weiterhin am
> beliebtesten sein werden? Wohl kaum. Ich kenne niemanden, der plant,
> demnächst einen Benziner zu kaufen.

Ist zwar OT, aber: Lebst du in einem Paralleluniversum? E-Autos spielen 
bei uns fast keine Rolle (Neuzulassungen um die 0,6%, glaube ich; der 
Marktanteil stagniert), und daran wird sich "in naher Zukunft" sicher 
nicht viel ändern.

von Sonja (Gast)


Lesenswert?

eben, es zeigt wie oft Probleme in einer Sprache existieren und um Hilfe 
ersucht wird,
Daher sind Pascal und Basic gar nicht erfasst, da man damit einfach sein 
Programm erstellt und so gut wie eine Frage stellen muss..
Wie z.B: bei Lazarus PAscal..
einfach mal ausprobieren!
Download, starten, schreiben, compilieren fertig ;-)
Daserstellte Programm kann beliebig kopiert werden, es wird kein 
Installer oder Framework doer sonstwas bentigt :-)
hehe

von Jürgen K. (orgen)


Lesenswert?

Ich würde Dir empfehlen, einfach mal eine kleine Anwendung in C++ und 
Java, evtl. versuchst Du auch mal C#, zu schreiben.
Stell Dir ein paar kleinere Anforderungen, z.B. Tasks mit Zeitablauf,
evtl. ein wenig SQL (was schon eine grössere Anforderung wäre), 
Stringoperationen, Meldungsfenster...
Dann schreib einfach das Programm in z.B. C# und schau in Foren nach, 
wie Du am besten an Infos (ggf. auch Bücherinfos )kommst, die Dir 
relevant erscheinen.
Dann versuchst Du das gleiche mit c++ und dann mit Java.
Was Dir am besten liegt, das nimmst Du dann.
Meiner Meinung nach sind die Sprachen nicht so weit auseinander und sie 
ähneln sich ziemlich.

Was ich an Java klasse finde, ist einfach das:
Du schreibst ein Programm, dann läuft es unter Windows, Mac und 
Linux(hoffentlich :-)).
Das ist für mich im Moment auschlaggebend.

Auch die Entwicklungsumgebung ist relevant.
Für Windows versuche Visual C# oder C++ Express, für Java fand ich 
Netbeans klasse.

Wie gesagt, testen und dann entscheiden.

von c.m. (Gast)


Lesenswert?

Jürgen K. schrieb:

> Was ich an Java klasse finde, ist einfach das:
> Du schreibst ein Programm, dann läuft es unter Windows, Mac und
> Linux(hoffentlich :-)).
> Das ist für mich im Moment auschlaggebend.
>
> Auch die Entwicklungsumgebung ist relevant.
> Für Windows versuche Visual C# oder C++ Express, für Java fand ich
> Netbeans klasse.

dem möchte ich mich anschließen (alle punkte), allerdings kenne ich 
c++/# nicht, nur java.
ich schreibe beruflich beans zur verwendung in oracle forms, außerdem 
PDF bearbeitung, grafikbearbeitung, webservices für tomcat - zumindest 
da ist java angenehm zu benutzen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.