Wpis z mikrobloga

@placebo_: to zależy od tego jak go rozwiną i ile fajnych bibliotek powstanie w Cargo.

Najlepiej jakby się C++ z nimi dogadali i by móc stworzyć wspólnie nową wersje Rusta który będzie miał nieco więcej abstrakcji (bo Carbon jest googla więc mogą go zabić albo popsuć w dowolnej chwili).

Ogólnie raczej widzę pozytywnie jego przyszłość, szczególnie w dobie AI assisted programming ( ͡° ͜ʖ ͡°)
@placebo_: ciężko mówić o przełomie, bo to język do bardziej niszowych zastosowań. Na pewno Rust zapełni niszę po C/C++, która już od paru lat czeka na coś nowoczesnego.
@placebo_: ten przełom już nastąpił, Rust jest pierwszym językiem innym niż C który został dodany oficjalnie do kernela Linuksa. Nie udało się to wcześniej ani C++ ani D.
Najlepiej jakby się C++ z nimi dogadali i by móc stworzyć wspólnie nową wersje Rusta który będzie miał nieco więcej abstrakcji (bo Carbon jest googla więc mogą go zabić albo popsuć w dowolnej chwili).


@sorek: główną zaletą Rusta jest przeoranie wszystkich wadliwych cech C++, które są wynikiem dziedzictwa C jak i błędnych decyzji z przeszłości. Nawet twórcy Carbona piszą, żeby używać Rusta w nowych projektach, Carbon to tylko język do rozwijania
ciężko mówić o przełomie, bo to język do bardziej niszowych zastosowań.


@Saly: no ja widzę że ludzie w nim piszą webserwisy, więc niekoniecznie. To uniwersalny język praktycznie do wszystkiego.
@Saly: zgadzam się, dlatego nie zależy mi na tym by C++sować rusta tylko dać mu nieco więcej abstrakcji by ten mógł wypierać nie tylko C ale również C++.
@placebo_: będzie stopniowo zyskiwał na znaczeniu wśród języków programowania, projekty w C, C++ czy np. Javie będą do niego chętniej przenoszone lub takie, które są w fazie maintenance i zyskają coś na przeniesieniu (lepszą wydajność, mniej błędów dzięki systemowi typów).

Ogólnie warto się go uczyć. W embedded też coś powoli się rusza w tym kierunku (ale tylko w niektórych działkach - supportu na poziomie C nigdy nie będzie)

Przełom to oczywiście
choćby brakuje mu abstract class/interface i nie jest w ogóle ogarnięty na pracę OO.


@sorek: Że jak? Przecież ma traity, które są o wiele silniejszym mechanizmem abstrakcji niż interfejsy z języków C++ i Java; zwłaszcza że niedawno dodali też generic associated types, przez co Rust jest już prawie jak Haskell / Scala.

Miałeś na myśli może że nie ma dziedziczenia, ale to jest zaleta a nie wada. OO w takiej formie
Przełom to oczywiście żaden nie jest


@devopsiarz: Przełom jest w tym sensie, że jest to pierwszy praktyczny (nieakademicki) język, który ma równocześnie bezpieczne, automatyczne i deterministyczne zarządzanie zasobami (bez konieczności używania GC) oraz który statycznie gwarantuje brak wyścigów w danych. Pod tym względem jest to unikat, żaden inny język na razie tego nie ma - i myślę, że to jest kwestia czasu jak te koncepcje przejdą do innych języków.

tylko co
: no ja widzę że ludzie w nim piszą webserwisy, więc niekoniecznie. To uniwersalny język praktycznie do wszystkiego.


@Krolik: faktycznie. Rust jest pierwszym prawdziwie niskopoziomowym językiem, który może być alternatywą dla wielu popularnych zastosowań (w porównaniu C/C++) więc pod tym względem jest rewolucyjny

choćby brakuje mu abstract class/interface i nie jest w ogóle ogarnięty na pracę OO.


@sorek: bo Rust jest nowy i nie musiał używać tego designu. Zresztą sam
każde dziedziczenie da się zastąpić kompozycją, tudzież switchem


@Krolik: ale ani ładne to ani przydatne. Od tego jest dziedziczenie byś mógł sobie fajne rzeczy robić i szybko a później na nich nadbudowywać - jak klocki lego i komponenty.

@Saly: rip in peace inheritance ( ͡° ʖ̯ ͡°)
ale ani ładne to ani przydatne. Od tego jest dziedziczenie byś mógł sobie fajne rzeczy robić i szybko a później na nich nadbudowywać - jak klocki lego i komponenty.


@sorek: gdzie klocki LEGO mają dziedziczenie? Klocki się ze sobą łączy. A do tego jest właśnie kompozycja. A switch jest często znacznie czytelniejszy (i czasem wydajniejszy) niż dynamic dispatch - od razu widzisz wszystkie ścieżki którymi może pójść kod. W przypadku dziedziczenia
Od tego jest dziedziczenie byś mógł sobie fajne rzeczy robić i szybko a później na nich nadbudowywać - jak klocki lego i komponenty.


@sorek: klockowatą architekturę zapewniają interfejsy i kompozycja. Jeśli zastąpisz kompozycję dziedziczeniem to scalasz dwa klocki w jeden, bo użytkownik interfejsu i implementacja interfesu staje się jedną klasą (dziedziczącą z klasy bazowej). W takim wypadku jedyne kombinacje to klasa bazowa (która może być dalej dziedziczona) i klasa potomna. W
@Krolik:

Przełom jest w tym sensie, że jest to pierwszy praktyczny (nieakademicki) język, który ma równocześnie bezpieczne, automatyczne i deterministyczne zarządzanie zasobami


Determinizm to masz w RTOSach na odpowiednich, wspierających platformach. Nie w Ruście.

(bez konieczności używania GC) oraz który statycznie gwarantuje brak wyścigów w danych.

Pod tym względem jest to unikat, żaden inny język na razie tego nie ma - i myślę, że to jest kwestia czasu jak te koncepcje