Quale linguaggio multipiattaforma...

di il
19 risposte

Quale linguaggio multipiattaforma...

Ciao a tutti,
attualmente per lo sviluppo di software Desktop sto utilizzando le librerie Qt in C++
Mi chiedo spesso però, se esiste qualcosa di alternativo (anche commerciale) alle librerie Qt, che quindi mi permetta di sviluppare software multi piattaforma e sopratutto non interpretato, quindi per esempio Python e Java sono già fuori dalle possibili alternative.
Ho fatto varie ricerche, ma a parte le GTK non ho trovato nulla di equivalente.
Volevo sentire anche qualche altra voce in merito di chi probabilmente ha più esperienza di me.
Grazie.

19 Risposte

  • Re: Quale linguaggio multipiattaforma...

    "e sopratutto non interpretato" ,è per un problema di performance che escludi i linguaggi interpretati?
  • Re: Quale linguaggio multipiattaforma...

    Sia per un problema di performance che per non rendere il codice pubblico.
    Tra l'altro l'interpretato richiede l'installazione di software aggiuntivo per farlo girare, cosa che non mi piace.
    Per esempio mi piace molto l'idea di sviluppare in Qt perchè basta che faccia girare la cartella con dentro tutte le sue dipendenze e non serve installare nulla.
  • Re: Quale linguaggio multipiattaforma...

    stefanoxjx ha scritto:


    Mi chiedo spesso però, se esiste qualcosa di alternativo (anche commerciale) alle librerie Qt, che quindi mi permetta di sviluppare software multi piattaforma e sopratutto non interpretato, quindi per esempio Python e Java sono già fuori dalle possibili alternative.
    Sembra la perfetta definizione di Delphi.

    Il linguaggio Delphi è una variante dell'Object Pascal ma supporta tutte le feature dei linguaggi moderni (es. closure, metodi anonimi, generics, record con costruttori/distruttori, ecc.).

    La libreria di base (RTL, Run Time Library) e la quasi totalità dei suoi servizi sono cross-platform: compila per i sistemi operativi Windows (32bit e 64bit), Mac OS, iOS, Android e anche Linux.

    L'IDE supporta funzionalità RAD, ossia mette a disposizione degli strumenti per lo sviluppo rapido delle applicazioni, benché tramite codice non vi sia limite al punto al quale si può scendere "avvicinandosi al metallo" sul sistema di riferimento, nel caso occorra importare API specifiche delle varie piattaforme oppure gestire messaggi direttamente inviati dall'ambiente operativo.

    Le librerie a disposizione per lo sviluppo visuale sono due: esiste la VCL che è di fatto la libreria più completa a oggi esistente per lo sviluppo nativo su Windows (in termini di quantità di componenti e controlli visuali a disposizione); esiste inoltre la libreria FireMonkey che consente invece lo sviluppo crossplatform, intesa come la possibilità di creare progetti che da un sorgente unico possano essere compilati su più piattaforme, sia desktop che mobile. E' sufficiente scegliere l'architettura di destinazione e lanciare il "Build".

    Le applicazioni prodotte sono native: non si tratta di applicazioni Web incapsulate all'interno di un browser assieme a un'istanza di Node e a un Web Server; ciò significa che contengono istruzioni direttamente eseguibili sulla piattaforma di destinazione e nella maggior parte dei casi le applicazioni possono essere distribuite semplicemente copiando l'eseguibile, senza la necessità di fare il deploy di framework e/o altre librerie separate.

    Da qualche tempo è disponibile una , purché l'uso non produca un certo livello di fatturato se a scopo di lucro (in quel caso, vi sono sottoscrizioni per versioni a pagamento).

    Per me è uno dei migliori compromessi a oggi esistenti per applicazioni dei più svariati tipi, dato che si può fare praticamente tutto.

    Se ti servono ulteriori informazioni o in caso di dubbi, a disposizione.

    Ciao!
  • Re: Quale linguaggio multipiattaforma...

    "Sia per un problema di performance che per non rendere il codice pubblico."
    https://docs.microsoft.com/it-it/dotnet/framework/net-native/

    "Tra l'altro l'interpretato richiede l'installazione di software aggiuntivo per farlo girare, cosa che non mi piace."
    https://docs.microsoft.com/it-it/dotnet/core/deploying
    potresti usare l'opzione self contained

    https://www.hanselman.com/blog/MakingATinyNETCore30EntirelySelfcontainedSingleExecutable.aspx

    HTH e fai sapere com'è andata,ciao
  • Re: Quale linguaggio multipiattaforma...

    @Alka: Effettivamento avevo già sentito parlare di Delphi, ma non l'ho mai preso in considerazione perchè si basa su Pascal, linguaggio che tutti dicono essere bellissimo ma io non sono mai riuscito a digerirlo nel modo giusto.
    Certo che messa così come l'hai scritta tu, mi viene voglia di rivalutarlo

    @surfernet: Interessante, prima di commentare però voglio studiarmi bene i link che mi hai passato.

    Intendiamoci, le librerie Qt e il C++ mi piacciono moltissimo, quello che non mi piace o meglio non mi rende sereno è la gestione delle licenze.
    Ho sempre paura di fare qualcosa che non va.
    Potrei acquistare la licenza per risolvere questo problema, ma il fatto è che loro hanno un costo di licenza annua e per l'uso che ne faccio io non ne varrebbe la pena.
    Mi piacerebbe di più una soluzione vecchio stile, acquisti la licenza dell'ambiene di sviluppo e se vuoi fai gli aggiornamenti altrimenti continui ad usarla così com'è fin che puoi.
    Cosa che con Qt non si può fare
  • Re: Quale linguaggio multipiattaforma...

    stefanoxjx ha scritto:


    @Alka: Effettivamento avevo già sentito parlare di Delphi, ma non l'ho mai preso in considerazione perchè si basa su Pascal, linguaggio che tutti dicono essere bellissimo ma io non sono mai riuscito a digerirlo nel modo giusto.
    Certo che messa così come l'hai scritta tu, mi viene voglia di rivalutarlo
    Diciamo che a mio avviso un pregio del linguaggio è la sua buona leggibilità, che per applicazioni di una certa complessità non guasta.

    Comunque, se proprio non lo digerisci, c'è sempre : praticamente le stesse caratteristiche e librerie (anche se alcune feature vengono prima rilasciate per Delphi in genere) ma basato sul linguaggio C++.

    Valgono quindi grossomodo tutte le cose già enunciate per Delphi, compresa la disponibilità di una Community Edition, ma usi C++.

    Sulla carta dovrebbe essere perfetto per le esigenze che hai descritto e per le tue preferenze in termini di linguaggio.

    Ciao!
  • Re: Quale linguaggio multipiattaforma...

    Alka ha scritto:


    Comunque, se proprio non lo digerisci, c'è sempre : praticamente le stesse caratteristiche e librerie (anche se alcune feature vengono prima rilasciate per Delphi in genere) ma basato sul linguaggio C++.
    Mi hai fatto piangere da quanto mi hai reso felice.
    Provo ad approfondire.
    Grazie mille
  • Re: Quale linguaggio multipiattaforma...

    C'è anche questo
    https://www.wxwidgets.org

    Voto anch'io la soluzione di surfernet. C++ è pesante per le applicazioni desktop
  • Re: Quale linguaggio multipiattaforma...

    Ciao Weierstrass , ma c++ non dovrebbe essere più performante di .net? ,grazie,ciao
  • Re: Quale linguaggio multipiattaforma...

    Certo che è più performante. E' solo più scomodo, quindi dipende da cosa devi fare
  • Re: Quale linguaggio multipiattaforma...

    surfernet ha scritto:


    Ciao Weierstrass , ma c++ non dovrebbe essere più performante di .net? ,grazie,ciao
    Le differenze a oggi sono molto ridotte grazie a due fattori: la buona fattura del CLR di .NET (soprattutto quello di .NET Core), le prestazioni elevate delle CPU in uso addirittura anche sui device mobili, lo spostamento sul "fattore multithreading" per sfruttare al massimo le capacità di elaborazione piuttosto che basarsi sulla potenza grezza della CPU stessa.

    Questo rende possibile anche l'esecuzione di applicazioni Web con prestazioni (quasi) simili alle app native e per certi versi indistinguibili se non a occhi attenti, sebbene più voraci di risorse e con un minimo overhead.

    Per un'applicazione business, un linguaggio di alto livello è un buon compromesso, mentre linguaggi più a basso livello come C++ potrebbero rendersi necessari in scenari particolari (es. giochi e affini).

    Tutto sta a ciò che si deve sviluppare e anche alle capacità del programmatore (codice non ottimizzato in C++ può dare prestazioni altrettanto deludenti se chi lo scrive adotta algoritmi inefficienti).

    Ciao!
  • Re: Quale linguaggio multipiattaforma...

    Weierstrass ha scritto:


    Certo che è più performante. E' solo più scomodo, quindi dipende da cosa devi fare
    Concordo sul fatto che possa essere più scomodo rispetto ad un linguaggio ad alto livello, ma forse in realtà la cosa più scomoda è il dover imparare un nuovo linguaggio ad alto livello e doverne mantenere con questo 2/3 visto che di C e C++ non posso farne a meno.
    Per questo cerco di orientarmi tutto verso il mondo C/C++; per non diventare matto poi nella manutenzione dei vari software.
    Credo anche che un software scritto "male" in C/C++, al massimo possa girare come un software scritto bene con un linguaggio di alto livello.
    Ma questa è solo una mia opinione.
  • Re: Quale linguaggio multipiattaforma...

    stefanoxjx ha scritto:


    Credo anche che un software scritto "male" in C/C++, al massimo possa girare come un software scritto bene con un linguaggio di alto livello.
    Ma questa è solo una mia opinione.
    Io intendevo solo dire che a volte i risultati che si ottengono in termini di funzionalità e prestazioni non sono necessariamente commisurati a quanto basso possa arrivare il livello del linguaggio utilizzato, ma anche dall'esperienza e dalle capacità dello sviluppatore.

    Nel tuo caso, se sei già "fluente" in C/C++, non vedo attualmente un motivo per abbandonare quel linguaggio e impararne un altro.
    Diverso sarebbe stato se tu avessi avuto un'altra base di partenza.

    Ciao!
  • Re: Quale linguaggio multipiattaforma...

    Alka ha scritto:


    Diverso sarebbe stato se tu avessi avuto un'altra base di partenza.
    Che in definitiva sarebbe la stessa cosa ma vista all'inverso, cioè partire da C/C++ per imparare per esempio Python.
    Cosa che potrei anche fare tranquillamente se potessi dedicarmi solo a quest'ultimo linguaggio, ma purtroppo per lavoro non posso fare a meno di C/C++, quindi come dicevo mi conviene cercare di rimanere nello stesso binario.
Devi accedere o registrarti per scrivere nel forum
19 risposte