Oppure

Loading
05/06/14 12:57
ZioCrocifisso
let (statusCode, _) = http404Error

Si chiama pattern matching, ed esiste da millenni nella programmazione funzionale.
Secondo me, il danno nel creare sempre nuovi linguaggi e pubblicizzarli sono le differenze tra i programmatori, che difficilmente potranno collaborare, riutilizzare del codice, ecc.
Andrebbero creati soltanto linguaggi avanzati con molte differenze rispetto agli altri, non linguaggi che ne hanno uno di base e aggiungono 4 cose prese da altri. Inoltre, sono contrario al forzare l'utilizzo di un certo linguaggio, ed è quello che fanno già e che vorranno continuare a fare con Swift.

In ultimo vorrei aggiungere che la programmazione ad oggetti dovrebbe essere ormai standard, non starci molto a girare su se si può o non si può usare, in un linguaggio deve esserci ed essere usata, parere mio se volete scannatemi XD

Proprio perché è un parere tuo non puoi pretendere che diventi lo standard, che dovrebbe essere una cosa oggettivamente corretta e approvata da tutti. Specialmente nell'ambito Linux, ci sono moltissimi programmatori di C che non hanno nessuna intenzione di passare a C++ o a qualunque altro linguaggio OOP, perché la pensano diversamente. E inoltre non esiste soltanto la programmazione imperativa. Io ormai sono passato alla programmazione funzionale (e no, non esiste solo Scheme, che è vecchio), che ritengo di gran lunga più avanzata rispetto a qualunque altro linguaggio OOP, e i motivi per cui la gente preferisce programmare con questi è che sono già famosi, sono promossi commercialmente e sono più facili da imparare. In passato ho programmato in vari linguaggi OOP (C#, Java, PHP, C++, ecc.), poi sono passato al C, e infine anche ad Haskell (e adesso sto provando altri linguaggi sperimentali derivati da Haskell), senza abbandonare del tutto C, che è più adatto per programmi che devono essere il più efficienti possibile.
aaa
05/06/14 14:32
Roby94
Zio il discorso che fai sul C mi sembra estromesso dal contesto in cui è stato creato. Ricordiamo che il C nasce come uno dei primi linguaggi funzionali di basso livello e non a caso è ancora utilizzatissimo, anche da me per la programmazione dei microcontrollori. Se dopo il C guardiamo un po avanti ci accorgiamo subito che il C++ voleva ridefinire lo standard imponendo la OOP come estensione del C che indubbiamente comporta innumerevoli vantaggi. A questo punto la domanda che mi sembra da porsi è, se ci fosse già stato un concetto forte e conosciuto di OOP l' ANSI C non sarebbe nato direttamente con tale possibilità? A mio parere non mi sembra una cosa tanto improbabile.
Il vantaggio della mancanza di classi in C in effetti riesco a notarla solo quando vado a compilare programmi per componenti con 8kB di memoria dove ogni singolo byte è importante, ma ora come ora questa limitazione è riservata solo a piccolissimi campi e di sicuro non ai prodotti Apple.
aaa
05/06/14 14:51
pierotofy
Rilevante: harmful.cat-v.org/software/c++/…

OOP non e' (come tanti vogliono far credere) la soluzione a tutto. Ha dei vantaggi cosi' come delle penalizzazioni e va usata nella situazione giusta.

Le tuple esistono da decenni nei linguaggi di programmazione (dai derivati di LISP ad esempio). Nulla di nuovo. Move along...
Il mio blog: piero.dev
05/06/14 15:02
ZioCrocifisso
il C nasce come uno dei primi linguaggi funzionali di basso livello

...

Se dopo il C guardiamo un po avanti ci accorgiamo subito che il C++ voleva ridefinire lo standard imponendo la OOP come estensione del C che indubbiamente comporta innumerevoli vantaggi. A questo punto la domanda che mi sembra da porsi è, se ci fosse già stato un concetto forte e conosciuto di OOP l' ANSI C non sarebbe nato direttamente con tale possibilità? A mio parere non mi sembra una cosa tanto improbabile.
Il vantaggio della mancanza di classi in C in effetti riesco a notarla solo quando vado a compilare programmi per componenti con 8kB di memoria dove ogni singolo byte è importante, ma ora come ora questa limitazione è riservata solo a piccolissimi campi e di sicuro non ai prodotti Apple.

Non si tratta di C++ o C, ma di OOP o non. Non il linguaggio, ma lo stile. Sto parlando della reale efficacia della programmazione ad oggetti, e ho citato il C per fare un esempio di linguaggio senza OOP molto usato, ma non è questa la cosa importante. Se C avesse avuto gli oggetti, avrei parlato di programmatori di C OOP e programmatori di C non-OOP, anziché di C e C++. Tu hai detto che la OOP dev'esserci in ogni linguaggio e dev'essere usata, ma esistono anche altri metodi per programmare senza oggetti, e il C ne è la prova. E non è probabilmente vero che sarebbe nato già OOP se ne avesse avuto la possiblità, altrimenti dovrebbe essere vero anche che tutti i linguaggi nati recentemente dovrebbero supportarlo.
aaa
07/06/14 18:59
Roby94
Il mio intervento era legato molto all'idea di codice procedurale e OOP. Durante lo sviluppo mediante codice procedurale molte volte ti sentirai in necessita delle classi per alleggerire il tuo lavoro ma è raro e molto improbabile che durante lo sviluppo OOP ti sentirai bisogno di passare ad un linguaggio con codice procedurale dato il fatto che la programmazione OOP non nega l'utilizzo del procedurale.
aaa
07/06/14 20:52
pierotofy
:ot:

E' ora possibile caricare programmi e articoli nella nuova categoria "Swift".
Il mio blog: piero.dev
08/06/14 10:23
ZioCrocifisso
Non è vero che c'è questa necessità, ripeto che il C è ancora usato moltissimo. È una necessità tua perché a te piace la OOP e programmi in linguaggi OO. E avere la OOP e non usarla è considerato un anti pattern. In particolare, in un linguaggio in cui l'utlizzo delle classi è obbligatorio, significa utilizzare un "God object", mentre in linguaggi come il C++ non ha semplicemente senso programmare fuori dalle classi, perché si potrebbe benissimo usare il C. E in ogni caso, non c'è motivo di aggiungere la OOP a un linguaggio che è stato pensato per non averla. Non è qualcosa che puoi semplicemente aggiungere, un linguaggio dev'essere pensato come orientato agli oggetti dall'inizio e in ogni sua parte, e la sua libreria standard dev'essere basata sugli oggetti.
Ultima modifica effettuata da ZioCrocifisso 08/06/14 10:26
aaa
08/06/14 10:25
Qwertj
Ogni feature descritta mi ha ricordato altri linguaggi di programmazione (in primis JS, PHP, C#), nemmeno tanto velatamente.

Secondo me è un tentativo di avvicinarsi al Javascript, ne vedo molte somiglianze (a partire dalla grande elasticità;), ed è comprensibile visto che ormai stanno tentando di fare qualsiasi cosa con JS!
In ogni caso, lo vedo come un grande reinventare la ruota: potevano usare Ruby come sostiene Piero, o direttamente Javascript. :pat:

Non ne vedo nessun vantaggio. Forse chi programma già in Obj-C gioirà per una sintassi più concisa (ma che secondo me perde di verbosità e semantica)?
aaa