Aversion gegen Java



  • @Bitte ein Bit: Wenn Du Java als unsicherste Programmiersprache bezeichnest, dann heißt das, dass Du auch einige Sprachen nennen kannst, die in Sachen Sicherheit viel besser dastehen. Kannst Du mal ein positives Beispiel für so eine Sprache nennen, die in einem Bereich eingesetzt wird, in dem Java entsprechende Probleme hat?



  • hustbaer schrieb:

    Javalove schrieb:

    Ich weiß nicht wie es in der Industrie aussieht, aber beim Heimanwender geht ja so gut wie gar nichts mehr ohne Java.

    Hätte ich jetzt genau das Gegenteil gesagt.
    Mir fallen genau zwei Sachen ein wo Herr Heimanwender mit etwas arbeitet was mit Java läuft, und das ist eben Android und Minecraft.
    Möglicherweise ist dann noch einiges in den ganzen Smart-* (TV, ...) Teilen auch Android bzw. allgemein Java. Viel ist aber auch native (C, C++).

    Javalove schrieb:

    Android macht viele PCs obsolet. Es sei denn man arbeitet wirklich in der IT und brauch einen PC. Aber der Löwenanteil der Bevölkerung wird immer seltener einen vollwertigen PC brauchen.

    Der Löwenanteil der Bevölkerung hat sowieso nie einen PC *gebraucht*.
    Und was lustig ist, ist dass gerade die wichtigste Anwendung auf Smartphones, nämlich der Browser, überall native ist.

    Ich nutze den Browser auf meinem Smartphone extrem selten im Gegensatz zu den anderen Apps.

    Als Java-Programm unter Windows läuft bei mir JDownloader, Eclipse, CLion, Android-Studio und fast jeden Tag Minecraft. Also ohne Java wäre das ziemlich trostlos bei mir auf dem Laptop und erst recht auf dem Smartphone.



  • Javalove schrieb:

    Bjarne Stroustrup

    In C++ ist es schwieriger, sich selbst in den Fuß zu schießen, aber wenn man es tut, dann ist gleich das ganze Bein weg

    Mehr gibt es auch nicht zu sagen.

    Ich wünschte bei manchen Java-Programmen, dass der Kopf gleich mit explodieren würde, nicht nur der Fuss.
    Man kann das nämlich auch als Vorteil lesen, dass beschissene C++-Programme wenigstens direkt als solche erkannt werden und nicht irgendwie scheinbar halbwegs funktionieren, obwohl sie schrott sind und nicht das machen, was sie sollen.
    Auch Java zaubert aus einem schlechten Programmierer keinen Guten heraus.



  • Das ist richtig, aber bei Java hat ein mittel talentierter Programmierer(was die meisten wohl sind) vielleicht Performanceprobleme produziert, aber kann sich ziemlich sicher sein keine Speicherfehler, in der Art wie sie in C und C++ möglich sind, mit einzubauen.

    Warum gibt es denn Exploits, die auf Speicherproblemen aufbauen, wie Sand am Mehr? Weil kaum jemand C und C++ richtig programmieren kann. Das ist die Praxis und die zählt weit mehr als dass man ja theoretisch sicher programmieren könnte.

    Sicherheit allein dem Programmiere aufzulasten ist extrem fahrlässig. Meist geht das aus den unterschiedlichsten Gründen schief(Zeitmangel, ungenügendes Wissen, schlechte Doku/Team, alter Code usw.) Die Beweise gehen täglich durch die IT-Presse.



  • CFrager schrieb:

    Warum gibt es denn Exploits, die auf Speicherproblemen aufbauen, wie Sand am Mehr?

    Du bist mir auch so ein "Sand am Mehr". Root exploits ist was für die Chefs, die meisten exploits nutzen dämliche php-Programmierer aus.


  • Mod

    Ich mag Java auch nicht.
    Java ist höchstselbst eine Art Exploit.

    Java fügte dem erfolgreichen Unternehmen Sun wirtschaftlichen Schaden zu, bis in die Krise und hat der Open-Source Entwicklung eine rote Nase aufgesetzt.

    (aber ich kenne mich vielleicht auch nicht so gut aus. Wie bekommt man sowas hier
    wie man auf http://tryhaskell.org austesten kann

    [2^x | x <- [1..100]]
    

    auch im Java online Interpreter hin? )
    (nach Möglichkeit noch ohne Ausgabefehler/-abbruch(zeigt sich bei mir so) bei 2^88..)



  • Javalove schrieb:

    ...
    Wie schwer der richtige Umgang mit C und C++ ist, sieht man schon an den unendlichen Sicherheitslücken. So gut wie jede C++ Software ist doch wie ein Schweizer Käse, bei dem man sich das Loch nur aussuchen muss.
    ...

    Als C++ Programmierer kann ich die Sicherheitslöcher selber stopfen, wenn welche gefunden werden. Auch kann ich entscheiden, wie dringend ein Loch gestopft werden muss. Wenn bei Java die VM Sicherheitslöcher hat kann ich das nicht mehr und bin auf ein Update angewiesen, das dieses Loch stopft. Und je nach Anforderung muss ich mit einer neuen VM vielleicht größere Funktionstests machen, um das Verhalten bestehenden Codes unter der neuen VM zu prüfen.



  • nachtfeuer schrieb:

    Ich mag Java auch nicht.
    Java ist höchstselbst eine Art Exploit.

    Java fügte dem erfolgreichen Unternehmen Sun wirtschaftlichen Schaden zu, bis in die Krise und hat der Open-Source Entwicklung eine rote Nase aufgesetzt.

    (aber ich kenne mich vielleicht auch nicht so gut aus. Wie bekommt man sowas hier
    wie man auf http://tryhaskell.org austesten kann

    [2^x | x <- [1..100]]
    

    auch im Java online Interpreter hin? )
    (nach Möglichkeit noch ohne Ausgabefehler/-abbruch(zeigt sich bei mir so) bei 2^88..)

    Wie wäre es mit

    import java.math.*;
    import java.util.*;
    
    public class HelloWorld{
    
         public static void main(String []args){
            BigDecimal two=new BigDecimal(2);
            String[] result=new String[100];
            for(int i=0;i<result.length;i++)
            {
                result[i]=(i+1)+" - "+two.pow(i+1).toString();
            }
            System.out.println(Arrays.toString(result));
         }
    }
    

    ?
    Getestet hier.
    Bricht auch nicht bei 2^88 ab 😉



  • DocShoe schrieb:

    Als C++ Programmierer kann ich die Sicherheitslöcher selber stopfen, wenn welche gefunden werden. Auch kann ich entscheiden, wie dringend ein Loch gestopft werden muss. Wenn bei Java die VM Sicherheitslöcher hat kann ich das nicht mehr und bin auf ein Update angewiesen, das dieses Loch stopft. Und je nach Anforderung muss ich mit einer neuen VM vielleicht größere Funktionstests machen, um das Verhalten bestehenden Codes unter der neuen VM zu prüfen.

    Nach meinem Verstaendnis sind die Sicherheitsluecken in Java nicht in der Art, dass eigene Programme unsicher werden, weil sie in einer VM laufen, sondern, dass fremde Programme, die innerhalb der VM in einer Sandbox laufen sollen, aus dieser ausbrechen koennen.

    Fuer eigene Programme erhoeht Java eher die Sicherheit, weil Arraygrenzen usw. eben immer getestet werden.



  • DocShoe schrieb:

    Als C++ Programmierer kann ich die Sicherheitslöcher selber stopfen, wenn welche gefunden werden. Auch kann ich entscheiden, wie dringend ein Loch gestopft werden muss. Wenn bei Java die VM Sicherheitslöcher hat kann ich das nicht mehr und bin auf ein Update angewiesen, das dieses Loch stopft.

    Die fiesesten Sicherheitslöcher sind im Betriebssystem.

    Aber du hast natürlich Recht, als C-Progger baust du mal eben schnell irgendwelche System-DLLs nach. 😃



  • Andromeda schrieb:

    Aber du hast natürlich Recht, als C-Progger baust du mal eben schnell irgendwelche System-DLLs nach. 😃

    Nö, ich baue meistens Sachen, die das System nicht bietet, weil die Programmierer des Systems dicht sind, während ein anderes System diese Sachen meistens hat.

    "Das System" ist hierbei meistens Windows, und "ein anderes System" Linux und/oder BSD.


  • Mod

    JGuest schrieb:

    Wie wäre es mit
    ? ..
    Bricht auch nicht bei 2^88 ab 😉

    👍
    Danke!
    (bricht bei mir erst bei 2^98 ab. Na, immerhin)*
    (wäre online-Interpretertechnisch gesehen eigentlich ein Punkt für Java)

    *edit: nach Wiederholung/Zahlenumstellung kein Abbruch (mehr))



  • dachschaden schrieb:

    Nö, ich baue meistens Sachen, die das System nicht bietet, weil die Programmierer des Systems dicht sind, während ein anderes System diese Sachen meistens hat.

    Was denn zum Beispiel?



  • ich würde einmal sagen, dass jemand, der C++ gut beherrscht, sehr leicht auf java umsteigen kann, aber jemand, der java gut beherrscht, sich mit einem umstieg auf C++ sehr schwer tun würde.

    das impliziert, dass ich eher jemanden einstellen würde, der guten C++ code kann, wenn er vorher java gelernt hat, weil (qed) sehr viel mehr leisten musste.



  • dove schrieb:

    ich würde einmal sagen, dass jemand, der C++ gut beherrscht, sehr leicht auf java umsteigen kann, aber jemand, der java gut beherrscht, sich mit einem umstieg auf C++ sehr schwer tun würde.

    Also nein, dazu existieren in beiden Sprachen einfach viel zu viele unterschiedliche Konzepte. Mein Betrieb (bin einer der 6 Inhaber) sucht hauptsächlich hardwarenahe Coder. Wir haben mit Java als auch C++ Programmierern gute wie auch schlechte Erfahrungen gemacht. Das nimmt sich nichts.



  • *Rant geloescht*



  • [quote="Andromeda"]

    dove schrieb:

    ich würde einmal sagen, dass jemand, der C++ gut beherrscht, sehr leicht auf java umsteigen kann, aber jemand, der java gut beherrscht, sich mit einem umstieg auf C++ sehr schwer tun würde.

    Der Geist von C++ ist "Fehler bleiben auf dem Schreibtisch!". Man vernudelt die Sprache ein wenig, um mit der statischen Typprüfung im Voraus seine späteren Denkfehler (und Tippfehler eh) rauszukloppen. Dieses Vernudeln hat sich als ebenso komplex herausgestellt wie die Anwendungsprogrammierung selbst. In C++ ist Programmierung und Typen-Vernudeln das selbe. *zack*, ich hab nicht aus Absicht gemacht, daß es geht. Aber die C++-Progger müssen eine Mindestvoraussetzungen erfüllen: Auf Anfrage vom Vorgesetzten zur Arbeitszeit ein Buch lesen können.

    Der Geist von Java ist "Unsere Leute können kein Buch lesen".



  • Ich weiß nicht ob ich bei der Überheblichkeit und Einbildung weinen oder lachen soll...



  • Wo ist Java bitte "unsicher"?

    Das Java-Plugin für den Browser? Bitte, das verwendet kein Mensch mehr und ist auch vollkommen irrelevant.

    Java ist halt die Technologie der Wahl für große Enterprise-Systeme. Applicationserver wie IBM WebSphere, die auf geclusterten Serversystemen oder Mainframes laufen. Große Unternehmen haben davon teilweise tausende am Laufen.

    Neben dem offiziellen Sun/Oracle Java gibt es übrigens noch zahlreiche andere Implementierungen, wie beispielsweise JRockIt, IBM, SAP, OpenJDK und weitere.
    Woher willst du wissen, dass die alle unsicher sind bzw. Sicherheitsprobleme leisten? Denkst du, man entwickelt millionen- bis milliardenschwere Systeme mit einer "unsicheren" Sprache?



  • Java ist sicher, weil so viele grosse Firmen es verwenden?
    Echt jetzt? Das ist dein Argument?

    EDIT: Typo


Anmelden zum Antworten