Newsgroup: it.lavoro.professioni.webmaster
Titolo: Php, Java, asp.net..

Ciao,
ho sviluppato siti (più applicazioni web che siti statici) in tutti e 
tre i linguaggi.
Sto ora analizzando siti opensource come Joomla, oscommerce, etc.. e mi 
domando come mai quelli in php hanno avuto più successo e siano così 
"avanti" rispetto ad altri progetti java o 
asp.net
Ho scaricato e spulciato alcuni progetti java (jadasite) e 
asp.net
 
(Dotnetnuke) ma non mi sembrano all'altezza..e soprattutto c'è poca scelta!
Perchè secondo voi? Solo un discorso di "community"? Mi sbaglio io?
Eppure vi dirò che secondo me non c'è paragone a sviluppare in 
java/
asp.net
 o in php..

 "avanti" rispetto ad altri progetti java o 
asp.net
PHP è facilissimo da deployare e da gestire in ambiente completamente
managed (in pratica tiri su apache, ftp, setti i permessi nel modo
corretto e dormi sonni tranquilli).
Facilità di deploy uguale costi bassi di gestione uguale hosting a
prezzo stracciato uguale boom di PHP.
 - ∞
PS: Quello, e anche il fatto che chi scrive in PHP spesso non sa cosa
sia 'sta roba degli oggetti di cui parlano tutti, "deh, basta buttar giù
la roba e non serve mica che sia chissaché" (sigh).

 corretto e dormi sonni tranquilli).
Aggiungici che la curva di apprendimento di PHP e` enormemente piu` piatta 
di quella per Java (ASP non lo conosco). Puoi partire dal piccolo e 
arrivare al molto complesso, passando dalle 4 righe di query mischiate 
all'html fino a framework a oggetti molto estesi.
Inoltre, per esperienza personale, PHP e` molto piu` leggero di Java, 
quindi a parita` di server ci stanno piu` siti.
Non essendo poi dipenente da un application server si evitano un sacco di 
rogne, come il conflitto tra classi con lo stesso nome nello stesso AP, 
ecc. ecc.
Il rovescio della medaglia e` che spesso un principiante si crea uno stile 
di programmazione che non gli permette di migliorare sfruttando la OOP, i 
pattern, ecc.
Ma quelli che passano allo step successivo si trovano piu` o meno la 
potenza degli altri sistemi, unita alla semplicita` (perche` lo usano da 
un pezzo).
Il fatto poi che sia un prodotto completamente open source (esiste ben 
poco di "closed" per PHP, fa si` che chi lo usa sia piu` avvezzo al 
concetto, e quindi piu` incline a condividere le esperienze e i risultati, 
andando ad alimentare ulteriormente la comunita`.
Bye.

 la roba e non serve mica che sia chissaché" (sigh).
Php è agile e rapido come nessun altro linguaggio di 
programmazione e questo a quanto pare suscita l'ira di 
puristi della programmazione ad oggetti che amano farsi 
seghe mentali su una classe per giorni invece che andare 
avanti col lavoro.
Diciamo che la verità sta nel mezzo.
E' vero che la programmazione ad oggetti è una ottima 
tecnica di programmazione dove serve.
E' vero che la programmazione non ad oggetti è una 
ottima tecnica di programmazione dove serve.
Il mondo reale, a differenza di come vorrebbero i 
puristi della programmazione ad oggetti, pone problemi 
che si risolvono meglio e più velocemente a volte con 
una tecnica e a volte con un'altra.
Sul perché progetti open abbiano avuto più successo in 
php, a mio parere è da spiegare con la rapidità di 
risultati che offre il php oltre alla diffusione ed 
economicità della piattaforma software su cui farlo 
girare.


perchè con php è tutto "molto più facile". Gli strumenti sono sempre free, i 
server non devono avere grosse pretese, ecc ecc ecc
-- 
SimBus82.net coming soon - 
http://www.simbus82.net
Photo&DGTArt - 
http://simbus82.deviantart.com/
BodyWorkout - 
http://simbus82-workout.blogspot.com/
Combatti on-line con 
http://re-caio.labrute.fr
 

 una tecnica e a volte con un'altra.
Un buon framework a oggetti porta enormi vantaggi dal punto di vista
della rapidità di esecuzione (vedi RoR). Il problema è che finora PHP
non ha un buon framework, o laddove un framework potrebbe essere comodo
viene alle volte frenato dai piccoli guai del linguaggio.
 - ∞

 
dici che zend non è buono?

 wrote:

Zend non l'ho provato, purtroppo. Chiedo scusa -- non li ho provati
tutti, quindi ritraggo quello che ho detto sopra.
Solo che da quel che sento in giro, Zend, pur non essendo male, non è il
massimo.
 - ∞

  - ∞
io ti consiglio di dargli un'occhiata perchè risolve egregiamente un bel 
po' di problemi (poi da chi ti dice che non è il massimo fatti dire 
anche cosa non va)
http://www.zendframework.com

 dici che zend non è buono?
