Dubbi Php

Salve ragazzi, sto studiando php. Inizialmente un paio di amici di avevano consigliato questo linguaggio.

Ora però altre persone mi dicono che Php non è un buon linguaggio.

Scusate l'ignoranza tecnica, ma cosa ha Php che non va?

inviato 3 anni fa
bismark2005
X 0 X

Ma veramente facebook è scritto proprio in php.

Tanto per dirne un altro che non serve proprio pizza e fichi: anche yahoo è scritto in php.

risposto 3 anni fa
Massimiliano Arione
X 1 X

Abbia pazienza, ma non è la prima volta che tiri fuori questa specie logica al contrario.

Il fatto che uno possa usare gli oggetti pur continuando a ragionare in procedurale non vuol dire che la programmazione a oggetti si basi sul procedurale.

Come ho già evidenziato, se uno vuole programmare a oggetti può tranquillamente ignorare le implementazioni delle classi su cui gli oggetti che usa si basano. Gli basta conoscere cosa fanno gli oggetti, non come lo fanno.

risposto 3 anni fa
Massimiliano Arione
X 1 X

Il problema di php è che è cresciuto in maniera un po' disordinata.

Negli ultimi anni si è arricchito di molte caratteristiche che lo hanno reso un potente linguaggio orientato agli oggetti, ma tuttavia ha dovuto mantenere anche le vecchie funzionalità, per questioni di compatibilità.

Quindi ancora oggi è possibile scrivere pessimo codice in php, codice che sembra uscire dal web degli anni '90.

Occorre un po' di disciplina per scrivere bene in php e sicuramente aiuta l'utilizzo di un framework.

risposto 3 anni fa
Massimiliano Arione
X 0 X

Quindi con un pò di disciplina si dovrebbero ridurre i danni giusto?

risposto 3 anni fa
bismark2005
X 0 X

Ciao bismark2005, in linea di massima sono d'accordo con garak ma sfortunatamente neanche un po' di disciplina può porre rimedio ai difetti di php.

Con questo non voglio dire che php fa schifo, anzi, per me vale il contrario, però "quant'è buono php per fare <qualcosa>" è un discorso che va affrontato caso per caso: se ad esempio devi realizzare un'applicazione di dimensioni medio-piccole php compie il suo lavoro alla grande, e forse riesce anche a farti risparmiare del tempo, però se l'obiettivo è quello di realizzare applicazioni più grandi, come ad esempio Facebook, php non è affatto un linguaggio da prendere [seriamente] in considerazione per due motivi relativamente semplici: i) PHP non si integra molto facilmente (senza perdere di eleganza) con altre tecnologie e linguaggi di programmazione, ii) php non è ancora abbastanza maturo per realizzare applicazioni enterprisey.

Riassumendo quindi, se il tuo obiettivo è realizzare un piccolo blog o sistema di gestione dei contenuti, o qualche altro progetto diciamo con meno di 25.000 linee di codice, allora usare PHP è una scelta che si può tranquillamente prendere in considerazione. Se devi scrivere un'applicazione che [prevedi] supererà le 25.000 linee di codice, allora PHP non è la scelta giusta.

Inoltre PHP non è linguaggio giusto per applicazioni realtime perché i) il realtime deve necessariamente essere realizzato integrando tecnologie differenti, ii) nel 70% dei casi PHP gira su Apache che pone altre limitazioni allo sviluppo di applicazioni realtime.

Spero di essere stato esaustivo e comprensibile, se hai ancora bisogno di informazioni non esitare a chiedere ancora!

Ciao,

Tom.

Postscript:

Dicendo 25.000 linee di codice è un'esempio, in realtà la distinzione andrebbe fatta tenendo conto del traffico del sito, della complessità dell'architettura e del codice in runtime.

risposto 3 anni fa
Andrea Turso
Andrea Turso
71
X 0 X

Scusa ma io che sono un profano non riesco a capire bene. 25000 righe di codice cosa significa esattamente? Di quale ordine di grandezza parliamo?

risposto 3 anni fa
bismark2005
X 0 X

Quando si parla di "linee/righe di codice" si intende [generalmente] SLOC, ovvero Source Lines Of Code, che rappresenta il numero di linee di codice che non sono commenti.

È una metrica che si usa per confrontare la "grandezza" di applicazioni diverse.

Ciao,

Tom.

risposto 3 anni fa
Andrea Turso
Andrea Turso
71
X 0 X

Ok ma in "soldoni" cosa vuol dire? Puoi farmi qualche esempio di applicazione piccola, media e grande?

risposto 3 anni fa
bismark2005
X 0 X

Scua Garak ma facebook non è un'applicazione medio/piccola. Non so Yahoo.

Comunque... scusate la domanda,ma se Php avrebbe questi limiti perchè i progettisti del linguaggio non prendono provvedimenti, magari "scopiazzando" da java?

risposto 3 anni fa
bismark2005
X 0 X
Scua Garak ma facebook non è un'applicazione medio/piccola. Non so Yahoo.

Appunto, la mia era una contestazione all'affermazione di trashofmasters.

Mi sembra evidente che php possa scalare dall'applicazione minuscola all'applicazione più grande del mondo (che oggi è appunto facebbok). Yahoo forse non è più famosa come qualche anno fa, ma sicuramente qualche milione di utenti ce l'ha  ;)

risposto 3 anni fa
Massimiliano Arione
X 0 X

Quindi altro che sitarello con Php. Si possono fare cose ben più grandi!!!

risposto 3 anni fa
bismark2005
X 0 X

Garak, non credo di aver capito a quale mia affermazione stai facendo riferimento nel tuo ultimo post. Cerco comunque di chiarire ciò che intendevo: se uno deve realizzare un'applicazione delle dimensioni di Facebook che non mi sembra di aver mai detto che non è scritto in PHP non dovrebbe prendere in [seria] considerazione PHP.

Questo perché applicazioni come Facebook richiedono l'integrazione di applicazioni scritte in linguaggi differenti, proprio perché PHP non è lo strumento adatto per applicazioni di quelle dimensioni e con quel tipo di feature.

Bismark2005: per quanto riguarda il modificare PHP scopiazzando da Java, l'idea non è affatto malvagia, tuttavia non è applicabile in quanto si devono ci sono troppi fattori che rendono la cosa impraticabile.

  • PHP e Java sono due linguaggi di natura differente: PHP è un linguaggio di scriping interpretato, mentre Java è un compilato
  • [cercare di] introdurre anche solo alcune delle funzionalità di Java in PHP è tecnicamente improponibile in quanto richiederebbe consistenti modifiche al Lexer, al Parser e all'interprete, a quel punto varrebbe la pena riscriverlo da zero, ma il gioco varrebbe la candela?
  • Deve essere garantita la retrocompatibilità: l'introduzione di modifiche così consistenti al motore del linguaggio comportano necessariamente la rottura della retrocompatibilità, che deve essere necessariamente tenuta in considerazione quando decine di milioni di persone dipendono dalla consistenza del codice.

anche se detto così PHP sembra una schifezza, in realtà penso che sia un'eccezionale linguaggio di scripting, e devo dire che la comunità si sta muovendo piuttosto bene. Una delle più importanti novità è il processo di RFC (simile al Java Community Process) introdotto un paio d'anni fa anche in PHP, questo fa ben sperare sulla bontà delle feature aggiunte a PHP.

Ad esempio in PHP 5.4 (di cui ho appena compilato la prima alpha) sono stati introdotti i Traits che permettono il riuso [orizzontale] di codice, che in poche parole è l'equivalente del copia/incolla che però viene fatto direttamente dall'interprete in automatico, oltre che all'array dereferencing che [finalmente] permetterà di scrivere codice del tipo $object->getArray()['indice']

Per cui, tornando in topic e concludendo, PHP non è la scelta migliore da fare se si ha intenzione di scrivere un'applicazione di grandi dimensioni (diciamo oltre 1.000.000 utenti, oppure 10.000 utenti connessi in contemporanea) o per applicazioni che richiedono un'implementazione seria del realtime, mentre è la scelta migliore per realizzare applicazioni medio-piccole.

Il mantra è questo: The right tool for the job.

Ciao,

Tom.

Revisione: Garak ho capito la frase a cui facevi riferimento, tuttavia non mi sembra di aver negato che Facebook sia realizzato in PHP. In realtà quello che intendevo dire è che PHP non è stato certamente lo strumento migliore per realizzarlo.

Di fatto, se hai tempo libero e voglia, posso inviarti [in privato, altrimenti andiamo Off Topic] una sitografia contenente numerosi articoli, presentazioni e conferenze in cui vengono illustrate le lezioni apprese dagli ingegneri di Facebook nell'affrontare le numerose limitazioni e intoppi incontrati durante lo sviluppo di un'applicazione di tale portata.

risposto 3 anni fa
Andrea Turso
Andrea Turso
71
modificato 3 anni fa
X 0 X

Per cui, tornando in topic e concludendo, PHP non è la scelta migliore da fare se si ha intenzione di scrivere un'applicazione di grandi dimensioni (diciamo oltre 1.000.000 utenti, oppure 10.000 utenti connessi in contemporanea) o per applicazioni che richiedono un'implementazione seria del realtime, mentre è la scelta migliore per realizzare applicazioni medio-piccole.

#######################

Cavolo mica è poco però? Credo che con queste caratteristiche si coprano senza difficoltà l'80% delle necessità. poi se proprio si deve fare una cosa grandissima si prendono in considerazione altri linguaggi.

risposto 3 anni fa
bismark2005
X 0 X

Garak, non credo di aver capito a quale mia affermazione stai facendo riferimento nel tuo ultimo post. Cerco comunque di chiarire ciò che intendevo: se uno deve realizzare un'applicazione delle dimensioni di Facebook che non mi sembra di aver mai detto che non è scritto in PHP non dovrebbe prendere in [seria] considerazione PHP.

Questo perché applicazioni come Facebook richiedono l'integrazione di applicazioni scritte in linguaggi differenti, proprio perché PHP non è lo strumento adatto per applicazioni di quelle dimensioni e con quel tipo di feature.

Non capisco perché l'esigenza, assolutamente legittima, di dover integrare linguaggi differenti debba nelle tue idee cozzare con l'adozione di php.

Nessuno (spero) pensa che php sia un linguaggio universale, che possa fare tutto da solo. Anzi, l'adozione di altri linguaggi da affiancare a php è cosa praticamente scontata (vedi mysql).

Il vantaggio principale di php è nella sua grandissima diffusione, che consente di avere a disposizione una larga base di programmatori.

Per dirne una, ruby è probabilmente un linguaggio migliore di php, ma non ha nemmeno lontanamente la basi di sviluppatori e di installato di php.

Poi dimmi tu se per te yahoo non è enterprise...

risposto 3 anni fa
Massimiliano Arione
X 0 X

Secondo me il punto è che usare PHP per quel genere di applicazioni, in special modo quelle che richiedono l'integrazione con altre tecnologie (credo che dire semplicemente linguaggi sia riduttivo) è una forzatura. Non ho detto che uno se vuole perdere tempo non lo possa fare, ma semplicemente che non è il modo migliore per farle.

risposto 3 anni fa
Andrea Turso
Andrea Turso
71
X 0 X
Secondo me il punto è che usare PHP per quel genere di applicazioni, in special modo quelle che richiedono l'integrazione con altre tecnologie (credo che dire semplicemente linguaggi sia riduttivo) è una forzatura. Non ho detto che uno se vuole perdere tempo non lo possa fare, ma semplicemente che non è il modo migliore per farle.

Ma il perdere tempo è tutto relativo.

Se io ho una squadra di sviluppatori php, un'azienda con un knowledge storico su php, mi costa molto più tempo (e soldi) cambiare linguaggio piuttosto che implementare una qualsiasi integrazione con php.

Ripeto, i fatti sono questi: grosse aziende, con siti enormi, usano php. Non credo che abbiamo tempo (= soldi) da buttare.

risposto 3 anni fa
Massimiliano Arione
X 0 X

No, mi sono spiegato male, è evidente che non hai afferrato il punto.

Comunque stiamo finendo Off Topic, possiamo continuare la discussione in privato se ti va!

Ciao,

Tom.

risposto 3 anni fa
Andrea Turso
Andrea Turso
71
X 0 X

E perché non aprire una discussione a parte e renderla pubblica? Vi leggo volentieri :)

Però vorrei avvertire di una cosa: non si è toccato e discusso minimamente dell'infrastruttura dei vari server che stanno dietro ai vari siti web.

Un portale con 10000 utenti connessi in contemporanea, non sta in piedi solo tramite il Php o un altro linguaggio "scritto meglio", sta in piedi anche per i server che forniscono il servizio a 10000 utenti, un unico server potrebbe avere dei problemi se non è un portale statico ma offre varie funzionalità e livelli di interazione.

risposto 3 anni fa
Mario Santagiuliana
X 0 X

A me veramente non sembra che siamo off topic.

Il topic è iniziato genericamente sulla bontà di php, poi è declinato verso prestazioni e scalabilità, ma mi pare che ci stiamo ancora abbondantemente dentro.

Secondo me php scala bene, o comunque non peggio di altri linguaggi, abbiamo dei riscontri.

Tra l'altro, come ci ricorda anche Mario, la scalabilità è frutto di una serie di fattori, in gran parte esterni a php stesso.

Aggiungo un'ulteriore considerazione: non si può iniziare a studiare un linguaggio, ma nemmeno a progettare un'applicazione, pensando a come scalerà con un milione di utenti. Ovviamente dobbiamo immaginare che questa scalabilità non sia impossibile, ma progettare un sito pensando a quando avrà successo (forse anche mai) si chiama over-engineering o anche premature optimization (che, forse lo sapete già, è ritenuta "la radice di tutti i mali)

risposto 3 anni fa
Massimiliano Arione
X 0 X

Quando parlate di scalabilità a cosa alludete esattamente? La capacità di adattarsi ad un numero di visitatori sempre maggiore?

Quindi anche i server hanno un ruolo fondamentale giusto?

Ad esempio io so che per grandi progetti hanno usato websphere (java) chissà se Zend server è allo stesso livello?

risposto 3 anni fa
bismark2005
X 0 X

Si, per scalabilità si intende anche questo. Più in generale alla capacità di un'applicazione o di una infrastruttura di adattarsi ad un certo tipo o carico di lavoro a seconda delle esigenze.

risposto 3 anni fa
Mario Santagiuliana
X 0 X

Effettivamente con scalabilità (come con molti altri termini) si intendono tante cose e tante piccole sfaccettature sottointese che rendono difficile dare una descrizione precisa.

Se parliamo di scabilità però dobbiamo cambiare il punto di vista del discorso da applicazione di poche migliaia di utenti, come possono essere il blog personale, o il content management system o la bulletin board e passare ad un contesto più ampio, considerando applicazioni con oltre 20.000 SLOC, con diciamo 500 utenti connessi in contemporanea e con funzionalità di realtime.

Dopotutto è quello che tutti vogliono realizzare di questi tempi, quindi non stiamo certo parlando di un'argomento desueto.

Di rado applicazioni del genere sono composte dalla sola parte di frontend con un backend unificato e con responsabilità ridotte, task in cui PHP da il suo meglio come linguaggio di scripting, ma sfortunatamente non va oltre.

Per cui è necessario permettere a PHP di collaborare con altre tecnologie (che come giustamente suggeriva MarioS, possono comprendere altri server, ma non limitandosi solo ai web server), questo lo si può fare utilizzando middleware (remoti o locali) che utilizzano sistemi di scambio di dati basati su RPC, XML, JSON, con altri protocolli o nativamente attraverso il sistema operativo.

In questo PHP va piuttosto bene, ha librerie e interfacce per lavorare con i più utilizzati formati di scambio di dati come quelli che ho appena citato tuttavia il suo supporto non va oltre l'offrire gli strumenti di basso livello per interfacciarsi con sorgenti di dati, l'integrazione con altre applicazioni deve essere fatta caso per caso.

In generale la scalabilità è la capacità intrinseca di un sistema di adattarsi alla crescita.

La crescita di un sistema può avvenire sia in termini di volume di input che deve gestire che nelle dimensioni totali dell'infrastruttura che lo compone.

Spesso la scalabilità viene definita come verticale quando si aumentano le capacità di un sistema di gestire traffici sempre più alti con un minore carico, ad esempio aggiungendo nuovo hardware o migliorando le configurazioni, mentre è definita orizzontale quando si aggiungono nuovi server per distribuire il traffico mantenendo ridotto il carico dei singoli nodi.

In termini di costo è decisamente più vantaggioso scalare orizzontalmente, aumentando però la difficoltà di realizzazione e manutenzione dell'applicazione, che dovrà essere distribuita su più nodi.

Nota: con "carico" intendo effettivamente il carico di CPU, memoria (disco e ram) e rete del server (se avete confidenza con il "Load Average" del comando uptime è quello che intendo). con "traffico" intendo il numero di richieste servite dai servizi in esecuzione sul server, derivanti dalla gestione della richiesta HTTP (o di protocolli incapsulati al suo interno) da parte del webserver (stiamo parlando di applicazioni web, dopotutto). Quindi sono comprese anche tutte le richieste dirette al database server, a messaging server, servizi remoti e.g., web services, chiamate RPC, o accesso per l'accesso ad altri middleware. Con "servizio" intendo il motivo per cui si vuole realizzare l'applicazione o il servizio e le funzionalità offerte ai suoi utenti.

Garak: Penso che alcune delle considerazioni da fare prima della realizzazione di un'applicazione riguardanti i possibili problemi di scalabilità che potranno sorgere durante la crescita del servizio vengano erroneamente banalizzate come over-engineering o ottimizzazione prematura, come dici tu, per via del folklore aleggiante nelle comunità di sviluppatori, quasi a considerare la sviluppo di software semplicemente come arte piuttosto che una disciplina ingegneristica. Perciò credo che sia sempre necessario vagliare e sperimentare le possibilità in modo da essere sicuri di fare decisioni equilibrate e non influenzate e facendo sempre riferimento alle Best Current Practices (wiki) o altri standard de facto.

Inoltre come anticipavo all'inizio del post, scalare la piattaforma/infrastruttura non è la medesima cosa di scalare o distribuire l'applicazione. Quindi, se l'applicazione è in PHP, e da questo punto di vista PHP non scala (problemi di scalabilità a Facebok) di conseguenza l'applicazione non scala, e questo non rende felici gli investitori e i committenti. Comunque fino alla release 1.9.1 di Ruby PHP se la cavava anche meglio in termini di prestazioni (fonte) ma rimane comunque il fatto che non scala con facilità né orizzontalmente né verticalmente.

Per cui il mio punto è questo: PHP è ottimo per applicazioni medio-piccole, ma anche grandi, purché con requisiti e funzionalità modeste, ma meno indicato per applicazioni enterprise e realtime, per via delle integrazioni necessarie non proprio semplici da implementare, sino ad arrivare ai casi in cui è necessario spostare codice dallo userland all'interno di un'estensione.

Tom.

risposto 3 anni fa
Andrea Turso
Andrea Turso
71
modificato 3 anni fa
X 0 X

Ma non credi che facebook, date le dimensioni ormai raggiunte, avrebbe problemi da risolvere anche se fosse scritto in un altro linguaggio?

Secondo te avrebbe avuto senso per Zuckerberg ingegnerizzare facebook quando aveva 100 utenti pensando a quando ne avrebbe avuti 100 milioni? (senza sapere, ovviamente, che li avrebbe avuti)

E poi non ho capito una cosa: se php è anche estensibile, come ricordi anche tu, tanto che quelli di facebook si son scritti un'estensione apposta, dove sta tutta questa difficoltà? O vuoi considerare php solo come il suo core?

Prché, secondo te, facebook non migra a un altro linguaggio?

risposto 3 anni fa
Massimiliano Arione
X 0 X

Se non erro facebook in parte converte il proprio codice php in codice c++ ed eseguibile per velocizzarne l'esecuzione. Hiphop:

https://github.com/facebook/hiphop-php/wiki/

risposto 3 anni fa
Mario Santagiuliana
X 0 X

Se non erro facebook in parte converte il proprio codice php in codice c++ ed eseguibile per velocizzarne l'esecuzione. Hiphop:

https://github.com/facebook/hiphop-php/wiki/

Esatto.

La mia modesta interpretazione di questa soluzione è la seguente: conviene tenere una base di codice in un linguaggio molto diffuso e meno efficiente, e far fare il lavoro sporco alle macchine. Questo perché, semplicemente, le macchine si possono scalare facilmente, le persone no.

risposto 3 anni fa
Massimiliano Arione
X 0 X

Mi sembra che a grandi linee siamo tutti d'accordo sul fatto che, banalizzando un po', quando l'obbiettivo è MOOOOOLTO GRAAAANDE oppure diverso da una classica applicazione web, il PHP mostra tutti i suoi limiti.

Fortunatamente il web è fatto di progetti medio piccoli per cui PHP, unito ad un approccio professionale, va benissimo nella stragrande maggioranza dei casi.

Dalla mia esperienza però ritengo che i limiti di PHP sul fronte della scalabilità e delle prestazioni non siano poi il vero problema, che anzi negli ultimi anni è stato brillantemente affrontato da interessanti soluzioni (es.: Zend Server Cluster Manager)

Nelle applicazioni enterprise non è tanto il numero di utenti a spaventare, problema che generalmente viene risolto spendendo un sacco di soldi in hardware carrozzato. In questo tipo di applicazioni viene richiesto un linguaggio che abbia la fama di essere:

- sicuro (ed il PHP ha un triste passato alle spalle, a causa più degli sviluppatori che del linguaggio stesso);

- stabile (ed il PHP non lo è stato negli anni, anche perché doveva assecondare le esigenze di un numero sempre crescente di sviluppatori)

- supportato dai più grossi nomi dell'IT (e php è stato ignorato per anni dai produttori di software, basta pensare agli IDE per Java e C# in confronto a quelli disponibili per PHP)

- dotato di un ecosistema di alto livello (il PHP è povero di librerie di qualità, pensate ad iText di Java o allo stack per i web service Metro, sempre di Java, per non parlare dei framework, Struts ha più di 10 anni!!! PHP è lontano anni luce)

Ho voluto sottolineare la parola "fama" perché nelle aziende molte scelte non vengono prese dallo smanettone ma dal project manager che preferisce non rischiare e punta su linguaggi che in letteratura hanno già dato prova di poter superare situazioni critiche.

Però io sono molto fiducioso sul futuro di PHP, infatti:

- PHP ed il suo ecosistema continuano ad evolversi costantemente, la qualità del linguaggio e le librerie/framework migliorano di giorno in giorno.

- anche le aziende più grandi non sono più disposte a spendere cifre esorbitanti per la realizzazione di sistemi informatici, pertanto il mondo PHP, con tutti i suoi limiti ma così economico, diventa allettante, da sfruttare il più possibile.

- il mondo enterprise, accortosi finalmente di PHP, spinge sviluppatori esperti a creare software di qualità creando un volano positivo. La dimostrazione? Oracle e Microsoft hanno intere sezioni dei loro siti dedicate all'integrazione dei loro prodotti con PHP.

Infine il mio personalissimo parere: programmare in PHP è più veloce, il codice risulta più snello ed è possibile anche fare delle magie che il serioso Java non ti permetterebbe mai!

Lunga vita al PHP!  :P

risposto 3 anni fa
Gianni Tomasicchio
X 0 X

Aggiungo che secondo me Facebook non è un buon esempio da prendere per decidere se PHP è all'altezza del mondo enterprise. Primo perché è nato in PHP senza che nessuno si potesse immaginare cosa sarebbe diventato. Secondo perché di straordinario ha solo il numero dei visitatori e non la complessità dei compiti che deve svolgere.

I sistemi bancari sono molto più comlessi di Facebook e li, almeno per adesso, non si sognerebbero mai di realizzare il layer transazionale in PHP/MySQL. Quello è il mondo di Java/Oracle.

 :bye:

risposto 3 anni fa
Gianni Tomasicchio
X 0 X

Aggiungo che secondo me Facebook non è un buon esempio da prendere per decidere se PHP è all'altezza del mondo enterprise. Primo perché è nato in PHP senza che nessuno si potesse immaginare cosa sarebbe diventato. Secondo perché di straordinario ha solo il numero dei visitatori e non la complessità dei compiti che deve svolgere.

I sistemi bancari sono molto più comlessi di Facebook e li, almeno per adesso, non si sognerebbero mai di realizzare il layer transazionale in PHP/MySQL. Quello è il mondo di Java/Oracle.

 :bye:

Hai proprio ragione. Il mondo bancario è predominio assoluto di Java/oracle. Ma non credo che l'obiettivo del Php sia il mondo bancario.

Poi dici:"Infine il mio personalissimo parere: programmare in PHP è più veloce, il codice risulta più snello ed è possibile anche fare delle magie che il serioso Java non ti permetterebbe mai!" puoi fare un esempio?

risposto 3 anni fa
bismark2005
X 0 X
Aggiungo che secondo me Facebook non è un buon esempio da prendere per decidere se PHP è all'altezza del mondo enterprise. Primo perché è nato in PHP senza che nessuno si potesse immaginare cosa sarebbe diventato. Secondo perché di straordinario ha solo il numero dei visitatori e non la complessità dei compiti che deve svolgere.

Infatti Gianni, è sicuramente impressionante il numero di visitatori di Facebook, però secondo me non possiamo ignorare che Facebook è anche uno degli esempi principali di utilizzo di PHP in un contesto aziendale di grandi dimensioni, ma che tuttavia è nato comunque da un contesto piccolo, come hai sottolineato.

Azienda grande. Nata dal contesto piccolo. Mi pare proprio che sia ciò a cui almeno il 60% degli startupper italiani aspirino.

Inoltre siamo anche d'accordo sul fatto che nessuno azzarderebbe a ipotizzare una crescita paragonabile a quella di Facebook all'interno di un business plan realistico.

I sistemi bancari sono molto più comlessi di Facebook e li, almeno per adesso, non si sognerebbero mai di realizzare il layer transazionale in PHP/MySQL. Quello è il mondo di Java/Oracle.

Eheheeh, siamo d'accordo nessuno sviluppatore di software al mondo sognerebbe mai di scrivere un layer transazionale in PHP, ma neanche usando Oracle come backend :).

Però credo che dovremo convenire sul fatto che lo scopo di PHP sia cambiato evolvendo dalla PersonalHomePage di Rasmus, in interi siti web dinamici, in vere e proprie applicazioni web (e.g., e-commerce, web-mail, CMS e CRM, bulletin board) per arrivare alle RIA.

Mi sembra quindi fondamentale fare un distinguo tra applicazioni web e le RIA. È proprio sulla base di questo che a mio parere PHP non è più la scelta migliore quando si ha a che fare co i requisiti di una RIA, proprio perché come strumento non offre la flessibilità e la rapidità necessaria ad essere produttivi e/o competitivi. Nel caso in cui si stia lavorando in PHP è ovviamente possibile aggirare fino ad un certo punto queste limitazioni, come ad esempio suggerito da Garak, spostando codice userland all'interno di un'estensione, ma realisticamente questo vorrebbe dire spostare parte della logica applicativa fuori dal dominio dell'applicazione, complicare il processo di build, rendendo più complessa e oscura la manutenzione, aggiungendo dipendenze improbabili, allargando inutilmente i requisiti per il deployment, oltre che a dover richiedere un programmatore C con sufficiente esperienza da risultare effettivamente produttivo.

Riassumendo quindi PHP ha resistito e si è adattato bene all'evoluzione del suo scopo (non credo che sia tanto general purpose quanto si voglia far credere dopotutto) che stando appunto all'evoluzione delle applicazioni web, dovrebbe comprendere anche le RIA.

Infatti credo che Facebook, ma non solo Facebook, abbia segnato profondamente l'esperienza dell'utente medio del web, diffondendo un modello di applicazione web che è ormai divenuto naturale anche per chi di informatica non si interessa affatto, e ancor meno di sviluppo di software.

In essenza penso che essendo le RIA l'attuale stato dell'arte, quindi "ciò che un cliente si aspetta come minimo quando utilizzerà il software che ti ha commissionato", e comunque nient'altro che applicazioni web, PHP dovrebbe permettere la realizzazione di queste applicazioni senza troppi intoppi, senza dare l'impressione di essere sistemato alla buona con estensioni o altri workaround più o meno bizzarri (o originali) e senza dover necessariamente fare affidamento su tecnologie esterne (al PHP) anche per servizi che potrebbero essere disponibili ma non possono essere realizzati con quello che c'è a disposizione.

In merito a quest'ultima considerazione penso che sia scocciante dover ricorrere ad esempio a Java o Erlang o Python quando si ha bisogno di un middleware di messaging oppure di un server Bayeux, e personalmente mi delude un po' non poter realizzare o avere la possibilità di veder realizzate questo genere di applicazioni, in tempi ragionevolmente brevi, con PHP.

Per riportare tutto al tema principale della domanda di birmark2005, per qualsiasi altra applicazione che non abbia bisogno di funzionalità "realtime", principale caratteristica delle RIA, oppure come fa notare Gianni, di estrema sicurezza, stabilità o supporto, PHP è sempre una delle validissime scelte che uno sviluppatore può fare.

Nota: Nei precedenti post ho citato Facebook, intendendo la piattaforma piuttosto che il servizio infatti tra sviluppatori di software credo sia poco rilevante discutere del servizio di per sé.

Tom.

risposto 3 anni fa
Andrea Turso
Andrea Turso
71
modificato 3 anni fa
X 0 X
Poi dici:"Infine il mio personalissimo parere: programmare in PHP è più veloce, il codice risulta più snello ed è possibile anche fare delle magie che il serioso Java non ti permetterebbe mai!" puoi fare un esempio?

Il PHP è un linguaggio di scripting pertanto risulta più flessibile di un linguaggio che richiede compilazione. Ad esempio permette di creare ed eseguire codice a runtime. Grazie a questa peculiarità ho potuto scrivere la seguente classe che gestisce il form dei commenti di questo sito:

<?php
class CommentForm extends \framework\FormModel {

   /**
    * @type self::TYPE_INT
    * @mandatory true
    */
   public $parentId = 0;

   /**
    * @label "Messaggio"
    * @mandatory true
    */
   public $commentText;

   /**
    * @label "Nome"
    * @mandatory true
    * @readonly !$this->user->isGuest()
    */
   public $userName;

   /**
    * @type self::TYPE_EMAIL
    * @label "Email"
    * @readonly !$this->user->isGuest()
    * @mandatory true
    */
   public $commentEmail;

   /**
    * @type self::TYPE_URL
    * @label "Url sito"
    * @validationvalue $this->commentURL == 'http://' ? '' : $this->commentURL
    * @normalized $this->commentURL == 'http://' ? '' : $this->commentURL
    */
   public $commentURL = 'http://';

   /**
    * @var \framework\User
    */
   protected $user;
}

In pratica ho creato un sistema che mi permette di inserire non solo delle direttive nei commenti (simili alle annotazioni di Java) ma anche del codice PHP da eseguire durante l'esecuzione di paticolari compiti, come la validazione del form, la lettura dei dati inseriti, ecc.

risposto 3 anni fa
Gianni Tomasicchio
X 0 X

Una cosa che ho notato qualche minuto fa mentre scrivevo il test helper per un progetto

è che in PHP le closure non possono essere usate come funzioni anonime

implementate in altri linguaggi come ruby, common-js e ecmascript.

E di fatto in PHP 5.3.6 non si possono ancora fare questo genere di cose:

php > print(function() { return "Hello world!\n"; });
PHP Catchable fatal error:  Object of class Closure could not be converted to string in php shell code on line 1
PHP Stack trace:
PHP   1. {main}() php shell code:0

Catchable fatal error: Object of class Closure could not be converted to string in php shell code on line 1

Call Stack:
   16.1792     321364   1. {main}() php shell code:0

neanche variazioni sul tema sembrano funzionare, come ad esempio l'aggiunta di ()

dopo la parentesi graffa di chiusura della closure.

Dalla descrizione della necessità di usare necessariamente il punto e virgola dopo una closure, presente in RFC closures, pare che questa sia una

limitazione dell'attuale implementazione delle closure.

Con una veloce ricerca nel bug tracker ho visto che, sebbene il problema non sia esattamente lo stesso, qualcuno ha evidenziato le inconsistenze e sembra

che ci sia una patch disponibile che introduce il supporto al function call chaining.

Ho provato anche con PHP 5.4 alpha e c'è lo stesso problema, ma l'array dereferencing e i traits sono un'aggiunta molto gradita e da lungo attesa: )

Tom.

risposto 3 anni fa
Andrea Turso
Andrea Turso
71
modificato 3 anni fa
X 0 X
Eheheeh, siamo d'accordo nessuno sviluppatore di software al mondo sognerebbe mai di scrivere un layer transazionale in PHP, ma neanche usando Oracle come backend :).

Perché Oracle (il DB intendo) non va bene?

 :bye:

risposto 3 anni fa
Gianni Tomasicchio
modificato 3 anni fa
Andrea Turso
Andrea Turso
71
X 0 X

Ahahah ma no, ero ironico, sperimentando l'accoppiata PHP e Oracle mi è piaciuta abbbastanza, anche se non mi ha dato l'effetto "wow" che mi aspettavo.

:bye:

Postscript: Non so perché ho fatto modifica post ^^' al tuo post, pardon.

risposto 3 anni fa
Andrea Turso
Andrea Turso
71
modificato 3 anni fa
X 0 X

Credo che per rispondere a come si muove il mondo php basterebbe leggersi i changelog di ogni rilascio, in particolare io sto seguendo quello della nuova versione la 5.4 http://www.php.net/releases/NEWS_5_4_0_alpha1.txt mi piace vedere come mettono o tolgono o rimettono questa o quella feature nel linguaggio.

La sicurezza intrinseca del linguaggio è stata un problema per anni ma con la versione 5 c'è stato un deciso cambio di rotta; sono i programmatori e il molto codice pregresso ad essere un problema, se leggo frasi come questa presa da un noto blog (relativa a PDO): "usare una funzione senza conoscere cosa c'è dietro significa creare codice insicuro perché non sai come è stata implementata", l'argomento era relativo alla questione delle estensioni mysql_ che verranno a breve tolte dal linguaggio e si riferiva al fatto che secondo l'autore del messaggio PDO non era abbastanza sicuro perché giovane, cinque anni sono pochi secondo costui!

Anche se la sua affermazione è giusta, non esiste nessun programma che a priori è sano, soprattutto se vecchio, vedi i casi relativi ai sistemi SCADA e al virus stuxnet per un esempio su sistemi antichi e cosa si può fare se si segue l'asserzione che un sistema sconnesso dalla rete è sempre più sicuro di uno connesso.

Insomma non esiste nulla di sicuro ma certamente esiste molto di "sicurizzabile", PHP in questo è un buon prodotto perché libero e aggiornato di continuo.

In realtà il grosso dei problemi è il tam tam incontrollato su messaggi di una presunta insicurezza (reale in certi casi) e non piuttosto su costrutti come questo "SELECT District FROM City WHERE Name=$_GET['name']" dove l'unica pecca (grave) che si può fare a PHP è di non marcare troppo sulla sicurezza dei dati in ingresso, anche se molti passi avanti sono stati fatti, ma nessuno pone mai l'accento sul fatto che quella stringa passata così è una tafazzata!

E non c'è linguaggio che tenga!

Quindi quanto è sicuro PHP? Dipende, così come nessuno ti può dire quanto è sicuro .NET dato che essendo closed software sai solo ciò che trapela dalle indiscrezioni e così pure per altri progetti importanti come ruby dove a fronte di un buonissimo linguaggio, tutto deriva dal manico di chi crea gli script.

Oggi in banca frontend in PHP ce ne sono a bizzeffe ma io non mi fido non tanto dei frontend ma di chi li sviluppa.

risposto 3 anni fa
Marco Grazia
X 0 X

Quindi paradossalmente è meglio un linguaggio closed? Infatti non sapendo come è fatto dovrebbe essere più sicuro!!!

risposto 3 anni fa
bismark2005
X 0 X

Ma scherzi? Da dove hai tirata fuori questa affermazione, è vero il contrario, più si conoscono le cose e più è facile correggerle.

Una delle cose che da sempre ci hanno abituato le aziende che sviluppano in closed source è che se ne fregano degli utenti.

risposto 3 anni fa
Marco Grazia
X 0 X

Asp.net è un linguaggio open o closed?

Io intendevo a livello di sicurezza. Se una cosa sai come è fatta è più facile aggirarla, ma potrei anche sbagliarmi essendo un novello.

risposto 3 anni fa
bismark2005
X 0 X

Credo che tu confondi le cose, quando si parla di closed source si parla del fatto che di un programma non vengono rilasciati i sorgenti che in realtà vengono secretati.

Il sorgente di tutta l'implementazione di .NET è closed, cioè chiuso, i tuoi script in asp.net sono script e perciò per loro natura non secretabili.

Ma usando .NET non sai se quella tal funzione del linguaggio che stai usando è fallata o meno perché la ditta che la produce non te lo dice e ti devi o fidare ciecamente o affidare ai "si dice" non sempre affidabili che sono in giro per la rete.

Questo a priori è valido anche per il free/open/libre software ma almeno ha il pregio di darti anche i sorgenti, quindi se lo capisci te lo vai a vedere, ovvio ci vogliono competenze per farlo, ma in genere queste competenze ce l'hanno anche altri che normalmente rilasciano dichiarazioni pubbliche.

Il motivo per cui il sorgente aperto è in genere più sicuro è perché rimane sempre in fase di testing e i problemi rilavati vengono sempre corretti (se il progetto è ancora attivo), mentre con il sorgente chiuso il testing c'è ma non è detto che i problemi verranno sempre risolti.

risposto 3 anni fa
Marco Grazia
X 0 X

Scusa la mia niubbiaggine...ma non capisco.

Quando scrivo un programma in Php

<?php

funzioni ecc ecc

?>

Questo è il sorgente del programma giusto? Se si cosa intendi con open e closed?

risposto 3 anni fa
bismark2005
X 0 X

Mamma mia tu vuoi un condensato di filosofia che parte dagli anni '70 del secolo passato ed arriva fino ad oggi!

Dunque: il free software è un movimento che si batte per la libertà personale nel mondo del software, parte dall'83 con la fondazione del progetto GNU (cetrcati informazioni in rete se ti interessa).

Cosa promuove la free software foundation (nata poco dopo), semplice che tutti i programmi rispettino certe regole, una su tutte che siano liberi (non gratis!) cioè che il software si possa leggere per sapere cosa si sta comprando e per non cadere in costose fregature.

Questo comporta due cose fondamentali, una semplice cioè che non si possono truffare gli utenti, l'altra molto più sottile è che i giochi di marketing rischiano di essere compromessi, fu il caso dell'aggiornamento a Windows 95 chiamato Plus e che era venduto a parte come fosse un nuovo prodotto (sich!) è come se la Microsoft oggi ti facesse pagare i service pack, software che viene prodotto spesso per aggirare i bug di programmazione, come se ti volessero far pagare i loro errori!

Ora se il scrivi uno script è difficile non poter leggere il codice dato che per sua natura uno script è un file di testo in chiaro, ma mettiamo caso che tu hai anche il server su cui gira lo script, e vendi un prodotto, che so mettiamo wordpress, tutti si iscrivono e pagano (magari!) e usano il tuo prodotto, ma non sanno cosa c'è dietro. Questo è closed source.

Poi arrivo io, un pazzo che ha una piattaforma come la tua, chiamata Joomla! che permette a tutti di scaricarsi gli script, di guardarli e modificarli secondo le loro esigenze. Questo è free software.

PS Wordpress è free software, ho usato il nome solo perché probabilmente lo conosci e sai di cosa parlo.

risposto 3 anni fa
Marco Grazia
X 0 X

Un pò di storia la conosco sull'open source.

Quello che a me non è chiaro è il ragionamento traslato sui linguaggi di programmazione.

Ho letto sul manuale che Php è Open Source. Che signifca esattamente?

Asp.net è Open Source?

risposto 3 anni fa
bismark2005
X 0 X

Te mi sa che non hai chiaro nemmeno la differenza tra programma di script e script che eventualmente rilasci tu.

PHP è un programma software della Zend (Zend anche è il motore che permette di interpretare il codice di script) ed è rilasciato sotto licenza open source.

Gli script in PHP che tu scrivi avranno la licenza che scegli tu che non necessariamente sarà quella del motore che serve a farli girare.

Lo stesso dicasi per qualsiasi altro programma come .NET che è sotto licenza chiusa, ma per gli script che tu scrivi la licenza la decidi tu e indipendentemente da quella di PHP o .NET

risposto 3 anni fa
Marco Grazia
X 0 X

Quindi il "motore" php è open source mentre il motore asp.net è closed.

Mentre per gli script che rilascia il programmatore per entrambi i linguaggi possono essere scelte tutte le licenze che si vuole.

Giusto?

risposto 3 anni fa
bismark2005
X 0 X

Esattamente.

risposto 3 anni fa
Marco Grazia
X 0 X

Piccola curiosità....di cosa è fatto il "motore" di entrambi i linguaggi? E' un altro linguaggio?

risposto 3 anni fa
bismark2005
X 0 X

.NET non lo conosco, PHP è scritto in buona parte in C++ e quello per Windows in visual C

risposto 3 anni fa
Marco Grazia
X 0 X
.NET non lo conosco, PHP è scritto in buona parte in C++ e quello per Windows in visual C

Davvero? Io ero rimasto che era scritto in C.

Avvisa quelli di wikipedia, devono aver sbagliato pure loro...

risposto 3 anni fa
Massimiliano Arione
X 0 X

No ho sbagliato io è scritto in C, come riportato dal manuale di installazione per Unix

http://www.php.net/manual/en/install.unix.php

Addirittura ci vuole un compilatore ANSI C compatibile, quindi C.

risposto 3 anni fa
Marco Grazia
X 0 X

Però è strana la cosa. Un linguaggio Php ha un motore che è scritto in un altro linguaggio C!!!

Altre curiosità....il motore di java è sempre C? E il motore del mondo .net?

risposto 3 anni fa
bismark2005
modificato 3 anni fa
X 0 X

Perché è tanto strano per te?

Ci sono letteralmente decine di migliaglia di linguaggi ognuno con il suo scopo.

il C è un linguaggio di alto livello che permette una buona integrazione con la macchina sulla quale viene eseguito, con questo linguaggio è possibile anche costruire degli interpreti di script come ad esempio il PHP ma non solo questo.

Il PHP in orgine era scritto in PERL ed eseguito in CGI perché questo era l'unico modo per far eseguire uno script ad un Web server, oggi per fortunan on è più così.

.NET non so in cosa è scritto, presumo in C anche lui visto che è compilato a runtime con viasualC ma non aggiungo altro perché non lo so.

Java mi pare sia scritto proprio con Java, ma Java è già un linguaggio già più simile al C (non uguale).

http://it.wikipedia.org/wiki/Linguaggio_di_programmazione

risposto 3 anni fa
Marco Grazia
X 0 X

Credevo che il motore di ogni linguaggio fosse il linguaggio macchina.

Comunque questo C è il "padre" di tutto

risposto 3 anni fa
bismark2005
X 0 X

Perché non ti leggi il rigerimento ai linguaggi di programmazione su Wikipedia che ti ho passato?

Il "linguaggio macchina" a volte non è nemmeno accessibile ai programmatori, per esempio nei sistemi operativi Windows, in altri casi è comunque talmente ostico che per la complessità dei programmi risulterebbe un lavoro immenso scrivere anche il classico "Hallo World".

Si usano per questo dei linguaggi di più alto livello, come il C ad esempio ma non solo quello, che poi vengono ridotti (si dice compilati) da un altro programma in un linguaggio comprensibile alla macchina sulla quale devono girare, su Windows ad esempio vengono definiti EXEcutable dove exe è la classica estensione dei linguaggi eseguibili.

Su Unix si usano altri modi ma alla fine è lo stesso, dal C attraverso il compilatore si arriva a quello che normalmente si chiama bytecode o file binario.

Ma non solo il C, anche il Pascal prima era usato per grossi programmi, il system, cioè il sistema operativo dei MacIntosh era scritto in Pascal appunto e se non ricordo male fino al system 9, cioè al sistema operativo dei primi iMac.

risposto 3 anni fa
Marco Grazia
X 0 X

Perchè al momento devo studiare il Php. Se mi metto a studiare anche il motore di Php non arrivo più.

Comunque mi sembra di capire che il funzionamento dovrebbe essere questo:

L'utente scrive il programma in Php. Il server su cui è installato Php (cioè il motore scritto in C) interpreta quanto scritto e restituisce codice html che invia al browser. Il browser legge il codice html e lo visualizza all'utente finale

risposto 3 anni fa
bismark2005
X 0 X
Perchè al momento devo studiare il Php. Se mi metto a studiare anche il motore di Php non arrivo più.

Allora fai un passo avanti: invece di studiare php, studia un framework (a oggetti) scritto in php.

Di php dovrai comunque imparare la sintassi, da lì non si scappa.

Ma tutto il resto, imparare a scrivere in procedurale, scrivere spaghetti code, non è assolutamente necessario.

Vai con Zend Framework, oppure symfony 1.4 o meglio ancora Symfony2. Non te ne pentirai.

risposto 3 anni fa
Massimiliano Arione
X 0 X

Questo è un problema a cui non ho trovato soluzione. Mi spiego. Io sono un novello programmatore Php (anche se ho le basi di java).

Gira e rigira sui forum e nelle librerie ed ho trovato inizialmente questo malloppone:

http://www.hoepli.it/libro/php6-guida-per-lo-sviluppatore/9788820343590.asp

Sembra un buon libro, anche se sul forum di Ubuntu dicono che tratta di un framework sconosciuto (ulysses) e utilizza  postgres invece di Mysql.

Sono andato anche in libreria a dare uno sguardo al libro. Purtroppo è per utenti avanzati. Sullo stesso manuale consiglia di studiare prima questo: http://www.hoepli.it/libro/sviluppare-siti-web-con-php-6-apache-mysql/9788820337889.asp

Dato che io sono un novello, non ho le capacità di leggere direttamente il primo libro, così ho dovuto comprare e studiare l'altro che è più di base. Così mi topcca sorbirmi la procedurale e fare spaghetti code!!!

Ma appena finito passo subito all'altro

Ps: In Java c'erano manuali che trattavano direttamente la programmazione ad oggetti, in Php no

risposto 3 anni fa
bismark2005
X 0 X

Ero io sul forum di Ubuntu  :)

