Geschwindigkeit vs. Sicherheit
-
Gregor schrieb:
Simon2 schrieb:
BTW: Schonmal einen Treiber in Java programmiert?
Nö. Ich stell ja auch keine Hardware her. Warum sollte ich dann nen Treiber programmieren? Abgesehen davon wurde schon auf der ersten Seite des Threads hier geklärt, dass Java für solche Dinge weniger geeignet ist. Wobei es durchaus Leute gibt, die sich daran versuchen, Betriebssysteme in Java zu programmieren. Siehe zum Beispiel JNode. Es scheint also nicht völlig unmöglich zu sein.
Sorry, dass ich nicht die Nerven hatte, mich durch 16 Seiten durchzuwühlen. Ich habe die ersten 3 Seiten (mit "bulls***-skip") überflogen und da schien mir das Thema noch nicht abschließend behandelt zu sein.
Gruß,
Simon2.
-
Gregor schrieb:
Simon2 schrieb:
BTW: Schonmal einen Treiber in Java programmiert?
Nö. Ich stell ja auch keine Hardware her. Warum sollte ich dann nen Treiber programmieren? Abgesehen davon wurde schon auf der ersten Seite des Threads hier geklärt, dass Java für solche Dinge weniger geeignet ist. Wobei es durchaus Leute gibt, die sich daran versuchen, Betriebssysteme in Java zu programmieren. Siehe zum Beispiel JNode. Es scheint also nicht völlig unmöglich zu sein.
Mit Java ein Betriebssystem zu programmieren ist geistig aber nicht so der Knüller.
MfG SideWinder
-
SideWinder schrieb:
Mit Java ein Betriebssystem zu programmieren ist geistig aber nicht so der Knüller.
Ich würde das als Proof-of-Concept bezeichnen. Für mich ist www.jnode.org also eher als so eine Art Experiment zu sehen. Mal abwarten, was da am Schluss herauskommt.
-
Gregor schrieb:
net schrieb:
hab' jetzt nicht alle seiten gelesen, aber hat schon einer geschrieben, dass coden in java viel mehr spass macht als in c++? mir jedenfalls...
Geht mir ähnlich. Das führe ich allerdings darauf zurück, dass ich zu wenig mit C++ programmiere, um da eine entsprechende Routine zu bekommen.
na, jedenfalls scheinst du hier der einzige zu sein, der sich zu der einen sache bekennt, ohne die andere zu verteufeln...
Simon2 schrieb:
BTW: Schonmal einen Treiber in Java programmiert ?
das macht man aber auch nicht mit c++ ...
-
SideWinder schrieb:
...J2EE ist ein sehr mächtiger Standard der derzeit eben mit Java am besten umsetzbar ist. Enterprise Beans in Verbindung mit Servlets und JSP machen eine sehr mächtige 3-Tier-Kombination aus die nicht zu unterschätzen ist.
MfG SideWinder
Stimmt ... allerdings bestätigen mir nicht wenige externe "Beraterberater", dass inzwischen die Grenzen dieses Ansatzes so deutlich geworden sind, dass viele große Firmen wieder davon abschwenken. Für "menschnahe" Systeme spielt das keine Rolle (oder fällt das noch nicht so auf), aber je mehr reine Maschinen miteinander kommunizieren (in unterschiedlichsten Protokollen), kauft man sich mit J2EE&Co mehr Probleme ein, als man löst.
Nicht zu vergessen sehr mächtige und über Jahrzehnte ausgereifte Backendsysteme, deren Ersatz/Umstrickung auf so eine Technik wenig lukrativ und sogar gefährlich (geschäftspolitisch) ist.Letztlich verlagern diese Enterprisetechniken nur Aufgaben vom Entwickler auf die Produktion ... wodurch ein Unternehmen letzten Endes deutlich weniger spart, als man sich lange davon versprochen hat (von der sinkenden Produktionssicherheit mal ganz abgesehen).
Ich will J2EE nicht schlechtreden, sondern lediglich auf die immer noch sehr große "Welt dahinter" aufmerksam machen.
Gruß,
Simon2.
-
net schrieb:
...
Simon2 schrieb:
BTW: Schonmal einen Treiber in Java programmiert ?
das macht man aber auch nicht mit c++ ...
Warum nicht ?
Gruß,
Simon2.
-
Simon2 schrieb:
Ich will J2EE nicht schlechtreden, sondern lediglich auf die immer noch sehr große "Welt dahinter" aufmerksam machen.
Ja, echt? Ich habe keinen einzigen Satz über "die Welt dahinter" in Deinem Beitrag finden können.
...außer den Verweis auf alte Systeme.
-
Gregor schrieb:
Simon2 schrieb:
Ich will J2EE nicht schlechtreden, sondern lediglich auf die immer noch sehr große "Welt dahinter" aufmerksam machen.
Ja, echt? Ich habe keinen einzigen Satz über "die Welt dahinter" in Deinem Beitrag finden können.
...außer den Verweis auf alte Systeme.
Dann gerne nochmal ein wenig komprimiert:
Simon2 schrieb:
...je mehr reine Maschinen miteinander kommunizieren (in unterschiedlichsten Protokollen)...
Nicht zu vergessen sehr mächtige und über Jahrzehnte ausgereifte Backendsysteme,
...Aufgaben vom Entwickler auf die Produktion
... wodurch ein Unternehmen ... deutlich weniger spart, ...
...Produktionssicherheit mal ganz abgesehen...Das alles (und noch viel mehr) sind Themenkomplexe, die gewichtige Rollen im Gesamtprozess spielen und auf die im J2EE-Umfeld relativ wenig Gewicht gelegt wurde ... zugunsten einer starken Vereinfachung für den einzelnen Entwickler.
Gruß,
Simon2.
-
Simon2 schrieb:
net schrieb:
...
Simon2 schrieb:
BTW: Schonmal einen Treiber in Java programmiert ?
das macht man aber auch nicht mit c++ ...
Warum nicht ?
weil da wo treiber ausgeführt werden normalerweise keine c++ laufzeitumgebung ist. kein new/delete, kein automatisches aufrufen von destruktoren usw...
-
Simon2 schrieb:
Gregor schrieb:
Simon2 schrieb:
Ich will J2EE nicht schlechtreden, sondern lediglich auf die immer noch sehr große "Welt dahinter" aufmerksam machen.
Ja, echt? Ich habe keinen einzigen Satz über "die Welt dahinter" in Deinem Beitrag finden können.
...außer den Verweis auf alte Systeme.
Dann gerne nochmal ein wenig komprimiert:
Simon2 schrieb:
...je mehr reine Maschinen miteinander kommunizieren (in unterschiedlichsten Protokollen)...
Nicht zu vergessen sehr mächtige und über Jahrzehnte ausgereifte Backendsysteme,
...Aufgaben vom Entwickler auf die Produktion
... wodurch ein Unternehmen ... deutlich weniger spart, ...
...Produktionssicherheit mal ganz abgesehen...Gruß,
Simon2.
Ach so, ich habe Dich falsch verstanden. Ich dachte, Du meinst mit "der Welt dahinter" Alternativen. Aber Du meinst eben gerade diese J2EE-Welt, die natürlich auch nicht perfekt ist.
-
net schrieb:
Simon2 schrieb:
net schrieb:
...
Simon2 schrieb:
BTW: Schonmal einen Treiber in Java programmiert ?
das macht man aber auch nicht mit c++ ...
Warum nicht ?
weil da wo treiber ausgeführt werden normalerweise keine c++ laufzeitumgebung ist. kein new/delete, kein automatisches aufrufen von destruktoren usw...
Natürlich muß ich da "sehr low levellig" in C++ programmieren ... aber ich kann es wenigstens.
Gruß,
Simon2.
-
Simon2 schrieb:
... aber ich kann es wenigstens.
Zu den Treiber in Java nochmal: http://research.sun.com/techrep/2006/abstract-156.html
-
Gregor schrieb:
...
Ach so, ich habe Dich falsch verstanden....Gut ... hatte mir schon um Dein Sehvermögen Sorgen gemacht.
Ich meine die Teile der EDV, die bei der "Lobhudelei von J2EE" in den Hintergrund gedrängt wurden. Das sind keine "Schwächen von J2EE" (dsie man mit der nächsten Version gefixt hat), sondern das sind absolute Grenzen von J2EE, die verdeutlichen, daß es daneben doch noch andere Techniken/Architekturen geben muß.Das Beispiel "Treiber" gehörte auch dazu.
Gruß,
Simon2.
-
Simon2 schrieb:
net schrieb:
Simon2 schrieb:
net schrieb:
...
Simon2 schrieb:
BTW: Schonmal einen Treiber in Java programmiert ?
das macht man aber auch nicht mit c++ ...
Warum nicht ?
weil da wo treiber ausgeführt werden normalerweise keine c++ laufzeitumgebung ist. kein new/delete, kein automatisches aufrufen von destruktoren usw...
Natürlich muß ich da "sehr low levellig" in C++ programmieren ...
ja, aber damit benutzt du ausschliesslich den 'kompatibilitätsmodus' von c++ und da biste mit dessen kleiner schwester besser bedient (du musst die schnittstellen nicht alle 'extern C' definieren usw.). treiber mit 'nem c++ compiler machen geht zwar, ist aber nicht toll (selbst kernelhacker wie linus t. raten davon ab).
-
Wo es hier ja um Sicherheit geht... Aus dem Paper, das ich da oben verlinkt habe:
As a demonstration of the safety properties provided by Java, we introduced a null pointer dereferencing bug into both the C and Java versions of the RAM disk device. The effect in the Java version was that a Java exception was thrown, resulting in an error code being returned from the kernel to the calling application. The C version caused a panic crash of the Solaris kernel. (This was not unexpected, but it does make for a dramatic conclusion to a presentation!)
-
Gregor schrieb:
Simon2 schrieb:
... aber ich kann es wenigstens.
Zu den Treiber in Java nochmal: http://research.sun.com/techrep/2006/abstract-156.html
Ich gestehe, dass ich mir nur einen sehr oberflächlichen Eindruck verschafft habe, aber:
Wenn der Hersteller von Java sein hauseigenes Betriebssystem (vermutlich mit C/C++) um eine spezielle Java-Schnittstelle erweitert, ist das für mich kein Beispiel dafür, dass Java eine "gute Treibersprache" ist.Gruß,
Simon2.
-
Simon2 schrieb:
ist das für mich kein Beispiel dafür, dass Java eine "gute Treibersprache" ist.
Das habe ich nicht behauptet. Es ging um die Möglichkeit, soetwas zu machen. Einen Grund, warum man das vielleicht in Erwägung ziehen könnte, sieht man in dem Zitat da oben.
-
net schrieb:
...
ja, aber damit benutzt du ausschliesslich den 'kompatibilitätsmodus' von c++ ...Ich muß gestehen, dass ich C unter C++ mitgemeint habe.
Es ging auch nur darum: Versuch' mal, in Java auf rohen Speicher zuzugreifen (lesend&schreibend) .... dafür geben C/C++ Dir etwas an die Hand.Gruß,
Simon2.
-
Gregor schrieb:
Simon2 schrieb:
ist das für mich kein Beispiel dafür, dass Java eine "gute Treibersprache" ist.
Das habe ich nicht behauptet. Es ging um die Möglichkeit, soetwas zu machen. Einen Grund, warum man das vielleicht in Erwägung ziehen könnte, sieht man in dem Zitat da oben.
Wie gesagt: Kunststück, wenn ich für das eine eine angepasste (Interpreter-)Laufzeitumgebung in meinen OS-Kernel einflicke und den anderen direkt auf die Hardware schicke....
Wenn sie aus dem C-Programm Pseudocode generieren und den über eine VM interpretieren ließen, wäre das Ergebnis identisch.Nicht vergessen: Sun will ihr Solaris und ihre VMs verkaufen - da ist Java nur Mittel zum Zweck.
Gruß,
Simon2.
-
Simon2 schrieb:
Wenn sie aus dem C-Programm Pseudocode generieren und den über eine VM interpretieren ließen, wäre das Ergebnis identisch.
Oh, Wunder! Einige Eigenschaften von Java sind darauf zurückzuführen, dass Javaprogramme in einer JVM laufen. Wer hätte das gedacht? Bei C ist das halt nicht so, da hilft auch kein "wenn..., dann hätte..." oder so. Abgesehen davon würde das nicht ausreichen, um zum gleichen Ergebnis zu kommen.