Какие соответствия парадигмы языка программирования, который задание?

В Dart 2 new - необязательное ключевое слово. Так что Text и new Text - это одно и то же.

11
задан John Millikin 8 November 2008 в 07:58
поделиться

8 ответов

"Или другими словами, все проблемы могут быть уменьшены до гвоздей для одного молотка?" Да. Период. Любой язык программирования, с которым Вы, вероятно, столкнетесь, будет так же завершен как все другие. Существует на самом деле формальное определение "полноты" для языка программирования.

"Люди должны были когда-либо изучать новую парадигму?" Всегда.

Существует на самом деле прием к следующему взлеты и падения "сдвигов парадигмы". За прошлые 30 лет моей карьеры я видел, что программирование выросло от относительно упрощенной обязательной/процедурной модели до многих намного более богатых моделей, которые включают лучший баланс между процессом и данными.

Я заметил следующее...

Часть движущей силы является сообществом искусственного интеллекта. Многие из этих "новых моделей", запущенных как схемы представления AI знаний. Они получили тягу там, затем они сочились в более основные приложения.

Модель сущностей и связей была первоначально для представления знаний, не деловых сделок. Объектная модель, точно так же был для представления знаний. Затем люди моделирования нашли его. Теперь остальная часть нас имеет его.

Вот мое заключение.

Программное обеспечение является Представлением Знаний.

Ваш выбор Парадигмы или Модели или Подхода или Стиля основан на ответе на следующий вопрос:

"Как я могу лучше всего представить эту проблему?"

Если проблема имеет объекты и отношения, OO. Если проблема имеет алгоритмы и преобразования, карты, фильтрует и уменьшает, Функциональный. Если проблема является динамичной, изменяется и является гибкой, Динамичной. Если проблема статична и увеличится быстро, Статичный.

12
ответ дан 3 December 2019 в 01:54
поделиться

Стоит изучить альтернативные парадигмы (OO, функциональное, процедурное, динамичное, и т.д.), потому что это поможет Вам думать о проблемах по-разному.

Например, думайте о различии в решении обхода дерева линейным способом (первый способ, которым я когда-либо делал это) по сравнению с использованием рекурсии. Или комбинация Google Карты и Уменьшает, чтобы помочь им индексировать Интернет.

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

9
ответ дан 3 December 2019 в 01:54
поделиться

Парадигма независима от языка. Можно разработать в стиле OO в C (смотрите на GTK). Когда я программирую в Java, я использую главным образом функциональный стиль.

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

Как (тривиальный) пример, сравните quicksort реализации в Java и Ocaml, или лучше все еще, Haskell, на этой странице: http://www.rosettacode.org/rosettacode/w/index.php?title=Quicksort

(Который не означает функциональный, лучше. Существуют проблемы, лучше решенные с OO).

7
ответ дан 3 December 2019 в 01:54
поделиться

Я думаю, что Вы найдете ответы на всем протяжении платы. Чем больше я работаю, тем больше я нахожу, что "полезно" знать некоторых из других. как C#/VB/SQL разработчик Сервера я нахожу это более полезным, чтобы я узнал немного о F# и некоторых из других языков там, чтобы просто получить широкое воздействие, действительно выяснить, какой инструмент является правом...

2
ответ дан 3 December 2019 в 01:54
поделиться

Все проблемы могут быть уменьшены до гвоздей для одного молотка?

Допустите ошибку да. Можно решить проблемы со всего одним молотком. Его просто распиливание, которое дверь в половине берет намного дольше с ним.

Люди должны были когда-либо изучать новую парадигму? Для моих прошлых двух заданий мои рабочие места потребовали Java и C#. Есть ли рабочие места, которые конкретно используют языки неOO?

Разработчики должны делать это каждые 15-20 лет или около этого.

Существует определенно целая индустрия небольших компаний с основанными на доступе системами, записанными с процедурным VBA. (и я думаю, что работал на большинство из них). Классические разработчики ASP должны изучить ASP.NET. Разработчики Perl изучают Python. Управляемая разработка пакета уступила управляемой событиями разработке.

5
ответ дан 3 December 2019 в 01:54
поделиться

Динамический материал пугает дерьмо из меня, но Ruby on Rails является безусловно лучшей системой разработки, я видел веб-материал. Я не чувствую себя довольным использованием его для действительно большого, тяжелого проекта обслуживания хотя, потому что слишком легко изменить значение существующего, скомпилированного, законченного кода. Также слишком легкий для стиля кодирования одного человека для превращения его на новый язык.

Динамичный / сценарии также хорошо для знания для системных администраторов и любого, кто выполняет систему Linux. Запись быстрого сценария в Bash или Ruby бьет АД из попытки реализовать ту же функциональность в Java или C++.

OO делает намного легче понять большие объемы кода. Если Вы имеете многочисленную команду или несколько многочисленных команд и должны дать обзор быстро, OO делает намного легче описать и изолировать данную часть функциональности. Я должен сказать, ПРАВИЛЬНО КОДИРОВАЛ OO!

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

1
ответ дан 3 December 2019 в 01:54
поделиться

Разрабатывание дизайна и проектирование навыков с ООП в памяти являются самым желательным набором навыков для большой карьеры агностика языка.

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

0
ответ дан 3 December 2019 в 01:54
поделиться

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

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

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

  • Это должно работать на нескольких настольных платформах?
  • Если это - настольное приложение, это должно иметь собственный стиль?
  • Быстрое повторение важных проектов
  • Как это должно сохраняться?
  • С какими сторонними системами это должно работать?
  • Существующее знание программиста / навыки / предпочтения.
0
ответ дан 3 December 2019 в 01:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: