Отток

Слышали ли вы о парне, который попрощался с ООП?

О, нет. Другой? Что он сказал?
Он описал все обещания ООП и то, как ни одно из них на самом деле не было выполнено, и что все функции ООП стоят дороже, чем они стоят на самом деле, а функциональное программирование лучше, и.

Ой.

Да, я все это уже слышал.

Итак, ООП окончательно мертв, и мы можем двигаться дальше.

Двигаться дальше, к чему?
Что ты делаешь? Конечно же, к очередному технологическому прорыву!
И на это.

И что у нас на очереди?

Не знаю, меня очень привлекает идея микросервисов; и меня очень интересует Elixr; и я слышал, что React действительно крут; И .

Да.

Да.

Отток.

Вы попали в отток.

Что? Что вы имеете в виду под этим? Это захватывающие времена.

Для меня это довольно депрессивно.

Почему? Новые технологии появляются каждую неделю! Мы поднимаемся на все более высокие высоты.

Тай! Все, что мы на самом деле делаем, это изобретаем велосипед снова и снова.

А мы тратим на это время и огромные усилия.

О, давай! Мы создаём ПРОГРЕСС.

Прогресс.

Действительно? Это не то, что я вижу.

Ну, что ты видишь?
Я вижу отходы.

Огромные, неисчислимые потери времени и денег.

Расточительность, помноженная на расточительность и помноженная на еще большую расточительность.

Как ты вообще такое мог сказать?
Ну давайте хотя бы рассмотрим этот вопрос с ООП.

ООП не умер.

ООП никогда не существовало.

ООП — это техника, хорошая техника.

Сказать, что он мертв, все равно, что сказать, что хорошая отвертка мертва.

Распрощаться с ООП — это все равно, что попрощаться с хорошей отверткой.

Это пустая трата!

Но функциональное программирование лучше!
Извините, но это все равно, что сказать, что молоток лучше отвертки.

Функциональное программирование не «лучше», чем объектно-ориентированное программирование.

Функциональное программирование — это очень хороший метод, который можно использовать в сочетании с объектно-ориентированным программированием.

Это не то, что я слышал.

Я слышал, что они взаимоисключающие.

Нет, конечно нет. Они направлены на решение ортогональных задач.

Проблемы, которые присутствуют во всех проектах.

Послушайте, есть люди, которые думают, что разработка программного обеспечения — это линейный прогресс.

Словно мы поднимаемся по одной ступеньке лестницы снова и снова, и каждая «новая» ступенька лучше предыдущей «старой».

Но это не работает таким образом.

Как вы думаете, как это работает?
Развитие программного обеспечения следует логарифмической кривой роста.

В первые годы прогресс был драматичным и впечатляющим.

В последующие годы прогресс стал гораздо более постепенным.

В настоящее время прогресс незначительный или отсутствует вообще.

Посмотрите: язык ассемблера был намного лучше машинного кода.

Фортран был намного лучше ассемблера.

C был существенно лучше, чем Fortran. C++, вероятно, лучше, чем C. Java был улучшением по сравнению с C++.

Ruby, вероятно, немного лучше, чем Java. Каскадная модель (водопад) оказалась намного лучше, чем ничего.

Agile был лучше, чем водопад. Lean был немного лучше, чем Agile. Канбан, возможно, был своего рода улучшением.

Каждый год, хотя мы и прилагаем большие усилия, мы добиваемся меньшего прогресса, чем годом ранее.

Потому что с каждым годом мы все ближе и ближе приближаемся к асимптоте.

Асимптота?! Считаете ли вы, что существует верхний предел технологии разработки программного обеспечения?
Конечно.

Более того, я думаю, что сейчас мы настолько близки к этому пределу, что дальнейшие усилия бесполезны.

Мы уже прошли точку снижения эффективности.

Что? Это звучит смешно! И депрессивно!
Я понимаю.

Но это потому, что мы привыкли к быстрому росту.

Это были пьянящие дни, и мы хотим вернуть их.

Но их уже нет, и мы должны признать тот факт, что мы тратим время и усилия в огромных масштабах, пытаясь их воссоздать.

Но если мы не будем продвигать будущее, мы никогда его не создадим!
Поверьте, я определенно хочу, чтобы мы двигали будущее.

Но это не то, что мы делаем.

Мы просто ностальгируем по прошлому.

Так к какому будущему нам следует стремиться?
На пути к продуктивности.

К будущему, в котором не будет расточительного оттока кадров.

Что значит «расточительно» в данном контексте?
Вы когда-нибудь использовали IntelliJ или Eclipse для программирования на Java?
Конечно.

Это невероятно мощные инструменты.

Опытный профессионал может работать с этими инструментами чрезвычайно продуктивно.

Рефакторинг! Представление! Удобства! Боже мой, эти инструменты впечатляют! Однако каждый раз, когда появляется новый язык, мы отказываемся от мощных инструментов, чтобы перейти к СЛЕДУЮЩЕЙ НОВОЙ ВЕЩИ.

А инструменты нового языка программирования похожи на уровень жизни в странах третьего мира.

Боже, зачастую не происходит даже банального рефакторинга «переименования»! Для создания достойного набора инструментов требуется время.

Если мы продолжим переходить с одного языка на другой, мы никогда не предоставим им надежные инструменты.

Но новые языки лучше.

Да брось! Они другие, но не лучше, по крайней мере, не настолько, чтобы оправдать возвращение ящика с инструментами в каменный век.

И подумайте о затратах на обучение адаптации нового языка.

Подумайте, сколько стоит организациям использовать 84 разных языка только потому, что программисты каждые две недели с нетерпением ждут новой блестящей штуки.

Блестящие новинки? Звучит как-то оскорбительно, не так ли?
Думаю, да, но часто именно к этому и сводится.

Новые языки не лучше, они просто великолепны.

А поиск золотого руна в виде нового языка, или новой структуры, или новой парадигмы, или нового процесса дошел до того, что становится непрофессиональным.

Непрофессионально?
Да! Это непрофессионально.

Нам нужно осознать, что мы достигли асимптоты.

Пришло время прекратить расточительную смену языков и фреймворков, а также парадигм и процессов.

Пришло время начать просто работать.

Нам нужно выбрать язык, или два, или три.

Небольшой набор простых фреймворков.

А затем выровняйте наши инструменты.

Кристаллизуйте наши процессы.

И стать настоящими профессионалами.

Теги: #прогресс #ООП #фп #разработка сайтов #программирование #ООП #Функциональное программирование
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2011-04-03 18:50:47
Баллов опыта: 609
Всего постов на сайте: 3
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.