Die Vorteile von Rust verstehen

C++20
Rust ist mit seiner Garantie für Speichersicherheit eine vielversprechende Programmiersprache. Wenn Sie sich fragen, ob Sie Ihre Zeit in Rust investieren sollten, dann hat der Computerprogrammier-Enthusiast Kris van Rens eine sehr gezielte Schulung für Sie am High Tech Institute.

Rust, eine aufstrebende Programmiersprache, hat aufgrund ihres Versprechens einer garantierten Speichersicherheit bei vielen Unternehmen Aufmerksamkeit erregt. Natürlich gab es schon früher neue Programmiersprachen, und die Entscheidung für eine neue Sprache ist immer eine wichtige Entscheidung. Wenn Sie sich fragen, ob Rust eine nützliche Ergänzung für Ihre Softwareentwicklung sein könnte, hat der Programmierenthusiast Kris van Rens eine Schulung für Sie vorbereitet: „Exploring Rust“, organisiert vom High Tech Institute.

Van Rens vergleicht die Speichersicherheit von Rust mit Leitplanken: „Sie verhindert, dass sich Software-Ingenieure selbst in den Fuß schießen. Im Grunde tauscht man Freiheit gegen garantierte Sicherheit und vorhersehbares Verhalten.“ Gleichzeitig betrachtet er die ausdrucksstarke Syntax von Rust als eine seiner Stärken, die es zu einer attraktiven Sprache für die Arbeit macht. Ein dritter Vorteil, den er hervorhebt, ist der Compiler: „Er ist ein großartiger Begleiter beim Programmieren und gibt hervorragende Fehlermeldungen aus. Außerdem bietet er häufig Vorschläge für Korrekturen an, er ‚leitet‘ Sie buchstäblich an, während Sie arbeiten.

Produktionsfertige

Da Rust eine relativ junge Programmiersprache ist, stellt sich natürlich die Frage, ob sie für die Produktion geeignet ist. Laut Van Rens hängt die Antwort von der Anwendungsdomäne ab, aber im Allgemeinen würde er sie mit einem klaren Ja beantworten. „In der Tat setzen viele renommierte High-Tech-Softwareentwicklungsunternehmen Rust in der Produktion ein, zum Beispiel in der Anwendungs-, Cloud- und Webentwicklung.“

In eingeschränkteren Bereichen wie der eingebetteten Entwicklung ist die volle Unterstützung nicht immer gewährleistet, zum Teil weil dies von der Unterstützung durch den Hersteller des eingebetteten Geräts abhängt. Auch in Bereichen wie der Automobil- und Luftfahrtindustrie, die eine Softwarezertifizierung erfordern, kann Rust derzeit noch eine Herausforderung darstellen. Van Rens weist jedoch darauf hin, dass „das deutsche Unternehmen Ferrous Systems bereits eine Rust-Toolchain anbietet, die für den Einsatz in Umgebungen bereit ist, die eine ISO 26262-Zertifizierung für die Automobilindustrie erfordern. Die Bemühungen um andere Anforderungsstufen sind im Gange. Es ist nur eine Frage der Zeit.“

''My goal isn’t to deliver Rust experts but to provide participants with a comprehensive understanding of what makes the language different.''

Unterschiedliche Konzepte

Van Rens hält Rust nicht für schwieriger zu erlernen als fortgeschrittenes C oder C++. „Ja, C mag eine kleine Sprache sein, aber C oder C++ zu beherrschen, erfordert viele Jahre konzentrierter Arbeit und Disziplin. Vielleicht ist die Lernkurve für Rust am Anfang steiler, weil die Sprache an sich größer ist, aber langfristig macht das keinen Unterschied. Ich stoße oft auf Softwareentwicklungsunternehmen, die Artikel über ihre erfolgreiche Einführung von Rust veröffentlichen und erklären, dass die Sprache nicht besonders schwer zu lernen war.“

Ein Teil der steilen Lernkurve von Rust ist auf einige einzigartige Konzepte zurückzuführen, die in traditionellen Programmiersprachen wie C und C++ nicht vorkommen. Van Rens konzentriert sich in seiner Schulung auf diese Elemente und erwartet von den Teilnehmern, dass sie Softwareingenieure mit Erfahrung in der Systementwicklung sind. „Das ermöglicht es mir, Rust auf einem fortgeschrittenen, gründlichen Niveau einzuführen. Mein Ziel ist es nicht, Rust-Experten auszubilden, sondern den Teilnehmern ein umfassendes Verständnis dafür zu vermitteln, was diese Sprache auszeichnet. Das hilft ihnen bei der Entscheidung, ob sie ihre Zeit in Rust investieren sollten, und erleichtert ihnen die erfolgreiche Einführung der Sprache, wenn sie sich dafür entscheiden, es einmal zu versuchen.“

Aufgrund seines fokussierten Ansatzes erstreckt sich das „Exploring Rust“-Training über nur zwei halbe Tage innerhalb eines zweiwöchigen Zeitrahmens. „Ich steige sofort auf hohem Niveau ein und behandle die wichtigsten Themen in aller Ausführlichkeit. Ich verbringe etwa 30 Prozent der Zeit mit praktischen Übungen. Für diejenigen, die noch tiefer einsteigen wollen, gibt es ein paar größere Hausaufgaben.“

Dieser Artikel wurde von Koen Vervloesem geschrieben., freier Mitarbeiter bei Bits&Chips.

Ein tiefer Einblick in C++20

C++20
C++ hat sich im Laufe der Zeit stark weiterentwickelt. Softwareingenieure, die immer noch veraltete Paradigmen der Programmiersprache verwenden, schöpfen ihr Potenzial nicht voll aus. In seiner „C++ Grundlagen„-Schulung am High Tech Institute führt der Computerprogrammier-Enthusiast Kris van Rens in C++20 ein, einschließlich Themen wie Vorlagen und Bereiche.

Im Laufe der Jahre sind viele Programmiersprachen als Alternativen zu C++ vorgeschlagen worden. Dennoch hat C++ dadurch nicht an Bedeutung verloren, betont der Programmierfan Kris van Rens. „Es gibt Millionen von Zeilen C++-Code in der Produktion, und eine beträchtliche Anzahl von Ingenieuren in der Industrie ist in dieser beliebten Programmiersprache ausgebildet.“

Eine der Herausforderungen bei der Beherrschung von C++ ist der schiere Umfang der Sprache, stellt Van Rens fest. „C++ ist eine alte Sprache, die aufgrund der vielen neuen Funktionen, die sie im Laufe der Zeit erhalten hat, ziemlich umfangreich und relativ komplex geworden ist. Infolgedessen haben viele C++-Entwickler ihre Sprachkenntnisse bruchstückhaft aufgebaut, ohne einen klaren, umfassenden Überblick zu haben.“

Van Rens möchte in seinem 4-tägigen Schulungskurs „C++ Grundlagen“, der vom High Tech Institute organisiert wird, diese umfassende Sicht auf die Programmiersprache vermitteln. In dieser Schulung führt er Softwareingenieure aller Niveaus in die Grundlagen des modernen C++ ein, unabhängig davon, ob sie zum ersten Mal mit der Programmiersprache in Berührung kommen oder ihre Kenntnisse älterer C++-Versionen auffrischen wollen.

''Many books and online resources are still teaching older versions of C++, thereby restricting you from realizing the language’s potential to the fullest.''

Eine lebendige Sprache

Da sich C++ und seine Werkzeuge im Laufe der Zeit stark verändert haben, ist es leicht, sich mit veralteten Paradigmen zu beschäftigen. Van Rens mahnt: „Viele Bücher und Online-Ressourcen lehren immer noch ältere Versionen von C++ und hindern Sie so daran, das Potenzial der Sprache voll auszuschöpfen.“ C++ ist als Sprache immer noch sehr lebendig, denn alle drei Jahre erscheinen neue Versionen und mindestens alle sechs Jahre werden wichtige Funktionen aktualisiert. „Es liegt an den Softwareingenieuren und ihren Arbeitgebern, sich über die Änderungen der Sprache auf dem Laufenden zu halten und von den neuen Funktionen zu profitieren“, meint Van Rens.

Van Rens behandelt in seiner Schulung C++20, einschließlich leistungsstarker Themen wie Vorlagen und Bereiche. „Diese C++-Version von 2020 wird von den meisten aktuellen Toolchains vollständig unterstützt, und in industriellen Produktionsumgebungen ist ihre Einführung relativ neu. Vielleicht sind einige Teilnehmer der Schulung nicht in der Lage, C++20 direkt in ihrer Umgebung anzuwenden. Sie werden jedoch in der Lage sein, die potenziellen Verbesserungen und Änderungen zu erkennen, die C++20 für ihren Code mit sich bringen wird. Auf diese Weise werden sie hoffentlich in der Lage sein, zu einer zukünftigen Migration auf neuere C++-Versionen in ihrem Unternehmen beizutragen. Während der Schulung hebe ich auch die Funktionen von C++20 hervor, die in früheren Versionen der Sprache fehlten.“

Die Schulung „C++-Grundlagen“ erstreckt sich über insgesamt vier Tage, aufgeteilt in zwei Blöcke von je zwei vollen Tagen, mit einer Woche Pause dazwischen. „In den ersten beiden Tagen behandle ich die grundlegenden Elemente der Sprache, gefolgt von einer Vertiefung in den nächsten Tagen. Der Schwerpunkt liegt auf dem Aufbau eines soliden Grundwissens über C++ und darauf, zu wissen, wo man Quellen für die weitere berufliche Entwicklung in C++ findet“, fasst Van Rens die Schulung zusammen. Er verbringt etwa die Hälfte der Schulungsdauer mit Übungen, die er aus seiner praktischen Erfahrung als erfahrener C++-Softwareentwickler ableitet. Für diejenigen, die noch tiefer in die Materie einsteigen möchten, gibt es einige größere Hausaufgaben.

''Perhaps in the distant future, C++ might evolve to accommodate strict safety requirements, but not at this moment. However, using the right discipline, guidelines and tools, working with C++ can be mostly safe.''

Software-Sicherheit und Sicherheit

Ein neues Thema im Bereich der Programmiersprachen ist der Übergang zu strengeren Vorschriften für die Sicherheit von Software. Dies wird alle Bereiche der Softwareentwicklung beeinflussen, betont Van Rens. „Software-Ingenieure werden wahrscheinlich mehr Garantien in Bezug auf Sicherheit und Schutz bieten müssen.“ Die beiden wichtigsten Ansätze hierfür sind die Verwendung einer speichersicheren Programmiersprache wie Rust oder die Verwendung einer Sprache mit Garbage Collection, um die manuelle Speicherverwaltung zu eliminieren.

Obwohl C++ keine streng sichere Programmiersprache ist, bestätigt Van Rens, dass C++-Code immer noch seinen Platz in der Anwendungslandschaft hat. „Vielleicht wird sich C++ in ferner Zukunft weiterentwickeln, um strengen Sicherheitsanforderungen gerecht zu werden, aber nicht im Moment. Mit der richtigen Disziplin, den richtigen Richtlinien und Tools kann die Arbeit mit C++ jedoch weitgehend sicher sein. Es gibt zwar keine festen Garantien, aber für Ihre Zwecke könnte es ’sicher genug‘ sein.“

Dieser Artikel wurde von Koen Vervloesem geschrieben., freier Mitarbeiter bei Bits&Chips.