Vai al contenuto

Java oppure C?


Messaggi raccomandati

Buongiorno a tutti,

scrivo perchè vorrei impararmi seriamente un linguaggio di programmazione e sono indeciso tra Java e C. Premetto che programmo già qualcosina in visual basic.

Il mio scopo è riuscire a fare programmini per PC (windows) e per iphone; niente di particolare, cominciando da cose semplici.

Sono indeciso perchè a quanto so il C è uno dei linguaggi più diffusi e su cui molti linguaggi si basano, ma è datato e non è ad oggetti, menntre ora mi sembra il java vada per la maggiore.

Cosa ne pensate, avete qualceh consiglio da darmi?

Link al commento
Condividi su altri siti

una infarinatura di c fa sempre bene, però la programmazione ad oggetti è quella che "tira" di più al momento, se vuoi fare qualcosa per iphone ti serve object-c e quindi serve una bella infarinatura di c (secondo me); java secondo me è da sapere

iMac G5 1.8 (vecchio amore ghghgh) affiancato da MacBook ultima versione!!!

iPhone 3G 8g, non male non male ^^

Link al commento
Condividi su altri siti

Ospite miky4e
una infarinatura di c fa sempre bene, però la programmazione ad oggetti è quella che "tira" di più al momento, se vuoi fare qualcosa per iphone ti serve object-c e quindi serve una bella infarinatura di c (secondo me); java secondo me è da sapere

Tira? Ma cosa significa?

Tu devi:

a) imparare a programmare, ciò implica astrarre i problemi e risolverli con algoritmi

:dance: studiarti un qualsiasi linguaggio di programmazione; alla fine sono tutti uguali, pochi introducono novità (oggi giorno).

Io partirei con il C :fiorellino:

Link al commento
Condividi su altri siti

Secondo me come prima cosa dovresti decidere cosa vuoi fare: programmare per PC windows o per iPhone?

Perché sono due cose totalmente differenti, a partire dal linguaggio fino alle librerie.

Se vuoi programmare per iPhone devi impararti l'Obj-C e le librerie Cocoa Touch.

Poi se per fare questo vuoi prima passare per C, Java o quello che ti pare, è un altro conto.

Per windows non so consigliarti, probabilmente andranno bene sia Java che C (ma in quel caso trovati un altro forum. :ghghgh:).

Marco - Gallery

MacBook Nero 2.2 GHz Intel Core 2 Duo - 4 GB RAM - Mac OS X 10.6 Snow Leopard

Link al commento
Condividi su altri siti

Tira? Ma cosa significa?

Tu devi:

a) imparare a programmare, ciò implica astrarre i problemi e risolverli con algoritmi

:ghghgh: studiarti un qualsiasi linguaggio di programmazione; alla fine sono tutti uguali, pochi introducono novità (oggi giorno).

Io partirei con il C :ghghgh:

"tira" cosa significa? semplicemente che è quella più in voga al momento!!!! cerca di astrarre se non capisci hihi

i linguaggi di programmazione non sono tutti uguali ma proprio per nulla anzi assolutamente per nulla! prova a dare in mano a uno che conosce a menadito un qualsiasi linguaggio procedurale un bel linguaggio tipo caml!!!! poi vediamo se sono tutti uguali i linguaggi (o i tipi di programmazione)!

partire col c è una ottima idea ma fermarsi a quello è una cagata si parte col c e si deve arrivare ad un paradigma ad oggetti quasi per forza ormai! (ahhh scusa ma i linguaggi sono tutti uguali!)

iMac G5 1.8 (vecchio amore ghghgh) affiancato da MacBook ultima versione!!!

iPhone 3G 8g, non male non male ^^

Link al commento
Condividi su altri siti

Secondo me come prima cosa dovresti decidere cosa vuoi fare: programmare per PC windows o per iPhone?

Perché sono due cose totalmente differenti, a partire dal linguaggio fino alle librerie.

Se vuoi programmare per iPhone devi impararti l'Obj-C e le librerie Cocoa Touch.

Poi se per fare questo vuoi prima passare per C, Java o quello che ti pare, è un altro conto.

Per windows non so consigliarti, probabilmente andranno bene sia Java che C (ma in quel caso trovati un altro forum. :ghghgh:).

per windows la scelta è facile ormai: si passa dal c e si arriva al c# (che è come sintassi decisamente simile a java) senza dimenticarsi xml come markup che sennò passare allo xaml diventa un casino

iMac G5 1.8 (vecchio amore ghghgh) affiancato da MacBook ultima versione!!!

iPhone 3G 8g, non male non male ^^

Link al commento
Condividi su altri siti

