Przyszłość Rusta i czy Rust zastąpi C++

Przyszłość Rusta i czy Rust zastąpi C++

Wątek przeniesiony 2025-01-14 12:34 z Nietuzinkowe tematy przez Riddle.

whiteman808
  • Rejestracja:ponad rok
  • Ostatnio:8 dni
  • Postów:133
0

Czy Rust zastąpi język C++ lub chociaż C, czy raczej będzie funkcjonował obok tych dwóch języków? Jak Rust wypada pod kątem wydajności, wsparcia dla różnych platform, bezpieczeństwa kodu, dostępności bibliotek względem konkurencji? mam na myśli głównie C++, Go, Java, C#

Ma ten język przyszłość przed sobą? Co ciągnie ludzi do tego języka? Jak łatwo znaleźć zatrudnienie w Ruście i w jakich działkach IT chcą programistów Rusta?

Jak dobry jest Rust jeśli chodzi o gamedev, niskopoziomowe programowanie?

PS. Przepraszam za złą kategorię forum

edytowany 1x, ostatnio: whiteman808
stivens
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 6 godzin
loza_prowizoryczna
loza_prowizoryczna
  • Rejestracja:ponad 2 lata
  • Ostatnio:13 dni
  • Postów:1629
0
whiteman808 napisał(a):

Czy Rust zastąpi język C++ lub chociaż C, czy raczej będzie funkcjonował obok tych dwóch języków?

Będzie obok

Jak Rust wypada pod kątem wydajności, wsparcia dla różnych platform, bezpieczeństwa kodu, dostępności bibliotek względem konkurencji? mam na myśli głównie C++, Go, Java, C#

Nędznie.

Ma ten język przyszłość przed sobą?

Przyszłość i teraźniejszość to Ada

Co ciągnie ludzi do tego języka?

Bezrobocie.

Jak łatwo znaleźć zatrudnienie w Ruście i w jakich działkach IT chcą programistów Rusta?

Jak widać z powyższego postu jeśli interesuje cię kariera w państwowym IT to łatwo.

Jak dobry jest Rust jeśli chodzi o gamedev,

Gamedev to Unreal a on woli Verse


Przetrzyma wszystko
AN
  • Rejestracja:około 19 lat
  • Ostatnio:około 6 godzin
0

Moim skromnym zdaniem:

Czy Rust zastąpi język C++ lub chociaż C, czy raczej będzie funkcjonował obok tych dwóch języków?

Raczej obok C++ i C, choć bardzo powoli coraz więcej będzie się pisać w Rust zamiast C. Jednak na mikrokontrolery to wciąż będzie C lub C++ najczęściej.

Jak Rust wypada pod kątem wydajności, wsparcia dla różnych platform, bezpieczeństwa kodu, dostępności bibliotek względem konkurencji? mam na myśli głównie C++, Go, Java, C#

Wydajność: Niemal taka sama, jak C, C++.
Platformy: WebASM, aplikacje konsolowe Windows/Linux wspiera bez problemu. Co do innych systemów i zastosowań to nie wiem.
Bezpieczeństwo: Moim zdaniem dobry poziom, przede wszystkim bardzo trudno jest popełnić typowe błędy związane z wielowątkowością i zarządzaniem pamięcią.
Biblioteki: Nie wiem, ale podobno jest możliwa współpraca z bibliotekami do C lub C++

Ma ten język przyszłość przed sobą? Co ciągnie ludzi do tego języka? Jak łatwo znaleźć zatrudnienie w Ruście i w jakich działkach IT chcą programistów Rusta?

Ludzi ciągnie wiara w to, że ten język ma świetlaną przyszłość i zdobędzie coraz większą popularność. Moim zdaniem popularność wzrośnie do pewnego poziomu, ale raczej nie wyprze żadnego innego języka z uzytku.

Jak dobry jest Rust jeśli chodzi o gamedev, niskopoziomowe programowanie?

Jak chodzi o jakość kodu, to bardzo dobry, bo nie dość, że nie ma GC, to znacznie utrudniono popełnianie typowych błędów. Wydajnościowo to jest podobny do C++, może wydajność Rust jest minimalnie niższa, ale różnice są znikome. Ale z drugiej strony, jest to trudny język, stosuje zupełnie inne rozwiązania w stosunku to typowych języków obiektowych.

