View Single Post
Old 02-06-2012, 10:39   #2
WarDuck
Senior Member
 
L'Avatar di WarDuck
 
Iscritto dal: May 2001
Messaggi: 12966
Quote:
Originariamente inviato da Squall 94 Guarda i messaggi
Il titolo è un po' insolito, questo perchè al momento sto usando Visual C# e sinceramente mi sono stufato, sia perchè sto nell'ambiente microsoft sia perchè non ritengo che sia vera programmazione, nel senso che le funzioni che mi servono le copio dal manuale, insomma non è quella programmazione vera e propria che mi sarei aspettato come ad esempio con il C / C++, anche se è difficile preferisco un maggior controllo e una programmazione più seria, non so se rendo l'idea.
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.

Quote:
Originariamente inviato da Squall 94 Guarda i messaggi
Comunque ho un libro di java pronto per essere utilizzato più pdf a valanghe altrettanto ben fatti.
Visto che mi sto orientando sempre di più sul mondo linux, sia lato server che client, mi chiedeo quale sia un linguaggio che giri ugualmente su entrambi.

Quì cado dalle nuvole, se non sbaglio la sintassi non dovrebbe cambiare di una virgola sia di Java sia di C / C++, stesso per PHP, sono solo gli ide che cambiano o c'è altro ?
A parte questo che di Java NetBeans ed Eclipse rilasciano versioni per tutti i sistemi operativi, per C / C++ come stiamo messi ?
Io usavo Dev, ma qualcosa di grafico che non sia Visual Studio non c'è ?
Voglio cominciare Java perchè credo che sia un ottimo linguaggio, mi piace la sintassi, poi si sa, se una cosa piace, piace e basta .

Certo se poi mi dite che C / C++ è più portatile ( ma non credo ), nel senso che è compatibile con più piattaforme, continuo su quella strada altrimenti dovrò cominciare a vedere Java, per il quale sono curiosissimo, almeno per cambiare .
Da quello che so Java è più portatile grazie alla JVM e visto che non m'interessa creare videogiochi per il quale Java fa veramente pena, penso che per programmazione sia locale che su server con database sia ottimo, salvo requisiti particolari, su questo vorrei un attimo capire perchè dicono che è pesante.
Java m'interessa soprattutto per il suo potenziale sul web, con i database soprattutto che al momento non so niente al riguardo, conosco un po' di JavaScript ed è davvero potente, almeno per quello che serve a me.
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.

Eclipse e NetBeans sono disponibili per molte piattaforme.

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.

Quote:
Originariamente inviato da Squall 94 Guarda i messaggi
Un ultima domanda curiosa, il Visual C++ richiama molto il C++ come sintassi oppure è proprio la sua ? Comunque sia non voglio essere legato a Microsoft, voglio assolutamente approdare su linux nella programmazione, Windows non mi appassiona, ci resto legato solo per i videogiochi, anche perchè Linux ha dietro una Community vastissima, già questo mi piace, se hai un problema solo il tempo per risolverlo è l'inconveniente, prima o poi ci riesci .
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.

Sia il compilatore Microsoft che GCC supportano alcune estensioni al linguaggio.

Detto ciò probabilmente se scrivi codice con taluni accorgimenti puoi compilare su entrambe le piattaforme, ma questa cosa varia caso per caso e dipende soprattutto dalle librerie utilizzate ed eventualmente da come vuoi interagirti con il sistema operativo.

Chiramente se vuoi usare chiamate di sistema o usi dei wrapper già fatti che funzionano per entrambe le piattaforme oppure devi farteli da solo.

Piccola nota di cronaca: Windows 8 introduce le api WinRT, programmabili nativamente attraverso una estensione del C++ che MS chiama C++/CX.
WarDuck è offline   Rispondi citando il messaggio o parte di esso