Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 14-11-2005, 23:54   #1
shang84
Senior Member
 
Iscritto dal: Apr 2005
Città: <-|-|-*|*-|-|->
Messaggi: 347
[C++ Vs JAVA] Come programmare in modo veloce/agile anche C++?

Ciao a tutti,
ultimamente sto lavorando ad un progetto in C++... ho scelto questo linguaggio in quanto è enormemente più efficente di java in termini di tempi di esecuzione.. lavoro con linux usando emacs, g++ e Makefile (..anche se quasi sicuramente è più comodo usare C++Builder o DevC++ ).

il punto è questo, quando mi è capitato invece di dover fare progetti in java, nonostante allora ero proprio alle prime armi col linguaggio e con la programmazione OO, ho usato JBuilderX come tool e mi sono trovato benissimo... questo perchè oltre all'uso di JBuilderX Java dispone delle API.

Perchè Java ha le API mentre C++ no? Esiste un modo per ottenere in C++ la stessa praticità-agilità nella programmazione che c'è con Java?

Grazie!
shang84 è offline   Rispondi citando il messaggio o parte di esso
Old 15-11-2005, 01:06   #2
Black imp
Senior Member
 
Iscritto dal: Nov 2000
Città: MILANO
Messaggi: 2662
scusa mi interessa il topic ma non riesco a capire bene il problema: cioè vuoi sapere perchè java prevede come 'standard' tutte le librerie necessarie anche per le finestre mentre C++ no?

beh semplice, perchè c++ deve essere compilato ad hoc per ciascuna piattaforma, e questa usa le sue API con le quali è stata fatta l'interfaccia del SO. quindi è inutile fornire delle api standard: usi quelle fornite dal SO. mentre java, in quanto seminterpretato, e quindi svincolato dalla piattaforma, può fornire delle API sue.

Se programmi sotto linux puoi usare le Qt, sotto windows invece puoi usare le sue API - che casualmente mi sto studiando adesso - importando window.h


ho capito bene dunque?
Black imp è offline   Rispondi citando il messaggio o parte di esso
Old 15-11-2005, 08:40   #3
shang84
Senior Member
 
Iscritto dal: Apr 2005
Città: <-|-|-*|*-|-|->
Messaggi: 347
Si ora ho capito meglio..

come posso usare - scaricare Qt e windows.h per C++? Basta fare un include?
Perdona l'ignoranza....
shang84 è offline   Rispondi citando il messaggio o parte di esso
Old 15-11-2005, 11:52   #4
Black imp
Senior Member
 
Iscritto dal: Nov 2000
Città: MILANO
Messaggi: 2662
Quote:
Originariamente inviato da shang84
Si ora ho capito meglio..

come posso usare - scaricare Qt e windows.h per C++? Basta fare un include?
Perdona l'ignoranza....

sotto windows includi la window.h che a sua volta include una marea di header. ti consiglio un tutorial per windows per le winapi 32 perchè non è proprio immediato fare finestre ecc. se non leggi il meccanismo con cui funziona.

per le qt non le ho mai usate ma se vai sul sito della trolltec - non mi ricordo come si scrive - trovi anche un tutorial o un reference. le qt sono scritte in c++ se non ricordo male. quelle di windows in C invece.
Black imp è offline   Rispondi citando il messaggio o parte di esso
Old 15-11-2005, 13:19   #5
Braccop
Senior Member
 
L'Avatar di Braccop
 
Iscritto dal: Jan 2002
Messaggi: 2690
Quote:
Originariamente inviato da Black imp
Se programmi sotto linux puoi usare le Qt, sotto windows invece puoi usare le sue API - che casualmente mi sto studiando adesso - importando window.h
scusate l'ot, ma hai del materiale sulle api di windows? magari anche sul winsock... perche' io sto cercando ma non trovo nulla
__________________
Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders
Braccop è offline   Rispondi citando il messaggio o parte di esso
Old 15-11-2005, 13:58   #6
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da shang84
Ciao a tutti,
ultimamente sto lavorando ad un progetto in C++... ho scelto questo linguaggio in quanto è enormemente più efficente di java in termini di tempi di esecuzione.. lavoro con linux usando emacs, g++ e Makefile (..anche se quasi sicuramente è più comodo usare C++Builder o DevC++ ).
Stai basando una scelta di design importante come il linguaggio sulla base di considerazioni prestazionali su un sistema che non hai ancora costruito?
Hai un requisito esplicito che ti richiedere un certo vincolo prestazionale?

Altrimenti la tua e' una scelta molto sbagliata.

Quote:
Perchè Java ha le API mentre C++ no? Esiste un modo per ottenere in C++ la stessa praticità-agilità nella programmazione che c'è con Java?

Grazie!
Anche il C++ ha API, in realta' ogni linguaggio ha a disposizione delle API. Il discorso e' da spostarsi sui tool. Esistono tool per C++ tali da ottenere la stessa produttivita' che si ha con linguaggi come C# e Java?
No, non esistono, altrimenti non esisterebbero quei linguaggi

