Torna indietro   Hardware Upgrade Forum > Software > Programmazione

OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
OPPO Find X9 Pro punta a diventare uno dei riferimenti assoluti nel segmento dei camera phone di fascia alta. Con un teleobiettivo Hasselblad da 200 MP, una batteria al silicio-carbonio da 7500 mAh e un display da 6,78 pollici con cornici ultra ridotte, il nuovo flagship non teme confronti con la concorrenza, e non solo nel comparto fotografico mobile. La dotazione tecnica include il processore MediaTek Dimensity 9500, certificazione IP69 e un sistema di ricarica rapida a 80W
DJI Romo, il robot aspirapolvere tutto trasparente
DJI Romo, il robot aspirapolvere tutto trasparente
Anche DJI entra nel panorama delle aziende che propongono una soluzione per la pulizia di casa, facendo leva sulla propria esperienza legata alla mappatura degli ambienti e all'evitamento di ostacoli maturata nel mondo dei droni. Romo è un robot preciso ed efficace, dal design decisamente originale e unico ma che richiede per questo un costo d'acquisto molto elevato
DJI Osmo Nano: la piccola fotocamera alla prova sul campo
DJI Osmo Nano: la piccola fotocamera alla prova sul campo
La nuova fotocamera compatta DJI spicca per l'abbinamento ideale tra le dimensioni ridotte e la qualità d'immagine. Può essere installata in punti di ripresa difficilmente utilizzabili con le tipiche action camera, grazie ad una struttura modulare con modulo ripresa e base con schermo che possono essere scollegati tra di loro. Un prodotto ideale per chi fa riprese sportive, da avere sempre tra le mani
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-07-2008, 16:56   #61
k0nt3
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 7258
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
veramente è possibilissimo scrivere porcherie prettamente procedurali anche in java
se cerchi bene su google vedrai che è possibile "programmare a oggetti" anche in C e addirittura in assembly. ma io quella non la chiamerei programmazione a oggetti, come non chiamerei programmazione procedurale quella che puoi fare in java.
ho pure definito il concetto di "supportare" per evitare simili discorsi
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
quello che ti sfugge mi sa è proprio la differenza di mentalità.
Mentre con un linguaggio come il python o il java o il C# è possibile imparare sia le basi della programamzione che la programmazione ad oggetti, in maniera del tutto congruente, col C NON è possibile ed inoltre, per imparare a programmare in C, devi mettere mano a tutta la porcheria della gestione della memoria che in un linguaggio ad alto livello puoi completamente ignorare.
mica è obbligatorio imparare tutto quello che c'è da imparare senza cambiare linguaggio. anzi secondo me cambiare linguaggio fa bene
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
E non ti serve assolutamente a nulla impazzire per un segmentation fault e cose del genere ai fini di imparare a programmare.
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)
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 17:00   #62
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da k0nt3 Guarda i messaggi
puoi anche non usare i puntatori, mica è obbligatorio.
Non è un obbligo, in teoria, ma nella pratica lo è.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 17:02   #63
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Quote:
quello che ti sfugge mi sa è proprio la differenza di mentalità.
Mentre con un linguaggio come il python o il java o il C# è possibile imparare sia le basi della programamzione che la programmazione ad oggetti, in maniera del tutto congruente, col C NON è possibile ed inoltre, per imparare a programmare in C, devi mettere mano a tutta la porcheria della gestione della memoria che in un linguaggio ad alto livello puoi completamente ignorare.
E non ti serve assolutamente a nulla impazzire per un segmentation fault e cose del genere ai fini di imparare a programmare.
Sottoscrivo al 101%.
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 17:03   #64
demos88
Senior Member
 
Iscritto dal: Nov 2004
Città: Padova
Messaggi: 2342
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Questo è un altro discorso, ma fra riportare le classiche leggende metropolitane (come in questo messaggio) e il silenzio, al tuo posto preferirei il silenzio, non foss'altro per una questione di immagine.
Caspita se siamo un pelo arroganti... chiedo perdono per le mie imprecisioni, andrò a contestarle al mio docente di corso quando ne avrò il tempo (tanto l'esame l'ho già dato...).
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:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
col C NON è possibile ed inoltre, per imparare a programmare in C, devi mettere mano a tutta la porcheria della gestione della memoria che in un linguaggio ad alto livello puoi completamente ignorare.
E non ti serve assolutamente a nulla impazzire per un segmentation fault e cose del genere ai fini di imparare a programmare.
forse il C è stato un pò "declassato" a linguaggio didattico per far capire un pò la programmazione, i cicli iterativi e appunto la gestione della memoria. Quando me l'hanno insegnato, 3/4 dell'insegnamento erano dediti a puntatori, allocazione, memoria ecc...
__________________
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.
demos88 è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 17:03   #65
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da k0nt3 Guarda i messaggi
se cerchi bene su google vedrai che è possibile "programmare a oggetti" anche in C e addirittura in assembly. ma io quella non la chiamerei programmazione a oggetti, come non chiamerei programmazione procedurale quella che puoi fare in java.
ho pure definito il concetto di "supportare" per evitare simili discorsi

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:
mica è obbligatorio imparare tutto quello che c'è da imparare senza cambiare linguaggio. anzi secondo me cambiare linguaggio fa bene

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:
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)
ovvio.
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.
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 17:13   #66
k0nt3
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 7258
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi

che java metta a disposizione strutture che supportino la programmazione ad oggetti non è affatto automatico che ogni cosa che fai in java è 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.
è come usare lo spazzolino da denti per pettinarsi
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:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi

ovvio, per uno alle prime armi, che non è già abbatanza 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.
mi sembrava scontato che prima di cambiare linguaggio dovesse conoscere quello corrente molto bene.
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:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
ovvio.
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.
invece di cambiare discorso potresti sempre dimostrare che per capire i riferimenti non serve assolutamente a nulla conoscere i puntatori.
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.
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 17:23   #67
Albi89
Senior Member
 
Iscritto dal: May 2004
Città: Napoli
Messaggi: 773
Quote:
Originariamente inviato da ^TiGeRShArK^

che java metta a disposizione strutture che supportino la programmazione ad oggetti non implica assolutamente che ogni cosa che fai in java è 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.
Esattamente, ed è quello che si farà nei propri primi esperimenti.
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:
Originariamente inviato da demos88
Caspita se siamo un pelo arroganti... chiedo perdono per le mie imprecisioni, andrò a contestarle al mio docente di corso quando ne avrò il tempo (tanto l'esame l'ho già dato...).
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.
Non penso che stesse criticando il tuo consiglio, semplicemente il "il C# non lo considero proprio perchè è Microsoft" (ok, non hai scritto così, ma insomma, era chiaro)

Quote:
forse il C è stato un pò "declassato" a linguaggio didattico per far capire un pò la programmazione, i cicli iterativi e appunto la gestione della memoria. Quando me l'hanno insegnato, 3/4 dell'insegnamento erano dediti a puntatori, allocazione, memoria ecc...
A parte che non credo proprio sia stato declassato: c'è tanto software C in giro, tantissimo, ed è facile che se vorrai lavorare su un progetto open source ti ritroverai a doverlo usare, per non parlare del fatto che potresti avere la sfortuna di trovarti a svolgere compiti di manutenzione su vecchio software C scritto secondo metodologie vecchie come il cucco.
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
Albi89 è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 17:47   #68
demos88
Senior Member
 
Iscritto dal: Nov 2004
Città: Padova
Messaggi: 2342
Quote:
Originariamente inviato da Albi89 Guarda i messaggi
Non penso che stesse criticando il tuo consiglio, semplicemente il "il C# non lo considero proprio perchè è Microsoft" (ok, non hai scritto così, ma insomma, era chiaro)
credo pure io fosse per quello, ma la linea ironica non l'ha percepita proprio nessuno?

Quote:
Originariamente inviato da Albi89 Guarda i messaggi
A parte che non credo proprio sia stato declassato: c'è tanto software C in giro, tantissimo, ed è facile che se vorrai lavorare su un progetto open source ti ritroverai a doverlo usare, per non parlare del fatto che potresti avere la sfortuna di trovarti a svolgere compiti di manutenzione su vecchio software C scritto secondo metodologie vecchie come il cucco.
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.
"declassato" fra virgolette... di C so perfettamente che si possono fare diverse cose interessanti. Ma stiamo parlando di linguaggi per imparare a programmare, non per sviluppare applicazioni sofisticate... e in tal senso il C è più "grezzo" di altri linguaggi e il fatto che permetta digiocare molto con la memoria in modo diretto, può complicare la vita di chi ha poca esperienza nel campo.
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
demos88 è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 17:56   #69
das
Senior Member
 
