C++ nicht mehr so stark gefragt?



  • die meisten facebooken heutzutage lieber als in webforen zu kommunizieren



  • sinkendesSchiff schrieb:

    Wird immer weniger mit C++ gemacht?

    Mag sein. Du findest sicherlich Anwendungsdomänen, wo man vorher viel in C++ gemacht hat und jetzt eher eine Sprachvielfalt herrscht. Es wird aber auch immer noch Anwendungsdomänen geben, wo es auf Performance ankommt. Das fängt bei Embedded Hardware an, geht über Mobilgeräte, die sich vllt keine Garbage-Collection leisten können, bis hin zu großen Rechner-Farmen, bei denen du ein Jahresgehalt eines Entwicklers sparen kannst, wenn du die Software 1% schneller bekommst und damit weniger Strom verbraucht, siehe Facebook. Die freuen sich 'n Keks, wenn sie wieder durch ein Software-Update 1% der Stromkosten sparen konnten.



  • Aber Android Apps arbeiten auch zum größten Teil mit Java. So häufig scheint auch C++ dort nicht verbreitet zu sein und embedded sehe ich zu 99% nur C.



  • Mir scheint es so, als wenn C++ gemieden wird, wenn es denn geht.



  • cpp is endgeil



  • Unwissende Trolle mit eingeschraenktem Blickfeld.



  • AndroidJava schrieb:

    Aber Android Apps arbeiten auch zum größten Teil mit Java. So häufig scheint auch C++ dort nicht verbreitet zu sein und embedded sehe ich zu 99% nur C.

    C++ ist auf Android im kommen. Einfach mal abwarten. Und auf Windows Phones sowieso.



  • Z schrieb:

    AndroidJava schrieb:

    Aber Android Apps arbeiten auch zum größten Teil mit Java. So häufig scheint auch C++ dort nicht verbreitet zu sein und embedded sehe ich zu 99% nur C.

    C++ ist auf Android im kommen. Einfach mal abwarten. Und auf Windows Phones sowieso.

    Ja?

    1. Gibt es irgendwo Zahlen, die so einen Trend belegen?

    2. Gibt es dafuer einen technischen Grund? Ich meine, es muesste dann ja eine Entwicklung geben, wegen der die Nutzung von C++ auf Android-Smartphones immer mehr Vorteile bietet.



  • Gregor schrieb:

    2. Gibt es dafuer einen technischen Grund? Ich meine, es muesste dann ja eine Entwicklung geben, wegen der die Nutzung von C++ auf Android-Smartphones immer mehr Vorteile bietet.

    Performance per Watt... 😉

    Apple musste es lernen, Microsoft musste es lernen, Google sollte es eigentlich schon längst wissen...



  • dot schrieb:

    Gregor schrieb:

    2. Gibt es dafuer einen technischen Grund? Ich meine, es muesste dann ja eine Entwicklung geben, wegen der die Nutzung von C++ auf Android-Smartphones immer mehr Vorteile bietet.

    Performance per Watt... 😉

    Naja, traditionell werden die meisten Fortschritte bei der Energieeffizienz von Computern durch die weitergehende Miniaturisierung bei den integrierten Schaltkreisen erreicht. Die Programmiersprache macht hingegen nicht sooo viel aus, wobei ein Faktor hier natuerlich auch schon sehr relevant sein kann. Allerdings denke ich, dass bei Smartphones vermutlich das Display die meiste Energie benoetigt. Das ist unabhaengig von der Programmiersprache.

    Jetzt rechnen wir mal...

    Nehmen wir mal willkuerlich an, das Display benoetigt 100 Energieeinheiten, das Javaprogramm weitere 100 und das C++ Programm 50. Zusammen macht das 200 Energieeinheiten mit Java und 150 mit C++. Bei Displays gibt es aber nicht so eine Entwicklung bei der Energieeffizienz wie bei den integrierten Schaltkreisen. Das heisst, in der naechsten Generation braucht das Display immer noch 100 Energieeinheiten, das Javaprogramm dafuer 50 und das C++ Programm 25. Danach sind es dann 100/25/12, dann 100/12/6.

    Am Anfang der Entwicklung konnte man in diesem Beispiel durch das C++ Programm die Energieeffizienz des Gesamtsystems um 25% steigern. Am Ende der Miniaturisierungen betraegt die Steigerung nur noch etwa 6%. Das heisst, der Trend geht eher dahin, dass der Vorteil einer hoeheren Energieeffizienz von C++ Programmen immer weniger wert ist.

    Wenn C++ Programme auf diesen Systemen im Aufwind sein sollten und es dafuer eine technische Ursache gibt, dann muss es etwas anderes sein. Zum Beispiel das Aufkommen neuer Arten von Anwendungen, fuer die C++ einen echten Vorteil darstellt. Mir ist aber nichts in der Art bekannt.



  • Gregor schrieb:

    Am Anfang der Entwicklung konnte man in diesem Beispiel durch das C++ Programm die Energieeffizienz des Gesamtsystems um 25% steigern. Am Ende der Miniaturisierungen betraegt die Steigerung nur noch etwa 6%. Das heisst, der Trend geht eher dahin, dass der Vorteil einer hoeheren Energieeffizienz von C++ Programmen immer weniger wert ist.

    Das geht von der Annahme aus, dass C++ doppelt so schnell ist wie Java und dass sich die Hardware, wie zum Beispiel das Display nicht weiter entwickelt.

    Da Mobilgeräte auf der Hardwareseite eher schwachbrüstig unterwegs sind, können auch 6% einen Unterschied machen. Zumal diese 6% in Deiner Rechnung nur dann richtig sind, wenn das Display nicht weiterentwickelt wird und - wichtiger noch - durchgehend eingeschaltet ist.

    Meistens ist das Display aber eben nicht eingeschaltet, sondern das Händi werkelt in der Hosentasche. Dann ist in Deiner Rechnung C++ 100% effizienter als Java und zwar vollkommen unabhängig wie weit die Miniaturisierung fortschreitet.

    Ich schätze den Unterschied größer ein. Beispielsweise müssen Calls an Linux oder Grafikkarte erstmal aus der VM raus. Jede App muss zunächst kompiliert werden, weswegen nicht nur die VM im Speicher bleiben muss, sondern auch der JIT-Compiler. Im Vergleich dazu wäre eine Office-Anwendung in C++ etwa so aufwendig wie ein "Hello World" in Java, was ja den Compiler und die VM nebenher braucht.
    Auch die Garbage Collection ist bei C++ nicht erforderlich.

    Je sparsamer mit dem Speicher umgegangen wird, desto seltener müssen Programme ausgelagert werden. Alles, was nicht getan werden muss, verbraucht auch keinen Strom, weil man in der Zeit die CPU stattdessen schlafen legen kann.

    Nehmen wir ein aktuelles Smart-Phone, so bedeutet das, dass wir statt 1 Tag Nutzung über 2 Tage ohne Ladestation sprechen. Das wäre - würde ich sagen - schon ein klares Kaufargument.

    Aufgrund der Tatsache, dass die Hardware entsprechend schwächer ausgelegt werden kann (was in der Regel Strom spart), ohne dass der Benutzer den Leistungsunterschied zu einem doppelt so starken Androiden bemerkt, so könnte ein gleichwertiges Gerät auch deutlich mehr als die doppelte Laufzeit bringen.
    Gleichzeitig wäre die Hardware etwas günstiger.


Anmelden zum Antworten