Motivi puramente tecnici per PHP come prima scelta?

6

So che questo può sembrare un trombettatore di fiamma, ma spero che mi prenda la mia parola dicendo che non è mia intenzione. Sto solo cercando di capire il fenomeno PHP.

Dopo aver esaminato i numerosi problemi tecnici con la progettazione della lingua di PHP, mi viene difficile trovare vantaggi tecnici che riscattano dove il PHP supera tutti gli altri linguaggi. Prima di giungere alla conclusione che non ci sarebbe semplicemente alcun motivo per scegliere PHP come linguaggio di sviluppo per motivi puramente tecnici , vorrei chiedere, se tutti i fattori non tecnici fossero uguali (come quale lingua gli sviluppatori sanno già, quali lingue offre il provider di hosting, lingua del codice esistente, costo, licenza, fiat aziendale, ecc.), ci sarebbe un qualsiasi tipo di nuovo sistema software che indicherebbe che rendere PHP un prima scelta per lo sviluppo? Se sì, quale vantaggio tecnico ha PHP su tutti in altri linguaggi che potrebbero indurti a sceglierlo?

EDIT: non mi interessa comparare PHP "out of the box" con altre lingue "out of the box". Se PHP ha una determinata funzionalità "out of the box" che un'altra lingua ha solo dopo aver installato alcuni componenti aggiuntivi prontamente disponibili, non è considerato un vantaggio per PHP ai fini di questa domanda.

    
posta JoelFan 18.10.2011 - 19:33
fonte

4 risposte

20

Se c'è una lingua là fuori che non ha compromessi, per favore fammi sapere.

Anche se ciò che hai eliminato come fattori "non tecnici" elimina un certo numero di benefici PHP comuni, posso pensare ad alcuni fattori tecnici per i quali PHP potrebbe essere favorevole:

  • PHP è scripting. Ciò significa che la distribuzione può essere semplice come un nuovo file su un server PHP.
  • PHP ha OOP. L'OOP5 di PHP non è affatto un brillante esempio di OOP "buono" ma è accettabile.
  • PHP è un linguaggio modello. PHP e output (HTML o anche JSON) possono essere intrecciati così facilmente che è molto semplice creare una separazione grezza tra controller e viste. Può essere facile come due file, o anche un singolo file con delineazione chiara.
  • PHP fa un lotto di cose fuori dagli schemi . Lettura di file, richieste HTTP, lettura / scrittura XML / JSON, manipolazione delle immagini sono tutti molto facili, proprio nel linguaggio di base o nelle estensioni ubiquitarie. *

Questa è una combinazione di cose - non credo che sceglieresti PHP per la sua "forza" in nessuno dei precedenti (eccetto forse quello che fa fuori dalla scatola con pochissimo sforzo).

Nessuno di questi è necessariamente un vantaggio nel 100% dei casi. Alcuni di questi sono in realtà negativi dato alcuni sviluppatori o alcune esigenze di progetto. Ma insieme, potrebbero solo fornire il giusto insieme di vantaggi per un dato progetto.

Scegliere una lingua significa determinare quali compromessi con i quali puoi e non puoi convivere, e quelle con cui non puoi vivere senza. Proprio come la maggior parte dei linguaggi comuni, i vantaggi di cui sopra (e altri che potrei aver perso) si combinano per soddisfare al meglio le esigenze di alcuni sviluppatori.

* In molti casi, le librerie, i plugin, ecc. possono trasformare una lingua in un concorrente diretto con qualsiasi altra. La è ancora un vantaggio tecnico immediato :

  1. Le librerie vengono fornite con un sovraccarico di installazione e manutenzione.
  2. Le librerie spesso devono essere spostate con un progetto (o usare uno strumento di automazione della build) invece di un solo requisito di "deve usare la versione della lingua X.0.0"
  3. Ogni libreria viene fornita con un proprio ciclo di aggiornamento, che può essere o meno compatibile con la versione della lingua principale o altre librerie.
  4. Il cielo potrebbe aiutarti se ti ritroverai con dipendenze circolari e dovrai aggiornare qualsiasi cosa.
risposta data 18.10.2011 - 19:57
fonte
11

I am just trying to understand the PHP phenomenon.

PHP era nel posto giusto esattamente al momento giusto.

Ci sono no solo ragioni tecniche per portare PHP su un'altra lingua. Quando faccio dei confronti linguistici in passato, per me, si riduce a ciò che mi sento più a mio agio e quale lingua produce il ROI più alto (che si lega anche a quale lingua mi sento più a mio agio con ovviamente). Di solito le mie decisioni sono state anche condite con un pizzico di benchmark ab . Ogni lingua offre la possibilità di fare tutto ciò che fa un altro.

I vantaggi dell'uso del PHP rispetto ad altri linguaggi sono puramente nella sua comunità e disponibili per i programmatori PHP (nota, non ho menzionato la qualità di;)). Sarebbe molto più semplice (e meno costoso) esternalizzare parti di un'applicazione PHP rispetto ad, ad esempio, un'app Erlang (nota, ancora una volta, non ho menzionato nulla sulla qualità;)).

    
risposta data 18.10.2011 - 20:20
fonte
6

PHP è cresciuto (perché non si può davvero dire che sia progettato ) dall'esigenza di generare facilmente pagine web. Ed è riuscito a questo:

  1. Nel suo caso d'uso predefinito (con Apache) segue un modello di richiesta / risposta molto semplice. No multi-threading, niente di niente. L'unica cosa di cui dovresti preoccuparti è usare le transazioni per l'accesso ai DB quando necessario.
  2. Puoi facilmente prendere una pagina Web statica e aggiungere solo parti di logica qua e là.
  3. È digitato in modo dinamico, molto indulgente e ha una struttura di dati per scopi generali

Dal modo in cui viene utilizzato sui server Web, non è intrinsecamente diverso da Perl, Ruby o Python. Tuttavia questi tre sono stati progettati come linguaggi di uso generale (sì, si potrebbe obiettare che Perl non lo fosse), che in seguito divennero disponibili come strumenti di sviluppo web.

PHP ha avuto un po 'di vantaggio e offre semplicemente la barriera di accesso più bassa mai allo sviluppo web. Per questo motivo, ci sono un sacco di sviluppatori PHP in giro, c'è un sacco di codice PHP in giro e se si ottiene spazio web o un server gestito, di solito ha PHP sullo scaffale. Ottenere PHP attivo e funzionante è banale (almeno se la sicurezza non è un problema). Trovare una libreria che fa ciò che vuoi è banale (almeno se la velocità non è un problema). Trovare un sostituto per uno sviluppatore che è andato via è banale (almeno se la qualità non è un problema).

    
risposta data 18.10.2011 - 20:20
fonte
2

La mia risposta: non esiste una funzione tecnica in cui PHP sia migliore di altre lingue.

C'è qualche tendenza, alcuni la chiamano "programmazione orientata al linguaggio", che in futuro le persone dovrebbero essere in grado di scrivere programmi come aggiungere nuove cose a wikipedia. Solo usando meccanismi molto semplici.

In qualche modo PHP è bravo a farlo. È più circa il numero di persone che hanno accesso al contributo rispetto alle caratteristiche tecniche.

Con la programmazione dinamica orientata agli oggetti ci sono molte funzionalità che PHP non fornisce ancora. (esempio necessario)

Per quanto riguarda lo "scripting OOP" e l'uso della "lingua come linguaggio template" può essere fatto con molti linguaggi di programmazione (penso che anche perl6, e possibilmente anche ruby offra questo).

Penso sia importante guardare oltre la tendenza secondo cui più persone possono contribuire con i programmi. Anche con lingue specifiche del dominio (DSL), lingue secondarie di piccole dimensioni che offrono la possibilità ai non programmatori di aggiungere funzionalità.

Inoltre, è importante seguire l'andamento dell'uso della programmazione funzionale per la programmazione web. Questo è il contrario: linguaggi e framework estremamente complessi che sono adatti solo per programmatori esperti. Con cose complesse come Monade, teoria delle categorie, valutazione pigra.

Ci sono due esempi molto buoni:
  1. Haskell e la struttura a scatto funzionano   2. Scala e la struttura dell'ascensore
(e inoltre forse anche Clojure e link ).

    
risposta data 21.11.2011 - 20:41
fonte

Leggi altre domande sui tag