Consiglio linguaggio (e programma) per creare programmi

di il
28 risposte

Consiglio linguaggio (e programma) per creare programmi

Un saluto a tutti.

Io sono un ingegnere strutturale e ho l'intensione di creare software con interfaccia grafica e non riesco a capire quale linguaggio scegliere (e quindi studiare). I requisiti sono (in ordine sparso):
- Essere multi-piattaforma (win, mac, linux, NO mobile).
- Permetta di computare anche a 64bit.
- Semplicità (non è fondamentale ma non guasta).
- Permetta di creare programmi con un'interfaccia simile, ad esempio, ad AutoCAD (sempre in maniera possibilmente più semplice possibile).

Ero propenso verso il C++, ma non riesco a capire come creare le finestre senza il "terminale".
Ho incominciato a "scrivere" qualcosina con PWCT (Programming Without Coding Technology) ma non riesco ad implementare la parte grafica.

Voi che linguaggio (e programma) mi consigliate?

28 Risposte

  • Re: Consiglio linguaggio (e programma) per creare programmi

    Dimmi se ho capito bene. Scrivi programmi in C++ compilandoli in .exe o .dll che poi richiami all'interno dell'interfaccia grafica creata con QT con la quale si forniscono gli input e si leggono gli output?

    Chiedo scusa se non uso i termini esatti ma come detto sono un ingegnere.

    Avevo pensato anche di affidarmi ad un programmatore vero (ovviamente con il dovuto compenso) ma "programmare" mi diverte (mi diletto con Matlab/Octave) e mi da una discreta soddisfazione.
  • Re: Consiglio linguaggio (e programma) per creare programmi

    Anche Java potrebbe andare.
    C'e' gia' tutto nelle librerie standard
  • Re: Consiglio linguaggio (e programma) per creare programmi

    Ho provato a dare un'occhiata a Qt Creator 3.3.1 e per quello che devo fare io mi sembra molto complesso. Ad esempio non riesco a:
    - Assegnare l'esecuzione di funzioni/procedure quando:
    - Premo un pulsante.
    - Cambio il valore in un 'Text Edit'.
    - etc... (in pratica non ci riesco mai ).
    - Far cambiare il numero delle Tab di un 'tabWidget' durante l'esecuzione del programma.
    - Creare più finestre.
    - etc...

    Sono sicuro che queste (ed altre cose) siano possibili perché riuscivo a farle con PWCT.
    Qualcuno mi conferma che si possono fare anche con Qt?
  • Re: Consiglio linguaggio (e programma) per creare programmi

    Usa java come linguaggio ed eclipse come ambiente di sviluppo,ciao
  • Re: Consiglio linguaggio (e programma) per creare programmi

    Puoi usare anche c# come linguaggio con visual studio express (oppure mono),hai un linguaggio semplice, un ide immediato e la possibilità di avere un eseguibile con delle notevoli prestazioni e molta documentazione per qualsiasi tema se devi fare dei calcoli pesanti puoi dare un occhio anche quà
  • Re: Consiglio linguaggio (e programma) per creare programmi

    Beh, intanto sparare "è superiore" a destra e a manca senza se e senza ma, per me è sbagliato. Vasch parla di multipiattaforma, pertanto potrebbe preferire utilizzare il Java piuttosto che dover ricompilare un sorgente C++; oppure la presunta semplicità del C# (dico presunta soltanto perche non ci ho mai avuto a che fare, dunque mi baso sui commenti di altri utenti).
    Insomma, un po' de gustibus, un po' ciò che gli fa più comodo
  • Re: Consiglio linguaggio (e programma) per creare programmi

    @ultrasound91: attento a quello che dici, pena la fustigazione

    Definire Java inferiore e' una sciocchezza: e' un ottimo linguaggio di programmazione, con una sterminata casistica di librerie di terze parti, per fare praticamente qualunque cosa. Gia' la libreria standard e' immensa: c'e' di tutto e di piu'.

    E' l'unico linguaggio veramente multipiattaforma, che per me vuol dire: lo sviluppo sotto Windows, copio i compilati su Mac o Linux e funziona!

    In tal senso, C++ e' tutto meno che multipiattaforma: ogni S.O, versione di compilatore, ha le sue peculiarita'. Bisogna fare un gran gioco di #ifdef per rendere il codice compilabile su piu' piattaforme. E non sto parlando di copiare gli eseguibili! Ma solo dei sorgenti!

    Visual Studio e' un buon IDE, ma e' mastodontico Anche le versioni Express sono comunque pesanti. Ci sono IDE buoni e decisamente piu' light: SharpDevelop per C#, Code::Block/Eclipse/Netbeans/CLion per C++ e IntelliJ IDEA per Java.
    Se CLion, della JetBrains, ancora in beta, avra' le stesse funzionalita' di IDEA, ti assicuro che fara' le scarpe a Visual Studio, ma alla grande!

    Considera che il plug-in per eccellenza di Visual Studio e' ReSharper (nato per C# ma ora anche per C++) che aggiunge tutto quello che IDEA ha gia' integrato e che probabilmente avra' integrato anche CLion.

    C++ non e' ne superiore ne inferiore a Java: dipende dal tipo di applicazioni si deve realizzare.
    Se serve efficienza, ovviamente C++ e' meglio di Java (ma anche qui' si potrebbe discutere), se serve sicurezza e resistenza ai crash, Java e' infinitamente meglio.

    Attenzione: tanto per ritornare su Java, l'esistenza di Garbage Collector, non e' la panacea per tutte le rogne legate ad un cattivo utilizzo della memoria! Si possono fare casini inumani anche con il GC.

    Ma, ad esempio, un'applicazione che fa molte allocazioni/deallocazioni, richiede un'accurata implementazione di opportuni gestori di memoria per ridurre la frammentazione. Cosa che non serve fare se si ha un GC a disposizione. E i GC generazionali di oggi sono decisamente potenti e con un impatto sull'applicazione decisamente minimo. Anche inferire ad una non ottima gestione della memoria fatta a mano.

    Ogni linguaggio ha un suo contesto di utilizzo: in quel contesto funziona bene, al di fuori di quel contesto inizia ad essere difficoltoso.
  • Re: Consiglio linguaggio (e programma) per creare programmi

    Io partirei in un altro modo: vash ha detto che si dovrebbe/potrebbe interfacciare con autocad, allora quale è la libreria migliore (di quale linguaggio) che si interfaccia col cad?? Ovviamente tutti i menzionati sono i soliti ottimi linguaggi, ma dovendo partire da zero per un multipiattaforma allora java! Azzarderei python ma essendo interpretato forse per calcoli complessi potrebbe essere "lento"...

    Inviato dal mio GT-I9060 utilizzando Tapatalk
  • Re: Consiglio linguaggio (e programma) per creare programmi

    Python e' decisamente lento, oltre a non avere nessun supporto al multithreading.

    Python va bene come collante tra librerie scritte in C e per fare semplici script.
    Inutilizzabile per fare cose complesse che richiedeono una certa performance.

    Comunque, con Google, ho trovato librerie per C++, Java e Python, per comandare Autocad
  • Re: Consiglio linguaggio (e programma) per creare programmi

    Vedo che questa discussione è stata fonte di un buon scambio di opinioni, ne sono contento.

    Penso che comunque valga la pena di precisare maggiormente quello che voglio fare.
    L'idea principale è quella di creare un programma come il SAP2000. Se non lo conoscete guardate qui:

    https://www.youtube.com/watch?v=2povDdw2pT

    Questa è l'idea di interfaccia che più o meno avevo in mente, quindi presenza di Menu bar, toolbars e soprattutto 'Graphical Input'. Per quanto riguarda il Menu bar e le toolbars ci sono riuscito anche con PWCT ma non riesco ad implementare il 'Graphical Input'.

    Con Qt è possibile creare qualcosa del genere?
  • Re: Consiglio linguaggio (e programma) per creare programmi

    @ultrasound91: nell'ambito web, i piu' potenti Application Server (programmoni che fanno da framework per le applicazioni web, con il supporto per una sterminata lista di tecnologie) sono scritti in Java. JBoss, WebSphere, WebLogich, Tomcat...

    Classificare Java a livello di un linguagetto per giochini/applet e' decisamente riduttivo.

    Esempi di applicazioni desktop in Java? Diversi IDE (Netbeans, Eclipse, Clion, Idea, PyCharm, WebStorm, Aptana, ...). JOffice, l'equivalente di Office, ...

    Lo standard MPEG prevede uno stream Java per il trasporto di applicazioni da eseguire sui televisori. La scatoletta che utilizzi per guardare la tv supporta Java. Nota che non sto' parlando di SmartTv!

    Lo standard BluRay prevede il supporto per Java per la gestione delle parti interattive

    Android e' Java con relativa vm (anche se ottimizzata).

    Ne vuoi altre? Azureus, un'applicazione per scaricare e vedere torrent, jEdit, ...

    Ci sono DBMS decisamente potenti (comparabili con mysql) scritti in Java: Java DB (ex Derby), HSQL ...

    JMokeyEngine: un engine 3D comparabile a Unity

    Matlab e' scritto per buona parte in Java. IDL idem

    E posso continuare ...

    Direi che come ingegnere sei decisamente poco informato.

    Per quanto riguarda la modellazione 3d: ad esempio




    Come dire: C++ e Java sono comparabili in quasi qualunque settore di utilizzo.


    Nota: io programmo da qualcosina in piu' di 10 anni . E se tu non hai mai sentito la necessita' di un gc, vuol dire solo che non hai mai realizzato applicazioni a cui servirebbe una tecnologia del genere, non che non serve in generale

    Comunque puoi dormire sonni tranquilli: il GC e' stato inventato da John McCathy, un Computer Scientist, padre del LISP, linguaggio di programmazione usato nella maggior parte dei progetti nel campo dell'Intelligenza Artificiale.

    Quindi nulla a che vedere con gli ingegneri

    Siamo su qualche scalino piu' in alto
  • Re: Consiglio linguaggio (e programma) per creare programmi

    La solita sferzatina agli Ingegneri (nota la I maiuscola)!!
    Secondo me, semplicemente, ogni linguaggio ha i suoi punti di forza e i suoi lati oscuri! Dato che questo caso necessita di essere multipiattaforma, con una interfaccia grafica e con la necessità di interfacciarsi con autocad, personalmente sceglierei Java. È ovvio che se dovessi programmare microcontroller o crearmi un driver, sicuramente non sceglierei questo ma bensì C (neanche C++)...

    Inviato dal mio GT-I9060 utilizzando Tapatalk
  • Re: Consiglio linguaggio (e programma) per creare programmi

    Ma infatti e' la prima cosa che e' stata detta: il linguaggio giusto per il giusto contesto.
  • Re: Consiglio linguaggio (e programma) per creare programmi

    ultrasound91 ha scritto:


    ... Ho fatto un programmino che elabora segnali e addirittura alcune di queste variabili si prestano all'analisi con la trasformata di Fourier ...
    Se ci pensi bene, e' una pura questione implementativa.

    Se devi utilizzare un certo paradigma di programmazione, il tuo algoritmo verra' adattato a quel paradigma.

    Ad esempio, se ti soffermi a studiare l'architettura dei filtri che si usano nell'elaborazione del segnale/delle immagini (il modo di comporli), ti accorgi che sono in relazione 1:1 con la programmazione funzionale:
    
        out = filterN( ... filter2(filter1(in)) ... )
    
    Oppure, se vuoi un'altro termine: seguono un' architettura dataflow

    Per la storia della JVM scritta in un linguaggio compilato: la JVM per la Virtual Machine e' come la CPU per il computer.

    Da questo punto di vista, anche la CPU e' scritta usando un linguaggio di programmazione compilato: ad esempio VHDL ().

    Il fatto che la JVM sia software e non hardware non ha molta relazione con i concetti che ci stanno dietro.

    Altro esempio: QEMU e' un emulatore per processori!
Devi accedere o registrarti per scrivere nel forum
28 risposte