Occhei, mi sono guardato un po’ in giro, leggendo di diversi software - per lo più open source e/o free… e mi sono in qualche modo stupito di quanti fork vi siano: in linea di principio penso che siano un bene, perché comunque nascono con l’intento di far evolvere qualcosa e magari superare dei limiti imposti da una certa licenza o da certe politiche di sviluppo. Però alla fine scazza ritrovarsi con due o tre incarnazioni di una stessa “robba” ciascuna delle quali con delle caratteristiche desiderabili che le altre non hanno. Ecco allora che uno vorrebbe il processo inverso: il merge. Solo che poi, questioni di licenza a parte, magari le “robbe” finiscono per divergere troppo per permettere il merge…
Ecco allora il progetto programmatico dello zio bleiz per un gesto simbolico contro i fork!
Lo zio bleiz si propone di prendere un progetto relativamente semplice: il linguaggio (originariamente didattico) Hoc
An improved Hoc interpreter was included in Research Unix, but it has not been generally adopted by commercial Unix systems or by Linux distributions. […] Several improved versions of Hoc were also released by individuals (see list below).
E la lista è:
- an extended version of Hoc by Nelson H. F. Beebe.
- an extended version of Hoc by Nadav Y. Har’El.
- an extended version of Hoc by Jack Dennon.
- an extended version of Hoc by Michael Hines, John W. Moore, and Ted Carnevale.
Le fasi successive saranno:
La domanda è: quando?!?
Una vignetta nel linguaggio artificiale Lojban. Suppongo che potrebbe far ridere… (via perpetuum-immobile.de)
Note a margine della considerazione di HariSeldon, che mi sono astenuto dall’inserire nella stessa fra parentesi quadre per non appesantirla troppo:
“Conservatore” […] è giustissimo: nel senso che prima di cambiare una cosa importante che funziona bene voglio analizzare nelle minuzie infinitesime tutte le parti dell’alternativa.
Allora anche nel mio caso “conservatore” […] è giustissimo: nel senso che prima di cambiare una cosa più o meno importante che funziona anche solo a cazzo purché non totalmente a cazzo, voglio analizzare nelle minuzie infinitesime tutta una serie di dettagli che poi… non c’avrò la benché minima voglia di guardare neanche da lontano. Questo, quando mi viene un attacco di buona volontà. Normalmente, non c’avrò voglia di cambiarla e basta.
A me il nuovo va benissimo se è migliore del vecchio, ma essere nuovo non è condizione sufficiente per essere migliore.
Infatti ridendo e scherzando (poco, ché a me vien più da piangere!) son passati ormai quasi 15 anni da che se ne parla, ma non ancora ho superato lo sfrantamento di maroni per “il nuovo che avanza:” macazzo, se a loro avanzava proprio a noi dovevano rifilarcelo?!?
Sempre gli scarti ci toccano! (Per il link ne ho scelto uno a caso, ma neanche troppo a caso…)
“Perlguy” & Larry Wall (via The Camel Tattoo Pictures)
Visto che oggi il post principe continua ad essere abbastanza da nerd, ci sta anche la foto di un altro tatuaggio da nerd: certo che di questo non dico “che tristezza!” Eccerto: è un po’ il simbolo, ancorché non ufficiale, del più bel linguaggio di programmazione del mondo…
Dedicato con affetto & stima a nikink, che so che apprezzerà!
Forse saprete che alcuni (nerd) sanno che il C, inteso come linguaggio di programmazione, si chiama così perché “viene dopo il B.” La genealogia più precisa e pignolina, come stabilita dall’HOPL (che ho appena scoperto - e vi assicuro che se non è una pignoleria quella dell’NB qui sotto, non so cosa al mondo possa esserlo!) sarebbe:
Lasciando perdere gli ALGOL, il punto è che andando a ritroso fino ad un certo punto si trovano ancora un bel po’ di informazioni. Per esempio di BCPL (1967) non solo è disponibile il manuale di riferimento, ma anche una distribuzione completa, ed inoltre è interessante sapere che:
Ma il CPL…del CPL non riesco a trovare molto: e non è che chieda molto. Volevo solo vedere du’ cazzo di righe di codice! Giusto per vedere che faccia hanno… Sulla pagina dell’HOPL dice:
Partially implemented on the Titan (Atlas 2) computer at Cambridge. According to Higman (1977, 2nd Edition) the language did not “survive the demise of the machine.”
Per cui le speranze non sembrano essere molte. Però vi dovrebbero essere un po’ di articoli in qualche rivista specializzata, (beninteso, non sono uno storico dei linguaggi e non inizierò un pellegrinaggio per biblioteche, anche perché con tutta la buona volontà del mondo adesso non potrei!) fra cui uno disponibile online: peccato che richieda una sottoscrizione, ed io da casa non ce l’ho proprio. Vabbe’, chiederò più tardi agli amici cernioti o affini…
Totò e Peppino a Milano
Vabbe’, va! Consoliamoci con questa scena indimenticabile: ma… senza esagerare, eh!
“The basic tool for the manipulation of reality is the manipulation of words. If you can control the meaning of words, you can control the people who must use the words.”
— Philip K. Dick, How To Build A Universe That Doesn’t Fall Apart Two Days Later (1978) - via The Quotations Page, mudwerks, yellowblog, mezzomondo (via blazar)So che l’autocitazione è malvista, ma in quest’occasione me ne fotto, perchè di recente è stato pubblicato un affascinante romanzo-rompicapo di cui si parla troppo poco ed ispirato a questo concetto in modo totale. Si intitola “Le memorie dello squalo.”
Se l’autocitazione sia malvista lo ignoro e se lo è me ne fotto! Io adoro l’autoreferenzialità. Detto per inciso, il ribloggaggio da queste parti può assumere forme piuttosto nascoste, ma proprio per questo interessanti, come ad esempio in una mia recente “risposta” che in pratica è il reblog del reblog di un mio post.
Venendo al punto da te toccato, anch’io mi ripeto perché mi sta a cuore: i linguaggi, che si tratti di naturali o addirittura di programmazione “hanno a che fare,” sono influenzati da come la gente pensa e lo influenzano a loro volta. Le citazioni si potrebbero sprecare… Ed infatti penso che prossimamente ne cercherò qualcuna. Per adesso, visto che hai fatto un riferimento letterario, mi terrò anch’io in questo ambito, limitandomi a menzionare la Neolingua “inventata” da quel geniaccio di George Orwell per 1984, il cui fine specifico
non è solo quello di fornire, a beneficio degli adepti del Socing, un mezzo espressivo che sostituisse la vecchia visione del mondo e le vecchie abitudini mentali, ma di rendere impossibile ogni altra forma di pensiero. Una volta che la neolingua fosse stata radicata nella popolazione e la vecchia lingua (archelingua) completamente dimenticata, ogni pensiero eretico (cioè contrario ai princìpi del partito) sarebbe divenuto letteralmente impossibile, almeno per quanto attiene a quelle forme speculative che derivano dalle parole. (via Wikipedia, con enfasi aggiuntiva mia!)
Ed ora: i lupini… come cazzo stanno?!?
Cosa è la serendipità? Ne abbiamo già parlato; una delle “definizioni” più belle e significative che ho trovato è data in termini di una metafora:
Serendipity is looking in a haystack for a needle and discovering a farmer’s daughter.
— Julius Comroe Jr.
Nel mio caso, il pagliaio può essere un thread particolarmente fuffoso su PerlMonks; l’ago, un post non eccessivamente stupido su cui spendere uno dei miei voti quotidiani (sapete, durante il weekend è un po’ un mortorio…) e la figlia del fattore… un bellissimo post a sorpresa di Larry Wall a.k.a. TimToady, nello stesso thread fuffoso e noioso! Micacazzi!!
Il problema discusso era banale: quello di generare la successione 1, 11, 111... ed incline perciò a far partecipare ogni sorta di niubbi che si son sentiti autorizzati a fornire la loro “autorevole” soluzione, cioè, come spesso accade in tali casi, a passare informazioni se non proprio sbagliate, quanto meno inclini agli errori, mentre altri, più esperti, si sono divertiti a darne di “alternative” o fantasiose o in altro modo giocose, cioè perfettamente funzionanti ma non corrispondenti in alcun modo a ciò che uno farebbe nella cosidetta “vita reale” sempre che ne esista una! Ad un certo punto, qualcuno menziona Haskell, ed è a questo punto che $Larry interviene, col suo solito wit:
Tsk, tsk, Haskell is such a verbose language. :) In Perl 6 it’ just:
[\~] 1 xx *where that just says “make an arbitrarily long list of 1’s and reduce them using concatenation (the ~ operator), returning partial results in a list.”
Ciò che ho imparato di nuovo, da questo post, è il metaoperatore, [\ ] variante di [ ], come mi è stato gentilmente spiegato. Ma non è finita qui! La novità più nuova è:
the new spiffily readable
...infix, it’s even shorter:
1...{$_~1}That just extends the list on the left by concatenating a
1onto the previous last value of the list.
Che dire? Fantastico!
bIlujDI' yIchegh()Qo'; yIHegh()!It is better to die() than to return() in failure.