<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2013/12/24 Enrico Bianchi <span dir="ltr"><<a href="mailto:enrico.bianchi@ymail.com" target="_blank">enrico.bianchi@ymail.com</a>></span></div><div class="gmail_quote">

<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Premetto: quando parlo di Pascal intendo FreePascal e, ovviamente, Lazarus (quindi si, ObjectPascal e` decisamente supportato)</blockquote><div><br></div><div>Supportato... da chi? </div><div><br></div><div><br></div><div>

 </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Perche' Pascal non ha le goroutine...<br></blockquote></div></blockquote><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


</blockquote></div>
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?</blockquote>

<div><br></div><div>1. OpenMP e' una cosa, OpenCL e' un'altra. Entrambi sono pensati per problemi di *parallelismo* non di *concorrenza*.</div><div>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!</div>

<div>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.</div><div><br></div><div>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.</div>

<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
perche' Pascal non ha il supporto che ha Go.<br>
</blockquote></div>
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`)</blockquote>

<div><br></div><div>Ma vasto cosa? Quanti progetti mission critical o comunque di una certa scala vengono deployati oggi in Pascal?</div><div>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.</div>

<div><br></div><div>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 </div>

<div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Perche' trovo piu' librerie per Go che per Pascal (almeno per fare roba moderna)...<br>
</blockquote></div>
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)</blockquote>

<div><br></div><div>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"?</div>

<div><br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Perche', alla fine dei conti, Pascal e' dire tutto e nulla... dovrei usare ObjectivePascal per avere qualcosa di sano.<br>
</blockquote></div>
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)<div class="HOEnZb"><div class="h5"><br></div></div></blockquote><div>

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. </div>

</div><div><br></div>-- <br> .<br>..: -enrico-
</div></div>