Innoland Punto IT

In questo momento il neurone è scollegato … riprova più tardi …

[Riflessione] Sviluppare software multi piattaforma

Pubblicato da innovatel su Maggio 8, 2008

L’altro giorno, parlando con un mio amico, è uscita la possibilità di sviluppare un applicativo per un cliente. L’idea non è male, il problema è che la situazione non è delle più rosa in quanto:

  • Il cliente finale userà il software in ambiente Windows
  • Io per lo sviluppo ho a disposizione un ambiente Linux
  • Sviluppo da anni al lavoro ma esclusivamente in ambiente windows ( .NET )
  • In ambito Linux non conosco nessun linguaggio per lo sviluppo

Quello che mi chiedo è:

Dover imparare un linguaggio nuovo non mi spaventa. Fà parte del mio lavoro e mi piace anche visto che è anche la mia passione. Il problema è uno solo: QUALE?

Anche perchè, volendo fare i pignoli, immagino che ogni linguaggio abbia dei pro e dei contro e/o delle limitazioni sia per lo sviluppo che poi nella fase di utenza finale. Questa situazione mi spiazza, non ho idea di cosa fare.

Non ho in mente validi canditati al momento e nemmeno come poterli sfruttare in ambito lavorativo. E poi, che soluzioni di sviluppo esistono? Nel mio caso, venendo da .NET sarebbe “pratico” usare mono ma se devo dirla tutta vorrei evitare.

Mi affido alla vostra esperienza. Se avete consigli da dare sarò ben felice di leggerli :)