Ja osobiście programuję w WebASM na własny użytek w C++. Próbowałem WebASM w Rust i też da radę, tylko pozostaje kwestia opanować Rust, który sam w sobie jest trudniejszy niż C++, nie wspominając o Java, czy C#. Języka Go zupełnie nie znam.

Do WebASM to moim zdaniem najlepiej albo C++, albo Rust, bo z tych języków najprościej skompilować do WASM, nawet jednym poleceniem w konsoli, oczywiście można zrobić skrypt bash. Ten sam kod można też skompilować do użytku w aplikacji konsolowej, np. do testowania lub nawet do testów automatycznych. Oczywiście, istnieje możliwość kompilacji z wielu innych języków do WebASM, ale wątpię, że gra warta świeczki.

SL
  • Rejestracja:około 7 lat
  • Ostatnio:31 minut
  • Postów:900
1

Czy Rust zastąpi język C++ lub chociaż C, czy raczej będzie funkcjonował obok tych dwóch języków?

Tak. C++ i C mają zastosowanie głównie dzięki swojemu legacy i wsparciu dla bibliotek (np. silniki do gier), których nie ma w Ruscie. C do tego rządzi w embedded, bo kompilatorów jest masa, gdzie Rust to tylko LLVM i wstępne wsparcie dla gcc

Jak Rust wypada pod kątem wydajności,

Tak samo lub lepiej. Rust generalnie generuje szybszy kod (np. brak problemów z aliasingiem), do tego design sprawia, że można bardziej poszaleć (np. generowanie kodu poprzez makra) lub pisać kod, który normalnie w C/C++ nie byłby zaakceptowany przez to, że jest duży potencjał na bugi. Same biblioteki są też po prostu dużo lepsze i pisząc typowy kod będziesz wybierał bibilioteki dużo szybsze i lepszej jakości

wsparcia dla różnych platform

Dla dużych systemów (serwisy, rzeczy systemowe, gry) nie ma problemy. Na mikrokontrolery nie ma po prostu kompilatorów

bezpieczeństwa kodu

Rust jest dużo bezpieczniejszy

dostępności bibliotek względem konkurencji?

Libki ogólne (jakieś struktury danych, utility funkcje, pisanie serwerów) stoi na dużo wyższym poziomie niż C/C++. Niszowych libek oczywiście nie ma

Co ciągnie ludzi do tego języka?

Jest to natywny język oferujący wysoką wydajność, który nie jest kilka generacji do tyłu jak C/C++. C/C++ królują tylko dlatego, że wejście czegoś nowego do tej niszy jest ekstremalnie ciężkie. Rust to pierwszy język, który swoją jakością i popularnością zakończył ten stan

Jak dobry jest Rust jeśli chodzi o gamedev,

Słabo, nie ma libek i ficzerów

niskopoziomowe programowanie

Zależy od platformy.

