Spart Rust bei der Entwicklung einer neuen Software Zeit gegenüber >= C++11 ?



  • Ich benötige:

    1. Eine Sprache, die sich für die Systemprogrammierung eignet.
    2. Eine Sprache, die sich für Multithreading Anwendungen und somit Mehrkernprozessoren sehr gut eignet.
    3. Eine Sprache, die beim Coden, bei der Bugsuche und beim Testen Zeit spart. (Der Punkt ist wichtig, ich habe kein großes Team hinter mir)
    4. Eine Sprache, für die es Compiler gibt, die performante Binaries erzeugen.
    5. Eine Sprache, die man an C Bibliotheken anbinden kann.

    Erfüllt diese Punkte Rust besser als C++?
    Falls nur ein Teilbereich der genannten Punkte besser erfüllt wird, welche wären das?



  • Es geht nicht so sehr um die Sprache, sondern um die Toolchain, Bibliotheken, Community... Und da hinkt Rust sehr stark hinterher und wird vermutlich wie tausende andere Sprachen eben daran scheitern.



  • Bezügl. der Toolchain:
    Irgendeine IDE mit Debugger wird sich doch sicher finden lassen, die Rust unterstützt.
    Als Compiler dachte ich vorerst an LLVM.
    git ist unabhängig von Rust.
    Unterstützend zum Bauen nehme ich bei C++ und C normalerweise cmake, wie das bei Rust aussieht und was da gängig ist, weiß ich nicht.

    Bezügl. der Bibliotheken:
    Wegen den Bibliotheken ist mir eine gute C Anbindung wichtig.
    Ich benötige libssh, libjpeg, libpng, zlib, OpenGL, Vulkan, libvorbis, sowie eventuell noch Lua oder JavaScript und SQLite.
    Vielleicht auch weniger, falls die Core Libs von Rust entsprechende ausgereifte Alternativen bieten, ist mir das auch recht.

    Zur Community:
    Dieser Aspekt ist meiner Meinung nach nur seitens der Zukunftsfähigkeit von Rust wichtig, aber ich denke, wenn Mozilla hinter Rust steht, dann wird das noch viele Jahre gefördert und gepflegt werden.
    Bei Rückfragen ist eher die Qualität der Community wichtig und nicht ihre Größe und früher, in den 90ern, musste man sogar ohne Internetanbindung auskommen. Deswegen sehe ich das jetzt nicht so als Problem an.

    Wenn wir diese Punkte also als ausreichend erfüllt ansehen können, welche Stärken hat dann Rust gegenüber C++ als Sprache?



  • Ich bin kein Rust Fan, deswegen können meine Antworten durchaus etwas einseitig sein.

    Bei Punkt 2 und 3 könnte Rust gegenüber C++ gewisse Vorteile haben. Jedoch seh ich das als ziemlich relativ an. Wenn man sauberes, modernes C++ programmiert, sind die Unterschiede nicht groß. Dem gegenüber steht "Irgendeine IDE mit Debugger wird sich doch sicher finden lassen" auf der einen Seite, und sehr gute IDEs mit sehr guten Debuggern auf der anderen Seite. Und ich persönlich debugge sehr viel, ich finde diese Aspekt sehr wichtig. Ich finde das viel wichtiger, als ein Sprachfeature, das mir vielleicht 2 Bugs pro Jahr erspart, die ich in C++ übersehen hätte.
    Was bei mir hauptsächlich noch dazu kommt... Viel Erfahrung mit C++, und Rust gefällt mir als Sprache einfach nicht. Auch deswegen interessiert mich Rust einfach nicht weiter und ich werds auch nicht weiterempfehlen. Das ist aber wie gesagt subjektiv.



  • Wenn jemand kommt und Frag ob Sprache X sein Problem besser löst als Sprache Y kann man nur Antworten: bleib wenigstens bei der Sprache die du kennst und hoffentlich kannst, die Frage an sich ist schon sehr befremndlich

    für ein neues Projekt mit einem kleinen Team eine neue, dir (scheinbar) unbekannte Sprache zu nutzen ist eine höchst naive Strategie, denkst du wirklich das die tollen neuen Sprachen-Features deine Unerfahrenheit damit dann so einfach neutralisieren?

    Der Fragenkatalog ist nicht falsch aber die Hoffnung dahinter wirkt leicht naiv



  • Als Compiler dachte ich vorerst an LLVM.

    wie kommst du darauf das du frei wählen kannst?

    btw: ist LLVM kein Kompiler sondern z.B.
    clang oder rustc sind Kompiler die eben auf LLVM basieren

    git ist unabhängig von Rust.

    wie lautet die Frage zu dieser komischen Antwort?



  • Radioaktive Zahnpasten gab es genug. Klingt gut und schluessig, wenn man keine Erfahrungen hat, WEIL man keine erfahrungen hat. Die chancen sind aber groesser, dass die revolutionaere idee widerlegt wird, als dass es diese eine Idee ist, die tatsaechlich auch revolutionaer ist. So ist es mit all den neuen Sprachen. Wer umsteigt bzw neue projekte damit anfaengt, dem sollte es bewust sein, dass es ein experiment ist und er seine Zaehne riskiert.

    Konkret auf die Zeit bezogen: Umstellung kostet immer Zeit. Die frage ist also, gibt es etwas, was soviel Zeit bei Rust einspart, dass sich der extra Aufwand lohnt? Und diese Frage sollte nicht theoretisch oder basierend auf gefuehlen beantwortet werden, denn das haben Java, Ocalm, Delphi,... -Marketingleute zugenuege getan. Nur ein unabhaengiges Projekt das umstieg und jetzt quantitativ beweist, dass es Zeit spart, ist ein Argument. -> Frage beantwortet.

    Willst du trotzdem umsteigen? -> Experimentelles umsteigen ist sehr Riskant, geht davon aus, dass es aus vielerlei hinsicht schiefgehen kann. Das ist kein Problem von Rust, das passiert dir auch wenn du die UI library wechselst, die audio library, video codec, selbst ein treiberwechsel ist ein risiko. Hast du also den Luxus der Zeit um im nicht unwahrscheinlichen falle von Problemen zurueck auf deine stammsprache zu rudern? dann versuch es.

    3. Eine Sprache, die beim Coden, bei der Bugsuche und beim Testen Zeit spart. (Der Punkt ist wichtig, ich habe kein großes Team hinter mir)

    Das wichtigste dabei ist: gute, verlaessliche tools
    - debugger mit dem du dich gut auskennst
    - life coding/hot reloading
    - inspector tools fuer dein gebiet (ich z.B., als rendering programmierer, nutze Pix, renderdoc, RGP, Visual Profiler, usw. was theoretisch alles sprachagnostisch ist, am ende aber oft c++ bindings vorhanden sind.)



  • Ich hoff mal du hast auch Kontakte zur Rust-Community und lässt dich nicht ausschließlich von der direkten Konkurrenz beraten 😃



  • Gast3 schrieb:

    für ein neues Projekt mit einem kleinen Team eine neue, dir (scheinbar) unbekannte Sprache zu nutzen ist eine höchst naive Strategie, denkst du wirklich das die tollen neuen Sprachen-Features deine Unerfahrenheit damit dann so einfach neutralisieren?

    Rust ist kein C++, für welches man Jahre benötigt. Außerdem wäre es nur ein Wechsel von C++ nach Rust.

    Siehe dazu folgende Aussage von Entwicklern, die Rust verwendet haben:

    According to our experience, it takes about 1 month for a software engineer to code in Rust from zero experience.

    Quelle:
    https://pingcap.github.io/blog/2017/09/26/whyrust/



  • Rust ist kein C++, für welches man Jahre benötigt.

    hat auch niemand gesagt - aber es ist nicht nur die Sprache sondern auch die Toolchain - und die Performanz deiner Teammitglieder, wenn es ein bezahltes Projekt ist würde ich auf dir bekanntes (C++) setzen, ist es ein Hobby-Projekt ist sind deine Fragen leichtens auf der Rust-Seite beantwortbar und es ist eher dein Interesse es zu tun oder nicht, aufhalten wird dich da keine Sprache

    und deine sinnfreie Aussage: "Als Compiler dachte ich vorerst an LLVM" lässt dich nicht so erfahren wirken + dieser Fragekatalog mit leichtem "Wird alles besser wenn ich Rust nutze"-Geschmack, als Sahnehäubchen noch das "git ist unabhängig von Rust"... egal was das Aussagen soll - als wenn das jemand nicht wissen würde oder git nicht schon seit Jahren die scm-Standardwahl ist

    Außerdem wäre es nur ein Wechsel von C++ nach Rust.

    wenn du Spass und die Zeit hast zieh dir die Sprache rein, wenn nicht dann nicht - deine Fragenkatalog erfüllt Rust

    erwarte aber einfach keine Wunder oder spielend leichte Umsetzung



  • Mechanics schrieb:

    Ich bin kein Rust Fan, deswegen können meine Antworten durchaus etwas einseitig sein.

    Ich fürchte, Du hast Dir nicht mal die Chance gegeben, Rust zu mögen.

    Mechanics schrieb:

    Wenn man sauberes, modernes C++ programmiert, sind die Unterschiede nicht groß.

    Das sehe ich ganz anders. Es gibt zig Unterschiede, die in der Summe das Programmieren in Rust sehr angenehm machen. Das sind Welten.

    Mechanics schrieb:

    Dem gegenüber steht "Irgendeine IDE mit Debugger wird sich doch sicher finden lassen" auf der einen Seite, und sehr gute IDEs mit sehr guten Debuggern auf der anderen Seite. Und ich persönlich debugge sehr viel, ich finde diese Aspekt sehr wichtig.

    Ich debugge so gut wie gar nicht. Aber zumindest in der Linux-Welt nimmt sich das nichts. Du kannst auch den GDB für Rust benutzen mit den bekannten graphischen Front-Ends.

    Mechanics schrieb:

    Was bei mir hauptsächlich noch dazu kommt... Viel Erfahrung mit C++, und Rust gefällt mir als Sprache einfach nicht. Auch deswegen interessiert mich Rust einfach nicht weiter und ich werds auch nicht weiterempfehlen. Das ist aber wie gesagt subjektiv.

    *schulter-zuck*
    Ich habe auch viel Erfahrung in C++. Das hat mich aber nicht davon abgehalten, Rust zu lernen und zu benutzen.

    Apropos Tooling & Ökosystem, hör hier mal rein:
    http://cppcast.com/2017/10/isabella-muerte/



  • Eine neue Programmiersprache zu lernen ist doch nie das Problem. Der Wechsel fällt dann meistens schwer, weil man sich erstmal wieder in das Ökosystem einarbeiten muss. Und das hindert einen überhaupt schnell Ergebnisse zu erziehlen.



  • krümelkacker schrieb:

    Mechanics schrieb:

    Ich bin kein Rust Fan, deswegen können meine Antworten durchaus etwas einseitig sein.

    Ich fürchte, Du hast Dir nicht mal die Chance gegeben, Rust zu mögen.

    Wie man´s nimmt, das kann ich nicht objektiv beantworten. Ich hielt die Sprache für interessant und wichtig genug, sie mir mal kurz genauer anzuschauen. Ich hab privat ein kleines Projekt damit angefangen, wo mir noch egal war, ob das C++ oder Rust sein wird. Und das hat mich alles nicht überzeugt und hat mir auch nicht gefallen, angefangen bei der Syntax. Viel Zeit hab ich nicht investiert, aber für meine Verhältnisse würde ich sagen, ich hab der Sprache eine Change gegeben.
    Das muss jetzt aber auch nichts heißen. Wenn ich mal den Arbeitgeber wechsel und mein neuer Arbeitgeber macht ein interessantes Projekt in Rust, kann ich mir durchaus vorstellen, dass ich mich an die Sprache gewöhnen und sie mögen und schätzen würde. Aber bis dahin hab ich Rust ad acta gelegt.



  • Mechanics schrieb:

    Ich hielt die Sprache für interessant und wichtig genug, sie mir mal kurz genauer anzuschauen. Ich hab privat ein kleines Projekt damit angefangen, wo mir noch egal war, ob das C++ oder Rust sein wird.

    👍 🙂

    Mechanics schrieb:

    Und das hat mich alles nicht überzeugt und hat mir auch nicht gefallen, angefangen bei der Syntax.

    Hmm... mag sein, dass ich da jetzt unbewusst Dinge ausblende, aber...im Vergleich zu C++ ist doch die Rust-Syntax irgendwo zwischen harmlos und ähnlich. Und die Syntax wäre jetzt eines der letzten Dinge, die mir bei Rust gegenüber C++ positiv auffällt.



  • Witzig, dass gerade die Toolchain erwähnt wird. Finde ich die bei Rust doch deutlich angenehmer. Angefangen vom Buildtool, Packetmanager, Dokumentation des eigenen Codes (selbst die eigene Dokumentation kann automatisiert getestet werden), Unit-Testing, Benchmark-Testing etc. Alles besser im Rust-Ökosystem gelöst, das auch so out of the box ausgeliefert wird.


Log in to reply