Il libro che hai citato non è molto adatto ai principianti per il semplice motivo che un principiante, come ho detto, ha bisogno di imparare la sintassi (questo è vero in qualsiasi linguaggio).

Imparata bene la sintassi, si può partire con qualsiasi libro, che tratti di procedurale o di oop poco importa (fermo restando che è meglio oop).

Il motivo per cui un libro di java non tratta il procedurale è banalmente che java è solo a oggetti, mentre php è iniziato procedurale, il supporto a una vera oop è arrivato col tempo. Purtroppo, per inerzia, moltissimi sviluppatori proseguono col procedurale e purtroppo moltissimi ancora iniziano il php col procedurale.

Come ho detto, non è assolutamente una tappa forzata.

risposto 3 anni fa
Massimiliano Arione
X 0 X

L'altro giorno tu avevo messo il link alla pagina di Google Libri con un certo numero di libri sul PHP, in genere uno o due basta e avanza, ma un framework è altra cosa non è il linguaggio.

Io ti consiglio PHP 5 guida completa edito da Apogeo, scritto tra gli altri da un certo Andi Guttmans  ::)

Trovi tra gli altri anche concetti di OOP.

Se vuoi framework oltre quelli citati da garak c'è anche cake http://cakephp.org/

PHP 6 lascia stare, è solo un concept ora concentrati su ciò che offrono i server, dopotutto e su quelli che devi lavorare, quindi ramo 5.

Concentrati su concetti come name space e strutture dati e come dice garak studiati comunque le basi del linguaggio perché prima o poi anche usando i framework dovrai confrontarti col linguagio nativo, anzi è assolutamente necessario fin da subito :)

Postgree è un ottimo sistema di database anche superiore a MySQL più blasonato e più usato ma non per questo il migliore in circolazione, certo se un framework rimane legato ad una sola architettura è anche un po' zoppo, per me un buon framework non deve essere necessariamente legato ad una sola architettura, se domani ti ritrovi a dover lavorare con Oracle che fai butti tutto il tuo lavoro sviluppato con ulysses? Penso che ti spareresti non credi?

risposto 3 anni fa
Marco Grazia
X 0 X

 @Garak  Azz sei proprio tu!!! Non ci avevo fatto caso. Comunque con il libro mi trovo abbastanza bene. Anche se è per utenti più avanzati non trovo particolari difficoltà.

@Marcolino Ma quel libro della Apogeo è ad oggetti? Non vorrei spendere altri 50 Euro per poi avere un nuovo libro procedurale.

Leggendo sempre sul forum Ubuntu, un ragazzo ha fatto questo percorso:

Studio di questa guida: http://php.html.it/guide/leggi/97/guida-php-teorica/

Poi è passata a questa: http://php.html.it/guide/leggi/167/...etti-con-php-5/

