View Full Version : Consiglio su linguaggio e ambiente di sviluppo
Salve a tutti,
vengo a chiedervi un consiglio su quale linguaggio e ambiente di sviluppo sia più adatto per la creazione di semplici applicazioni windows, la grafica riveste scarsa importanza ma è necessario che le applicazioni girino ovunque (da W98 a W7) e senza la necessità di installare alcunchè.
L'ideale sarebbe per me il poter copiare un eseguibile e poche DLL.
Avrei bisogno principalmente di gestire porte seriali collegate a semplici schede hw autocostruite liberandomi dai prompt di dos e dalla necessità di installare java o altre applicazioni sulle macchine dove il SW andrà eseguito.
Più il linguaggio è conosciuto (utile da imparare non solo per questa particolare necessità ma anche per il futuro) meglio è, io ho un po' di esperienza con C++, Pascal, Java e VBA.
Mi piacerebbe che l'editor di finestre dell'ambiente di sviluppo fosse quanto più possibile potente.
Mi sapete dare qualche buon consiglio?
Grazie mille
Michele
Salve a tutti,
vengo a chiedervi un consiglio su quale linguaggio e ambiente di sviluppo sia più adatto per la creazione di semplici applicazioni windows, la grafica riveste scarsa importanza ma è necessario che le applicazioni girino ovunque (da W98 a W7) e senza la necessità di installare alcunchè.
L'ideale sarebbe per me il poter copiare un eseguibile e poche DLL.
Avrei bisogno principalmente di gestire porte seriali collegate a semplici schede hw autocostruite liberandomi dai prompt di dos e dalla necessità di installare java o altre applicazioni sulle macchine dove il SW andrà eseguito.
Più il linguaggio è conosciuto (utile da imparare non solo per questa particolare necessità ma anche per il futuro) meglio è, io ho un po' di esperienza con C++, Pascal, Java e VBA.
Mi piacerebbe che l'editor di finestre dell'ambiente di sviluppo fosse quanto più possibile potente.
Mi sapete dare qualche buon consiglio?
Grazie mille
Michele
C++ e QT, altrimenti C# (ma ti vincola a .NET, cosa che da Win 2000 mi pare non ci sia più e quindi va installata a parte); l'unica alternativa sono le QT + C++ (ma devi installare le QT, tanto vale Java con una JVM).
Python e le wxWindows, potrebbero aiutarti.
Se no C++ e wxWindows
Mulder90
07-05-2010, 20:45
fossi in te continuerei con l'apprendimento del C++ visto che hai già un po di esperienza
lock cmpxchg8b %ebx
07-05-2010, 20:49
C++ e QT, altrimenti C# (ma ti vincola a .NET, cosa che da Win 2000 mi pare non ci sia più e quindi va installata a parte); l'unica alternativa sono le QT + C++ (ma devi installare le QT, tanto vale Java con una JVM).
Python e le wxWindows, potrebbero aiutarti.
Se no C++ e wxWindows
Le Qt non vanno installate. In caso di linking dinamico basta distribuire qualche libreria assieme al programma ("copiare un eseguibile e poche DLL"), in caso di linking statico neanche quello.
Python invece va installato
Grazie mille di tutti i consigli!
Certo che mi chiedevo le miriadi di programmini vari che si trovano sul web, contenuti semplicemente in un archivio zip e consistenti appena in qualche file come siano stati creati...
Intanto proverò le QT e appena fatto il mio "hello world" vi farò sapere!
ciao!
PS. qualsiasi altra opinione e consiglio sarà molto ben accetta!
Le Qt non vanno installate. In caso di linking dinamico basta distribuire qualche libreria assieme al programma ("copiare un eseguibile e poche DLL"), in caso di linking statico neanche quello.
Python invece va installato
Mi ero dimenticato per Python di sottolineare che andava installato l'interprete.
Mi ero dimenticato per Python di sottolineare che andava installato l'interprete.
Non necessariamente, può essere distribuito insieme all'applicazione. Certo è molto più "dell'eseguibile e qualche DLL".
Qt è uno dei framework migliori in assoluto....fa quasi sembrare c++ un linguaggio produttivo!
Certo che mi chiedevo le miriadi di programmini vari che si trovano sul web, contenuti semplicemente in un archivio zip e consistenti appena in qualche file come siano stati creati...
Spesso C++ e MFC o C/C++ e API Win32, ma c'è bisogno comunque del runtime di Visual C++ e delle DLL di MFC. Il fatto che funzioni non significa che sia stato distribuito.con tutto il necessario per farlo funzionare su qualsiasi macchina. Infatti molto spesso il runtime di Visual C++ e le DLL di MFC sono già state installate nel sistema da altri programmi.
Per le QT, se le utilizzi con l'SDK in cui è già fornito il compilatore MingW32 GCC, hai bisogno di mingwm10.dll, QtCore4.dll, QtGui4.dll. Poi se c'è bisogno di altre dll, dipende solo da cosa implementi.
Ryuzaki_Eru
08-05-2010, 10:40
Con Python le porte seriali le gestisci in modo elementare. E ti puoi creare un eseguibile che contiene tutto il necessario al suo interno. Certo, non sarà un eseguibile anoressico.
Io opto per Python + PyQt (che avendo pure il designer rende la scrittura dell'interfaccia grafica molto veloce).
Con Python le porte seriali le gestisci in modo elementare. E ti puoi creare un eseguibile che contiene tutto il necessario al suo interno. Certo, non sarà un eseguibile anoressico.
Io opto per Python + PyQt (che avendo pure il designer rende la scrittura dell'interfaccia grafica molto veloce).
13 MB di dll delle Qt e di Python quanti sono ?
Ryuzaki_Eru
08-05-2010, 10:45
13 MB di dll delle Qt e di Python quanti sono ?
Credo di non aver capito la domanda. Quanti sono cosa? Hai scritto tu che sono 13Mb :confused:
Credo di non aver capito la domanda. Quanti sono cosa? Hai scritto tu che sono 13Mb :confused:
13 MB delle DLL delle Qt e dell'interprete di Python quanti MB sono ?
Comunque anche con le QT diventa semplice programmare la porta seriale: http://qextserialport.sourceforge.net/ ;)
Ryuzaki_Eru
08-05-2010, 11:48
13 MB delle DLL delle Qt e dell'interprete di Python quanti MB sono ?
Di preciso non ti so dire, però un eseguibile fatto con py2exe su un sorgente abbastanza piccolo (un programma che calcola il codice fiscale), prende meno di 7MB. Togliamo i file,le icone e qualche altra cosa e penso che arriviamo sui 5MB circa. Ma con PyInstaller si può fare di meglio. Alla fine non verrebbe un eseguibile cosi ingombrante. Ci si guadagna tutta la potenza e semplicità di Python però.
Alla fine non verrebbe un eseguibile cosi ingombrante. Ci si guadagna tutta la potenza e semplicità di Python però.
Che deve impararsi da zero però.
Ryuzaki_Eru
08-05-2010, 12:08
Che deve impararsi da zero però.
Questo non l'avevo considerato. Hai ragione. Non so perchè, ma ero partito con il presupposto che lo conoscesse. Però se quello che gli serve e comunicare con la seriale non c'è nemmeno poi cosi bisogno di conoscerlo il linguaggio. Le cose che gli servono le impara leggendosi le tonnellate di esempi o documenti che sono in rete.
import serial
seriale = serial.Serial(numero_porta)
seriale.baudrate = 9600
seriale.open()
if seriale.isOpen():
numero_portacom = seriale.portstr
buffer = "AT "
seriale.write(buffer)
while True:
num = seriale.inWaiting()
buffer = seriale.read(num)
seriale.close()
Mi sembra molto intuitivo anche per chi non conosce il linguaggio.
lock cmpxchg8b %ebx
08-05-2010, 12:30
Però se quello che gli serve e comunicare con la seriale non c'è nemmeno poi cosi bisogno di conoscerlo il linguaggio.
Deve anche fare una GUI. Non ho niente contro il Python (anzi, lo trovo molto comodo), ma considerando che l'utente ha già esperienza in C++ mi sembra che la scelta più sensata sia Qt con QextSerialPort.
Ha QtCreator come ambiente di sviluppo, un "editor di finestre potente" proprio come lo vuole lui e soltanto un paio di dll da distribuire assieme all'eseguibile.
Per le QT, se le utilizzi con l'SDK in cui è già fornito il compilatore MingW32 GCC, hai bisogno di mingwm10.dll, QtCore4.dll, QtGui4.dll. Poi se c'è bisogno di altre dll, dipende solo da cosa implementi.
Sono quasi sicuro che ci voglia anche libgcc_s_dw2-1.dll.
Ryuzaki_Eru
08-05-2010, 12:35
Deve anche fare una GUI. Non ho niente contro il Python (anzi, lo trovo molto comodo), ma considerando che l'utente ha già esperienza in C++ mi sembra che la scelta più sensata sia Qt con QextSerialPort.
Ha QtCreator come ambiente di sviluppo, un "editor di finestre potente" proprio come lo vuole lui e soltanto un paio di dll da distribuire assieme all'eseguibile.
Ovviamente io ho dato la mia opinione, anche in Python c'è il creator, solo che come ha detto cionci deve conoscere un minimo il linguaggio per collegare il tutto alla fine.
Sono quasi sicuro che ci voglia anche libgcc_s_dw2-1.dll.
Sì, vero
Questo non l'avevo considerato. Hai ragione. Non so perchè, ma ero partito con il presupposto che lo conoscesse. Però se quello che gli serve e comunicare con la seriale non c'è nemmeno poi cosi bisogno di conoscerlo il linguaggio. Le cose che gli servono le impara leggendosi le tonnellate di esempi o documenti che sono in rete.
Considerando che QtCreator il codice per la gestione dell'interfaccia grafica glielo scrive da solo, nemmeno in C++ c'è molto da imparare ;)
http://qextserialport.cvs.sourceforge.net/viewvc/qextserialport/qextserialport/examples/qespta/QespTest.cpp?revision=1.7&view=markup
Ryuzaki_Eru
08-05-2010, 12:51
Certo, io parlavo infatti di quando si dovrà collegare la logica del programma all'interfaccia. Il linguaggio in quel caso si deve conoscere. Poi non conosce il C++ l'autore? Quindi già il linguaggio lo conosce e ha di sicuro meno cose da imparare (magari le sa già).
Mi riferivo al fatto che utilizzando qtcreator (che non solo aiuta a disegnare l'interfaccia grafica, ma collega anche gli eventi al codice scrivendo i metodi e modificando la classe della finestra), gli basta imparare come funziona la libreria per usare la seriale ;)
Ryuzaki_Eru
08-05-2010, 13:07
Mi riferivo al fatto che utilizzando qtcreator (che non solo aiuta a disegnare l'interfaccia grafica, ma collega anche gli eventi al codice scrivendo i metodi e modificando la classe della finestra), gli basta imparare come funziona la libreria per usare la seriale ;)
Ah bè quelli si :)
Io cmq consiglierei C#... francamente non so che senso possa avere nel 2010 fare applicazioni che girano anche su Windows 98, ma stando a questa pagina .NET 2.0 gira su Win98 e su Win 2000 SP3:
http://www.microsoft.com/downloads/details.aspx?displaylang=it&FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5
Edit: a quanto ho capito .NET 2.0 liscio (senza SP) è l'ultima versione che gira anche su Win98, mentre .NET 2.0 SP2 è l'ultima versione che gira anche su Win2000.
Grazie ancora a tutti quanti.
Python era una delle alternative che consideravo, certamente il linguaggio dovrei impararlo, ma sarebbe bene conoscerlo a prescindere e così avrei la scusa per farlo...
Certo che mi sembra che qt creator sia fatto davvero bene e mi sa che è l'opzione che mi permetterebbe di ottenere il miglior risultato nel tempo inferiore.
Io cmq consiglierei C#... francamente non so che senso possa avere nel 2010 fare applicazioni che girano anche su Windows 98.
Forse hai ragione, ma per l'applicazione che ho in mente sarà molto facile scontrarsi con pc di una certa età, soprattutto vecchi portatili, ancora dotati di seriale, sui quali è installato w98...
Cangurozoppo
28-05-2010, 20:29
Mi sono letto i vostri interventi perchè anche io sono ancora indeciso su quale linguaggio adottare .
Premesso che sono solo un hobbista e non un professionista come voi ,tuttavia anche a me piacerebbe un linguaggio con caratteristiche simili a quelle che chiede Migiche.
Spulciando un pò su internet ho trovato questo Lazarus (una specie di Delphi) che sembra fare al caso mio.
Le caratteristiche principali sono:
1 é un linguaggio multipattaforma
2 è un compilatore
3 esiste anche una versione a 64 bit
e per ultimo mi pare di aver capito che non richiede Framework vari per poter eseguire i programmi compilati.
Cosa ne pensate Voi?
Ryuzaki_Eru
28-05-2010, 21:00
1 é un linguaggio multipattaforma
Pure Python.
2 è un compilatore
E' un compilatore?
3 esiste anche una versione a 64 bit
Anche di Python.
e per ultimo mi pare di aver capito che non richiede Framework vari per poter eseguire i programmi compilati.
Che intendi per "framework vari per eseguire programmi compilati"?
Cangurozoppo
29-05-2010, 12:11
Quello che intendo dire è che non è necessario installare decine e decine di megabyte di librerie di run-time per far girare gli eseguibili.
Comunque a quello che sò Pyton è adatto più per applicazioni Web mentre
Lazarus(FreePascal) è per applicazioni Desktop.
tomminno
29-05-2010, 13:17
(ma devi installare le QT, tanto vale Java con una JVM).
Veramente le Qt le installi solo sull'ambiente di sviluppo (SDK). Sulle macchine dove girerà l'applicativo ti porterai dietro quelle 3 o 4 dll che servono al programma per funzionare (sempre che non sia linkato staticamente per cui non servono nemmeno quelle)
tomminno
29-05-2010, 13:26
Qt è uno dei framework migliori in assoluto....fa quasi sembrare c++ un linguaggio produttivo!
Sicuramente per lo sviluppo di applicazioni Desktop e Mobile include tante caratteristiche per creare programmi con grafica originale (AnimationFramework e QML in particolare aprono nuove prospettive per lo sviluppo).
Alla fine la produttività è sempre legata a quanto devi scrivere te e quanto puoi utilizzare di già scritto altri. Qt è un framework abbastanza completo, per cui ovvio che la produttività aumenti.
Ryuzaki_Eru
29-05-2010, 14:51
Comunque a quello che sò Pyton è adatto più per applicazioni Web
What?? E' più adatto per le applicazioni web? E le applicazioni desktop, di rete, giochi, calcolo ecc ecc dove le mettiamo?
Qt è uno dei framework migliori in assoluto....fa quasi sembrare c++ un linguaggio produttivo!
Come non quotare. Lo uso con Python dopo aver provato altre tre librerie. Bè, me ne sono innamorato a prima vista.
Cangurozoppo
29-05-2010, 16:23
Mi sono letto delle recensioni su phyton , è senz'altro un linguaggio molto interessante , però a quello che mi risulta non compila il codice ma è un interprete giusto?
Vorrei sapere se qualcuno di voi ha esperienza o conosce freepascal
Grazie in anticipo.
Cangurozoppo
29-05-2010, 16:44
Ok mi sono letto un pò di recensioni su Phyton(data la mia ignoranza in proposito) e francamente lo trovo un linguaggio interessante .
L'unico dubbio è che(così ho letto) si tratta di un interprete e non di un compilatore quindi le prestazioni non sono o non sarebbero poi così performanti .
Correggetemi se sbaglio ok?
Vorrei inoltre se possibile sapere se qualcuno di voi ha esperienza di Freepascal .
Grazie in anticipo.
Cangurozoppo: per consigliarti quale linguaggio scegliere c'è una apposita discussione in rilievo. Questa discussione è nata perché l'utente aveva requisiti ben più ristretti.
cdimauro
29-05-2010, 21:44
Ok mi sono letto un pò di recensioni su Phyton(data la mia ignoranza in proposito) e francamente lo trovo un linguaggio interessante .
L'unico dubbio è che(così ho letto) si tratta di un interprete e non di un compilatore
E' simile a Java: il sorgente lo compila in (un suo) bytecode, ed è quest'ultimo a venire eseguito. Come Java, esistono delle implementazioni dotate di JIT, che convertono al volo il byte in codice nativo (per lo più x86).
quindi le prestazioni non sono o non sarebbero poi così performanti .
Correggetemi se sbaglio ok?
Sì, a livello prestazionale non è assolutamente comparabile a C, C++, ecc.
Ma le prestazioni non sono tutto e, soprattutto, non sono sempre un requisito da soddisfare. ;)
Vorrei inoltre se possibile sapere se qualcuno di voi ha esperienza di Freepascal .
Io, anche se non molta (ho MOLTA più esperienza con TurboPascal e Delphi).
Ryuzaki_Eru
30-05-2010, 01:01
Riguardo le prestazioni c'è da dire che non c'è più il grande gap che c'era qualche annetto fa. Sono stati fatti non pochi passi avanti.
Kralizek
30-05-2010, 03:10
Ma le prestazioni non sono tutto e, soprattutto, non sono sempre un requisito da soddisfare. ;)
verità divina spesso trascurata! dall'importanza che si dà a questo requisito, sembra che stiamo tutti a scrivere il nuovo OS, il nuovo google o boh...
Come sapete per la scelta del linguaggio c'è il thread ufficiale. Non facciamo anche di questo il solito thread :D
verità divina spesso trascurata! dall'importanza che si dà a questo requisito, sembra che stiamo tutti a scrivere il nuovo OS, il nuovo google o boh...
Anche perché la maggior parte delle volte i problemi prestazionali sono dovuti a una scelta non corretta delle strutture dati, piuttosto che al codice in se.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.