Durante i miei anni di esperienza:
- Le lingue sono cambiate (di solito relativamente lentamente).
- La gamma di problemi che possono essere praticamente risolti è cresciuta (un po 'più veloce);
- La dimensione e la complessità delle soluzioni è aumentata (relativamente rapidamente);
- C'è stato qualcosa che è
flavor of the day
(a volte buono, spesso cattivo)
Come notato in una discussione sui modelli, la banda di quattro non ha inventato modelli. Sono venuti fuori con la terminologia e modelli per soluzioni che sono già stati applicati.
A differenza di molti altri campi, c'è ancora molto che non è una pratica comune. Ho visto molte cose all'avanguardia andare e venire. Molti di questi erano riformulazioni di tecniche già in uso, e quelle in genere riuscivano in una certa misura. Altri sono più o meno andati via, e la maggior parte dove nuovi approcci. (Qualcuno ha visto una lingua di quinta generazione ultimamente?)
I programmatori che ho visto che sono più efficaci possono selezionare e assemblare componenti provati in una soluzione funzionante. Questo raramente comporta qualcosa di all'avanguardia, che generalmente aumenterebbe il rischio del progetto. La possibilità di costruire sul lavoro che è già stato fatto, ci consente di aumentare la portata di ciò che è possibile.
I linguaggi di programmazione tendono a cadere in relativamente poche famiglie. La familiarità con una lingua in una famiglia facilita il lavoro con lingue simili. Comprendere le librerie disponibili nella lingua e sfruttarle può aumentare notevolmente la produttività e l'affidabilità. In generale, sceglierei una lingua più vecchia con librerie appropriate su una lingua più recente senza librerie appropriate.
Quando si applicano le nuove tecnologie è importante evitare la sindrome di Because We Can
. Aggiungere una nuova tecnologia perché è il sapore dell'anno, tende a causare più problemi di quanti ne risolva. Sapere quando la tecnologia risolverà un problema reale e quando aggiungerà solo complessità è un'abilità utile.
Un programmatore davvero bravo risolverà i nuovi problemi e userà le soluzioni esistenti per il resto. Poche aziende hanno bisogno di tecnologie all'avanguardia, tutti hanno bisogno di solide soluzioni.
Di solito mi pento di aver fatto scivolare la lama del rasoio. Non ricordo di essermi mai pentito di usare una tecnologia collaudata. Tuttavia, gran parte di ciò che è descritto come new
è il riconfezionamento di qualcosa esistente. Di solito, questo riconfezionamento rende le cose più facili da capire e applicare in modo appropriato.