Non 10 linguaggi da imparare ma 3 (e mezzo)…

Lunedì 18 Settembre 2006 - 12:50

di Gabriele Farina

PHP e Open Source

Riprendo il post pubblicato questa mattina per una segnalazione e qualche considerazione personale.

Calvin Spealman, sul suo blog, posta una risposta all’articolo di eWeek che elenca una lista di linguaggi che è necessario conoscere attualmente se si vuole poter programmare ad ampio raggio e con una buona quantitià di applicazioni pratiche possibili.

A parte il fatto di ritenere Ajax un linguaggio (a dir la verità lo definisce un mezzo linguaggio - ma il termine linguaggio mi pare un po’ esagerato per una pratica di programmazione che attualmente va di moda ma era possibile fare già ai tempi di Netscape 4), sono d’accordissimo con i linguaggi che lui ritiene i più importanti: C# nel mondo dello sviluppo desktop e server è un must, molto più completo di altre alternative a disposizione, veloce, ben documentato … Python è (e qui sono forse eccessivamente di parte) uno dei migliori linguaggi general purpose attualmente a disposizione: copre una quantità enorme di campi applicativi e presenta delle feature uniche che rendono un piacere programmarci … infine JavaScript: ormai un requisito fondamentale per lo sviluppo web (e desktop per chi utilizza XUL).

Interessante è anche la breve analisi fatta dei linguaggi concorrenti; soprattutto il giudizio su PHP mi pare interessante ed altamente condivisible.

Tags:

Categoria: PHP e Open Source | Permalink

Commenti

1

Secondo lui molti odiano PHP?

# - postato da Alessio Michelini - 18 Settembre 2006 - 13:31

2

non mi chiamerò Calvin Spealman ma C# e Python sono esattamente i due linguaggi verso il quale sto tentando di migrare da tempo (ne avevo già discusso con Gabriele in un vecchio post), abbandonando il PHP che ormai, dopo un primo amore datato, odio anche io.

Unico vero neo per Python nel web è che di host che lo sfruttano non ce ne sono molti e molti dei “pochi” disponibili hanno versioni un pò datate (2.3 o inferiori).

Aggiungo la confusione, almeno personale, quando si è strattato di scegliere quale handler usare, cosa che oltretutto non ho ancora fatto, ed ecco che migrare non mi è risultato così indolore :(

Secondo lui molti odiano PHP?
esatto !!!

# - postato da andr3a - 18 Settembre 2006 - 13:51

3

Chi è che Odia PHP?

Al max si può “odiare” php4, per lo scarso supporto alla OOP, ma php5 è decisamente meglio…

# - postato da Epper - 18 Settembre 2006 - 14:02

4

Quando si parla di linguaggi, ogni individuo difende la propria scelta; ogni persona ha delle abitudini diverse e quindi sceglie il linguaggio piu adatto a se stesso. Sono programmatore php e mi trovo benissimo; ho pensato varie volte di cambiare ma alla fine ho riconfermato la mia scelta.

Si sente sempre piu spesso parlare di python e la mia curiosità sta aumentando sempre piu però, per ora, resto a Php :)

# - postato da Paolo - 18 Settembre 2006 - 14:36

5

Al max si può “odiare” php4, per lo scarso supporto alla OOP, ma php5 è decisamente meglio…
quanti host supportano il 5.1 al posto del 4 ?

ogni persona ha delle abitudini diverse e quindi sceglie il linguaggio piu adatto a se stesso
per sapere quale linguaggio è più adatto a te stesso devi conoscere gli altri linguaggi :)

Si sente sempre piu spesso parlare di python e la mia curiosità sta aumentando sempre piu
appunto, Python non lo conosci (bene) e se avessi la skill che hai col PHP anche con Python di sicuro non preferiresti PHP, ti ci metto quasi la mano sul fuoco :D

Il resto credo sia “comodità” o meglio esperienza, logico che qualunque cambio di linguaggio inizialmente può risultare complicato rispetto il “già conosciuto”, ma almeno potrai valutare meglio pregi e/o difetti di ognuno e fare la scelta.

# - postato da andr3a - 18 Settembre 2006 - 15:05

6

Non sono esperto a sufficienza per poter commentare su molti di questi linguaggi. Pero’ per quanto riguarda Ruby, e RoR, le sue giustificazioni mi sembrano lontante dal vero.

E’ vero che Ruby e’ esistito da molto tempo e che solo recentemente se ne parla sul serio. Pero’ credo che sbagli a ritenere il merito esclusivamente di Ruby on Rails. La ragione principale direi che era il fatto che il creatore e la comunita’ era interamente giapponese… come anche i manuali.

Da quando sono arrivati i primi manuali in inglese Ruby ha iniziato a farsi molto piu’ popolare. Fra l’altro molti dei benefici di RoR vengono proprio dalle sue radici in Ruby (ma qui parlo per sentito dire).

# - postato da Diego Virasoro - 18 Settembre 2006 - 17:16

7

Io sviluppo in vbscript/ASP ma ciò che penso è che bisogna sempre imparare qualcosa di nuovo.
Ora sto iniziando a sviluppare in .NET e tra non molto svilupperò solo più in .NET.
Poi sviluppo in javascript, ultimamente integrato maggiormente con Ajax (non con l’xml ma con JSON).
E penso che il prima possibile inizierò a guardare Ruby e Ruby On Rails.
Il problema è che tra il lavoro, i progetti a casa e tutto il resto di tempo non ne rimane però in fondo penso che uno sviluppatore debba avere una conoscenza di un pò di tutto ciò che “circola” in giro e che viene utilizzato ultimamente per poter affermare che un linguaggio è il suo preferito o meno.

Saluti

# - postato da Alberto - 18 Settembre 2006 - 17:31

8

sono un programmatore Java e mi sono trovato molto bene sebbene lato web la didponibilità di host sia relativamente scarsa se non nel caso di housing.
inoltre ho la possibilità di programmare su piattaforme e per dispositivi diversi.
la sola lacuna che al momento riscontro per le applicazioni standalone è la mancanza di funzionalità adeguate all’integrazione col desktop ma da quanto leggo il tutto dovrebbe migliorare con la release SDK6.
ho iniziato a valutare C# e mi sono reso conto che altro non è se una copia di Java per l’appunto.

# - postato da tudo75 - 18 Settembre 2006 - 17:40

9

quanti host supportano il 5.1 al posto del 4 ?

Secondo me l’anno prox una buona fetta li supporterà. Comunque sia io sto proprio migrando in questi gg ad un altro hosting proprio xkè quest’ultimo supporta php5 ;)

# - postato da Epper - 18 Settembre 2006 - 18:21

10

Non cambierei PHP per Python MAI e poi MAI. E poi JAVA fa già tutto quello di cui c’è bisogno esattamente come ce n’è bisogno. E meglio di Python! Le statistiche fatte sulle richieste non contano niente: prendete i programmatori in generale e chiedete loro a cosa stanno lavorando ADESSO: i programmatori JAVA non si contano, così come quelli PHP. I grandissimi progetti realizzati in Python? Dove sono? Quanti sono? Yahoo è fatto in PHP! La richiesta è quello che è richiesto adesso, non quello che è in opera da tempo! Le tecnologie non vanno scelte perché sono fighe o hanno un nome figo!

# - postato da Beppe - 18 Settembre 2006 - 20:34

11

Già molti hoster ti danno php4 o php5 a scelta, altri come register ti danno direttamente php5 e basta.

# - postato da Alessio Michelini - 18 Settembre 2006 - 21:00

12

Mi associo a Beppe #10. Aggiungo che Python, a confronto di PHP, non ha una community così compatta . Quanto a JAVA, C# non lo ha nemmeno scalfito: è lì e viene regolarmente usato.

# - postato da Caruso - 19 Settembre 2006 - 08:18

13

@beppe

Dire che non ci sono grandissimi progetti fatti in Python mi pare un po’ eccessivo:

* Google punta su python dal punto di vista dello sviluppo delle proprie applicazioni web e desktop già da molti anni (non per nulla ha assunto Guido Van Rossum, il creatore del linguaggio);
* Anaconda, il sistema di installazione di Red Hat e Fedora, è sviluppato in Python;
* Un grandissimo numero di applicazioni ormai standard nelle distribuzioni linux sono sviluppate in Python;

Potrei andare avanti molto.

Ora, non so quale sia la tua (vostra) conoscenza di Python, ma mi piacerebbe sentire qualche altra opinione a favore di uno rispetto all’altro che vada oltre le solite (vedasi hoster e comunità)

@Caruso

