Originariamente inviato da jos3ph
spiego,tanto per capirci, la situazione.
l'unico linguaggio che conosco è php, e lo conosco a un livello discreto.
l'ultima "applicazione" che ho realizzato è un gestionale, e sebbene lo so anche io che fare un "sito" con php che faccia da gestionale non è la scelta migliore, avevo come requisito quello che doveva essere previsto che il gestionale possa essere portato dal pc su cui gira in questo momento, su un hosting, per poterlo utilizzare anche da palmari connessi in gprs da tutta l'italia, per la visualizzazione di relazioni e per l'inserimento di nuovi dati.
ho quindi usato php perchè
primo: è l'unico linguaggio che conosco.
secondo: anche se con qualche limite, poteva svolgere tutte le funzioni che il gestionale deve avere.
terzo: portarlo su un hosting per essere gestito in remoto lo si fa in un attimo....
quarto: svilupparlo "come un sito web" mi solleva dal gravoso compito di costruire anche un'interfaccia grafica.
ovviamente il gestionale si basa anche su un db mysl.

ovviamente, ci sono molti (gravi) lati negativi di una soluzione del genere.
primo fra tutti: l'applicazione la devo distribuire in formato sorgente.
dato che il gestionale che ho realizzato tratta un'attività molto specifica, è quantomeno impossibile che qualcuno se lo possa copiare senza pagarmi nulla. questo per il semplice fatto che non servirebbe a nessuno.......
ovviamente, per il futuro, vorrei sviluppare le applicazioni in modo da distribuirle in formato binario, e per questo scopo php non va assolutamente bene.
secondo: non è possibile integrare il db nell'applicazione: devo sempre installare mysql a parte, con altri linguaggi di programmazione è possibile integrare il db nell'applicazione ?
terzo: la forma di presentazione: sviluppare in php significa consegnare al cliente un'applicazione che gira nel browser web, e con una grafica molto meno professionale di un'applicazione stand-alone.
quarto: non è possibile far girare il gestionale come applicazione stand-alone sul palmare. e questo è grave.
attualmente, per gestire il gestionale, il palmare si deve collegare via gprs all'hosting. e questo sia per inserire nuovi lavori che per visualizzare report su quelli già fatti.

tirando le somme, quello che cerco è un linguaggio di programmazione che permetta:

a- di essere distribuito in forma binaria.
b- che sia possibile integrare nell'applicazione il dbms
c- che possa essere compilato per girare su un palmare
d- che sia possibile portarlo su un hosting e fare in modo che vari device ci si possano connettere per l'aggiornamento del db

che linguaggio si adatta di più al mio scopo ?

grazie a chiunque possa dare una mano
Credo che il linguaggio più adatto al tuo scopo sia java.
a) i programmi java si possono compilare in file di bytecode (binari ma non nel senso classico) e possono essere offuscati per proteggere il sorgente
b)esistono dei dbms cosiddetti embedded come mckoi o firebird embedded, tuttavia hanno un grave limitazione, il supporto alla concorrenza che forniscono è praticamente nullo. Se vieni a conoscenza di qualche dbms embedded che non soffra ti questo problema ti prego anche di segnalarlo
c)se il palmare ha la jvm si può scrivere un'applicazione java che giri su di esso, tuttavia togliti dalla testa di effettuare semplicemente una ricompilazione del codice che usi su pc, si tratta di macchine con risorse hardware e software troppo diverse e un porting del genere comporta il riscrivere almeno il settanta ottanta per cento del programma a mio avviso
d)il gestionale può essere riscritto usando jsp + servlet su hosting con Tomcat o Jboss o simili, anche qua non ti aspettare una cosa tipo "ricompilo e via", tutta la struttura dell'applicazione deve essere rivista nel passaggio da un'applicazione standalone ad una web-based. In questo caso però se separi bene la logica dalla presentazione, magari usando qualche pattern apposito (MVC ad esempio) puoi riuscire a dover riscrivere solo un 30% 40 % del programma.
E questo e quanto

Ci sono anche degli svantaggi legati al fatto che un programam java per girare ha bisogno che sia presente una jvm nella macchina ed al fatto che su cellulari e palmari i programmi java girano in una "sandbox" che limita le loro potenzialità, non possono fare tutto, hanno accesso solo alle fetures esposte nell'interfaccia della jvm. Ciao