()
Newbie
Messaggi:
Iscritto:
|
Questo topic è stato chiuso dal moderatore Ciao ragazzi ho un dilemma da risolvere... Conosco bene il C e vorrei passare ad uno di questi due linguaggi... I miei obbiettivi sono:
1 - Portabilità
2 - Gestire liste,code,pile senza ricrearle ogni volta
3 - Creare applicazioni efficienti
Mi potreste dare un consiglio? Grazie in anticipo per tutte le risposte...
|
|
LittleHacker (Member)
Guru
Messaggi: 1033
Iscritto: 28/04/2009
|
Postato originariamente da Darkness94:
Ciao ragazzi ho un dilemma da risolvere... Conosco bene il C e vorrei passare ad uno di questi due linguaggi... I miei obbiettivi sono:
1 - Portabilità
2 - Gestire liste,code,pile senza ricrearle ogni volta
3 - Creare applicazioni efficienti
Mi potreste dare un consiglio? Grazie in anticipo per tutte le risposte... |
Beh io sto studiando (autodidatta) Java e come portabilità è 99% se non 100% invece il C++ un pò meno vabbè anche lui è portabile però se ad esempio utilizzi #include <windows.h> o #include <conio.h> e molti altri la tua applicazione non sarà portabile su linux e mac...vabbè che poi ci sono i sostituti ad esempio per linux c'è ncurses e invece per windows.h puoi utilizzare wine che include l'header windows.h però devi riscriverti l'applicazione in quei punti dove utilizzi gli header quindi per me è molto meglio che ti impari il Java...Correggetemi se ho sbagliato! |
|
pierotofy (Admin)
Guru^2
Messaggi: 6230
Iscritto: 04/12/2003
|
Postato originariamente da Darkness94:
1 - Portabilità
|
Meglio Java.
2 - Gestire liste,code,pile senza ricrearle ogni volta
|
Entrambi offrono queste strutture nella libreria standard.
3 - Creare applicazioni efficienti
|
Troppo vago... efficiente in che modo? Se parli di velocità di esecuzione a runtime, entrambi sono veloci (il C++ un po' di più).
Secondo me dovresti andare su Java solo per il fatto che è un linguaggio più recente ed è richiesto di più nel mondo del lavoro.
|
|
TheKaneB (Member)
Guru^2
Messaggi: 1792
Iscritto: 26/06/2009
|
La prima fonte di "efficienza" sta negli algoritmi che scegli.
Un quicksort scritto in perl alla lunga sicuramente straccia un bubble sort in assembly.
Anche sul discorso "portabilità" non ci sono scusanti. A scrivere portabile si impara, e si può fare in qualunque linguaggio. Ad esempio ho scritto un engine per videogiochi che gira tranquillamente su 4 architetture (ARM, PowerPC, MIPS e naturalmente x86), e su N sistemi operativi (Windows, Linux, Symbian, Maemo, Mac OS X, MorphOS, AROS, AmigaOS, FreeBSD, e potrei continuare...)... ah, chiaramente l'ho scritto in C++ perchè il Java non è presente su tutte queste piattaforme, quindi paradossalmente il C++ garantisce maggiore portabilità.
Terzo punto, non hai considerato la cosa più importante: il programma da creare.
Un linguaggio di programmazione è uno strumento di lavoro, e per fare un certo lavoro ci vuole un certo strumento. Non mi aspetto di poter fare dei biscotti usando una trivella petrolifera, nè tantomeno posso immaginare di programmare un gestionale per un albergo usando il Fortran77.
Quando avrai chiari questi concetti, capirai che la domanda è mal posta e che in fin dei conti la vera domanda che dovresti farti è "cosa voglio programmare?". Una volta chiaro questo, saprai quali sono gli strumenti che devi imparare ad usare
|
|
HeDo (Founder Member)
Guru^2
Messaggi: 2765
Iscritto: 21/09/2007
|
Postato originariamente da pierotofy:
Troppo vago... efficiente in che modo? Se parli di velocità di esecuzione a runtime, entrambi sono veloci (il C++ un po' di più).
|
spero che tu stia scherzando, tra java e C++ c'è un abisso
Postato originariamente da LittleHacker:
Beh io sto studiando (autodidatta) Java e come portabilità è 99% se non 100% invece il C++ un pò meno vabbè anche lui è portabile però se ad esempio utilizzi #include <windows.h> o #include <conio.h> e molti altri la tua applicazione non sarà portabile su linux e mac...vabbè che poi ci sono i sostituti ad esempio per linux c'è ncurses e invece per windows.h puoi utilizzare wine che include l'header windows.h però devi riscriverti l'applicazione in quei punti dove utilizzi gli header quindi per me è molto meglio che ti impari il Java...Correggetemi se ho sbagliato!
|
si stai sbagliando, non tanto per quello che hai detto, ma per il fatto che confondi i due "tipi" di portabilità. In C++ devi cmq ricompilare per avere la portabilità, in java no perchè si basa su una virtual machine astratta dal SO.
e cmq qui tutti si stanno dimenticando .NET: ormai il progetto mono per linux ha raggiunto una maturità non indifferente e sotto windows è il miglior ambiente di sviluppo esistente. Perchè perdere tempo con java? un linguaggio che ha ormai gli anni contati?
|
|
()
Newbie
Messaggi:
Iscritto:
|
Con efficiente parlavo di velocità di esecuzione ... inoltre io voglio scrivere codice sorgente open source per gli altri questi sono i miei obbiettivi
|
|
pierotofy (Admin)
Guru^2
Messaggi: 6230
Iscritto: 04/12/2003
|
Postato originariamente da HeDo:
spero che tu stia scherzando, tra java e C++ c'è un abisso
|
Aspettavo un commento del genere arrivare da te.
Nota che quando mi riferisco alla velocità di esecuzione, non tengo in considerazione il tempo che ci mette la VM a compilare il codice. Una volta compilato in memoria, il codice (se costruito in maniera intelligente) raggiunge velocità molto vicine al C++.
Leggevo che in alcuni casi è addirittura più veloce (a seconda di come viene compilato il codice C++ equivalente). Il JIT permette di identificare a runtime la piattaforma su cui viene eseguito e permette di sfruttare al massimo le caratteristiche dell'hardware. Questo è più difficile da fare in C++ (perchè la compilazione è statica).
Ad ogni modo, non comincierò la solita battaglia tra linguaggi. Preferisco pure io il C++ se devo fare un programma molto veloce perchè agli utenti alla fine non interessano tutte queste cose, gli interessa quanto veloce è un programma, e il JIT sicuramente aggiunge un bel rallentamento che l'utente riesce a sentire.
|
|
()
Newbie
Messaggi:
Iscritto:
|
quindi piero? Cosa scelgo? Sono ancora molto indeciso ...
|
|
HeDo (Founder Member)
Guru^2
Messaggi: 2765
Iscritto: 21/09/2007
|
Postato originariamente da pierotofy:
Aspettavo un commento del genere arrivare da te.
Nota che quando mi riferisco alla velocità di esecuzione, non tengo in considerazione il tempo che ci mette la VM a compilare il codice. Una volta compilato in memoria, il codice (se costruito in maniera intelligente) raggiunge velocità molto vicine al C++.
Leggevo che in alcuni casi è addirittura più veloce (a seconda di come viene compilato il codice C++ equivalente). Il JIT permette di identificare a runtime la piattaforma su cui viene eseguito e permette di sfruttare al massimo le caratteristiche dell'hardware. Questo è più difficile da fare in C++ (perchè la compilazione è statica).
Ad ogni modo, non comincierò la solita battaglia tra linguaggi. Preferisco pure io il C++ se devo fare un programma molto veloce perchè agli utenti alla fine non interessano tutte queste cose, gli interessa quanto veloce è un programma, e il JIT sicuramente aggiunge un bel rallentamento che l'utente riesce a sentire. |
diciamo che se non si sta attenti in Java lagga perfino la GUI
Cosa scelgo? Sono ancora molto indeciso ...
|
C#
|
|