[Python] It's 1999 all over again

Carlos Catucci carlos.catucci a gmail.com
Gio 13 Feb 2014 14:01:46 CET


2014-02-13 12:20 GMT+01:00 Manlio Perillo <manlio.perillo a gmail.com>:

> Che è più efficiente di Python, restando però molto usabile (non a livello
> di Python, ma nemmeno a basso livello come C).
>
> Con Python se vuoi ottimizzare puoi solo farlo riscrivendo alcune funzioni
> in C, guidato da un profiler.
> 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).
>
> La concorrenza direi che è la classica ciliegina sulla torta (a
> differenza, ad esempio, di Erlang, dove la concorrenza è forse l'*unica*
> ragione per sceglierlo).
>
> Tutto questo ad intuito, non avendo mai usato sul serio Go (non mi
> piacciono alcune decisioni prese a livello di design).
>

Io non lo conosco e sto approcciandomi ora a studiacchiarlo.
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

http://okpanico.wordpress.com/2011/03/13/go-specifiche-del-linguaggio-prima-parte/

Sara' il redattore dell'articolo che ha espresso le cose in maniera da
apparirmi particolarmente confusa pero':

1. Il tipo *string* si comporta come un *array di byte*, una volta settati
sono immutabili. Cioè è illegale assegnare un valore a *&s[i]*.

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.

2. 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.

Esempi:

[32]byte
[2*N] struct { x, y int32 }
[1000]*float64
[3][5]int
[2][2][2]float64  // equivalente a [2]([2]([2]float64))

Non ci ho capito una cippa. Ribadisco che e' stata solo una letta veloce,
ma mi ha davvero confuso i pochi neuroni superstiti.

3. 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 *make()*.

Per finire di far fondere il mio cervello che col giu' dalle orecchie (per
questo devo sbrigrami a concludere questo post)

Carl...
-- 
Je suis marxiste, de tendance Groucho.
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20140213/f2634199/attachment.html>


Maggiori informazioni sulla lista Python