La comunità di Python sta crescendo moltissimo, e con un’enorme vantaggio rispetto a quella di PHP: il materiale sviluppato, gli articoli ed i libri proposti, sono di ottimo livello a differenza di quelli del linguaggio della Zend. Questo per il fatto che PHP è un linguaggio che da anni è utilizzato da milioni di programmatori amatoriali e per progetti semplici (Yahoo è sviluppato in una versione di PHP modificata apposta per il progetto - non per nulla stanno spingendo moltissimo sullo sviluppo della versione 6) e quindi spesso il materiale risulta scadente e di scarso interesse per chi programma a livelli diversi.

Senza contare la disponibilità di librerie: Python ha migliaia di librerie per tutti i gusti, sviluppate in modo serio e seguendo delle linee guida. PHP ha molte librerie di cui la maggior parte ridondanti e con l’obiettivo di supplire alle mancanze sintattiche del linguaggio ed alla struttura caotica delle funzionalità standard.

Questo non vuol dire che PHP sia un linguaggio pessimo: non regge il confronto con Python, ma c’è qualche progetto interessante (vedasi lo Zend Framework, che purtroppo però deve ancora crescere) e i presupposti per PHP 6 sono molto buoni (sperando che non succeda come per PHP 5, che per un motivo o per l’altro è rimasto poco utilizzato, con molti bug e buchi di sicurezza).

# - postato da Gabriele Farina - 19 Settembre 2006 - 08:40

14

Cos’è AJAX?? a parte la squadra di calcio??

# - postato da Francesco - 19 Settembre 2006 - 09:45

15

@Francesco

Guarda qui e cerca sul blog.
Ormai penso sia uno degli argomenti più discussi della rete :)

# - postato da Gabriele Farina - 19 Settembre 2006 - 09:55

16

c# e python….
IronPython!

(..continuo a preferire Ruby al Python da 3/4 anni ormai ..ben prima di RoR)

# - postato da kentaromiura - 19 Settembre 2006 - 10:12

17

@GabrieleFarina #13

Ciao: Rasmus Lerdorf (creatore di PHP) e Matt Zandstra (autore di un tomo di livello su PHP e Oggetti) lavorano per Yahoo. Il fatto che Google utilizzi Python (ma utilizza SOLO Python? Mi sa proprio di no: non credo proprio che i celeberrimi algoritmi di ricerca siano basati su Python. Le applicazioni desktop? Con cosa avrebbero potuto farle? C? VB? Flash? Director? E’ fico Python, usiamo Python, ma usiamo, imho, nel senso di “proviamo”, “vediamo come va”, le nostre applicazioni desktop non sono il nostro business, dopotutto. Ma abbiamo -con un solo metodo di JavaScript(LOL!)- armato un casino, figurati con Python che possiamo inventarci!!) è un punto interessante ma fino a che punto è fondamentale? Pensi che qualcuno dei grossi progetti realizzati in PHP non veda l’ora di essere tradotto in Python? Difficile. E credi che qualcuno che ha scritto un grosso progetto in PHP lo abbandonerà perché è scritto in PHP, dunque è piccolo, nero e Calimero, oltre che maleodorante di procedura? Difficile. Inoltre, la community è di importanza fondamentale, non ne ignorerei il valore. E POI, alcuni neo-chiacchieroni dell’OOP e XP li vorrei vedere all’atto pratico: vorrei capire (in Italia) chi sarebbero i clienti a cui vorrebbero propinare Python. Cioè: a volte (non dico in questa sede) tira un’arietta che è più “marketing” che altro.

# - postato da Beppe - 19 Settembre 2006 - 10:21

18

A parte anche la lentezza di calcolo di Python, mi ri-associo a Beppe: non si può avere un atteggiamento Talebano verso la tecnologia: questo non è OOP al 100%, mannaggia, allora non va bene. Uh! Questo non utilizza il pattern Observer, allora è sicuramente da buttare. Ma allora i programmatori di oggi, poiché anche un ragazzino sa scrivere echo $variabile, dovrebbero differenziarsi da lui inventandosi architetture pure-OOP 100%, anche per applicazioni che realizzano cose risibili? Ma allora non va bene nemmeno Python! E nemmeno JAVA! E’ Smalltalk quello che ci vuole per questi signori! :-) L’OOP è solo un po’ di ordine, non la religione. Io mi guarderei dai guru che incapsulano qualsiasi cosa e fanno eritarietà fino al bisnipote dell’oggetto prodotto dalla classe Trisavolo.