Zobacz pozostały 1 komentarz
SL
No tak, Ada ma zalety, ale nie zdobyła popularności. Z drugiej strony Rust to taki trochę C++ zrobiony dobrze + funkcyjne bajery z Ocamla. Ada chyba nie ma funkcyjnych aspektów jak i możliwości pisania wydajnego kodu w dzisiejszych standardach i mocy (move semantic, templaty, traity statyczne)
loza_prowizoryczna
loza_prowizoryczna
Ada wciąż jest rozwijana tyle że to język zaprojektowany w labach pod krytyczną infrastrukturę. Ada chyba nie ma funkcyjnych aspektów - to dinozaur więc brakuje jej cukru ale to nie znaczy że nie da się tam pisać funkcyjnie. Pytanie brzmi - po co? Hajp na funkcyjność wziął się z tego że hardware już wcześniej dał sygnały że wydajność per monolityczny rdzeń dobiła ściany a soft wiedział że programowanie równoległe w (wstaw C(++/#)Java, etc) bez wymiataczy równa się gorsza wydajność (bo mutexy, locki, zmiany kontekstu) niż na tradycja.
loza_prowizoryczna
loza_prowizoryczna
możliwości pisania wydajnego kodu w dzisiejszych standardach i mocy (move semantic, templaty, traity statyczne) - tu masz trochę inne rozłożenia wag. Ada była projektowana by sam kod był czytelny i łatwy do analizy przez czynnik ludzki. Rust był projektowany w momencie gdy było założenie że duża część z tych rzeczy powinna być wykonywana przez kompilator. Teoretycznie ok bo kompilator w tym lepszy ale z drugiej strony to przerzucenie odpowiedzialności na implementację kompilatora. Tylko tu cyt. ciebie "Na mikrokontrolery nie ma po prostu kompilatorów".
hauleth
@loza_prowizoryczna: Ada spoko, ale miała swój czas i się zbytnio nie przyjęła. A programowanie funkcyjne często po prostu łatwiej pozwala przedstawić co chcemy osiągnąć zamiast mówić kodem co konkretnie ma się stać w celu tego by się tak stało. Zdecydowanie bardziej deklaratywne (i zwięzłe) jest niż programowanie imperatywne.
loza_prowizoryczna
loza_prowizoryczna
A programowanie funkcyjne często po prostu łatwiej pozwala przedstawić co chcemy osiągnąć zamiast mówić kodem co konkretnie ma się stać w celu tego by się tak stało. - jakby tak było to wszyscy bylibyśmy matematykami. A zamiast tego jesteśmy pasjonatami SQL.
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:3 minuty
  • Postów:8423
1
whiteman808 napisał(a):

Ma ten język przyszłość przed sobą? Co ciągnie ludzi do tego języka? Jak łatwo znaleźć zatrudnienie w Ruście i w jakich działkach IT chcą programistów Rusta?

Jest taki filmik. Satyra, ale dużo w niej prawdy:


E7
  • Rejestracja:4 miesiące
  • Ostatnio:4 miesiące
  • Postów:3
0

Moim zdaniem Rust jest jeszcze bardziej nieczytelny niż C++ i trudniejszy od niego.

Wibowit
  • Rejestracja:około 20 lat
  • Ostatnio:około godziny
4
engine7 napisał(a):

Moim zdaniem Rust jest jeszcze bardziej nieczytelny niż C++ i trudniejszy od niego.

jakieś argumenty za nieczytelnością? c i c++ wymagają https://en.wikipedia.org/wiki/Lexer_hack a rust nie. ta 'nieczytelność' to najprawdopodobniej brak obycia z daną składnią (czyli kwestia wprawy) oraz różnego rodzaju emocje blokujące przed normalnym ogarnięciem nowego języka.

rzekoma trudność rusta to skill issue. poćwicz, a ogarniesz :) jeśli rust cię przerasta to może przerzuć się na szydełkowanie. rust formalizuje wiele rzeczy, które w c++ są wyłapywane linterami i zmusza programistów do naprawienia ich podczas gdy w c++ można wiele błędów konstrukcyjnych w kodzie po prostu olać, bo kompilator (w domyślnej konfiguracji) się nie czepia.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
edytowany 1x, ostatnio: Wibowit
whiteman808
"ta 'nieczytelność' to najprawdopodobniej brak obycia z daną składnią (czyli kwestia wprawy) oraz różnego rodzaju emocje blokujące przed normalnym ogarnięciem nowego języka" To samo można powiedzieć o C++
whiteman808
"w c++ można wiele błędów konstrukcyjnych w kodzie po prostu olać, bo kompilator (w domyślnej konfiguracji) się nie czepia." o flagach gcc -Wall -Werror slyszał?
Wibowit
o flagach gcc -Wall -Werror slyszał? - odpalają one borrow checkera?
WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:38 minut
  • Postów:5143
0
Wibowit napisał(a):
engine7 napisał(a):

Moim zdaniem Rust jest jeszcze bardziej nieczytelny niż C++ i trudniejszy od niego.

jakieś argumenty za nieczytelnością? c i c++ wymagają https://en.wikipedia.org/wiki/Lexer_hack a rust nie. ta 'nieczytelność' to najprawdopodobniej brak obycia z daną składnią (czyli kwestia wprawy) oraz różnego rodzaju emocje blokujące przed normalnym ogarnięciem nowego języka.

lol, zagram adwokata diabła: zestawiać "czytelność" dla komputera z czytelnością dla człowieka to troche WTF :D :D

rzekoma trudność rusta to skill issue. poćwicz, a ogarniesz :) jeśli rust cię przerasta to może przerzuć się na szydełkowanie.

