ugrás a tartalomhoz

I wrote a website in Rust and lived to tell the tale

MadBence · 2015. Jún. 1. (H), 19.05
A Rust nyelv előnyei és hátrányai egy webes projekt esetén
 
1

Sokat várok tőle, de

Joó Ádám · 2015. Jún. 1. (H), 19.20
Sokat várok tőle, de komolytalan, hogy nincs mögötte valódi sztenderd leírás, a mindenhol hivatkozott könyvben pedig teljes szakaszok hiányoznak „to be added” megjegyzéssel.
2

Ha a Rust valaha is sikeres lesz...

ydsMo9gx · 2015. Jún. 2. (K), 00.25
...akkor az nem ez a terület. Nem kell hinned nekem, hosszasan érvelni meg nem fogok ebben a kérdésben, de nagy összegben fogadnék erre.

Azt azért megemlítem, hogy a Rust már most nagyon összetett és körülményes, ezek a vonásai pedig csak erősödhetnek. Lassú a fordítója, és aligha lesz sokkal gyorsabb. Kis projekthez "ágyúval verébre", nagyhoz túl lomha, és amit cserébe nyújt, arra pont ezen a területen nincs akkora szükség.

Lesznek hozzá kiváló könyvek, oktatóanyagok, libraryk és keretrendszerek. Mindezek nem segítenek az említett problémákon.

Még annyit, hogy szerintem mihez lesz jó: zöldmezős kernelfejlesztésekhez, beágyazott rendszerekhez, nagy és (legalább részben) sebességkritikus szoftverekhez. Zöldmezős kerneleknél ne op'rendszerre gondolj, hanem például IoT-re és ahhoz kapcsolódó összetettebb dolgokra. A "nagyhoz túl lomha" és a "nagy és (legalább részben) sebességkritikus" között nincs ellentmondás, mert futásidőben sebességkritikus kódokhoz kiválóan beválhat, és például a böngészők (lásd a Mozilla és a Rust kapcsolatát) pont nagyok és sebességkritikusak. Lassan fordít a Rust compilere? Sebaj, ha cserébe könnyebb fejleszteni benne, mint C-ben. Na, ezért.
4

kernelekhez...

ydsMo9gx · 2015. Jún. 3. (Sze), 17.52
...ilyen képességekre (is) van szükség. Nem a 151 byte a lényeg, hanem a teljes önállóság, libraryktől, runtime-októl, op'rendszertől.

A cikkbeli példa ugyan linuxos, de lejjebb is mehetünk a Rusttal, valóban a "csupasz fémig".

Ilyen példákból érezhető, miért nem fejleszthető op'rendszer igazán magas szintű nyelvekben. Netes fejlesztésekhez viszont ritkán kellenek ennyire alacsony szintű (low level) lehetőségek, sokat segít viszont a szemétgyűjtés kényelme (Rustból szándékosan hagyták ki, nem is lesz benne), a gyakori apró módosításokhoz jól jön a gyors fordíthatóság (ezt sem várhatjuk a Rusttól). És míg egy kernel vagy egy nagy, sebességkritikus szoftverrendszer fejlesztői csapata többnyire veterán fejlesztőkből áll, és eléggé zárt, addig a netes fejlesztéseknél lazábbak a személyi követelmények, emiatt fontos a forráskódok könnyű olvashatósága, egyszerűsége. Rustban is írható egyszerű kód, de akkor pont elveszítjük az előnyeit.

Nyilván fejleszthetünk Rustban is webre, de nem a legjobb eszköz erre a célra, és sosem lesz az. És a célhoz érdemes eszköz(öke)t választani, nem fordítva.

Kb. ennyi az a hosszabb érvelés, amire első nekifutásra nem vállalkoztam. A Rust tetszik, nagyon örülök neki, webre nem ajánlom, hosszabb távon sem.
5

Ha a Rust valaha is sikeres

Joó Ádám · 2015. Jún. 4. (Cs), 02.47
Ha a Rust valaha is sikeres lesz... ...akkor az nem ez a terület. Nem kell hinned nekem, hosszasan érvelni meg nem fogok ebben a kérdésben, de nagy összegben fogadnék erre.


