Prostě lidi zaplatit, to je celé.
Mě se u článku nelíbí to "jsme asociální" jako by to v dnešní době byl v IT nějaký standard. Běžně mám kolegy co chodí do posilovny, řeší stravu, to jestli mají značkové spodky, nebo jestli na ně poletí baby.
IT se proměnilo, je to normální dobře placený obor jako třeba právník. A u právníka taky nikdo nečeká, že to bude asociální knihomol který bude dělat svoji práci z lásky k řešení komplexních právních sporů, tak proboha proč tohle očekáváme v IT?
Souhlasím s Vámi, dneska už ajťáci nejsou jen podivní šmudlové někde ve sklepeních firem. ;-)
Ale vzpomněl jsem si na toho týpka, jak se jmenuje, Altair Valášek, co si myslí, že je kůň? Nebo zástupy bezejmenných obtloustlých ajťáků, co oblibují My Little Pony, co se oblékají jako malé holčičky/zvířátka v šatičkách nebo co to je... :-)) Já vím, to jsou ujeté extrémy.
Altair se určitě pobavil, když si tenhle komentář přečetl :D
Nevšiml jsem si žádného výrazného zastoupení My Little Pony mezi lidmi v IT branži - máte nějaké příklady těch "zástupů bezejmenných obtloustlých ajťáků", nebo je to jen další dojmologie?
> Mě se u článku nelíbí to "jsme asociální" jako by to v dnešní době byl v IT nějaký standard. Běžně mám kolegy co chodí do posilovny, řeší stravu, to jestli mají značkové spodky, nebo jestli na ně poletí baby. (...)
Tak nějak bych si tipnul, že Maria bude o tom týmu vědět trošičku víc než ty, a tím pádem je v lepší pozici volit výrazivo. Neřekl bych, že někdo čeká od ajťáka, že bude {sem vložte popis charakteru}
, ale když člověk dělá tu práci z lásky k řemeslu - ať je to truhlář, učitel nebo právník - tak v mnohém vyhrál a může na to být patřičně hrdý.
> Mě se u článku nelíbí to "jsme asociální"
Kde to tam vidíte? Já tam našel akorát "normálně komunikujeme v míře odpovídající asocialitě každého z nás". A to zní spíš jako že mají v týmu různé typy lidí.
Běžně mám kolegy co chodí do posilovny, řeší stravu, to jestli mají značkové spodky, nebo jestli na ně poletí baby.
Otázkou je, jestli ale jsou na své pozici v týmu opravdu pomocí, nebo spíše přítěží. Nechci tvrdit, že je tam nějaká relace typu ekvivalence, ale nejpoužitelnější z této sorty lidí, co jsem potkal, se vždycky totálně ztratil v detailech, přičemž podstatné věci mu unikaly, a jakýkoli kód jeho provenience se dal v průměru zredukovat faktorem 1:2 LOC.
Připadá mi, že spousta těchto typů do tohoto oboru jde jen kvůli vidině nadprůměrných příjmů. Což ostatně platí i u těch právníků. A proto se dnes tolik řeší, jak pokles průměrného IQ a schopností lidí v IT vykompenzovat o to inteligentnějšími a blbuvzdornějšími nástroji, tj. programovacími jazyky, knihovnami, frameworky a LLM.
Jenom o zaplaceni to taky neni...
V urcitou chvili (pokud teda nejedete nejakou silenou hypo) resite taky Work-Life balance...
- Jestli muzu do kanclu dojet v klidu
- Jestli kdyz cekam remeslnika muzu bejt na HO
- Jestli muzu pouzivat Linux
- Ze mam super kolegy a tym, kde si me lidi vazi a maji me radi
- Ze me napln bavi a netlucu jenom tickety
... Jako ty penize dokazou dost nahradit, ale prijde mi, ze v urcitou chvili se to zacne skladat trochu jinak
Já bych hlavně dodal, jestli můžu dělat od června do září z chalupy. Protože já už v létě do kanclu prostě chodit nebudu, to bych raději dal výpověď.
Jako ano, ale zrovna oni fakt moc platit nechtějí. A když bych pak byl ve výsldku třeba na polovině, to už je fakt dost.
> Běžně mám kolegy co chodí do posilovny, řeší stravu, to jestli mají značkové spodky, nebo jestli na ně poletí baby.
Otázkou je, zda je to dobře.
26. 6. 2025, 14:16 editováno autorem komentáře
Přesně. Ostatně zcela nedávno jsme reagoval na jejich inzerát, zaslal životopis a představu o penězích což byla celkem normální tržní cena, odpověděli neautomatizovaným mailem (což je šlechtí), ovšem něco ve smyslu, že je můj životopis sice velmi zaujal ale mé finanční požadavky jsou daleko nad jejich možnosti.
To pak je fakt těžké.
"Běžně mám kolegy co chodí do posilovny, řeší stravu, to jestli mají značkové spodky, nebo jestli na ně poletí baby."
Taky mám takové kolegy a jsou to pořád asociálové.
Uvádíte, že se při náboru orientujete hlavně podle schopnosti programovat v C ve více vláknech. Upřímně, implementovat multithreading v C je opravdu těžká úloha. Pokud to chcete po juniorech, tak se nedivím, že trpí, tohle je jednoznačně seniorní práce.
S multithreadingem by vám hodně pomohl Rust, neuvažovali jste o tom? Nemyslím tím přepsat všechno do Rustu, ale třeba zkusit implementovat nějakou novou funkcionalitu v Rustu? Taky by vám to mohlo pomoct s náborem, junioři obecně budou raději psát v Rustu než v C.
Mimochodom, zaujímalo by ma, aké ťažké je robiť thready v C. V Jave som robil, tam sa s tým robí výborne. V Rust úplne fantasticky. Ak človek nie je bota a dodržiava best practices pri práci s threadmi, tak je to dobré. C je v tomto nejak extra iné? V C som robil najviac tak multiprocessing a to už dávno, na škole.
26. 6. 2025, 11:02 editováno autorem komentáře
C je low level a nema nativni podporu threadu. Je to tam jako psat multithreading v asm. Celou implementaci od znova a nebo pouzit netransparentni libky.
Bud je to na rezimu "hurt me plenty" kdy je treba si napsat odznova ( sadismus akademicke sfery / not invented here ) a nebo pouzit extra knihovny - napr. pthread ( velmi spatne debugovatelna slizka) a nad to si dat spoustu rovnaku na ohejbaku jako valgrind nejaky debugger co umi replay atd.
Cele to ziskava zajimavou dimenzi pokud jde vylozene o cas na realtime systemech.
A presne kvuli takovym exkrementum nejsem programator.
Rozumiem, každý to rieši ináč a programátor aby ovládal všetko. Tak to sa potom nečudujem, že je problém zohnať ľudí.
Tak optional je to třeba i u Rustu. A jednovláknová prostředí je možné mít ledaskde, třeba i u Javy.
Rekl bych ze helgrind a drd rozhodne nejsou mysleny jen na single thread debug :-) I kdyz je to jak drevena pinzeta na mikrooperace.
... proto nejsem programator. Protoze to nechci resit. Mam k vecem utilitarni pristup. Nebavi mne sahodlouhe diskuse o tom jestli se vec vyrabi nebo tvori. Protoze narozdil od progrosu je na mne brime funkce dane veci. Programatorum casto chybi reality check. V bode A je vase diskuse ktera nema konce a blizi se brzy bodu B. V bode B uz umiraji lidi nebo se sypou miliardy do kanalu. A nase akademicka particka stale tlacha o nicem. To si reste na meetingu s architekty a ne na krizove porade.
Teprve az kdyz to nasi matlalove domatlaji k nepouzitelnosti a _vec_ nenahraditelna jinak nefunguje tak zacinam programovat a zhodnotim co momentalne doba nabizi za nastroje.
Problemy tohoto typu nejsou ani pro mne zajimave a je to jen nudna iterace toho sameho co jsem v minulosti uz videl.
Nejde ani tak o thready jako takové, pustit thread v C je triviální, ale jde o všechno kolem. V C je nutné řešit memory management, je potřeba hlídat data races, C nemá ani RAII pro úklid prostředků... Je to problém i při single-thread programování (kromě data races) a při multithreadingu roste kognitivní komplexita tak nějak exponenciálně, je opravdu těžké všechno udržet v hlavě a udělat správně.
Rust nabízí řešení pro memory management, úklid prostředků i data races, tohle všechno hlídá překladač. Nechci se účastnit nějaké flamewar Rust versus cokoliv jiného, ale kdybych stál před rozohodnutím, jestli dělat multitreading v C, nebo to začít postupně předělávat do Rustu, tak je to jasná volba. Zvlášť když vím, že v C tam zůstanou bugy, které Rust odchytí (člověk ty chyby prostě udělá), vývoj v C bude pomalý a neseženu vývojáře, protože v C junioři dělat nechtějí.
A v rustu chtějí?
V rustu dělají většinou lidi co už dávno znají C a C++ a nechcou pořád řešit ty samé bugy dokola.
Multithreading není problém ani v C nebo C++, ale prostě to vyžaduje disciplínu a hodně testování, což rust tak trochu usnadňuje, protože v safe kódu garantuje to co v C/C++ garantovat nejde.
Pokud si myslíš, že disciplína a hodně testování dokáže zaručit, že nebudou chyby související s memory managementem, ownershipem objektů a data races, tak je to tvůj názor, který nesdílím. Další věc jsou náklady na vývoj, budeš to psát pomaleji a hodně testování navíc taky není zadarmo.
Testovat musíš i ten kód v rustu.
Když už tady mluvíš o nákladech, tak psát v rustu neznamená, že to půjde rychlej. Právě naopak - ten prototyping je mnohem náročnější, protože i v prototypu musíš dodržet pravidla, jinak to ani nezkompiluješ.
Psal jsem multithreading kód v C v i Rustu. Moje zkušenost je, že v C je to fakt težké a tomu kódu v C moc nevěřím, nemám jistotu, že je správně. Můžeš si samozžejmě myslet, že jsi mnohem lepší než já a máš v C všechno pod kontrolou, to ti neberu. Nicméně ve chvíli, kdy se jedná o týmový projekt, jsi v C v pasti. Tvoji kolegové totiž nebudou tak dobří jako ty a do hlavy ti nevidí. Proto potřebueš nástroj, který bude co nejvíc věcí hlídat za tebe i za tvé kolegy. To je tak všechno, co ti k tomu napíšu.
Já jsem napsal hodně MT věcí v C++ a prostě to funguje - ale je potřeba testovat, a to hodně, a to i v tom rustu.
Jinak si nemyslím, že jsem nějaký nadprogramátor, prostě člověk nabere za ty dekády nějaké zkušenosti a ty pak aplikuje dál, a každý bug co někde opraví už nikdy neudělá znovu, atd...
"a každý bug co někde opraví už nikdy neudělá znovu"
Že má takhle naivní představy někdo čerstvě po škole bych bral. Ale někdo s dekádami zkušeností? :D
Prvni vec co opravit na skolach - povinny predmet SW engineering. Dalsi vec rizeni velkych sw projektu.
Napriklad ja 25 let delam jednu a tutez chybu. Otacim logiku veci :-P Vetsinou tam kde je nejaka volba o dvou moznostech tak tam je velka sance ze to nekde hluboko sprasim. Bitshift nebo vyhodnocovani xte podminky kde uz na konci netusim jestli mam ozenit draka nebo zabit princeznu.
>>Prvni vec co opravit na skolach - povinny predmet SW engineering. Dalsi vec rizeni velkych sw projektu.
Mám pocit, že na odbore softvérové inžinierstvo sa to učí. (mám to vyštudované) Problém je takéto niečo sa nedá nacpať do jedného predmetu, lebo to je dosť široká oblasť. Stačilo by, aby matfyzáci a elektrikári sa naučili poriadne čítať UML-ko a základné princípy návrhu aplikácii.
UML?? To nemôžete myslieť vážne. To je predsa dávno zastarané! Potvrdí vám to 11 z 10 programátorov mladších ako 40 rokov... :-)
UML je jen komunikační prostředek, společný jazyk, podobně jako třeba ArchiMate nebo BPMN. Znát „slovíčka“ a „gramatiku“ je jedna věc, ale ještě důležitější je ta myšlenka, kterou se tím člověk snaží vyjádřit.
Kdybych si musel vybrat, tak raději neuměle načmáraný obrázek na tabuli nebo papír, který ale popisuje dobrou architekturu nebo algoritmus, než „gramaticky“ správně zapsaný nesmysl.
Nicméně obdobně jako používáme stejná slova a stavíme věty stejným způsobem, tak je dobré i pro to grafické znázornění používat stejný styl, abychom si lépe rozuměli.
>>>Kdybych si musel vybrat, tak raději neuměle načmáraný obrázek na tabuli nebo papír, který ale popisuje dobrou architekturu nebo algoritmus, než „gramaticky“ správně zapsaný nesmysl.
UML diagramy majú za sebou aj techniky, ako ich správne vytvoriť. Problém je, že ich tak 90% počitačových ľudí neovláda. (Sorry za ten termín, ale neviem nájsť lepší) Osobne dávam prednosť správne vytvorenému UML diagramu, ktorý je sémanticky aj gramaticky správne a aj jeho obsah je správny. Že musia ľudia, ktorí tieto techniky neovládajú znova vymýšľať koleso, je skôr škoda. (A áno, robil som aj s BPMN na jednom projekte, len je to menej používané)
Nemyslím, že je medzi nami nejaký rozpor v pohľade na našu prácu, iba pár detailov.
UML je jen komunikační prostředek, společný jazyk
Čo bolo podľa vás hlavnou silou v rozvoji ľudstva? Asi sa nedá povedať, že komunikačný prostriedok je "jen".
Znát „slovíčka“ a „gramatiku“ je jedna věc, ale ještě důležitější je ta myšlenka, kterou se tím člověk snaží vyjádřit.
A napriek tomu majú ľudia problém s termínmi a termitmi, dojmami a pojmami, "holínkami" a hodinkami... Snažia sa niečo vyjadriť, ale nepoznajú skutočný význam slov, ktoré používajú, tak sa to, čo chcú vyjadriť, často "stratí v preklade".
Nicméně obdobně jako používáme stejná slova a stavíme věty stejným způsobem, tak je dobré i pro to grafické znázornění používat stejný styl, abychom si lépe rozuměli.
UML je podľa mňa značne nedocenené. Z hľadiska jeho vyjadrovacích schopností a toho, čo prináša samo o sebe. Bez tých ďalších nadväzujúcich vecí ako boli MDA alebo vykonávateľlé UML a ďalšie podobné pokusy, tie som vo svojej poznámke vôbec nebral do úvahy.
V tejto súvislosti si myslím, že jeden z najväčších problémov v programovaní je to, že ľudia rozmýšľajú a komunikujú v jazyku, v ktorom implementujú.
Tak to se shodneme. Já asi špatně přečetl ten předchozí komentář a bral ho doslova. Setkávám se totiž i s lidmi, kteří věci jako UML nebo metodiky považují za zbytečnosti nebo nějaké manažerské výmysly, který skutečný programátor nepotřebuje.
Je celkom bežné, že ľudia nevedia, že potrebujú, čo potrebujú. A možno ešte bežnejšie je to, že ľudia nevedia, čo nevedia. :-)
Jenomze ten predmet bych radi videl i na pribuznych oborech. Jako treba "Aplikovana informatika","Manazerska informatika", "Teoreticka informatika", Bio/Chem/Med informatika a jine. Mel jsem tu i matfyzaka ktery studoval neco jako aplikovane algoritmy. Velmi sikovny clovek ale totalne nemozny co se tyce nejake spravy kodu nebo best devel practices.
Vubec nejde o UML. To si muzete zkouset na statictejsi aplikace kde se po navrhu logika zasadne nemeni - typicky banky,embedded, aerospace atd. Jde hlavne o ty zminene principy navrhu aplikaci. A co se tyce rizeni projektu jde o to pochopit specifika rizeni SW vyvoje.
Proc mi manazeri stale dokola opakuji problem s tim ze pokud je projekt pozde tak na nej nahazou vic lidi? Idealne externi hiring bez jakkekoliv vazby na projekt?
> Proc mi manazeri stale dokola opakuji problem s tim ze pokud je projekt pozde tak na nej nahazou vic lidi?
Pretoze maju pocit, ze pomohli ako len vedeli, aby sa projekt dokoncil v stanovenych parametroch. "Urobili sme vsetko, co sa dalo". To, ze cast toho "vsetko" je kontraproduktivna uz taky problem nie je, kedze na to rec nikdy nepride a keby ano, tak sa to okeca.
Manazment nie je obmedzeny fyzickou realitou okolo seba; ale iba soft vztahmi. Takze ked sa zatlaci/ukeca na jednu aj druhu stranu, tak je to v poriadku. Nie je tam ziadny fyzikalny zakon, ze by to tak neslo, ako to maju napr. inzinieri.
Tak já jsem se třeba hodně naučil z vlastních chyb a nevšiml jsem si, že bych tu samou chybu udělal znovu. Člověk si dává pozor a třeba i ví, co nejvíc testovat, atd...
Mozna cely zivot pracuje na jednom prohektu a poctive pise uni testy. To by pak tohle slacker prohlaseni davalo smysl.
Tohle je tak pitomý komentář. Rust fakt není všespasitelný a to by si měli uvědomit lodi co ho všude propagují.
Tzn. ze ctvrt zivota jste studoval C++ a zbyvajici ctvrt realne programoval? Neznam mnoho lidi kteri skutecne umi a plne ovladaji cely ten balast.
> V Jave som robil, tam sa s tým robí výborne
Jak v Javě, tak v C platí, že vytvořit nové vlákno je ta jednoduchá část. Napsat program tak, aby spolehlivě fungoval bez různých race conditions, to je ta složitější část. Bez znalosti použitého memory modelu (jak v C, tak v Javě), se některé věci mohou chovat někdy nepředvídatelně. Zápis do paměti v jednom vlákně nemusí být hned viditelný ostatním vláknům. Dokonce jednotlivé zápisy nemusejí probíhat v přesně stejném pořadí. A ani čtení.
Ano, v Javě máme hromadu pomůcek, jako Futures a Executors, které nás odstíní od největších pastí, pak není nutné používat přímo Thread a řešit synchronizaci na každém rohu. Ale i tady, zvlášť při sdíleném stavu, lze narazit.
Zdielané stavy a mutables treba obmeziť na minimum. Viem, že je to môj mokrý sen a v kóde, ktorý zdedím to tak nie vždy býva, ale dá sa to prežiť.
Spis si rikam jestli se cely ten projekt neubira podivnym smerem.
Prepsani do Rustu asi muzeme tezko ocekavat vzhledem k prednasce slecny (pani) Matejkove na FOSDEM 2025:
https://fosdem.org/2025/schedule/event/fosdem-2025-6606-imposing-memory-security-in-c/
Pokud se v tom projektu objevuji takove hruzy, pak misto reseni funkcnich problemu mate co delat abyste v tom byli schopni vubec neco udelat.
Proste ano, i v dnesni dobe lze programovat pomoci maker a C, ale pripomina mi to kopani zakladu lopatou zatim co sousedum prijede bagr. A neni se co divit ze do toho ma malokdo chut.
26. 6. 2025, 09:44 editováno autorem komentáře
Proc by mel delat neco zadarmo jenom aby nekomu neco dokazal? Jaky je z toho realny uzitek?
Jeho prace to navic neni.
To sice není, ale kritizovat existující open source projekt jen kvůli tomu, že není v jazyce, v jakém by si ho někdo jiný předstatoval... Co na to jako odpovědět?
Už mi jen chybí další názor typu "kdyby radši dělali [přidej cokoliv co potřebuješ...]"
Je to komerčně vyvíjený projekt, který má zjevně svoje problémy, z velké části způsobené volbou C na začátku. Nikdo tady nenavrhoval všechno přepsat do Rustu, ale spíš Rust vyzkoušet pro novou funkcionalitu, což jde udělat relativně snadno, interoperabilita C a Rustu je dobrá,
Není to o nějaké ideologii, tak to tomu přistupuješ možná ty. Je to o tom, že jsou technické nástroje, např. Rust, které tomu projektu mohou v dlouhodobém horizontu hodně pomoct. Vývojáři BIRDu tento názor asi nesdílí, nicméně je to jejich boj a jejich peníze, to je asi tak všechno, co se k tomu dá říct.
Reagoval jsem na stiznosti uvedene v clanku ze na tom nikdo nechce delat.
Zjevne pouziti nastroju a postupu, ktere jsou vetsinou programatoru povazovanych za zastararale/podivne stezuje praci do te miry, ze i seniorni zamestnanci se boji do kodu zasahovat.
Nezlobte se na me, ale timto bych se jako (spolu)autor projektu moc nechlubil.
Tohle asi těžko soudit, dokud se v tom kódu člověk nepohrabe sám a nezkusí si tam reálně něco udělat. Většina firem se navenek tváří, jak jim jde o kvalitu, že oni to dělají jinak, lépe atd. – to se dozvíš, když s nimi jednáš jako potenciální zákazník nebo že bys pro ně chtěl pracovat. Ale když to pak vidíš zevnitř, tak ta realita je mnohem mnohem horší. Takhle to funguje prakticky všude a je potřeba se na to připravit. Tenhle článek je takový otevřenější a přináší spíš ten pohled zevnitř. Jaké články chceme na Rootu? Marketingové kecy a mazání medu kolem pusy nebo tohle?
Ono je to spis tak, ze on i samotny konfigurak Birdu je sam o sobe... tak trosku programovaci jazyk - uz tim je to cele ponekud specificke. A fakt se tam daji delat ruzne psi kusy :-) A vcelku se i drzi kompabilita, probublat si od v1 pres v2 k v3 nebyl zas takovy bolehlav - narozdil od jinych "frikulinskych" pristupu, kdy ti programatori v ramci zmen vam prekopou pulku syntaxe, protoze proto. Nerikam, ze s v Birdu nezmenilo nic... ale troufam si rict, ze ty zmeny proste meli logiku danou rozsirenim historickych funkcionalit (a treba spojenim ipv4+ipv6 do jednoho daemona) - a nikoliv takovy ten rozmar ala (treba) me se uz nelibi yaml, prepisem to do jsonu a ty milej uzivateli... no vsak tu aroganci vyvojaru u jinych projektu zname..
Soucasne se Bird zacal pouzivat na mistech, kde uz samotne konfigurace jsou dosti komplexni - typicky model dnes je nejaky internet exchange, stovky peeru, hromada prefixu, precizni filtry... a to vam tu cernou magii proste instantne vytvori. Zkuste si ten samy config udelat treba s Quaggou... budete rad, kdyz vam nevybouchne a nepodpali stroj, na kterem bezi ;-) Ano, je to specificky segment.. v zasade male mnozstvi takovych instalaci - ale stoji vam na tom nezanedbatelna cast internetu. A to co byvalo v Birdu mozna "jen" pomale u jinych implementaci znamenalo realny kolaps.
Aneb nekdy ty duvody, proc ten kod je takovy jaky je muzou byt z kategorie... ze je proste nevidite. Ztotoznuji se s tezi ze clanku, ze spoustu lidi dokaze vydesit uz samotne BGP. Ano, i ten protokol ma sve historicke mouchy - na druhou stranu, tam si moc revoluci dovolit ani nemuzete... a muzete si rikat co chcete, ale lepsi implementaci BGP jsem nepotkal. A ano, o multithread se snazi i nekteri vyrobci skutecne komercnich krabic... a teda zadna hitparada.
Takze nezlobte se na me, ale mozna rozumite "surovemu" programovani, ale nechapete specifika toho konkretniho produktu, o kterem je rec...
Přijde mi, že pokud v dnešní době veřejně prezentují projekt jako " Některé části našeho kódu (třeba filtry) jsou pak navíc prakticky černá magie, na kterou i seniorní sekce týmu sahá s bázní a třesením.", pak by se vedení projektu mělo zamyslet, zda by se něco nemělo dělat jinak. To se pak nelze divit, že nemohou sehnat nové lidí.
26. 6. 2025, 10:59 editováno autorem komentáře
Čili požadavek zní: sháníme zkušeného truhláře, který má praxi s ručními nástroji jako čepovka, dlátko, klasický dřevěný hoblík, s nimiž se u nás pracuje, a nejlépe, aby se vyznal i v problematice stavební truhlařiny, ale jsme neziskovka, takže nemáme rozpočet, abychom si ho mohli dovolit zaplatit. Tak sázíme na učně, protože ty si dovolit můžeme, ale musíme si je zaučovat, protože neumějí ani rovně uříznout kus prkna.
Řešení - buď si uvědomit, kolik stojí pracovní síla s požadovanou kvalifikací, nebo si pořídit formátovací pilu, egalizační brusku, protahovačku a místo hledání mistrů truhlářů hledat obsluhy strojů.
To je poptavka na tradicniho umeleckeho truhlare :-D Mozna jeste takoveho ktery vyhovi i prazskym pamatkarum :-P Spis bych rekl jeste v japonskem stylu kde je preference tradicnich rucnich nastroju. Vc. jejich udrzby.
Jenomze oni si ti dedove za to taky reknou slusne penize.
Junior si po dvou letech uvědomí, že už není junior. S čárkou v životopisu odejde tam, kde jsou peníze.
A s výchovou nováčků můžou začít znova od nuly.
Takový placený školní projekt.
To je ještě ten lepší případ. Horší je, když si junior myslí, že je dávno senior, a takové jsem už potkal :-)
Slibem povyseni kazdy rok na reviews nezarmoutis. Stejne jako kydem ze nejsou penize.
Ja to zas vidim tak ze proste v IT nelze nikdy byt senior.
Nakonec volim metriku: rekni mi kolik pruseru jsi vyrobil a jak jsi se z toho poucil.
Jenomze proc by mel mit junior chut se dostat na seniorni pozice kdyz to nedostane adekvatne zaplaceno?
Lepsi je sbalit si svych par svestek (i te tajne v tekutem stavu co dostal od kolegu z Brna...) a zkusit to jinde. Nedava smysl zit svou karieru ze slibu a ztracet cas.
U nás je nedostatek lidí (SW firma), protože za ty peníze to nechtějí lidi dělat. Tak nabídly nějaké funkce přidat ke stávajícím lidem, a náš manažer chtěl, aby přísl. člověk dostal přidáno aspoň symbolické 2 tisíce, když bude dělat víc věcí. HR odmítlo. Máme tabulky jak ve státním sektoru 😅 Takže jsme samozřejmě odmítli.
27. 6. 2025, 23:32 editováno autorem komentáře
Ten projekt začal v roce 2000. Rust je z roku 2012, ale popularitu začal získávat až mnohem později. Jazyk D je z roku 2007. Jazyk Go 2009. Takže tyhle jazyky vůbec nebyly ve hře, protože neexistovaly. A k nějakým postupným přepisům jsem spíš skeptický. V úvahu připadalo C, C++ a Java. Zajímalo by mne, jak vypadalo rozhodování mezi C a C++. Určitě padaly argumenty, že C++ je moc složité a ošklivé, že s „čistým céčkem“ to bude jednodušší a kód srozumitelnější. Bylo by fajn si udělat nějakou upřímnou retrospektivu a vyhodnotit, zda to „čisté céčko“ stálo za to a jestli by SBRM (RAII) v C++ nepřineslo víc užitku. Je to také otázka, jestli se chceme radši potýkat s komplexitou programovacího jazyka, který se používá celosvětově a je k němu dostatek informací, nebo s komplexitou daného projektu, který zná jen pár lidí.
P.S. Případně se může vyjádřit nějaký zapřisáhlý lispař nebo haskellista, jestli by jejich oblíbený jazyk nebyl v tomhle případě lepší volbou :-)
Podle mě použít C byla blbost už tehdy. C++ měla být jasná volba. Nejde ani o to používat std kontejnery, ale třeba generika v C++ prostě stojí za to, a jestli potřebuju použít třeba linked list, tak ho chci implementovat jen 1x a ne na to mít plno maker, jak je v C zvykem. 1 implementace se totiž dobře testuje. To samé použití zámků, atd...
Dnes už by podle mě volba padla asi na rust - výkon to má víc než dostatečný na to, jaké garance ten jazyk poskytuje.
Na druhou stranu chtít po nich to do čehokoliv jiného přepsat je podle mě blbost. Já mám taky projekty v C++, které přepisovat do ničeho jiného nebudu - není na to čas ani motivace.
Tehdy byla ideologie, že "správný programátor zvládal C, zatímco C++ byla jenom pro ty, kdo neuměli spárovat malloc s free" ...
Výsledkem bylo, že každý C projekt měl svůj framework a způsoby, jak řešit věci, které v C++ byly vyřešené, přirozené, automatické a otestované.
Zajímalo by mě, zda tam byly i technické požadavky, které C++ eliminovaly. Chápu, že C++ má svoje nedostatky a třeba stále chybějící řešení pro supressed exceptions je naprostá katastrofa. Ale udělat projekt násobně komplexnější a pak si stěžovat na neefektivitu a náklady a během 25 let s tím nic neudělat...?
Ano, přepsat je blbost, pokud náklady převáží zisk. Ale tenhle projekt se relativně aktivně vyvíjí a zjevně má s volbou jazyka problémy. V případě přechodu na C++ nebo Rust může být změna postupná. Část může zvládnout LLM, pokud je kolem slušné testování...
Ono jestli ten projekt začal roku 2000, tak C++11 ještě nebylo a C++ mělo také své problémy (ne že teď je nemá).
Na druhej strane, C++ bolo značne pokročilé už vtedy, pre mňa je mílnikom moment, keď Andrei Alexandrescu vydal Modern C++ Design. A on publikoval už predtým, pamätám si kde som v C++ Users Journal čítal o RAII a aj to, kedy som tam bol naposledy. A boli aj ďalšie knihy o tom ako programovať v C++ od ďalších významých autorov. Navyše C++98 už existovalo, to síce nebolo ešte ako C++11, ale už jeho samotná existencia bola veľkou vecou.
Jenze on fakticky zacal jeste driv. V roce 2000 byla vydana verze 1.0.0. Copyright info toho prvniho release hovori o roce 1998, kdy i C++98 byla fakt horka novinka, zejo... :)
njn :-) Žiadnym spôsobom nekomentujem výber jazyka v tom projekte, iba dávam dodatočný kontext. Alebo aspoň jeho časť, ktorá je mi známa. C++ som v tej dobe používal už niekoľko rokov, tak som to prežíval a nie iba spätne o tom čítal.
Dodatok iba pre úplnosť: Aj pred C++98 pochopiteľne C++ existovalo :-)
27. 6. 2025, 12:13 editováno autorem komentáře
Jen doplním, že RAII vymyslel Bjarne Stroustrup v 80. letech. Takže ten náskok mělo C++ oproti C už tehdy.
Já trochu chápu tu snahu držet se „čistého C“ – znamená to menší závislosti, jednodušší kompilátor, jednodušší jazyk, vše jsou jen struktury a funkce, primitivní hodnoty nebo ukazatele na předešlé. Dokud v tom člověk píše malé věci, tak fajn. Je to velký pokrok oproti assembleru (který jiní v té době ještě běžně používali). Ale někdy ta inherentní komplexita řešené úlohy je tak vysoká, že vyhřezne v podobě statisíců nebo milionů řádků aplikačního kódu, které tam být nemusely a které jsou špatně čitelné a obsahují mnoho duplicit. Při použití složitějšího/mocnějšího jazyka, musí sice programátor ovládat ten složitější jazyk, ale ten aplikační kód je pak jednodušší. (pak se to ještě částečně dá řešit nějakou šikovnou knihovnou)
Protiargumentem může být Linux (nebo jiná jádra operačních systémů psaná v C). Jenže to je projekt, který dobře škáluje, protože většinu tvoří ovladače různého hardwaru a autora moc nezajímá, co se děje v jiných subsystémech nebo i jiných ovladačích kolem něj, takže ty řádky jako by pro něj nebyly (kromě pomalejšího sestavení celku). Ale i tak to funguje jen díky obrovské disciplíně a často je těžké udržet v hlavě ten mentální model kódu, nad kterým člověk pracuje.
A je nejakych ~110 tisic radku mala nebo velka vec? :-) A jinak zrovna Birda bych klidne k tomu kernelu i tim fungovanim v tomto klidne prirovnal, take tam mate ruzne v zasade nezavisle subsystemy... dokonce ani malokdy pouzijete vsechny zaraz.
Podľa riadkov sa to asi posudzovať nedá. Aj jednotlivec je schopný vyznať sa vo vyšších desiatkach tisíc riadkov, zvlášť ak je to stabilný projekt, na ktorom pracuje roky alebo dokonca dlhé roky.
Ale záleží aj na tom, aký druh projektu to je, nízkoúrovňové veci sú samozrejme náročnejšie. Takže potom záleží na použitých abstrakciách, ktoré to pochopenie zjednodušujú. Ktoré neviem, či v C sú. Potom štýl písania, testovania, dokumentácie, atď.
Naozaj veľké projekty majú desiatky miliónov riadkov kódu. Niektoré výnimočné majú aj sto a viac.
Takže 110tis. riadkov môže byť podľa zvoleného uhlu pohľadu pokojne najväčší malý projekt alebo najmenší veľký projekt.
No, ano... tady se ta diskuze trosku rozbredla do abstraktna, ale mejme na pameti, ze clanek se venuje jednomu naprosto exaktne identifikovanemu softwaru, ktery se dlouhe roky stabilne vyjiji. A software je to pomerne specificky - uz tim, co dela a jake jsou na nej kladene pozadavky (krom jineho treba rychlost konvergence s velkymi pocty peeru/prefixu).