ale się odpaliłeś

#Topic

Mam nadzieje ze jak najszybciej, jak w tym kawale kiedyś:

O ile Rust jest szybszy od C++?
O około 4 miesiące.

Spójny ekosystem, podstawowe narzędzia out of the box (np. cargo) ułatwiają pracę

edytowany 5x, ostatnio: WeiXiao
MO
Pan Wibowit chyba nie pisał nic większego w Rust poza Hello World, fakt taki prosty program to ładnie i czytelnie wygląda w Ruscie. Ale pod kursami Rusta ludzie w komentarzach po angielsku piszą tak: okropny język, język śmieci, rust to śmieci, kolejny język z brzydką składnią, brzydka składnia, nieczytelny trudny w odczycie, ciężko to się czyta, paskudna składnia... I długo by jeszcze pisać.
MO
  • Rejestracja:4 miesiące
  • Ostatnio:4 miesiące
  • Postów:2
0

@Wibowit odpaliłeś się jak Mechaniczny Turek. No dobra a ten kod Rust jest dla ciebie bardziej czytelny od C?
https://github.com/jakobwesthoff/tetrotime

edytowany 1x, ostatnio: Modjoo
stivens
Przytocz konkretny kawalek kodu. Najlepiej z alternatywa w C ;)
Wibowit
  • Rejestracja:około 20 lat
  • Ostatnio:około godziny
0

@Modjoo w ruście napisałem program do kompresji danych. najnowszą wersję mam niewypchniętą, ale wcześniejszy, dużo prostszy prototyp, wypchnąłem tutaj: https://github.com/tarsa/demixer . napisz mi co tam jest nieczytelne i co byłoby czytelniejsze w c czy c++.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
Wibowit
  • Rejestracja:około 20 lat
  • Ostatnio:około godziny
0
WeiXiao napisał(a):
Wibowit napisał(a):
engine7 napisał(a):

Moim zdaniem Rust jest jeszcze bardziej nieczytelny niż C++ i trudniejszy od niego.

jakieś argumenty za nieczytelnością? c i c++ wymagają https://en.wikipedia.org/wiki/Lexer_hack a rust nie. ta 'nieczytelność' to najprawdopodobniej brak obycia z daną składnią (czyli kwestia wprawy) oraz różnego rodzaju emocje blokujące przed normalnym ogarnięciem nowego języka.

lol, zagram adwokata diabła: zestawiać "czytelność" dla komputera z czytelnością dla człowieka to troche WTF :D :D

ale trudność dla kompilatora to też trudność dla człowieka jeśli zrobisz błąd składniowy i kompilator wyrzuci jakiś masakryczny opis błędu z dziwnymi interpretacjami, bo dany kawałek kodu można interpretować na wiele dziwnych sposobów. zresztą dalej jest https://en.wikipedia.org/wiki/Most_vexing_parse .

ogólnie komunikaty błędów z c++ to totalne dziadostwo w porównaniu do komunikatów z rusta.

rzekoma trudność rusta to skill issue. poćwicz, a ogarniesz :) jeśli rust cię przerasta to może przerzuć się na szydełkowanie.

ale się odpaliłeś

bynajmniej


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:38 minut
  • Postów:5143
0

@Wibowit

ale trudność dla kompilatora to też trudność dla człowieka jeśli zrobisz błąd składniowy i kompilator wyrzuci jakiś masakryczny opis błędu z dziwnymi interpretacjami

To jest słabo napisany

ogólnie komunikaty błędów z c++ to totalne dziadostwo w porównaniu do komunikatów z rusta.

True, ale to nie wyłącznie przez gramatyke.

Jakieś copy-paste-oriented includy, linkery gubiące informacje, templatki po rozwinięciu nie potrafiące podać source

edytowany 2x, ostatnio: WeiXiao
Wibowit
  • Rejestracja:około 20 lat
  • Ostatnio:około godziny
0

cpp-error-messages.png


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:38 minut
  • Postów:5143
0

No wiem, no przecież pisze że jest słabo napisany

RE
  • Rejestracja:ponad 18 lat
  • Ostatnio:około 2 godziny
0

niby rust trudny. Ale jak człowiek popatrzył jakie w C++ potrafią wyjść UB, tematy z szablonali l i r wartościami czy całe metaprogpramowanie, jakieś pod spodem automatyczne rzuty. To może jednak rust nie jest aż tak trudny?


We are the 4p. Existence, as you know it, is over. We will add your biological and technological distinctiveness to our own. Resistance is futile
Wibowit
  • Rejestracja:około 20 lat
  • Ostatnio:około godziny
0
WeiXiao napisał(a):

@Wibowit

ogólnie komunikaty błędów z c++ to totalne dziadostwo w porównaniu do komunikatów z rusta.

True, ale to nie wyłącznie przez gramatyke.

moim zdaniem, gdyby gramatyka była łatwiejsza do ogarnięcia w kompilatorze, to i łatwiej byłoby zebrać dane kontekstowe do stworzenia bardziej pożytecznych komunikatów błędów.

tymczasem nawet wczesne wersje rusta, stworzone przez de facto grupkę entuzjastów, miały dużo dużo lepsze komunikaty błędów niż kompilatory c++ tworzone przez dekady przez gigantów.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:38 minut
  • Postów:5143
0

@Wibowit

moim zdaniem, gdyby gramatyka była łatwiejsza do ogarnięcia w kompilatorze, to i łatwiej byłoby zebrać dane kontekstowe do stworzenia bardziej pożytecznych komunikatów błędów.

No łatwiej, a jak duży realny wpływ by to miało? 1% 5% 40% 80%?

tymczasem nawet wczesne wersje rusta, stworzone przez de facto grupkę entuzjastów, miały dużo dużo lepsze komunikaty błędów niż kompilatory c++ tworzone przez dekady przez gigantów.

No bo łatwiej jest zrobić coś od 0, w małym dobrym zespole, któremu zależy niż rozwijać kobyłę z deadlinami na plecach :D

Wibowit
  • Rejestracja:około 20 lat
  • Ostatnio:około godziny
0
WeiXiao napisał(a):

@Wibowit

moim zdaniem, gdyby gramatyka była łatwiejsza do ogarnięcia w kompilatorze, to i łatwiej byłoby zebrać dane kontekstowe do stworzenia bardziej pożytecznych komunikatów błędów.

No łatwiej, a jak duży realny wpływ by to miało? 1% 5% 40% 80%?

nie wiem. nie pisałem kompilatorów na poważnie. jedyne co to projekt z kolegą na studiach, który ledwo ogarnąłem, bo napisał jego początkową wersję (którą dokańczałem) moim zdaniem bardzo dziwnie. nie ma sensu do tego wracać :)

tymczasem nawet wczesne wersje rusta, stworzone przez de facto grupkę entuzjastów, miały dużo dużo lepsze komunikaty błędów niż kompilatory c++ tworzone przez dekady przez gigantów.

No bo łatwiej jest zrobić coś od 0, w małym dobrym zespole, któremu zależy niż rozwijać kobyłę z deadlinami na plecach :D

jak długo te deadline'y będą wstrzymywać wdrożenie przyjaznych ludziom komunikatów błędów? jeszcze z kolejne 40 lat? a może sprawa jest już przegrana, bo deadline'y nigdy nie przestaną przeszkadzać?


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
edytowany 2x, ostatnio: Wibowit
WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:38 minut
  • Postów:5143
0

@Wibowit

Nie twierdzę że deadliny są jedyną przyczyną, po prostu czasem ciężko zrefaktorować np. 10-20% multi-milion codebase.

Dodatkowo to zawsze jest ryzyko że doda się jakąś regresję i będzie ogromna lipa, więc pewnie nie próbują nawet.

edytowany 1x, ostatnio: WeiXiao
several
  • Rejestracja:prawie 16 lat
  • Ostatnio:19 minut
1

Hmm, niemal każdy temat Rust vs legacy to zazwyczaj sporo propagandy z jednej i drugiej strony. Teraz widzę robimy się też religijni

rzekoma trudność rusta to skill issue. poćwicz, a ogarniesz 😀 jeśli rust cię przerasta to może przerzuć się na szydełkowanie

Prawie jak na wykopie. I do tego kłamiemy brzydko

Jak Rust wypada pod kątem wydajności,
Tak samo lub lepiej

A tak może trochę bardziej na temat

Czy Rust zastąpi język C++ lub chociaż C

Rust już teraz wypchnał C++ z kilku domen, trend będzie kontynuowany, szczegółnie w obszarach security, ale ciężko stwierdzić jak daleko to zabrnie. Z C będzie trudniej. Rust jako technologia ogólnie jest spoko, wolno się w nim prototypuje i to chyba jego największa wada. Zaraz po konieczności obcowania z programistami rust.

(edit)

ogólnie komunikaty błędów z c++ to totalne dziadostwo

Rzekoma trudność w zrozumieniu komunikatów w C++ to skill issue, poćwicz a ogarniesz ;) Jeśli C++ Cię przerasta to może przerzuć się na szydełkowanie.


edytowany 4x, ostatnio: several
several
  • Rejestracja:prawie 16 lat
  • Ostatnio:19 minut
0

Rust niby jest lepszy od C++, ale wszyscy wolą go unikać. I nikt nie chce w nim pisać.

Nie, no to też akurat jakaś propaganda. r/rust ma 330k obserwatorów (czy jak tam to się na reddicie nazywa) a r/cpp 306k.


CZ
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 2 godziny
  • Postów:2326
0
several napisał(a):

Rust niby jest lepszy od C++, ale wszyscy wolą go unikać. I nikt nie chce w nim pisać.

Nie, no to też akurat jakaś propaganda. r/rust ma 330k obserwatorów (czy jak tam to się na reddicie nazywa) a r/cpp 306k.

?? No, ale to nie ma żadnego znaczenia xD. Też mnie ciekawi czy auta wodorowe zastąpią elektryki co nie oznacza, że nie używam spalinowego.

Nikt realnych projektów nie pisze w Ruście i nikt się nie odważy, bo obecnie nie ma się pieniędzy na eksperymentowanie.

TJ
  • Rejestracja:4 miesiące
  • Ostatnio:4 miesiące
  • Postów:1
0

Ja czytałem parę wypowiedzi też dobrych programistów co na tego rusta się rzucili i powiedzieli, że to był strzał w kolano.

Jako matematyk programista, tam masz bardzo ograniczone pole do grafów.
A jak wiadomo markov chain czy jakikolwiek grafowy algorytm wszystko działa na pointerach, rust ma ograniczenia, i musisz na tablicy mega skomplikowany graf zrobić, czyli prototypowanie zamiast być prostym robieniem prof of concept zamienia się w walkę o życie, bo język nie oferuje takich funkcjonlaności.

LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:3 minuty
  • Postów:8423
0

