Un cliente ci ha chiesto di stimare gli sforzi quando selezionavamo PHP come linguaggio di implementazione per la sua prossima applicazione web-based. Abbiamo trascorso circa una settimana esplorando PHP, prototipazione, test, ecc. Siamo abbastanza nuovi in questa lingua, forse ci siamo passati in giro in passato, ma andiamo con i noobs di PHP ma con esperti di sviluppo di applicazioni (per la mancanza di una soluzione migliore, parola meno lusinghiera:)
Sembra che se scriviamo, puliamo codice manutenibile, seguiamo la separazione delle preoccupazioni, schemi di architettura aziendale (DAO ecc.) lo "sforzo" nella creazione di un'applicazione web basata su oggetti basata su PHP sembra essere lo stesso per un Uno basato su Java.
Ecco la nostra equazione per stimare lo sforzo (sviluppo / tempo di consegna):
ConstructionEffort = f(analysis, design, coding, testing, review, deployment)
Abbiamo confrontato in modo specifico le stime dello sforzo nella creazione di un'applicazione enterprise con quanto segue:
- PHP + CakePHP / CodeIgniter (dovremmo averne considerati altri?)
- Java + Spring + Restlet
È un'applicazione end-to-end:
- Cliente: Javascript / jQuery + HTML / CSS
- Livello intermedio / Business logic - (Valutazione ancora PHP / Java)
- Database: MySQL
Le stime dello sforzo del 1 ° e 3 ° livello sono costanti e relativamente indipendenti dalla tecnologia del livello intermedio. A un livello elevato con una scomposizione iniziale nelle user story delle funzionalità richieste e un SWAG di alto livello sul numero puro di classi / SLOC che sarebbero necessari per PHP non sembra differire molto da quanto richiesto da lo stesso in Java. È corretto?
Basiamo le nostre stime iniziali sulla prototipazione / codifica iniziale che abbiamo fatto con PHP - al momento stiamo trascurando la fluidità con la lingua come fattore, poiché questo sarà un ostacolo iniziale e non un ostacolo a lungo termine IMHO ( abbiamo anche tempo sufficiente per diventare abbastanza fluenti con PHP).
Sono interessato a conoscere la prospettiva dei programmatori rispetto all'impegno nella creazione di applicazioni simili con entrambe le lingue per giustificare la scelta dell'uno sull'altra. Ci manca qualcosa qui? Sembra che stiamo andando contro la credenza popolare del fatto che PHP sia più veloce sul mercato (o se siamo molto fluenti con Java la nostra visione è annebbiata). Non sembra che lo sforzo di programmazione / programmazione sia risparmiato da quello con cui abbiamo giocato.