Domanda su nuove parole d'ordine sui vecchi concetti [chiuso]

1

Qual è il fascino di prendere i vecchi concetti con una parola d'ordine per loro e lanciarli come nuova tecnologia completa con 800 pagine tomo con nerd in copertina?

Molto tempo fa, diciamo gli anni '80, ho scritto software. È stato progettato abbastanza bene e ha funzionato ed è stato mantenibile. Ha separato diverse funzioni di alto livello in diverse librerie di codice e così via.

Negli ultimi 10 anni, ho perso la cognizione del tempo esatto, "Patterns" è diventato popolare. Intere enciclopedie sono state scritte su modelli di progettazione e su questi modelli e su quei modelli.

Lo abbiamo fatto per decenni (e sono sicuro che molto prima che iniziassi a programmare), ma improvvisamente è nuovo e nuovo.

Questo è solo un espediente per vendere libri e corsi di formazione? Perché aggiungere così tanto rumore al già complicato mondo della programmazione quando si fanno le cose bene è davvero ciò che conta.

    
posta stu 24.10.2011 - 23:02
fonte

2 risposte

12

Bene, quando il GoF ha scritto il libro su Design Patterns, intendeva essenzialmente documentare le best practice esistenti in modo che le persone non dovessero reinventare la ruota. Quindi la tua critica che queste sono idee vecchie è in realtà l'intero punto.

    
risposta data 24.10.2011 - 23:08
fonte
0

Jiggy ha un buon punto. Inoltre, c'è il concetto di un "paradigma"; un modo consolidato di pensare a come risolvere i problemi. Diversi paradigmi hanno diverse migliori pratiche. Quando vengono a galla nuovi paradigmi, le migliori pratiche cambiano per trarne vantaggio. Notevoli cambiamenti nel modo di pensare includono codifica procedurale vs object-oriented, programmazione basata su eventi (dove il SO controlla il programma invece del contrario), multithreading (i computer si stanno avvicinando al limite di quanto velocemente possono fare una cosa alla volta; quindi, rendili capaci di fare diverse cose allo stesso tempo), ecc. ecc.

Quando le cose cambiano, vecchi schemi e pratiche diventano obsoleti. Se stai imparando come strutturare il codice usando un libro C degli anni '80, sarai a corto di città a provare la stessa cosa in C ++. Se conosci il linguaggio C ++, avrai un vantaggio per l'apprendimento di Java, ma c'è ancora un mondo di differenze, principalmente nella gestione della memoria (distruggi sempre i tuoi oggetti in C ++, in Java, non distruggi quasi mai i tuoi oggetti). Anche tra Java e C #, due linguaggi gestiti dalla memoria orientati agli oggetti, ci sono modi molto diversi di pensare a strutturare gli oggetti in quei linguaggi (l'implementazione del pattern "singleton", ad esempio, è diversa in base alla semantica di ogni lingua). Conoscere queste differenze semantiche, e tuttavia essere ancora in grado di ricollegarle a concetti di base orientati agli oggetti, mentre le lingue crescono ed espandono le loro capacità, è ciò che permette agli autori e agli editori di scrivere libri di programmazione.

    
risposta data 24.10.2011 - 23:35
fonte

Leggi altre domande sui tag