Krautkanal.com

Veröffentlicht am 2017-01-06 21:24:2 in /prog/

/prog/ 9713: Rost

oscarowusu Avatar
oscarowusu:#9713

Hat Bernd Erfahrungen mit Rust? Was programmiert Bernd in Rust?

aio___ Avatar
aio___:#9723

Nichts, ich habe noch nie von Rust gehört

joynalrab Avatar
joynalrab:#9724

>>9713
Ich habe mal im Google nachgeschaut. Die Programmiersprache sieht sehr gewöhnungsbedürftig aus. Ich glaube, kein Programmierer mit dem gesunden Menschenverstand wird diese Programmiersprache freiwillig benutzen.

n_tassone Avatar
n_tassone:#9725

Wollte ein Gigabyte von Github runterladen, um Zufallszahlen auszurechnen. Hatte gerade keine gute Verbindung, habe es deswegen dann sein lassen.

jasontdsn Avatar
jasontdsn:#9726

>>9713
Bernd hier hat sich ein bisschen in Rust eingearbeitet, habe aber zwischenzeitlich aufgehört weil anderes wichtiger war. Meinem Eindruck nach will Rust vor allem eine Systemsprache sein und C/C++ beerben. Hierbei wird allerdings ziemlich viel Wert auf Sicherheit gelegt. Während es spielend leicht ist in C ein Programm zu schreiben was dir nach der Übergabe eines invaliden Pointers abraucht, ist dies in Rust nicht so leicht möglich, weil dir der Compiler vorher um die Ohren fliegt. Allgemein ist Compiler von Rust extrem pedantisch, was ich aber nicht schlimm finde. Das hat natürlich den Vorteil, dass du dir ziemlich sicher sein kannst, dass dein Programm irgendwas nicht völlig verkehrtes machen wird, sobald es kompiliert. Das war für mich, vor allem weil ich Rust ständig mit C verglichen habe, eine echte Offenbarung. Ansonsten kommt die Rust-Umgebung gleich mit einem eigenen Packagemanager daher, was natürlich auch sehr schön ist.

Ziemlich gewöhnungsbedürftig an Rust empfand ich die ganzen Regeln, die dem Sicherheitskonzept geschuldet sind, und die es in dieser Form meines Wissens nur in Rust gibt. Die am wenigsten nervige Regel der mir noch einfällt war, dass man anstelle von Konstanten mit "const" zu deklarieren wie in C stattdessen Variablen mit "mut" deklarieren muss. Da gabs noch tonnenweise andere Regeln, die noch deutlich nerviger waren, ich bekomm sie aber gerade nicht mehr sinnvoll auf die Reihe. Die sorgen halt alle zusammen dafür, dass das Erlernen und Anwenden von Rust deutlich anstengender wird als der Wechsel von meinetwegen C auf Java. Das wäre dann auch mein größter Kritikpunkt an Rust: Während alle anderen modernen Programmiersprachen alle möglichen Konzepte so weit vereinfachen, dass jeder Pavian mit seinem Arsch irgendwas gescheites hinbekommt, denkt sich Rust drölfzig Regeln aus, die einem das Leben schwer machen. Ich sehe natürlich auch den Sinn hinter all diesen Regeln, frage mich aber, wie viel Chance eine solche Programmiersprache in heutiger Zeit im Mainstream wirklich noch hat.

Mein "größtes" eigenes Projekt mit Rust war die Implementierung eines einfachen Bildfilters mit eigenem rudimentären Bildparser und der Ausgabe des Bildes. Später habe ich den Code dann noch parallelisiert, was ich ziemlich gewöhnungsbedürftig fand. Ich kenne aber eine handvoll Leute, die Rust sogar schon produktiv angewendet haben und davon schwärmen (ich glaube diese wechselten von C).

shesgared Avatar
shesgared:#9727

