Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [iniziare] che linguaggio fa più al caso mio ?

    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

  2. #2

  3. #3

  4. #4

    Re: [iniziare] che linguaggio fa più al caso mio ?

    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
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  5. #5
    1) Chi ti ha mai detto che non puoi essere pagato dando il codice sorgente? Sarebbe la fine del business open source. Conosco delle imprese che creano programmi sotto GPL e li vendono benissimo, la licenza lo permette e ti protegge. Del resto i crack si fanno sempre e comunque, anzi dando il codice sorgente avrai una community a disposizione per aiutarti, o addirittura il cliente stesso.

    2) Suggerisco Python invece di Java:
    Ho cercato di riprodurre un programma Python in Java, con molte difficolta', non perche' non programmavo in Java ma perche' il Java non e' dinamico quanto il Python. Ammetto che in Java 5 hanno un po', IMHO, migliorato i tipi, quando nelle versioni precedentiti davano alla testa.
    Oltretutto Java dispone di molti strumenti, tra cui Netbeans/Eclipse, che sono degli IDE spaventosi e aiutano parecchio, in qualunque environment sia esso Web, Console, GUI, ecc..

    Ora parlo un po' del Python: questo linguaggio e' open source, e' attivissimo con una community molto grande, e sta entrando sempre di piu' nel campo industriale. Negli ultimi tempi si stanno creando delle librerie per produrre dei software scalabili e potenti ed e' tutta roba molto stabile ed open source.
    Inoltre, puoi disporre della multipiattaformita' di Java anche in Python, visto e considerato che gira quasi su tutte le piattaforme supportate da Java (fatti un giro sul sito).
    Python, con tutto quello che ti offre (moltissimo, a partire dalla dinamicita' delle applicazioni, senza tipizzazione proprio come il PHP) e' performante a volte meno a volte piu' di Java.
    Inoltre ti troverai abbastanza bene agli inizi, visto che non avendo la tipizzazione come il PHP, avrai SICURAMENTE meno problemi che col Java.

    Ora elenco alcuni software che utilizzo io personalmente per creare applicazioni con relativi concorrenti Java:
    - Twisted Matrix: e' un network framework asincrono, permette di gestire protocolli internet in modo semplice e flessibile (dal semplice protocollo TCP manuale, al WEB, ai protocolli di messaging, a SSH, ecc.) ed ha molte release alle sue spalle.
    In Java non lo so...

    - Nevow: e' basato su twisted.web ed e' uno dei pochi framework web (finora ho visto solo lui) ad essere VERAMENTE diviso in codice e templates. Prima ero scettico, perche' volevo anche il codice nei templates, ma questo framework e' fatto benissimo. Vi posso dire che ho realizzato una base di CRUD da applicare a varie occasioni in 50 righe di codice.
    Inoltre, essendo basato su Twisted, puoi attaccare qualunque tipo di servizio ad esso, oppure puoi collegare un sito gia' fatto con un altro sito in modo veramente semplice, e controllare le disposizioni degli URL in ogni resource.

    In Java puoi trovare Tomcat o altra roba, il problema e' che i siti che farai saranno immantenibili in futuro se farai refattorizzazioni, visto che con il JSP il codice va nei templates.

    - SQLAlchemy: per me e' il fratello di Hibernate. Solo che probabilmente Hibernate e' molto ma molto piu' complesso rispetto ad SQLAlchemy. Con SQLAlchemy si puo' fare di tutto, ma veramente di tutto, e' un ORM potentissimo.
    Questo lo usi per interagire con qualunque database. Cio' permette di cambiare database in qualunque momento senza cambiare codice. Mentre su PHP siete abituati a crearvi i vostri proxy per il database, qui e' gia' tutto pronto e le query SQL verranno fatte per te. Logicamente se dovrai fare una query manuale c'e' sempre possibilita'.

    - PyGTK: esistono vari tipi di GUI, tra i quali wx, qt, fox, tk, ecc. ma quelle che mi piacciono di piu' sono le GTK. Questo perche' dispone dei seguenti strumenti:
    Gazpacho: che e' un GUI builder
    Kiwi: che e' un framework GTK ed e' integrato perfettamente con Gazpacho
    Questi due tools permettono di creare le applicazioni in un battibaleno. Qualche problema lo dara' Gazpacho, che a volte da' problemi perche' e' agli inizi, ma e' completo e funzionale e figurati che lo uso per applicazioni industriali invece di Glade.
    In Java frameworks come Kiwi non ne ho mai visti, mentre GUI builders quanti ne vuoi. La differenza e' che col Python utilizzando Kiwi risparmi molto codice, oltre che utilizzando il GUI builder.

    - PlugBoard: e' fatto da me. Permette di creare applicazioni plugin-based in modo semplice e veloce, e flessibile in tutte le sue parti. La sua struttura non porta problemi di dipendenze fra i plugins. I plugins hanno la possibilita' di emettere eventi in base all'engine che si utilizza nell'applicazione: ad es. se fai un programma GTK usera' i segnali gobject, se fai un programma in console, potrai usare l'eventistica offerta dallo stesso PlugBoard senza nessun engine particolare.
    In Java non saprei...


    Il porting di un'applicazione da Linux a Windows non e' un problema. Inoltre hai una community molto disponibile.
    Italian Python User Group - www.italianpug.org

  6. #6
    ciao

    confesso di non aver letto a fondo tutte le risposte, comunque:

    - ribadendo il concetto positivo in merito ai programmi opensource (che non vuol dire gratis) il codice php può essere reso "non interpretabile" utilizzando cose come zend optimizer

    - per quanto riguarda la portabilità del database sui palmari, devi considerare una cosa a livello di analisi che potrebbe mettere in crisi tutto, ovvero le repliche. mi spiego:
    se 3 agenti con il palmare modificano 3 record uguali nel database(che è residente sul loro palmare), poi chi ha la meglio? come tieni allineati i dati tra gli agenti e il database centrale?

    - inoltre, come ti hanno gia detto le risorse sui palmari sono limitate, e non è possibile farci girare un gestionale...se per di piu si deve portare anche il database!!!
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  7. #7
    Prendi anche in considerazione l'idea di avere l'applicazione gestionale da un lato (sul sever) e vari client dall'altro. Se il database sta sul server, ti puoi connettere con esso in vari modi, ad esempio con un client in Python per PC e Java per palmare. Se poi usi layer intermedi come XML-RPC o SOAP potrai sempre comunicare con il server qualunque sia il linguaggio del client.

    In soldoni: non e' necessario ne' importante scrivere tutto nello stesso linguaggio: e' importante invece strutturare bene l'applicazione in modo che risponda allo scenario che ti trovi ad affrontare.
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  8. #8
    Originariamente inviato da Mutato
    Prendi anche in considerazione l'idea di avere l'applicazione gestionale da un lato (sul sever) e vari client dall'altro. Se il database sta sul server, ti puoi connettere con esso in vari modi, ad esempio con un client in Python per PC e Java per palmare. Se poi usi layer intermedi come XML-RPC o SOAP potrai sempre comunicare con il server qualunque sia il linguaggio del client.

    In soldoni: non e' necessario ne' importante scrivere tutto nello stesso linguaggio: e' importante invece strutturare bene l'applicazione in modo che risponda allo scenario che ti trovi ad affrontare.
    Questo è un ottimo consiglio!
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.