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

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

Запись от vantfiles размещена 21.02.2022 в 08:55
Показов 1957 Комментарии 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 вне форума
 
Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru