|
|
|
|
Strumenti |
07-10-2011, 15:52 | #1 |
Member
Iscritto dal: Apr 2009
Messaggi: 253
|
Programmazione C o Visual Basic?
Ciao a tutti!
Vorrei imparare a programmare ma non so quale scegliere tra questi due linguaggi di programmazione: Visual Basic, C. Faccio solo questi due nomi perchè un mio amico ha bisogno di una persona esperta in quei due. Da quale posso cominciare? E, soprattutto, occorre che prima di approcciarmi a uno di essi imparo qualcos'altro oppure non servono altre basi per comprenderli? E quale materiale cartaceo (da acquistare in libreria) o tutorial su internet mi consigliate? Grazie anticipatamente a tutti coloro che risponderanno. |
07-10-2011, 19:12 | #2 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3305
|
Visual Basic è morto 13 anni fa.
Il C ad oggi lo usi se devi lavorare in ambienti embedded con limitatissime capacità di calcolo e memoria. Ma per lo meno è un linguaggio ancora vivo. Alternative consigliate? Rispettivamente C# e C++. |
07-10-2011, 22:41 | #3 |
Bannato
Iscritto dal: Apr 2006
Messaggi: 5857
|
Volevi dire 3 anni fa, perché 13 anni fa mi sembrava ben in vita (era appena uscita la versione 6.0)
Cmq c'è anche Visual Basic.Net che io conosco zero ma sento dire che è un linguaggio di pari livello sotto DotNet e che non è da buttare via. Anzi secondo il famoso guru Balena con VB fai anche cose che con C# sono poco agevoli da fare. Cmq per la programmazione Windows consiglio pure io C# in primis e C++ in seconda. Anche se non trascurerei un certo Java e se non sono richieste prestazioni estreme (cmq raggiungibili) anche Python Ultima modifica di FabryHw : 08-10-2011 alle 15:06. Motivo: Corretto cognome di Balena |
08-10-2011, 09:37 | #4 |
Member
Iscritto dal: Apr 2009
Messaggi: 253
|
Ok, grazie, raga. Io però di programmazione sono proprio profano, comincio da zero. Secondo voi cominciare con C# riesco a capirci qualcosa? O devo avere altre basi per apprenderlo? (Fermo restando che io abbia attitudine alla programmazione, ovvio ) E come testi (anche tutorial via web) quali mi consigliate?
Altra domanda: io sono un felice possessore di un Mac Pro; se dovessi decidere di programmare per Mac, quali linguaggi mi consigliate invece e quali testi da consultare? Scusate per tutte le domande! |
08-10-2011, 09:49 | #5 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
|
Se parti da zero è meglio che leggi la mia firma.
Riguardo al Mac, purtroppo c'è Objective-C che impera...
__________________
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 |
08-10-2011, 10:08 | #6 | |
Member
Iscritto dal: Apr 2009
Messaggi: 253
|
Quote:
Perchè PURTROPPO? (Io ho sentito dire che quel linguaggio è molto complicato) Comunque tornando alla programmazione C... in effetti sul web avevo già letto molti commenti di utenti che consigliavano questo linguaggio (addirittura uno in particolare così parlava del C: "è un linguaggio di programmazione che ti fa le ossa, ti insegna cosa è la programmazione e in virtù del quale, poi, puoi apprendere più facilmente gli altri linguaggi") Premetto che io sono un fan sfegatato di Apple e i suoi prodotti (adoro il mio mac Pro ) ma so pure che Objective-C gira solo su Mac, quindi avrei delle competenze limitate a quel campo. Python pure, ho sentito dire che è un linguaggio emergente... Non so proprio da dove cominciare... Ultima modifica di -sparkster- : 08-10-2011 alle 10:11. |
|
08-10-2011, 10:12 | #7 | ||||
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3305
|
Quote:
Quote:
Tanto vale partire direttamente con un linguaggio moderno. Quote:
Quote:
Java lo lascerei nel suo regno Enterprise. |
||||
08-10-2011, 10:25 | #8 | |||||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
|
Suvvia: VB non è certo rimasto lo stesso, a meno che non ci si fermi alle incarnazioni pre-.NET.
Comunque ricordo che VB.NET offriva qualche costrutto sintattico non disponibile in C#, che per le prossime versioni di quest'ultimo pensavano di integrare. Era qualcosa relativa alle eccezioni, ma è passato tempo e non rammento i dettagli. Quote:
Quote:
"Non ragioniam di lor, ma guarda e passa". Quote:
Quote:
Quote:
__________________
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 |
|||||
08-10-2011, 11:24 | #9 | ||
Member
Iscritto dal: Apr 2009
Messaggi: 253
|
Quote:
Quote:
Ultima modifica di -sparkster- : 08-10-2011 alle 11:27. |
||
08-10-2011, 11:37 | #10 | |
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
il punto è che da un lato ci sono i problemi e le loro soluzioni algoritmiche, per cui un linguaggio come python è decisamente e assolutamente preferibile dall'altro c'è la macchina con tutti i suoi misteri....se t'interessa quest'ultimo aspetto della programmazione devi considerare il C e magari l'assembly....python ad esempio ti astrae millemila cose che la macchina fa dietro le quinte la fregatura è che sono due aspetti che bisogna conoscere, non si può essere informatici per metà |
|
08-10-2011, 12:34 | #11 | |||
Bannato
Iscritto dal: Apr 2006
Messaggi: 5857
|
Quote:
Secondo il tuo ragionamento allora il C è morto nel 1990, perché saranno anche usciti gli aggiornamenti del 2000 più un altro atteso in questi anni, ma è anche vero che la maggior parte dei compilatori supporta al 100% solo il C90 ed il resto è implementato parzialmente. Quote:
E cmq cosa intendi con mischiare il vecchio? Il fatto che supporta (forse ripeto lo conosco poco) il paradigma procedurale e forse lo può mischiare al paradigma ad oggetti? Ma allora anche C++ e Python sono vecchi in quel senso. Quote:
Secondo lui VB ha ancora molto spazio ed i programmatori VB6 al più dovrebbero pensare a migrare le loro conoscienze su VB.Net e non pensare di ricominciare da zero con altri linguaggi tra cui C#. Poi Balena da Guru VB6 e VB.Net (nonché esperto C#, ma qui forse non un guru) proponeva degli esempi, in cui mostrava che C# non era per nulla superiore a VB.Net ma che entrambi i linguaggi potevano assolvere gli stessi compiti e che le prestazioni del codice CLR (sotto Dot.Net) alla fine erano pure uguali o quasi. Tra quegli esempi ne mostrava anche alcuni dove VB.Net aveva dei vantaggi su C# permettendo di fare cose non fattibili in C# (o fattibili solo con codice scomodo da scrivere). Se ritrovo il link lo posto. Inoltre mi pare di aver letto in giro che VB.Net 2010 avrebbe già il supporto a DLR ma che Microsoft non lo abbia rilasciato solo perché non è (o era) in grado di rilasciarlo anche per C# e non voleva creare scompensi (rendendo VB.Net troppo in vantaggio su C#). Ultima modifica di FabryHw : 08-10-2011 alle 15:07. |
|||
08-10-2011, 22:34 | #12 |
Senior Member
Iscritto dal: Jan 2007
Messaggi: 5298
|
Per quel che mi riguarda Visual Basic non è consigliabile per chi inizia ora a programmare e questo include quella pseudotruffa che è Visual Basic .Net.
Mi spiego meglio, l'unico motivo per cui esiste Visual Basic .Net è che c'era una mole ENORME di codice legacy scritto in VB4/VB5/VB6. Fino a VB6, un programma scritto in VB n lo potevi ricompilare tale e quale per VB n+1 e funzionava, poi potevi sfruttare le funzionalità aggiuntive e migliorarlo (nel caso fosse utile). Poi con .Net fu decisa la "morte" di Visual Basic come prodotto separato e la sua integrazione in .Net, solo che Visual Basic "pre .Net" aveva un set di librerie ed oggetti "tutto suo" che sarebbe stato difficile da portare su .Net, e questo portò a chiamare Visual Basic .Net un linguaggio che in pratica è "C# con una sintassi simile a VB". In altre parole: prendi un programma scritto per VB n e DOVRAI FARE MODIFICHE FUNZIONALMENTE EQUIVALENTI AD UNA RISCRITTURA IN C# per renderlo compilabile in VB .Net (che poi funzioni correttamente è tutto un altro paio di maniche, per quello serviranno altri test e modifiche). Se non ci credete, considerate che esiste ancora parecchio software scritto in VB6 che non è stato portato a VB .Net e che semmai è stato riscritto o verrà riscritto in altri linguaggi e con altri runtime. Per quel che mi riguarda, VB (con o senza .Net) e C# sono da considerare come COBOL e Fortran: linguaggi di programmazione da usare solo se qualcuno ti paga TANTO (ma TANTO, eh) e non interessa minimamente cosa succederà dopo. Se si sviluppa software e si vogliono evitare inutili riscritture e non si vuole restare ingabbiati su un unica piattaforma conviene scegliere altri linguaggi, altre librerie ed altri tool. Premesso questo, neanche C è consigliabile "per iniziare" perchè sotto vari aspetti "è un linguaggio che non perdona". Sotto tale aspetto Python e Java sono più amichevoli per i principianti. Io personalmente quando posso scegliere linguaggio e tool di sviluppo utilizzo C++ e Qt, le librerie "standard" di C++ lasciano molto a desiderare se si deve sviluppare un applicazione con interfaccia utente "ricca", ma proprio per questo lo abbino a Qt perché fornisce proprio tutto quello che manca (senza contare la maggior portabilità ecc. ecc.). |
09-10-2011, 09:44 | #13 | |
Member
Iscritto dal: Apr 2009
Messaggi: 253
|
Quote:
|
|
09-10-2011, 16:58 | #14 | |
Senior Member
Iscritto dal: Jan 2007
Messaggi: 5298
|
Quote:
Questo significa che non appena cominci a fare cose di una certa complessità, per cose per cui con C++ o altri linguaggi risolvi tutto con oggetti, ereditarietà e metodi virtuali, nel caso del C ti ritrovi ad usare struct con puntatori ecc. ecc. Il problema (oltre ad una maggior complessità del codice da scrivere con le proprie mani) è che C è stato "pensato" per essere efficiente (quasi) quanto il codice macchina (in un periodo in cui i compilatori non ottimizzavano il codice come ora), quindi fa uso di puntatori su cui si possono eseguire operazioni aritmetiche (quindi basta una svista e ti ritrovi con puntatori randagi che scrivono in ram dove non dovrebbero). Oltre a questo le librerie "standard" del C sono ancora più ridotte all'osso di quelle di C++ (quindi o ti scrivi un sacco di codice da te o devi cominciare da subito ad usare librerie esterne di vario tipo per roba che ad esempio in C++ viene fornita "di serie"). Per questo l'ho definito un "linguaggio che non perdona", ti permette di fare roba che con altri linguaggi non è possibile (ma poi sono cavoli tuoi se sbagli qualcosa) e spesso non hai alternative all'uso dell'aritmetica dei puntatori (mentre invece ad esempio il C++ tra le librerie "standard" ha le STL che forniscono oggetti per gestire strutture dati complesse riducendo al minimo l'uso di aritmentica dei puntatori e rendendola più "sicura" dove possibile). Se ti servono prestazioni elevate, possibilità di interfacciarti facilmente con roba a basso livello, una buona portabilità ed hai già sufficiente esperienza come programmatore, il linguaggio C può essere una buona scelta, ma non è esattamente il linguaggio migliore con cui iniziare ad imparare a programmare (si rischia di perdere più tempo ad imparare il linguaggio che ad imparare le basi della programmazione, inoltre per imparare la programmazione ad oggetti dovrai cambiare linguaggio). |
|
09-10-2011, 21:51 | #15 | |||||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
|
Quote:
Quote:
Quote:
Quote:
Cioè da C & derivati. Quote:
__________________
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 |
|||||
10-10-2011, 08:36 | #16 | |
Senior Member
Iscritto dal: Feb 2003
Città: Stockholm (SE)
Messaggi: 1343
|
Quote:
Tra l'altro, a differenza di altri linguaggi piú "consigliati", C# e VB.NET hanno un'evoluzione molto piú veloce cosa che tra l'altro invoglia i progetti open source a muoversi da un porting line-to-line ad un porting funzionalmente compatibile (tranne pochi casi, come lucene.net ) poi é vero che io sono un fanatico di LINQ e da poco in ufficio ci siamo creati una nostra libreria per eseguire alcune operazioni in maniera piú memory-efficient, peró non vedo nessuna tecnologia che nello stesso costrutto mi permette di definire una query sql anche complessa, filtrarla ulteriormente in memoria e trasformare tutto in xml: ovviamente, il tutto verrá poi eseguito solo quando il risultato sará veramente necessario. Ovviamente non voglio buttarla alla solita sterile guerra di quale piattaforma ce l'ha piú lungo. semplicemente non mi trovo daccordo sulla tua osservazione sull'utilizzabilitá dei lunguaggi .NET |
|
10-10-2011, 10:43 | #17 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Ciao -sparkster-,
ti linko un articolo che fa un discorso molto generale su quale genere di linguaggio di programmazione sia utile scegliere per chi comincia da zero (e quest'ultima parte della frase è l'aspetto rilevante dell'intera faccenda): http://www.appuntidigitali.it/2506/q...a-programmare/ Se poi da profano sei cursioso di sapere che genere di caratteristiche differenzi un linguaggio di programmazione da un'altro, consiglio la discussione in evidenza creata appositamente: http://www.hwupgrade.it/forum/showthread.php?t=1979444
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
10-10-2011, 11:05 | #18 | |
Moderatore
Iscritto dal: Nov 2006
Messaggi: 20825
|
Quote:
se poi consideri che C è un linguaggio procedurale... se posso dire la mia devi vedere l'ambito applicativo se ti vuoi interessarti all'elettronica digitale, sistemi a microcontrollore ecc ecc inizia a studiare C e C++ se vuoi sviluppare applicazioni desktop piuttosto che visual basic puro che è morto anni fà scegli un ambiente .net se ti interessa sviluppare per windows. che poi impari c# o vb.net è assolutamente identico, io ad esempio preferisco c# perchè ha una sintassi abbastanza simile al C++ quindi abbastanza stringata ma sono scelte personali dello sviluppatore che non impattano sulla qualità del codice in uscita
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 |
|
10-10-2011, 14:53 | #19 | |
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
non penso che chi conosce la logica algoritmica e magari sa pure realizzare programmi in 4-5 linguaggi diversi, ma non sa cosa avviene dietro le quinte, possa essere definito un informatico il tizio dice "sono bravissimo a fare programmi vb, creo gestionali a raffica, ma non chiedermi com'è rappresentata in memoria una stringa, perchè non è di mia competenza"....ecco, questo è un informatico a metà |
|
10-10-2011, 17:25 | #20 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
|
E' una tua definizione che ovviamente non condivido.
Per quanto mi riguarda un programmatore deve saper risolvere i problemi che si pongono davanti, nel "migliore" (col miglior compromesso possibile in base alla sua esperienza e conoscenza) dei modi.
__________________
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 |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:36.