Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Какой язык программирования был для вас самым сложным?

ТехнологииПрограммирование+4
Зинаида Собурова
  ·   · 8,1 K
Веб-разработчик, геймер, специалист по этике  · 3 февр 2022
Я думаю, это был Haskell. Да он и остаётся сложным до сих пор, несмотря на то, что я свою дипломную работу написал на этом языке.
Haskell основывается на крайне сложном математическом аппарате под названием лямбда-исчисление, и в первых своих версиях он фактически и был практически реализуемой версией лямбда-исчисления. В нём даже ввода-вывода не было.
Вследствие такой истории происхождения хаскелл содержит операции, которые в обычной работе на си-подобных языках разработчики ПО не применяют, да и даже не подозревают о том, что так вообще можно.
Например, там автоматически без каких-либо телодвижений работают частичные вызовы функций и их частный случай каррирование. То есть, там функции не просто объекты первого класса, которые можно передавать как аргументы при вызове других функций, вы можете передать в качестве аргумента функцию частично вызванную, такую, которой передали не все аргументы. Даже просто представить, как это в принципе работает, уже сложно.
Или тот факт, что из-за ленивого вычисления аргументов реальный вызов функции произойдёт не в момент достижения потоком контроля места её вызова, а фактически не раньше момента, когда данные понадобятся в I/O. То есть, вы можете написать вычисление произвольной сложности, но запущено оно будет, грубо говоря, только в момент вызова `print`. Не будет `print` - не будет вычисления. В смысле, вообще. Неважно, "объявляли" ли вы какие-то "переменные", "делали" ли эти вычисления предварительно или что-то ещё. Нет необходимости в данных - нет вычислений этих данных. Очень было необычно отлаживать программу в таких условиях.
Инкапсуляция данных делается через монады, операции над которыми абсолютно неортодоксальны и требуют изучения очень сложного материала. Я просто скажу одну-единственную деталь, которую более-менее понимаю в монадах: фактически они используются, чтобы осуществлять боксинг значений, однако являются они абстракцией над процессами. Успехов вам понять, как это работает.
Взамен этого мы, конечно, получаем очень серьёзные преимущества, например, статическую корректность кода ("если оно компилируется, оно, скорее всего, работает"), отличную выразительность системы типов (мы определяем не структуру типа данных, а операции, доступные на нём), невероятно крутой компилятор, который как само собой разумеющееся умеет делать tree-shaking, распараллеливание и много других интересных вещей, о которых я не знаю, возможность формального доказательства корректности нашей программы (мы в лямбда-исчислении программируем, напомню), явное разделение кода между функциональным ядром и императивной оболочкой, если ваша архитектура, собственно, "functional core, imperative shell". Однако этот вопрос не про преимущества Haskell, а про сложные языки программирования, так что я на этом и закончу.
Процесс программирования решения задачи на хаскелле полностью отличается от программирования на си-подобных языках.
3 эксперта согласны
Ответ развёрнутый и аргументированный.
По настоящему "достоверного" ответа в таком вопросе быть не может)
Образовательная платформа Хекслет  · 7 июн 2022  · ru.hexlet.io
Для меня самым сложным языком программирования был PHP, потому что я тогда не знал, как программировать вообще. У меня не было опыта, не было хороших ресурсов для изучения. Я скачивал какие-то книги, в которых рассказывалось... Читать далее
Помогаем новичкам освоить профессию веб-разработчикаПерейти на ru.hexlet.io/webinars
2 эксперта согласны
видимо для того кто отвечал - этот язык оказался самым сложным…
Специалист в области разработки систем...  · 22 июн 2022
Присоединюсь к людям, которые голосуют за Пролог. Тоже написал на нём курсовик, но по сути так и не въехал в дао этого языка. А ещё, если хотите сломать мозг, попробуйте изучить старинный язык APL. Это – программа для... Читать далее
О... я только сегодня вспоминал Пролог. Собственно, по работе никогда не приходилось, просто раз в руки книжка... Читать дальше
Диванный философ, по совместительству инженер  · 4 февр 2022
Из тех что когда-то изучал, в данном случае в ВУЗе - Prolog. Но это был краткий курс на один семестр да и сам язык применялся у нас мало. По крайней мере в гнилые 90-е когда учился я и большинство программистов занималось "бухга... Читать далее
Научные заметки о жизни: zen.yandex.ru/id/5c434983...  · 1 мая 2022
В каждом были сложности, но совершенно разные. Поэтому из трудно сравнивать между собой. АЛГОЛ и Паскаль не имели стандартной библиотеки. И при переносе программы на другую машину могло потребоваться переписать кучу... Читать далее
2 эксперта согласны
Православие. Библия. Откровение - последняя книга...  · 13 февр 2022  · revelat.ru
Есть такой интересный язык программирования, как Prolog. На мой взгляд, чтобы понять логику построения программ при помощи него, нужно достаточно сильно напрячь мозг. Мне удалось написать на нем работающую программу для... Читать далее
Мои лучшие ответы с Яндекс.Кью в Telegram-каналеПерейти на t.me/revelatru
Администрирую и программирую(Java)  · 13 февр 2022
Экзотический язык Brainfuck, так как даже формальные команды языка ассемблера, для меня, легче для понимания, чем программа состоящая лишь из знаков: " + - [ ] < >., "
1 эксперт согласен
В универе в середине 90-х нам преподавали (помимо прочих) SmallTalk и LISP. Smalltalk шел в обязательной дисциплине, и с ним пришлось помучиться -- хотя понятие ООП (объектно-ориентированного программирования) уже поселилось в... Читать далее
1 эксперт согласен
Вопрос не подразумевает однозначного сформулированого ответа.
🍀 Естествоиспытатель   · 17 сент 2022  · shymanovsky.mooo.com
Видимо самым сложным нужно считать тот язык, который был самым первым, когда помимо  языка нужно вообще вникать в смысл профессии. Забавно то, что по прошествии многих лет он станет для вас самым простым и понятным, поскольку... Читать далее
Частный крипто-программист  · 5 февр 2022
Он и сейчас для меня самый сложный. Это язык программирования конфигурации 1С. Ничерта толком не понять. Если что делаеш, то ощущение что как будто на ощупь. Всё получается медленно.
2 эксперта не согласны
Читайте мануалы, проходите курсы. Очень полезно. Нужно алгоритмическое мышение