Rust idzie w dobrą stronę, ale jest miejscami zbyt ścisły i przez to programista zamiast rozwiązywać problemy na poziomie logiki aplikacji, to rozwiązuje problemy typu w jaki sposób używać współdzieloną strukturę w wielu miejscach, żeby kompilator nam pozwolił (np. czy zrobić z tego Rc<RefCell>? A może lifetime'y? Czy potrzebujemy to mutować?). Plus zaraźliwe elementy składni jak lifetime'y czy generyki (jak się pojawiają, to potem wszystko musi tego używać).

Oraz czepianie się borrow checkera na poziomie lokalnym. Tj. jak piszemy konkretną funkcję i kompilator się czepia, że w kilku linijkach użyliśmy zmienną, a nie mamy prawa. Takie czepialstwo zwykle ma sens i wystarczy zamienić miejscami pewne kawałki kodu (np. najpierw wypełnić strukturę, a potem dopiero ją wrzucić do wektora, bo wrzucenie do wektora powoduje move), jednak czasem trzeba kombinować, bo nieszkodliwy kawałek kodu może i tak nie przejść.

Rust traktuje programistę jak kogoś nieodpowiedzialnego. I to jest ogólnie dobre podejście (Rust pilnuje, żeby nie zrobić głupoty), to jednak czasem jest zbyt agresywny w tym pilnowaniu. Oraz developer experience spada, bo pewne rzeczy, które są banalne w niektórych językach (np. closures w JS), w Rust są już mniej wygodne.

Więc nie jest to idealny język. Tylko, że który jest idealny? Wybierając język programowania, wybiera się zarówno rzeczy fajne, jak i rzeczy, które nas wkurzają. Jak ktoś wybierze C++ zamiast Rusta, to powodzenia, będzie miał wady C++. Ktoś wybierze JS, to będzie miał wady JSa itp. Więc "choose your poison".

Myślę, że finalnie duże znaczenie ma doświadczenie w danym języku i jego zrozumienie. Wtedy można te dziwne elementy języka lepiej rozumieć i sobie z nimi radzić. Dlatego jak ktoś jest dobry np. w C++, to po co ma zmieniać język, skoro pułapki C++ już poznał, a w nowym języku będą na niego czychać inne pułapki?


edytowany 6x, ostatnio: LukeJL
several
  • Rejestracja:prawie 16 lat
  • Ostatnio:19 minut
0

Nikt realnych projektów nie pisze w Ruście i nikt się nie odważy, bo obecnie nie ma się pieniędzy na eksperymentowanie.

Trochę tak, trochę nie. Bo z jednej strony nic znaczącego w rust nie powstało. Taki Odin (język bez hype'u, dotacji ani innych takich) ma swojego EmberGen a w rust to najgłośniej było chyba o jakimś edytorze tekstu albo kolejnej konsoli. Ale z drugiej strony, jako osoba która mocno przeglądała rynek ostatnio, ilość ofert dla programistów rust była wyższa niż się spodziewałem. Także ktoś jednak chce coś robić w tym języku. I teraz czas pokaże, czy rust będzie dla C++ czymś takim jak scala dla javy, czy jednak może czymś więcej. Zalet bezpieczeństwa przy prawie żadnych konsekwencjach dla wydajności nie można jednak podważyć.

Jako C++ programista propagujesz Rusta

No no, jak to @hauleth przeczyta to się uśmiechnie. Ja osobiście siedzę w takim limbo, w zależności jaka tendencja w wątku to zazwyczaj po drugiej stronie dzięki czemu żadna ze stron za mną nie przepada. Bo z jednej strony, w mojej opini, język taki jak rust powinien być w rozwoju od wczesnych lat dwutysięcznych. Ale z drugiej strony nie czuję tego całego hype'u. Niewygodne prototypowanie w rust to coś więcej niż tylko skill issue. Gdyby było inaczej rewrite in rust nie byłoby najefektywniejszym paradygmatem użycia tego języka.

Do tego i C++ i rust dzielą ten sam problem, w takiej javie czy C# większość czasu spędzasz zastanawiając się CO masz zrobić. A w rust i c++ dochodzi do tego JAK masz to zrobić. @LukeJL napomknął o tym wyżej. Sytuacja ta, ma miejsce z różnych powodów, ale jednak ma miejsce. De facto, w C nie ma z tym aż takich problemów.

(edit)

Ja czytałem parę wypowiedzi też dobrych programistów co na tego rusta się rzucili i powiedzieli, że to był strzał w kolano.

Leaving rust after 3 years to chyba jedno z lepszych podusmowań.


edytowany 4x, ostatnio: several
loza_prowizoryczna
loza_prowizoryczna
Całe szczęście że mamy Swifta który wymyślił Apple i zaprojektował pod swoje zastosowania (mnóstwo legacy w C/C++) dzięki czemu możemy pisać w normalnym języku i nie zastanawiać się co zastąpi co.
Miang
znaczy te javove przekazywanie jednego obiektu przez 25 klas żeby zrobić jedną rzecz typu obsłużyć pytanie z frontendu, ma być lepsze?
hauleth
Servo - którego części są zaimportowane do Gecko, Dropbox ma części w Ruscie, Firecracker od Amazona używany przez Fly.io i AWSowe Lambda.
loza_prowizoryczna
loza_prowizoryczna
fullstack nabiera nowego znaczenia.
BartoSAS
  • Rejestracja:ponad 10 lat
  • Ostatnio:2 minuty
  • Postów:305
0

Ja mam wrażenie, że rust jst mało CRUD-friendly. W sensie, jeżeli masz jakieś legacy, gdzie jeszcze jest festiwal opcjonalnych pól, które mogą być nullem, to strasznie się rozwleka ten kod, ale nie wątpię, że może być też to moje skill issue

LukeJL
w jakim sensie kod się rozwleka? Jak masz opcjonale w strukturach, to możesz tworzenie tych opcjonali ukryć w new albo w default czy w jakiejś innej funkcji. Czyli nawet jak masz z 20 pól, to nie musisz ich podawać za każdym razem przy inicjalizacji struktury, bo możesz ustawić to, co potrzeba, a resztę inicjalizować domyślnie na None.
stivens
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 6 godzin
1
BartoSAS napisał(a):

Jeżeli masz jakieś legacy, gdzie jeszcze jest festiwal opcjonalnych pól, które mogą być nullem, to strasznie się rozwleka ten kod, ale nie wątpię, że może być też to moje skill issue

Nie rozumiem. W jaki sposob to rozwleka kod? Jaka alternatywe masz w C++ albo Javie? Bo chyba nie frywolne zignorowanie ich natury - tego, ze pola sa nullowalne/opcjonalne i traktowanie ich jakby byly zawsze niepuste?

Rust faktycznie nie jest CRUD-friendly, ale z zupelnie innego powodu - nie ma GC, a jego podejscie do zarzadzania pamiecia to ma malo wspolnego z CRUDami czy logika biznesowa wysokopoziomowych aplikacji.


λλλ
edytowany 3x, ostatnio: stivens
BartoSAS
  • Rejestracja:ponad 10 lat
  • Ostatnio:2 minuty
  • Postów:305
0

Pewnie masz rację, nie przychodzi mi nic do głowy na szybkości, przypuszczam, że może to być tylko takie moje wrażenie, ewentualnie to jak się zachowuje IDE (i pewnie powininem to sobie poprawić).
Przykład pierwszy z brzegu

Kopiuj
impl Class {
fn foo() {
  if let Some(value) = db.column {
    // i dopiero po 3 wcięciach mogę pisać jakiekolwiek ify od logiki tego pola
   }
 }
}

No i pewnie ktoś powie, że się czepiam, i pewnie że ma rację, ale jeszcze jakbym dosztukował &self, to już ogólnie wydaje się, że to się ciągnie... Ale to tam nie ważne. To tak jakbyś spojrzał na kolor i jednemu ten kolor się podoba, drugiemu, nie.

Bardziej mnie zastanawia, jak ma się przyjąć w takim razie rust, jeżeli nie będzie CRUD-friendly? Brak GC nie spodziewałbym się, że może być problemem.

Zobacz pozostałe 10 komentarzy
BartoSAS
Znaczy na chwilę obecną po prostu mam obiekt, który ma w opór dużo pól opcjonalnych, no i n-reguł do tych pól. Więc po prostu biorę sobie cały obiekt i potem go "obrabiam" sobie w prywatnych metodach i zwracam zaktualizowany stan. Dojechałem do ~1k LoC i no i lampka mi się zapaliła, że coś robię nie tak. No i człowiekowi się ulało i rykoszetem dostał rust, zamiast na chłodno skill-issue :D
stivens
@BartoSAS: podobno Microsoft przepisuje Windowsa na Rusta. Google uzywa go w Fuschia OS. Generalnie programowanie systemowe a nie CRUD
LukeJL
@BartoSAS swoją drogą, czy to zawsze muszą być pola struktury? Czy nie lepiej użyć hashmapy? Wtedy możesz mieć dużo pól i nie musisz deklarować wszystkich (chociaż to może być wada jak i zaleta, bo jawna deklaracja, to większa kontrola nad poprawnością). Tylko item hashmapy wtedy mógłby być jakimś enumem, żeby uwzględnić to, że w takiej hashmapie wtedy byłyby trzymane i liczby, i stringi itp.
BartoSAS
@LukeJL: nie bardzo chcę Ci zawracać tym głowę, bo już w zasadzie jestem z tym na ostatniej prostej i jakoś to przecierpiałem... ogólnie to jest tak, że jak np. te pola nie istnieją, to na skutek reguł prawdopodobnie trzeba je utworzyć i uzupełnić...
hauleth
NIe za bardzo rozumiem z czym masz tutaj problem…
stivens
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 6 godzin
0

Bardziej mnie zastanawia, jak ma się przyjąć w takim razie rust, jeżeli nie będzie CRUD-friendly?

Rust powinien (?) zastapic C/C++ a nie CRUD-y


if let some

A jaka alternatywa w C++ lub Javie w.g. Ciebie?
PS. Gdzie masz 3 wciecia? Bo 1 jest z klasy, drugie z metody...


λλλ
edytowany 3x, ostatnio: stivens

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.