Direi di iniziare con le basi del C per poi passare subito al C++ (col paradigma ad oggetti).

Il Java è un buon linguaggio, ma secondo me non è abbastanza "puro" come il C/C++; ha solo il vantaggio della portabilità delle applicazioni perché serve solo l'interprete Java installato.

Quindi in definitiva:

1) Le basi del C.

2) C++.

3) API Win32.

4) Librerie DirectX (eventualmente).

Se poi diventi bravo e sei interessato allo sviluppo d Giochi per Windows e X-BOX passa al C# guardandoti le XNA.

Per quanto riguarda l'iPhone non ti so dire...

MacBook Pro 15" - 2,53 GHz Core 2 Duo

Link al commento
Condividi su altri siti

Direi di iniziare con le basi del C per poi passare subito al C++ (col paradigma ad oggetti).

Il Java è un buon linguaggio, ma secondo me non è abbastanza "puro" come il C/C++; ha solo il vantaggio della portabilità delle applicazioni perché serve solo l'interprete Java installato.

Quindi in definitiva:

1) Le basi del C.

2) C++.

3) API Win32.

4) Librerie DirectX (eventualmente).

Se poi diventi bravo e sei interessato allo sviluppo d Giochi per Windows e X-BOX passa al C# guardandoti le XNA.

Per quanto riguarda l'iPhone non ti so dire...

ti riferisci solo alla programamzione su windows vero?

iMac G5 1.8 (vecchio amore ghghgh) affiancato da MacBook ultima versione!!!

iPhone 3G 8g, non male non male ^^

Link al commento
Condividi su altri siti

Ospite miky4e
"tira" cosa significa? semplicemente che è quella più in voga al momento!!!! cerca di astrarre se non capisci hihi

i linguaggi di programmazione non sono tutti uguali ma proprio per nulla anzi assolutamente per nulla! prova a dare in mano a uno che conosce a menadito un qualsiasi linguaggio procedurale un bel linguaggio tipo caml!!!! poi vediamo se sono tutti uguali i linguaggi (o i tipi di programmazione)!

partire col c è una ottima idea ma fermarsi a quello è una cagata si parte col c e si deve arrivare ad un paradigma ad oggetti quasi per forza ormai! (ahhh scusa ma i linguaggi sono tutti uguali!)

Forse non hai colto l'astrazione del mio intervento; i linguaggi di programmazione sono tutti UGUALI: variabili, puntatori, liste dinamiche, strutture iterative, strutture sequenziali, funzioni. Punto.

Finiscono qui; cambia la sintassi, il modo di manipolare su essa, ma è tutto uguale; alcuni introducono le famosi Classi, poi istanziate in Oggetti, la cosi detta OOP. Ma non sono altro che delle classiche funzioni con qualche particolarità in più (incapsulmaneto, overloading, ereditarietà, binding, ecc).

Studiare bene il C, ANSI C, è la via migliore; fermarsi a lui è una cagata? E perché? Io che sviluppo Firmware a basso livello per apparecchiature Hardware, mi fermo al C e scendo di più... linguaggi assemblatori.

Tu che sviluppi per Mac Os, Windows, o comunque un OS ad ambiente grafico, sicuramente procedere verso linguaggi più completi e adatti a tale esigenza è la soluzione migliore: quali? C++, Objective-C, Java, Python, ecc..? La scelta spetta sempre al programmatore, in base alle sue esigenze (rapidità di sviluppo o prestazioni?) e in base ai gusti personali.

Scegliere un linguaggio perché è quello più in voga al momento... :ghghgh: :ghghgh:

Link al commento
Condividi su altri siti

Ospite miky4e
ti riferisci solo alla programamzione su windows vero?

Penso sia palese.

Comunque il C#*è una grandissima cagata... a quel punto meglio Java e non dipendo da .NET.

Su Windows va molto il C++ .NET :ghghgh::ciao:

Link al commento
Condividi su altri siti

Se devi programmare su iphone c e poi objC per imparare a programmare su mac poi impari il cocoa touch ....

When I’m Done, This Night Will Fear Me

Link al commento
Condividi su altri siti

Forse non hai colto l'astrazione del mio intervento; i linguaggi di programmazione sono tutti UGUALI: variabili, puntatori, liste dinamiche, strutture iterative, strutture sequenziali, funzioni. Punto.

Finiscono qui; cambia la sintassi, il modo di manipolare su essa, ma è tutto uguale; alcuni introducono le famosi Classi, poi istanziate in Oggetti, la cosi detta OOP. Ma non sono altro che delle classiche funzioni con qualche particolarità in più (incapsulmaneto, overloading, ereditarietà, binding, ecc).

