Scala und c++



  • GPC schrieb:

    Shade Of Mine schrieb:

    Der Punkt ist: Realtime mit Java funktioniert.
    Q.E.D.

    Kann schon sein, aber würdest du dir das echt geben? Hört sich ehrlich gesagt nicht gerade nach "The right tool for the right job" an.

    Kommt auf die Situation an.
    Das ist ja nicht irgendeine nicht supportete Open Source VM sondern da steht ja eine Firma dahinter. Wenn ich also, aus welchem Grund auch immer, Java verwenden will - dann ist das sicher eine gute Wahl.

    Ich kenne mich in diesem Industrie Sektor wenig aus - aber viel Software wird in Java geschrieben - dh dort ist das Know How und die Entwickler. Also warum nicht auch den Realtime Bereich mit dem Firmen Know How abdecken?



  • Zeus schrieb:

    Xin schrieb:

    http://www.proggen.org/doku.php?id=start:cppjava

    *Kopfschütteln* Stellt sich als Profi hin, schreibt wie ein Amateur. Sachliche Kritik an Systemdesign zwischen C++ und Java würde angemessen sein, aber nicht diesen Bullshit.

    Die URL lautet proggen.org, was hast du denn da erwartet 😕 🙄



  • GPC schrieb:

    Shade Of Mine schrieb:

    Der Punkt ist: Realtime mit Java funktioniert.
    Q.E.D.

    Kann schon sein, aber würdest du dir das echt geben? Hört sich ehrlich gesagt nicht gerade nach "The right tool for the right job" an.

    Das spielt bei den Diskussionen hier häufig keine Rolle.
    "Q.E.D." ist wichtig, auch wenn es hier nirgendwo darum ging irgendwas zu beweisen oder zu widerlegen.

    Und Shade Of Mine hat schon recht... Realtime mit Java funktioniert. ((Solange man halt nicht sehen will, dass Folgeprobleme mit sich bringt, die im Notfall auch sehenden Auges Menschenleben kosten können))
    Alles andere ist unwichtig.

    Q.E.D.

    Shade Of Mine schrieb:

    Da ist doch nur Bla bla.

    Auch das ist eine persönliche Meinung, die selbstverständlich Dein Recht ist. Dass ich häufig nur "Bla bla" rede, höre ich auch von anderen. Und es zeigt sich regelmäßig, dass meine Bedenken am Ende nicht nur "Bla bla" waren, sondern eine ziemlich gute Einschätzung der Situation.
    Darunter gehört auch, einen GC scheitern zu sehen. Es kann für ein Projekt unpraktisch sein, wenn der GC Daten löscht, die man eigentlich noch braucht. Auch das spricht gegen die Nutzung eines GCs oder wenigstens für die Nutzung eines sehr gut getesteten GCs.

    Mir erklärt man, dass ich nur "Bla bla" rede und fährt dann eben wissend ein Projekt gegen die Wand. Aber nachdem die Situation geklärt ist, ist das nicht mehr mein Problem.

    Mir scheint, unser beider Situation ist schon seit einigen Postings geklärt, von daher... 🙂

    Shade Of Mine schrieb:

    Das ist ja nicht irgendeine nicht supportete Open Source VM sondern da steht ja eine Firma dahinter.

    Der GC, der in dem Projekt scheiterte, stammte von einer unbedeutenden Firma, die auch Betriebsysteme verkauft.

    Shade Of Mine schrieb:

    Ich kenne mich in diesem Industrie Sektor wenig aus - aber viel Software wird in Java geschrieben - dh dort ist das Know How und die Entwickler. Also warum nicht auch den Realtime Bereich mit dem Firmen Know How abdecken?

    Die Antwort hast Du bereits als "Bla bla" zusammengefasst. Vielleicht noch mal ansehen.

    gasssssssst schrieb:

    Die URL lautet proggen.org, was hast du denn da erwartet 😕 🙄

    :->

    Schau Dich mal im Domainmarkt um und was Domainnamen so kosten. ^^
    proggen.org könnte ich mir heute nicht mehr leisten, von daher bin ich froh, dass ich sie bekommen habe. 🙂



  • ok danke.

    Ich denke ich werde nie realtime Anwendungen schreiben, jedenfalls nicht in nächster Zeit, deswegen bleibe ich jetzt erst einmal bei Scala.



  • kantaki schrieb:

    ok danke.

    Ich denke ich werde nie realtime Anwendungen schreiben, jedenfalls nicht in nächster Zeit, deswegen bleibe ich jetzt erst einmal bei Scala.

    scala ist schon okay. der fette twitter wal wird davon ja auch angehoben 🤡 ...



  • Shade Of Mine schrieb:

    GPC schrieb:

    Shade Of Mine schrieb:

    Der Punkt ist: Realtime mit Java funktioniert.
    Q.E.D.

    Kann schon sein, aber würdest du dir das echt geben? Hört sich ehrlich gesagt nicht gerade nach "The right tool for the right job" an.

    Kommt auf die Situation an.
    Das ist ja nicht irgendeine nicht supportete Open Source VM sondern da steht ja eine Firma dahinter. Wenn ich also, aus welchem Grund auch immer, Java verwenden will - dann ist das sicher eine gute Wahl.

    Ich kenne mich in diesem Industrie Sektor wenig aus - aber viel Software wird in Java geschrieben - dh dort ist das Know How und die Entwickler. Also warum nicht auch den Realtime Bereich mit dem Firmen Know How abdecken?

    Klar, das ist prinzipiell schon richtig. Aber die GC-Probleme erscheinen mir nur aufgeschoben, nicht aufgehoben. Keine Ahnung wie diese VM das macht, aber irgendwann muss der GC halt mal laufen, damit er nicht dauerhaft oder in kritischen Situationen am unteren Speicherlimit rumgrindet. Ich habe noch nie real-time entwickelt, aber tendentiell denke ich, dass das kritische Anwendungen sind und das heißt für mich, dass ich als Entwickler die möglichst hohe Kontrolle über die Abläufe haben will.

    Ich finde GCs ansonsten schon ganz cool - aber ich programmiere halt auch Desktopanwendungen. Und ich würde auch keine Webprogrammierung mit C++ machen, insofern 🙂





  • Der Artikel wertet ja nicht wirklich. Er sagt, es geht, aber begründet das nicht.



  • kantaki schrieb:

    Ich denke ich werde nie realtime Anwendungen schreiben, jedenfalls nicht in nächster Zeit, deswegen bleibe ich jetzt erst einmal bei Scala.

    Ich halte C++ für ratsamer, aber ich halte Scala auch nicht für einen Fehler. Das kannst Du wohl mit gutem Gewissen tun.

    GPC schrieb:

    Ich finde GCs ansonsten schon ganz cool - aber ich programmiere halt auch Desktopanwendungen. Und ich würde auch keine Webprogrammierung mit C++ machen, insofern 🙂

    Läuft inzwischen ganz schnuckelig, kann ich inzwischen eigentlich nur empfehlen. 🙂

    Zeus schrieb:

    http://www.tutego.de/blog/javainsel/2011/03/inselupdate-echtzeit-java-real-time-java/

    Übliches - durchaus funktionierendes - Realtime-Java entfernt den GC. Aber warum programmiere ich dann Java!?



  • Xin schrieb:

    Übliches - durchaus funktionierendes - Realtime-Java entfernt den GC. Aber warum programmiere ich dann Java!?

    Weil man auf Schmerzen steht? 🤡



  • Xin schrieb:

    Zeus schrieb:

    http://www.tutego.de/blog/javainsel/2011/03/inselupdate-echtzeit-java-real-time-java/

    Übliches - durchaus funktionierendes - Realtime-Java entfernt den GC. Aber warum programmiere ich dann Java!?

    Lern lesen und lern denken, in den Artikel steht dass RT-Java Scoped Memory eingeführt hat, da steht nicht das der GC weggefallen ist, und dort wird die Spezifikation erwähnt und eine Implementierung die JamaicaVM, und schon durch ersten verlinkten Artikel, wissen wir das sie ein modifizierten GC hat, also ScopedMem + GC. Überhaupt mach es kein Sinn mit dir darüber zu argumentieren. Du scheinst dich in dein Know-How zu verbeissen, obwohl du nicht mal dich um den aktuellen Entwicklungsstand informierst, ziehst großzügig Argumentation bei den Wolken her. Nein, warum du überhaupt RT-Java programmieren sollst, hab ich überhaupt keine Arhnung.



  • kantaki schrieb:

    ok danke.

    Ich denke ich werde nie realtime Anwendungen schreiben, jedenfalls nicht in nächster Zeit, deswegen bleibe ich jetzt erst einmal bei Scala.

    Und ich ziehe Clojure vor.



  • Xin schrieb:

    GPC schrieb:

    Ich finde GCs ansonsten schon ganz cool - aber ich programmiere halt auch Desktopanwendungen. Und ich würde auch keine Webprogrammierung mit C++ machen, insofern 🙂

    Läuft inzwischen ganz schnuckelig, kann ich inzwischen eigentlich nur empfehlen. 🙂

    Kennst Du eigentlich http://www.tntnet.org/?



  • ich bins schrieb:

    Xin schrieb:

    GPC schrieb:

    Ich finde GCs ansonsten schon ganz cool - aber ich programmiere halt auch Desktopanwendungen. Und ich würde auch keine Webprogrammierung mit C++ machen, insofern 🙂

    Läuft inzwischen ganz schnuckelig, kann ich inzwischen eigentlich nur empfehlen. 🙂

    Kennst Du eigentlich http://www.tntnet.org/?

    Nein, kenne ich nicht.

    Ich habe mir eine cgi-lib angesehen und bin zu dem Schluss gekommen, dass es einfacher und schneller ist, selbst den Webservice zu schreiben, der direkt mein vorhandenes Framework anspricht, als einen Wrapper um Vorhandenes.
    Das erspart mir zum einen die Abhängigkeit von einer anderen Lib, zum anderen muss ich mich nicht in die Lib erst einarbeiten.
    Ein Webservice ist eine vergleichsweise überschaubare Sache.

    Zeus schrieb:

    Xin schrieb:

    Zeus schrieb:

    http://www.tutego.de/blog/javainsel/2011/03/inselupdate-echtzeit-java-real-time-java/

    Übliches - durchaus funktionierendes - Realtime-Java entfernt den GC. Aber warum programmiere ich dann Java!?

    Lern lesen und lern denken, ... Überhaupt mach es kein Sinn mit dir darüber zu argumentieren. Du scheinst dich in dein Know-How zu verbeissen, obwohl du nicht mal dich um den aktuellen Entwicklungsstand informierst, ziehst großzügig Argumentation bei den Wolken her.

    Liebelein, 50% Deines Textes sind - um das freundlich zu formulieren - sehr unhöflich formuliert. Du lässt Dich ausführlich darüber aus, wie ich scheinbar zu sein habe.

    Wo allerdings vollkommen richtig liegst ist, dass ich mich bei Java nicht um den aktuellen Entwicklungsstand kümmere, denn es ergibt keinen Sinn bei Java auf dem aktuellen Entwicklungsstand zu sein. Java frickelt seit Jahren - inzwischen Jahrzehnten - das nach, was in C++ bereits problemlos machbar war, als Java noch Oak hieß und für das Java-Konzept heute monströsen Aufwand bedeutet. Mir ist ehrlich gesagt sowas von egal, ob es eine JamaicaVM gibt. Ich programmiere C++, ich habe überhaupt nicht das Problem, dass ich mit aktuellen Java-Entwicklungen lösen müsste.
    Wenn ich also aktuelle Entwicklungen sehen will, dann schaue ich bestimmt nicht zu Java.

    Wenn ein Konzept einen Riesenaufwand machen muss, um gegen ein einfaches Konzept anzustinken, dann muss man sich halt irgendwann fragen, welches Konzept sinnvoller ist.
    Die Frage bleibt also: Warum sollte ich Java programmieren?

    Zeus schrieb:

    in den Artikel steht dass RT-Java Scoped Memory eingeführt hat,

    Uiii, toll... das sind also "aktuelle Entwicklungen" bei Java? Du bist kein Java-Entwickler schriebst Du... Du bist Comedian? Du hast zumindest Talent. 😉

    Und jetzt die Masterfrage: Warum machen die sowas wohl...?



  • ich werde mich in nächster zeit auf webdevelopment fokussieren und ich denke da hat scala einen vorteil.

    Naja ich werde C++ dann auch irgentwann anfangen zu lernen, mal schauen wie die sprache mit dann gefällt.

    Danke



  • machs lieber in php/python/rails o.ä. wenn es dann 'besucher' hat und zu langsam wird, kann man es noch immer 'scala'.

    ich hab den fehler gemacht und es im gegensatz zu den letzten projekten nicht in php gemacht (wo es mir relativ leicht von der hand geht). aus meiner erfahrung kann ich dir sagen, dass die entwicklung absolut unwirtschaftlich ist und wenn ich fertig bin, das teil aller voraussicht nach schon so überholt ist, das sich keiner dafür interessieren wird. aber einmal kann ich mir das schon leisten 😋

    man darf auch nicht vergessen, dass ich da keinen anderen dran lassen kann, weil er mich hassen und im anschluß töten wird 😞

    um es ohne bla bla auf den punkt zu bringen, verwende eine sprache die dir leicht fällt, du schnell vorwärts kommst und ein gute/große auf webentwicklung ausgerichtete library hat.



  • kantaki schrieb:

    Naja ich werde C++ dann auch irgentwann anfangen zu lernen, mal schauen wie die sprache mit dann gefällt.

    Hmm... joah, wie könnte das wohl aussehen...

    Du wirst sie hassen, weil sie kompliziert ist und fehleranfällig und außerdem hat sie viel zu viel Boilerplate, außerdem funktioniert alles ganz anders als Du es gewohnt bist und für richtig empfindest und Du wirst damit nicht nur recht haben, Du wirst auch aufhören sie zu lernen, lange bevor Du verstehst, was sie eigentlich auszeichnet und warum es den Aufwand trotzdem wert ist.

    PS: irgenDwann... scnr



  • Xin schrieb:

    kantaki schrieb:

    Naja ich werde C++ dann auch irgentwann anfangen zu lernen, mal schauen wie die sprache mit dann gefällt.

    Hmm... joah, wie könnte das wohl aussehen...

    Du wirst sie hassen, weil sie kompliziert ist und fehleranfällig und außerdem hat sie viel zu viel Boilerplate, außerdem funktioniert alles ganz anders als Du es gewohnt bist und für richtig empfindest und Du wirst damit nicht nur recht haben, Du wirst auch aufhören sie zu lernen, lange bevor Du verstehst, was sie eigentlich auszeichnet und warum es den Aufwand trotzdem wert ist.

    PS: irgenDwann... scnr

    Was zeichnet C++ denn aus? Warum C++ anstatt zB Scala?

    ps: In c++11 kamen ja Threads für Concurrency. Wie schwer ist es in c++ concurrent zu programmieren?



  • kantaki schrieb:

    Was zeichnet C++ denn aus? Warum C++ anstatt zB Scala?

    Ich schichte Dir bereits einen entsprechenden Link.

    Ich halte C++ für die derzeit ausgefeilteste Sprache für große und sehr Projekte. Darum - und nur darum - mache ich Webentwicklung in C++. Für eine Seite mit zwei, drei Funktionen würde ich das auch nicht tun.

    Es gibt einige Dinge, die - imho - für C++ sprechen. Es beginnt damit, dass C++ zu den Mainstream-Sprachen gehört und Scala eben nicht: Es ist durchaus von Vorteil, wenn man mit der Masse der Entwickler zusammenarbeiten kann. Ausgefallenere Sprachen, wie Scala, sind hier eher ein Bonus, selten die Grundvoraussetzung.

    C++ ist, wie soll man das beschreiben, eine grundsätzliche Sprache. Ein Fundament. Es gibt keinen Putz an den Wänden, man muss die Toilette selbst mit dem Eimer spülen, es ist eben nicht "schick". Aber Du kannst alles selbst sehen, begreifen, Einfluss nehmen und ausprobieren. Du kannst lernen, aus diesem scheinbaren Rohbau, ein Zuhause zu machen und Du bekommst dafür qualitatives Werkzeug an die Hand. Vor allem - und das halte ich für das wichtigste - Du lernst, was nicht geht. Dynamit sieht cool aus, ist aber meistens unpraktisch beim Häuserbau. Pointerarithmetik wäre so ein Dynamit. In C++ darfst Du damit spielen. Du musst nicht, aber wenn Du es mal eilig hast, ein Haus umzubauen, ist Pointerarithmetik das schnellste Mittel mal ein paar Wände zu versetzen - wenn man damit umgehen kann. In vielen anderen Sprachen ist Pointerarithmetik verboten, da gefährlich. Wenn Du Sprengmeister werden willst, wenn Du wirklich lernen willst, dann ist C++ Dein Spielplatz. Du lernst was nicht geht, weil das Programm explodiert - nicht weil das die Sprache es Dir verbietet.

    Wenn Du lernen willst, halte ich selbst Anzupacken für richtig, wenn Du alles selbst machen kannst, kannst Du auf Hilfswerkzeuge wie Java oder Scala umsteigen, die Dir Arbeit abnehmen. Du verstehst, aber welche Arbeiten diese Sprachen Dir abnehmen und was das für Deine Programmierung bedeutet. Und wenn das so nicht passt, kannst Du eine richtige Lösung in C++ formulieren, statt einen Workaround in Java oder C#.

    Wenn Du von C++ kommst, wirst Du Sprachen ohne Const-Correctness hassen. Genauso wie Dir Sprachen mit ausschließlich konstanten Objekten zuwider sind. Du wirst Templates Bauen, die Templates bauen, Du wirst Dir einen eigenen Werkzeugkasten mit Werkzeug füllen und Dich daraus wie aus einer Legobox bedienen und Dir über Mehrfachvererbung und generischen Typen in fünf Zeilen die Lösung für Dein Problem typsicher und ohne weiteren Implementierungsbedarf generieren lassen.

    Du fängst in einem dreckigen Rohbau an, aber Deine Werkzeuge arbeiten zuverlässig mit, wenn Du ein Hochhaus baust, die semantische Analyse des C++ Compilers hilft Dir, nachdem Du verstanden hast, Const-Correctness, Mehrfachvererbung und Templates richtig einzusetzen, den Überblick über sehr große Projekte zu behalten. Das lernt man nicht in Sprachen, die diese Konzepte nicht unterstützen.

    Ich zitiere dazu gerne Benjamin Lee Whorf: "Language shapes the way we think, and determines what we can think about."

    Ich lerne Scala als Bonus und ich werde Dich auf keinen Fall davon abhalten, Scala zu lernen - zumal ich von Scala nicht genug Ahnung habe, das überhaupt sinnvoll zu begründen. Der wichtigste Grund ist eben: Lerne von der Pike auf, wenn Du begreifen willst, was Du tust und was es bedeutet irgendwas zu tun. C++ tut nichts, ohne dass Du es explizit forderst. Damit lernst Du eben zu erkennen, was für eine Anweisung gefordert ist - auch in Sprachen, die diese Dinge implizit für Dich erledigen, ohne dass Du es bewusst mitbekommst.
    Die Programmiersprache bestimmt auch, was du als Programm formulieren und damit denken kannst. Und hier setzt Dir C++ kaum Grenzen, die über die Beschränkung der Maschine hinausgehen.

    Du kannst in C++ alles gestalten, was Du in Scala formulieren kannst. Eventuell musst Du mehr tippen, aber Du kannst jederzeit auch auf Werkzeuge wechseln, die Dir in Scala gar nicht angeboten werden.

    kantaki schrieb:

    ps: In c++11 kamen ja Threads für Concurrency. Wie schwer ist es in c++ concurrent zu programmieren?

    Habe ich in C++11 noch nicht ausprobiert, auch sonst habe ich das Problem bisher kaum. Eine qualifizierte Antwort kann ich Dir also nicht geben.
    Es gibt sicherlich Sprachen, die besser sind als C++ vor C++11, das bezweifle ich nicht entferntesten. Ob C++11 hier 'gut' ist, weiß ich nicht.

    Mein Webservice forkt derzeit einfach, das Verhalten ist definitiv nicht optimal, aber schnell implementiert, keine 10 Zeilen. Ich würde das als "einfach" bezeichnen. Hier müssen aber auch keine Ergebnisse wieder zusammengeführt werden. Da müsstest Du mich fragen, wenn ich an dieser Baustelle das aktuelle Provisorium abreiße.



  • Ich halte C++ für die derzeit ausgefeilteste Sprache für große und sehr Projekte. Darum - und nur darum - mache ich Webentwicklung in C++. Für eine Seite mit zwei, drei Funktionen würde ich das auch nicht tun.

    Ach, und wieviele Sprachen kennst du? Schon vergleichbares ich Scheme, Lisp oder Clojure probiert?

    Du lernst, was nicht geht.

    Was geht denn nicht?

    Wenn Du lernen willst, halte ich selbst Anzupacken für richtig

    Und was ist mit C oder gar ASM?

    Wenn Du von C++ kommst, wirst Du Sprachen ohne Const-Correctness hassen

    Nein, ich hasse C nicht. So emotional gehe ich da nicht heran.

    "Language shapes the way we think, and determines what we can think about."

    Wieviel Sprachen kennst du und kannst du? Ach verdammt, ich drehe mich im Kreis.

    Verstehe mich nicht falsch, aber gegen fast jeden deiner Punkte koennen leicht Gegenargumente gefunden werden.

    In c++11 kamen ja Threads für Concurrency. Wie schwer ist es in c++ concurrent zu programmieren?

    Die Sprache nimmt dir das Denken nicht ab. Deswegen: Genauso schwer.


Anmelden zum Antworten