Актуальность применения ООП сегодня

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

Вопрос был о том, насколько актуальна сегодня парадигма ООП, и что ждет программирование дальше. Сергей ссылался на интересное обсуждение здесь. Из комментариев этого обсуждения можно видеть, насколько тема неоднозначна и противоречива. Я, ни в коем случае не считаю себя большим экспертом в этой области, но есть некоторые мысли, которыми хочу поделиться, надеюсь это будет интересно, ведь недаром, спору «нужен ли C++» уже почти пол века.

Первое, о чем хочется упомянуть, это ни функциональные языки программирования, ни DSL, не являются чем-либо новым, равно как и многие другие «новые подходы», вновь ставшие популярными последние годы. Многие из них берут начало в 60х годах, когда программистов было мало, и пришли они, в основном, из среды математиков и физиков. Тогда было легко изобретать новое, и это быстро подхватывалось пытливыми умами, развивалось и применялось. Сейчас количество программистов значительно выросло, и как следствие, уровень среднего программиста стал значительно ниже. Программирование проделало длинный путь от искусства и науки к ремеслу. Программистская среда стала более инертной, с трудом принимая новые подходы, и чем сложнее подход, тем менее он популярен. Именно поэтому, уже завоевавшая популярность, несложная концепция объектного проектирования по-прежнему остается такой востребованной. Несколько слов в защиту ООП, — во-первых, это работает. Так или иначе, программисты научились понимать друг-друга, строить сложные системы и создавать абстракции при помощи паттернов. Множество программистов начало думать в терминах ООП, множество кода написано и протестировано. Это то, что делает ООП актуальным еще долгое время, особенно для решения классических задач. Но для задач нетривиальных, всегда необходимо пробовать и применять новые подходы. «Серебряной пули» не существует. Более того, понимание подходов функционального программирования, макроязыков, алгоритмов, устройства компиляторов-интерпретаторов дают программисту неоспоримые преимущества для написание качественного и гибкого кода. Поэтому изучайте, пробуйте, и эти знания изменят ваш код и подходы к работе.

Несколько слов о том, как я вижу развитие программирования:

  • Я думаю что постепенно программирование будет смещаться от императивных языков к декларативным. Я имею ввиду, что человек не будет фокусироваться на пути реализации, не будет описывать «как делать», а лишь, «что должно получиться». Профессия программиста трансформируется, — будут своего рода аналитики, описывающие требования к системе, на основании которых система будет работать, без всякого дополнительного кодирования.
  • В связи с тем, что развитие современных процессоров вступило в фазу экстенсивного развития (от гонки частот мы переходим к гонке количества ядер), скоро мы должны увидеть взлет популярности простого функционального языка, к сожалению это не будет ни haskel и erlang, а вероятнее всего javascript. Хотя тут, очень легко ошибиться.
  • Еще раньше, я думаю, мы увидим то, как средства визуального проектирования вновь войдут в моду. С одной стороны, это немного противоречит «декларативной природе», с другой — я думаю нам еще долго не удастся настолько специфицировать интерфейсы, чтобы стало возможным генерировать их.
  • Интерфейсы взаимодействия пользователя с системой будут стандартизироваться все больше и больше. Роль дизайна будет решающей, и попытки специфицировать UI будут способствовать как обучению пользователей взаимодействовать с системами, так и проектировщиков, строить их максимально предсказуемо.

Site Footer

Sliding Sidebar

About Me

About Me

For whom this blog for?

For those who are interested in modern Internet technologies, IT business, startups, management, quality control, personal effectiveness, motivation. Here I write about what is interesting, about problems I faced and solutions I found. I hope it will be interesting to you either.

What motivates me to write?

The desire to improve, to study deeper topics that interest me. Find people with similar problems and tasks, together look for ways out and solutions.

Feel free to contact if you have anything to say to me

Old Flash site with my artistic works and misuc.