E poi ha iniziato con i Framework. Che ne dite?

risposto 3 anni fa
bismark2005
X 0 X

Cmq ho notato che il mondo della programmazione è molto molto molto disorganizzato. Non si capisce cosa studiare, dove iniziare e cosa fare.

In altre materie non è così. Ad esempio in Economia, (materia in cui sono laureato) ti insegnano le basi e poi man mano procedono per gradi fino a quando raggingi livelli avanzati. Parti da zero ed arrivi ad un certo livello.

Nel mondo della programmazione mentre è tutto strano. Manuali che danno per scontato certe conoscenze, opinioni divergenti sui metodi di studio e apprendimento......un vero casino.

Perdi più tempo per capire cosa studiare che per lo studio del linguaggio vero e proprio. Non esiste un percoso formativo lineare.

Forse per questo motivo gli ingegneri sono un pò strani  ;D

risposto 3 anni fa
bismark2005
X 0 X

Un libro solo a oggetti sul PHP non credo esista o almeno in italiano non ne ho mai visti, dopotutto la programmazione OOP in PHP è una specie di aggiunta, tutti i libri trattano di programmazione procedurale, dopotutto la devi conoscere dato che gli oggetti in PHP sono comunque formati da procedure.

Rimane comunque il fatto che tu cercavi un libro di base e quello è un libro di base che tratt i vari argomenti relativi ai vari aspetti del linguaggio: variabili, array, funzioni, connessioni ai database, lettura/scrittura di file eccetera fino ad arrivare alla OOP.

