View Single Post
Old 05-08-2018, 11:31   #2
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
Quote:
Originariamente inviato da Gabryy. Guarda i messaggi
Vorrei specializzarmi in un linguaggio con il quale possa creare applicazioni per windows e per android (con interfaccia grafica).
Più che linguaggio è una questione di framework. Le soluzioni cross-platform Windows/Android ( perchè lasci fuori iOS? ha senso? e macOS? ) sono:

1. Qt
2. Xamarin
3. React native
4. JavaFX

Qt è un framework multipiattaforma per C++. Quindi usi C++ come linguaggio, compili in codice nativo ( codice oscurato ) e puoi far girare lo stesso programma su un bel numero di piattaforme https://wiki.qt.io/Supported_Platforms

Si può usare con altri linguaggi ( Python in particolare ), ma poi il deployment del software risulta un pelino ostico. E' preferibile usare il C++ soprattutto per le app mobile.

Xamarin pure è multipiattaforma e usa C#. Il problema è che per la GUI hai le Winforms ( oppure devi scrivere una GUI per ogni piattaforma supportata ). Le Winforms si usavano su Windows tempo fa, ad oggi WPF è la scelta preferita ( più moderno, più funzionalità ). Il problema è che WPF gira solo su Windows.

C'è la possibilità di compilare in codice nativo, ma nella versione a pagamento di Visual Studio, che costicchia.

React native usa un linguaggio proprietario Javascript-like. Non è roba compilata. Gira su iOS, Android e Windows.

JavaFX è basato su Java, multipiattaforma, il codice non è nativo. E' un pelino pesante oltretutto ed è poco utilizzato pure da chi realizza software desktop in Java ( Swing è molto più diffuso ma non supporta Android e iOS ).

Quote:
Originariamente inviato da Gabryy. Guarda i messaggi
Un linguaggio veloce in fase di esecuzione, con il quale si possa fare di tutto e che nell'eseguibile sia "nascosto" il codice sorgente (dipende se il linguaggio è interpretato o compilato giusto?).
Tutti i linguaggi compilati nativamente permettono di offuscare il codice al massimo livello possibile. I linguaggi come C# e Java ( .NET e JVM rispettivamente ) non compilano in codice nativo e consentono un offuscamento "parziale", dato che è possibile farne il reverse in maniera abbastanza precisa. Tant'è che esistono librerie apposite per aggiungere ulteriore offuscamento.

Quote:
Originariamente inviato da Gabryy. Guarda i messaggi
Fino ad ora ho sempre pensato che visual c++ fosse il migliore (su visual studio c'è anche l'emulatore android) ma mi stanno venendo vari dubbi. Sono indeciso anche tra java e python... non ho la vostra esperienza... quale mi consigliate?
Visual C++ è un IDE con supporto al C++. Ad oggi per Windows si usa principalmente C#. La "versione" Android si chiama Xamarin.

Python è interpretato e quindi scordati di poter efficacemente oscurare il codice.

Come vedi ci sono varie scelte, di cui però solo Qt soddisfa il criterio di produrre codice strettamente sorgente.

Esistono altre soluzioni oltre a quelle che ho citato. Le ho scartate a priori perchè o poco diffuse o complicate o con poco performanti.
pabloski è offline   Rispondi citando il messaggio o parte di esso