Geschwindigkeit vs. Sicherheit



  • hab' jetzt nicht alle seiten gelesen, aber hat schon einer geschrieben, dass coden in java viel mehr spass macht als in c++? mir jedenfalls...

    zum thema:
    man kann in java übelsten frickelcode schreiben, der trotzdem super-stabil ist und erstaunlich viel funktionalität hat. beispiel: http://www.saschaseidel.de/testdir/wettbewerb_02/MiB.zip
    entstand an einem langweiligen nachmittag. mit c++ hätt's sicher viel länger gedauert und stabilität wär gleich 0 gewesen...



  • hab' jetzt nicht alle seiten gelesen, aber hat schon einer geschrieben, dass coden in java viel mehr spass macht als in c++? mir jedenfalls...

    ne, es ist genau umgekehrt.



  • java anhänger schrieb:

    klar, das jemand der nicht programmieren kann Java bevorzugt.

    Klar, das jemand der Programmieren nur vom Hörensagen her kennt nicht weiß inwiefern Java das Leben vereinfachen kann. oder anders gesagt: Spar dir solche Hiebe unter der Gürtellinie.

    Ich hab schon mit Java gearbeitet. Im Gegensatz zu dir, bin ich kein Sprach-Dogmat und schaue auch über den Tellerrand.

    Gregor schrieb:

    rüdiger schrieb:

    Ich bin nicht "so ein OSS-Verfechter" und ich kenne die CDDL und die genauen Details der GPL auch nicht, um das beureilen zu können.

    Schade. Ich dachte, du wärst da der richtige Ansprechpartner. Ich glaube, Du hattest mich vor ganz langer Zeit mal gefragt, was ich von solchen offenen Java-Nachbauten wie Kaffe und so halte. Deshalb dachte ich, Dir würde die Offenheit von Software wichtig sein.

    Offenheit von Software ist mir schon wichtig oder sagen wir es so, ich bevorzuge als Programmierer natürlich Software dessen Quellcode ich einsehen kann.



  • Artchi schrieb:

    Wenn dir Smartpointer auch nicht reichen, nimm Hans Boehms Garbagecollector. Dann biste mit C++ auf Java-Level.

    Genau, Java-Niveau! Ich bin gleich wieder da, muss mich nur schnell
    noch fertig totlachen.... Der GC für C++ ist n netter Hack, der
    vieleicht für ein Hallo-Welt-Prog. reicht - für mehr aber auch nicht...
    Zudem kommt da das Argument, das anderer Code als der selbstgeschriebene
    (im Java-Fall die VM) unkrontrollierbar sei wie ein Bummerang zurückgeflogen!

    Also echt, manchmal frag ich mich, wie verbohrt und beschränkt man sein
    muss, um C++ auch noch gut zu finden - in manchen Bereichen (embedded) ists
    vieleicht die beste Alternative, aber von "gut" ists bei objektiver
    Betrachtung noch 100000 km entfernt.

    Böhms GC auf Java-Level... Ich lach mich tot!



  • Artchi schrieb:

    Das spiegelt sehr schön wieder, was wir in der C++ Welt eigentlich haben: die wenigsten kennen C++ und ihre Designmöglichkeiten. Ich habe mal einem Java-Kollegen, der seit Jahren auch C und C++ kennt, mal ein paar Hinweise bzgl. Templates u.ä. gegeben. Er selber kannte kein Boost, keine Namespaces ("warum hat mir das keiner gesagt?") und vorallem hat er 3D-Engines wie Irrlicht benutz. Mit dem Hinweis auf Templates und das diese nützlich sind und vorallem eine andere Denkweise als Java bedürfen, meinte er "Ja, aber die ganzen Frameworks wie Irrlicht werden von erfahrenen C++lern entwickelt, und ich habe noch nie Templates oder sowas darin gesehen! Die werden es ja wohl wissen?"

    herrlich!!

    nur damit irrlicht nicht in verruf kommt, sonder das schlechte licht bei deinem kollegen bleib der irrlich verwendet aber nix ueber die exestenz von templates weiss, namespaces usw

    erste zeile von irrlicht bsp code
    (die anscheinend ohne nachdenken was da steht und getan wird verwendet wird)

    // start up the engine
    IrrlichtDevice *device = createDevice(video::EDT_DIRECT3D8,
                    core::dimension2d<s32>(640,480));
    


  • 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. Für mich läuft "mit C++ programmieren" meistens darauf hinaus, dass ich viel Zeit mit dem Debugging verbringe. Wenn ich mit Java programmiere, dann läuft das darauf hinaus, dass ich die meiste Zeit programmiere. Ich muss da nicht so viel debuggen.

    Aber wie schon gesagt: Ich denke, dass das subjektive Erfahrungen sind, die sich vermutlich relativieren würden, wenn ich häufiger etwas mit C++ machen würde.



  • Ich verstehe gar nicht, warum irgendjemand, dem Sicherheit wichtig ist, noch Java programmieren soll, wo Cobol doch all die Dinge verbietet, die man selbst in Java noch falsch machen kann ?

    Gregor schrieb:

    ...
    ...Für mich läuft "mit C++ programmieren" meistens darauf hinaus, dass ich viel Zeit mit dem Debugging verbringe. Wenn ich mit Java programmiere, dann läuft das darauf hinaus, dass ich die meiste Zeit programmiere....

    Schau an... wenn ich C++ programmiere, dann verbringe 2 Stunden damit, Compilefehler zu beheben ... und danach läuft mein Programm und tut, was es soll.
    Wenn ich Java programmiere, compiliert der erste Versuch gleich durch und ich bin 2 Wochen mit Testen und Korrigieren beschäftigt. 😉

    BTW: Schonmal einen Treiber in Java programmiert ?
    Wer "die Macht" haben will, darf sich nicht darüber beschweren, dass sie ihm zu stark sei. 😉
    Es ist schon lustig (wenn auch verständlich), dass Javaprogrammierer immer wieder durch die "Spanne an Möglichkeiten", die C++ bietet, irritiert sind. Einerseits auf rohem Speicher rumfrickeln, andererseits generische typsichere Programmierung .... sich da für das rechte Maß zu entscheiden ist natürlich schwierig.

    Gruß,

    Simon2.



  • BTW: Schonmal einen Treiber in Java programmiert ?

    Würde nicht unbedingt den Satz "die richtige Sprache für die richtige Aufgabe" erfüllen. Weil du aber von der Macht von C++ sprichst: Genauso ist es dann ja falsch für eine kleine WebApp die Fliege mit der Kanone zu erschießen?!

    MfG SideWinder



  • SideWinder schrieb:

    [...Genauso ist es dann ja falsch für eine kleine WebApp die Fliege mit der Kanone zu erschießen?!

    MfG SideWinder

    Ich weiß nicht welche Kanone Du meinst (und mit dem Bild "Fliege/Kanone" definierst Du ja schon die einzig richtige Antwort), aber für "eine kleine WebApp" würde ich mir definitiv die aktuelle Toollandschaft (Java, PHP, ...) vorurteilsfrei ansehen.

    Im Umfeld "kleine WebApp" ist Java entstanden und da hat es (zu Recht) seine größte Verbreitung gefunden ... leider verstellt das manchem Javaentwickler die Sicht darauf, dass "kleine WebApp" beileibe nicht das einzige Anwendungsfeld von Programmiersprachen ist. Und bedauerlicherweise entwickelt sich da dann auch die Ignoranz für die Grenzen des eigenen Horizonts bzgl. Programmiertechniken, -feldern und -sprachen.

    Ich habe gar kein Problem mit Java - unsere Firma ist vor einigen Jahren strategisch auf Java umgestiegen und ich halte diese Entscheidung für absolut richtig. Trotzdem werden verschiedene Projekte bei uns in C++, C, Cobol, ASM, .... entwickelt - eben solche, für die eine andere Sprache/Umgebung/... sinnvoller sind.
    Lediglich den Absolutheitsanspruch einer Sprache kann ich nicht teilen.

    Gruß,

    Simon2.

    P.S.: Es gibt einige Dinge an Java, die ich bei C++ vermisse oder zumindestens gute Ideen finde (strenge excep-spec., Vererbungsverbot via final, ....) andere wiederum schätze ich an C++....



  • 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.



  • In diesem Thread scheints aber eher um den Absolutheitsanspruch von C++ zu gehen. Und dieser ist genauso einfach nur falsch und aus wirtscahftlichen Gründen absolut nicht zu empfehlen.

    BTW: Derzeit ist Java eher im Enterprise-Web-Markt unterwegs als bei "kleinen WebApps". 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



  • 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...


Anmelden zum Antworten