Se vuoi fare una cosa giusta, vai nella biblioteca pubblica della tua città e prova a vedere se hanno un libro sul PHP, così prima di spendere soldi te lo leggi in pace e gratuitamente.

Altra cosa: su internet tutto è organizzato a bolle, c'è questo forum, c'è quello di ubuntu, c'è quello di... e tu ti devi barcamenare; dici di essere laureato bene, allora hai già un metodo di studio, un forum non serve a studiare ma a fare quattro chiacchiere e magari a vedere come altri hanno approfondito un dato argomento, ma se non hai metodo nello studio qui impazzisci.

Però per mia esperienza personale preferisco leggere e passare sui forum di discussione dove almeno mi confronto con altri, può sembrare dispersivo ma il confronto vale il gioco, un corso in aula che non sia universitario su certi argomenti come la programmazione non lo affronterei nemmeno, soprattutto in quei corsi in cui ti insegnano a usare un programma piuttosto che a programmare.

E sì gli ingegneri sono strani ma simpatici (non tutti però)

risposto 3 anni fa
Marco Grazia
X 0 X

Cmq ho notato che il mondo della programmazione è molto molto molto disorganizzato. Non si capisce cosa studiare, dove iniziare e cosa fare.

In altre materie non è così. Ad esempio in Economia, (materia in cui sono laureato) ti insegnano le basi e poi man mano procedono per gradi fino a quando raggingi livelli avanzati. Parti da zero ed arrivi ad un certo livello.

