|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Jul 2014
Messaggi: 32
|
Java vs Python
Ciao a tutti,
devo realizzare un software con interfaccia grafica. Questo software si deve occupare principalmente di estrarre dati da file .txt e produrre in uscita i risultati sempre su .txt o pdf. L'interfaccia deve comprendere una mappa geografica (es. Europa) e selezionando una città da un menù a tendina, deve segnare sulla mappa con un segno (tipo google maps) la città selezionata ( o anche zoomare sulla mappa ). In base alla città selezionata deve prendere in ingresso dei file .txt e leggere i dati nonchè eseguire dei calcoli matematci su di essi e scriverli su un file di uscita .txt o pdf. e magari anche graficarli con istogrammi sulla stessa interfaccia. Vengo al dunque: devo scegliere un linguaggio di programmazione che mi permetta di fare ciò e la mia scelta cade su java o python. Cosa mi consiglita? Grazie |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
Io dei due conosco solo java, ma penso che entrambi siano abbastanza dotati di librerie per fare ciò che vuoi, il consiglio è ovviamente di utilizzare quello che conosci meglio.
Nell'ottica di ridistribuire il programma sceglierei java perché a mio avviso la jvm è più familiare all'utente medio di quanto non lo sia l'interprete python (ma è solo una mia sensazione). |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13826
|
Quote:
Alla fine,infatti, il punto che sembra essere più critico dell'applicazione e' proprio la gestione e visualizzazione delle mappe. Per che piattaforma vuoi/devi farla? Integrare le mappe in una applicazione desktop potrebbe non essere banale ... (anche perché non credo ci siano servizi desktop per la mappe di qualità da sfruttare). Se vuoi usare google maps per esempio (che e' il servizio di mappe migliore che si trova al momento) allora o fai una applicazione Web o integri un browser web nella tua applicazione o usi le API mobile (se l'applicazione mobile). Se vuoi usare un servizio di qualità inferiore , ma comunque buono come OpenStreetMap allora hai a disposizione una serie di librerie e framework tra cui scegliere che, a seconda di quale sceglierai, determinerà il linguaggio con cui scriverai l'applicazione. Puoi trovare un elenco qua: http://wiki.openstreetmap.org/wiki/Rendering Ciao
__________________
GPU Compiler Engineer |
|
![]() |
![]() |
![]() |
#4 | |
Member
Iscritto dal: Jul 2014
Messaggi: 32
|
Quote:
|
|
![]() |
![]() |
![]() |
#5 | |
Member
Iscritto dal: Jul 2014
Messaggi: 32
|
Quote:
Non devo fare una applicazione web ma un software installabile con un esegubile sul sistema. La piattaforma, considererei in primiis windows ma ben enga l'utilizzo sulle altre se fosse possibile |
|
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13826
|
Quote:
Secondo me e' la scelta più adatta per quello che devi fare se e' un qualcosa che devi fare per lavoro. Se la compatibilita' multipiattaforma e' importante allora Java potrebbe essere una opzione , ma come costruzione di interfacce grafiche su Windows credo che .NET al momento sia inarrivabile. Sia per qualità dei tool a disposizione che per le risorse che puoi trovare sul Web. Python lo scarterei, perche' visto che non conosci neanche il linguaggio , costruire una interfaccia grafica decente richiederebbe sicuramente più lavoro. Pero' non sono esperto di costruzione di interfacce grafiche su Python, visto che l'ho sempre usato più come linguaggio di scripting che per applicazioni. Di esperti a riguardo ce ne sono parecchi su questo forum e sicuramente se mi sbaglio da questo punto di vista (ad esempio perché c'e' un tool di RAD per le interfacce grafiche definitivo per Python che non conosco) si faranno sentire ![]() Ciao
__________________
GPU Compiler Engineer |
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Dec 2006
Messaggi: 3808
|
Java offre nativamente supporto alle GUI tramite Swing
https://it.wikipedia.org/wiki/Swing_%28Java%29 Né l'interprete ufficiale, né i moduli inclusi in esso, offrono nulla di simile in Python, né Python 2.x né 3.x Ovviamente per entrambi trovi estensioni, librerie e tutto il solito fritto misto e insalatona che offrono tutti i linguaggi . Io andrei di Java senza pensarci 2 volte. |
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: Jul 2014
Messaggi: 32
|
Ovviamente oltre al menù a tendina per le città, ci devo essere anche delle opzioni spuntabili in base ai dati che voglio in uscita sul file .txt o .pdf
Io sinceramente non conoscendo nè java nè Python opterei per Java solo perchè sicuramente troverei più aiuto nei forum mentre opterei per Python solo perchè mi hanno detto che è più immediato da apprendere. Quindi son ben accetti altri pareri a riguardo Grazie ancora |
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Dec 2006
Messaggi: 3808
|
Quote:
Se la scelta si estende ad altro GTK+ offre tanti widget per te, compreso il supporto alle mappe con libchamplain e probabilmente altri widget e librerie, ma è forse ancora più complesso di Java. Se non te la senti di sperimentare usa Java perché troverai tanta documentazione. Ultima modifica di Freaxxx : 29-07-2014 alle 19:09. |
|
![]() |
![]() |
![]() |
#10 |
Member
Iscritto dal: Jul 2014
Messaggi: 32
|
Vi spiego: questo è il mio lavoro di tesi, ho tutta l'intenzione di imparare un linguaggio nuovo ma non voglio metterci un secolo.
Entro i primi di agosto devo decidere assolutamente che linguaggio utilizzare per il lavoro che devo fare, quindi i vostri pareri mi sono di enorme aiuto |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Dec 2006
Messaggi: 3808
|
devi decidere entro Agosto e quanto tempo hai dopo per fare le robe che devi fare ?
è difficile consigliarti qualcosa se non hai neanche una preferenza per un linguaggio. Ci sono i cosidetti "RAD tools" che non sono altro che IDE usati per progettare GUI, una GUI per fare una GUI, e tipicamente crei nuovi widget, editi quelli esistenti, crei un nuovo layout et voilà la tua GUI è pronta; solitamente la salvi come un XML o formato equivalente e a parte programmi la logica del tuo software e carichi il tuo XML da li e sempre dal codice sorgente colleghi i widget alla logica del tuo programma. Tipicamente ogni framework per GUI ha 1 suo RAD di riferimento, per Qt è Qt Designer ( già parte dell'IDE ufficiale del progetto, Qt Creator quindi non è un programma separato ), per le GTK+ è Glade e per Swing e gli altri troverai sicuramente altro, specialmente per Eclipse ( un altro IDE generico per tutti i linguaggi, molto popolare nella community Java ). Adesso il punto è, Con Swing usi Java, con Qt usi C++, con le GTK usi C ( potresti anche integrare altri linguaggi ma senza sapere il C non fai un passo con le GTK ) e con altri framework userai altro . il C è il padre di tutti i linguaggi, Java ha un mare di documentazione e un passato da linguaggio popolare e molto usato, probabilmente uno dei più facile da gestire all'inizio, C++ richiede una espansione delle tue conoscenze del C ed è tipicamente più complesso, in pochi mesi non so quanto tu possa diventare mediamente skillato su C e C++, con tutto l'aiuto che i RAD e le GUI ti possono dare ma alla fine la logica del programma la scrivi tu, i pezzi li devi mettere insieme tu. Io direi di considerare solo 2 opzioni e quelle che hanno più documentazione e risorse disponibili online, vale a dire Java e Qt, datti 3-4 giorni e dedica metà del tempo a Java e metà a Qt e vedi che riesci a tirare fuori come primo esempio e quanto è difficile per te. PS a questo punto non conta molto, ma a scanso di equivoci dovresti specificare la tua piattaforma e la piattaforma per la quale intendi sviluppare, sia Java che Qt sono multipiattaforma comunque. |
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Nov 2010
Città: Londra
Messaggi: 620
|
"potrebbe" essere la cosa più semplice se mastichi un pò di javascript e html
https://github.com/rogerwang/node-webkit |
![]() |
![]() |
![]() |
#13 |
Member
Iscritto dal: Jul 2014
Messaggi: 32
|
Ok, in C, la parte relativa al funzionamento del software che dovrei fare credo di saperla fare...ho avuto a che fare con lettura e scrittura su file, ricerca e cose cosi. Il problema è la creazione dell'interfaccia grafica in C , che a quanto mi hanno detto è un bel pò complicata
|
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Ho sviluppato interfacce grafiche con Python usando IronPython e WPF, ma:
- è limitato a Windows (usando .NET); - devi perderci un po' di tempo all'inizio per capire come gestire GUI da IronPython (VisualStudio supporta direttamente soltanto alcuni linguaggi, e non Python purtroppo). Viste le tue esigenze, ti consiglio di provare l'accoppiata Python + PySide. Python ti consentirà di scrivere molto velocemente codice senza perderti in dettagli di più basso livello; ed è molto semplice da imparare. Gestire file di testo è una banalità, e per i PDF esistono diverse librerie a cui potresti appoggiarti. PySide è un wrapper del framework Qt, che mette a disposizione QtDesigner per disegnare interfacce grafiche, generando appositi file per molti linguaggi di programmazione (incluso Python). Qt è interessante perché integra WebKit, che è un engine web, per cui puoi appoggiarti a Google Maps o Bing Maps per gestire le mappe.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
![]() |
![]() |
![]() |
#15 |
Member
Iscritto dal: Jul 2014
Messaggi: 32
|
Vi ringrazio tutti.
A questo punto mi viene da chiedervi: cosa hanno in comune Python e Java ? Ultima modifica di roquentin3 : 30-07-2014 alle 10:46. |
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Nov 2010
Città: Londra
Messaggi: 620
|
|
![]() |
![]() |
![]() |
#17 |
Member
Iscritto dal: Jul 2014
Messaggi: 32
|
E nella sintassi, secondo voi, quale dei due è più vicino al C ?
|
![]() |
![]() |
![]() |
#18 |
Bannato
Iscritto dal: Sep 2013
Messaggi: 333
|
|
![]() |
![]() |
![]() |
#19 | |
Senior Member
Iscritto dal: Apr 2006
Messaggi: 22462
|
Quote:
Ma bisogna fare dei distinguo: python, in una maniera o nell'altra, non ti costringe forzatamente a usare gli oggetti (anche se ritengo difficile usare un qualsiasi framework moderno senza avere proprio la benchè minima idea di cosa un oggetto sia), java si. Tanto per capirsi, in python puoi anche scrivere un programma con approccio strutturato in maniera abbastanza naturale, in java è (molto) meno immediato. Per come la vedo io, vadi di python. E te lo dico da javista
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza Ultima modifica di wizard1993 : 30-07-2014 alle 11:23. |
|
![]() |
![]() |
![]() |
#20 |
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
Sicuramente java.
Comunque java è un linguaggio completamente ad oggetti, mentre il c è solo strutturato, per cui nel primo troverai delle keyword e degli operatori che non hanno un corrispondente nel secondo. Il c++ invece estende il c, aggiungendo alla programmazione strutturata quella ad oggetti (la prima non è assente come in java), tuttavia java e c++ hanno preso due strade molto diverse, pur essendo entrambi ad oggetti. Quanto segue è una mera approssimazione, da non prendere alla lettera. In termini di somiglianza di keyword e operatori potremmo dire che il c è un sottoinsieme di java, ma non il contrario, e tra java e c++ esiste solo un'intersezione. In java inoltre è completamente assente il concetto di puntatore. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:57.