Byla vydána (𝕏) květnová aktualizace aneb nová verze 1.101 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.101 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
V Brně na FIT VUT probíhá třídenní open source komunitní konference DevConf.CZ 2025. Vstup je zdarma, nutná je ale registrace. Na programu je celá řada zajímavých přednášek, lightning talků, meetupů a workshopů. Přednášky lze sledovat i online na YouTube kanálu konference. Aktuální dění lze sledovat na Matrixu, 𝕏 nebo Mastodonu.
Vyloučení technologií, které by mohly představovat bezpečnostní riziko pro stát, má umožnit zákon o kybernetické bezpečnosti, který včera Senát schválil spolu s novelami navazujících právních předpisů. Norma, kterou nyní dostane k podpisu prezident, počítá rovněž s prověřováním dodavatelů technologií pro stát. Normy mají nabýt účinnosti od třetího měsíce po jejich vyhlášení ve Sbírce zákonů.
Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.6.
Po Red Hat Enterprise Linuxu a AlmaLinuxu byl v nové stabilní verzi 10.0 vydán také Rocky Linux. Přehled novinek v poznámkách k vydání.
Bylo vydáno Eclipse IDE 2025-06 aneb Eclipse 4.36. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.
Americká filmová studia Walt Disney a Universal Pictures podala žalobu na provozovatele populárního generátoru obrázků pomocí umělé inteligence (AI) Midjourney. Zdůvodňují to údajným porušováním autorských práv. V žalobě podané u federálního soudu v Los Angeles označují firmu za „bezednou jámu plagiátorství“, neboť podle nich bez povolení bezostyšně kopíruje a šíří postavy z filmů jako Star Wars, Ledové království nebo Já, padouch, aniž by do nich investovala jediný cent.
Ultra Ethernet Consortium (UEC), jehož cílem je optimalizace a další vývoj Ethernetu s důrazem na rostoucí síťové požadavky AI a HPC, vydalo specifikaci Ultra Ethernet 1.0 (pdf, YouTube).
Francouzský prezident Emmanuel Macron chce zakázat přístup na sociální sítě pro děti do 15 let. Francie podle něj tento krok udělá sama do několika měsíců, i pokud se na něm neshodnou další státy Evropské unie. Reaguje tak na úterní vraždu vychovatelky, kterou ve východofrancouzském městě Nogent pobodal 14letý mladík. Jednotlivé sociální sítě podle něj mají možnost věk ověřit a vymáhat zákaz pomocí systémů na rozpoznávání tváří.
Byl aktualizován seznam 500 nejvýkonnějších superpočítačů na světě TOP500. Nejvýkonnějším superpočítačem zůstává El Capitan od HPE (Cray) s výkonem 1,742 exaFLOPS. Druhý Frontier má výkon 1,353 exaFLOPS. Třetí Aurora má výkon 1,012 exaFLOPS. Nejvýkonnější český počítač C24 klesl na 165 místo. Karolina, GPU partition klesla na 195. místo a Karolina, CPU partition na 421. místo. Další přehledy a statistiky na stránkách projektu.
Kdybyste se měli učit znovu programovat, v jakém jazyce by to bylo?
V dnešní době se na výuku programování používá jazyk Pascal, případně Java (možná i C#). A co vy, pokud byste si mohli vybrat jazyk, v němž se chcete naučit programovat, jaký by to byl? Byl by to Ada, Pascal, C, C++, C#, Java, Lisp, Perl, Python, Ruby, Scheme, Visual Basic, anebo úplně jiný? Který jazyk by to byl?
Já se učil programovat v Basicu na ZX Spectru, na GOTO, DIM, GOSUB
už asi nikdy nezapomenu . Pak jsem se dostal k Pascalu, a jeho kouzelné
uses crt
a věčné begin, end, var
. Jenže poté, co jsem poznal C se mi Pascal přestal líbit a dodnes k němu mám nevysvětlitelný odpor. C je naprosto magický jazyk, jeho oprátory ++, ^, %, *, &
člověka přesvědčí, že tohle je ten správný jazyk pro velké programátory.
C++ mě zase tolik neuchvátil, jeho ukecanost std::map
mě přišla zbytečná a samotný Bjarne Stroustrup, tvůrce jazyka, pronesl něco ve smyslu, že v C++ je možné si snadno ustřelit celou nohu. Nicméně objektové programování jsem používal prvně v něm (v Object Pascalu, který byl v TP 7.0, to moc nešlo). Naproti tomu, když jsem poznal Javu, zjistil jsem, že tento jazyk programátora přímo vede k používání tříd a také návrhových vzorů (teda v porovnání s C++).
Přesto bych si na první seznámení s programováním nevybral ani jeden z nich. Pokud bych znova začínal, chtěl bych se učit Python. Podle mě je to jazyk, který nepostrádá jistou eleganci, ale zároveň je velmi mocný a pokrývá většinu oblastí, takže má praktickou použitelnost. Dokonce si říkám, že se těžko nenajde oblast, kde by Python neexistoval, snad mimo systémového programování.
Neznám sice Perl, k němuž je přirovnáván, ale výrok Bruce Eckella o Pythonu jako spustitelném pseudokódu a Perlu jako spustitelném šumu na lince asi hovoří za své. Můžu jen říct, že mi na počátku přišel kód v Pythonu srozumitelnější, než jeho protějšek v Perlu.
Na závěr přidávám pár odkazů
Jaký jazyk byste nejraději si vybrali jako výukový?
Update: Honza "thingwath" Bartoš, alias NBA, mi připomněl, původní vznik slova Python. Tak vězte, název tohoto jazyka vznikl ze slavných Monthy Python. To, kdybyste se divili, že nejčastější název metaproměnné v Pythonu není foo
, ale spam
.
Tiskni
Sdílej:
Ono je hlavně důležité, aby se člověk naučil algoritmicky myslet a aby měl určité povědomí o tom, jak počítač pracuje. Na konkrétním jazyce pak až tak moc nezáleží (pomineme-li speciality typu LISP nebo Prolog).
def dictionary(): return {'jeden':1,'dva':2}Podobný příklad (ať už jakkoliv nesmyslný) by v C++ by zabral daleko více místa, sice by byl efektivnější a rychlejší, ale pro výuku je to IMHO irelevantní.
libstdc++
) #!/usr/bin/perl # 472-byte qrpff, Keith Winstein and Marc Horowitz # MPEG 2 PS VOB file -> descrambled output on stdout. # where k1..k5 are the title key bytes in least to most-significant order s''$/=\2048;while(<>){G=29;R=142;if((@a=unqT="C*",_)[20]&48){D=89;_=unqb24,qT,@ b=map{ord qB8,unqb8,qT,_^$a[--D]}@INC;s/...$/1$&/;Q=unqV,qb25,_;H=73;O=$b[4]<<9 |256|$b[3];Q=Q>>8^(P=(E=255)&(Q>>12^Q>>4^Q/8^Q))<<17,O=O>>8^(E&(F=(S=O>>14&7^O) ^S*8^S<<6))<<9,_=(map{U=_%16orE^=R^=110&(S=(unqT,"\xb\ntd\xbz\x14d")[_/16%8]);E ^=(72,@z=(64,72,G^=12*(U-2?0:S&17)),H^=_%64?12:0,@z)[_%8]}(16..271))[_]^((D>>=8 )+=P+(~F&E))for@a[128..$#a]}print+qT,@a}';s/[D-HO-U_]/\$$&/g;s/q/pack+/g;evalnebo tohle:
#!/usr/bin/perl -w # 531-byte qrpff-fast, Keith Winstein and Marc Horowitz # MPEG 2 PS VOB file on stdin -> descrambled output on stdout # arguments: title key bytes in least to most-significant order $_='while(read+STDIN,$_,2048){$a=29;$b=73;$c=142;$t=255;@t=map{$_%16or$t^=$c^=( $m=(11,10,116,100,11,122,20,100)[$_/16%8])&110;$t^=(72,@z=(64,72,$a^=12*($_%16 -2?0:$m&17)),$b^=$_%64?12:0,@z)[$_%8]}(16..271);if((@a=unx"C*",$_)[20]&48){$h =5;$_=unxb24,join"",@b=map{xB8,unxb8,chr($_^$a[--$h+84])}@ARGV;s/...$/1$&/;$ d=unxV,xb25,$_;$e=256|(ord$b[4])<<9|ord$b[3];$d=$d>>8^($f=$t&($d>>12^$d>>4^ $d^$d/8))<<17,$e=$e>>8^($t&($g=($q=$e>>14&7^$e)^$q*8^$q<<6))<<9,$_=$t[$_]^ (($h>>=8)+=$f+(~$g&$t))for@a[128..$#a]}print+x"C*",@a}';s/x/pack+/g;evaltak jsem z toho takový trošku nesvůj
Otázka je, jak by vypadaly výsledky, kdyby se do nich ládovalo něco jiného ;-)No, v příštím roce budeme navíc brát Pascal
add r1, add r2, r3
, když mají v assembleru sečíst tři čísla. Jen podotýkám, že v době, kdy jsem tam chodil já, tak jsme takové problémy neměli.
Ad správa paměti, v jednom předmětu jsme dělali v Pascalu jednoduchý garbage collector, takže dnes jsem o to vděčnější, že něco takového udělali někteří už za mě.
S tou pamětí... Podle mne má člověk přinejmenším zkusit dělat si správu paměti sám. Lidi, kteří se naučí jazyk, který má X jako zabudovanou vlasnost (X = správa paměti, hashové tabulky, RTTI, HTTP sessions, ...), většinou netuší, jak taková věc funguje a jak ji využívat správně a efektivně -- k tomu je zapotřebí pohled o úroveň níž.No a na jakou až úroveň jít? Nejsem fyzik a nevím k čemu všemu už se při rozebírání světa dostali, ale nemyslím, že by k efektivnímu programování bylo třeba rozumět dejme tomu polovodičům
dám tam bublesort, počítače jsou dneska rychlé...a to je bubblesort "jen" kvadratický. Je pořád dost lidí, kteří se klidně hotoví použít algoritmus s exponenciální nebo faktoriální složitostí! Ostatně, vzpomínám na to, když jsem ve škole, v předmětu "Problémy a algoritmy", chtěl ukládat data do (sekvenčně prohledávaného) pole s tím, že "jich není zase tolik". Když se mi před očima program brutálně zpomaloval, bylo mi jasné, že takhle to nejde
f(n){return n<2?1:f(n-1)+f(n-2);}
Tedy v K&R céčku, 'gcc -Wall
' by měl asi řeči… Pří troše štěstí by možná mohlo projít i
f(n){return n<2?1:f(--n)+f(--n);}
int f(int n){return n<2?1:f(n-1)+f(n-2);}atd.
-ansi
, -pedantic
, -std=c89
, -std=c99
i další. GCC (3.3.5) to vždy přeložilo.
-Wall
vyhodí jeden warning, s -std=c99
dva… Ale v těch učebnicích to takhle samozřejmě nevypadá, tam je to hezky rozepsáno. Na příšernosti té implementace to ovšem nic nemění…
To je nejspíš věčný omyl, s podobným způsobem uvažování jsem se poprvé setkal už někdy kolem roku 1988…
var A : array[1..N] of integer
…" Druhá skupina měla Kryla (našeho "pedagoga" jmenovat nebudu, on za to vlastně nemůže), do počítačové učebny se za celé pololetí nepodívali, o Pascalu se začali bavit až asi po čtvrt roce, ale o programování se toho naučili podstatně více než my; u nás to bylo tak, že kdo programovat uměl, výklad ignoroval, a kdo ne, ten se z něj stejně nic nenaučil. Ponaučení ponechám laskavému čtenáři za cvičení…