Io lo trovo ottimo e lo uso per tutto, dal sitarello di 4 pagine alle 
community. Manca ancora qualcosina, ma la 1.0 e` uscita da piu` o meno 18 
mesi. Diamogli un po' di tempo, sta crescendo a una velocita` spaventosa.
Bye.

 ottima tecnica di programmazione dove serve.
Chiaramente è vero, ad ogni lavoro lo strumento adatto, ma la frase 
messa così dà l'impressione che i paradigmi di programmazione siano solo 
"a oggetti" e "non a oggetti".

 che mi sembra gagliardo, credo di averlo 
postato anche su i.c.w.p. ma senza risposte.
Qualche cakephp-ista interessato a provarlo? A me interessano le 
opinioni, essenzialmente è come il baking da linea di comando ma in 
salsa Cocoa.

 (Dotnetnuke) ma non mi sembrano all'altezza..e soprattutto c'ï¿œ poca scelta!
Sono un po' perplesso, java lo conosco poco sopratutto in ambito web ma 
mi sembra imparagonabile a php e asp dato che gira sul client e non sul 
server. L'unico ambito in cui ricordo java ï¿œ Tomcat (ma parliamo del 
server) e nelle jsp che non so se sia java puro (immagino di no, a 
occhio sarï¿œ scriptato).

 occhio sarà scriptato).
Hai Java vero e proprio nei controller, mentre nelle view hai un 
linguaggio di templating (jsp, appunto) ispirato a Java, che richiama 
delle classi in Java.
Ti serve un Application Server (tomcat o jboss o altri) che instradi le 
chiamate alle varie pagine o componenti di pagina.
Bye.

Da esperto java piï¿œ che php e 
asp.net
 mi permetto di farti notare che 