# - postato da Caruso - 19 Settembre 2006 - 10:55

19

@Beppe #16

Tradurre un progetto da un linguaggio ad un altro è sicuramente un operazione che ha più dell’assurdo che del realistico. Ovviamente non si sta discutendo sul fatto che ciò che è stato fatto (ed a volte bene) in PHP debba essere buttato e riscritto in un’altro linguaggio, ma del fatto che PHP è un linguaggio che, giorno dopo giorno, perde colpi rispetto ai contendenti. Fortunatamente si sono decisi a spingere un po’ di più sul business, altrimenti avrebbero perso moltissimi colpi.

PHP non è morto, ma attualmente è indietro rispetto ai contendenti.

Per quanto riguarda il discorso dell’OOP, XP e del propinare Python la penso in questo modo:

* Sviluppare OOP è ormai pratica più che comune. Non si può sperare di fare codice mantenibile e ben strutturato utilizzando la programmazione procedurale (salvo in alcuni casi), soprattutto nella situazione attuale degli sviluppatori;
* L’XP è utlizzata più di quanto immagini. Ci sono tantissime persone che conosco (e che ritengo veramente degli ottimi programmatori) che lavorano da tempo con l’XP anche a progetti molto grossi. Oltretutto il fatto che in italia si sia molto indietro dal punto di vista della serietà nello sviluppo software non dovrebbe essere un motivo per continuare a lavorare male;
* Infine il discorso di propinare Python: io ormai utilizzo da più di un anno Python in ambito lavorativo e non ho avuto problemi a proporlo sia per progetti piccoli che per progetti più grossi. I vantaggi ci sono e non è assolutamente difficile renderli visibili al cliente.

Comunque qui puoi trovare un documento e qualche annotazioni su un talk fatto riguardo l’utilizzo di Python in Google.

Rimane il fatto che ho utilizzato PHP per 8 anni in progetti di ogni tipo, in ambito desktop, server e shell e purtroppo per ora vi sono alcune lacune che, dato il mio modo di programmare, non possono essere colmate. Seguo e seguirò comunque il progetto PHP sperando in una ripresa (che dovrebbe avvenire con PHP 6 - che però dovrebbe essere IMPOSTO alla comunità :D)

# - postato da Gabriele Farina - 19 Settembre 2006 - 11:01

20

@Caruso #17

Qui non si sta discutendo del fatto che l’OOP sia la religione, ma del fatto che PHP rispetto a Python ha moltissime feature, librerie e possibilità in meno. E su questo non si discute, basta guardare la portabilità, la stabilità e la disponibilità di librerie nella distribuzione standard.
Oltretutto Python non è un linguaggio strettamente OOP con lo è Java, quindi il discorso non calza a pennello.

E non è neanche il caso di discutere su frasi del genere:
al posto di echo $pippo; puoi scrivere print pippo risparmiando addirittura due caratteri!
Difatti (e penso che anche tu sia d’accordo) le potenzialità di un linguaggio si valutano su progetti di una certa dimensione e complessità, non su script di due righe.

Comunque non sto dicendo che PHP debba sparire dalla circolazione; dovrebbe solamente riprendersi un po’ quello che ha lasciato per strada e rimettersi in sesto.

edit: per quanto riguarda le performance direi che non ci sono paragoni … soprattutto se con Python si utilizza Psyco. qui puoi trovare qualche benchmark, ma consiglierei di farli da solo dato che quelli che si trovano online spesso pendono da una parte rispetto che dall’altra

# - postato da Gabriele Farina - 19 Settembre 2006 - 11:15

21

@GabrieleFarina #19

Bravo, anche la sintassi: la sintassi di Python è terribile per chi viene da Java, ma anche da ECMAScript.

Sono per PHP al 100%, per tutto quello che non può essere fatto in PHP è sufficiente JAVA.

Poi, ciascuno è libero di usare la tecnologia che ritiene più appropriata ai propri scopi.

Dal tuo link:

“Q: Within Google, is there anything for which Python is considered inappopriate?
A: Is there anything where Python is not appropriate? Well yeah, something like
our indexing system where we scan the web pages and produce an index. Python
is good, and fast, and IronPython is even faster, but it’s not fast enough.
We use C for that.”