Il C++ e' una brutta bestia e non potrai mai aspettarti la stessa produttivita' di un linguaggio ad alto livello, come non potrai mai aspettarti da un linguaggio ad alto livello le prestazioni che ottieni in C++. Ma le prestazioni sono sempre il fattore meno importante, perche' i vincoli prestazionali sono i piu' facili da rispettare quando e dove necessario.

Perche' pagare i limiti in termini di produttivita' del C++ su tutto il codice, quando i vantaggi prestazionali si godono solo su una minima percentuale del codice stesso mentre nel resto e' del tutto ininfluente?

Io ti consiglio di scrivere tutto in Java/C#, poi, quando hai il sistema funzionante, isolare le parti di codice che hanno bisogno di migliorare le prestazioni a seguito di un profiling attento e, quindi, scrivere solo queste parti in C++, ma non prima di aver cercato ottimizzazioni algoritmiche. Nel 99% dei casi ti accorgerai che non ti servira' neppure usare il C++.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 15-11-2005, 14:35   #7
shang84
Senior Member
 
Iscritto dal: Apr 2005
Città: <-|-|-*|*-|-|->
Messaggi: 347
Arrrgh!!


Merda! Avevo l'impressione di aver sbagliato scelta. Il punto è questo:

ho inziato uno stage in un centro di ricerca dove si studia la proteomica.
Loro utilizzano Perl per il loro sw. Io conoscevo bene Java e abbastanza bene C++. Mi sono detto:"facciamo tutto in C++ in quanto se si deve fare l'analisi della struttura delle proteine i tempi di calcolo sono lunghi con un linguaggio interpretato.. quindi è meglio darsi al C++!" tra l'altro loro mi han detto: "fallo nel linguaggio che vuoi basta che funzioni." E qui arriva il masochismo, ho scelto il C++ con l'illusione fare una cosa più facile rispetto ad usare il Perl che non conoscevo... illusione "condita" anche dall'idea che il C++ è + efficente.

Ora come ora ho scritto circa 1000 righe di codice, non moltissime ma cmq 1000!

Mi consigli di trasportare il tutto sotto Java? o a sto punto è meglio sotto Perl?

....cacchio che cavolata... io avrei continuato a sbattere la testa contro il muro ... pensati che quando mi chiedevano di fare una minima cazzata nel programma ci mettevo una vita perchè dovevo star li ad impararmi le varie librerie del C++....

PS: a livello di crescita personale nell'informatica pensi sia meglio ammettere l'errore e passare ad un altro linguaggio (Java ad esempio) o continuare ad impare le librerie di C++, pur sapendo che ci metto + temp?

Ultima modifica di shang84 : 15-11-2005 alle 14:38.
shang84 è offline   Rispondi citando il messaggio o parte di esso
Old 15-11-2005, 15:00   #8
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
shang84 non puoi dire che uno sia migliore dell'altro se non hai provato...
Se le prestazioni sono un punto cruciale del tuo lavoro è chiaro che tu debba valutare bene la scelta...
Scrivi due esempi.. Uno in C++ ed uno in Java... Implementa un algoritmo tipo di quelli che devi usare nel programma finale...
A quel punto valuta le differenze prestazionali (sfrutta anche tutte le ottimizzazioni messe a disposizione dai compialtori)...

C++ ha comunque a disposizioni molte librerie multipiattaforma...ad esempio wxWidgets...e molte librerie multipiattaforma anche per altro (Boost ad esempio)...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 15-11-2005, 15:14   #9
shang84
Senior Member
 
Iscritto dal: Apr 2005
Città: <-|-|-*|*-|-|->
Messaggi: 347
Ok, dato che finora ho fatto solo la prima parte di 3 del lavoro potrei riscriverla in toto in Java e come dici tu confrontare i tempi di esecuzione...

il dubbio è che non so quanto tempo potrebbe richiedermi l'imparare le librerie che mi consigli.. boh... sono un pò confuso ora come ora

.... il java mi alletta perchè un minimo di interfaccia grafica la so fare, mentre in c++ no... so che è da pigri dire così ma è quel che mi frulla in testa ora.. trovare la via + facile per fare questo programma.. mettersi a studiare le librerie del c++ rischia di farmi "perdere" tempo con i corsi che sto seguendo e prolungare il tempo dello stage che purtroppo è a Milano, città dove ho alloggio solo fino a 1/2 febbraio..
shang84 è offline   Rispondi citando il messaggio o parte di esso
Old 15-11-2005, 15:37   #10
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da shang84
PS: a livello di crescita personale nell'informatica pensi sia meglio ammettere l'errore e passare ad un altro linguaggio (Java ad esempio) o continuare ad impare le librerie di C++, pur sapendo che ci metto + temp?
A livello di crescita personale di consiglio di svolgere il compito imparando un nuovo linguaggio. Perl e' un po' 'na schifezza. Ti consiglio di scriverlo in Python o Ruby (cosi' impari anche qualcosina di nuovo ). Se proprio non ti vuoi staccare da i linguaggi C-like, vai su Java o C#, a seconda che il tuo programma debba essere portabile o solo per Win32. Nel secondo caso con C# ti sara' ancora piu' semplice integrare codice C++ qualora fosse necessario.

Infine, quando tutto funziona, guarda le performance. Se vanno bene hai finito, se e' troppo lento, cronometra le varie parti del programma e isola quelle che spendono piu' tempo e scrivile in C++.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 15-11-2005, 16:33   #11
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da shang84
so che è da pigri dire così ma è quel che mi frulla in testa ora..
La pigrizia e' il migliore amico del programmatore, perche' ti costringe a cercare soluzioni piu' semplici e pragmatiche al problema
fek è offline   Rispondi citando il messaggio o parte di esso
Old 15-11-2005, 17:18   #12
shang84
Senior Member
 
Iscritto dal: Apr 2005
Città: <-|-|-*|*-|-|->
Messaggi: 347
Quote:
Originariamente inviato da fek
A livello di crescita personale di consiglio di svolgere il compito imparando un nuovo linguaggio. Perl e' un po' 'na schifezza. Ti consiglio di scriverlo in Python o Ruby (cosi' impari anche qualcosina di nuovo ). Se proprio non ti vuoi staccare da i linguaggi C-like, vai su Java o C#, a seconda che il tuo programma debba essere portabile o solo per Win32. Nel secondo caso con C# ti sara' ancora piu' semplice integrare codice C++ qualora fosse necessario.

Infine, quando tutto funziona, guarda le performance. Se vanno bene hai finito, se e' troppo lento, cronometra le varie parti del programma e isola quelle che spendono piu' tempo e scrivile in C++.
E' un programma per Win32 e Linux... quindi Java.
La mia amica pigrizia mi dice: "No no! Lascia perdere manuali nuovi.. metti prima in pratica quello che sai già.. e poi +avanti, in un giorno di pioggia, mettiti ad imparare qualcos'altro..."

Quindi mi sa che mi annoto i linguaggi che hai detto nel mio taccuino dei "buoni propositi"
shang84 è offline   Rispondi citando il messaggio o parte di esso
Old 15-11-2005, 17:22   #13
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da shang84
E' un programma per Win32 e Linux... quindi Java.
Se conosci già la programmazione di GUI in Java sicuramente... Al limite se hai problemi di prestazioni puoi implementare in C++ il motore di calcolo e metterlo in una libreria...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 15-11-2005, 17:29   #14
shang84
Senior Member
 
Iscritto dal: Apr 2005
Città: <-|-|-*|*-|-|->
Messaggi: 347
Quote:
Originariamente inviato da cionci
Se conosci già la programmazione di GUI in Java sicuramente... Al limite se hai problemi di prestazioni puoi implementare in C++ il motore di calcolo e metterlo in una libreria...
Grande! Si può davvero includere una libreria "fai da te" fatta in c++ in Java?
Sarebbe davvero la soluzione a tutto!
Scusa la domanda, ma come si fa?

Thnks!
shang84 è offline   Rispondi citando il messaggio o parte di esso
Old 15-11-2005, 17:31   #15
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Cerca JNI... Ovviamente poi te la devi compilare su tutte le piattaforme e ti limita la portabilità...
Intanto comincia a svilupaprlo in Java, se poi ti servono ulteriori prestazioni puoi sempre portare il codice del motore di calcolo in C++ (portare codice che fa operazioni di calcolo e poco più è molto semplice)...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 15-11-2005, 17:37   #16
shang84
Senior Member
 
Iscritto dal: Apr 2005
Città: <-|-|-*|*-|-|->
Messaggi: 347
Ok thanks...

Ultima modifica di shang84 : 15-11-2005 alle 17:42.
shang84 è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2005, 10:40   #17
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Personalmente ti consiglio Python: puoi sviluppare MOLTO velocemente l'applicazione, concentrandoti inizialmente sulla "correttezza" della sua implementazione.

Quando avrai finito, potrai riscrivere le parti critiche in C++. Con Python è particolarmente semplice (anzi, è proprio una sua caratteristica ) estenderne le funzionalità usando il C++.

Qui http://docs.python.org/ext/ext.html c'è una guida che ti spiega come fare, fornendoti anche degli esempi molto semplici da capire.
__________________
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
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2005, 11:18   #18
shang84
Senior Member
 
Iscritto dal: Apr 2005
Città: <-|-|-*|*-|-|->
Messaggi: 347
Thnks!
shang84 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Portatile ASUS Vivobook 14 a 837,95€: AM...
Sparita da anni, AppZapper torna nel 202...
Revolut, la truffa dei dati è partita da...
Geely E2: abbiamo visto dal vivo la regi...
HUAWEI Mate XT 2, importarlo dalla Cina ...
Orpheus, la calza smart che usa la music...
La causa antitrust di Musk contro Apple ...
Nitter archiviato e XCancel sospeso tre ...
CPU RISC-V e GPU AMD insieme: la demo ch...
Un Raspberry Pi 5 e oltre 800 illustrazi...
Una giornata di Claude Code consuma più ...
Apple Watch Series 11 GPS + Cellular 46m...
Meta One: i nuovi abbonamenti riuniscono...
I chip si progettano prima nel mondo vir...
Resident Evil 7 a 30 FPS su uno Snapdrag...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 10:09.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v