View Full Version : consigli per iniziare a programmare
lolloclat
10-10-2008, 20:12
ciao, vorrei sapere come imparare a programmare vorrei chiedervi aiuto perchè la cosa mi interessa molto.
premetto che non so molto di computer.
vorrei sapere se ci sono delle guide e magari un aiutino da parte vostra...:D
ripeto non so quasi niente di programmazione ma sono molto motivato:)
ciao e grazie per il vostro futuro aiuto.
Mattyfog
10-10-2008, 20:18
nella mia ignoranza penso che prima dovrai rispondere a queste domande:
- pensi di imparare a programmare così per passione o pure per lavoro?
- hai già degli obbiettivi?
Penso che tu lo faccia più che altro per curiosità no?
AL-Vetresium
10-10-2008, 20:58
Come credi che facciano ad insegnarti ....è un cosa molto lunga ....segui un corso .....;)
88MIKI88
10-10-2008, 21:14
Esistono molti linguaggi per programmare io avendo ricominciato da poco ti consiglio il python che è facile da imparare e trovi un casino di guide che ti spiegano passo a passo come programmare
http://www.python.it/doc/Howtothink/Howtothink-html-it/index.htm
cdimauro
10-10-2008, 21:28
ciao, vorrei sapere come imparare a programmare vorrei chiedervi aiuto perchè la cosa mi interessa molto.
premetto che non so molto di computer.
vorrei sapere se ci sono delle guide e magari un aiutino da parte vostra...:D
ripeto non so quasi niente di programmazione ma sono molto motivato:)
ciao e grazie per il vostro futuro aiuto.
Leggi la mia firma e avrai la soluzione a tutti i tuoi problemi. :cool:
EDIT: mi ha anticipato 88MIKI88 :p
lolloclat
10-10-2008, 21:48
grazie ragazzi continuate a rispondere comunque vorrei imparare x passione non per lavoro:D
slartibartfast
10-10-2008, 22:13
grazie ragazzi continuate a rispondere comunque vorrei imparare x passione non per lavoro:D
Se per passione C tutta la vita.
cdimauro
10-10-2008, 22:36
grazie ragazzi continuate a rispondere comunque vorrei imparare x passione non per lavoro:D
Per passione ognuno ha il proprio linguaggio che ti consiglierà, per cui non ne uscirai mai fuori.
Se invece vuoi imparare, ma soprattutto divertirti, allora Python è quello che fa per te. ;)
88MIKI88
10-10-2008, 22:44
Se per passione C tutta la vita.
Però se sei alle prime armi il C non è il massimo secondo me (sto studiando pure quello e senza un insegnante che ti spiega per bene non è il massimo)....il Python è facile da imparare..in una settimana le basi le hai imparate il manuale a cui facevo riferimento è fantastico ti spiega passo a passo la programmazione partendo da 0 fa un casino di esempi e poi è facile da capire...
||ElChE||88
10-10-2008, 23:01
Se per passione C tutta la vita.
Il masochismo è passione? :what:
cdimauro
10-10-2008, 23:12
E' il profumo della vita... :asd:
Per cominciare i linguaggi sono imho questi due:
- Python
- Java
Io propendo più per Java per gusti personali, ma non nascondo che Python possa andare bene.
Ti consiglio prima di dare uno sguardo superficiale (magari leggendo qualche guida online) ad entrambi per cercare di capire quale dei due incontra di più il tuo gusto, anche estetico. Dopo sicuramente devi passare da un libro.
Per Java ti posso consigliare il libro di Deitel & Deitel, ma meglio in inglese.
Per iniziare a farti un'idea di come funziona la programmazione io ti consiglio Phyton che ha una sintassi quasi elementare. Inoltre se è per pura passione non può che andare bene!!!
Se poi vorrai qualcosa di più impegnativo devi passare al C, da cui prendono spunto i linguaggi ad oggetti come il C++ e pure il Java.
Per concludere usa Python e ti divertirai non poco!
I linguaggi migliori per iniziare sono java, python e c#.
Quale ambito ti interessa in particolare? Se ad esempio vuoi creare applicazioni dotate di interfaccia grafica su windows è meglio c#, allo stesso modo se ti interessa in futuro cimentarti nello sviluppo di qualche piccolo videogioco amatoriale per windows o xbox.
Nel web è molto utilizzato php e permette di realizzare qualcosa di tangibile con poco sforzo ma come linguaggio in se è abbastanza orribile quindi ti consiglio di evitarlo. Evita anche visual basic in tutte le sue forme.
Ma sopratutto EVITA il c e il c++.
GianSega
12-10-2008, 12:11
Se sono le prime volte allora (per iniziare !!) Pascal. E' molto intuitivo e impari alla svelta.. poi vedi te.. :D
Mattyfog
12-10-2008, 12:19
ma pascal è passato... già che deve imparare che impari qualcosina di utile
pascal non è passato, è didattico... :O ;)
Però ci sono altri linguaggi parimenti didattici (Java e Python) che non hanno le limitazioni del Pascal. La prima fra tutti il fatto che non sia OO.
variabilepippo
12-10-2008, 16:24
Però ci sono altri linguaggi parimenti didattici (Java e Python) che non hanno le limitazioni del Pascal. La prima fra tutti il fatto che non sia OO.
Ma, a meno di usare un compilatore dei primissimi anni '80, in Pascal si può programmare anche ad oggetti: Turbo Pascal >= 5.5 (rilasciato nel 1989), FreePascal, Object Pascal (Delphi), ... ;)
Comunque suggerisco anch'io l'approccio alla programmazione con altri linguaggi, ad esempio con Python.
Turbo Pascal >= 5.5 (rilasciato nel 1989), FreePascal, Object Pascal (Delphi), ... ;)
Ma è standardizzato ? Cioè il Pascal come standard ora è a oggetti ?
lolloclat
12-10-2008, 17:24
okey quindi con quale dovrei iniziare secondo voi?? io sto provando con phyton :D
io ho iniziato l'anno scorso il C e posso dire che è molto semplice da imparare, inoltre, una volta apprese le basi, il passaggio a C++ è immediato. Io ti consiglio di imparare il C, poi passare al C++ e aspettare il nuovo standard ISO C++09
variabilepippo
12-10-2008, 17:44
Si è discusso più volte in questo forum di come il C non sia un linguaggio didattico, né un linguaggio produttivo, né un linguaggio semplice da imparare/usare. Il C è indispensabile in alcuni contesti, ma questi contesti non riguardano i programmatori principianti... Non si impara a guidare su una Ferrari da Formula 1, il rischio concreto è quello di schiantarsi alla prima curva o di non partire affatto! :D
Inoltre si può (e secondo me si dovrebbe) imparare a programmare in C++ senza essere stati esposti al C, altrimenti si tirano fuori minestroni che non sono né C né C++. :muro:
Inoltre si può (e secondo me si dovrebbe) imparare a programmare in C++ senza essere stati esposti al C, altrimenti si tirano fuori minestroni che non sono né C né C++. :muro:
Concordo al 100%.
Si è discusso più volte in questo forum di come il C non sia un linguaggio didattico, né un linguaggio produttivo, né un linguaggio semplice da imparare/usare. Il C è indispensabile in alcuni contesti, ma questi contesti non riguardano i programmatori principianti... Non si impara a guidare su una Ferrari da Formula 1, il rischio concreto è quello di schiantarsi alla prima curva o di non partire affatto! :D
Inoltre si può (e secondo me si dovrebbe) imparare a programmare in C++ senza essere stati esposti al C, altrimenti si tirano fuori minestroni che non sono né C né C++. :muro:
io ho iniziato l'anno scorso a scuola (3 ITIS) a programmare in C, le uniche istruzioni C++ che utilizzavamo e utilizziamo tuttora son cin e cout. NOn ho avuto difficoltà a imparare a programmare con questo linguaggio, e così, quest' estate, ho studiato il C++ e la programmazione ad oggetti, in particolare il libro che ho utilizzato per studiare, spiegava:
-programmazione (teoria)
-C
-programmazione ad oggetti
-passaggio da C++ a C
e posso dire che non è stato trumatico passare da C a C++, ho trovato tutto molto più semplice e meno macchinoso con la programmazione OOP, secondo me dire che il C o C++ sono linguaggi complessi, è vero, ma dire che sono complessi da capire no, senza contare che si tratta di linguaggi ad alto livello, nati proprio per semplificare lo studio di essi.
lolloclat
12-10-2008, 18:07
in particolare il libro che ho utilizzato per studiare, spiegava:
-programmazione (teoria)
-C
-programmazione ad oggetti
-passaggio da C++ a C
ciao,
mi sapresti dire di che libro si tratta?:)
ciao,
mi sapresti dire di che libro si tratta?:)
ATLAS:
INFORMATICA: TEORIA E PROGRAMMAZIONE IN C E C++
ISBN: 88-268-1189-X
:)
variabilepippo
12-10-2008, 18:17
ma dire che sono complessi da capire no
Ne riparliamo quando inizierai a scrivere programmi complessi... :rolleyes:
Ne riparliamo quando inizierai a scrivere programmi complessi... :rolleyes:
ok
io ho iniziato l'anno scorso a scuola (3 ITIS) a programmare in C, le uniche istruzioni C++ che utilizzavamo e utilizziamo tuttora son cin e cout. NOn ho avuto difficoltà a imparare a programmare con questo linguaggio, e così, quest' estate, ho studiato il C++ e la programmazione ad oggetti, in particolare il libro che ho utilizzato per studiare, spiegava:
-programmazione (teoria)
-C
-programmazione ad oggetti
-passaggio da C++ a C
e posso dire che non è stato trumatico passare da C a C++, ho trovato tutto molto più semplice e meno macchinoso con la programmazione OOP, secondo me dire che il C o C++ sono linguaggi complessi, è vero, ma dire che sono complessi da capire no, senza contare che si tratta di linguaggi ad alto livello, nati proprio per semplificare lo studio di essi.
Guarda, io ho fatto esattamente il tuo stesso passaggio (anche se C l'avevo studiato prima delle superiori) e devo dire che mi sono portato dietro tantissimi difetti nel C++ :muro: :muro:
esempio?
non che no ti creda, ma mi risulta difficile pensare che il passaggio crei tutti questi problemi.
variabilepippo
12-10-2008, 18:39
Il C ed il C++ sono 2 linguaggi "molto diversi", quando un programmatore C scrive codice C++ tende a non usare le caratteristiche tipiche del C++ per "riciclare" quanto imparato durante lo studio del C. Da qui il minestrone di cui prima...
Prova, per esempio, a scrivere in C++ un programmino che metta 10 numeri casuali in una lista e successivamente ordini la lista in modo crescente, così si potrà valutare se quanto scritto è in realtà C, C++ o un mix dei 2. :)
khelidan1980
12-10-2008, 19:00
Il masochismo è passione? :what:
Io per passione "soffro" correndo per km a piedi al che metà della gente se non di più mi guarda come un alieno...che problema c'è?credo lo stesso discorso si possa applicare alla programmazione e al C,poi se si fanno discorsi di produttività ecc. è un altro paio di maniche
cdimauro
12-10-2008, 19:30
Ma è standardizzato ? Cioè il Pascal come standard ora è a oggetti ?
No. E' stata proposta una bozza, ma non è stata mai ratificata dal comitato dell'ISO.
Comunque lo standard di fatto è rappresentato dalle estensioni della Borland.
okey quindi con quale dovrei iniziare secondo voi?? io sto provando con phyton :D
Fai benissimo: continua pure con Python e vedrai che ti eviterai pure tanti mal di testa. ;)
io ho iniziato l'anno scorso il C e posso dire che è molto semplice da imparare, inoltre, una volta apprese le basi, il passaggio a C++ è immediato. Io ti consiglio di imparare il C, poi passare al C++ e aspettare il nuovo standard ISO C++09
Il C è semplice come sintassi, ma programmarci è un altro paio di maniche.
Iniziare col C è da masochisti: esistono linguaggi che permettono di imparare a programmare senza farsi del male come con C, C++, ecc..
||ElChE||88
12-10-2008, 19:38
Io per passione "soffro" correndo per km a piedi al che metà della gente se non di più mi guarda come un alieno...che problema c'è?credo lo stesso discorso si possa applicare alla programmazione e al C,poi se si fanno discorsi di produttività ecc. è un altro paio di maniche
Non vedo perché il C dovrebbe essere migliore degli altri linguaggi se uno programma "per passione".
Grazie dell'esempio, ma non ci hai azzeccato.
No. E' stata proposta una bozza, ma non è stata mai ratificata dal comitato dell'ISO.
Comunque lo standard di fatto è rappresentato dalle estensioni della Borland.
Sì, però di fatto il linguaggio non si chiama Pascal, ma Object Pascal ;)
Ne riparliamo quando inizierai a scrivere programmi complessi... :rolleyes:
Sono d'accordo (più che altro è stupido scrivere progettoni in C, oramai), ma immagino ne passerà di acqua sotto i ponti prima che inizi a scrivere programmi complessi.
Cmq ognuno ha le sue idee su come vada imparata la programmazione, il consiglio che ti posso dare io, dal mio punto di vista, è di provare a scrivere molte cose anche se magari i linguaggi moderni le implementano già.
Mattyfog
12-10-2008, 20:20
Cmq ognuno ha le sue idee su come vada imparata la programmazione, il consiglio che ti posso dare io, dal mio punto di vista, è di provare a scrivere molte cose anche se magari i linguaggi moderni le implementano già.
Secondo me lo farai anche senza volerlo!!!! :D
Ma fa bene...
più che altro è stupido scrivere progettoni in C, oramai
Non sono per niente d'accordo. Moltissimi software ancora in uso e persino sistemi operativi sono scritti in C. E' un linguaggio sofisticato che permette di fare tutti gli algoritmi possibili...certo con il tempo spazio alle nuove generazioni, non c'è dubbio!
okey quindi con quale dovrei iniziare secondo voi?? io sto provando con phyton
Secondo me stai facendo benissimo. Il python per certi versi a mio avviso può sostituire il pascal come linguaggio didattico. Il C può creare non pochi problemi se non hai basi riguardanti l'informatica teoretica e se non c'è un insegnante o una persona preparata che te lo spiega.
cdimauro
12-10-2008, 20:55
Sì, però di fatto il linguaggio non si chiama Pascal, ma Object Pascal ;)
Solo a partire da Delphi, ma già col Turbo Pascal 5.5 Borland aveva aggiunto delle estensioni per la programmazione a oggetti, ulteriormente estese con le altre versioni di TP.
Comunque è una nomeclatura Borland. Anche Apple sviluppò una sua estensione Pascal a oggetti e la chiamà Object Pascal.
Vincenzo1968
12-10-2008, 20:55
Non sono per niente d'accordo. Moltissimi software ancora in uso e persino sistemi operativi sono scritti in C. E' un linguaggio sofisticato che permette di fare tutti gli algoritmi possibili...certo con il tempo spazio alle nuove generazioni, non c'è dubbio!
Secondo me stai facendo benissimo. Il python per certi versi a mio avviso può sostituire il pascal come linguaggio didattico. Il C può creare non pochi problemi se non hai basi riguardanti l'informatica teoretica e se non c'è un insegnante o una persona preparata che te lo spiega.
Quoto. Altrimenti bisognerebbe considerare stupidi i progettisti di certi 'progettoni' come Python e Ruby. ;)
cdimauro
12-10-2008, 21:16
Fino a quando non li riscriveranno in Python e Ruby rispettivamente (per il primo c'è già PyPy :cool:). Similmente a FreePascal che... è scritto in FreePascal stesso. ;)
Non sono per niente d'accordo. Moltissimi software ancora in uso e persino sistemi operativi sono scritti in C. E' un linguaggio sofisticato che permette di fare tutti gli algoritmi possibili...certo con il tempo spazio alle nuove generazioni, non c'è dubbio!
Secondo me stai facendo benissimo. Il python per certi versi a mio avviso può sostituire il pascal come linguaggio didattico. Il C può creare non pochi problemi se non hai basi riguardanti l'informatica teoretica e se non c'è un insegnante o una persona preparata che te lo spiega.
Rispetto il tuo punto di vista, ma io non inizierei mai un progettone, al giorno d'oggi, non OOP. Possono esserci casi in cui sia meglio e io non conosco, ma in linea di massimo non lo farei ;)
rеpne scasb
12-10-2008, 22:19
Si è discusso più volte in questo forum di come il C non sia un linguaggio didattico, né un linguaggio produttivo, né un linguaggio semplice da imparare/usare.
Il fatto che "--Si è discusso più volte in questo forum--" non implica che le conclusioni a cui siete giunti tu e i tuoi interlocutori siano corrette. Tanto non vuol dire vero.
É comunque il caso di appianare, da parte mia, una volta per tutte la questione C vs il resto del mondo. Senza girarci intorno affermo che:
"Il fatto e' che i programmatori "scarsi" che non sono in grado di utilizzare il C, perche' non ne hanno le capacita' intellettuali, si dedicano a linguaggi di programmazione facilitati (oggi esistenti), che permettono a chi e' meno dotato di programmare con basso sforzo e alta produttivita'."
Infine, questa prassi, comune in questa sezione del forum, della "ridicolizzazione/presa in giro" di chi programma per passione, studio o lavoro in linguaggio C, sarebbe ora che cessasse.
P.S. Agiungo :D in quanto non vorrei essere fraintesa, e se sono stata fraintesa allora ho frainteso.
Rispetto il tuo punto di vista, ma io non inizierei mai un progettone, al giorno d'oggi, non OOP. Possono esserci casi in cui sia meglio e io non conosco, ma in linea di massimo non lo farei
Queste poi sono scelte che, opinabili o meno, sono soggettive :D :D
Il fatto che "--Si è discusso più volte in questo forum--" non implica che le conclusioni a cui siete giunti tu e i tuoi interlocutori siano corrette. Tanto non vuol dire vero.
É comunque il caso di appianare, da parte mia, una volta per tutte la questione C vs il resto del mondo. Senza girarci intorno affermo che:
"Il fatto e' che i programmatori "scarsi" che non sono in grado di utilizzare il C, perche' non ne hanno le capacita' intellettuali, si dedicano a linguaggi di programmazione facilitati (oggi esistenti), che permettono a chi e' meno dotato di programmare con basso sforzo e alta produttivita'."
Infine, questa prassi, comune in questa sezione del forum, della "ridicolizzazione/presa in giro" di chi programma per passione, studio o lavoro in linguaggio C, sarebbe ora che cessasse.
P.S. Agiungo in quanto non vorrei essere fraintesa, e se sono stata fraintesa allora ho frainteso.
Si condivido rеpne scasb...si aprono sempre guerre in questo forum sul linguaggio più bello e/o più utile!
cdimauro
12-10-2008, 22:55
Il fatto che "--Si è discusso più volte in questo forum--" non implica che le conclusioni a cui siete giunti tu e i tuoi interlocutori siano corrette. Tanto non vuol dire vero.
É comunque il caso di appianare, da parte mia, una volta per tutte la questione C vs il resto del mondo. Senza girarci intorno affermo che:
"Il fatto e' che i programmatori "scarsi" che non sono in grado di utilizzare il C, perche' non ne hanno le capacita' intellettuali, si dedicano a linguaggi di programmazione facilitati (oggi esistenti), che permettono a chi e' meno dotato di programmare con basso sforzo e alta produttivita'."
Infine, questa prassi, comune in questa sezione del forum, della "ridicolizzazione/presa in giro" di chi programma per passione, studio o lavoro in linguaggio C, sarebbe ora che cessasse.
P.S. Agiungo :D in quanto non vorrei essere fraintesa, e se sono stata fraintesa allora ho frainteso.
Hai dimenticato che chi usa linguaggi di più alto livello lo fa generalmente perché sono decisamente più produttivi rispetto a quelli di più basso livello, come il C, appunto.
Che poi c'è gente a cui piaccia lavorare in C non v'è dubbio, ma questo è un altro discorso.
Infine c'è anche gente che userebbe il C per qualunque cosa, e qui ci sarebbe da chiedersi se lo fa perché conosce soltanto questo linguaggio, se è morbosamente legato a esso e non lo abbandonerebbe per qualsiasi cosa al mondo, o semplicemente perché ha dimenticato qual è il ruolo di un programmatore (cioé risolvere dei problemi nel "migliore" dei modi, dove per migliore intendo col miglior rapporto costo / benefici).
variabilepippo
12-10-2008, 23:12
"Il fatto e' che i programmatori "scarsi" che non sono in grado di utilizzare il C, perche' non ne hanno le capacita' intellettuali, si dedicano a linguaggi di programmazione facilitati (oggi esistenti), che permettono a chi e' meno dotato di programmare con basso sforzo e alta produttivita'."
I linguaggi "facilitati" permettono di programmare con basso sforzo e alta produttività anche quei programmatori dotati di tutte le facoltà intellettive necessarie, compresa quella di usare lo strumento migliore per risolvere un dato problema. :rolleyes: Io sostengo che il C è indispensabile in alcuni casi, ma nella maggior parte delle situazioni non introduce un "vantaggio competitivo" ma uno svantaggio oggettivo.
Mettere in mano un linguaggio come il C nelle mani di un programmatore che non ha mai scritto una riga di codice è IMHO come dare una Ferrari ad un 16enne inesperto all'uscita da una discoteca, forse diventerà il nuovo Schumacher ma è molto più probabile che faccia danni! ;)
Vincenzo1968
12-10-2008, 23:14
Il fatto che "--Si è discusso più volte in questo forum--" non implica che le conclusioni a cui siete giunti tu e i tuoi interlocutori siano corrette. Tanto non vuol dire vero.
É comunque il caso di appianare, da parte mia, una volta per tutte la questione C vs il resto del mondo. Senza girarci intorno affermo che:
"Il fatto e' che i programmatori "scarsi" che non sono in grado di utilizzare il C, perche' non ne hanno le capacita' intellettuali, si dedicano a linguaggi di programmazione facilitati (oggi esistenti), che permettono a chi e' meno dotato di programmare con basso sforzo e alta produttivita'."
Infine, questa prassi, comune in questa sezione del forum, della "ridicolizzazione/presa in giro" di chi programma per passione, studio o lavoro in linguaggio C, sarebbe ora che cessasse.
P.S. Agiungo :D in quanto non vorrei essere fraintesa, e se sono stata fraintesa allora ho frainteso.
Repneeeeeeeeeeeeeeeeeeeeee Ciao:)
Ovviamente straquoto(non che io mi reputi un gran programmatore solo perchè programmo in C, anzi ho più volte ribadito di essere abbastanza scarso).
È un vero piacere tornare a rileggerti :)
cdimauro
12-10-2008, 23:19
I linguaggi "facilitati" permettono di programmare con basso sforzo e alta produttività anche quei programmatori dotati di tutte le facoltà intellettive necessarie, compresa quella di usare lo strumento migliore per risolvere un dato problema. :rolleyes: Io sostengo che il C è indispensabile in alcuni casi, ma nella maggior parte delle situazioni non introduce un "vantaggio competitivo" ma uno svantaggio oggettivo.
Mettere in mano un linguaggio come il C nelle mani di un programmatore che non ha mai scritto una riga di codice è IMHO come dare una Ferrari ad un 16enne inesperto all'uscita da una discoteca, forse diventerà il nuovo Schumacher ma è molto più probabile che faccia danni! ;)
Perfettamente d'accordo.
E detto fra noi: fra un programmatore che usa un linguaggio ad alto livello impiegando 10 minuti per risolvere un problema, e uno che usa il C ma impiega mezza giornata, per me quello più scarso è evidente chi sia... :cool:
rеpne scasb
12-10-2008, 23:20
...[CUT]qual è il ruolo di un programmatore (cioé risolvere dei problemi nel "migliore" dei modi, dove per migliore intendo col miglior rapporto costo / benefici).
Questo e' il ruolo del programmatore che hai "TU" nella tua testa. Dove sta scritto che un programmatore non possa avere altri ruoli oltre quello che citi tu? Perche' tanta presunzione?
Io, ad esempio, programmo e quindi a rigore sono una programmatrice, non riconoscendomi affatto nel ruolo che hai tanta voglia di affibbiarmi.
Io programmo, per "stimolare" me stessa, per mettere alla prova la mia capacita' di risolvere problemi utilizzando soluzioni ardite o insolite. Non cerco mica di ottimizzare rapporti costo/benefici.
E' possibile che tu non possa comprendere che possano esistere degli esseri umani che programmano non secondo il ruolo che tu supponi debbano avere, senza che essi debbano sentirsi degli imbecilli?
Sarebbe ore di finirna, non credi? Tu programmi secondo un analisi costo/benefici/leggibilita'/manutenibilita', io ed altri, programmiamo secondo un modello diverso. Ho, abbiamo, il diritto di scegliere il modo, il come, il perche' programmo, senza sentirci presi in giro, solo perche' non rispettiamo il ruolo che tu dai al "TUO" programmatore?
Posso programmare in C senza sentirmi un imbecille?
rеpne scasb
12-10-2008, 23:23
Perfettamente d'accordo.
E detto fra noi: fra un programmatore che usa un linguaggio ad alto livello impiegando 10 minuti per risolvere un problema, e uno che usa il C ma impiega mezza giornata, per me quello più scarso è evidente chi sia... :cool:
E' questo che non ti entra in zucca! Diamine! Io non impiego mezza giornata per risolvere un problema in C, se "TU" che ci impieghi mezza giornata per risolvere un problema C. Io ci impiego 5 minuti dei tui 10 utilizzati con un linguaggio di alto livello.
cdimauro
12-10-2008, 23:29
Questo e' il ruolo del programmatore che hai "TU" nella tua testa. Dove sta scritto che un programmatore non possa avere altri ruoli oltre quello che citi tu? Perche' tanta presunzione?
Io, ad esempio, programmo e quindi a rigore sono una programmatrice, non riconoscendomi affatto nel ruolo che hai tanta voglia di affibbiarmi.
Io programmo, per "stimolare" me stessa, per mettere alla prova la mia capacita' di risolvere problemi utilizzando soluzioni ardite o insolite. Non cerco mica di ottimizzare rapporti costo/benefici.
E' possibile che tu non possa comprendere che possano esistere degli esseri umani che programmano non secondo il ruolo che tu supponi debbano avere, senza che essi debbano sentirsi degli imbecilli?
Sarebbe ore di finirna, non credi? Tu programmi secondo un analisi costo/benefici/leggibilita'/manutenibilita', io ed altri, programmiamo secondo un modello diverso. Ho, abbiamo, il diritto di scegliere il modo, il come, il perche' programmo, senza sentirci presi in giro, solo perche' non rispettiamo il ruolo che tu dai al "TUO" programmatore?
Posso programmare in C senza sentirmi un imbecille?
Io programmo per portare a casa il pane e risolvere i problemi della mia azienda nel più breve tempo possibile.
L'unica cosa che non si può comprare al mercato è il tempo, e il tempo è la risorsa più importante per un programmatore e per un'azienda che ha delle scadenze da rispettare.
E' questo che non ti entra in zucca! Diamine! Io non impiego mezza giornata per risolvere un problema in C, se "TU" che ci impieghi mezza giornata per risolvere un problema C. Io ci impiego 5 minuti dei tui 10 utilizzati con un linguaggio di alto livello.
Qui mi sa che pecchi di presunzione. :rolleyes:
rеpne scasb
12-10-2008, 23:30
■
Perfettamente d'accordo.
E detto fra noi: fra un programmatore che usa un linguaggio ad alto livello impiegando 10 minuti per risolvere un problema, e uno che usa il C ma impiega mezza giornata, per me quello più scarso è evidente chi sia... :cool:
Quindi tra un programmatore che scrive un esecutore di query per un DBMS commerciale in C, e uno che lo scrive in 1/10 del tempo in Python, è più furbo il secondo? :)
cdimauro
12-10-2008, 23:37
Quindi tra un programmatore che scrive un esecutore di query per un DBMS commerciale in C, e uno che lo scrive in 1/10 del tempo in Python, è più furbo il secondo? :)
Certamente.
P.S. Ovviamente quando parlo di soluzione di un problema è sottointeso che tutti i requisiti debbano essere stati soddisfatti.
rеpne scasb
12-10-2008, 23:38
■
rеpne scasb
12-10-2008, 23:44
■
cdimauro
12-10-2008, 23:45
E questo l'avrai detto almeno un centinaio di volte.
Ribadisco: per chi come me non programma per i "TUOI" motivi, e' possibile finirla con questo continuo quanto irritante stuzzicamento?
Io non stuzzico nessuno: avrò il diritto di esprimere liberamente la mia opinione, sì o no? Non mi pare di aver offeso nessuno.
:doh:
Rileggiti che è meglio: http://www.hwupgrade.it/forum/showpost.php?p=24537883&postcount=52
cdimauro
12-10-2008, 23:46
Rispondi a questa di domanda:
"Quindi tra un programmatore che scrive un esecutore di query per un DBMS commerciale in Python, e uno che lo scrive in 1/10 del tempo in C, è più furbo il secondo?"
Ho già risposto. Leggi sopra.
Vincenzo1968
12-10-2008, 23:49
Io programmo per portare a casa il pane e risolvere i problemi della mia azienda nel più breve tempo possibile.
L'unica cosa che non si può comprare al mercato è il tempo, e il tempo è la risorsa più importante per un programmatore e per un'azienda che ha delle scadenze da rispettare.
Anch'io programmo per portare a casa il pane e, come ti dicevo nell'altro thread, l'azienda di Genova che ha sviluppato il software gestionale e di cui disponiamo i sorgenti, proprio non ne vuol sapere di fare il porting verso altri linguaggi come Java o C#(e minacciano di toglierci l'autorizzazione alla rivendita e alle personalizzazioni ogni volta che il titolare rivolge loro una richiesta in tal senso). Per loro conta si il tempo, ma in termini di prestazioni, ma in termini di velocità di esecuzione.
E direi che se sono riusciti a raggiungere l'obiettivo di trentamila installazioni, di mercato se ne intendono.
rеpne scasb
12-10-2008, 23:50
■
Certamente.
P.S. Ovviamente quando parlo di soluzione di un problema è sottointeso che tutti i requisiti debbano essere stati soddisfatti.
Ho parlato di scrivere un esecutore di query, non ho sott'inteso da nessuna parte che scrivendolo in Python si "risolva il problema"
Cmq poi andiamo a chiederlo a chi quel DBMS lo compra e lo usa ;D
rеpne scasb
12-10-2008, 23:53
■
variabilepippo
12-10-2008, 23:53
Permettimi, con tutto il rispetto che posso avere per te anche non conoscendoti, ma questa e' una baggianata.
Ho visto studenti alle prime armi, che non avrebbero saputo programmare neanche con il "lego", altri (pochi), con gia' una capacita' innata e naturale di programmare in assembly. Non tutti possiamo fare tutto.
Perche' stai sostenendo che tutti gli studenti alle prime armi sono uguali?
Ho detto ciò?! Mi sembra di aver detto esattamente il contrario... Cioè che lo studente potrà (=possibilità) diventare un guru dell'informatica, ma visto che di guru ce ne sono pochi è più probabile (=triste realtà) che si ritrovi a scrivere codice pessimo e pieno di bug, magari in C, proprio perché non è un linguaggio per tutti. E visto che neanche una Ferrari è un'automobile per tutti a me sembra inutile darla in mano a chi non abbia l'esperienza per guidarla.
rеpne scasb
12-10-2008, 23:57
■
cdimauro
12-10-2008, 23:58
Anch'io programmo per portare a casa il pane e, come ti dicevo nell'altro thread, l'azienda di Genova che ha sviluppato il software gestionale e di cui disponiamo i sorgenti, proprio non ne vuol sapere di fare il porting verso altri linguaggi come Java o C#(e minacciano di toglierci l'autorizzazione alla rivendita e alle personalizzazioni ogni volta che il titolare rivolge loro una richiesta in tal senso). Per loro conta si il tempo, ma in termini di prestazioni, ma in termini di velocità di esecuzione.
E direi che se sono riusciti a raggiungere l'obiettivo di trentamila installazioni, di mercato se ne intendono.
Ho lavorato per un po' di anni anch'io nello sviluppo di gestionali, e francamente le prestazioni sono tutt'altro che l'obiettivo primario per questo genere di applicazioni.
No, non hai alcun diritto, in quanto quelle che "ORA" spacci per opinioni, qualche post piu' in alto le spacci come "VERITA' ASSOLUTE". Magari ogni tanto, ricordati una locuzione cara quanto adatta a chi esprime opinioni personali: "SECONDO ME".
Se ti riferisci a questi:
http://www.hwupgrade.it/forum/showpost.php?p=24512023&postcount=5
http://www.hwupgrade.it/forum/showpost.php?p=24512678&postcount=8
http://www.hwupgrade.it/forum/showpost.php?p=24534788&postcount=35
Confermo parola per parola tutto e senza nemmeno mettere "secondo me".
:rolleyes:
Ribadisco: rileggiti.
Ho parlato di scrivere un esecutore di query, non ho sott'inteso da nessuna parte che scrivendolo in Python si "risolva il problema"
Cmq poi andiamo a chiederlo a chi quel DBMS lo compra e lo usa ;D
Per un programmatore rispettare i requisiti di un problema è l'obiettivo principale, per cui ci tenevo a precisarlo.
Quanto ai DBMS, dipende da quello che si deve fare. Esempio: http://en.wikipedia.org/wiki/ZODB
E' scritto in Python ed è molto usato (anche perché è legato a Zope). ;)
rеpne scasb
13-10-2008, 00:00
■
cdimauro
13-10-2008, 00:01
Non potevi farne a meno di rispondere adesso in questo modo. In caso contrario, l'essere prevenuto sarebbe stato lapalissiano
Sì, non potevo farne a meno. E allora? Tu non puoi fare a meno di essere così ruvida e altezzosa? Sei davvero seccante quando ti ci metti.
rеpne scasb
13-10-2008, 00:02
■
cdimauro
13-10-2008, 00:04
Comincio a supporre che le chiacchiere che si sentono sul tuo conto siano vere.
Aveva ragione Fran. Al 100%.
variabilepippo
13-10-2008, 00:04
Come al solito ho frainteso. Sara' un'abitudine.
Mai che qualcuno possa lontanamente supporre di essersi spiegato male.
Puoi sempre quotarmi... :)
Io penso (ed ho affermato più volte) che il C sia uno strumento davvero indispensabile in alcuni casi e, da un certo punto di vista lo trovo un linguaggio molto elegante, ma da qui a farlo passare come un linguaggio didattico (=da insegnare a chi non sappia nulla di programmazione, ossia il 16enne che esce dalla discoteca o lo studente quadratico medio) ce ne passa... E di questo si discuteva, anche perché il titolo del thread è "consigli per iniziare a programmare".
cdimauro
13-10-2008, 00:06
Ancora una volta non posso che condividere in toto. ;)
Bastava leggere, comunque.
Ho detto ciò?! Mi sembra di aver detto esattamente il contrario... Cioè che lo studente potrà (=possibilità) diventare un guru dell'informatica, ma visto che di guru ce ne sono pochi è più probabile (=triste realtà) che si ritrovi a scrivere codice pessimo e pieno di bug, magari in C, proprio perché non è un linguaggio per tutti. E visto che neanche una Ferrari è un'automobile per tutti a me sembra inutile darla in mano a chi non abbia l'esperienza per guidarla.
E' anche vero che non conosciamo le sue potenzialità, quindi non mi sembra il caso di sconsigliare il C a priori. Inoltre difficilmente un suo codice pieno di bug farà danni rilevanti ;)
||ElChE||88
13-10-2008, 00:23
"Il fatto e' che i programmatori "scarsi" che non sono in grado di utilizzare il C, perche' non ne hanno le capacita' intellettuali, si dedicano a linguaggi di programmazione facilitati (oggi esistenti), che permettono a chi e' meno dotato di programmare con basso sforzo e alta produttivita'."
:rotfl: :rotfl: :rotfl: :rotfl:
:rotfl: :rotfl: :rotfl: :rotfl:
:rotfl: :rotfl: :rotfl: :rotfl:
:rotfl: :rotfl: :rotfl: :rotfl:
variabilepippo
13-10-2008, 00:27
E' anche vero che non conosciamo le sue potenzialità, quindi non mi sembra il caso di sconsigliare il C a priori.
Se dopo aver provato un "linguaggio facilitato" dovesse sentirlo inadatto ai propri scopi può sempre passare al C, all'Assembly, al Miranda, al COBOL... Così come il neopatentato, dopo aver fatto esperienza con la Panda scassata della nonna può tranquillamente lanciarsi a 300km/h su una Lamborghini o guidare un TIR con 5 rimorchi. :rolleyes:
Inoltre difficilmente un suo codice pieno di bug farà danni rilevanti
Non mi preoccupa il suo "Hello World", ma le cattive abitudini che tanti programmatori C alle prime armi fanno proprie e non si scrollano di dosso con il passare del tempo. In un programma implementato in C un programmatore inesperto deve tenere sotto controllo molte più cose di quante possa/debba conoscere. Chiaramente ci saranno persone portate per lo sviluppo low-level, ma la maggior parte produrrà porcherie per colpa di: limiti intellettivi, carenza di docenti preparati, materiale didattico non sempre valido, complessità degli strumenti utilizzati, necessità di concentrarsi su dettagli non direttamente correlati alla soluzione del problema (visto che in altri linguaggi il problema si risolve ugualmente, senza doversi curare di loro)...
cdimauro
13-10-2008, 00:28
E' anche vero che non conosciamo le sue potenzialità, quindi non mi sembra il caso di sconsigliare il C a priori. Inoltre difficilmente un suo codice pieno di bug farà danni rilevanti ;)
Agli altri magari no, ma a lui sì, dovendosi confrontare con segmentation fault vari e double delete. :D
Tutte cose che in un linguaggio managed non esistono. :cool:
:rotfl: :rotfl: :rotfl: :rotfl:
:rotfl: :rotfl: :rotfl: :rotfl:
:rotfl: :rotfl: :rotfl: :rotfl:
:rotfl: :rotfl: :rotfl: :rotfl:
E' che tu non sai che in un documento di Intel c'era una ricerca che era arrivata alla conclusione che le donne sono 26 volte più capaci degli uomini a programmare (se non erro).
Io sono un uomo, quindi non posso che essere più scarso di una donna per queste cose. :p
Si è discusso più volte in questo forum di come il C non sia un linguaggio didattico, né un linguaggio produttivo, né un linguaggio semplice da imparare/usare.
a me pare che le conclusioni erano molto diverse
Il C è indispensabile in alcuni contesti, ma questi contesti non riguardano i programmatori principianti... Non si impara a guidare su una Ferrari da Formula 1, il rischio concreto è quello di schiantarsi alla prima curva o di non partire affatto! :D
C sarebbe la ferrari? è uno dei linguaggi con meno fronzoli che ci sono sulla faccia della terra.
Inoltre si può (e secondo me si dovrebbe) imparare a programmare in C++ senza essere stati esposti al C, altrimenti si tirano fuori minestroni che non sono né C né C++. :muro:
quindi da cosa vuoi iniziare? dal polimorfismo?
imparare a programmare significa anche sapere quali strumenti usare e come usarli. se uno usa C++ come se fosse C non sa programmare in C++
ma non è colpa del C
||ElChE||88
13-10-2008, 00:32
E' che tu non sai che in un documento di Intel c'era una ricerca che era arrivata alla conclusione che le donne sono 26 volte più capaci degli uomini a programmare (se non erro).
Io sono un uomo, quindi non posso che essere più scarso di una donna per queste cose. :p
Pensa, io sono uomo e quando devo programmarmi qualche applicazione per uso personale scelgo il C# invece del C (pur conoscendoli entrambi più o meno allo stesso livello).
Secondo il documento intel + il ragionamento di rbns scsarbd sono il più coglione dei programmatori. :asd:
a me pare che le conclusioni erano molto diverse
Ancora? :doh: :doh: :doh: :doh:
variabilepippo
13-10-2008, 00:35
a me pare che le conclusioni erano molto diverse
Cioè che un programmatore senza alcuna esperienza debba essere costretto a scontrarsi con tutti i dettagli a basso livello per risolvere un problema?
C sarebbe la ferrari? è uno dei linguaggi con meno fronzoli che ci sono sulla faccia della terra.
Esatto, il C è veloce, difficile da guidare e pericoloso come una Ferrari messa in mano ad un guidatore inesperto.
quindi da cosa vuoi iniziare? dal polimorfismo?
No, si dovrebbe iniziare dal creare una forma mentale adatta alla soluzione dei problemi:
1) In maniera indipendente dagli strumenti
2) Senza introdurre problemi accessori (segmentation fault, gestione manuale della memoria, uso di funzioni low-level per la gestione dell'I/O, reimplementazione da zero di strutture dati basilari, ...).
cdimauro
13-10-2008, 00:39
Pensa, io sono uomo e quando devo programmarmi qualche applicazione per uso personale scelgo il C# invece del C (pur conoscendoli entrambi più o meno allo stesso livello).
Secondo il documento intel + il ragionamento di rbns scsarbd sono il più coglione dei programmatori. :asd:
No, semplicemente... saresti dovuto nascere donna. :p
Ancora? :doh: :doh: :doh: :doh:
Gli antichi latini dicevano "repetita iuvant". Mi sa che avevano torto marcio... :asd:
Se dopo aver provato un "linguaggio facilitato" dovesse sentirlo inadatto ai propri scopi può sempre passare al C, all'Assembly, al Miranda, al COBOL... Così come il neopatentato, dopo aver fatto esperienza con la Panda scassata della nonna può tranquillamente lanciarsi a 300km/h su una Lamborghini o guidare un TIR con 5 rimorchi. :rolleyes:
Non mi preoccupa il suo "Hello World", ma le cattive abitudini che tanti programmatori C alle prime armi fanno proprie e non si scrollano di dosso con il passare del tempo. In un programma implementato in C un programmatore inesperto deve tenere sotto controllo molte più cose di quante possa/debba conoscere. Chiaramente ci saranno persone portate per lo sviluppo low-level, ma la maggior parte produrrà porcherie per colpa di: limiti intellettivi, carenza di docenti preparati, materiale didattico non sempre valido, complessità degli strumenti utilizzati, necessità di concentrarsi su dettagli non direttamente correlati alla soluzione del problema (visto che in altri linguaggi il problema si risolve ugualmente, senza doversi curare di loro)...
Secondo me questo è vero solo nel caso di programmi complessi. Potresti fare esempi di tutte queste cose da tenere sott'occhio?
variabilepippo
13-10-2008, 01:18
Secondo me questo è vero solo nel caso di programmi complessi. Potresti fare esempi di tutte queste cose da tenere sott'occhio?
Gestione della memoria, gestione "manuale" delle stringhe, gestione dei puntatori, caccia a buffer overflow/segmentation fault/memory leaks, uso corretto dei tipi nella gestione dell'I/O, problemi legati alla precedenza degli operatori, implementazione di strutture dati e di funzioni non direttamente legate alla soluzione del problema (ma non disponibili nella libreria standard), endian(n)ess, conoscenza dei comportamenti non definiti, errori legati al case-sensitivity solo per citare le cose più superficiali.
Potrei proporti una caterva di spezzoni di codice C apparentemente corretti ma contenenti errori più o meno subdoli, errori che un programmatore alle prime armi (ed anche qualche programmatore un po' più navigato) non riuscirebbe a comprendere neanche con una spiegazione dettagliata.
Ti propongo per esempio poche righe di codice scritte (appositamente) con i piedi, zeppe di errori di ogni genere, pensi che un programmatore alle prime armi possa identificarne più di uno o due guardando il codice?
#include <stdio.h>
#include <stdlib.h>
char *funzione() {
char string[10];
sprintf(string,"123 prova, prova, prova, ...");
return(string);
}
void main(){
int a=0, b=1;
char *p;
char buffer[100];
scanf("%d %d", a, b);
sprintf(buffer,"output: %d %d");
if (b & 1 == 0)
{
p = funzione();
printf("%s\n", p);
}
}
Gestione della memoria, gestione "manuale" delle stringhe, gestione dei puntatori, caccia a buffer overflow/segmentation fault/memory leaks, uso corretto dei tipi nella gestione dell'I/O, problemi legati alla precedenza degli operatori, implementazione di strutture dati e di funzioni non direttamente legate alla soluzione del problema (ma non disponibili nella libreria standard), endian(n)ess, conoscenza dei comportamenti non definiti, errori legati al case-sensitivity solo per citare le cose più superficiali.
Potrei proporti una caterva di spezzoni di codice C apparentemente corretti ma contenenti errori più o meno subdoli, errori che un programmatore alle prime armi (ed anche qualche programmatore un po' più navigato) non riuscirebbe a comprendere neanche con una spiegazione dettagliata.
Ti propongo per esempio poche righe di codice scritte (appositamente) con i piedi, zeppe di errori di ogni genere, pensi che un programmatore alle prime armi possa identificarne più di uno o due guardando il codice?
#include <stdio.h>
#include <stdlib.h>
char *funzione() {
char string[10];
sprintf(string,"123 prova, prova, prova, ...");
return(string);
}
void main(){
int a=0, b=1;
char *p;
char buffer[100];
scanf("%d %d", a, b);
sprintf(buffer,"output: %d %d");
if (b & 1 == 0)
{
p = funzione();
printf("%s\n", p);
}
}
Beh, ma la cose come gestione di memoria e puntatori vengono dopo e gradualmente .. Poi dai, nessuno scriverebbe un programma del genere.. L'unica cosa veramente ostica qui è, a mio parere, l'errore di ritornare un puntatore a un'area di memoria allocata localmente. Quello si, oppure dimenticarsi di dare l'indirizzo allo scanf(ma quella è più che altro una svista, a volte capita a me ancora adesso :P) ma se uno mi dichiara un char[10] e mi ci mette una stringa come quella, gli suggerisco (con tatto e delicatezza) di dedicarsi ad altro... :D
variabilepippo
13-10-2008, 02:04
Beh, ma la cose come gestione di memoria e puntatori vengono dopo e gradualmente ..
Non molto dopo rispetto al primo "Hello World" e sono comunque fonti di errori e complicazioni inutili per un principiante... :)
Poi dai, nessuno scriverebbe un programma del genere..
Un programmatore alle prime armi con il C scrive cose ben peggiori ed alcuni errori/sviste capitano anche a programmatori più esperti.
Nel codice ci sono errori più subdoli rispetto a quelli rilevati, inoltre è stato scritto di getto senza andare a scomodare pitfalls più "ricercati" del C. :)
cdimauro
13-10-2008, 08:26
Ancora una volta concordo con variabilepippo. In C dopo il classico "Hello, world!" (che richiede già l'uso del preprocessore) si passa all'altrettanto classico "inserire due numeri e stamparne la somma", e già qui si deve far ricorso ai puntatori...
Roba che non succede con linguaggi addirittura più vecchi, come il Pascal, il cui uso dei puntatori avviene molto più avanti. Per non parlare poi di linguaggi come Delphi (evoluzione del Pascal), che ne riducono l'uso ai minimi termini...
E detto fra noi: fra un programmatore che usa un linguaggio ad alto livello impiegando 10 minuti per risolvere un problema, e uno che usa il C ma impiega mezza giornata, per me quello più scarso è evidente chi sia... :cool:
Dipende sempre da quali sono gli obiettivi del problema da risolvere. Bisogna sempre tenere conto del target prestazionale, dell'ambiente in cui il programma dovrà girare e di tanti altre problematiche che rendono la tua affermazione un tantino semplicistica ;)
cdimauro
13-10-2008, 08:41
Potrebbe sembrarlo, ma, come ho detto anche dopo, è fondamentale che i requisiti del problema siano stati rispettati.
Se l'obiettivo è di realizzare il firmware per un microcontroller (che spesso sono molto limitati come risorse) ovviamente non userei Python, ma C (o C++).
Al più potrei usare Python per ottenerne velocemente un modello e testarlo, per poi convertire il codice in C/C++. ;)
Al più potrei usare Python per ottenerne velocemente un modello e testarlo, per poi convertire il codice in C/C++. ;)
Su questo concordo. Imho su un progetto grande bisogna sempre partire da un linguaggio di alto livello (però non certo in Python :D), proprio per motivi di produttività. Chiaramente si sta parlando della realizzazione di un programma sotto commessa, in cui la variabile tempo di realizzazione è fondamentale.
Poi se i requisiti prestazionali non vengono raggiunti, bisogna scendere di livello per implementare le porzioni di codice che fanno da collo di bottiglia in un linguaggio di più basso livello.
cdimauro e repne scasb: per favore cercate di non punzecchiarvi in questo modo.
cdimauro
13-10-2008, 08:56
Su questo concordo. Imho su un progetto grande bisogna sempre partire da un linguaggio di alto livello (però non certo in Python :D), proprio per motivi di produttività. Chiaramente si sta parlando della realizzazione di un programma sotto commessa, in cui la variabile tempo di realizzazione è fondamentale.
Poi se i requisiti prestazionali non vengono raggiunti, bisogna scendere di livello per implementare le porzioni di codice che fanno da collo di bottiglia in un linguaggio di più basso livello.
(Quasi) Perfettamente d'accordo. :)
Se Python non piace (se non lo si digerisce c'è poco da fare :D) ci sono tanti altri linguaggi di alto livello. ;)
cdimauro e repne scasb: per favore cercate di non punzecchiarvi in questo modo.
Va bene, per me non c'è problema. Preferisco attenermi agli aspetti squisitamente tecnici della discussione.
Cioè che un programmatore senza alcuna esperienza debba essere costretto a scontrarsi con tutti i dettagli a basso livello per risolvere un problema?
e chi lo costringe, ognuno ha le sue attitudini
Esatto, il C è veloce, difficile da guidare e pericoloso come una Ferrari messa in mano ad un guidatore inesperto.
è un paragone che non regge, i linguaggi (e sottolineo "linguaggio") di alto livello hanno una complessità molto maggiore, quindi è impossibile che rispetto a loro C sia la ferrari.
No, si dovrebbe iniziare dal creare una forma mentale adatta alla soluzione dei problemi:
1) In maniera indipendente dagli strumenti
perfettamente d'accordo.
e qual'è questa conoscenza indipendente dal linguaggio se non la programmazione strutturata?
si può imparare la programmazione strutturata con C? si, quindi anche C offre conoscenze indipendenti dagli strumenti
2) Senza introdurre problemi accessori (segmentation fault, gestione manuale della memoria, uso di funzioni low-level per la gestione dell'I/O, reimplementazione da zero di strutture dati basilari, ...).
segmentation fault -> eccezioni
gestione manuale della memoria -> è utile ma si potrebbe evitare inizialmente
gestione I/O -> in C non è low level
reimplementazione strutture basilari -> mi sembra ottimo se uno vuole imparare
non è perfetto, ma quale linguaggio lo è?
ma direi che quasi quasi è inutile continuare con questi thread perchè io ho una teoria..
ciao, vorrei sapere come imparare a programmare vorrei chiedervi aiuto perchè la cosa mi interessa molto.
premetto che non so molto di computer.
se la cosa ti interessasse veramente sapresti qualcosa di computer forse :fagiano:
è come dire: "adoro giocare a cricket però non ho idea di quali siano le regole"
forse era più corretto: "vorrei conoscere il mondo della programmazione per scoprire se mi piace o no"
il mio consiglio è di scegliere un linguaggio tra i più diffusi e di impararlo, diffida di quelli che dicono di aver scoperto il sacro graal
Il C ed il C++ sono 2 linguaggi "molto diversi", quando un programmatore C scrive codice C++ tende a non usare le caratteristiche tipiche del C++ per "riciclare" quanto imparato durante lo studio del C. Da qui il minestrone di cui prima...
Prova, per esempio, a scrivere in C++ un programmino che metta 10 numeri casuali in una lista e successivamente ordini la lista in modo crescente, così si potrà valutare se quanto scritto è in realtà C, C++ o un mix dei 2. :)
#include<iostream>
using namespace std;
int main() {
unsigned short int v[10];
char ris;
srand(time(NULL));
cout<<"Generatore di numeri causali, premere invio per avviare"<<endl;
cin.get();
do {
for(int i=0;i<10;i++) {
v[i]=rand() % 100 +1;
cout<<"Il numero casuale è: "<<v[i]<<endl;
}
unsigned short int appoggio;
for(int l=0;l<10;l++) {
for(int j=0;j<9;j++) {
if(v[j]>v[j+1]) {
appoggio=v[j];
v[j]=v[j+1];
v[j+1]=appoggio;
}
}
}
for(int k=0;k<10;k++) {
cout<<v[k]<<endl;
}
cout<<"Vuoi uscire?"<<endl;
cin.width(1);
cin>>ris;
}while(ris!='s');
cin.get();
return 0;
}
l'ho fatto in 10 minuti, e non mi chiedere perché, ma il compilatore non accetta l'utilizzo di una stessa variabile per un altro ciclo, anche se il precedente è terminato :rolleyes:
comunque imho l'unico problema per un newbie con l'allocazione dinamica è la creazione di memoria leak :O
Appunto...questo è praticamente C con l'i/o del C++ :D
in questo programmino, non c'è bisogno né di funzioni, e quindi neanche di oggetti, è molto improbbile trovare delle differenze tra c e c++ in questo esempio, se non la direttiva using namespace std; e l'uso di header senza estensione :D
in questo programmino, non c'è bisogno né di funzioni, e quindi neanche di oggetti, è molto improbbile trovare delle differenze tra c e c++ in questo esempio, se non la direttiva using namespace std; e l'uso di header senza estensione :D
Veramente volendo un oggetto lo potevi fare...il generatore casuale.
Veramente volendo un oggetto lo potevi fare...il generatore casuale.
secondo me non ha molto senso creare un oggetto partendo da una funzione standard ISO, se avessi invece scritto una funzione che simuli un buon generatore di numeri casuali, allora avrei potuto fare un oggetto
secondo me non ha molto senso creare un oggetto partendo da una funzione standard ISO, se avessi invece scritto una funzione che simuli un buon generatore di numeri casuali, allora avrei potuto fare un oggetto
Sicuramente se te lo immagini limitato solo a quel programma non ha senso, ma se te lo immagini in termini di riusabilità allora ha perfettamente senso.
slartibartfast
13-10-2008, 18:03
l'ho fatto in 10 minuti, e non mi chiedere perché, ma il compilatore non accetta l'utilizzo di una stessa variabile per un altro ciclo, anche se il precedente è terminato :rolleyes:
comunque imho l'unico problema per un newbie con l'allocazione dinamica è la creazione di memoria leak :O
Perché hai utilizzato la "facilities" del c++ (ma anche del c 99) di potere creare una variabile utile solo come contatore di un ciclo ( for (int i) che è valida esclusivamente all'interno del ciclo stesso.
in questo programmino, non c'è bisogno né di funzioni, e quindi neanche di oggetti, è molto improbbile trovare delle differenze tra c e c++ in questo esempio, se non la direttiva using namespace std; e l'uso di header senza estensione :D
Non dimentichiamo il poter dichiarare le variabili dove si vuole, una vera manna dal cielo
Poi caspita, potevi inserirci un bel bool...
PS: per ordinare esiste il sort(puntatore inizio, puntatore fine), che corre come achille, invece di uno scrauso "babbolsort", è già pronto ed è lungo una riga. Poi per lo scambio tra due variabili esiste il comodissimo swap(v1, v2)
slartibartfast
13-10-2008, 18:10
Non dimentichiamo il poter dichiarare le variabili dove si vuole, una vera manna dal cielo
Poi caspita, potevi inserirci un bel bool...
Secondo me dichiarare le variabili dove si vuole è un po' una porcata: riduce la leggibilità del codice, molto meglio dichiararle tutte in testa alla funzione.
Perché hai utilizzato la "facilities" del c++ (ma anche del c 99) di potere creare una variabile utile solo come contatore di un ciclo ( for (int i) che è valida esclusivamente all'interno del ciclo stesso.
ecco, questo non lo sapevo, ho scritto int i, proprio perché è mi abitudine, dichiarare le variabili quando servono, e a differenza di quanto pensi slartibartfast, serve invece a migliorare la leggibilità del codice.
PS: per ordinare esiste il sort(puntatore inizio, puntatore fine), che corre come achille, invece di uno scrauso "babbolsort", è già pronto ed è lungo una riga. Poi per lo scambio tra due variabili esiste il comodissimo swap(v1, v2)
e non conoscevo neanche il sort :D
e alla fine sono sempre utili questi semplici codici, per imparare cose nuove :)
variabilepippo
13-10-2008, 18:25
in questo programmino, non c'è bisogno né di funzioni, e quindi neanche di oggetti, è molto improbbile trovare delle differenze tra c e c++ in questo esempio, se non la direttiva using namespace std; e l'uso di header senza estensione
Un programmatore C++ senza un'esposizione al C avrebbe, per esempio, usato la STL e non codice C con la sola gestione dell'I/O basata sugli streams. Non basta usare cin e cout per scrivere un programma che sfrutti le peculiarità del C++. Se ciò vale per un programma così piccolo, immagina quando si tratta di progettare un sistema più complesso. In tal caso un programmatore abituato a pensare in termini di codice C difficilmente impiegherà tutti gli strumenti messi a disposizione dal C++...
ecco, questo non lo sapevo, ho scritto int i, proprio perché è mi abitudine, dichiarare le variabili quando servono, e a differenza di quanto pensi slartibartfast, serve invece a migliorare la leggibilità del codice.
Non vedo come avere dichiarazioni di variabili sparpagliate per tutto il sorgente possa migliorare la leggibilità del codice, io lo chiamerei "dirty coding". Al limite può essere un vantaggio nel tenere sotto controllo i side effects, ma il mescolare dichiarazioni di variabile e codice mi fa pensare soltanto ad un minestrone.
Una possibile versione "un po' più C più più" :):
#include <iostream>
#include <algorithm>
#include <vector>
#include <ctime>
using namespace std;
int main (void) {
vector<int> numeri;
vector<int>::iterator it;
srand (unsigned(time(NULL)));
for (int i = 1; i <= 10; ++i) numeri.push_back(i); // Si potrebbe usare la funzione generate
random_shuffle(numeri.begin(), numeri.end());
for (it = numeri.begin(); it != numeri.end(); ++it) cout << *it << " ";
}
adesso rispondo solo alla questione delle variabili, che vado a mangiare :D :
il fatto di dichiarare le variabili al momento del bisogno, rende il codice autodocumentato, nonché più semplice il lavoro del programmatore
Secondo me dichiarare le variabili al volo solo nello scope nel quale vengono usate rende il codice più pulito e separa meglio i blocchi logici
rеpne scasb
13-10-2008, 20:31
■
variabilepippo
13-10-2008, 20:31
il fatto di dichiarare le variabili al momento del bisogno, rende il codice autodocumentato, nonché più semplice il lavoro del programmatore
Restringere il campo di visibilità delle variabili può portare a delle ottimizzazioni da parte dei compilatori, ma io trovo che l'impatto sulla leggibilità sia negativo, sarà che sono cresciuto con il Pascal (sai sempre DOVE sono state dichiarate le variabili), ma pensare di dover andare a caccia di variabili in funzioni non formate da poche righe di codice mi pare un incubo.
cdimauro
13-10-2008, 21:35
Anch'io provengo dalla scuola pascaliana :D e in parte condivido le tue valutazioni.
Però dichiarare le variabili nel contesto di un blocco di codice non è soltanto comodo: ti mette davanti agli occhi tutto ciò che riguarda il blocco in questione. Hai, insomma, una visione d'insieme (lasciando perdere le eventuali ottimizzazioni, che al momento non interessa trattare).
Tutto ciò è tanto vero quanto più piccole sono le funzioni, e sappiamo che è meglio cercare di avere funzioni con qualche decina di righe di codice al massimo (personalmente cerco di far stare tutto il codice all'interno dell'area visibile dello schermo).
My 2 cents. :)
variabilepippo
13-10-2008, 21:51
Tutto ciò è tanto vero quanto più piccole sono le funzioni, e sappiamo che è meglio cercare di avere funzioni con qualche decina di righe di codice al massimo
Purtroppo spesso ci si ritrova a lavorare con codice scritto da programmatori che non rispettano (per vari motivi) questa regola di buonsenso e dover "cercare" la dichiarazione di una variabile IMHO non migliora la leggibilità del sorgente. Sarà per questo che mi piacciono i linguaggi che impongono una certa disciplina (Pascal, Python, ...) nella scrittura del codice. :)
cdimauro
13-10-2008, 22:10
Esattamente. Infatti avevo scritto che è meglio cercare di avere funzioni fatte così, ma poi la realtà purtroppo è ben diversa.
Anch'io, comunque, preferisco lavorare con linguaggi che impongono una disciplina. Per questo m'è venuto naturale passare da Pascal a Python. :)
Preferisco un compilatore che mi bacchetta le manine al minimo errore anziché uno che "lascia correre" e "prende delle decisioni" al posto mio. :D
E allora seguilo e libera questo forum dalla tua presenza.
Ho detto basta polemiche. Ultimo avvertimento.
Restringere il campo di visibilità delle variabili può portare a delle ottimizzazioni da parte dei compilatori, ma io trovo che l'impatto sulla leggibilità sia negativo, sarà che sono cresciuto con il Pascal (sai sempre DOVE sono state dichiarate le variabili), ma pensare di dover andare a caccia di variabili in funzioni non formate da poche righe di codice mi pare un incubo.
ovviamente la dichiarazione delle variabili e la sua utilità è soggettiva, però credo che anche quando si gurda un pezzo di codice, si legge riga per riga, e la dichiarazione la trovi per forza
Spesso metto una linea vuota prima di una dichiarazione di variabile non all'inizio di un metodo. Tende ad evidenziare il blocco di codice in cui quella variabile viene utilizzata.
Spesso metto una linea vuota prima di una dichiarazione di variabile non all'inizio di un metodo. Tende ad evidenziare il blocco di codice in cui quella variabile viene utilizzata.
anche questo può servire ad evidenziare bene
~FullSyst3m~
14-10-2008, 19:43
E allora seguilo e libera questo forum dalla tua presenza.
Non credi di esagerare un pò?
Spesso metto una linea vuota prima di una dichiarazione di variabile non all'inizio di un metodo. Tende ad evidenziare il blocco di codice in cui quella variabile viene utilizzata.
Sotto questo punto di vista Python è fantastico! Si può dire che si auto-sistema il codice!
Non credi di esagerare un pò?
E' stata già richiamata. Meglio non continuare la discussione.
Mi ero perso la discussione...
Scusa repne, senza polemica, ma la tua frase non la capisco.
"Il fatto e' che i programmatori "scarsi" che non sono in grado di utilizzare il C, perche' non ne hanno le capacita' intellettuali, si dedicano a linguaggi di programmazione facilitati (oggi esistenti), che permettono a chi e' meno dotato di programmare con basso sforzo e alta produttivita'."
Alcune osservazioni:
- non credo che per utilizzare C siano necessarie chissà quali capacità intellettuali. Ne servono di più per programmare, chessò, in Haskell, e pensare alla soluzione di un problema in termini di monadi! E anche se fossero necessarie grosse capacità intellettuali, per quale motivo questo dovrebbe essere un elemento qualificante?
- il C secondo te va bene per ogni tipo di task?
- per quale motivo permettere a chi è meno dotato di programmare con basso sforzo ed alta produttività dovrebbe essere un male? Considerando che, seguendo questa linea, chi invece è molto dotato dovrebbe programmare con bassissimo sforzo ed altissima produttività.
Non vuole essere una provocazione, sono sinceramente curioso.
~FullSyst3m~
14-10-2008, 20:53
Mi ero perso la discussione...
Scusa repne, senza polemica, ma la tua frase non la capisco.
Alcune osservazioni:
- non credo che per utilizzare C siano necessarie chissà quali capacità intellettuali. Ne servono di più per programmare, chessò, in Haskell, e pensare alla soluzione di un problema in termini di monadi! E anche se fossero necessarie grosse capacità intellettuali, per quale motivo questo dovrebbe essere un elemento qualificante?
- il C secondo te va bene per ogni tipo di task?
- per quale motivo permettere a chi è meno dotato di programmare con basso sforzo ed alta produttività dovrebbe essere un male? Considerando che, seguendo questa linea, chi invece è molto dotato dovrebbe programmare con bassissimo sforzo ed altissima produttività.
Non vuole essere una provocazione, sono sinceramente curioso.
Quoto. E comunque non credo che una persona che sappia programmare, in qualunque linguaggio esso sappia o conosca, sia cosi poco dotata o abbia limiti intellettuali. Come dice cdimauro l'importante è imparare a programmare, il linguaggio è un mezzo. Se uno sa programmare tanto stupido non è e chi con più impegno chi con meno può programmare anche in assembly. La forza di volontà e la voglia di imparare sono importantissime e ti possono portare da qualunque parte se lo si vuole. Se si ha la giusta forma mentis e si sa programmare, con la volontà e l'impegno (come ho già detto) si può imparare qualunque linguaggio
Restringere il campo di visibilità delle variabili può portare a delle ottimizzazioni da parte dei compilatori, ma io trovo che l'impatto sulla leggibilità sia negativo, sarà che sono cresciuto con il Pascal (sai sempre DOVE sono state dichiarate le variabili), ma pensare di dover andare a caccia di variabili in funzioni non formate da poche righe di codice mi pare un incubo.
Però immagina di leggere un codice del genere:
int main() {
variabili varie;
int x; //fa tante belle cose nel for qui sotto
//questo for fa tante belle cose
for (...) {
//tante belle cose
}
}
Supponiamo che la x serva solo all'interno del for.
Stai leggendo questo codice:
1) Ti fidi del mio esaustivo commento e passi oltre, dando per scontato che il mio for faccia ciò che dichiara. Perchè ti sei dovuto benchè minimamente preoccupare della variabile x?
2) Non ti fidi e vuoi capire come funziona. A quel punto entri in un "nuovo mondo" e inizi a esplorare il nuovo blocco. Esattamente come quando inizi a leggerti una funzione, se l'avessi messa nel for ti troveresti all'inizio la variabile e possibilmente una riga che spiega il suo ruolo, se non è scontato. Altrimenti vai su, ma è come avere una variabile di senso locale a una funzione dichiarata globale, IMHO
lolloclat
14-10-2008, 22:12
:( mmm okey sono già nei casini ho provato a scaricare phyton ma ho scaricato un virus per cui... vi chiedo un sito sicuro da dove scaricarlo.
io ho windows vista home premium 32bit se vi puo essere utile.
grazie per il vostro aiuto.:D
variabilepippo
14-10-2008, 22:17
Ti consiglio di scaricare ActiveState Python (http://www.activestate.com/Products/activepython/index.mhtml), ha una documentazione più estesa ed alcuni comodi pacchetti aggiuntivi rispetto alla distribuzione ufficiale.
lolloclat
15-10-2008, 16:29
:mano:grazie mille!!:D
~FullSyst3m~
15-10-2008, 18:08
Però immagina di leggere un codice del genere:
int main() {
variabili varie;
int x; //fa tante belle cose nel for qui sotto
//questo for fa tante belle cose
for (...) {
//tante belle cose
}
}
Supponiamo che la x serva solo all'interno del for.
Stai leggendo questo codice:
1) Ti fidi del mio esaustivo commento e passi oltre, dando per scontato che il mio for faccia ciò che dichiara. Perchè ti sei dovuto benchè minimamente preoccupare della variabile x?
2) Non ti fidi e vuoi capire come funziona. A quel punto entri in un "nuovo mondo" e inizi a esplorare il nuovo blocco. Esattamente come quando inizi a leggerti una funzione, se l'avessi messa nel for ti troveresti all'inizio la variabile e possibilmente una riga che spiega il suo ruolo, se non è scontato. Altrimenti vai su, ma è come avere una variabile di senso locale a una funzione dichiarata globale, IMHO
Una variabile di senso locale? Se la metti prima della funziona la variabile è globale. In ogni caso non vedo tutta questa differenza in questo caso. O prima della funzione o nella funzione è facile riconoscerla, soprattutto con i commenti. Il problema, come ha detto variabilepippo, si pone poi quando non ci sono funzioni da poche righe
~FullSyst3m~
15-10-2008, 23:12
:mano:grazie mille!!:D
http://www.python.it/doc/Howtothink/Howtothink-html-it/index.htm
Studia qua! Ciao!
Albitexm
17-10-2008, 23:17
Ma sopratutto EVITA il c e il c++.
Siccome sono un novizio anchio , e stò cercando di capirci qualcosa pian-piano,vorrei conoscere il perchè di questa tua affermazione.
In secondo luogo vorrei chiederti , a te e a chi vuol rispondere : la programmazione ad oggetti è indispensabile per combinare qualcosa di decente ? O si può fare qualcosa d'interessante anche con linguaggi procedurali ?
~FullSyst3m~
18-10-2008, 08:36
Siccome sono un novizio anchio , e stò cercando di capirci qualcosa pian-piano,vorrei conoscere il perchè di questa tua affermazione.
In secondo luogo vorrei chiederti , a te e a chi vuol rispondere : la programmazione ad oggetti è indispensabile per combinare qualcosa di decente ? O si può fare qualcosa d'interessante anche con linguaggi procedurali ?
Io non so il C e finchè posso mi ci voglio tenere alla larga, però credo che dipenda sempre da ciò che devi sviluppare. Se vuoi iniziare comunque studia Python, non te ne pentirai
http://www.python.it/doc/Howtothink/Howtothink-html-it/index.htm
Siccome sono un novizio anchio , e stò cercando di capirci qualcosa pian-piano,vorrei conoscere il perchè di questa tua affermazione.
È un linguaggio troppo complesso per un principiante che deve ancora cominciare. Ci sono troppe cose da tenere a mente quando si scrive il codice, troppi dettagli tecnici sull'architettura del computer e del sistema operativo da conoscere.
Prima impara a tenere in mano una pistola, per i missili intercontinentali c'è tempo.
In secondo luogo vorrei chiederti , a te e a chi vuol rispondere : la programmazione ad oggetti è indispensabile per combinare qualcosa di decente ? O si può fare qualcosa d'interessante anche con linguaggi procedurali ?
Puoi fare programmi complessi quanto vuoi anche con C e la programmazione procedurale, ti ci vorrà solo un po' più di tempo ed impegno. La programmazione ad oggetti semplifica molte cose è per questo che ha avuto così tanto successo.
Puoi fare programmi complessi quanto vuoi anche con C e la programmazione procedurale, ti ci vorrà solo un po' più di tempo ed impegno. La programmazione ad oggetti semplifica molte cose è per questo che ha avuto così tanto successo.
la programmazione a oggetti semplifica le cose su programmi complessi, non sui programmini tipo "hello world" che fa un principiante.
inoltre la programmazione a oggetti è più complessa della programmazione procedurale, necessita la conoscenza di diversi concetti che non esistono nella programmazione procedurale, mentre i concetti che esistono nella programmazione procedurale (il concetto di variabile, di funzione, di strutture di controllo ecc..) sono poi presenti nei linguaggi a oggetti.
~FullSyst3m~
18-10-2008, 13:46
Se inizia con Python credo che si troverà bene e avrà molte basi per poi poter imparare tutti i linguaggi che vuole
Se inizia con Python credo che si troverà bene e avrà molte basi per poi poter imparare tutti i linguaggi che vuole
anche se iniziasse con qualsiasi altro linguaggio, nessun linguaggio è inutile (tranne VB6 ovviamente :asd: )
~FullSyst3m~
18-10-2008, 13:50
anche se iniziasse con qualsiasi altro linguaggio, nessun linguaggio è inutile (tranne VB6 ovviamente :asd: )
Non ho detto questo, ma ci sono linguaggi più o meno semplici per chi deve iniziare. Fa cosi schifo VB6?
Non ho detto questo, ma ci sono linguaggi più o meno semplici per chi deve iniziare.
boh, secondo me la differenza non la fa il linguaggio, ma il soggetto che vuole imparare
Fa cosi schifo VB6?
si :asd:
la programmazione a oggetti semplifica le cose su programmi complessi, non sui programmini tipo "hello world" che fa un principiante.
inoltre la programmazione a oggetti è più complessa della programmazione procedurale, necessita la conoscenza di diversi concetti che non esistono nella programmazione procedurale, mentre i concetti che esistono nella programmazione procedurale (il concetto di variabile, di funzione, di strutture di controllo ecc..) sono poi presenti nei linguaggi a oggetti.
Non penso vorrà scrivere hello world per sempre quindi prima o poi dovrà imparare a programmare ad oggetti. Però come hai detto alcuni linguaggi come Java sono veramente troppo verbosi e ti costringono a conoscere concetti come Classi fin da subito anche per un semplice hello world.
Quindi per cominciare, almeno secondo me, sono meglio dei linguaggi come python o ruby che sono sempre ad oggetti ma possono essere usati in maniera procedurale per passare poi alla oop solo dopo aver imparato le basi.
Non penso vorrà scrivere hello world per sempre quindi prima o poi dovrà imparare a programmare ad oggetti. Però come hai detto alcuni linguaggi come Java sono veramente troppo verbosi e ti costringono a conoscere concetti come Classi fin da subito anche per un semplice hello world.
Quindi per cominciare, almeno secondo me, sono meglio dei linguaggi come python o ruby che sono sempre ad oggetti ma possono essere usati in maniera procedurale per passare poi alla oop solo dopo aver imparato le basi.
non è che uno che inizia a programmare con C è costretto a continuare a programmare in C per il resto della vita.
non appena sente di aver capito la programmazione procedurale può passare tranquillamente a un linguaggio come Java e imparare la programmazione a oggetti.
secondo me è molto utile cambiare linguaggio, si inizia a ragionare in maniera indipendente dal linguaggio, inoltre imparare diversi paradigmi con lo stesso linguaggio secondo me può causare confusione.
ma ripeto nessuno ha la ricetta perfetta
~FullSyst3m~
18-10-2008, 15:19
si :asd:
Eppure ci programmano un sacco di persone e fanno programmi complessi nel giro di niente. Che è magico sto linguaggio?? :cool:
ti costringono a conoscere concetti come Classi fin da subito anche per un semplice hello world.
Ai miei occhi questo è un grandissimo vantaggio ;)
Eppure ci programmano un sacco di persone e fanno programmi complessi nel giro di niente. Che è magico sto linguaggio?? :cool:
Forse è in assoluto il linguaggio più semplice da imparare, anche perché molte cose te la fa da solo l'ambiente RAD. Però è anche mooolto, ma moooolto limitato. Quando si vuole andare un minimo oltre ci si scontra sempre con problemi insormontabili o comunque noiosi.
88MIKI88
18-10-2008, 18:23
anche se iniziasse con qualsiasi altro linguaggio, nessun linguaggio è inutile (tranne VB6 ovviamente :asd: )
Io in VB6 ci programmavo e francamente mi trovavo bene forse anche perchè è il primo linguaggio che ho imparato però a me non sembra inutile. Guarda che c'è un sacco di gente che programma ancora in VB6
~FullSyst3m~
18-10-2008, 18:39
Io in VB6 ci programmavo e francamente mi trovavo bene forse anche perchè è il primo linguaggio che ho imparato però a me non sembra inutile. Guarda che c'è un sacco di gente che programma ancora in VB6
Esatto, anche a livello aziendale
Io in VB6 ci programmavo e francamente mi trovavo bene forse anche perchè è il primo linguaggio che ho imparato però a me non sembra inutile. Guarda che c'è un sacco di gente che programma ancora in VB6
beh il mio è un parere, si può non essere daccordo. secondo me usare VB6 non è programmare (non a caso non è più supportato nemmeno da microsoft.. forse si sono accorti dell'errore?)
(non a caso non è più supportato nemmeno da microsoft.. forse si sono accorti dell'errore?)
O forse perché è uscito più di 10 anni fa ;)
Io in VB6 ci programmavo e francamente mi trovavo bene forse anche perchè è il primo linguaggio che ho imparato però a me non sembra inutile. Guarda che c'è un sacco di gente che programma ancora in VB6
Per quello per cui veniva utilizzato era sicuramente sufficiente. Tutti programmi in cui la complessità maggiore era nella creazione dell'interfaccia e nella gestione dell'I/O, magari con un'interfaccia verso un DB. Per queste cose era sicuramente adatto, ma appena si andava un minimo oltre si notavano le pesanti menomazioni del linguaggio.
cdimauro
19-10-2008, 15:50
la programmazione a oggetti semplifica le cose su programmi complessi, non sui programmini tipo "hello world" che fa un principiante.
Opinabile.
inoltre la programmazione a oggetti è più complessa della programmazione procedurale, necessita la conoscenza di diversi concetti che non esistono nella programmazione procedurale, mentre i concetti che esistono nella programmazione procedurale (il concetto di variabile, di funzione, di strutture di controllo ecc..) sono poi presenti nei linguaggi a oggetti.
E' sufficiente non confondere il concetto di variabile (tanto per fare un esempio) con quello di programmazione procedurale, visto che si tratta di concetti universali / trasversali ai vari paradigmi di programmazione.
Se inizia con Python credo che si troverà bene e avrà molte basi per poi poter imparare tutti i linguaggi che vuole
Concordo.
anche se iniziasse con qualsiasi altro linguaggio, nessun linguaggio è inutile (tranne VB6 ovviamente :asd: )
Meglio VB6 che il C a questo punto.
inoltre imparare diversi paradigmi con lo stesso linguaggio secondo me può causare confusione.
"Secondo me dipende dal soggetto" :fagiano:
beh il mio è un parere, si può non essere daccordo. secondo me usare VB6 non è programmare (non a caso non è più supportato nemmeno da microsoft.. forse si sono accorti dell'errore?)
Non vedo cos'abbia di così negativo come linguaggio procedurale: magari ce lo pieghi tu? :rolleyes:
O forse perché è uscito più di 10 anni fa ;)
Esattamente. Oggi c'è di molto meglio (vedi anche VB.NET).
Opinabile.
opinabile
:asd:
E' sufficiente non confondere il concetto di variabile (tanto per fare un esempio) con quello di programmazione procedurale, visto che si tratta di concetti universali / trasversali ai vari paradigmi di programmazione.
sta di fatto che la programmazione a oggetti richiede la conoscenza di più concetti e anche più complessi (appunto gli oggetti e tutte le cose che si possono fare con gli oggetti), oltre a tutti i concetti presenti nella programmazione procedurale.
"Secondo me dipende dal soggetto" :fagiano:
l'ho sempre detto che dipende dal soggetto e inoltre non hai quotato la frase sotto, cioè che non esiste la ricetta perfetta
Non vedo cos'abbia di così negativo come linguaggio procedurale: magari ce lo pieghi tu? :rolleyes:
ad esempio l'abuso del paradigma event-driven, ma non c'è bisogno che spieghi niente considerando che è una mia personale opinione :Prrr:
Esattamente. Oggi c'è di molto meglio (vedi anche VB.NET).
ma anche senza scomodare VB.NET, ormai ci sono ambienti RAD per C++/Java (e qualsiasi altro linguaggio abbastanza di moda) che surclassano da tutte le parti VB6, quindi non ha più senso usarlo.
cdimauro
19-10-2008, 19:50
opinabile
:asd:
10 PRINT 'Opinabile': GOTO 10
:cool:
sta di fatto che la programmazione a oggetti richiede la conoscenza di più concetti e anche più complessi (appunto gli oggetti e tutte le cose che si possono fare con gli oggetti), oltre a tutti i concetti presenti nella programmazione procedurale.
Concetti come "dato", "tipo", "variabile", "condizione", ecc. sono di base nell'informatica e applicabile a qualunque paradigma.
In ogni caso tu sbagli quando parti dal presupposto che il concetto di oggetto (che appartiene propriamente al paradigma orientato agli oggetti) sia "complesso". Tutt'altro.
Per un essere umano è molto facile comprendere il concetto di oggetto, visto che si tratta dell'approccio che abbiamo con la realtà che ci circonda.
l'ho sempre detto che dipende dal soggetto e inoltre non hai quotato la frase sotto, cioè che non esiste la ricetta perfetta
Oops, scusa, l'avevo dimenticato. Grazie per avermelo ricordato.
E' Python ovviamente. :cool:
ad esempio l'abuso del paradigma event-driven, ma non c'è bisogno che spieghi niente considerando che è una mia personale opinione :Prrr:
L'abuso è legato strettamente al singolo, come dovresti ben sapere.
In Delphi si usa parecchio la pratica (preferisco questo termine a paradigma) event-driven, ma da qui a parlare di abuso ne corre...
ma anche senza scomodare VB.NET, ormai ci sono ambienti RAD per C++/Java (e qualsiasi altro linguaggio abbastanza di moda) che surclassano da tutte le parti VB6, quindi non ha più senso usarlo.
Ci credo: stiamo parlando di un prodotto vecchio di DIECI anni. Non ha nemmeno senso parlare di confronto (al limite lo confrontiamo con VB.NET).
~FullSyst3m~
19-10-2008, 20:12
"Secondo me dipende dal soggetto" :fagiano:
Alla fine il punto è sempre questo (e ti rimando al discorso che abbiamo fatto l'altro giorno riguardo la schizzofrenica (:asd:) e variabilepippo)
In ogni caso tu sbagli quando parti dal presupposto che il concetto di oggetto (che appartiene propriamente al paradigma orientato agli oggetti) sia "complesso". Tutt'altro.
Per un essere umano è molto facile comprendere il concetto di oggetto, visto che si tratta dell'approccio che abbiamo con la realtà che ci circonda.
questa storia l'ho sentita decine di migliaia di volte ma non mi ha mai convinto fino in fondo. non penso proprio che l'uomo ragiona a oggetti, in ogni caso non metto in dubbio che si tratta di un livello di astrazione superiore rispetto alla programmazione procedurale.
Ci credo: stiamo parlando di un prodotto vecchio di DIECI anni. Non ha nemmeno senso parlare di confronto (al limite lo confrontiamo con VB.NET).
qualcuno prima ha scritto che VB6 è ancora molto utilizzato nelle aziende :fagiano:
~FullSyst3m~
19-10-2008, 23:16
questa storia l'ho sentita decine di migliaia di volte ma non mi ha mai convinto fino in fondo. non penso proprio che l'uomo ragiona a oggetti, in ogni caso non metto in dubbio che si tratta di un livello di astrazione superiore rispetto alla programmazione procedurale.
qualcuno prima ha scritto che VB6 è ancora molto utilizzato nelle aziende :fagiano:
L'ho scritto io, so di alcune aziende che lo usano
Albitexm
19-10-2008, 23:19
Opinabile.
Concordo.
Meglio VB6 che il C a questo punto.
Attenzione : dal mio punto di vista di esordiente, concordo sul fatto che il Python sia un linguaggio buono per iniziare. Lo trovo intuitivo e sopratutto è presente una grande quantità di documentazione in italiano (mi è piaciuta particolarmente "imparare a programmare" di Alan Gauld, tradotto da Luca Fini).
Ma teniamo presente che nel mondo del lavoro, tutto è scritto in C o C++ .
Io sono perito elettronico , e lavoro come collaudatore riparatore in un'azienda che produce schede. Bene, tutti i programmi delle macchine di collaudo, emulatori test ecc.. che trovo sono tutti scritti in C++ .
Tutti i firmware delle schede dalla loro nascita e durante tutta la loro evoluzione , vengono sviluppati in C++. E questo da più clienti e in tutte le aziende in cui ho lavorato (dal 1989).
Quindi per iniziare sono daccordo che il Python è ok , ma non credo che poi
dopo si possa ignorare il C.
cdimauro
19-10-2008, 23:19
questa storia l'ho sentita decine di migliaia di volte ma non mi ha mai convinto fino in fondo. non penso proprio che l'uomo ragiona a oggetti,
La domanda possiamo girarla a qualche antropologo, neurologo e/o psicologo e vedere cosa risponde. :cool:
in ogni caso non metto in dubbio che si tratta di un livello di astrazione superiore rispetto alla programmazione procedurale.
In tal caso... ti sei risposto da solo. :D
qualcuno prima ha scritto che VB6 è ancora molto utilizzato nelle aziende :fagiano:
Non so se sia vero o meno (mi riferisco al "molto"), ma che sia ancora usato lo credo plausibile. D'altra parte ancora oggi mi capita di vedere delle finestre Windows che fanno girare un'applicazione DOS...
~FullSyst3m~
19-10-2008, 23:21
La domanda possiamo girarla a qualche antropologo, neurologo e/o psicologo e vedere cosa risponde. :cool:
In tal caso... ti sei risposto da solo. :D
Non so se sia vero o meno (mi riferisco al "molto"), ma che sia ancora usato lo credo plausibile. D'altra parte ancora oggi mi capita di vedere delle finestre Windows che fanno girare un'applicazione DOS...
Si è usato, non so se molto o poco ma è usato. Un mio conoscente mi ha detto che dove lavora programma in vb6 e in vb.net. Vedere delle finestre windows che fanno girare un'applicazione DOS sta a significare che viene usato vb6?
cdimauro
19-10-2008, 23:25
Attenzione : dal mio punto di vista di esordiente, concordo sul fatto che il Python sia un linguaggio buono per iniziare. Lo trovo intuitivo e sopratutto è presente una grande quantità di documentazione in italiano (mi è piaciuta particolarmente "imparare a programmare" di Alan Gauld, tradotto da Luca Fini).
Ottimo. :)
Ma teniamo presente che nel mondo del lavoro, tutto è scritto in C o C++ .
Su questo non concordo. Ne parlo meglio sotto.
Io sono perito elettronico , e lavoro come collaudatore riparatore in un'azienda che produce schede. Bene, tutti i programmi delle macchine di collaudo, emulatori test ecc.. che trovo sono tutti scritti in C++ .
Tutti i firmware delle schede dalla loro nascita e durante tutta la loro evoluzione , vengono sviluppati in C++. E questo da più clienti e in tutte le aziende in cui ho lavorato (dal 1989).
Ecco, parli di una nicchia di mercato che, quindi, non ne rappresenta la totalità.
Quindi per iniziare sono daccordo che il Python è ok , ma non credo che poi
dopo si possa ignorare il C.
Dipende strettamente da quello che si vuole / deve realizzare. Io negli ultimi 4 anni ho dovuto lavorare soltanto un mese in C++, e spero di non doverci metter mano mai più.
cdimauro
19-10-2008, 23:28
Si è usato, non so se molto o poco ma è usato. Un mio conoscente mi ha detto che dove lavora programma in vb6 e in vb.net.
VB.NET è l'evoluzione del VB6, ma, pur essendo per buona parte compatibile, è un linguaggio moderno che non ha nulla da invidiare a tanti altri più o meno rinomati.
Vedere delle finestre windows che fanno girare un'applicazione DOS sta a significare che viene usato vb6?
No, peggio: vuol dire che vengono usati linguaggi in voga ai tempi della clava. :muro:
~FullSyst3m~
19-10-2008, 23:43
VB.NET è l'evoluzione del VB6, ma, pur essendo per buona parte compatibile, è un linguaggio moderno che non ha nulla da invidiare a tanti altri più o meno rinomati.
No, peggio: vuol dire che vengono usati linguaggi in voga ai tempi della clava. :muro:
Mi sembra di intuire che non ti piacciono molto le clave :asd:
VB.NET è l'evoluzione del VB6, ma, pur essendo per buona parte compatibile, è un linguaggio moderno che non ha nulla da invidiare a tanti altri più o meno rinomati.
a me non sembra un'evoluzione. è un linguaggio totalmente diverso che infatti non è proprio compatibile con VB6.
condivide con VB6 solo lo stile della sintassi (basic like)
lolloclat
23-10-2008, 21:33
mmm ma come mai non riesco a salvare il lavoro che ho fatto in pyton? nn riesco a trovare il file e neanche con cerca me lo trova
~FullSyst3m~
23-10-2008, 21:50
mmm ma come mai non riesco a salvare il lavoro che ho fatto in pyton? nn riesco a trovare il file e neanche con cerca me lo trova
Dove lavori? Shell? IDLE? SPE? file di testo? Hai salvato il file con estensione .py?
P.S: dove lo stai studiando Python?
lolloclat
07-11-2008, 22:28
allora ho installato ActiveState ActivePython 2.5 ed ho fatto print "hello world" e poi la guida mi dice di salvarlo e l'ho salvato come hello.py poi vado nella cartella e il file nn lo trovo ...... sono alle primissime armi.......datemi una mano :cry:
grazie per il vostro futuro aiuto
ciao
cdimauro
07-11-2008, 22:40
Mi spiace, ma non uso quegli strumenti. Eventualmente prova SPE o Komodo Edit.
~FullSyst3m~
07-11-2008, 22:57
allora ho installato ActiveState ActivePython 2.5 ed ho fatto print "hello world" e poi la guida mi dice di salvarlo e l'ho salvato come hello.py poi vado nella cartella e il file nn lo trovo ...... sono alle primissime armi.......datemi una mano :cry:
grazie per il vostro futuro aiuto
ciao
Guarda dove lo salvi il file oppure fai una ricerca in windows e vedi dove è
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.