Come rompere il paradigma "php is a bad language"? [chiuso]

19

PHP non è un brutto linguaggio (o almeno non così male come alcuni potrebbero suggerire). Avevo insegnanti che non sapevano nemmeno che il PHP fosse orientato agli oggetti fino a quando non ho detto loro. Ho avuto clienti che diffidano immediatamente di noi quando affermiamo di essere sviluppatori PHP e ci chiedono di non utilizzare linguaggi e framework chic come Django o RoR, o linguaggi "aziendali e solidi" come Java e ASP.NET.

Facebook è costruito su PHP. Ci sono un sacco di solidi progetti che alimentano il web come Joomla e Drupal che sono usati nell'impresa e nei governi. Ci sono framework e librerie con alcune delle migliori architetture che ho visto in tutti i linguaggi (Symfony 2, Doctrine). PHP ha la migliore documentazione che abbia mai visto e una grande comunità di professionisti.

PHP ha funzionalità OO avanzate come la riflessione, le interfacce, per non parlare del fatto che PHP ora supporta il riutilizzo orizzontale in modo nativo e pulito attraverso tratti .

Ci sono cattivi programmatori e script kiddies che danno a PHP una cattiva reputazione, ma alimentano la comunità PHP allo stesso tempo, e dato che è così facile fare cose fatte in PHP, spesso puoi fare le cose nel modo sbagliato, garantito, ma perché biasimare la lingua?

Ora, per farla diventare una vera e propria domanda: quale sarebbe una buona e solida e breve e dolce argomentazione per evitare di essere disapprovata e fermare il pregiudizio in un colpo solo e difendere il tuo onore quando dici di te sono uno sviluppatore PHP? .

(biscotti gratuiti con panna montata a quelli con evidenza empirica di convincere qualcuno -cliente o altro- sul posto)

P.S .: Utilizziamo Symfony e il codice termina con la bellezza e la manutenzione

P.P.S .: Facebook è scritto in PHP, compilato in C ++ tramite HipHop e distribuito su Hadoop. Qui: link

    
posta dukeofgaming 17.03.2012 - 05:06
fonte

7 risposte

40

L'unica risposta che ho è questa: tutto fa schifo.

Puoi trovare un sacco di argomenti contro l'OOP che sono buoni (una ricerca rapida li rivelerà) rispetto alla programmazione funzionale o procedurale. Sembri indicare che il supporto OO di PHP lo difende.

Google blank fa schifo e troverai risultati per qualsiasi cosa. Python succhia . Ruby succhia . Rails succhia . PHP sucks . Java sucks .

Vuoi sapere cosa fa veramente schifo? I programmatori. I programmatori fanno schifo. Qualsiasi buon sviluppatore dovrebbe essere in grado di creare un'applicazione sorprendente, back end e , indipendentemente dalla lingua, anche se non avevano familiarità con la lingua! (Vale a dire, un buon programmatore dovrebbe essere in grado di apprendere e lavorare efficacemente con qualsiasi lingua).

Si noti inoltre che il successo di un'applicazione non ha nulla a che fare con il suo codice. Ho sentito che il codice di Facebook è terribile, ma per Dio è efficace. Lo stesso è probabilmente vero per Wikimedia (Wikipedia è costruito su PHP ed è anche un sito estremamente popolare). Ciò che conta davvero sono i risultati!

PHP è la lingua con cui sono più familiare. Lo difenderò fino alla morte. Ho lavorato con framework PHP, codice PHP e PHP, python, e ruby (e anche Java) tutto per lo sviluppo web. Non posso dire che uno sia particolarmente migliore dell'altro. Ciò che conta di più sono gli sviluppatori e gli algoritmi. Ho visto codice sorprendentemente buono e completamente terribile in molte lingue (specialmente PHP poiché ho una tale esposizione).

Ora per la tua domanda: dipende da chi hai a che fare con

Gli uomini d'affari

