[Python] TIOBE vs PYPL

enrico franchi enrico.franchi a gmail.com
Mer 25 Dic 2013 16:22:25 CET


2013/12/24 Enrico Bianchi <enrico.bianchi a ymail.com>

Premetto: quando parlo di Pascal intendo FreePascal e, ovviamente, Lazarus
> (quindi si, ObjectPascal e` decisamente supportato)


Supportato... da chi?




>
>  Perche' Pascal non ha le goroutine...
>>
>

>  Da quello che vedo, le goroutine permettono una programmazione parallela
> abbastanza semplice rispetto ad altri modelli. Posto che Pascal ha il
> supporto a OpenMP e OpenCL, puoi sempre derivare una classe da TThread e
> avviare il thread con la procedura start. Tra l'altro, ad occhio, il
> modello di parallelizzazione con le goroutines di Go e` di tipo threading,
> o sbaglio?


1. OpenMP e' una cosa, OpenCL e' un'altra. Entrambi sono pensati per
problemi di *parallelismo* non di *concorrenza*.
2. Se e' per quello su FreePascal ci sara' OpenMPI. Ma nel 2013 fare
concorrenza con OpenMPI, dai... capisco se non ci fosse altro, ma buon 1994
a tutti!
3. Go e' un linguaggio *pensato* per la concorrenza... che lo rende 'un po'
diverso' da Pascal. E no, le goroutines sono una bestia molto diversa da un
TThread.

Insisto, nel 2013 pensare a "posso sempre ereditare da Thread" come
soluzione ad un problema di concorrenza e' un po' come dire, a cosa servono
gli oggetti? con if, goto e variabili globali faccio tutto.

 perche' Pascal non ha il supporto che ha Go.
>>
> Che intendi per supporto? Da quello che so (non ho visto, ammetto
> l'ignoranza), per Go c'e` il supporto di Google e basta, mentre per
> Pascal/Delphi hai un supporto decisamente vasto, soprattutto in virtu`
> dell'anzianita` del linguaggio. Se vogliamo sindacare a tal proposito, si,
> l'unico supporto multipiattaforma e` quello che trovi con FreePascal, in
> quanto Embarcadero & Co. sono orientati solo sull'ambito Windows, ma anche
> qui le cose si stanno muovendo (poco, pero`)


Ma vasto cosa? Quanti progetti mission critical o comunque di una certa
scala vengono deployati oggi in Pascal?
Go sappiamo che ce la fa, lo vediamo tutti i giorni. Si trova gente che lo
fa e che all'occorrenza uno puo' andare a fracassare per aiuto.

Il fatto che Pascal sia anziano, non vuole dire che la moderna
implementazione sia sufficientemente testata per ste cose. Cioe', capisco
se uno ci scrive due utility a linea di comando oppure ci fa l'IDE (in
Embarcadero) o



>
>
>  Perche' trovo piu' librerie per Go che per Pascal (almeno per fare roba
>> moderna)...
>>
> Definisci roba moderna, per favore. Dire "faccio roba moderna" e` come
> dire "so cucinare". Per il discorso librerie, l'unica cosa che so e` che Go
> ha un repository centrale, mentre per FreePascal/Lazarus devi cercare in
> giro (anche se c'e` da dire che, a parte qualche libreria particolare, le
> librerie per Delphi sono compatibili e distribuite per Lazarus)


Ommadonna, non e' importante "cosa". Il mondo IT viaggia abbastanza veloce
e il fatto e' che dietro Go c'e' un sacco di gente che lo tiene
"aggiornato". Che so... facciamo un backend per qualcosa che va a
websocket? JSON? Binding per un qualche NoSQL a caso? Libreria per
interagire con le API di "nuovo servizio cool uscito due mesi fa"?




>
>
>  Perche', alla fine dei conti, Pascal e' dire tutto e nulla... dovrei
>> usare ObjectivePascal per avere qualcosa di sano.
>>
> Ni, come in Python hai sia la programmazione procedurale che quella ad
> oggetti, e nulla di impedisce di usare una sola delle due (o tutte e due
> assieme)
>
> Insisto, Pascal e' dire tutto e nulla. Ci sono piattaforme ben diverse
come features (a livello di linguaggio, libreria, etc) chiamate Pascal.
Oggi l'unica sensata e' FreePascal, sia perche' ObjectivePascal pone fine,
sulla scia di Borland, a molte delle idiozie che aveva Pascal, sia perche'
e' l'unica open e con un minimo di supporto. Rimane comunque una cosa
relativamente di nicchia.

-- 
.
..: -enrico-
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20131225/10703b5f/attachment-0001.html>


Maggiori informazioni sulla lista Python