16 Risposte a “[Riflessione] Sviluppare software multi piattaforma”

  1. Skyline Dice:

    Ciao, io ti consiglio java, è molto simile a .NET quindi non dovrebbe essere un problema adattarti ed è portabile ;)

  2. innovatel Dice:

    Se devo essere sincero Java era già nella lista dei possibili candidati ed essendo un linguaggio ad oggetti non credo di avere grosse difficoltà ad ambientarmi.

    Unico “problema” che potrei avere con Java è di superare lo scoglio della brutta esperienza passata che me lo ha fatto odiare e non poco.

    Grazie mille per la risposta :)

  3. Michele Renda Dice:

    Ti consiglio di usarlo in combinazione con Netbean, che ha anche il supporto per il disegnamento delle form alla Visual Basic :)

  4. Psykopear Dice:

    Io fossi in te provere python

  5. syymza Dice:

    Io programmo Java da ormai 4 annetti. Ottimo il consiglio di netbeans, anche se personalmente preferisco Eclipse come ambiente.

  6. (Lady).Chobin Dice:

    Java :D

  7. innovatel Dice:

    Ok, vedrò di farmi tornare lo stimolo e la voglia di imparare Java! Dovrei riesumare anche il manuale … è ben fatto quello che ho.

    @Psykopear -> Scusa la domanda … come mai proprio python? Lo chiedo perchè non lo conosco come linguaggio

  8. grigio Dice:

    ruby.
    http://ruby-it.org/pages/Documentazione

  9. innovatel Dice:

    @grigio -> Ruby? Ho avuto modo di vederlo durante il Linux Day 2007 e mi ha impressionato. Con pochissimo fai moltissimo. Da quanto ho capito il “linguaggio” lo crei te mentre programmi in base alle tue necessità :)

  10. [Blog] Piccole emozioni crescono! « Innoland Punto IT Dice:

    [...] quinto articolo, quello dal titolo “[Riflessione] Sviluppare software multi piattaforma” lo conosco ed anche la faccia del tipo dell’avatar! Ero troppo emozionato … [...]

  11. Gondor Dice:

    Il python non sembra male come linguaggio è multi piattaforma e più leggero del java
    purtroppo non so però a che punto sia con la facilità di creare una gui (stile vb per intenderci).
    Io avevo realizzato dlle cosine per la linea di comando ed ero riuscito a crearle senza roppi sforzi.
    Per dover di cronaca devo dirti che io non amo molto il java a causa delle risorse occupate dalla jvm, però questo a livello d’utente, non so a livello lavorativo quanto pesi :)

  12. Alfredo Dice:

    * Il cliente finale userà il software in ambiente Windows
    * Io per lo sviluppo ho a disposizione un ambiente Linux
    * Sviluppo da anni al lavoro ma esclusivamente in ambiente windows ( .NET )
    * In ambito Linux non conosco nessun linguaggio per lo sviluppo

    Come detto da Gondor, una possibile soluzione potrebbe essere rappresentata dal Python. A tal proposito ti consiglio di iniziare con le guide di python.it. Per la GUI ci sarebbe WxPython, binding Python alla nota libreria C++ wxWindows, un framework di classi che oltre al semplice supporto per interfacce grafiche fornisce molto altro, oppure PyGTK o PyQT. Per Windows meglio WxPython.

    La velocità di sviluppo è davvero buona e si impara in maniera velocissima. Come IDE ti consiglio Eric, sempre per linux.

    Un esempio di PyGTK fatto da me:

    Se vuoi aiuto cerca con google JAB forum, è il forum del mio gruppo di sviluppo. ;)

  13. Igor Dice:

    Ehm…ma non mi e’ chiara una cosa:
    se il cliente vuole un sw che giri in Windows e TU sviluppi (sai sviluppare) in Windows…non vedo perche’ insistere a dover sviluppare sotto Linux.

    Con una VM riusciresti a superare lo scoglio … Visual Studio 2008 Express (che non costa)…e non ti farai menate inutili.

    Al piu’…se proprio insisti, fai un’aplicazione web e la utilizzi da qualunque piattaforma.

  14. NeXuS Dice:

    Secondo me dipende tantissimo dal genere di applicazione che devi realizzare.

    Tieni presente che, allo stato attuale delle cose, il supporto di Mono alle Windows Forms e’ piu’ decente; quindi puoi anche pensare di sviluppare in C# sotto Linux e fare gli ultimi ritocchi sotto Windows, se serve (c’e’ Visual Studio Express 2008, come gia’ suggerito).

  15. innovatel Dice:

    Mi allontano un attimo da una discussione e trovo un sacco di risposte … ma quanto è bello! Adesso proverò a rispondere a tutti quanti … alcune risposte saranno generiche ed altre per tutti quanti. Speriamo bene di non dimenticarmi nessuno e nulla :)

    @Gondor -> dai miei occhi il codice sorgente python è stato visto pochissimo volte e quelle poche perchè me lo sono trovato davanti ma non per desideri profondi. Però vedo che sono in molti i progetti ad usarlo e quindi secondo me deve essere molto valido! Un motivo per impararlo sarebbe anche quello di provare a scrivere un modulo per un progetto che mi interessa così almeno diventa completo :P

    Sulla pesantezza o meno non saprei. Darei sentenze prive di test e simili quindi evito di lanciare bombe alla cieca.

    Il motivo per cui non amo molto il Java ti era stato raccontato “live” quando è successo ai tempi … non sò se te lo ricordi :P

    @Alfredo -> Ho visto le guide, grazie mille per il link! Magari qualche script di curiosità proverò a farlo e poi chissà cosa succede ;) In questo momento vorrei ridurre il tempo al pc visto il sole e la possibilità di fare maggiori allenamenti in vista del 2009. Ho letto di Eric come IDE per Linux e devo dire che non sembra male. Appena ho tempo un semplice apt-get e ci potrò giocare … magari questa sera … tanto non esco :P

    @Igor -> Dubito che possa esistere una VM che fà il boot da un “VS2008 Express” … ma magari mi sbaglio! Il motivo ad ogni modo non è legato a sviluppare esclusivamente per Linux. Il fatto è di cercare di sviluppare qualcosa che possa essere usato senza vincoli di sistema operativo. Mi girano troppo le suddette quando leggo queste discriminazioni sociali :(

    Il problema dell’applicazione web è che non tutti (anche se sembra strano a dirsi) vivono con la connessione sotto il sedere e quindi non è sempre fattibile. Senza contare che in molti i dati li vogliono avere in locale e non in rete per una questione di sicurezza.

    @NeXuS -> Ok, grazie per la dritta. Proverò, magari sempre questa sera, il supporto per le windows form in Linux e poi vediamo che succede.

  16. unwiredbrain Dice:

    In linea generale Python o Ruby: sviluppi velocemente, in maniera solida ed intuitiva.

    Un’alternativa (ma da intendere fra virgolette!) a Java è Scala.

    Se poi ti senti coraggioso, Scheme potrebbe essere un’ottima scelta. Valuta bene però ciò che intendi sviluppare: per certe cose è il paradiso, per altre cose un inferno… :-) Ne parla spesso, fra le altre cose, Stacktrace.

    In bocca al lupo per il nuovo progetto.

Lascia una Risposta

XHTML: Puoi usare questi tag: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>