Az amerikai nemzetbiztonság szerint is felejtsük már el végre a C-t és a C++-t

Az amerikai nemzetbiztonság szerint is felejtsük már el végre a C-t és a C++-t
2022-11-11T11:18:10+01:00
2022-11-14T15:58:23+01:00
2022-11-14T16:15:29+01:00
  • Es ebbel mely nyelvek mennek GC nelkul ?

    A Rust GC nélkül megy. De miért is baj ha GC-t használ a nyelv?
    Mutasd a teljes hozzászólást!
  • Mindig a memóriabiztonsággal jönnek...

    Nem átallanak a valóságban gyökerező és jól mérhető, illetve kimutatható metrikákkal érvelni egy jobb megoldás mellett ahelyett, hogy a nosztalgiára, szubjektív szépségre, meg személyes preferenciákra hivatkoznának, mi?

    És én előbb hiszek egy olyan embernek akinek 30 év kemény low-level programozási tapasztalata van, mint aki pár éve "bohóckodik" valamit valamelyik felkapott nyelvben.

    1. A te érvelési hibád: Tekintélyre hivatkozás Amihez képest az, hogy "30 év kemény low-level tapasztalat" nem is valamiféle tekintélyt parancsoló dolog, hanem inkább csak a maradiság és a beszűkült látókör indikációja, már csak ráadás.
    2. A te érvelési hibád: Hamis kompozíció / felosztás Bohóckódni bármilyen nyelvben lehet, akár low-level és 30 éven keresztül is; és egy felkapott nyelvben is lehet nagyon komoly munkát végezni.
    3. A te érvelési hibád: Személyes kétely Ezek nem hitkérdések, és nem arról van szó, hogy kinek hiszel.

    Egyébként ha már annnyira a C-t szeretik szapulni, mondjon nekem valaki olyan nyelvet amiben nem lehet hibát ejteni!

    A te érvelési hibád: Szalmabáb  

    C-ben több dologra kell figyelni, cserébe hatékonyabb (ha nem a leghatékonyabb nyelv) és pont ez a szépsége.

    Hát, nem. A Rust-hoz képest a C semmivel sem hatékonyabb. Ergo, nem is szebb. (Arról, hogy a szépség a szemlélő szemében van, már nem is beszélek.). Egyszerűen csak egy relikvia, ami megszokásból maradt sokáig velünk (és fog is még egy darabig), nem pedig azért, mert annyira hatékony vagy jó dolog lenne.
    Mutasd a teljes hozzászólást!
  • Es ebbel mely nyelvek mennek GC nelkul ? Nyilvan egy koverzioval barmelyik tudja, de az ugye sokat nehezit a fejlesztesen.
    Mutasd a teljes hozzászólást!
  • Ha megnezem, hogy C-ben milyen fejlesztesek voltak az elmult evtizedben ( C11, C17, C20), kb gyarkolatilag semmi.
    C++-nal jobb a helyzet, de minden verzional egy nagy csalodas er, hogy a jo dolgokat mar megint nem sikerult beletenni. Nagyon vartam az async programozast, de egylore csak compiler szinten van tamogatas, talan majd C++23-ban lesz valami - vagy nem.
    Ezen kivul fejlesztenek 3 fo compiler-t (gcc, cland, MS compiler), ami meg csak hagyjan, de hogy 3 implementacioja van a standrad library-nak, azt nem tudom megerteni.

    Ha a Rust Cargo-t mondjuk egy Conan/CMake parossal osszehasonlitom, akkor nekem a Cargo sokkal szimpatikusabb. 

    Amennyire en latom a Rust egyre inkabb lenduletbe jon, es egy par even belul mainstream-me valik. Hasznaljak a kerneltol kezdve alkalmazas fejlesztesre, db-re, es egyre tobb webassembly projektet latok. Ha megcsinaljak, hogy webassembly-bol jo sebesseggel elerheto lesz a DOM, szerintem a Javascript visszakerul oda ahova valo: ki callback-ek irasara.
    Mutasd a teljes hozzászólást!
  • Mindig a memóriabiztonsággal jönnek...
    Köztudott, hogy a C nem biztonságos, de nem is az a célja. Ennyi erőből az assemblyre is lehetne mondani, hogy ne használja senki, fúj fúj, mert veszélyes. Mégis használják néha, mert KELL. A C ugyanilyen, kvázi egy fancy, kényelmesebb, könnyebben kialakított assembler. És van ahová ez kell. A biztonság meg a programozó feladata kéne, hogy legyen.

    Ahogy egy bölcs ember mondta:
    "Nothing is better than C."
    Ez az ember történetesen Linus Torvalds és szerintem ehhez neki is lenne pár szava.
    És én előbb hiszek egy olyan embernek akinek 30 év kemény low-level programozási tapasztalata van, mint aki pár éve "bohóckodik" valamit valamelyik felkapott nyelvben.

    Én nem akarom bántani a többi modernebb nyelvet, a Rust például ígéretes, de akkor sem ugyan olyan, mint a C, nem cserélhető ki teljes egészében a C a Rust-al. Oké, hogy biztonságosabb, de a biztonság nem minden!

    Egyébként ha már annnyira a C-t szeretik szapulni, mondjon nekem valaki olyan nyelvet amiben nem lehet hibát ejteni!
    Hibák, biztonsági rések szinte mindig vannak és lesznek is, függetlenül a nyelvtől. C-ben több dologra kell figyelni, cserébe hatékonyabb (ha nem a leghatékonyabb nyelv) és pont ez a szépsége.
    Mutasd a teljes hozzászólást!
  • Nem hype nyelv, hanem biztonságosabb nyelv. És nem akkor ha nem tudsz programozni - mert hiába tudsz programozni, akkor sem vagy tévedhetetlen, illetve korlátlan szellemi kapacitással rendelkező

    A világ legjobb programozói is ejtenek hibákat - hát még a maradék! Olyan hibákat is, amiket ha ráirányítják a figyelmüket felismernek hibaként, mert csak figyelmetlenségből, elgépelésből születtek (és elégtelen tesztelés miatt bent maradt - a ha fordul, átmegy a statikus ellenőrzésen akkor biztos jó lesz tévhit alapján) - meg olyanokat is, amiket esetleg nem is látnak meg hibaként, hiába vezetnék rá őket, annak komplexitásánál és/vagy ismereteik korlátozottságánál fogva.

    De egyébként meg igen: minél kevésbé ért valaki ahhoz, amit csinál, annál inkább dolgozzon olyan nyelvben, ami megvédi a saját hülyeségétől, tudatlanságától! Annál inkább rögzítse, illetve írja ki N+1. alkalommal is a típusokat, és annál inkább dolgozzon olyan nyelvben, ami rákényszeríti az adatok életciklusának követésére, ami nem engedi túlcímezni (illetve a túlcímzést végrehajtódni) a struktúrákat, nem enged típusokat átértelmezni, stb!
    Mutasd a teljes hozzászólást!
  • Szoval ha hulye vagy es nem tudsz programozni akkor ugrasz valami ujabb hype nyelvbe. :)
    Mutasd a teljes hozzászólást!
  • Nyilván, ha olyan rendszert kell fejleszteni, ahol a relatív natív sebesség nem fontos, vagy a platform biztonság az első, akkor azt meg lehet írni "memóriabiztos nyelv"-ben

    Ez az alkalmazások túlnyomó részére igaz. C#-ban, Javaban a feladatok igen jelentős részében nagyon hasonló, vagy azonos sebességet lehet elérni, mint ezekben a nyelvekben. Ahol ennél több kell (vagy kevesebb, már ami az erőforrásokat, kimondottan a memóriahasználatot jelenti), arra meg ott a Rust, ami jóval többet nyújt memóriabiztonság terén, mint a C/C++. 

    A TIOBE Index-en láthatóak a számszerű adatok.

    A TIOBE index legnagyobb jóindulattal is egy lassú index, ami a mai trendek leolvasására nagyon mérsékelten alkalmas. Sokkal inkább egy érdekesség, amit érdemes figyelni. Van egy csomó trend, ami nem jelenik meg benne láthatóan, és sokkal erősebb indikátor egy nyelvre, mint az index értéke. Lásd pl a Rust kedveltsége, OS fejlesztésben aktív elterjedése, Kotlin standard nyelvvé válása Androidon, TypeScript elterjedtsége, VB támogatottságának tizenévvel ezelőtti befejezése stb. Ezekből semmit nem látsz az indexben megjelenni.
    Mutasd a teljes hozzászólást!
  • Azt megértem, hogy a C és a C++ memória kezelése sok hibának ad(hat) szabad utat, de ezekben a platformokban éppen ez egyik nagy erősség. Nyilván, ha olyan rendszert kell fejleszteni, ahol a relatív natív sebesség nem fontos, vagy a platform biztonság az első, akkor azt meg lehet írni "memóriabiztos nyelv"-ben, de azért egyből "temetni / elfelejteni" egy nyelvet, csak azért, mert a fenti problémákat okoz(hatja), elég meredeknek hangzik.
    Van ahol éppen erre van szükség. Az most mindegy, hogy milyen megfontolásból, vagy célból. De például - csak hogy egy triviális területnél maradjunk - a desktop játékfejlesztésben elég nehezen tudom elképzelni a Ruby-t vagy a Go-t, mint elsődleges platformot. Nyilván a platform megválasztása is tervezési kérdés, előre kell tudni a felmerülő követelményeknek helyes nyelvet választani. Arról meg ne is beszéljünk, hogy a nem túl távoli múltban indított nyelvek (Go, Ruby, Rust és a Swift (a cikkből kivéve a példákat)) mennyire fognak időtállóan bevállni. Oké, hogy már most is sokan használják ezeket, de még mindig nem tudhat maga mögött akkora kódbázist és fejlesztői támogatást, mint a C, vagy a C++. A TIOBE Index-en láthatóak a számszerű adatok. De ezt is majd az igények döntik el, csak a C / C++ ennyire éles temetése, nem hiszem, hogy helyes irány lenne.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd