Új, C++-gyilkos programozási nyelvet jelentett be a Google
2022-07-21T08:43:40+02:00
2022-08-29T07:57:52+02:00
2022-08-29T08:15:29+02:00
  • Boccs, nagyon reggel van... Sikerült megmagyaráznom a kommented...
    Mutasd a teljes hozzászólást!
  • Nincs ellentmondás. Ha nincs pointer aritmetika akkor szétválasztja a nyelvi felhasználást a memória modelltől! Gyk mint a javaban, minden referencia, csinálhatsz akár polimorfikus konténereket, de nem építhetsz arra, hogy a vectorod egybefüggő memóriát foglal mindig.

    Inkább adja magát a kérdés, hogy fogja automatikusan C++ kódot átforditani ennek hiányában, mert max nagyon szigorúan modern cpp been írt kódot tud.

    Én úgy látom olyan nyelv nem nagyon lesz ami egyszerre biztonságos és elegendő szabadságot is biztosít a fejlesztőnek, hogy hatékony kódot írjon. A kettő közt mindig lesz trade-off, amíg ilyen a hw architektúra.
    Mutasd a teljes hozzászólást!
  • kiad majd olyan eszközöket is, amik képesek lesznek a C++ kódok automatikusan Carbon forrásokká alakítására
    ...
    a nyelv támogatja a pointerek használatát, de azokon aritmetikai műveletek nem végezhetők

    Itt csak én látok egy leheletnyi ellentmondást?
    Mutasd a teljes hozzászólást!
  • A végén még feltalálják újra a C-t...
    Mutasd a teljes hozzászólást!
  • Nekem meg most az jutott az eszembe, hogy ez a nyelv biztosan szénné lesz optimalizálva!
    Mutasd a teljes hozzászólást!
  • Csaboka jól értette, amire céloztam. Írtak már más példát, de felhoznám még a JCP-t is a Javaval kapcsolatban. Nekem kicsit nehéz névértéken venni az idézett állítást, ezért érdemes lenne közelebbről is megvizsgálni, mindamellett nincs mélyebb rálátásom a nyelvek szabványosítását illetően.
    Mutasd a teljes hozzászólást!
  • Bevallom, nem tudom pontosan, hogy fejlesztik a python-t mint nyelvet. De arra jó példa amit a 2-es és 3-as verzió közötti váltással csináltak.

    A hármas verziót valóban túltolták kicsit, ezt implicite beismerték azzal hogy visszaraktak bele később dolgokat, a migráció megkönnyítése végett. Viszont ilyen breaking change-ek nélkül egyre csak halmozódnak a nyelvben a deprecated dolgok és a rossz megoldások, mert nem lehet őket másképp kivenni. Ha jól értem részben ezen akadt ki a Google is.

    (Vicces lehet egy kezdőnek elmagyaráznod, hogy pl. miért van enum és enum class, miért van háromféle szintaxis egy változó inicializálására stb. stb. Ezek nélkül nem fordulnának a régi kódok, de minden új fejlesztő agyi kapacitását is pazarolod vele.)

    A Java-t az Oracle fejleszti - ugye korábban a Sun - licensz kötelessé is tette. Az más kérdés, hogy a nyelv specifikációja nyílt... de az Oracle bármikor meggondolhatja magát.

    Egyből le is forkolta az Amazon (is), és karbantartja neked a régi Java verziókat amit az Oracle nem akar. Szóval nem úgy van az, hogy az Oracle bármit csinálhat és neked ahhoz mind tapsolni kell.

    stabilabb mint egy akármilyen szervezet vagy cég átlal vitt mérnöki termék.

    Az ISO akkor már nem is szervezet? Pedig a teljes neve International Organizaton for Standardization

    Nekem nem tűnik lényegesen különbözőnek, hogy valaki az ISO-ba fizet be tagdíjat és cserébe beleszólhat a C++ fejlődésébe, vagy a PSF-be fizet be tagdíjat és beleszólhat a Python fejlődésébe. Akkor jelentene ez valamit, ha ez is olyan szabvány lenne, aminek a betartására törvény kötelez.
    Mutasd a teljes hozzászólást!
  • Nekem semmi problémám nincs Chandler Carruth személyével. Lehet félreérthetően fogalmaztam, én alapvetően támogatom ezt a kezdeményezést. Korábban követtem Chandler Carruth előadásait, én is csak ajánlani tudom mindenkinek. Megnéztem a mostani előadásáat is a Carbonról, azt is csak ajánlani tudom: Carbon Language: An experimental successor to C++ - Chandler Carruth - CppNorth 2022

    A C++-ban felhalmozódott jó pár technikai adósság már, amit az ABI szavazás miatt kábé ki se lehet már javítani. Egy ilyen azért frissítés ráfért már. A C++ programozók hamar át tudnak szokni erre majd, ha eljut odáig ez a project. Azért ez jóval kisebb váltás lenne C++ programozóknak, mint pl. váltani Rust-ra.

    A C-vel való kompatibilitás sokatt tett azért, hogy elterjedjen a C++, de sajnos ez azzal is járt, hogy megörökölte a C technikai adósságát.  Ezt Chandler Carruth is kihagsúlyozta és én egyet is értek vele. Én nem bánom, hogy kicsit elszakad tőle.
    Mutasd a teljes hozzászólást!
  • A C++ az egyetlen ami ISO szabványosított

    Továbbá:
        ISO/IEC 8652:2012/COR1:2016
        ISO/IEC 1539-1:2018
        ISO/IEC 9899:2018
        ISO/IEC 9075-1:2016
        ...

    Az ISO-t mint szabványosító szervezetet egyébként én nem kedvelem. Minden mérnöki mű megismeréséért olyan összeget kér el, amit mezei halandó nem tud kifizetni. Főleg azután, hogy az üzlet odáig fajult, hogy sok szabványból szabványcsaládot csináltak és minden egyes darabjáért nagy összeget kérnek. Ezáltal ugyan létezik náluk a szabvány, de gyakorlati megismerhetőség hiányában pont alkalmazni nem fogod.
    Sokkal szimpatikusabb testület az ETSI. Ezek nem zárják el előled a szabványokat.
    Mellesleg az internet szabványát sem ISO őrzi méregdrágán, hanem az IETF RFC-k.

    Egyébként a Python és a Rust is RFC-k mentén fejlődik. Az egyik komoly probléma ezzel, hogy alapos nyelv specifikáció híján leginkább "egyimplementációs" szoftver lesz. Jelenleg az alapos megismerés és az eredeti fordító fejlesztés során gyártott sok-sok teszteset leginkább a segítség abban, hogy a Rust nyelvet a GCC fordító is ismerje. Bár vannak törekvések, hogy a jövőben elkészít a munkacsoport egy alapos specifikációt is.
    Mutasd a teljes hozzászólást!
  • Bevallom, nem tudom pontosan, hogy fejlesztik a python-t mint nyelvet. De arra jó példa amit a 2-es és 3-as verzió közötti váltással csináltak. 
    A Java-t az Oracle fejleszti - ugye korábban a Sun - licensz kötelessé is tette. Az más kérdés, hogy a nyelv specifikációja nyílt... de az Oracle bármikor meggondolhatja magát.
    A C++ az egyetlen ami ISO szabványosított ez igaz és mint ilyen, pusztán mérnöki megközelítésből, stabilabb mint egy akármilyen szervezet vagy cég átlal vitt mérnöki termék.

    Az idő úgy is eldönt majd mindent, én eddig úgy látom, nem sikerült megtörni semelyik nyelvnek, hogy kisebb, nagyobb cégek konkrét teljesítmény és/vagy HW specifikus feladatra a C/C++-t válasszák. Rengeteg cég alapult arra, hogy magát a C++ infrastruktúrát fejlessze és ebből meg is élnek. Nem hinném, hogy hirtelen lesz majd egy ilyen kompatibilis és meg/kiváltó nyelv ami miatt hirtelen mindenki eldobja amit eddig csinált.
    A google meg majd ír remek rendszereket Go-ban, Carbon-ban és persze továbbra is C++-ban is.
    Mutasd a teljes hozzászólást!
  • Mármint mi ami igaz vagy sem?

    Ha jól értem amit hosza írt, a kérdés az hogy tényleg a C++-e az egyetlen nyelv, ami szabványosításon keresztül fejlődik.

    Csak hogy egy példát mondjak, milyen cég vagy zárt közösség tulajdona a Python? Vagy mi az, amitől a Python Software Foundation zárt közösségnek számít, a C++ szabványosítási bizottság pedig nem?

    (Persze ha a szabványok alatt kizárólag ISO szabványokat értünk akkor még igaza is lehet, csak a gyakorlatban nem azon múlik a dolog, hogy a specifikációt melyik szervezet adja ki.)
    Mutasd a teljes hozzászólást!
  • Mármint mi ami igaz vagy sem? Önreklám? Azaz Stroutsup önmaga döntene egyszemélyben mi kerül a nyelvbe és hogyan? Aki kicsit is követi a szabvány fejlődésének folyamatát, ilyet biztos nem mondana... IMHO. Az, hogy valakinek nem tetszik ha valami kimarad esetleg nem úgy kerül bele, ahogy ő megálmodta, az sem egyszemélyi döntés. A C++ nak előnye, hogy a nyelv és az alap könyvtára szabványos, fordítót meg írhat bárki...és ugyanez a hátránya is persze egyben, ha nagyon le akarjuk egyszerűsíteni. Viszont mostanra, hogy a szabvány követése elvárás a fordítóktól ez kétségtelenül jó. Nem úgy mint régen, mondjuk 20 éve...
    Mutasd a teljes hozzászólást!
  • Amúgy Stroutsup erre azt szokta mondani, hogy a C++ kb az egyetlen elterjedt nyelv ami szabványosításon keresztül fejlődik, nem egy cég vagy zárt közösség tulajdona aki amíg érdeke úgy kívánja fejleszti, néha meg is hallgat külső véleményeket. De ha épp úgy fordul akkor elindulnak egy nem kompatibilis irányba önkényesen. 

    Azért persze meg lehetne nézni a top 30-40 nyelvet, hogy ez mennyire igaz, de valószínűleg ez már off-topic felé hajlik, és kinek van erre ideje egyáltalán. Vagy igaz, ami mond, vagy nem, senki nem fogja számonkérni az önreklámot...
    Mutasd a teljes hozzászólást!
  • Azért a Chandler Carruth nem egy önjelölt hülyegyerek, nagyon tud a fickó. Érdemes egy két cppcon-os videóját megnézni.
    Ugyanakkor a Google saját céljaira gyárt szoftvert a saját felismeréséből. Ezt érdemes szem előtt tartani. Azt, hogy ők ezt sok esetben open source-ba teszik egy filozófia. Szerintem a gond ott lehet, hogy sokan ezt mint valami megváltó dolgot kezdik használni. Lehet persze, de ettől még nem biztos, hogy az lesz mindenkinek.
    A C++ sikerében és elterjedésében igenis a legnagyobb szerepe a C-vel való kompatibilitás és átjárhatóság volt. 
    Érdekes felmérés lehetne, mondjuk az elmúlt 10 évben végzett fejlesztők körében elvégezni, hogy hányan tudnák mi az az ABI vagy egyáltalán a calling convention. Mert manapság ez keveseket érdekel mivel a legtöbb rendszer ezt elrejti a szemük elől, mondjuk a C++ is, mivel megoldja a fordító az esetek 99%-ban.

    Tehát amíg a Google megcsinálja a Golang-ot most ezt a Carbon-t... engem ez erre a klasszikus írásra emlékeztet: Fire And Motion
    Jó, kis túlzással, de valójában mindenkinek a saját businessére kéne koncentrálnia. Vessétek össze a Go-s és a C++ állás hírdetéseket, lehetőleg bérsávval... mindjárt meglátszik, hogy nagyságrendekkel van kevesebb Go-s fejlesztő, érthető módon. Most majd megint lesz egy még kurrensebb nyelv. Hurrá. Nem ugyanez folyik front-end téren is?

    Amúgy Stroutsup erre azt szokta mondani, hogy a C++ kb az egyetlen elterjedt nyelv ami szabványosításon keresztül fejlődik, nem egy cég vagy zárt közösség tulajdona aki amíg érdeke úgy kívánja fejleszti, néha meg is hallgat külső véleményeket. De ha épp úgy fordul akkor elindulnak egy nem kompatibilis irányba önkényesen. 
    Úgyhogy igaza is van Carruth-nak meg nincs. Ugyanakkor hosszútávon mégis csak ez működik: Standard C++

    Uff.
    Mutasd a teljes hozzászólást!
  • Feltűnő jópár szintaktikai hasonlóság a Rust és Carbon példák között és egyébként a Carbon szerzői is pozitívan utalnak a nyelvre.
    Mutasd a teljes hozzászólást!
  • A rust és ez szerintem más. Ők maguk is inkább új projektre ajálnják.

    Az, hogy tudsz C-jellegű nyelvi apikat hívni az nem kompatibilitás a RUST-tól. Például van egy libem, minden szinten fordítási időben történik. A zig is csak "majdnem" fordítja.

    Ha az a céljuk, hogy random boost libet, mindenféle széjjel trükközött cuccot is seamless használhass, olyat más tényleg nem tud. Viszont nagyobb baj, hogy maga a carbon nyelv szemre nem tetszik sajnos jelenleg pl. nekem sem. Lehet hogy megszokás kérdése, de ha már ilyen js->typescript hasonlatokkal éltek, akkor igazíthatták volna a szintaxot a C++hoz kicsit jobban. Értem, hogy vannak elhibázott dolgai, de lehet ilyen eltérések is rátesznek egy lapáttal, hogy nehezebben terjed.

    De látom lentebb valaki leírta a lényeget: volt valami gigameeting, ahol a C++ba erőszakoltak volna megint random featúrákat és nem ment át - lehet ez a motiváció tényleg...
    Mutasd a teljes hozzászólást!
  • Majd, ha az Unreal engine-t átírják erre a Carbonra, vagy Go-ra, vagy akármire, akkor lehet nézelődni, hogy na, valami kezdi leváltani a C++ t. Még tán a C# valamennyire megközelítette, de a leváltástól még az is messze van.
    Mutasd a teljes hozzászólást!
  • Szerencsére azért egyre jobban megkönnyítik a hétköznapjaimat a Rust-ban írt programok. SWC - a Babel replacer. Vagy a zoxide terminal hyper jump. Bár ez utóbbi nem annyira sebesség kritikus.
    Mutasd a teljes hozzászólást!
  • Miért akarja mindenki meggyilkolni ezt a szegény C++-t. Szegény élné nyugodtan mindennapjait, erre minden évben/két évente jön valaki, hogy nyomorúságossá tegye az életét
    Mutasd a teljes hozzászólást!
  • Egy n+1 C++ helyettesítő nyelv. Első blikkre bukásnak tűnik. A Rust régebb óta és komolyabb védelemmel se tudott nagyon elterjedni, pedig pl az MS is beállt mögé.
    Mutasd a teljes hozzászólást!
  • A lényeg elvileg az, hogy bár ez a nyelv új, nála a kétirányú C++ interoperábilitás a legmagasabb prioritás, minden más másodlagos.

    Így sokkal nagyobb esélye van leváltani a C++-t, illetve elérni egy fokozatos áttérést rá, mint más nyelveknek, amiknél sokkal nagyobb probléma az, hogy a meglévő kódbázis nagy részét vagy ki kell dobni, vagy legalábbis csak körülményesen és részlegesen lehet felhasználni az új nyelvben is.

    Ebből a szempontból nagyon hasonlít a TypeScript-re, aminek szintén az egyik nagy ütőkártyája az, hogy azonnal és közvetlenül felhasználhatóvá teszi a meglévő JavaScript kódbázisokat, így lehetővé téve a fokozatos áttérést rá.
    Mutasd a teljes hozzászólást!
  • Vajon mi a cél a Carbonnal?

    Ha csak annyi, hogy legyen picit jobb a C++-nál? Lásd C -> Go esetét. Sok jót behozott a Go,  de műszaki értelemben sok okosság kimaradt az új nyelvből.
    Ha pedig a minél nagyobb biztonság is szkópban van, akkor a Rust bátorságát követhetné a Carbon, ezzel viszont a tanulási görbe kapásból hátrány lenne.

    Az a sejtésem, hogy ismét valami félmegoldás lesz a vége.
    Mutasd a teljes hozzászólást!
  • A dolog előzménye egy 2020 februári szavazás volt a C++ szabványosító testületben, ami lényegében a bináris kompatibilitást szinte mindenek elé helyezte a prioritási listában, ezért számos újító, jobbító szándékú javaslat elbukott. Köztük a Google sajátjai is. (bővebb infó: The Day The Standard Library Died
    , Binary Banshees and Digital Demons)

    Ez oda vezetett, hogy a Google csapat megszakította az együttműködést a C++ nyelv fejlesztőivel. A twitter üzenetben is látható Chandler Carruth tech lead a LLVM/Clang fordítóban és korábban a C++ szabványosító testületben is vezette az SG7 reflection csoportot.
    Mutasd a teljes hozzászólást!
  • A Go-val nem hasonló volt a cél?
    Mutasd a teljes hozzászólást!
  • Számomra: C++ -> Rust, csak az persze nem Google érdekeltség.
    Mutasd a teljes hozzászólást!
  • Anno 27 éve a Java is C++-gyilkos nyelvnek indult, aztán az a fránya C++ azóta se bírt meggyilkolódni. Majd meglátjuk, ennek a versenyzőnek sikerül-e, de én nem fogadnék rá
    Mutasd a teljes hozzászólást!
  • Mint egy falat kenyér.
    Mutasd a teljes hozzászólást!
  • Szóval akkor a Google ezzel elismeri, hogy már sose lesz Carbon-semleges?
    Mutasd a teljes hozzászólást!
abcd