<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">2014-02-13 12:20 GMT+01:00 Manlio Perillo <span dir="ltr"><<a href="mailto:manlio.perillo@gmail.com" target="_blank">manlio.perillo@gmail.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div id=":1yv" style="overflow:hidden">Che è più efficiente di Python, restando però molto usabile (non a livello di Python, ma nemmeno a basso livello come C).<br>
<br>
Con Python se vuoi ottimizzare puoi solo farlo riscrivendo alcune funzioni in C, guidato da un profiler.<br>
Per programmi più complessi, Go si posiziona bene come linguaggio "unico" (intendendo che puoi scrivere tutto in un solo linguaggio con un buon bilanciamento di prestazioni e facilità di scrittura/manutenzione codice).<br>
<br>
La concorrenza direi che è la classica ciliegina sulla torta (a differenza, ad esempio, di Erlang, dove la concorrenza è forse l'*unica* ragione per sceglierlo).<br>
<br>
Tutto questo ad intuito, non avendo mai usato sul serio Go (non mi piacciono alcune decisioni prese a livello di design).</div></blockquote></div><br>Io non lo conosco e sto approcciandomi ora a studiacchiarlo. </div><div class="gmail_extra">
Non mi fa impazzire, non ha la pulizia stilistica del Python ne l'immediatezza del C. Pero' il mio e' un parere per avere letto una introduzione qui</div><div class="gmail_extra"><br></div><div class="gmail_extra">
<a href="http://okpanico.wordpress.com/2011/03/13/go-specifiche-del-linguaggio-prima-parte/">http://okpanico.wordpress.com/2011/03/13/go-specifiche-del-linguaggio-prima-parte/</a></div><div class="gmail_extra"><br></div>
<div class="gmail_extra">
Sara' il redattore dell'articolo che ha espresso le cose in maniera da apparirmi particolarmente confusa pero':</div><div class="gmail_extra"><br></div><div class="gmail_extra">1. <span style="color:rgb(0,0,0);font-family:Arial,sans-serif;font-size:14px">Il tipo </span><em style="color:rgb(0,0,0);font-family:Arial,sans-serif;font-size:14px">string</em><span style="color:rgb(0,0,0);font-family:Arial,sans-serif;font-size:14px"> si comporta come un </span><em style="color:rgb(0,0,0);font-family:Arial,sans-serif;font-size:14px">array di byte</em><span style="color:rgb(0,0,0);font-family:Arial,sans-serif;font-size:14px">, una volta settati sono immutabili. Cioè è illegale assegnare un valore a </span><strong style="color:rgb(0,0,0);font-family:Arial,sans-serif;font-size:14px">&s[i]</strong><span style="color:rgb(0,0,0);font-family:Arial,sans-serif;font-size:14px">.</span></div>
<div class="gmail_extra"><font color="#000000" face="Arial, sans-serif"><span style="font-size:14px"><br></span></font></div><div class="gmail_extra"><font color="#000000" face="Arial, sans-serif"><span style="font-size:14px">A me sembra una cosa complicata, in C posso cambiare un carattere di un array di caratteri (una stringa in pratica), e qui mi sembra sia vietato.</span></font></div>
<div class="gmail_extra"><font color="#000000" face="Arial, sans-serif"><span style="font-size:14px"><br></span></font></div><div class="gmail_extra"><font color="#000000" face="Arial, sans-serif"><span style="font-size:14px">2. </span></font><span style="color:rgb(0,0,0);font-family:Arial,sans-serif;font-size:14px">Come nel C gli indici sono compresi in [0 .. len(a)-1]. I tipi sono sempre monodimensionali ma possono essere composti per creare tipi multidimensionali.</span><p style="color:rgb(0,0,0);font-family:Arial,sans-serif;font-size:14px">
Esempi:</p><pre style="color:rgb(0,0,0)"><code>[32]byte
[2*N] struct { x, y int32 }
[1000]*float64
[3][5]int
[2][2][2]float64 // equivalente a [2]([2]([2]float64))</code></pre>Non ci ho capito una cippa. Ribadisco che e' stata solo una letta veloce, ma mi ha davvero confuso i pochi neuroni superstiti.</div><div class="gmail_extra">
<br></div><div class="gmail_extra">3. <span style="color:rgb(0,0,0);font-family:Arial,sans-serif;font-size:14px">Come per gli array le slice sono sempre monodimensionali ma possono essere composte per creare oggetti di più dimensioni. Per gli array di array gli array costituenti sono sempre della stessa lunghezza per costruzione; diversamente per le slice di slice (o array di slice) le lunghezza possono cambiare dinamicamente. Inoltre le slice costituenti devono essere allocate individualmente, con </span><em style="color:rgb(0,0,0);font-family:Arial,sans-serif;font-size:14px">make()</em><span style="color:rgb(0,0,0);font-family:Arial,sans-serif;font-size:14px">.</span></div>
<div class="gmail_extra"><font color="#000000" face="Arial, sans-serif"><span style="font-size:14px"><br></span></font></div><div class="gmail_extra"><font color="#000000" face="Arial, sans-serif"><span style="font-size:14px">Per finire di far fondere il mio cervello che col giu' dalle orecchie (per questo devo sbrigrami a concludere questo post)<br clear="all">
</span></font><div><br></div><div>Carl...</div>-- <br><div dir="ltr"><font face="arial">Je suis marxiste, de tendance Groucho.</font></div>
</div></div>