Studiare bene il C, ANSI C, è la via migliore; fermarsi a lui è una cagata? E perché? Io che sviluppo Firmware a basso livello per apparecchiature Hardware, mi fermo al C e scendo di più... linguaggi assemblatori.

Tu che sviluppi per Mac Os, Windows, o comunque un OS ad ambiente grafico, sicuramente procedere verso linguaggi più completi e adatti a tale esigenza è la soluzione migliore: quali? C++, Objective-C, Java, Python, ecc..? La scelta spetta sempre al programmatore, in base alle sue esigenze (rapidità di sviluppo o prestazioni?) e in base ai gusti personali.

Scegliere un linguaggio perché è quello più in voga al momento... :ghghgh: :ghghgh:

tutto uguale umh ma proprio NO! tu hai elencato delle particolarità che rendono i linguaggio totalmente differenti tra loro anzi che tutti uguali! quello che volevo dire io è che di solito si sceglie il linguaggio che da maggiori possibilità e in questo momento i linguaggi oop sono quelli che ne danno di più. la scelta di un linguaggio non dipende sempre dal programmatore, di solito dipende da cosa si vuole fare: una app per iphone? object-c !una app per un htc? .net framework mobile (quindi i suoi linguaggi supportati)! una app business? .net framework con o senza i nuovi wpf e wcf (purtroppo non sono molto diffuse su altre piattaforme che non siano di mamma ms, si sente infatti la mancanza per mac).

iMac G5 1.8 (vecchio amore ghghgh) affiancato da MacBook ultima versione!!!

iPhone 3G 8g, non male non male ^^

Link al commento
Condividi su altri siti

ti riferisci solo alla programamzione su windows vero?

Ovviamente -.-" (lo ha specificato lui Windows, io gli ho risposto di conseguenza).

MacBook Pro 15" - 2,53 GHz Core 2 Duo

Link al commento
Condividi su altri siti

Penso sia palese.

Comunque il C#*è una grandissima cagata... a quel punto meglio Java e non dipendo da .NET.

Su Windows va molto il C++ .NET :ghghgh::ciao:

bah sono gusti io per esempio trovo parecchio più comodo c# rispetto al c++ ma sono gusti personali senza contare la difficoltà di programmare con wpf e wcf in c++ ^^

ps: con java dipendi cmq dalla macchina virtuale java ^^ certo il fatto che sista per tutte le piattaforme è una cosa figherrima ^^

iMac G5 1.8 (vecchio amore ghghgh) affiancato da MacBook ultima versione!!!

iPhone 3G 8g, non male non male ^^

Link al commento
Condividi su altri siti

Ospite miky4e
tutto uguale umh ma proprio NO! tu hai elencato delle particolarità che rendono i linguaggio totalmente differenti tra loro anzi che tutti uguali! quello che volevo dire io è che di solito si sceglie il linguaggio che da maggiori possibilità e in questo momento i linguaggi oop sono quelli che ne danno di più. la scelta di un linguaggio non dipende sempre dal programmatore, di solito dipende da cosa si vuole fare: una app per iphone? object-c !una app per un htc? .net framework mobile (quindi i suoi linguaggi supportati)! una app business? .net framework con o senza i nuovi wpf e wcf (purtroppo non sono molto diffuse su altre piattaforme che non siano di mamma ms, si sente infatti la mancanza per mac).

Mono non le integra ancora? :ghghgh:, intendo le wpf e le wcf.

Comunque tornando al discorso delle particolarità elencate, esponi la tesi del perché gli rendono diversi? In cosa? Sintassi? Beh, penso sia normale.

L'algoritmo per l'esecuzione di un ciclo for è il medesimo in C, come è il medesimo in altri linguaggi di programmazione, che derivano dal C (Obj-C, C++, Java, Python, ecc..)

Il C è la base di tutto.

:ghghgh:

Link al commento
Condividi su altri siti

Ospite miky4e
bah sono gusti io per esempio trovo parecchio più comodo c# rispetto al c++ ma sono gusti personali senza contare la difficoltà di programmare con wpf e wcf in c++ ^^

ps: con java dipendi cmq dalla macchina virtuale java ^^ certo il fatto che sista per tutte le piattaforme è una cosa figherrima ^^

E' il vantaggio di Java; anche con C#*dipendi da una macchina virtuale, che esiste solo per MS e trasportata poi da Novell multipiattaforma (con che compatibilità?).

Io ad esempio trovo C# identico Java nella sintassi (forse piu semplice) ma preferisco il C e il C++, come sintassi (escludendo il famoso std::cout).

Per il resto come dici tu, sono gusti.