probabilmente fai confusione tra applet java e servlet&jsp.
La prima la conosci da come scrivi, le seconde sono specifiche 
implementate da vari container come tomcat dove hai tutto il linguaggio 
di java lato server e la vista (l'html) normalmente (ma non sempre) 
realizzata dalle jsp che non ï¿œ altro che un "tag-style" modo di scrivere 
java. (banalizzo..qua la risposta ï¿œ piï¿œ lunga e complessa ma taglio per 
semplicitï¿œ, se vuoi approfondire rispondimi che provo ad esser piï¿œ preciso).
E' lo stesso concetto di 
asp.net
 se lo conosci (+ o -):
.aspx <---> jsp
.cs   <---> servlet java
Andrea D'Amore ha scritto:


 viene alle volte frenato dai piccoli guai del linguaggio.
proprio stamattina riflettevo sul fatto che qualche anno fa misi in 
piedi un sito nukephp... non andava bene però visto che era PHP "puro" 
riuscii a estrapolare facilmente le parti che mi interessavano e le 
modificai... e corressi pure alcuni bachi di sicurezza....
Ieri ho lottato con Joomla e con la sua filosofia (per me bacata - 
posterò un msg apposito) e quindi sono andato a vedere il sorgente.... 
bhe.. mi occorre trovare presto un manuale per lo sviluppatore perché 
ogni cosa è una classe... tutto è "mascherato" dietro metodi... non che 
sia sbagliato, anzi... ma io so cosa devo fare, in PHP puro lo farei in 
10 minuti mentre ora per imparare il framework devo cercare la 
documentazione.. SE ESISTE !
Francesco

Sono contento delle varie risposte che - come sempre - offrono spunti in 
più di riflessioni.
Rispondo qui per una domandina diretta:
perchè buttarsi su Zend? Quali sono i vantaggi principali?
Mi domando poi se gli host economici supportano questo fw
thanx a tutti
Alessandro Pellizzari ha scritto:


Ovviamente ti potrei rispondere tranquillamente che io ho messo mano a 
progetto in php puro dove c'era da mettersi le mani nei capelli non solo 
per cercare di capire, ma soprattutto a cerca di fare delle modifiche.
Il discorso - un po' occulto a prima vista forse - è che lavorare (bene) 
ad oggetti porta ad una eccellente gestione della modularità (i famosi 
plugin..).
Inoltre la manutenzione e il refactoring sono - sempre che tutto sia 
stato fatto in maniera decente - molto più semplici.
Però qui si aprono temi riguardo alla gestione dello sviluppo di un 
progetto piuttosto che alla tipologia di programmazione.
ciao
FP ha scritto:


 Mi domando poi se gli host economici supportano questo fw
Vedi sopra (PHP 5.2.3).
Alcune componenti richiedono librerie e moduli PHP attivi, come le libgd 
per generare PDF o mbstrings per gestire i feed RSS, ecc.
Bye.

 documentazione.. SE ESISTE !
Occhio pero` che PHPNuke e Joomla non sono framework, sono CMS. Che poi 
dietro abbiano un piu` (Joomla) o meno (Nuke) raffinato sistema di classi 
o funzioni che puo` essere visto come un framework, e` un altro discorso, 
ma l'astrazione di un CMS e` maggiore di quella di un framework. Fa piu` 
cose in automatico, quindi e` anche (relativamente) meno personalizzabile.
Bye.

 perchè buttarsi su Zend? Quali sono i vantaggi principali?
Beh, i vantaggi di usare un framework sono quelli di programmare ad un 
po' più alto livello (dinchè si usa il frameword) poichè si usano 
paradigmi oggetti funzioni stabiliti dal framework stesso.
Poi uno può dire che paradigmi oggetti a altro se li crea da solo a suo 
piacimento e infatti molta gente fa così, pregi controllo totale sul 
codice che ha scritto, difetti rischio di avere un codice meno 
performante e robusto (con il framework benefici del lavoro di una 
solida comunità di sviluppatori).
Quindi per me è sempre utile fare uso di un framework, si tratta di 
stabilire quale usare.
Il bello di Zend è che è modulare, ha cioè tutta una serie di componenti 
che puoi usare autonomamente senza la necessità di utilizzare tutto il 
framework. Vuoi creare un'acl e usare le autenticazioni? Basta scaricare 
solo i 2 componenti.
Altro vantaggio per me è che è ad alto ma non altissimo livello, 
tornando al caso di prima se vuoi usare acl e autenticazioni non è che 
zend ti da il sito bell'e fatto, i componenti sono sempre di medio 
livello (forse invece di usare alto e altissimo era meglio medio e alto) 
e ti lascia la libertà di creare tutto a modo tuo.

 .cs   <---> servlet java
Zero spaccato, un'estensione .cs non l'ho mai neanche sentita :-)

 delle classi in Java.
Ok, hai risposto al mio altro post.

 Puoi fare qualche esempio di fw frenato dai guai del linguaggio?
L'implementazione classica di ActiveRecord.
 - ∞

 .cs   <---> servlet java
Permetti una correzione: la prima equivalenza è corretta, la seconda no. 
Una servlet concettualmente è uguale a una jsp (tant'è vero che gli 
application server convertono la jsp in servlet e poi la compilano in 
classe java).
Per cui la corrispondenza diverrebbe:
.cs   <---> classe java (.java)

 Le servlet sono scritte in Java? 
Sì, sono delle classi java che ricevono dati dal browser e restituiscono 
(x)html.
Negli application server le pagine jsp vengono "tradotte" in servlet e 
poi compilate come file .class, invocati dall'AP.
I vantaggi delle jsp rispetto alle servlet sono essenzialmente la 
velocità di implementazione (si prende un file html già pronto e ci si 
aggiunge codice java) e l'utilizzo di custom tags.

Pablo Xon ha scritto:

Si a completezza e per curiosi, specifico che intendevo le .aspx.cs 
associate ad ogni pagina non le .cs pure.
La jsp è sempre un servlet scritta diversamente ma di norma (nel 
rispetto MVC) vengono differenziate per separare Vista (jsp) e 
Controller (Servlet), mentre il Model è implementato da classi java normali.
Ovviamente avevo messo il "+ o -" perchè in realtà è solo l'impostazione 
ad essere simile, è invece profondamente diverso il modo in cui vengono 
utilizzate le aspx.cs e le "servlet": la prime sono classi che 
"estendono" la pagina aspx fornendo servizi (gestione degli eventi) 
specifici della pagina rispetto ad una servlet che raccoglie solo le 
richiesta http. (Poi io son rimasto ad 
asp.net
 2, non so le ultime...)
Vabbè non volevo divagare ma ho divagato, era per chi fosse interessato...

 Zero spaccato, un'estensione .cs non l'ho mai neanche sentita :-)
con 
asp.net
 una pagina aspx (webform) puo' contenere tutto il codice che 
gestisce binding di dati o controlla la presentazione dei dati nello 
stesso file aspx (il tutto racchiuso in uno "<script 
runat=server></script>", specificando anche il linguaggio usato) oppure 
in un file separato (code behind) la cui estensione indica il linguaggio 
usato per la scrittura del codice, per esempio:
cs per c#
vb per 
VB.NET
la "pagina" viene gestita come una classe che puo' comprendere gestori 
di eventi (quali il page_load) o come dicevo prima il binding dei dati 
ai vari controlli server ...
il tutto scritto piu' o meno sofisticatamente :-)