Se c’è una cosa che ha contraddistinto l’uomo durante la sua storia, è sicuramente la sua indole belligerante. Di guerre se ne sono fatte tantissime e per svariati motivi, ma fra di esse un posto d’onore lo meritano sicuramente quelle cosiddette di religione.
Sì, proprio quelle fatte a difesa della “fede”; quella fede così “pura”, “autentica”, eppure così profondamente legata a concetti del tutto arbitrari, irrazionali e soggettivi, che si stenta a credere che gli esseri umani si siano scannati per queste cose…
Ovviamente nel campo dell’informatica, dove logica e razionalità, oggettività e rigore formale imperano, conflitti e battaglie varie saranno sicuramente bandite, si dirà. Niente di più falso!
Le beghe ci sono anche qui, e investono sia gli utenti che i programmatori. Ma mentre è comprensibile (!) qualche alterco sulle CPU, le schede video o la classica diatriba sui sistemi operativi, cosa avranno mai i coder da rimbrottarsi? E’ presto detto: il linguaggio di programmazione.
Già, perché è tutta una questione di lingua: quella che parlo io, manco a dirlo, è ovviamente la migliore, la più figa, quanto di meglio si possa desiderare… la più potente! Poco importa che un certo Alan Turing si stia ribaltando nella tomba, visto che i linguaggi turing-completi è dimostrato siano equipotenti. Si sarà sicuramente sbagliato! “Si sa” che il C è il miglior linguaggio di programmazione: è talmente evidente che non c’è nemmeno bisogno di dimostrarlo…
Se c’è un linguaggio che è “oggettivamente” “migliore”, è fuor di dubbio che gli altri debbano essere delle ciofeche, ragione per la quale quando capita l’occasione buona i programmatori non si lasciano sfuggire la classica battutina acida per infangarli, e quindi arrivare nel giro di poco tempo all’ennesima guerra di religione (perché spesso e volentieri l’approccio è lo stesso: quello fideistico. Insomma, lo stesso motivo per cui si è juventini, interisti, ecc.).
Tutte cose che si vedono spesso nei forum o nei blog: basta aprirne qualcuno che ha qualche sezione Programmazione e dare un’occhiata. Sicuramente qualcosa salterà fuori.
C’è poi chi ha pensato bene di tirarci sù un bel sito in pieno Wiki-style che dal nome è già tutto un programma: YourLanguageSucks. Qui i programmatori più fanatici possono dar fuoco alle polveri e subissare gli altri linguaggi di motivazioni per cui fanno schifo. Ce n’è per tutti i gusti, anche se c’è chi s’è divertito a mettere assieme più “motivazioni” per PHP che per quasi tutti gli altri linguaggi messi assieme…
Ovviamente essendo basato sul modello Wiki chiunque può contribuire aggiungendo punti ai vari linguaggi, correggendo quelli esistenti o anche eliminandoli. Quindi in teoria un fanatico di un certo linguaggio potrebbe rimuovere tutte le voci “scomode”, ma la comunità che sta dietro è sempre pronta a vigilare e a rimettere a posto le cose arrivando anche al ban dell’IP per gli irriducibili “ultrà”. Praticamente è una sorta di sistema che si autoregola.
L’elenco dei linguaggi è variegato, ma si nota una macroscopica assenza: Perl. E’ stato fatto forse per non monopolizzare l’intero sito?
L’orrore non è il linguaggio, ma chi ‘lo’ parla.
Non sempre. Anche il linguaggio può portare il suo (insano) contributo nefasto. :D
Ne parlerò meglio in un altro articolo. ;)
Divertente come la meta’ dei motivi per i quali C++ sux non hanno senso, o meglio, chi li ha scritti non sa perche’ le cose e’ meglio che funzionino in quel modo. L’esempio di string::c_str e’ imbarazzante. Per chi lo ha scritto :)
Quella pagina non ha la pretesa di avere una validità oggettiva di tutto ciò è stato riportato.
Comunque puoi controllare chi ha apportato le modifiche andando a spulciare la history, mentre nella pagina discussion puoi intervenire per dire la tua e arrivare anche a eliminare le parti per cui la motivazione portata non è valida. :)
In fin dei conti un linguaggio è solo uno strumento che ti permette di fare determinate cose. Uno strumento PUO’ essere oggettivamente meglio di un altro, ed è per questo che si scatenano varie diatribe. Quello che va detto è anche che uno strumento può adattarsi più o meno bene alle mani di chi lo usa, e qui si scende nel soggettivo e insindacabile parere personale. Uno sviluppatore esperto può sentirsi più a suo agio con un linguaggio di basso livello che gli permette un controllo più immediato delle caratteristiche della macchina, mentre un altro che ha come obiettivo principale la produttività (e non necessariamente l’ottimizzazione) preferisce affidarsi a un linguaggio di livello più alto.
Sui forum di thedailywtf.com questi dibattiti sono all’ordine del giorno…
Mi ha fatto morire dal ridere questo punto:
“There’s a moment in every C++ programmer’s life where he wonders why, why, switch case fall-through has been invented: it’s completely useless, and if you forget a break you introduce a bug silently.”
Troppo vero! E non parlatemi della Duff’s device, quante volte nella vita vi è servita?
secondo me un giudizio lo possono dare solo che ha programmato in 2 linguaggi con lo stesso livello.
naturalmente credo che ogni linguaggio ha la sua peculiarità, c’è il linguaggio + facile da imparare e quello che agisce più profondamente sui byte/bit.
Nessun linguaggio è perfetto.
Un linguaggio che mette tutti d’accordo?
Il bergamasco, meglio se a marchio D.O.C. di Cologno al Serio.
:D
fantastica la nota su PERL asd
Per Cesare.
Mi spiace ma non condivido una virgola di questo articolo che giudico estremamente superficiale e fazioso (anche se non so cosa tu possa voler difendere).
Riguardo alla frase: “Poco importa che un certo Alan Turing si stia ribaltando nella tomba, visto che i linguaggi turing-completi è dimostrato siano equipotenti”
Secondo il tuo ragionamento non servirebbe più creare tool di sviluppo, è tempo perso, basta un linguaggio turing completo impariamo quello e crogioliamoci tutti nella nostra beata e santa ignoranza.
Magari per fare 2 + 2 dovremo scrivere 2000 linee di codice ma poco importa… tanto il linguaggio è completo …
Sequenza alternativa e ciclo !
e programmatori sempre + impreparati, che tristezza.
A me rammarica invece che non sia stato colto lo spirito goliardico e fortemente autoironico con cui ho voluto raccontare un aneddoto del mondo della programmazione, ma non posso pretendere che tutti abbiano la medesima sensibilità… ;)
No, non ci sono ragionamenti, ma semplicemente… prese in giro. Turing compreso.
Il risentimento è l’esatta controprova che, purtroppo, anche la sfera dello sviluppo e della programmazione, non è esente da un certo approccio di tipo simil-fideistico.
Oltretutto non si capisce dove stia la faziosità.
Per definizione, in questo contesto, l’autore dovrebbe parteggiare per un linguaggio o una tecnologia, mentre qui è un atteggiamento esattamente opposto, cioè tutti sono criticabili e assumibili come “migliori di altri” a seconda dei propri gusti e preferenze.
Quindi che c’azzecca? :)
Per fortuna c’è anche chi ci ride su e non è il solo Cesare :D
si puo’ discutere sul fatto che ci siano linguaggi adatti per il tale scopo e meno per l’altro, pero’ e’ innegabile che certi linguaggi hanno caratteristiche IMHO astruse.
per esempio, perche’ && invece di un comprensibile AND?
teniamo conto che al centro c’e’ il programmatore, e questo e’ senz’altro piu’ a suo agio con un AND invece che con un && o un ||.
Penso che alla fine si tratti sempre di una questioni di gusti e/o di abitudini.
C’è gente che afferma che preferisce i simboli alle keyword: perché non dovrei credergli?
Io, invece, preferisco le keyword: trovo che rendano più leggibile i sorgenti (ma senza esagerare: la prolissità di Java trovo sia troppo esagerata). Per questo preferisco scrivere “and” piuttosto che uno sterile “&&”. ;)
In generale, comunque, preferisco che un sorgente sia leggibile come un testo d’inglese, e qui le keyword aiutano, mentre i simboli proprio no.