Iscritto dal: Jan 2001
Città: Livorno
Messaggi: 1370
Quote:
Originariamente inviato da rafpro Guarda i messaggi
beh applicazioni semplici sotto win
dato che sono a 0 come programmazione
vorrei proprio cominciare da cose semplici poi magari se mi appassiono passero' a qualcosa di piu complicato
potete mandarmi in privato un link con qualche guida?
grazie
Io ti consiglio di usare un RAD, ovvero un ambiente che ti consente di disegnare le finestre e i bottoni come con il Paint. Con python ti tocca scrivere tutto a mano, io ti suggerisco Delphi della Borland o il suo clone Open Lazarus.

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.
das è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 18:03   #70
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da k0nt3 Guarda i messaggi
è come usare lo spazzolino da denti per pettinarsi
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
Come credo che sia condiviso in tutto il mondo il fatto che è possibile scrivere schifezze simil-procedurali anche in java.
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:
mi sembrava scontato che prima di cambiare linguaggio dovesse conoscere quello corrente molto bene.
Per conoscere il C MOLTO bene (io l'ho abbandonato ben prima di arrivare a conoscerlo MOLTO bene) si deve fare due palle così con segmentation fault, aritmetica dei puntatori e tutte le porcherie di basso livello legate alla gestione della memoria del c.
E deve programmare per ANNI con quel linguaggio per arrivare a conoscerlo MOLTO bene.
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
Una persona che non ha mai visto niente di programmazione è del tutto equivalente ad un bambino di 4 anni che sta imparando a leggere.
Deve partire da zero per imparare a leggere e a scrivere in un determinato linguaggio.
Quote:
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
E' inutile che fai il finto tonto...
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:
invece di cambiare discorso potresti sempre dimostrare che per capire i riferimenti non serve assolutamente a nulla conoscere i puntatori.
poi ci lamentiamo di quelli che credono che in java esiste il passaggio (EDIT: dei parametri) per riferimento..

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
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 18:06   #71
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da das Guarda i messaggi
Io ti consiglio di usare un RAD, ovvero un ambiente che ti consente di disegnare le finestre e i bottoni come con il Paint. Con python ti tocca scrivere tutto a mano, io ti suggerisco Delphi della Borland o il suo clone Open Lazarus.

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.
Con Visual Studio o con Netbeans può benissimo disegnare i controlli con un ambiente RAD....
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
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 18:26   #72
k0nt3
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:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
Come credo che sia condiviso in tutto il mondo il fatto che è possibile scrivere schifezze simil-procedurali anche in java.
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:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
E' inutile che fai il finto tonto...
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.
ah lo so bene, ho avuto a che fare con progetto in cui la dimensione media di una classe era di 6000 righe di codice con punte di 8000
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:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
Per conoscere il C MOLTO bene (io l'ho abbandonato ben prima di arrivare a conoscerlo MOLTO bene) si deve fare due palle così con segmentation fault, aritmetica dei puntatori e tutte le porcherie di basso livello legate alla gestione della memoria del c.
E deve programmare per ANNI con quel linguaggio per arrivare a conoscerlo MOLTO bene.
io parlavo soprattutto del linguaggio, non delle librerie (standard e non).
C come linguaggio non è molto complesso, visto che praticamente usa solo concetti primitivi.
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
Una persona che non ha mai visto niente di programmazione è del tutto equivalente ad un bambino di 4 anni che sta imparando a leggere.
Deve partire da zero per imparare a leggere e a scrivere in un determinato linguaggio.
secondo me farebbe meglio a imparare a programmare, piuttosto che imparare a leggere e scrivere in un determinato linguaggio.
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:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi

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.
no, sono daccordo.
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:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
è 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
eh guarda non lo vedo nemmeno io il problema, ma di gente che non riesce a capire i riferimenti ne ho vista parecchia.
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.
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 19:51   #73
dreadknight
Member
 
L'Avatar di dreadknight
 
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
dreadknight è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 19:57   #74
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da dreadknight Guarda i messaggi
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
appunto in C il problema è gestire correttamente i puntatori..
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.
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 20:05   #75
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da k0nt3 Guarda i messaggi
secondo me farebbe meglio a imparare a programmare, piuttosto che imparare a leggere e scrivere in un determinato linguaggio.
appunto per questo imparare a scrivere un italiano corretto è ben diverso dallo scrivere qualcosa del tipo: "io Tarzhan tu giane volHer tu tromb with muà?".
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:
per questo dico che imparare più di un linguaggio e più di un paradigma è fondamentale per un programmatore.
E infatti io sono d'accordissimo.
Ma il paradigma procedurale lo abolirei del tutto dato che è assolutamente inutile, oltre che dannoso.
Quote:
la cosa sottointesa in tutto questo è che non si impara a programmare in due giorni.
e nemmeno in due anni
Quote:
no, sono daccordo.
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)
Il 99% allora va bene?
cosa ti rimane oltre al concetto di puntatore che non potresti imparare in qualsiasi altro linguaggio OO?
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 20:31   #76
Strat
Member
 
L'Avatar di Strat
 
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 ....
Strat è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 20:36   #77
k0nt3
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 7258
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
appunto per questo imparare a scrivere un italiano corretto è ben diverso dallo scrivere qualcosa del tipo: "io Tarzhan tu giane volHer tu tromb with muà?".
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

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 ecc...)
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
E infatti io sono d'accordissimo.
Ma il paradigma procedurale lo abolirei del tutto dato che è assolutamente inutile, oltre che dannoso.
dai che è la volta buona che python sparisce dalla faccia della terra
eh si anche lui supporta la programmazione procedurale (oltre che quella a oggetti e quella funzionale )
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
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
Il 99% allora va bene?
cosa ti rimane oltre al concetto di puntatore che non potresti imparare in qualsiasi altro linguaggio OO?
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
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 20:58   #78
k0nt3
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.
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 21:13   #79
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da variabilepippo Guarda i messaggi
Si tratta di due paradigmi diversi, molto diversi, e purtroppo è difficile "scrollarsi di dosso" un modo di ragionare o un approccio alla risoluzione dei problemi.
Proprio per questa difficolta' non sarebbe male imparare non solo questi due paradigmi, ma avere un panorama generale di quelli presenti in letteratura. Aiuta a capire quali sono gli aspetti generali e quali no, e a non restare intrappolati nelle idiosincrasie dell'uno o dell'altro. Ovviamente e' un obiettivo a lungo termine, e resta il problema del linugaggio con cui iniziare . Proprio per andare al sodo il prima possibile, consiglio anch'io di partire direttamente da un linguaggio OO di alto livello (non necessariamente moderno, Smalltalk ha vent'anni piu' di Java ma secondo me e' ancora una spanna sopra ). E' vero che alcune cose che si imparano in C si possono riciclare, ma quelle che poi non servono piu' sono tante e tali che il gioco non vale la candela. Tanto vale partire con qualcos'altro ed essere pienamente produttivi in meno tempo.
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
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 21:24   #80
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da k0nt3 Guarda i messaggi
questi sono alcuni esempi di applicazioni che ne fanno uso http://www.excelsior-usa.com/jetgallery.html
io ho provato tuxguitar e funziona alla perfezione.
la cosa interessante è che per scopi non commerciali è un prodotto gratuito
Grazie per le informazioni.
Quote:
ma di sicuro python non è incluso nel SO e va scaricato,
Questo vale anche per Java, C# e quant'altro.
Quote:
se poi l'installazione consiste nello scompattare un archivio è un'altro discorso
L'installazione standard di Python è... standard, appunto. Roba per chiunque: Setup, Avanti, Avanti, Fine.

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:
Originariamente inviato da DanieleC88 Guarda i messaggi
Vero, ma io sono un integralista Linuxiano di mentalità aperta: i prodotti buoni li riconosco.
Noto due contraddizioni in una sola frase.
Quote:
Allora nei prossimi giorni potremmo crearlo con la collaborazione di tutti.
Io, quando potrò, cercherò qualche link a discussioni passate, segnalando i post più interessanti (i miei ovviamente ).
Quote:
Originariamente inviato da Albi89 Guarda i messaggi
Sarebbe ottimo, soprattutto con un bel post iniziale con links a siti di riferimento, uno o due volumi consigliati e una breve descrizione delle caratteristiche e degli effettivi domini di utilizzo del linguaggio (ad esempio a proposito di python e ruby sarebbero da sottolineare i "succosi" (anche loro) framework per lo sviluppo web)
Per Python c'è django che è ottimo. Ci stanno lavorando due miei colleghi "PHPisti" e si stanno trovando benissimo.
Quote:
Originariamente inviato da k0nt3 Guarda i messaggi
qualsiasi persona prima di imparare a programmare a oggetti non sa programmare a oggetti, non vale solo per chi inizia con il C.
la differenza è che chi inizia con il C impara essenzialmente la programmazione strutturata (che serve anche nei linguaggi a oggetti) e quindi gli rimane meno da imparare
Di meno? O di più?

Sicuramente impara a soffrire di più, com'è giusto che sia.
Quote:
Originariamente inviato da dreadknight Guarda i messaggi
se ne sei convinto...

io penso che in ogni cosa si parte dalla base per poi fare via via argomenti più complessi. Il C ti serve per acquisire la logica della programmazione, successivamente puoi imparare a lavorare con gli oggetti.

Altrimenti è come voler risolvere un integrale senza conoscere le derivate (scusate l'esempio matematico, ma la mia facoltà mi impone ciò )
A me sfugge il nesso fra "base" / logica della programmazione e C: potresti spiegarmelo, cortesemente?
Quote:
Originariamente inviato da k0nt3 Guarda i messaggi
se cerchi bene su google vedrai che è possibile "programmare a oggetti" anche in C e addirittura in assembly. ma io quella non la chiamerei programmazione a oggetti, come non chiamerei programmazione procedurale quella che puoi fare in java.
ho pure definito il concetto di "supportare" per evitare simili discorsi
Ne abbiamo già parlato infatti: bisogna essere mentalmente contorti / depravati per sviluppare applicazioni a oggetti con linguaggi come C, o addirittura assembly.

Insomma, roba da giapponesi.
Quote:
mica è obbligatorio imparare tutto quello che c'è da imparare senza cambiare linguaggio. anzi secondo me cambiare linguaggio fa bene
Quando è necessario, sì.
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)
Fammi vedere come puoi programmare a oggetti in C (o, peggio ancora, in assembly) senza usare i puntatori.
Quote:
Originariamente inviato da demos88 Guarda i messaggi
Caspita se siamo un pelo arroganti... chiedo perdono per le mie imprecisioni, andrò a contestarle al mio docente di corso quando ne avrò il tempo (tanto l'esame l'ho già dato...).
Digli di aggiornarsi allora.

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:
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.
Di niente.
Quote:
forse il C è stato un pò "declassato" a linguaggio didattico per far capire un pò la programmazione, i cicli iterativi e appunto la gestione della memoria. Quando me l'hanno insegnato, 3/4 dell'insegnamento erano dediti a puntatori, allocazione, memoria ecc...
Tutte cose che con la didattica ti assicuro che non c'entrano proprio nulla.

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.
cdimauro è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh OPPO Find X9 Pro: il camera phone con teleobiett...
DJI Romo, il robot aspirapolvere tutto trasparente DJI Romo, il robot aspirapolvere tutto trasparen...
DJI Osmo Nano: la piccola fotocamera alla prova sul campo DJI Osmo Nano: la piccola fotocamera alla prova ...
FUJIFILM X-T30 III, la nuova mirrorless compatta FUJIFILM X-T30 III, la nuova mirrorless compatta
Oracle AI World 2025: l'IA cambia tutto, a partire dai dati Oracle AI World 2025: l'IA cambia tutto, a parti...
28 Offerte Amazon da non perdere: smartp...
X torna a crescere in Europa: +7 milioni...
NVIDIA festeggia 25 anni in Corea: RTX 5...
Lucca Comics 2025: dal Giappone alla Fra...
Agli italiani non piace la fibra: costi ...
SK hynix: HBM, DRAM e NAND completamente...
Ring porta in Italia videocamere e video...
Windows 11 e 10: finalmente risolto il p...
TEE.fail è l'attacco che scardina...
Cameo fa causa a OpenAI: il nome del nos...
HyperOS 3 arriva anche su Xiaomi 15: int...
Telegram, Pavel Durov lancia Cocoon: l’i...
Dai suicidi ai nuovi limiti: Character.A...
Offerte Amazon per potenziare il PC: sup...
Toyota trasforma la sua auto più ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 14:34.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v