Si preoccupano principalmente dei risultati e dell'efficacia dei costi. Il fatto che Facebook, Wikipedia e Wordpress di grande successo utilizzino PHP dovrebbe essere più che sufficiente a convincerli che è un linguaggio efficace per creare applicazioni di successo.

programmatori

Lascia che il tuo codice parli da solo. Se uno sviluppatore afferma che PHP è in qualche modo inferiore, mostra loro un codice PHP che ritieni sia efficace. La prova del budino è nel mangiare.

    
risposta data 17.03.2012 - 05:37
fonte
20

PHP ha una storia sordida. È molto meglio ora che lo è stato anche poco tempo fa, ma c'è stato un tempo, un tempo molto lungo, in cui molte cattive pratiche e modelli sono stati incoraggiati e difficili da evitare. C'è un'intera generazione di terribile codice PHP, che è ancora in circolazione, e nella misura in cui i nuovi programmatori stanno imparando leggendo il vecchio codice, stanno imparando un cattivo comportamento. PHP non può ora meritarsi la sua reputazione di blackend, ma sicuramente lo ha guadagnato comunque.

La soluzione migliore per difendere PHP è di distanziare attentamente e distinguere lo stato attuale della storia dalla storia a cui tutti sono abituati. Puoi dire che PHP non è un linguaggio terribile, ma se stai parlando con qualcuno che è nel settore da un certo numero di anni, la loro memoria dice loro diversamente.

Mostra loro come il team di PHP ha imparato dai propri errori e cambiato la lingua in meglio. Sono finiti i giorni delle citazioni magiche e dei globals dei registri. Andato è il paradigma globale-tutto, e in modalità sicura, e mysql_escape_string. Spiega loro che i veri programmatori PHP usano sempre spazi dei nomi e query parametrizzate, evitano funzioni deprecate e mettono sempre il loro codice di libreria al di fuori della radice del documento.

PHP è cambiato e i programmatori PHP sono cambiati. Ecco perché PHP è la piattaforma meravigliosa che è oggi. Inoltre, è l'unica piattaforma che sai che i tuoi clienti saranno preinstallati. È enorme.

Come nota a margine, ti consiglio di non citare motori e framework CMS esistenti come una grande vittoria per PHP. Corri il rischio che segnalino cose come Studio di sicurezza Websense da 4 giorni fa che mostra che il 94% delle recenti infezioni del sito web sono state contro siti Web PHP che eseguono software come Joomla e Wordpress. Non è il tipo di compagnia con cui vuoi essere visto. Indica invece che il tuo codice sarà molto più sicuro di tutte quelle altre cose.

    
risposta data 17.03.2012 - 10:17
fonte
9

PHP è il COBOL del web. Entrambe le lingue non hanno rispetto, eppure molte persone si guadagnano da vivere costruendo e mantenendo sistemi scritti in loro, e sono presenti in volume in quasi tutti i principali sistemi informatici per il loro mondo nativo ( ie , rispettivamente il web e il business commerciale). Entrambe le lingue sono ignorate dai professionisti di altre lingue più popolari, basate in gran parte su abitudini vecchie e obsolete praticate da programmatori che da allora hanno imparato meglio e migliorato la loro strumentazione.

PHP dovrebbe essere così fortunato, che vive la vita di COBOL. COBOL è stato più lungo di qualsiasi cosa tranne FORTRAN, e non sta andando via in qualunque momento presto. Ci sono molti programmi COBOL nell'uso quotidiano che sono più vecchi delle persone che li mantengono. Potrebbe non essere "la nuova hotness", ma ci saranno sempre dei soldi da guadagnare lavorando con essa.

    
risposta data 18.03.2012 - 02:45
fonte
4

Penso che potrebbe anche essere utile capire l'altro lato della medaglia e riconoscere le carenze di PHP. Mentre PHP è avanzato molto dall'essere un linguaggio modello, ci sono ancora molte cose che potrebbero essere migliorate. Ci sono alcuni punti in cui PHP manca ancora: Unicode, funzionalità, organizzazione della libreria standard, array e così via.

