2009-05-05 21 views
15

PHP 5 è uscito nel 2004. PHP 5.2 ha colpito la rete alla fine del 2006. Da allora, non ci sono stati nient'altro che versioni di bug incrementali e versioni beta di PHP 5.3. Sono passati due anni e mezzo da allora, e anche se PHP 5.3 contiene alcune nuove interessanti funzionalità, non sono che rivoluzionario.Qual è lo stato attuale della comunità PHP?

Ho usato PHP da sette anni a questa parte, ma ultimamente ho iniziato a pensare che ci sia qualcosa di seriamente sbagliato nella comunità con lo . Con la comunità, non mi riferisco esattamente alla comunità di PHP in generale (abbiamo visto molti progressi nello sviluppo del framework negli ultimi anni), ma piuttosto nel piccolo gruppo di confronto che fa tutto lo sviluppo attuale. Mi riferisco a ciò che viene solitamente chiamato dal nome del newsgroup php.internals.

Personalmente non sono mai stato un collaboratore attivo di questo gruppo, ma di solito lo leggevo con molta attenzione, e la mia impressione è che ci sia un sacco di conflitti interni e di attriti, che frenano i progressi. Molte idee e suggerimenti vengono abbattuti senza una seria considerazione perché a qualcuno con tanto "karma" non piace, e quando si raggiunge un accordo sembra essere un compromesso che a nessuno piace davvero. Un grande esempio di ciò è la scelta del separatore dei namespace: "\", una scelta che a tutti sembra non piacere.

Sono solo io, o il conflitto e la tensione stanno distruggendo PHP dall'interno? PHP ha il tipo di problema di gestione, che capisco è comune tra i progetti open source? Come gestisci questi tipi di problemi?

+3

Questa è una domanda legittima, ma dovresti probabilmente rifarla con un titolo meno soggettivo. – Unknown

+0

Erm .. Credo che i ragazzi si stiano preparando a rilasciare PHP6, che ha alcune nuove folle funzionalità come il binding statico avanzato, e allo stesso tempo mantenere PHP5. "Marcire dall'interno" è un'esagerazione. – karim79

+4

Sono d'accordo. L'ho cambiato in qualcosa di più neutrale. –

risposta

10

Ho programmato in PHP per la parte migliore di 10 anni. Sono stato a lungo infastidito da vari limiti di PHP (scarsa gestione dei riferimenti e completa mancanza di puntatori, oltre a una libreria molto disordinata e incoerente), ho deciso di passare a Python e wsgi. La cosa che mi ha fatto superare i nuovi spazi dei nomi usando i backslash come separatori.

Invece di cercare effettivamente di migliorare il loro prodotto, zend continua a graffiare nuove cose su un prodotto che non è mai stato pensato per essere usato nel modo in cui viene utilizzato oggi.

Sto facendo tutto questo sapendo che in pratica sto buttando via anni di lavoro .. Ma sento che il futuro di PHP non è molto buono .. Succhia anche io, ho passato 3 anni a sviluppare un framework PHP che uso su molti siti Web che ho creato. Oltre 70.000 linee di codice ora obsolete. :(

+0

Non sto dicendo che hai sbagliato a cambiare idea su PHP, ma il carattere backslash ti spinge oltre il limite? Parla della paglia che ha fatto traboccare il vaso ... è solo un personaggio, non vedo davvero il grosso problema. – nickf

+2

Non penso che sia abbastanza grave da indurre le persone ad abbandonare PHP, ma il delimitatore di spazio dei nomi backslash è un po 'instabile. Prendi questo: $ func = "foo \ bar"; $ x = $ func(); Func fa riferimento alla funzione bar nel namespace foo o ad una funzione chiamata foo {bell} ar nel namespace globale? Quando hai la capacità di chiamare le funzioni tramite stringhe come quelle che riutilizzano il carattere escape per il tuo delimitatore è semplicemente sbagliato. Immagina la stessa cosa in una stringa che intendi passare a create_function o eval? – jmucchiello

+0

'\ b' non è interpretato come qualcosa all'interno di una stringa. "foo \ bar" valuta la stringa letterale 'foo \ bar' che non è un nome di funzione valido. Non ho accesso a 5.3 quindi non ho testato se si risolverà come la funzione 'bar()' sotto lo spazio dei nomi 'foo'. – DisgruntledGoat

7

Quanto è veloce e spesso si aspetta cambiamenti linguistici per venire avanti? Credo che C++ è completamente morto dal momento che non hanno aggiornato in 10 anni. E Perl 6 è Duke Nukem Forever, giusto?

Python : 2.0 nel 2000, 2.6 nel 2008. Questo è un ciclo di 12-15 mesi PHP: 5.0 nel 2004, PHP 5.3 nel 2009. Questo è un ciclo di 15-18 mesi. Java: 1.0 nel 1996 e 1.6 nel 2008. Questo è un 18-24 mesi ciclo

lo sviluppo del linguaggio è difficile. farlo in fretta non lo rende più facile.

+0

Sto pensando a C#. Lanciato nel 2000, nel 2009 abbiamo 4.0. Questa è una nuova rivoluzione ogni 2 anni. Potrei essere indietro di 2 cicli e impazzire cercando di imparare tutte le novità ma almeno sono in una squadra fantastica. Yaay! –

+0

Questo è un buon punto. Preferirei che facessero delle uscite occasionali piuttosto che solo molte di loro. –

3

Penso che sia HIG h tempo che qualcuno biforca PHP e crea una versione di PHP-Lite o giù di lì. Ogni progetto open source di lunga durata raggiunge questo stadio. Guarda Netscape, è stato gonfiato e scaricato finché non è apparso qualcuno e ha creato una versione lite di FireFox. Lo stesso sta accadendo con MySQL. Sarebbe stato bello se qualcuno lo avesse fatto anche per PHP, solo per salvarlo.

+2

Unico problema reale sarebbe l'elenco delle funzioni. Se si riduce l'elenco delle funzioni (e si correggono i parametri di chiamata in modo che abbiano senso) si finisce con incompatibilità. Ogni incompatibilità è una barriera all'ingresso rendendo il PHP-Lite meno invitante. E devi decidere cosa lo rende Lite. Ritornate alla cronologia procedurale di PHP o aggiungete altro OOP (le stringhe e gli array potrebbero essere oop'd)? Aggiungi supporto UTF alla base? Troppe variabili. – jmucchiello

+1

Sarebbe ancora più semplice passare a "PHP-Lite" (cattivo nome) rispetto a un linguaggio completamente diverso come Python (la cui sintassi non mi piace, btw). –

Problemi correlati