|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#61 | ||
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7258
|
Quote:
ho pure definito il concetto di "supportare" per evitare simili discorsi Quote:
puoi anche non usare i puntatori, mica è obbligatorio. se proprio li devi usare non fa male visto che nei linguaggi a oggetti si incontra il concetto di riferimento (e chi conosce i puntatori non fa molta fatica a capire come funzionano) |
||
|
|
|
|
|
#62 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Non è un obbligo, in teoria, ma nella pratica lo è.
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
#63 | |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Quote:
|
|
|
|
|
|
|
#64 | ||
|
Senior Member
Iscritto dal: Nov 2004
Città: Padova
Messaggi: 2342
|
Quote:
in ogni caso si chiedeva un consiglio soggettivo e a mio parere era Java. Grazie in ogni caso per la dritta, proverò Python quando ne avrò l'occasione. Quote:
__________________
CPU Ryzen 2600 @ 3,95Ghz + Bequiet Dark Rock TF / MB Asus X470-F Gaming / RAM 2x8GB DDR4 G.Skill FlareX 3200 CL14 / VGA Sapphire RX 7900 XT Nitro+ @ 3200Mhz / SSD Samsung 970 Pro 512GB + Sandisk 240GB Plus + Sandisk 960GB Ultra II PSU Seasonic Platinum P-660 / Headset Kingston HyperX Flight Ultima modifica di demos88 : 07-07-2008 alle 17:07. |
||
|
|
|
|
|
#65 | |||
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
![]() che java metta a disposizione strutture che supportino la programmazione ad oggetti non implica assolutamente che ogni cosa che fai in java sia programmazione ad oggetti. Se scrivi tutto nel main di una classe unica quella, per quanto tu ti possa impegnare, non è e non sarà MAI programmazione ad oggetti. Quote:
![]() ovvio, per uno alle prime armi, che non è già abbastanza confuso, facciamolo saltare da un linguaggio all'altro per imparare le diverse cose.. ![]() anzi no.. ancora meglio. Facciamogli imparare per bene solo la programmazione procedurale in C e poi le bestemmie che tirerà quando dovrà entrare nell'ottica di programmazione ad oggetti (Quella vera, non quella che tu chiami ad oggetti solo perchè è fatta in un linguaggio che supporta il paradigma OO) e dovrà cambiare completamente la mentalità le ascolti tu. Quote:
A questo punto perchè non iniziare con l'assembly? tanto usare i registri e capire quanto siano importanti nellla cpu è essenziale. senza questo concetto non puoi nemmeno scrivere una riga di codice Anzi, a questo punto meglio iniziare col codice macchina... no, ma che dico! perchè non gli facciamo anche studiare lo schema elettrico del full-adder, la disposizione dei transistor della cache di primo livello, e magari l'implementazione hardware dello scheduler e dell'unita FP o SSE? tanto se proprio li devi usare non fa male e almeno impari per bene a cosa servono.
__________________
Ultima modifica di ^TiGeRShArK^ : 07-07-2008 alle 17:13. |
|||
|
|
|
|
|
#66 | |||
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7258
|
Quote:
che Java non supporta la programmazione procedurale è condiviso da tutto il mondo, altrimenti dovremmo dire che C supporta la programmazione a oggetti visto che qualcuno sostiene di programmare a oggetti in C, ma non mi sembra il caso. ovvio che qualcuno che vuole farsi del male c'è sempre Quote:
a me invece non piacciono i linguaggi multiparadigma perchè va a finire che puoi fare la stessa cosa in 4000 modi diversi, questione di gusti. comunque sembra che parlate di bambini di 4 anni confusi, non di gente che vuole imparare a programmare ps. non sapevo che esisteva anche la programmazione a oggetti finta, se dico a oggetti intendo a oggetti, non procedurale usando un linguaggio a oggetti Quote:
poi ci lamentiamo di quelli che credono che in java esiste il passaggio (EDIT: dei parametri) per riferimento.. Ultima modifica di k0nt3 : 07-07-2008 alle 17:20. |
|||
|
|
|
|
|
#67 | |||
|
Senior Member
Iscritto dal: May 2004
Città: Napoli
Messaggi: 773
|
Quote:
Il minimo indispensabile per assumere un'idea del concetto di flusso del programma. Sicuramente meglio è più economico in quanto a sforzo e tempo dello studiare un linguaggio solo per assimilare questi concetti. Il punto però rimane quello: un principiante difficilmente riuscirà ad organizzare il proprio codice "ad oggetti", quindi per quanto si sforzerà, per le prime settimane/mesi della sua formazione applicherà una forma di programmazione più vicina a quella procedurale (ossia studiando le azioni conseguenti che il mio programma esegue, e non quelle che eseguono le componenti, collaborando tra loro). Quote:
Quote:
In ogni caso, non la reputo una cosa bella... è un peccato perdere 3/4 di corso a parlare di puntatori e allocazione quando si potrebbero dedicare a cose davvero utili e interessanti.
__________________
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization. --Gerald Weinberg |
|||
|
|
|
|
|
#68 | ||
|
Senior Member
Iscritto dal: Nov 2004
Città: Padova
Messaggi: 2342
|
Quote:
Quote:
Pure io sono d'accordo con te che nn sia il massimo spendere tutto quel tempo nell'imparare qualcosa di così poco interessante (vabè magari a qualcuno piace).
__________________
CPU Ryzen 2600 @ 3,95Ghz + Bequiet Dark Rock TF / MB Asus X470-F Gaming / RAM 2x8GB DDR4 G.Skill FlareX 3200 CL14 / VGA Sapphire RX 7900 XT Nitro+ @ 3200Mhz / SSD Samsung 970 Pro 512GB + Sandisk 240GB Plus + Sandisk 960GB Ultra II PSU Seasonic Platinum P-660 / Headset Kingston HyperX Flight |
||
|
|
|
|
|
#69 | |
|
Senior Member
Iscritto dal: Jan 2001
Città: Livorno
Messaggi: 1370
|
Quote:
Consentono di fare quasi tutto quello (a meno che tu non sviluppi driver o simili) che fa il c++ ma in molto meno tempo e con un linguaggio molto molto più intuitivo. Tanto per darti un esempio: &&(C++)----> AND (delphi) i++(C++)---->inc(i)(delphi) Inoltre puoi compilare sia per Linux che Windows e se usi Lazarus anche per MAC ma per quello ti conviene aspettare la prox versione. |
|
|
|
|
|
|
#70 | |||||
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
Che tu debba per forza creare almeno un oggetto in java non significa assolutamente che stai programmando ad oggetti. Altrimenti, in quel caso, sarebbe davvero equivalente imparare a programmare in c o in java, perchè l'unica differenza sarebbe che in c non usi nemmeno un oggeto ed in java ne usi uno. Però dovresti ben sapere che la programmazione ad oggetti è cosa BEN diversa Quote:
E deve programmare per ANNI con quel linguaggio per arrivare a conoscerlo MOLTO bene. Quote:
Deve partire da zero per imparare a leggere e a scrivere in un determinato linguaggio. Quote:
se tu hai un progetto da 20K LOC che fa tutto in una classe unica dentro il main per te quella è programmazione ad oggetti? Se è così mi sa che non hai ben chiaro cosa voglia dire programmare ad oggetti. In quel modo al massimo puoi dire di utilizzare in maniera prettamente procedurale degli oggetti, che è ben diverso dal programmare ad oggetti. Quote:
![]() secondo te per capire cos'è un riferimento devo smazzarmi l'aritmetica dei puntatori, devo capire quanto occupa un determinato tipo di dato per poter utilizzare un array senza fare danni e cose del genere ? ![]() un reference è semplicemente un oggetto che contiene delle informazioni sul DOVE sono memorizzati alcuni dati. è del tutto equivalente ad un insieme di coordinate nel piano cartesiano, che determinano un punto, o ad una chiave univoca su un tabella di un database, che punta ad una riga contente i dati che ci servono. Tramite un reference è quindi possibile accedere a tali dati. Non vedo che problema ci sia ad apprendere questo concetto, che dovrebbe essere per altro già noto da altre materie, senza infognarsi con l'aritmetica dei puntatori, la grandezza variabile dei tipi di dati, il controllo sula dimensione del buffer e menate simili
__________________
|
|||||
|
|
|
|
|
#71 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
Delphi ormai sinceramente mi pare piuttosto in declino rispetto ai suo anni d'oro... Con tutto che uno dei miei programmi preferiti, Context, è proprio scritto in delphi
__________________
|
|
|
|
|
|
|
#72 | ||||||
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7258
|
ricordo comunque che io non suggerisco di iniziare con il C, perchè ormai credo che la questione del linguaggio sia secondaria e molto soggettiva.
a me ad esempio piace il pascal come linguaggio didattico, "qualcuno" ( ) preferisce python, altri C#, Java e chi più ne ha più ne metta.Quote:
Quote:
e come se non bastasse faceva largo uso di variabili "globali" così anche con tutta la buona volontà che ci ho messo a rifattorizzare non facevo che rompere le cose. in ogni caso questo non dimostra che in java si può programmare in maniera procedurale, ma solo che si può programmare in maniera sbagliata. java offre solo gli strumenti che permettono di programmare a oggetti, se qualcuno cerca di programmare in maniera procedurale non fa altro che usare lo spazzolino per pettinarsi Quote:
C come linguaggio non è molto complesso, visto che praticamente usa solo concetti primitivi. Quote:
per questo dico che imparare più di un linguaggio e più di un paradigma è fondamentale per un programmatore. la cosa sottointesa in tutto questo è che non si impara a programmare in due giorni. Quote:
però se uno conosce i puntatori non deve aggiungere altro alle sue conoscenze per capire i riferimenti. questo lo dicevo per chi sostiene che bisogna dimenticare tutto quello che si impara dal C (la cosa più importante che si impara con il C in ogni caso è la programmazione strutturata) Quote:
la maggiorparte delle volte gli va bene, ma poi quando si tratta di passare oggetti come parametro ai metodi cozzano contro un muro. o peggio ancora quando si ha a che fare con la copia di un oggetto Ultima modifica di k0nt3 : 07-07-2008 alle 18:30. |
||||||
|
|
|
|
|
#73 |
|
Member
Iscritto dal: Aug 2007
Messaggi: 50
|
e lì se non progetti bene il costruttore di copia (e quindi devi aver capito bene i riferimenti e come vengono gestiti i puntatori) non capirai mai il problema
|
|
|
|
|
|
#74 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
non risolvere il VERO problema che devi affrontare. E' proprio questo il motivo per cui NON è assolutamente adatto ad un principiante. Anzichè preoccuparti di risolvere il problema ti devi preoccupare di MILLE altre cose che non c'entrano assolutamente nulla col tuo problema e quindi sprechi del tempo che avresti potuto impiegare per apprendere meglio la programmazione.
__________________
|
|
|
|
|
|
|
#75 | ||||
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
Un programmatore alle prime armi si trova appunto a comunicare in maniera corretta col computer (quindi a scrivere cose sintatticamente giuste), ad imparare la differenza semantica tra i vari concetti e infine a migliorare il suo stile, chiedendo a Jane di dargliela nella maniera + elegante possibile Quote:
Ma il paradigma procedurale lo abolirei del tutto dato che è assolutamente inutile, oltre che dannoso. Quote:
Quote:
cosa ti rimane oltre al concetto di puntatore che non potresti imparare in qualsiasi altro linguaggio OO?
__________________
|
||||
|
|
|
|
|
#76 |
|
Member
Iscritto dal: Oct 2003
Messaggi: 126
|
Prima regola del neofita della programmazione: non chiedere mai ad un programmatore quale linguaggio dovresti imparare ?
Il pensiero di Bjarne Stroustrup Howard Dierking: Perché tra i linguaggi di programmazione e le persone si stabilisce una relazione talmente stretta e profonda da portare alla creazione di community di veri e propri fanatici dei linguaggi? Bjarne Stroustrup: Questa domanda dovrebbe essere posta a uno psicologo, un sociologo o probabilmente un economista, piuttosto che a un informatico. Suppongo che i linguaggi che utilizziamo per esprimere le nostre idee diventino parte di noi stessi e, pertanto, se si conosce un solo linguaggio, i sostenitori di altri linguaggi potrebbero essere percepiti come "personalmente pericolosi". In tal caso, la soluzione sembra essere quella di apprendere il maggior numero di linguaggi possibili. Ritengo che non si possa diventare professionisti nel settore del software conoscendo un solo linguaggio di programmazione. È anche possibile che esista una ragione economica: la conoscenza delle nozioni di base, a differenza dell'esperienza pratica, trascende i limiti dei linguaggi di programmazione. Quindi, se conosco solo il linguaggio X e i relativi set di strumenti, mentre un altro utente sostiene il linguaggio Y e i set di strumenti associati, questa persona rappresenta una minaccia per la mia sussistenza. Ancora una volta, la soluzione sembra essere quella di conoscere più linguaggi e set di strumenti (oltre che avere una solida conoscenza dei concetti di base). Purtroppo, le soluzioni che ho suggerito non tengono conto del fatto che alla maggior parte delle persone resta poco tempo a disposizione dopo aver fatto il necessario per restare a galla. Tuttavia, non esistono scusanti per il fanatismo. A mio modesto parere da ogni linguaggio può imparare qualcosa di utile che ti servirà per diventare un programmatore migliore. Io sono un programmatore .NET che però negli anni dell'uni ha sempre programmato in java, e prima in c++ e prima ancora in pascal e basic, e tutto mi è stato utile. Perfino ora, che a malincuore sono costretto ad usare fox pro, sono convinto che lavorare a così stretto contatto coi dati mi insegnerà qualcosa. Io comunque, se dovessi partire da zero, userei c++ come linguaggio, ma soprattutto mi farei il c**lo sui concetti di base, sull'architettura, sui pattern, sull'uso della memoria, ecc... Il linguaggio è l'ultimo dei problemi .... |
|
|
|
|
|
#77 | ||
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7258
|
Quote:
a parte gli scherzi su questo credo che si possa discutere per giorni senza approdare a nulla questo perchè "comunicare nella maniera corretta" con il computer potrebbe assumere significati diversi a seconda del contesto (attitudini del soggetto, scopi che si prefigge, il caso Quote:
eh si anche lui supporta la programmazione procedurale comunque non si può nascondere che i primi programmi che si scrivono tipicamente sono tentativi di codice procedurale. e non è un caso, perchè prima bisogna perlomeno conoscere le strutture di controllo, le variabili e un paio di altri concetti basilari. la programmazione procedurale ha il pregio di contenere il minimo essenziale per imparare questi concetti. senza dubbio avrà anche dei difetti, ma sta di fatto che non ho mai visto qualcuno che al primo tentativo tira fuori una gerarchia di classi magari usando il polimorfismo probabilmente si potrebbe fare un discorso diverso per certi linguaggi esotici (come prolog ad esempio), ma nel caso generico no l'ho già detto, la programmazione strutturata (strutture di controllo ecc..) è l'unica cosa su cui bisogna soffermarsi veramente quando si programma in C. sono tutte cose che servono anche quando programmi a oggetti e sono completamente ortogonali alla filosofia object oriented |
||
|
|
|
|
|
#78 |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7258
|
aggiungo che di solito nei corsi base di programmazione si usa C e non un altro linguaggio procedurale (come pascal) proprio perchè espone dei problemi legati alla memoria. potrebbe sembrare un controsenso, ma allo stesso tempo potrebbe avere senso perchè solitamente si affianca lo studio del linguaggio allo studio della macchina di von neumann.
|
|
|
|
|
|
#79 | |
|
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
Dal punto di vista prettamente tecnico sarebbe un'ottima idea anche partire direttamente con la programmazione funzionale, ma ci sono anche altri aspetti che la rendono meno consigliabile (diffusione, tools disponibili ... )
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
|
|
|
|
|
#80 | ||||||||||||||
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Quote:
Quote:
Ma Python, come dicevo, non necessita di essere installato: è sufficiente copiarsi la cartella in cui sta per farlo girare ovunque, come ho fatto io. Quote:
![]() Quote:
).Quote:
Quote:
Sicuramente impara a soffrire di più, com'è giusto che sia. ![]() Quote:
Quote:
Insomma, roba da giapponesi. ![]() Quote:
Quote:
Quote:
Quanto all'arroganza, beh, certe frasi te le potevi risparmiare: è stato arrogante il tuo atteggiamento nei confronti di un linguaggio che per tua stessa ammissione conosci ben poco. Quote:
Quote:
Il problema è che tanta gente (non mi sto rivolgendo a te: è un discorso in generale) è convinta che basi della programmazione = quella roba che hai scritto sopra. Niente di più falso, ovviamente. Purtroppo confondono i dettagli di basso di livello con le basi della programmazione, che hanno a che fare invece col concetto di dato, tipo, operazione, condizione, ecc.
__________________
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 Ultima modifica di cdimauro : 07-07-2008 alle 21:26. |
||||||||||||||
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:34.













) preferisce python, altri C#, Java e chi più ne ha più ne metta.








