ComputerJunge schrieb:
Das würde ich nur machen, wenn es keine(n) gäbe (*). Warum das Rad zum x-ten Male erfinden - das ist doch Sinn und Zweck von Frameworks und Libraries.
Stimmt schon, ich sehe das im Großen und Ganzen auch so. Wobei ich aktuell oft eher "Grundlagen" programmiere/entwickel aus Spaß und um neue Gedankengänge nachzuvollziehen.
Nur einen Logger schleppe ich quasi seit 15 Jahren mit mir, passe den immer etwas an, aber er macht genau das, was er soll, mit relativ wenigen Zeilen Code. Ich habe da aktuell 2 Interfaces und 5 Klasse mit ca. 1000 Zeilen Code inklusive Kommentare. Der reine Code kommt vielleicht auf 200 Zeilen und die kann man noch halbwegs formal auf Fehlerfreiheit, aber auch auf Sicherheit abklopfen.
Das Problem von Frameworks/Bibliotheken ist, dass man manchmal mit Kanonen auf Spatzen schießt und unnötige Komplexität schafft, die am Ende auch wieder Fehler und Lücken produzieren kann.
Genauso stimmt es aber auch, dass man nicht x-mal genau das Gleiche schreiben muss und es eigentlich genug gute Bibliotheken und Frameworks gibt. Das Problem nur an den meisten heute "gut" gepflegten Bibliotheken und Frameworks ist, dass sie so fett und komplex sind, dass sie zwar gut erprobt sind, aber man teilweise den ganzen Ballast mit sich schleppt.
ModellbahnerTT schrieb:
JAVA ist bereits öfter durch Sicherheitslücken aufgefallen.
Genauso wie viele anderen Sprachen, die nicht direkt kompiliert werden, sondern durch einen "Interpreter" ausgeführt werden - ja, ich weiß, dass es die Java Virtual Maschine ist, aber an der Stelle ist es einfacher für die Erklärung!
Egal ob jetzt Java, PHP, Phyton, JavaScript, Perl und Co: All diesen Sprachen gemein ist, dass im hinter Grund ein Interpreter läuft, der dann das eigentliche Programm ausführt. Bei Java wird ein Precompiler genutzt um den Bytecode für die JVM zu erstellen, die JVM ist dann der JIT (Just-In-Time-Compiler). JavaScript und andere Skriptsprachen ist halt ein Lexer und Preparser davor.
Und natürlich finden sich da auch Fehler, nur gleichzeitig darf man nicht vergessen, dass eine JVM, eine V8, SpiderMonkey, ZendEngine und Co gleichzeitig auch viele Fehler verhindern, die man als Entwickler so machen kann, gerade was das Memory-Managment angeht.
In C, C++ muss man zum Beispiel bis heute sehr genau darauf achten, wie man programmiert, da man sonst schneller ein Buffer-Overflow erzeugt, als einem lieb ist. Die ganzen Zeiger-Sachen sind alles andere als wirklich gut gelöst. Deswegen hat Rust ja zum Beispiel sehr klare Regeln im Compiler, was Referenzen, Variabel weitergab usw. angeht, damit so etwas nicht passiert.
Also: Ja, die JVM hat ihre Probleme, gleichzeitig verhindert sie aber auch viele Probleme.
foo_1337 schrieb:
Und es gab garantiert mehr f*ckups wegen miesem C/C++ code als welche aufgrund von Lücken in der JVM. Vieles was du in C oder C++ komplett vergeigen könntest, erlaubt Java erst gar nicht.
Deswegen schaue ich mir aktuell Rust an. Macht Spaß und der ganze Fuckup ist weg, außer man will ihn.
Man muss halt mit der Zeit einsehen: Fehler und Sicherheitslücken wird es immer geben und es wird keine perfekte Programmiersprache geben und auch kein perfektes Programm. Sobald man einen PC startet, kann es eine potentielle Lücke geben und deswegen gibt es mehrere Ebenen im Sicherheitskonzept.