Portál AbcLinuxu, 7. května 2025 18:40
Chandler Carruth z Googlu představil na konferenci CppNorth věnované programovacímu jazyku C++ nový programovací jazyk Carbon. Mluvil o něm jako o experimentálním nástupci C++.
Tiskni
Sdílej:
posledni dobou je nejak moc moderni prichazet s nahradami vcelku osvedcenych jazyku, ktere se postupne modernizuji.Ano. Tyhle nové jazyky se vyvíji posledních asi tak 10 let. Důvod je celkem prostý - předchozí generace jazyků se sice nějakým způsobem vyvíjí, ale nemůžou dělat žádné podstatnější inovace, protože mají ruce svázané zpětnou kompatibilitou a komplexitou nabalenou za předchozí dekády. C++ není schopné vyřešit problémy např. s
unique_ptr
nebo třeba podporu Unicode (to mi přijde jako neuvěřitelná fraška), správa dependencí je taky na příšerné úrovni (neexistuje jednotný standard pro specifikaci dependencí). Move-semantics sice přidali, ale je to oproti Rustu příšerně komplikované a ve výsledku stejně horší. Java např. nebyla schopna přidat podporu hodnotových typů.
Ano, s novými jazyky jsou určité problémy jak pro firmy (hiring) tak i pro programátora (užší výběr práce). Ale osobně přechodu nelituju, znamená to pro mě mnohem míň frustrace během práce... Muset celé hodiny nebo dny řešit problémy, které jsou v podstatě zbytečné a s nějakou jinou/novější technologií by byly vyřešené za 5 minut, to je pro mě spolehlivá cesta k vyhoření...
Mám to dost podobně, díky za komentář. Programování mám dneska spíš „za odměnu“ – když můžu v klidu sednou a neřešit nic jiného, jen si psát kód, tak je to víc radost než práce – a to celkem bez ohledu na jazyk nebo technologii. Spoustu času zabírají ty ostatní činnosti – které jsou ale nutné k tomu, aby se to dotáhlo do konce a dodalo (bez toho je krásný kód k ničemu). Před tím je zase nějaká příprava, kdy se taky neprogramuje. Takže toho času stráveného psaním kódu je poměrně málo. Proto mi přijdou trochu žabomyší války, když někdo moc hrotí „efektivitu“ ve smyslu počtu napsaných řádků nebo znaků, které ten který jazyk vyžaduje. Něco trochu jiného je bezpečnost, prokazatelnost… ale většinou nic není zadarmo a je potřeba vážit, co člověk získá a co ho to stojí.
Co se týče nových technologií, tak tam jde o to, že schopnost absorbovat nové jazyky, technologie, metodiky nebo třeba i nové kolegy je omezená – týká se to jak jednotlivců, tak týmů nebo celé firmy. Toho nového nesmí být příliš málo, protože pak člověk/firma zaostává, ale taky toho nového nesmí být příliš moc, protože to paralyzuje a brání to vykonávat tu běžnou každodenní činnost, která je nezbytná. Nový jazyk, technologie, metodika nebo člověk v týmu představuje v první řadě náklad a zpomalení – až po nějaké době se projeví přínosy. Proto je ty nové věci potřeba dávkovat nějakým přiměřeným tempem a ne chtít změnit a zlepšit všechno najednou.
Samotny programovaci jazyk nebo kodeni neni pro mne posledni roky nejvetsi priorita. Na vetsim nebo slozitejsim software zabere hodne casu architektura, analyza.Volba programovacího jazyka i dalších technologií je součástí architektury a analýzy. Myslet si, že se ta věc nějak abstraktně navrhne a pak se to už jenom v něčem napíše a je vlastně jedno v čem, není úplně smysluplná. Volba jazyka má implikace na všechno od práce programátorů přes testování, deployment a/nebo distribuci až po třeba support.
Nerikam, ze jsem jako mladsi nebyl progresivni a ne za by to obcas nebylo mimo.Doporučuju nezapomínat kontext diskuse/zprávičky. Koncem 2000s došel Google k tomu, že se nechtějí zabývat složitostí C++ pro služby, které to nutně nepotřebují, a přišel s jazykem Go, který je dnes celkem rozšířený. Zhruba ve stejné době došla Mozilla k tomu, že fakt nechce psát prohlížeč v C++, a přišla s Rustem. S Kotlinem přišla firma tvořící populární IDE pro Javu. Teď Google došel k tomu, že C++ pro něj není dobrý i tam, kde potřebují maximální výkon / nemůžou použít Gočko, a zkoumají cestu, co s tim. Možná z toho taky bude nezanedbatelný počin. Můžem si o těchto firmách myslet co chcem, ale určitě to není partička juniorních amatérů, co nechápe význam analýzy/architektury a snaží se ušetřit 10 bezvýznamných řádek kódu...
Můžem si o těchto firmách myslet co chcem, ale určitě to není partička juniorních amatérů, co nechápe význam analýzy/architektury a snaží se ušetřit 10 bezvýznamných řádek kódu...Tak jako Ti juniorni amateri mi pripadaji lide, co se snazi nasazovat jazyk bez ohledu na to, zda je to celkove vhodne. Specielne co se tyce Kotlinu, tak si myslim, ze firma co vyviji IDE ma ponekud mensi obrat nez treba vetsi korporace. A od toho se vyviji, jak bude treba resit problemy s jazykem nebo kompilatorem/generatorem a delat podporu. To same muze byt pripad Google, kde kdyz nezobrazite reklamni banner, tak se nic nestane. Jsou ale provozy, ktere vyzaduji trosku vetsi spolehlivost a nemusi to byt nutne zdravotnictvi nebo letovy provoz. gf
Tak jako Ti juniorni amateri mi pripadaji lide, co se snazi nasazovat jazyk bez ohledu na to, zda je to celkove vhodne.S tím zcela souhlasim, měnit jazyk je vhodné jenom někdy, zdaleka ne vždycky...
Specielne co se tyce Kotlinu, tak si myslim, ze firma co vyviji IDE ma ponekud mensi obrat nez treba vetsi korporace. A od toho se vyviji, jak bude treba resit problemy s jazykem nebo kompilatorem/generatorem a delat podporu.No, Kotlin nesleduju zas až tak úplně podrobně, nicméně za vypovídající považuju, že Google ho prohlásil za primární jazyk pro Android (dříve Java).
Jsou ale provozy, ktere vyzaduji trosku vetsi spolehlivost a nemusi to byt nutne zdravotnictvi nebo letovy provoz.To je docela ironická poznámka, protože větší spolehlivost je právě jeden z těch důvodů, proč nové jazyky vznikly, specielně třeba u Rustu to je víceméně raison d'être. I ten Kotlin podporuje non-nullable typy a různé null-safety featury, které Java nemá. Dtto třeba TypeScript, tj. JS + type-checking.
Jsou ale provozy, ktere vyzaduji trosku vetsi spolehlivost a nemusi to byt nutne zdravotnictvi nebo letovy provoz.
To je docela ironická poznámka, protože větší spolehlivost je právě jeden z těch důvodů, proč nové jazyky vznikly, specielně třeba u Rustu to je víceméně raison d'être. I ten Kotlin podporuje non-nullable typy a různé null-safety featury, které Java nemá. Dtto třeba TypeScript, tj. JS + type-checking.Pro mne je treba dulezita placena podpora od Oracle na Javu a dalsi veci. Parkat do roka v urcitych provozech nastane problem s JVM nebo DB strojem, ktery potrebujete rychle vyresit a neni vubec trivialni to resit vlastnimi silami. Obavam se, ze to je neco, co si od Google nebo Jetbrains nekoupite. Da se bez toho take zit, o tom zadna. Ale prinasi to urcite problemy. gf
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.