>>9713
Irgendwann hatte ein anderer Bernd hier mal von Panopticon (grafischer Disassember in Rust, https://github.com/das-labor/panopticon) berichtet...

Bernd selbst hat es mal kurz getestet; die Standardbibliothek war zwar noch nicht fertig, aber angenehm zu benutzen. Der Paketmanager funktionierte so gut, wie es ein Paketmanager nun mal kann. Die Sprache an sich ist halt nicht für Schönheitspreise und Anfänger gebaut, aber es ist halt nicht zu vermeiden, da es für Systementwickler ist. Für einfache Anwendungsentwicklung wird ja sowas wie Crystal oder Go entwickelt.
Jedoch war das Konzept von Life Times Bernd mit viel mentaler Gymnastik verbunden, sodass er erstmal abwartet, bis sich die Sprache genug stabilisiert hat, also in so 3~5 Jahren vielleicht. Idealerweise gibt es dann auch einen zweiten Cum Piler + Ökosystem und anderen Leuten dahinter wie bei C/C++, falls die Originalentwickler mal voll Zurückgeblieben gehen. Das hilft natürlich nicht, falls das Standardkonsortium dahinter auch voll Zurückgeblieben geht, wie bei C und C++, aber was solls.

Ansonsten lauert Bernd noch bei Rusts Redditseite, da es dort oft interessante Projekte etc gibt.

grafxiq Avatar
grafxiq:#9728

Rust zusammengefasst: https://github.com/rust-lang/rust/commit/65ead717a7719f0d0b761794500e5e8d3ebbcb65

RussellBishop Avatar
RussellBishop:#9729

rust ist haskell für idioten

bnquoctoan Avatar
bnquoctoan:#9730

>>9729
Da Haskell an sich schon für Idioten ist, heißt das nichts Gutes, Bernd.

grantrobinson Avatar
grantrobinson:#9731

>>9713
Rust hat einen schlechten Syntax.

Warum ist z.B.
fn lt_42(x: int) -> bool
besser als
bool lt_42(int x)
?

Warum gibt es keine normale for-Schleifen wie im C?
for (x = 0; x < 10; x++) {
printf( "%d\n", x );
}

Warum soll man im Rust stattdessen das schreiben:
for x in 0..10 {
println!("{}", x);
}
Und was bewirkt das Ausrufezeichen? Warum ist es überhaupt da? Was soll das heißen?


Und es gibt auch viele andere Kleinigkeiten, die nicht so super sind und die den Gesamteindruck von der Programmiersprache deutlich verschlechtern.

subburam Avatar
subburam:#9732

>Warum ist z.B.
>fn lt_42(x: int) -> bool
>besser als
>bool lt_42(int x)
>?
Es ist nicht besser, sondern einfach nur anders.

>Warum gibt es keine normale for-Schleifen wie im C?
>for (x = 0; x < 10; x++) {
>printf( "%d\n", x );
>}
Es sind die gleichen For-Schleifen wie in Python oder Bash. Außerdem sind Iteratoren kühl. Wenn du einfach nur iterieren möchtest bis eine Bedingung erfüllt ist, dann nutze While-Schleifen.

>Warum soll man im Rust stattdessen das schreiben:
>for x in 0..10 {
>println!("{}", x);
>}
>Und was bewirkt das Ausrufezeichen? Warum ist es überhaupt da? Was soll das heißen?
Lies die Doku. println! ist ein Makro.


>Und es gibt auch viele andere Kleinigkeiten, die nicht so super sind und die den Gesamteindruck von der Programmiersprache deutlich verschlechtern.
Mimimimimi

nasirwd Avatar
nasirwd:#9733

Wenn das "💕💚" verarbeiten kann, ist es evtl. empfehlenswert. Python hat damit Probleme. Das scheint in der UTF-8-Repräsentation ein Null-Byte ("\0") zu haben.

mat_walker Avatar
mat_walker:#9734

>>9732
>Es sind die gleichen For-Schleifen wie in Python oder Bash. Außerdem sind Iteratoren kühl. Wenn du einfach nur iterieren möchtest bis eine Bedingung erfüllt ist, dann nutze While-Schleifen.

Für mich würde es wesentlich mehr Sinn machen, wenn es 2 Schleifen gebe: eine for-Schleife wie im C:
for (x = 0; x < 10; x++) {
printf( "%d\n", x );
}
und noch eine foreach-Schleife:

foreach (x in 0..10) {
printf( "%d\n", x );
}

oder so:
for (x in 0..10) {
printf( "%d\n", x );
}

Python, Bush oder Ruby, die nur die foreach-Schleifen haben, betrifft es natürlich auch.

>Es ist nicht besser, sondern einfach nur anders.
Das ist nicht nur anders, sondern eindeutig schlechter:
"fn", ":" und "->" schreiben zu müssen, kostet Zeit.

mutlu82 Avatar
mutlu82:#9735

>>9733
Aber damit kann Python umgehen. Und Rust auch.

>Für mich würde es wesentlich mehr Sinn machen, wenn es 2 Schleifen gebe: eine for-Schleife wie im C:
>Python, Bush oder Ruby, die nur die foreach-Schleifen haben, betrifft es natürlich auch.
PHP hat deinen "Sinn" verdorben.

joshuapekera Avatar
joshuapekera:#9736

>>9733
>Wenn das "💕💚" verarbeiten kann, ist es evtl. empfehlenswert. Python hat damit Probleme.
Bernd hat es gerade getestet und Python kam damit klar. Prüf mal deinen Editor. Mit xfce4-konsole + vim hat Bernd es nicht geschafft, diese beiden Zeichen fehlerfrei abzuspeichern. Mit geany hat es funktioniert.

areus Avatar
areus:#9737

>>9735
Wie hast du denn das erkannt? Hast du etwa die telepathische Kräfte?

artcalvin Avatar
artcalvin:#9738

>>9735
Dann müsste ich mich nach der Python-Version hier und da erkundigen. Aber darum möchte ich mich nicht kümmern. Bug-Report liegt an betreffender Stelle vor, also kein Problem.

leandrovaranda Avatar
leandrovaranda:#9739

Klar Bernd, wenn wir eines brauchen, sind es noch mehr restriktive Programmiersprachen mit behinderten Paradigmen, die alles nur noch viel schlimmer machen

Ist ja nicht so als hätten wir bereits genügend Sachen wie Java oder ABAP

Ohne scheiß, jedes mal wenn ich mir das TIOBE ranking anschaue, könnte ich das kotzen anfangen

kurafire Avatar
kurafire:#9768

>>9733
>Das scheint in der UTF-8-Repräsentation ein Null-Byte ("\0") zu haben.
UTF-8 hat nie Nullbytes. Guckst du Doku und nutzt anständisch Editor, du Schuft!

justinrhee Avatar
justinrhee:#9793

>>9739
Das Ranking ensteht ja aber durch behinderte Menschen die was nicht schaffen, nicht durch Menschen die was schaffen. Ganz schwieriges System.

Neuste Fäden in diesem Brett: