Portál AbcLinuxu, 6. května 2025 04:32
Lide vidi Perl 5 a Perl 6 a mysli si, ze Perl 5 se nevyviji (viz napr. srovani Python 2 vs. Python 3). Proto se misto pokracovani Perl 5.xxx prejit na 7 (On Linus v dobach kernelu 2.6 udelal neco podobneho - nechtel mi kerne 2.6.xxx).
Což byl problém (z pohledu uživatele) pouze psychologický. Za to nyní, kdy se vývoj upře na 7 a 5 bude „podporován“ deset nebo pět let, tak to bude problém faktický: Budou dva perly, každý s jinou (do 8 jen s výchozí) syntaxí, vzájemně nekompatibilní. Tedy přesně to, co se stalo Pythonu. Už vidím ty hádky, o tom, co je /usr/bin/perl a proč ta samá distribuce ze CPANu funguje s jednou, ale ne s druhou verzí interpreteru.
Lepší by bylo, kdyby rovnou přiznali, že zpětná kompatibilita brzdí vývoj jazyka a že od verze 7 si lidi mají zvyknout na překotné změny a kdyby verzi 5 prostě přestali podporovat. Vyslali by tak zcela jasný signál, o tom, že vázat se na verzi 5 nemá budoucnost. Takhle se, jako u Pythonu, najdou chytráci, co budou odmítat přechod, čímž budou brzdit celý ekosystém a nutit lidi podporovat obě verze najednou po dlouhých pět nebo deset let, a pak stejně nic nepřepřeportují a utečou jinam s nadávkami, jak je přechod na o pět/deset let novější verzi jazyka obtížný.
Pletete jablka a hrušky. Perl 6 nikdy nebyl prezentován jako další verze Perlu, na kterou uživatelé Perlu mají přejít. Vždy bylo jasně řečeno, že se jedná o úplně jiný jazyk. I těch pár distribucí na CPANu mělo vždy vlastní názvy, aby nekolidovaly (než se odstěhovaly na GitHub).
To ale není případ Perlu 7, kdy se říká, že se jedná o další verzi, na kterou uživatelé Perlu musí přejít do 5 až 10 let. Navíc nikdo neřeší CPAN a všichni doufají, že to tak nějak samo vyhnije^Wse přeportuje. Jenom dnes jsem tam zachytil nové verze dvou distribucí, které přidaly kompatibilitu s Perlem 7.
Moje věštba je, že Perl 7 po bolestivém přechodném období nahradí Perl 5 a že živé distribuce na CPANu prostě přestanou Perl 5 podporovat. Perl 5 pouze dožije na již existujících instalacích, kde stejně nikdo nic neaktualizuje.
Ale máte pravdu, že tyhle kotrmelce odradí další lidi.
use p5;
, kterým se kód momentálně hemží. Jenže on tam nevydrží věčně. Perl porters mají problém, že držení podpory pro starou syntaxi a sémantiku znemožňuje implementovat novinky. Proto chtějí podporu pro staré verze odebírat. A proto oznámili, že od verze 7 budou novinky jednu verzi experimentální a po tom budou automaticky zapnuty. Což je zásadní změna přístupu oproti Perlu 5. Doufá se, že kód, který automaticky zapínané novinky rozbijí, bude rychle přizpůsoben, takže potřeba držet podporu pro starý jazyk zmizí, a tudíž ji bude možné odstraňovat, a tudíž bude možné přidávat novinky. Proto taky to varování, že po verzi 8 můžeme čekat velké změny. Ostatně proto v tom odkazovaném commitu má modul p5 die podmíněný verzí 8. A že implicitní zapínaní novinek bude potichu rozbíjet kód, není jen můj stesk.
Vy naopak melete nesmysly. Perl 6 byl prezentován jako další verze Perlu už tím, že se jmenoval Perl. Nebo snad máme v budoucnu pro jistotu kontrolovat, zda Perl 8 nebude ve skutečnosti třeba C++, a Perl 9 třeba Brainfuck? Existují určité zažité standardy, a mezi ně patří očekávání, že Perl 6 je další verze Perlu 5. Jestli to Larry Wall myslel jinak, tak je debil.Pletete jablka a hrušky. Perl 6 nikdy nebyl prezentován jako další verze Perlu, na kterou uživatelé Perlu mají přejít.
Když zmiňujete psanou normu ... je to právě Raku, které je definované specifikací namísto implementace.
Vyvíjet produkt označený jako nová verze Perlu 15 let tak, že výsledkem je spíše jazyk úplně nový je samozřejmě marketingově velmi nešťastné ... to ale přeci není důvod, proč nevyvíjet nové jazyky. Teď mají verze Perlu v názvu Perl a číslo opravdu označuje verzi, verze 5 může stále počítat s dlouhodobou podporou bez nekompatibilních změn, Raku má jméno odpovídající "jinému jazyku" a vlastní verzování specifikace (c,d,e,...) - asi je to pozdě, ale už to dává smysl a možným očekáváním to odpovídá.
Programovací "jazyk" si na lingvistiku těžko může jen "hrát".
- slozity
- blba syntax
- dobastlene OOP
- pochybny multithread
- garbage collector is garbage
- nekonzistentni s IEEE 754
- nekompatibilni Regex
vyhody Perlu:
- nebudou te otravovat devcata, forever alone
- kdyz neco domrdas v team projektu tak nikdo nezjisti kde to tece a kdo to zpusobil
- nemusis chodit do kostela, perl je sekta sama o sobe
- kdyz te nekdo logicky skripne a dokaze ti ze Perl je sracka tak mas po ruce svate zaklinadlo: Raku
- muzes si pekne vydelat protoze perliste vymreli a novacci s krikem utikaji
#!/usr/bin/perl $==$'; $;||$.| $|;$_ ='*$ ( ^@(%_+&~~;# ~~/.~~ ;_);;.);;#) ;~~~~;_,.~~,.* +,./|~ ~;_);@-, .;.); ~ ~,./@@-__);@-);~~,.*+,. /|);;;~~@-~~~~;.~~,. /.);;.,./@~~@-;.;#~~@-;; ;;,.*+,./.);;#;./@,./ |~~~~;#-(@-__@-__&$#%^';$__ ='`'&'&';$___="````" |"$[`$["|'`%",';$~=("$___$__-$[``$__"| "$___"| ("$___$__-$[.%")).("'`"|"'$["|"'#"). '/.*?&([^&]*)&.*/$'.++$=.("/``"|"/$[`"|"/#'").(";`/[\\`\\`$__]//`;" |";$[/[\\$[\\`$__]//`;"|";#/[\\\$\\.$__]//'").'@:=("@-","/.", "~~",";#",";;",";.",",.",");","()","*+","__","-(","/@",".%","/|", ";_");@:{@:}=$%..$#:;'.('`'|"$["|'#')."/(..)(..)/".("```"|"``$["| '#("').'(($:{$'.$=.'}<<'.(++$=+$=).')|($:{$'.$=.'}))/'.("```;"| "``$[;"|"%'#;").("````'$__"|"%$[``"|"%&!,").${$[};`$~$__>&$=`;$_= '*$(^@(%_+&@-__~~;#~~@-;.;;,.(),./.,./|,.-();;#~~@-);;;,.;_~~@-,./., ./@,./@~~@-);;;,.(),.;.~~@-,.,.,.;_,./@,.-();;#~~@-,.;_,./|~~@-,. ,.);););@-@-__~~;#~~@-,.,.,.;_);~~~~@-);;;,.(),.*+);;# ~~@-, ./|,.*+,.,.);;;);*+~~@-,.*+,.;;,.;.,./.~~@-,.,.,.;_) ;~~~ ~@-,.;;,.;.,./@,./.);*+,.;.,.;;@-__~~;#~~@-,.;;,.* +);; #);@-,./@,./.);*+~~@-~~.%~~.%~~@-;;__,. /.);;#@- __@- __ ~~;;);/@;#.%;#/.;#-(@-__~~;;;.;_ ;#.%~~~~ ;;() ,.;.,./@,. /@,.;_~~@- ););,.;_ );~~,./ @,. ;;;./@,./| ~~~~;#-(@- __,.,.,. ;_);~~~ ~@ -~~());; #);@-,./@, .*+);;; ~~@-~~ );~~);~~ *+~~@-); ~~@-@-_ _~~@- ~~@-);; #,./@,.;., .;.);@ -~~@-; #/.;#-( ~~@-@-__ ~~@-~~ @-);@ -);~~, .*+,./ |);;;~ ~@-~~ ;;;.; _~~@-@ -__);. %;#-( @-__@ -__~~; ~~@-;; ;#,. ;_,.. %);@-,./@, .*+, ..%, .;.,./|) ;;;) ;;#~ ~@-,.*+,. ,.~~ @-); *+,.;_);;.~ ~);); ~~,.; .~~@-);~~,.;., ./.,.; ;,.*+ ,./|,.); ~~@- );;;,.( ),.*+); ;#~~/|@- __~~;#~~ $';$;;
nekompatibilni RegexNekompatibilní s čím? PCRE je de-facto standard.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.