Prendi questo link:
XP

# - postato da Beppe - 19 Settembre 2006 - 11:27

22

@Beppe #20

Bhe, pensi che avrebbermo mai potuto utilizzare PHP o qualunque altro linguaggio interpretato per l’implementazione del loro sistema di indicizzazione ? E’ ovvio che per situazioni in cui sono richieste prestazioni estreme e consumo delle risorse minimo si opti per C (o soluzioni compilate simili).

Per quanto riguarda l’XP ti posso assicurare che nella pratica funziona e da delle ottime soddisfazioni, anche dal punto di vista organizzativo e della tranquillità. Poi ognuno ha le sue opinioni a riguardo e non sono certo una persona che critica qualunque altro approccio progettuale rispetto all’XP

# - postato da Gabriele Farina - 19 Settembre 2006 - 11:33

23

@GabrieleFarina

Ovvio: non c’entra PHP, ma volevo sottolinearti che non era usato Python in quel caso!

L’XP per lavorare con 7 dipendenti magari è ok. Per lavorare con 200 no. I progetti grossissimi non li fanno 7 dipendenti. Poi, ripeto, ciascuno adotta le metodologie che ritiene migliori: io, personalmente, in un team di persone dedite all’XP non avrei molto piacere a lavorare. Ciao!

# - postato da Beppe - 19 Settembre 2006 - 11:41

24

Su PHP4 e PHP5, secondo me il problema dell’hosting non esiste: con 500 euro all’anno ti compri un server virtuale, e se non hai cinque clienti a cui far pagare 100 euro di hosting, di sicuro l’ultimo dei tuoi problemi è quale linguaggio utilizzare. O no? ;)

Nemmeno PHP5 è perfetto, x carità. Ma alla fine, il mondo del web è fatto all’80% di buone idee, al 15% di capacità di saperle vendere, e solo al 5% di tecnologia utilizzata, IMHO. A qualcuno frega qualcosa di quale linguaggio hanno utilizzato x realizzare Flickr, o WordPress, o Wiki? Funzionano xchè l’idea era buona, e xchè hanno saputo venderla/supportarla/proporla (usate il verbo che volete, il concetto non cambia)…

_YD

# - postato da yellowduck - 19 Settembre 2006 - 23:20

25

nessuno parla del buon vecchio ASP; cosa ne pensate?

# - postato da Hedo - 21 Settembre 2006 - 14:57

26

Il vecchio si riferisce alla versione oppure è solo un aggettivo amichevole?

In caso si riferisca alla versione, direi che ormai è da lasciar perdere in favore di .NET, che è enormemente più potente e meglio organizzato.

Nel caso sia un aggettivo amichevole direi che va valutato il linguaggio con cui si scrive. L’ambiente .NET è molto potente, C# pure … peccato che non sia opensource (Mono è ancora un po’ indietro purtroppo …) e che quindi non lo utilizzo mai.

L’unica cosa che sottolineerei è il mio odio per VBScript … tutto ma non VBScript, vi prego …

# - postato da Gabriele Farina - 21 Settembre 2006 - 15:04

27

Python
is good, and fast, and IronPython is even faster, but it’s not fast enough.
We use C for that.

sarebbe stata la stessa identica cosa con Java, C# o qualunque altro linguaggio di medio/alto livello … le prestazioni del C non si discutono.

Vorrei solo segnalare anche Pyrex, che permette di definire variabili C nel linguaggio Python, c’ho giocato un pò e non ha nulla di complicato ma per algoritmi molto di guadagnato (in termini di prestazioni) … peccato sia “incompilabile” sotto windows finchè non aggiornano il porting per .NET almeno 2.0 (o ambienti Express …)

Per finire, la comunità che ho trovato in ML ha “sorriso” quando ho parlato delle prestazioni di Python rispetto quelle del PHP, non perchè siano così indiscutibili, semplicemente perchè non erano nemmeno così convinti che fosse migliore … questo perchè ? Perchè Python non lo scegli per le performance estreme, Python lo scegli per tanti altri motivi che Gabriele ha sottolineato più volte :ciauz:

# - postato da andr3a - 21 Settembre 2006 - 18:18

Inserisci il tuo commento:





(puoi usare i seguenti tag HTML per formattare il testo -
a href, b, i, br/, p, strong, em, ul, ol, li, blockquote, pre):

 

Anteprima del commento