Przez moje wieloletnie doświadczenie:
- Języki się zmieniły (zwykle stosunkowo powoli).
- Wzrósł zakres problemów, które można rozwiązać praktycznie (nieco szybciej);
- Rozmiar i złożoność rozwiązań wzrosła (stosunkowo szybko);
- Było coś, co jest
flavor of the day
(czasem dobre, często złe).
Jak zauważono w dyskusji na temat wzorów, czteroosobowy gang nie wymyślił wzorów. Wymyślili terminologię i szablony rozwiązań, które już były stosowane.
W przeciwieństwie do wielu innych dziedzin wciąż jest wiele rzeczy, które nie są powszechną praktyką. Widziałem wiele nowatorskich rzeczy, które przychodzą i odchodzą. Wiele z nich polegało na przeredagowaniu technik już stosowanych w praktyce, a te zwykle do pewnego stopnia się udawały. Inni mniej lub bardziej odeszli i większość z nich ma nowe podejście. (Czy ktoś ostatnio widział język 5. generacji?)
Programiści, których widziałem, którzy są najbardziej efektywni, mogą wybierać i montować sprawdzone komponenty w działające rozwiązanie. Rzadko wiąże się to z czymś najnowocześniejszym, co ogólnie zwiększa ryzyko projektu. Umiejętność budowania na pracy, która została już wykonana, pozwala nam zwiększyć zakres tego, co jest możliwe.
Języki programowania należą do stosunkowo niewielu rodzin. Znajomość jednego języka w rodzinie ułatwia pracę z podobnymi językami. Zrozumienie bibliotek dostępnych w tym języku i wykorzystanie ich może znacznie zwiększyć wydajność i niezawodność. Ogólnie rzecz biorąc, wybrałbym starszy język z odpowiednimi bibliotekami niż nowy język bez odpowiednich bibliotek.
Podczas stosowania nowych technologii ważne jest, aby uniknąć Because We Can
syndromu. Dodanie nowej technologii, ponieważ jest to smak roku, powoduje więcej problemów niż rozwiązuje. Wiedza, kiedy technologia rozwiąże prawdziwy problem, a kiedy tylko zwiększy złożoność, jest przydatną umiejętnością.
Naprawdę dobry programista rozwiąże nowe problemy, a resztę wykorzysta istniejące rozwiązania. Niewiele firm potrzebuje najnowocześniejszej technologii, wszystkie potrzebują solidnych rozwiązań.
Zwykle żałuję zsuwania się żyletki. Nie przypominam sobie, by kiedykolwiek żałowałem, używając sprawdzonej technologii. Jednak wiele z tego, co jest opisane jako new
przepakowanie czegoś istniejącego. Zazwyczaj takie przepakowywanie ułatwia zrozumienie i zastosowanie.