За мій багаторічний досвід:
- Мови змінилися (як правило, відносно повільно).
- Коло проблем, які можна практично вирішити, зросла (дещо швидше);
- Розмір та складність рішень збільшились (порівняно швидко);
- Було щось таке
flavor of the day
(іноді добре, часто погано).
Як зазначалося під час обговорення моделей, банда з чотирьох не вигадала зразків. Вони придумали термінологію та шаблони для рішень, які вже застосовуються.
На відміну від багатьох інших галузей, існує ще багато, що не є звичайною практикою. Я бачив, як багато передових речей приходять і йдуть. Багато з них перефразовували методики вже на практиці, а ті, як правило, досягали певної міри. Інші більш-менш відійшли, і більшість, де нові підходи. (Хтось бачив мову 5-го покоління останнім часом?)
Програмісти, яких я бачив, які є найбільш ефективними, можуть вибирати та збирати перевірені компоненти в робоче рішення. Це рідко пов'язане з чимось найсучаснішим, що, як правило, збільшило б ризик проекту. Здатність нарощувати роботу, яка вже була зроблена, дозволяє нам розширити сферу можливого.
Мови програмування, як правило, потрапляють у відносно мало сімей. Ознайомлення з однією мовою в сім'ї полегшує роботу з подібними мовами. Розуміння наявних у мові бібліотек та використання їх може значно підвищити продуктивність та надійність. Взагалі я б вибрав стару мову з відповідними бібліотеками над новою мовою без відповідних бібліотек.
При застосуванні нових технологій важливо уникати Because We Can
синдрому. Додавання нової технології, оскільки це аромат року, як правило, викликає більше проблем, ніж вирішує. Знати, коли технологія вирішить справжню проблему, а коли це просто додасть складності, - корисний навик.
Дійсно хороший програміст вирішить нові проблеми та використає існуючі рішення для решти. Мало кому потрібні крайові технології, всі потребують твердих розчинів.
Зазвичай я шкодую, що ковзаю по леза бритви. Я не пригадую, щоб ніколи шкодували про використання перевіреної технології. Однак багато що описується як new
перепаковка чогось існуючого. Зазвичай таке перепакування полегшує розуміння та застосування відповідним чином.