View Single Post
Old 02-06-2012, 11:05   #3
Squall 94
Senior Member
 
L'Avatar di Squall 94
 
Iscritto dal: Jul 2010
Città: Teramo
Messaggi: 1298
Una risposta più esaustiva non la potevi dare .
Quote:
Premesso che non è esiste una programmazione "vera" e una programmazione "falsa", esiste la programmazione in generale nel suo senso più ampio.

Se vuoi imparare a risolvere problemi ovvero a creare programmi che fanno ciò che devono fare e lo fanno correttamente forse è meglio usare un linguaggio di più alto livello.

Se vuoi approfondire invece il funzionamento della macchina vai su un linguaggio di basso livello.

A mio modo di vedere sono ENTRAMBI necessari.
Esatto sono entrambi necessari, però mi viene un dubbio, con alto livello intendi il C e basso il Java ?
Cioè alla fine potrei anche solo usare C / C++, poi dipende da quanto voglio andare a fondo nei controlli dei programmi che faccio.
I controlli sono sempre la parte difficile, almeno per me, in C ce ne sono tanti e intendevo questo con programmazione seria, cioè sai perfettamente quello che fa il programma una volta compilato, non c'è quasi nulla di automatico che ti potrebbe portare a qualche errore irrisolvibile.

Quote:
Hai un bel po' di confusione in testa...

Innanzitutto Java non è diverso concettualmente da .NET (tant'è che quest'ultimo ha preso ispirazione da Java), ovvero hai sempre una VM che ti interpreta e compila bytecode.

La sintassi è C-like, esattamente come quella di :NET, anche se quest'ultimo mette a disposizione molti più costrutti e funzionalità rispetto a Java.

Tant'è che anche .NET è portabile, vedi mono.
Questo bytecode per visual studio sicuramente non sarò riproducibile su Linux e Mac OS ( anche se quà non m'interessa affatto ), da come hai detto però c'è mono, non ne ero assolutamente a conoscienza, come le altre cose del resto . In questo caso posso importare un progetto C# ( fatto su Windows ) su Linux e poi ricompilarlo da la per tale sistema ?
Cerco proprio questa risposta.

Quote:
Quanto al discorso della portabilità è un falso mito anche questo... o meglio la portabilità esiste su due livelli:

1) la portabilità dell' "eseguibile" (ed è quello che ti offrono i linguaggi con VM)
2) la portabilità del codice sorgente

Puoi scrivere codice portabile anche in C/C++ se adotti alcuni accorgimenti. Chiaramente in questo caso non hai la portabilità dell'eseguibile, perché stai adottando un linguaggio nativo e ogni SO ha il suo formato per gli eseguibili.

In genere se fai tutto fatto bene basta ricompilare.

Nota, ho messo "eseguibile" tra virgolette perché nel caso di linguaggi puramente interpretati come Python, lanci un interprete che prende in input il codice sorgente e la VM si occupa del resto.
Questi accorgimenti per un principiante diciamo che non è il massimo, sono problemi che mi porteranno non pochi problemi, me lo sento, come librerie non compatibili ad esempio, qualcuna ce ne sarà.

Per questo mi voglio orientare su Java e farlo bene, Java alla fine deve essere installato su ogni macchina per poter usufruire di molti servizi, da come la vedo io in ogni PC c'è java installato, anche in Linux e Mac, è dappertutto.
Il problema è sapere se ci sono accorgimenti da fare anche per java o basta semplicemente ricompilare il codice.


Quote:
Visual C++ è un IDE, non è un linguaggio.

C++ è uno standard, in particolare poi hai diversi compilatori su varie piattaforme che seguono più o meno lo standard.
Questo lo sapevo solo che mi sono spiegato male, a questo punto mi viene da pensare che anche C# sia un IDE per C++ ( mi dicono che non è così ), le librerie che uso sono simili e le funzioni hanni gli stesi nomi, ora che si integrano con un interfaccia va bene è normale, ma la differenza e minima sotto pochi aspetti, gli operatori al massimo, per quello che ho potuto vedere io naturalmente .


Grazie per la risposta ! ! !
__________________
Acquisti conclusi egregiamente con : TH4N4TOS --- Ramius83ITA
Venduto a : Baio77 --- tonymax --- kris89 --- steee

Ultima modifica di Squall 94 : 02-06-2012 alle 11:07.
Squall 94 è offline   Rispondi citando il messaggio o parte di esso