( Andrei | 2020. 09. 02., sze – 14:09 )

Disclaimer: c++-t programozok penzert, tehat nem vagyok elfogulatlan egyaltalan.

Ha csak a feature-oket nezem a c++ is meglepoen modern nyelv. Mas kerdes, hogy a nyelv tervezesi alapelvei kozul melyik az, ami fontos es relevans ma is. Egyetertek azzal is, hogy Linus nem volt tulzottan motivalt abban, hogy a kernelt megnyissa a c++ fejlesztok fele.

De ha mar bashingeljuk a prognyelveket, akkor nyilvanvaloan nem csak a c++ hazanal van szemet:

1. A Go-nak pl. garbage collectora van. A felreertes onnan ered, hogy a Go-t rendszerprogramozasi nyelvnek szantak, de nem abban az ertelemben, hogy irjunk benne kernelt, hanem mondjuk irjunk benne szerveralkalmazasokat, halozati szolgaltatasokat (docker-t, IPFS-t, VPN klienst, adatbazis szervert stb. stb.). Szerintem a c++ is itt muzsikal a legjobban.

2. A Nim eleg partizan dolog. Community es nemi intezmenyi tamogatas nem artana moge. Marmint pl. gondolom egy magyar NIM konferenciara nem kellene kiberelni a Millenarist. Addig arrol beszelunk, hogy valakiknek pokolian sokat kellene dolgoznia, azert, hogy annak a 10 NIM fejlesztonek meglegyen a teoretikus lehetosege, hogy irjon egy kernelmodult. Egyszeruen nem lenne gazdasagos.

3. A Swift-nel szerintem soha nem is volt fokusz az, hogy ilyesmire hasznaljak. Vegignezve a feature listat (marmint kernelfejlesztesi igenyek alapjan), szerintem minden, amit tud a Swift, tudja a Rust is, csak jobban. Nem azt mondom, hogy a Swift szarabb, mint a Rust, mert amint arrol van szo, hogy mobilappot akarok csinalni iOS-re, egybol kivilagosodik az eg.

A Rust ebbol a szempontbol talan tenyleg a legjobb valasztas lehet, *ha* ugy dontottunk, hogy megprobaljuk ledobni a c-t mint legacyt. Strategiailag szerintem nem a legokosabb dontes. Ha engem kerdeznek, akkor irjanak egy kernelt Rust-ban (a la Redox), es mutassak meg, hogy a Rust velelmezett elonyei mennyivel faszabb eredmenyeket hoz. Bar a Rust tenyleg nagyon jo dolog, jot mosolygok, amikor azt latom, hogy a crate-ek egy jelentos resze bewrappel unsafe lib-eket (libmysqlclient, rocksdb, libpng, libpg, sqlite, curl, libopenssl (!!!) lehetne sorolni a vegtelensegig). Kicsit arrol van szo, hogyha irsz egy 5000 soros Rust service-t, akkor meg ott fog ketyegni alatta 100000 sornyi c/c++ kod es azt probaljuk allitani, hogy ez igy teljesen biztonsagos?

 

Ettol fuggetlenul en kivancsi vagyok ra, hogy mi lesz a kimenetele dolgoknak ezen a teren es kicsit drukkolok is a Rust-nak.