[Python] sviluppare applicazioni android tramite python

enrico franchi enrico.franchi a gmail.com
Mer 28 Dic 2011 12:17:58 CET


2011/12/28 Gian Mario Tagliaretti <g.tagliaretti a gmail.com>

>
> Carlos ma che due balle con sta storia che Python è meglio a
> prescindere e tutto il resto è merda,


Questo effettivamente e' poco motivato.


> Valutare la complessità di un software certo è difficile, per progetti
> "complessi" Python diventa ingestibile, la IDE qualunque sia ad un
> certo punto non riesce più a venirti incontro per le caratteristiche
> del liguaggio, per altri linguaggi su cui costantemente si sputa sopra
> (vedi .NET) la IDE in vece ti da una grossa mano ed il progetto
> diventa più gestibile. Sono state fatte analisi sulla velocità dello
> sviluppo vs la complessità di mantenimento e Python sopra una certa
> complessità non è più così "comodo" (termine orribile) come per
> progetti più piccoli.
>

1. questi studi sarebbero da vedere e da valutare, secondo me. anche senza
volerlo si possono prendere conclusioni parecchio sbagliate. personalmente
credo che uno studio di questo tipo sia essenzialmente privo di senso. il
problema e' che puoi valutare una tecnologia solo sulla base di un prodotto
che e' pero' fatto da uomini: quindi devi trovare il modo di rendere
indipendente lo studio da chi lo ha fatto. tenendo conto che e' noto che le
differenze individuali fra due sviluppatori possono essere immense, che
possono essere immense le differenze dello stesso sviluppatore con
tecnologie diverse, che possono essere diverse le interazioni di gruppo,
etc etc etc.

Ecco, diciamo che vedo molto complesso fare uno studio di questo tipo in
modo scientifico e le cui conclusioni possano essere facilmente condivise
perche' considerabili oggettive.

2. Io ho sempre considerato le IDE come una cosa che piu' che altro tappa i
buchi di linguaggi con caratteristiche abbastanza peculiari. Linguaggi
molto verbosi, con informazione ripetuta (pensa a Java e al fatto che un
file deve riportare all'interno del file il path e che deve anche essere
esattamente in quella posizione relativa.. e' il tipo di cose che un umano
deve fare "due volte" per fare quasi la stessa cosa).

Oppure trovo gli IDE molto sensati anche quando lavorano bene con il
framework in questione (e.g., Python + Django e' molto comodo con un IDE).

In particolare, non sono minimamente convinto che linguaggio scemotto + IDE
venga piu' produttivo di "linguaggio fatto bene" + IDE. Il punto e' che
molte delle cose che permettono ad un IDE di fare cose "avanzate" (sono
quelle che fanno risparmiare tempo) sono le stesse che fanno perdere tempo
ai programmatori umani, quindi bisognerebbe vedere il bilancio complessivo.

Come sai non conosco .Net. Conosco abbastanza bene Java, pero'. E posso
dirti che molte cose *banali* in Python per *non* scrivere codice, in Java
richiedono cura e attenzione. Per me il modo migliore di tagliare i costi
di manutenzione e' *non* scrivere il codice. Perche' il codice non scritto
non va mantenuto.

Poi come sempre bisogna considerare la realta' del team con cui si lavora.
Se alla fine bisogna scrivere Python "quasi come fosse Java" allora gli
unici vantaggi sono davvero a basso livello, perche' Python e' un po' piu'
comodo nello smazzare i dati (stringhe, dizionari, etc). Tutto quello che
gli sta sopra sara' piu' o meno Java cammuffato da Python e allora tanto
vale Java, IDE e compagnia.

3. Nonostante tutto sono d'accordo, ma in un senso diverso. Ovvero oltre un
certo livello di complessità la complessità inerente del linguaggio
probabilmente diventa trascurabile rispetto quella del progetto. Linguaggi
maturi come Java hanno una serie di librerie che aiutano, ma spesso sono
abbastanza complicate e la loro complessità finirebbe per dominare la
complessita' di un progetto medio. Viceversa su un progetto molto complesso
si ripagano.

In questo senso la parte di codice in cui Python vince, su un progetto
molto complesso probabilmente e' piccola.

Credo poi che il tutto dipenda da cosa intendiamo con "complesso". Io credo
che tu parli di complessità orizzontale e ho applicato questa idea al mio
precedente discorso.



> Questo non vuol dire che non sia un bel linguaggio ma quando si esce
> dall'ottica hobbistica e si entra in quella aziendale, le scelte non
> possono essere solo per quello che è più bello o quello che mi piace
> di più, ci sono aziende che per il software che producono trovano
> Python ideale, e questo è buone e giusto, altre aziende che fanno
> software diversi, il che non vuol dire migliori, non lo possono usare.
>

Assolutamente. Ognuno fa le sue scelte. Pero' non necessariamente sono
scelte ottime.
Pero' non metterei la cosa in hobby vs. azienda (sotto-intendendo che la
logica aziendale sia migliore [0]).
Semplicemente uno si fa le sue scelte sulla base di motivazioni tecniche.

Forse io ho letto un po' troppo Graham, ma alla fine credo che le scelte
coraggiose vadano fatte.

 Parlo per esperienza diretta e non per sentito dire, in azienda da noi
> sono state fatte delle scelte che a volte sono risultate sbagliate
> altre volte azzeccate, si cerca di imparare dai propri errori, abbiamo
> un software scritto in Python che è nato come prototipo, poi visto che
> era ben fatto e che i clienti lo apprezzavano è stato portato avanti
> come software in produzione, ora dopo qualche decina di migliaia di
> righe di codice funziona benissimo per carità, metterci le mani però
> non è più così "divertente", tanto che si sta pensando di riscriverlo
> in .NET
>

IMHO questo esempio non calza troppo. Cioe' se prendi un software (scritto
in qualunque linguaggio) e lo evolvi o molto a lungo o molto in fretta o
semplicemente male (che sicuramente non e' il vostro caso) tipicamente hai
un carrozzone che diventa sempre meno mantenibile. Non mi risulta che
questo tipo di cose non possano succedere con .NET.

Credo anzi, sentendo tanti colleghi che lavorano con .NET, che siano cose
che succedono anche con .NET, esattamente come con qualunque altra
tecnologia.


-----
[0] generalmente quando si parla di ottica aziendale sembra si voglia
parlare di cose "serie" in contrapposizione all'hobbismo. Pero' invito
anche a riflettere sull'altro lato della medaglia: ovvero di quanto la
cosiddetta ottica aziendale sia lontana dall'ottica hacker. Ovviamente va
benissimo per le aziende (guarda caso... :) ) o per lo meno per molte di
esse. Pero' di per se a me non sembra una cosa positiva in assoluto.

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


Maggiori informazioni sulla lista Python