Форум программистов, компьютерный форум, киберфорум
vantfiles
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  

О парадигмах.

Запись от vantfiles размещена 21.02.2022 в 08:55
Показов 1928 Комментарии 1

Это глава из книги "Гудлиф П - 97 этюдов для программистов Опыт ведущих экспертов -- 2012".
К сожалению, отдельно в сети она не нашлась, а смысл в ней имеется глубокий, поэтому помещаю ее в книжечку.

Как следует изучи более двух языков программирования

Рассел Уиндер

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

Каждый программист начинает с какого-то одного языка. Этот язык оказывает преобладающее влияние на то, как программист видит программное обеспече­ние. Но каким бы долгим ни был опыт работы программиста с этим языком, ес­ли он работает только с ним одним, то и будет знать только этот язык. Мышле­ние программиста, знающего лишь один язык, ограничено возможностями это­го языка.

Программист, изучающий второй язык, встретится с трудностями, особенно ес­ли вычислительная модель второго языка отличается от первого. C, Pascal, Fortran - все они основаны на одной вычислительной модели. Переход с Fortran на C вызывает некоторые трудности, но их не так много. Переход с C или Fortran на C++ или Ada сопровождается фундаментальными трудностями с пониманием поведения программ. Переход с C++ на Haskell означает существенные измене­ния, а потому существенные трудности. Переход с языка C на Prolog станет весь­ма существенным испытанием.

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

Чем полезны такие трудности? Здесь играют роль наши представления о реали­зациях алгоритмов, а также идиомах и шаблонах этих реализаций. В частно­сти, взаимное обогащение идеями лежит в основе достижения мастерства. Идио­мы решения задач, применимые в одном языке, могут оказаться недоступны в другом. Пытаясь перенести идиомы из одного языка в другой, мы начинаем лучше понимать оба эти языка и задачу, которую решаем.

Взаимное обогащение при использовании разных языков программирования дает мощнейшие эффекты. Пожалуй, наиболее очевидным из них является все растущее применение декларативных режимов описания в системах, реализо­ванных посредством императивных языков. Любой знаток функционального программирования может легко применить декларативный подход, даже при работе с таким языком, как С. Применение декларативных методов обычно при­водит к созданию более коротких и понятных программ. Скажем, C++ опреде­ленно выступает за такой подход, обеспечивая всестороннюю поддержку обоб­щенного (generic) программирования, в котором декларативный режим описа­ния является почти обязательным.

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

Неделя начального курса - это хорошо, но не достаточно для изучения нового языка. Чтобы приобрести рабочие навыки применения языка, обычно нужно потратить несколько месяцев хотя бы факультативно. Важно практическое ос­воение идиом, а не просто изучение синтаксиса и вычислительной модели.
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 1
Комментарии
  1. Старый комментарий
    Аватар для Welemir1
    согласен. Даже, если язык в той же парадигме(ООП например), он в любом случае будет содержать свое видение, подходы, инструменты. А уж прыжок с ООП на ФП -реально мозговзрывная вещь
    Запись от Welemir1 размещена 21.02.2022 в 09:12 Welemir1 вне форума
 
Новые блоги и статьи
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru