Warum ich Java hasse

Developer-Tools, Entwicklungsumgebungen und alles andere, was sich installieren lässt
Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8501
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Warum ich Java hasse

Beitrag von Xin » Do Dez 04, 2014 1:10 pm

hermi hat geschrieben:Warum denn, ich benutze gern Java.
Es spricht ja auch nichts dagegen, Java gerne zu nutzen, aber Deiner Argumentation kann nicht ganz folgen.
hermi hat geschrieben:1.Java ist einfach, leicht zu erlernen als C \ C ++
Nein, es ist anders zu lernen. In C++ ist die Frustration am Anfang hoch, in Java mit steigender Projektgröße.
Dass man zu Beginn weniger frustriert ist, bedeutet nicht, dass der Lernprozess einfacher ist. Zieht man ihn bis zum Schluss durch, wird er sogar massiv schwieriger. Aber das ist ja auch nicht die Intention von Java.
hermi hat geschrieben:2.Java ist vollständig objektorientiert , wie Arrays in Java ist eine Aufgabe der Länge dieses Attribut enthalten, im Gegensatz zu C ++ ist ein Array einen Zeiger. So besuchen Sie Arrays, wird Java ausführen Abgrenzungsüberprüfung, sicherer, aber auf Kosten der Geschwindigkeit.
Erstens ist Objekt-Orientierung bei guter Programmierung zu vermeiden. Eine Exception macht ein Programm nicht sicherer. Es ist genauso falsch und da Exceptions in Java oftmals falsch oder gar nicht behandelt werden, hat man nicht gewonnen, sondern nur eine langsamere Ausführung der Programme.
hermi hat geschrieben:3.Mit Java gibt es kein Zeiger so unsicher (obwohl die Zeigergeschwindigkeit) Konzept.
Respekt... den Blödsinn habe ich vor 15 Jahren noch gehört, aber mindestens seit 5 Jahren keinen mehr gehört, der sich traut den Unsinn in die Welt zu setzen. Nichts für ungut, aber ich hätte nicht gedacht, dass sich Suns verlogene Propaganda bis heute noch hält.

Wenn Java keine Pointer hat, wieso wirft es NullPointerExceptions?
hermi hat geschrieben:4.Java hat die Speicherverwaltung, Müllabfuhr automatisch verbessert, wodurch die maximal mögliche Speicherüberlauf kann auch die Programmierung Effizienz zu verbessern.
Das Konzept der Garbage Collection war bereits veraltet als Java damit an den Start ging.
Zumal es ausschließlich eine Memory-Garbage-Collection ist und keine Resourcen-Garbage-Collection. Das Problem wird also nicht generell gelöst, sondern ausschließlich für Speicher. Und dort ruft es massive neue Problem hervor.
hermi hat geschrieben:5.Java ist in einer perfekten Ausnahmemechanismus (C ++ Standard ist nicht perfekt).
Hehehe... die Verwendung von Exceptions in Java ist alles andere als Perfekt, weil sie nicht Ausnahmsweise, sondern regelmäßig verwandt werden, was dazu führt, dass die Fehlerbehandlung extrem aufwendig und im kompletten Widerspruch zu den alltäglichen Anforderungen in der Software-Entwicklung stehen. Mit dem Ergebnis, dass Exceptions die fehlerfreie Entwicklung eher behindern als vereinfachen.
hermi hat geschrieben:6.java Datenobjekt sich in dem Haufen zu erhalten, während auf dem Stapel durch einen Handgriff mit diesem verbunden. Dieses Design ist mehr zumutbar ist.
Java kann aus den oben genannten Punkte und sicherer zu erkennen.
Vollständige Multi
Daraus kann ich nix erkennen.
hermi hat geschrieben:8.Java Standardbibliothek, im Vergleich zu C ++ zusätzlich zu einem STL (sondern auch super schwer zu handhaben) weg ist, tatsächlich erfordert eine Menge Programmierung in C ++ mit 3rd-Party-Bibliotheken. Dies ist vor allem, weil es eine Reihe von Unternehmen der gewerblichen Wirtschaft, um Java-Update Geschwindigkeit unterstützt, und C ++ Normenausschuss ist nur ein armer, auf einer C ++ Standard-Version oder C ++ 98. .
Verstehe ich auch nicht.
hermi hat geschrieben:9. Java, da das Programm den Byte-Code benötigt, um die JVM-Bytecode ausführen kompiliert und dann in Maschinencode übersetzt, so dass er plattformübergreifende, einmal kompiliert, laufen überall. Aber es ist auch die Hauptursache für ihn verlangsamen.
In erster Linie ist es langsamer. Dass die Portablität für ernstzunehmende Programme nicht funktioniert ist längst erwiesen. Alles brauchbare hat Anpassungen für die einzelnen Systeme, weil die JVM eben nicht reicht.
Das ganze geht in der Regel über JNI, also C oder C++. Damit ist der gewünschte Vorteil von Java weg, im Gegenteil, man muss sogar zusätzlich noch C++ lernen und programmieren, um ein Programm umzusetzen, Softwareschnittstellen bauen, die nicht erforderlich wären wenn man sich auf eine Sprache konzentriert hätte.
hermi hat geschrieben:10.Java native Unterstützung für Multi-Threading (C ++ Standardbibliothek allein kann das nicht), native UI wie AWT Swi
Die native UI ist so sch... dass sie freiwillig keiner mehr nutzt. Multi-Threading ist im gegenwärtigen C++-Standard drin. Später als in Java, aber immerhin drin. Ansonsten ist es über Boost schon lange verfügbar. Boost ist quasi die Lib, die als Standard-Anwärter fungiert.

Ich sehe einiges an Unwissen hier, gerade die Behauptung mit den Pointer halte ich für sehr fraglich, denn faktisch kann Java nichts außer Pointer, während C++ mit (C++-)Referenzen, eingebetteten Objekten und RAII einiges zu bieten hat, was ohne manuelle Speicherallokation auskommt, ergo auch den Garbage Collector überflüssig macht.
Java hat leider kein Problem gelöst, sondern vorrangig neue Probleme geschaffen. Und Sun hat viel Propaganda gemacht, um Leute von C++ abzuwerben.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

oenone
Beiträge: 223
Registriert: Do Sep 01, 2011 2:42 pm
Wohnort: Bremen

Re: Warum ich Java hasse

Beitrag von oenone » Sa Dez 06, 2014 9:56 am

Äh... schlechtes Google Translate?

Und dann noch voll von Falschaussagen. Java ist nicht "vollständig objektorientiert". In C++ sind Arrays keine Zeiger. In Java gibt es sehr Wohl Zeiger. Speicherverwaltung geht auch mit C++ sehr gut und Garbage Collection ist auch nicht der Weisheit letzter Schuss. "Perfekt" ist ein ziemlich starkes Wort. Mit C++11 hast du auch natives Multithreading. usw...

Vieles von dir ist auch nur mit Mühe zu verstehen.

hans506
Beiträge: 2
Registriert: Mo Mär 02, 2015 11:09 am

Re: Warum ich Java hasse

Beitrag von hans506 » Mo Mär 02, 2015 11:18 am

...aber Java Programme laufen doch auf 5 Milliarden Geräten... :) :mrgreen:

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Warum ich Java hasse

Beitrag von fat-lobyte » Fr Apr 03, 2015 10:27 am

hans506 hat geschrieben:...aber Java Programme laufen doch auf 5 Milliarden Geräten... :) :mrgreen:
Millionen Fliegen können nicht Irren, esst ... eh schon wissen ;)

Noch mehr Öl ins Feuer!

Wusstet ihr, dass ALLE methoden (die nicht als final deklariert sind) virtuell sind? Tja, das sind Sie.

Code: Alles auswählen

public class TestBaseMethod
{
    static class Basic {
        public Basic()
        {
            Basic.this.doSomething(); // <<---- This should call Basic version
        }

        public void doSomething()
        {
            System.out.println("Doing something old");
        }
    }

    static class Derived extends Basic {
        Object ressource = new Object();

        @Override
        public void doSomething()
        {
            System.out.println("Doing something completely new");
            ressource.toString(); // <<---- ÜBERRASCHUNG!!!
        }
    }

    public static void main(String[] args)
    {
        Basic d = new Derived();
        System.out.println("-------------------------------");
        d.doSomething(); // <<---- This should call Derived version
    }
}
Was erwartet man sich von diesem Code? Was tut er tatsächlich?

Hier ein paar Tips zur Umgehung des Problems:
http://stackoverflow.com/a/29281898/429322
Haters gonna hate, potatoes gonna potate.

Antworten