Nel mondo della programmazione mentre è tutto strano. Manuali che danno per scontato certe conoscenze, opinioni divergenti sui metodi di studio e apprendimento......un vero casino.

Perdi più tempo per capire cosa studiare che per lo studio del linguaggio vero e proprio. Non esiste un percoso formativo lineare.

Forse per questo motivo gli ingegneri sono un pò strani  ;D

Questo perché l'economia è una materia con un'evoluzione molto meno rapida della programmazione.

Io ho fatto solo un paio di esami di economia all'università, ma ricordo che si studiavano teorie della prima metà del '900. Se pensi che tutte le teorie della programmazione sono dell'ultimo quarto di secolo, e che il php in particolare è nato poco più di un decennio fa, capisci bene la differenza.

risposto 3 anni fa
Massimiliano Arione
X 0 X

Un libro solo a oggetti sul PHP non credo esista o almeno in italiano non ne ho mai visti, dopotutto la programmazione OOP in PHP è una specie di aggiunta, tutti i libri trattano di programmazione procedurale, dopotutto la devi conoscere dato che gli oggetti in PHP sono comunque formati da procedure.

Rimane comunque il fatto che tu cercavi un libro di base e quello è un libro di base che tratt i vari argomenti relativi ai vari aspetti del linguaggio: variabili, array, funzioni, connessioni ai database, lettura/scrittura di file eccetera fino ad arrivare alla OOP.

Su questo sono assolutamente in disaccordo: non è vero che occorra conoscere il procedurale per imparare l'oop.

Esempio dabatase: uno potrebbe anche studiare l'accesso ai db da un punto di vista esclusivamente a oggetti, ignorando totalmente cosa facciano realmente quegli oggetti (questo in effetti è uno dei principi della oop, l'information hiding). Certo se vuoi creare il tuo framework, allora dovrai andare a scrivere a basso livello, ma questo è un altro paio di maniche.

L'unica cosa veramente indispensabile è la sintassi. Per cui variabili, array e funzioni sì, ma connessioni ai db e lettura/scrittura di file manco per niente.

risposto 3 anni fa
Massimiliano Arione
X 0 X

Un libro solo a oggetti sul PHP non credo esista o almeno in italiano non ne ho mai visti, dopotutto la programmazione OOP in PHP è una specie di aggiunta, tutti i libri trattano di programmazione procedurale, dopotutto la devi conoscere dato che gli oggetti in PHP sono comunque formati da procedure.

Rimane comunque il fatto che tu cercavi un libro di base e quello è un libro di base che tratt i vari argomenti relativi ai vari aspetti del linguaggio: variabili, array, funzioni, connessioni ai database, lettura/scrittura di file eccetera fino ad arrivare alla OOP.

Su questo sono assolutamente in disaccordo: non è vero che occorra conoscere il procedurale per imparare l'oop.

Esempio dabatase: uno potrebbe anche studiare l'accesso ai db da un punto di vista esclusivamente a oggetti, ignorando totalmente cosa facciano realmente quegli oggetti (questo in effetti è uno dei principi della oop, l'information hiding). Certo se vuoi creare il tuo framework, allora dovrai andare a scrivere a basso livello, ma questo è un altro paio di maniche.

L'unica cosa veramente indispensabile è la sintassi. Per cui variabili, array e funzioni sì, ma connessioni ai db e lettura/scrittura di file manco per niente.

Si però quando hai studiato array, variabili e soprattutto funzioni vai a coprire buona parte degli argomenti trattati nel libro procedurale.

risposto 3 anni fa
bismark2005
X 0 X
Si però quando hai studiato array, variabili e soprattutto funzioni vai a coprire buona parte degli argomenti trattati nel libro procedurale.

G.A.C.!  :P

Questo dipende dal fatto che un libro per principianti di procedurale inizia con la sintassi.

Perché, come già detto, la sintassi è indispensabile.

Questo non vuol dire che studiare la sintassi equivalga a studiare il procedurale.

risposto 3 anni fa
Massimiliano Arione
X 0 X
class pippo {
public function pluto($guinzaglio=true){
if ($guinzaglio) echo 'portami a spasso' else echo 'Wof! Grrrr';
}
}
$pipi = new pippo()
$pipi->pluto();

questo è un oggetto ma il modo di programmarlo è assolutamente procedurale.

Non confondere con l'implementazione di un oggetto e la sua programmazione.

risposto 3 anni fa
Marco Grazia
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda