Альтернативы объектно-ориентированному программированию?

ООП, вероятно, является наиболее часто используемой парадигмой программирования в современном дизайне программного обеспечения. У меня вопрос - какая еще парадигма (и) может конкурировать с ней и может заменить oop ? Чтобы прояснить этот вопрос, я Я не спрашиваю, какие еще существуют парадигмы. Их много, и я хотел бы знать, какой из них:

  • Используется на практике, а не только в теории.
  • Может конкурировать с oop , поэтому его можно использовать в большом проекте без или с минимальными усилиями.
  • Может использоваться для разработки настольного приложения с бизнес-логикой, базами данных и т. д.
  • Не используется с компаньоном oop, но может заменить oop.

И если есть любой, каковы его плюсы / минусы, почему он лучше / хуже, чем oop, на каких языках лучше всего его использовать, как насчет его использования в популярных языках, есть ли в нем какие-либо шаблоны проектирования и может ли он полностью заменить oop?

72
задан 7 revs, 2 users 91% 21 November 2013 в 22:18
поделиться

4 ответа

Функциональное программирование - еще одна парадигма программирования, популярная, в основном, в академических кругах. Лучшим примером функционального языка программирования является Haskell и Standard ML .

Фундаментальное различие между функциональным программированием и объектно-ориентированным программированием состоит в том, что вы программируете в смысле потока данных вместо потока управления . См. Презентацию Укрощение эффектов с помощью функционального программирования автора Саймона Пейтона-Джонса для хорошего введения.

Хорошим примером функционального программирования, используемого в отрасли, является Erlang . В основном он используется в телекоммуникационных, распределенных и отказоустойчивых системах. См. Презентацию Erlang - Программное обеспечение для параллельного мира от Джо Армстронга .

Существуют также новые языки функционального программирования, сочетающие функциональное программирование с ООП. Двумя хорошими примерами являются F # для платформы .NET и Scala для платформы Java; они часто могут использовать существующие библиотеки на платформе, написанные на других языках.

В настоящее время трендом новых языков программирования является Мультипарадигма , где несколько парадигм, таких как объектно-ориентированное программирование и функциональное программирование, объединяются в одном языке.

46
ответ дан 24 November 2019 в 12:46
поделиться

FP - Функциональное программирование - чрезвычайно популярная парадигма программирования, которая существует уже очень давно и в последние годы становится все более заметной. FP предпочитает неизменяемость изменчивости, рекурсии и функциям без побочных эффектов. Некоторыми примерами популярных языков FP являются Erlang, Scala, F #, Haskell и Lisp (среди прочих).

1
ответ дан 24 November 2019 в 12:46
поделиться

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

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

10
ответ дан 24 November 2019 в 12:46
поделиться

В настоящее время не существует парадигм, способных по-настоящему заменить ООП. Проблема (преимущество) ООП в том, что оно делает огромное количество работы за вас - автоматически освобождает ресурсы, проверяет данные и т.д., и это облегчает проверку кода - не говоря уже о том, что подавляющее большинство существующих в мире библиотек написано на ООП-языках, таких как C++, C# или Java. Реальность обходиться без таких масштабных библиотек и тому подобного крайне сомнительна.

В нишевых или академических мирах вы найдете много Функционального программирования. Однако, если вы действительно хотите сделать большой проект, ООП - единственный выход.

Я думаю, что родовое программирование станет новой парадигмой. Однако оно все еще находится на стадии разработки, и только C++/D предлагают действительно хорошее универсальное программирование.

-4
ответ дан 24 November 2019 в 12:46
поделиться