Nov 11
20:28:26.853 ▶▶ Permalink
Well, if you stood the pair of us [me and my fictional alter-ego, Sam Edwine] side by side and told him to shut the fuck up, you couldn’t tell us apart. His is the higher native intelligence, while I behave better. […] I did, once, however, like Sam Edwine, pass around pirated mimeographs of The Anarchist Cookbook to an excitable bunch of grad students in Red China, resulting in at least one of them being shot in the back of the head point-blank in a public execution. But Sam cackled about it, and I feel like a horrible shit. I never ate way too many psilocybin mushrooms in the Oaxacan jungle, stumbled on a man dying in the road, and failed to remember my Spanish grammar, because, unlike Sam Edwine, I never had any Spanish grammar in the first place. In fact, he speaks a lot more languages than I do. But I write better — otherwise he’d be answering this question about me instead of vice-versa.
Tom Bradley, perché una citazione ci voleva!
Oct 31
15:45:37.656 ▶▶ Permalink
There will always be uninformed people. That’s why there’s documentation. Dumbing down a language for the uninformed cripples a language. It’s as useful as turning cars into bumper cars, just because someone uninformed sits behind the wheel.
JavaFan, who was bashed by means of downvoting -and it made sense in that context- but says something right, in line of principle…
Oct 29
22:22:00.931 ▶▶ Permalink
Feel free to argue with you think the semantics of Perl should be. Unless they match the documented and tested and empirically verifiable behavior of multiple versions of Perl, they’re wrong, and you’re wasting your time. However much someone used to Python might think that parentheses make a list of constant expressions into a list, in Perl they don’t. They merely group the expressions to disambiguate intended precedence. Perl’s semantics aren’t a matter of anyone’s fiat, unless you want to anthropomorphize the code.
Oct 27
20:49:00.867 ▶▶ Permalink
Indeed, that is precisely the Perl 6 solution to the problem: time travel. Context in Perl 6 is not determined at compile time or even at evaluation time, but rather at binding time, which is even later than that. Think of it as JIT context. […] Unfortunately, you also need time travel to have a finished Perl 6. Fortunately it’s the kind of time travel that can be implemented by waiting, as long as someone else isn’t…
TimToady a.k.a. Larry Wall, or was it vice versa? Every intervention, a witty quotation…
Oct 24
19:22:11.765 ▶▶ Permalink
Bad idea. Very bad idea. [To take a time machine and go back to year 2000 to perform a brain transplant on Larry] The transplant might not well resonate with what is Larry, and Larry might start inventing really weird stuff: not only unreasonable, but unresonating, i.e. cacophonic as well.
shmem
19:15:27.760 ▶▶ Permalink
What a confusing language! We really should fix it some millennium or other—preferably this one. So if you happen to invent a time machine (or even if one just appears on your doorstep from the future,) please let me know, because some of us are planning to go back to the year 2000 and perform a brain transplant on Larry so he starts thinking straighter.
TimToady, slightly adapted and with links added, but it is not fun if you don’t know who he is, and the links will tell you…
Oct 18
15:05:00.586 ▶▶ Permalink
And in the backslashed form, [the reduction metaoperator] needs something with a vertical feel on the left representing the “left margin,” or we lose much of the triangular feeling, so square brackets work nicely together with backslash that way. It all adds up to an almost overwhelming feeling of necessity — which is why the language designer must also guard against adding up too many apples and then comparing them to orangutans.
TimToady a.k.a. Larry Wall, or was it vice versa?
Oct 16
14:31:24.563 ▶▶ Permalink
bIlujDI' yIchegh()Qo'; yIHegh()!
It is better to die() than to return() in failure.
Oct 12
23:03:00.918 ▶▶ Permalink

Serendipità: Perl 6

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 1 onto the previous last value of the list.

Che dire? Fantastico!

Oct 11
15:53:56.620 ▶▶ Permalink
Yes, we really will [have Perl 6.] We have a complete parser now, written in Perl 6, that parses itself, and can spit out an AST. All that remains is to come up with a VM with sufficent support for lazy functional OO semantics, and write an emitter for it. Simple!
TimToady a.k.a. Larry Wall, or was it vice versa? (With links inserted by me.)
Oct 02
18:40:03.736 ▶▶ Permalink

Autocitazione

hardcorejudas:

“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?!?

Oct 01
20:59:55.833 ▶▶ Permalink
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
Sep 25
19:50:03.784 ▶▶ Permalink

Totò e Peppino a Milano

Vabbe’, va! Consoliamoci con questa scena indimenticabile: ma… senza esagerare, eh!

Sep 10
10:29:16.395 ▶▶ Permalink
Ad una romana mora nuda
(era pacifica, pare)
i tanga bagnati:
ecco gelarti tra le gocce!
Il re deve vederli:
è libido godibile…
Ora pirla, al riparo!
— (Estratto rimescolato dalla pagina delle) frasi palindrome italiane dal non blog di Luca Sironi
Sep 06
18:07:31.713 ▶▶ Permalink

C NB B BCPL CPL

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:

(ALGOL60 ALGOL 60 Revised →) CPLBCPLBNBC

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:

  1. è stato il primo della famigghia ad usare le parentesi graffe per delimitare i blocchi;
  2. generava bytecode per una macchina virtuale! Ed io non per dire, ma mi credevo che questa fosse un’invenzione molto più recente. Invece parliamo di 1967, micacazzi!! (Bambini, attenzione: questo è ciò che capita a sorbirsi troppo marketing di Java…)

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…