Ezt nem értem, miért írod nekem, én nem webes platformot várok tőle, teljesen egyetértünk a hozzászólásodban egyébként leírtakkal. Én az Ada örökösét látom benne, ha lesz belőle valami.
7

Bocs

ydsMo9gx · 2015. Jún. 5. (P), 01.08
MadBence blogmarkhoz írt szövegét és a te 1. hozzászólásodat is neked tulajdonítottam, figyelmetlenül.

Igen, Ada, C, C++ utóda lehet.
3

friss példa a Rust előnyére C++-hoz képest

ydsMo9gx · 2015. Jún. 3. (Sze), 17.23
Measuring data structure sizes: Firefox (C++) vs. Servo (Rust) A tl;dr lényeg a cikk végén.

Példa egyben az erősen típusos nyelvek (lehetséges) előnyeire is. Itt írtam bővebben arról, hogy nem a statikus típuskezelés a fontos, hanem az erős típusosság.

És példa arra, miért nem mindegy, milyen nyelv(ek)ben fejlesztünk. Visszatérő gumicsont (nem itt, a Weblaboron), hogy az igazán profik bármilyen (épelméjű) programnyelvvel tudnak eredményesen dolgozni.
6

Visszatérő gumicsont (nem

Joó Ádám · 2015. Jún. 4. (Cs), 02.54
Visszatérő gumicsont (nem itt, a Weblaboron), hogy az igazán profik bármilyen (épelméjű) programnyelvvel tudnak eredményesen dolgozni.


Paul Grahamnek van egy nagyszerű esszéje ezzel kapcsolatban.
8

Nem ugrik be...

ydsMo9gx · 2015. Jún. 5. (P), 02.17
..., hogy melyikre gondolhatsz. Jókat ír, de régen olvastam. Kereséssel hármat találtam, melyik illik ide?

Az igazán profik szerintem ki tudják választani a feladathoz legjobban illő nyelvet, és ha nem ismerik (elég jól) azt, akkor vagy megtanulják (ha van rá idő), vagy nem vállalják el a feladatot. És ez az alapállásuk más eszközöknél is, nem csak a nyelveknél. Esetleg bevonnak alvállalkozót, de ahhoz meg kell bízniuk benne.

Vannak, akik ha jó pénzt szagolnak, akkor bármit elvállalnak, aztán üsd-vágd, nem apád módszerrel össze is gányolnak valamit, hogy megkapják a pénzt. Utána lelépnek, kínlódjon a végtermékükkel valaki más. Ők is profik, de másféle skálán mérve.

Ez a két véglet, a köztes spektrumba esik szinte mindenki. (Én is. Rövid az élet, nem vagyok hajlandó bármit megtanulni, sem bármilyen munkát elvállalni.)
9

Kereséssel hármat találtam,

Joó Ádám · 2015. Jún. 6. (Szo), 20.08
Kereséssel hármat találtam, melyik illik ide?


Beating the Averages, egész pontosan a The Blub Paradox című szakasz.
10

Nim, Rust két friss ellenpélda

ydsMo9gx · 2015. Jún. 7. (V), 00.54
if you have a choice of several languages, it is, all other things being equal, a mistake to program in anything but the most powerful one
Az olvashatóság még fontosabb. Kivétel lehet egy összeszokott csapat, amíg nem kell mást bevonni. Ketten írták a Viawebet? Akkor ez jó példa erre, és rossz példa a Lisp kiemelkedő erejére, mert AST-n dolgozó, higiénikus makrók Rustban és Nimben is vannak. Nimben még használni is könnyű őket (Rustot nem ismerem ennyire).

A Lisp olvashatósága siralmas, és nem a zárójelek miatt.

No és a Viaweb sikere inkább múlott a jó időzítésen, mint bármi máson.
11

A lényeg nem ez lett volna,

Joó Ádám · 2015. Jún. 9. (K), 00.40
A lényeg nem ez lett volna, hanem, hogy szépen levezeti, miért baromság az érvelés, miszerint „az igazán profik bármilyen (épelméjű) programnyelvvel tudnak eredményesen dolgozni” :)