Wpis z mikrobloga

Rust, an Anti-Sloppy Programming Language

Several new programming languages emerged recently. Among them, Rust particularly interests me. In this blog, I’m going to share my impressions of Rust, and compare it with some other programming languages.

https://arthurtw.github.io/2014/12/21/rust-anti-sloppy-programming-language.html

http://en.wikipedia.org/wiki/Rust_%28programming_language%29

http://www.rust-lang.org/

#programowanie #rustlang

#msqspam
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@msq: Strasznie podoba mi się Rust, lubię zarówno motyw programowania funkcyjnego na poziomie systems programming jak i statycznie weryfikowane podejście do zarządzania pamięcią (ichniejsze lifetimes).

Zdecydowany #1 na liście nowych języków do poznania!
  • Odpowiedz
@msq: Ja tam jednak jestem zdania, że to twór nieprzystępny o charakterze raczej niszowym. Poza wąskim gronem specjalistów dla których byłby sporym ułatwieniem, to po prostu ciekawostka.
  • Odpowiedz
@moon_bluebird: Jedną z ciekawych rzeczy w obecnym rozwoju Rusta jest to, że właściwie od samego początku prowadzony jest równolegle duży projekt w Ruście - Servo, czyli silnik webowy "następnej generacji", który być może w przyszłości zastąpi Gecko w produktach Mozilli. Sporo zmian w samym języku wyszło właśnie podczas pisania Servo.

https://github.com/servo/servo/

@aseeon:

Dla mnie właśnie Rust ma o wiele większe szanse niż D. D miał być po prostu
  • Odpowiedz
@Rev: niemal nikt nie reklamuje podejścia funkcyjnego jako największego ficzera rusta, także wymienianie go za największą barierę jest dla mnie co najmniej dziwne. Rust nie zmusza, ani nawet specjalnie nie promuje podejścia funkcyjnego. A poza tym, pozostaje posiedzieć i zobaczyć co z tego wyjdzie. Ja po prostu dzielę się tym co mi szklana kula pokazała :)
  • Odpowiedz
niemal nikt nie reklamuje podejścia funkcyjnego jako największego ficzera rusta, także wymienianie go za największą barierę jest dla mnie co najmniej dziwne. Rust nie zmusza, ani nawet specjalnie nie promuje podejścia funkcyjnego.


@aseeon

wat?! O tym samym języku mówimy? Gdzie w kod servo nie spojrzysz to pierwsze co rzuca się w oczy to pattern matching, traitsy, typy algebraiczne, immutability by default, option types, makra, inferencja. To dość nietypowe konstrukcje jak na
  • Odpowiedz
@Rev: Po prostu jest to symbol nowych czasów. Właśnie brak NULLa jest największą zaletą Rusta jako języka do programowania systemowego. Option oraz Result razem z pattern matchingiem to rozwiązanie idealne, bo daje Ci możliwość zwracania "wyjątków" na najniższym możliwym poziomie bez śledzenia stacktrace czy innych skomplikowanych bzdur jak w C++ (np. niektóre projekty mają całkowity zakaz używania wyjątków jako, że nie są wszędzie wspierane).

Co do immutablity by default to może i niespotykane, ale nie powiesz, że nie jest to zalecane? Tym bardziej dla języka systemowego. Kod ma być bezpieczny i bez cieków pamięci (zwłaszcza na niskim poziomie, bo tutaj nikt po nas nie posprząta), a to stara się zapewnić Rust już w czasie kompilacji.

Przy polimorfizmie bym się zastanowił, bo przecież w C też można tego użyć i nawet się używa. Sprawdź sobie linuksowe sockety. Co druga struktura, która tam bangla ma dodatkowe pole, które służy jako zapychacz, by inne struktury mogły go sobie czymś wypełnić, a by można było używać cały czas tych samych funkcji. Jak to nie polimorfizm to
  • Odpowiedz
@archlinuxuser: każdy język ma wady. Co do tego, że "nie da się pisać ładnego kodu" to 2 rzeczy:

- kwestia gustu

- wymaga przyzwyczajenia

Co do pożyczania, etc. to jak wyżej, trzeba się przyzwyczaić i jest wtedy łatwo (zwłaszcza, że kompilator podpowiada co i jak).
  • Odpowiedz
@Hauleth: Dzięki, na razie nie planuję się "zniżać" do niskiego poziomu, ale jak powiedziałem: Rust wygląda rewelacyjnie.

A szczególnie filozofia w stylu: jeśli coś działa wolniej niż w c, to znaczy, że jest to błąd.
  • Odpowiedz