Non ho mai provato a manipolare le wpf in C++, solo in C# e VB .NET :ghghgh::ghghgh::ghghgh:

Link al commento
Condividi su altri siti

Mono non le integra ancora? :ghghgh:, intendo le wpf e le wcf.

Comunque tornando al discorso delle particolarità elencate, esponi la tesi del perché gli rendono diversi? In cosa? Sintassi? Beh, penso sia normale.

L'algoritmo per l'esecuzione di un ciclo for è il medesimo in C, come è il medesimo in altri linguaggi di programmazione, che derivano dal C (Obj-C, C++, Java, Python, ecc..)

Il C è la base di tutto.

:ghghgh:

hai mai provato a vedere come gesticono in maniera differente stack e heap linguaggi diversi? con le "particolarità" che hai elencato te ce ne sono ancora di +

iMac G5 1.8 (vecchio amore ghghgh) affiancato da MacBook ultima versione!!!

iPhone 3G 8g, non male non male ^^

Link al commento
Condividi su altri siti

Ospite miky4e
hai mai provato a vedere come gesticono in maniera differente stack e heap linguaggi diversi? con le "particolarità" che hai elencato te ce ne sono ancora di +

Certamente, ma io sto parlando di approcio al linguaggio, non al calcolatore :ghghgh:

Link al commento
Condividi su altri siti

Certamente, ma io sto parlando di approcio al linguaggio, non al calcolatore :ghghgh:

anche su quello c'è enorme differenze non mi puoi dire che fra eredetarietà singola e multipla non cambi nulla, dai le differenze sono immense

ma poi te lo ho detto passa dal c al caml e poi dimmi se tutti i linguaggi sono simili

iMac G5 1.8 (vecchio amore ghghgh) affiancato da MacBook ultima versione!!!

iPhone 3G 8g, non male non male ^^

Link al commento
Condividi su altri siti

Ospite miky4e
anche su quello c'è enorme differenze non mi puoi dire che fra eredetarietà singola e multipla non cambi nulla, dai le differenze sono immense

ma poi te lo ho detto passa dal c al caml e poi dimmi se tutti i linguaggi sono simili

Non ci capiamo :ghghgh::rolleyes:

Ragiona da programmatore, non da calcolatore; astrai la visione di un linguaggio di programmazione, astrai ancora la sua visione nel calcolatore e i costrutti sono quelli.

Non ho detto che tra un costrutto e l'altro non ci siano differenze, ho detto che i costrutti dei linguaggi di programmazione sono quelli li e basta; e più ti estrai, meno diventano e più sono semplici.

Caml fa parte della famiglia dei ML, non lo considerei molto. :ghghgh:

Link al commento
Condividi su altri siti

Non ci capiamo :ghghgh::rolleyes:

Ragiona da programmatore, non da calcolatore; astrai la visione di un linguaggio di programmazione, astrai ancora la sua visione nel calcolatore e i costrutti sono quelli.

Non ho detto che tra un costrutto e l'altro non ci siano differenze, ho detto che i costrutti dei linguaggi di programmazione sono quelli li e basta; e più ti estrai, meno diventano e più sono semplici.

Caml fa parte della famiglia dei ML, non lo considerei molto. :ghghgh:

ma guarda che non è così, è così solo per derivati dal c non per gli altri, non cosiderare il paradigma funzionale è bruttissimo perchè sono parecchio usati

cmq un programmaore deve anche ragionare badando al calcolatore ^^

iMac G5 1.8 (vecchio amore ghghgh) affiancato da MacBook ultima versione!!!

iPhone 3G 8g, non male non male ^^

Link al commento
Condividi su altri siti

Ospite miky4e
ma guarda che non è così, è così solo per derivati dal c non per gli altri, non cosiderare il paradigma funzionale è bruttissimo perchè sono parecchio usati

cmq un programmaore deve anche ragionare badando al calcolatore ^^

Verissimo; se mi parli di linguaggi NON derivati dal C, ti do ragione, abbiamo un modo affrontare il concetto di problema/algoritmo/risoluzione diverso.

Io mi sono limitato sempre a sostenere questa tesi per tutti i linguaggi derivati dal C e basta :ghghgh:

Link al commento
Condividi su altri siti

Verissimo; se mi parli di linguaggi NON derivati dal C, ti do ragione, abbiamo un modo affrontare il concetto di problema/algoritmo/risoluzione diverso.

Io mi sono limitato sempre a sostenere questa tesi per tutti i linguaggi derivati dal C e basta :ghghgh:

si ma hai sempre detto "tutti i linguaggi sono uguali" senza badare veramente a tutti i linguaggi e senza contare che in primis non lo sono nè per sintassi nè per gestione del calcolatore, poi è ovvio che ci siano similitudini fra linguaggi appartenenti allo stesso paradigma ma non per questo sono uguali

iMac G5 1.8 (vecchio amore ghghgh) affiancato da MacBook ultima versione!!!

iPhone 3G 8g, non male non male ^^

Link al commento
Condividi su altri siti

Miky è vero che i derivati del C sono abbastanza simili al C, però tu stai sminuendo troppo i vantaggi ed i cambiamenti che ha portato la programmazione OOP.

Te ne dico solo uno, che da solo basta a dimostrare l'enorme differenza: Binding dinamico e di conseguenza il polimorfismo.

Questa, come la definisci tu, piccola particolarità, può cambiare totalmente il modo di programmare di un programmatore, ed il suo approccio alla programmazione.

La tipizzazione degli oggetti a run-time ti permette di fare cose che difficilmente potresti riuscire a fare col C.

La teoria è quando si sa tutto e niente funziona. La pratica è quando tutto funziona e nessuno sa il perché. Noi abbiamo messo insieme la teoria e la pratica: non c'è niente che funzioni... e nessuno sa il perché!

Link al commento
Condividi su altri siti

Ospite miky4e
Miky è vero che i derivati del C sono abbastanza simili al C, però tu stai sminuendo troppo i vantaggi ed i cambiamenti che ha portato la programmazione OOP.

Te ne dico solo uno, che da solo basta a dimostrare l'enorme differenza: Binding dinamico e di conseguenza il polimorfismo.

Questa, come la definisci tu, piccola particolarità, può cambiare totalmente il modo di programmare di un programmatore, ed il suo approccio alla programmazione.

La tipizzazione degli oggetti a run-time ti permette di fare cose che difficilmente potresti riuscire a fare col C.

Ma sono pienamente d'accordo con voi :)

La OOP è una visione assolutamente astratta della programmazione procedurale e porta con se innumervoli vantaggi; quello che dico io che i linguaggi di programmazione (che non siano linguaggi ML) hanno più o meno tutti gli stessi costrutti.

Una volta che tu, sai scrivere un algoritmo in C, lo trasformi senza problemi in C++, Java, ecc.

Link al commento
Condividi su altri siti

Grazie dei molti consigli, ho deciso quindi che inizierò con C (so che c'è un bel manuale di Deitel e Deitel). Poi se la sintassi è simile da li posso partire o con il Java o con objective-C a seconda di quello che voglio fare:)

Qualcuno di voi per caso ha già letto il manuale "C corso completo di programmazione" di Deitel e Deitel? cosa ne pensate?

Link al commento
Condividi su altri siti

Ah ok. Per quanto riguarda i costrutti hai ragione, quelli vengono ereditati dalla programmazione strutturata, e sono uguali in moltissimi linguaggi di programmazione, quindi è vero che se li sai usare in uno li saprai usare in molti altri.

La teoria è quando si sa tutto e niente funziona. La pratica è quando tutto funziona e nessuno sa il perché. Noi abbiamo messo insieme la teoria e la pratica: non c'è niente che funzioni... e nessuno sa il perché!

Link al commento
Condividi su altri siti

Per cominciare è perfetto.

Io anni fa quando ho cominciato ho letto proprio questo libro

La teoria è quando si sa tutto e niente funziona. La pratica è quando tutto funziona e nessuno sa il perché. Noi abbiamo messo insieme la teoria e la pratica: non c'è niente che funzioni... e nessuno sa il perché!

Link al commento
Condividi su altri siti

quoto anche io il libro mi ci trovai parecchio bene; se vuoi per il java ti posso consigliare il "thinking in java" anche con quello mi ci trovai molto bene

iMac G5 1.8 (vecchio amore ghghgh) affiancato da MacBook ultima versione!!!

iPhone 3G 8g, non male non male ^^

Link al commento
Condividi su altri siti

Ospite miky4e
quoto anche io il libro mi ci trovai parecchio bene; se vuoi per il java ti posso consigliare il "thinking in java" anche con quello mi ci trovai molto bene

Vero; il libro di deitel è ottimo.

Se vuoi ne ho qui uno usato, te lo vendo via, a metà prezzo.

:D

Per quanto riguarda Java, anche Java Mattone dopo Mattone, che è gratis (anche se non è semplicissimo come libro); per C++ (se vorrai c'è Thinking in C++, per obj-c, se mastichi l 'inglese andrei sui libri di apple :DD )

Altrimenti, diventare un Xcoder, versione italiana tradotta da XcodeItalia ;)

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...