Quello che suggerisco è che - per fare una discussione costruttiva sui punti di forza e di debolezza di PHP - potrebbe essere positivo riconoscere tutto questo. "Sì, so che la libreria standard di PHP non è molto organizzata, ma se fosse stata scritta oggi, potrebbe fare uso di namespace e API orientate agli oggetti". "Sì, so che l'array predefinito crea un po 'di confusione mescolando strutture di dizionario e di array, ma se si vogliono delle raccolte migliori, si può fare uso del SPL".

Il tuo punto di vista risulterà più strong se dimostrerai di sapere che gli argomenti degli altri hanno qualche ragione.

    
risposta data 17.03.2012 - 23:14
fonte
2

Perché?

Chi ti fa sentire in dovere di difenderti (che si tratti di carriera, coniuge, abitudini di spesa, ecc.) sta sprecando il proprio tempo. Ti stai prendendo il tempo per difenderti semplicemente umorizzando il tipo sbagliato di persone - ora stai sprecando il tuo tempo, oltre al loro.

Elimina queste persone dalla tua vita - stai meglio senza di loro.

    
risposta data 17.03.2012 - 05:15
fonte
1

Non esiste un one-liner breve e dolce che puoi sbarazzarti per convincere le persone del valore di PHP e dei suoi sviluppatori, ma hai scritto un argomento molto convincente proprio prima di porre la domanda.

    
risposta data 17.03.2012 - 05:13
fonte
1

Per affrontare il "PHP è un brutto linguaggio", devi capire perché l'individuo in questione pensa che sia un linguaggio scurrile. Forse (s) ha lavorato su un cattivo progetto scritto in PHP. Forse (s) a lui semplicemente non piace il prefisso delle loro variabili con $ . Forse loro stessi hanno tentato di usare la lingua e hanno scritto un disordine irraggiungibile. Molti programmatori provenienti da altri linguaggi di programmazione vedono PHP e vedono un pasticcio, perché ciò che ha senso in PHP non ha molto senso in altre lingue o su altre piattaforme. Ad esempio, in PHP, gli array sono il "nastro adesivo dell'universo" e vengono utilizzati per ottenere praticamente qualsiasi cosa, mentre in altri linguaggi di programmazione una cosa del genere sarebbe assurda.

Suggerirei una combinazione delle risposte qui.

  1. Come tylerl ha detto, devi dimostrare che il PHP moderno è significativamente migliore rispetto ai cugini più grandi. Andata è la cattiveria di create_function . Andata è la giungla di chiamare include manualmente ovunque.
  2. Riconosci che ci sono errori in PHP. Ci sono errori in ogni linguaggio di programmazione. Dire altrimenti farà sì che molti programmatori seri ignorino completamente la tua risposta come "fanboi".
  3. Mostra alle persone cose facili in PHP che sono difficili in altri linguaggi di programmazione. I linguaggi di programmazione sono progettati per semplificare alcune attività, il che rende necessariamente difficili altre attività. C? La manipolazione della memoria e gli hack di bit sono davvero facili e il linguaggio è davvero semplice, ma mantenere grandi applicazioni è difficile. Giava? Non ha free , e tutto è "OO-ish", ma il runtime è grande e OO può essere limitante. C ++? Consente di creare tipi che si comportano esattamente come i tipi primitivi (ad es. Int) nella lingua, ma ciò comporta una notevole quantità di complessità. PHP? È davvero facile iniziare senza molte conoscenze di programmazione, ma di conseguenza un sacco di codice immondizia pubblicato su Internet.
  4. Riconoscere i vantaggi non linguistici di PHP. Ci sono ancora molte cose in PHP, come un linguaggio che può essere ... fastidioso con cui lavorare. Ma è facile da configurare, facile da implementare e viene fornito con un ampio set di grandi librerie che puoi "collegare" senza molto lavoro aggiuntivo.

C'è un posto per ogni lingua. Scegli la lingua per soddisfare il problema in questione, non provare a calzare una lingua preferita in luoghi in cui non appartiene.

    
risposta data 17.03.2012 - 17:14
fonte

Leggi altre domande sui tag