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

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

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

ПрограммированиеКомпьютерыВсемирная сеть
Мария Хайдар
  · 1,6 K
На Кью задали 8 похожих вопросов
PhD, senior scientist AI, неандерталец  · 8 окт 2017

Самыми сложными с точки зрения того, какие операции они позволяют делать, являются языки высокого уровня. На данный момент их 3: С++, Java и С#. Любители Apple скажут, что есть ещё Objective C, но он есть только для iOS.

Исторически С++ появился раньше всех. Код, написанный на С++, можно скомпилировать в любой операционной системе. Однако С++ не обладает большой частью функциональности, реализованной в Java и C#, плюс, с точки зрения программиста на последних двух языках, его "синтаксис" подчас чересчур громоздок и во многом устарел. Существуют различные расширения С++, типа Qt, которые пытаются устранить этот разрыв, но у этих расширений не очень-то получается. 

Одна из причин, по которой С++ сохраняет свою популярность, заключается в том, что в С++ нет так называемого "сборщика мусора" - программы, автоматически чистящей память от неиспользуемых объектов. Это ставят С++ в преимущество, потому что программист получает ручной контроль за памятью. Поэтому С++ любят использовать для тех процессов, где расход памяти кажется настолько критическим, что автоматический сбор мусора не кажется вариантом. На деле, сборщики мусора в Java и С# заметно продвинулись со времён первых версий. Так что преимущество становится всё более сомнительным, особенно на фоне того, что а) для каждого объекта в С++ приходится писать дополнительный код деструктора, освобождающего память, б) не уничтоженные вовремя объекты - постоянные источник трудно отлавливаемых багов, в) в Java и C# есть методы, позволяющие прямо указать, что объект должен быть удалён в конкретном месте.

Java более проста в своём синтаксисе, чем С++, на Java написано куча программ для интернета вещей. Как и С++, Java  изначально была многоплатформенной. Тем не менее, большая часть функциональности, которая есть в С#, на Java реализуется внешними пакетами, поддерживаемыми полутора программистами и потенциально рискующими конфликтовать друг с другом. Плюс, синтаксис Java кажется мне всё-таки более громоздким, чем у C#.

Как вы уже поняли,  моим фаворитом был, есть, и вот уже 17 лет остаётся C#. Это язык с наиболее чистым синтаксисом, позволяющий изящно писать программы. Вся та функциональность, которая в Java достигается встраиваемыми пакетами, в С# уже есть. Плюс, пакеты туда тоже можно встраивать. 

Многие программисты любят не любить C#, и связано это с его историей. C# - детище Microsoft, а Microsoft в целом имел имидж жёсткого копираста. Изначально на C# программы можно было писать только под Windows, что ограничивало его применимость по сравнению с Java. Плюс, единственным редактором, в котором можно было писать на C#, долгое время оставался Visual Studio. 

Тем временем, всё это давно уже изменилось. Майкрософт стал распространять многие свои приложения бесплатно - в частности, есть бесплатная версия Visual Studio, по функциональности мало отличающаяся от платной. Xamarin сделал программы, написанные на C#, конвертируемыми в другие операционные системы. Наконец, появились и другие редакторы C# и вообще среды .NET, к примеру Rider. 

Кроме того, C# выгодно отличается от Java тем, что прошёл ISO-стандартизацию. 

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

А как же функциональные языки? Haskell, Lisp?

Ответы на похожие вопросы
Какой самый легкий язык программирования? — 3 ответа, задан 
Если не брать эзотерические вроде HQ9+, то есть много учебных языков, которые специально сделаны лёгкими в освоении — Бэйсик, Лого. С их помощью можно легко изучить программирование, но серьёзные программы на них не напишешь. Среди промышленных, на мой взгляд, самые лёгкие — Racket, Python.
1 эксперт согласен
Какой язык программирования самый легкий в обучение?  — 6 ответов, задан 
Пишу код и записываю подкаст  · 22 янв 2022  · dreamsorder.simplecast.com
Если вы инженер и знаете электронику, то я бы сказал, что Си — один из самых простых языков для начала. Ну или как говорят easy to learn, hard to master (легко выучить, трудно мастерски владеть). Набор ключевых слов так же мал как и в каком-нибудь Python. Вы целиком управляете памятью, так что придётся осознать какие в принципе бывают виды памяти. Переполнения при арифметических вычислениях — про это любой инженер-электронщик и так в курсе.
Но конечно писать на нём очень медленно, зато исполнять быстро!
«Порядок снов» в ТелеграмеПерейти на t.me/dreamsorder
Какой самый сложный язык программирования? — 1 ответ, задан 
Программист C++  · 4 нояб 2021
Вообще понятие сложности для всех разное, для кого то и scratch сложный. А вообще, самый сложный язык тот, который ты не понимаешь и не хочешь понять.
какой самый лучший и лёгкий язык программирования?? — 1 ответ, задан 
Погромист на C#  · 20 янв 2022
Если отвечать именно в такой формулировке, то нет "лучшего языка программирования", ибо каждый язык лучший в той задаче, для которой он хорошо подходит.
А самый лёгкий - Scratch. Он специально создавался для обучения детей, и для работы с ним даже не обязательно уметь читать.
Какой самый легкий язык программирования? — 3 ответа, задан 
Научные заметки о жизни: zen.yandex.ru/id/5c43498395753900ac66852d  · 25 нояб 2021
Очень непростой вопрос. Для разных людей это будут разные языки.
Для людей с математическим складом ума простым окажется Паскаль т.к. он построен по очень четко и компактно сформулированным правилам. Всего 30 синтаксических конструкций.
Для людей не склонных к математике проще могут оказаться интерпретаторы и скриптовые языки вроде Бейсика. Результат можно наблюдать после каждой введенной строчки кода.
Встречал людей, для которых наиболее естественными были функциональные языки. Или декларативные.
Одним из самых простых и наглядных языков был Аналитик, разработанный для ЭВМ МИР-2. Его современными аналогами являются математические пакеты типа Маткад и Матлаб.
2 эксперта согласны
Какой самый сложный и самый легкий языки программирования? — 25 ответов, задан 
Диванный философ, по совместительству инженер  · 30 дек 2021
Самый сложный язык программирования это тот который используется для неподходящих для него задач. Трудно написать на Java Script драйвер видеокарты а на ассемблере - Веб-фронтэнд.
На втором месте редкая экзотика по которой нет не документации не обобщенного опыта работы вроде паттернов. Обычно это языки созданные для одной задачи и встроенные в задолго до тебя разработанную систему. Связь с предыдущими разработчиками которой утрачена.
Если есть желание увидеть конкретные названия - язык кодов процессора и намного чаще применяемая его мнемоническая запись ассемблер. НО. Тут сложность не в самом языке. А в том что для разработки на нем надо знать гораздо больше чем на языке высокого уровня. А именно архитектуру процессора для которого собственно пишем. Ситуацию также не упрощает то что архитектуры у разных процессоров разные а соответственно разные и ассемблеры. Вообще ассемблер это собирательное название группы языков. Можно знать C++ но нельзя знать "ассемблер вообще". А еще в чрезвычайно большой трудоемкости разработки на нем. Сотни строк для того что в языке высокого уровня записывается одной строкой. Проще говоря ассемблер рассчитан на то чтобы с максимальной эффективностью выполняться процессором. Удобство программиста здесь в расчет не берется.
А с языками высокого уровня существует "естественный отбор". Сложные неудобные языки просто напросто быстро уходят. Например мне трудно давался Пролог когда его изучали в ВУЗе. Ну так сейчас на нем не то чтобы кто-то пишет. Мало того лично я и не слышал чтобы в профессиональной среде его вспоминали. Как постоянно вспоминают комфортный но проигравший конкуренцию Паскаль. Или с устаревшей парадигмой тем не менее в свое время удобный для математических расчетов Фортран.
Какой самый сложный и самый легкий языки программирования? — 25 ответов, задан 
Высшее, СПбГУ '86, Спорт всю жизнь. Мое тренировочное приложение 💥 для Андроид 👉  · 15 февр 2021  · vk.cc/c5RMsB

это языки с программированием на стеке - например ассемблер мат. сопроцессора х86. Или в ранних версиях Эльбруса. Вместо плоской памяти и набора ячеек у вас стек и это настолько отличается от обычного логики человека что програмить это чрезвычайно трудно. А вот для компилятора это даже удобно и хорошо оптимизируется.

CREATE

DUP , 0 ?DO

DUP C@ C, CHAR+

LOOP DROP 0 C,

DOES>

DUP CELL+ SWAP @

Канал для бега и похудения 55+ (🔸Игровая Статодинамика🔸)Перейти на zen.yandex.ru/id/5d2c40bcdfdd2500aeab7c04
Какой самый сложный и самый легкий языки программирования? — 25 ответов, задан 
Сравниваем 2000+ онлайн-курсов и рассказываем об этом в своём блоге :)  · 5 февр 2021  · checkroi.ru
Отвечает
Ivan Buyavets

Если мы ищем языки, которые могут изучать даже дети, то подойдут Scratch или Logo.

Если речь о взрослых, то, во-первых, вы тоже можете начать с указанных языков — будет полезно и весело! А во-вторых, однозначного рейтинга языков по уровню сложности просто нет, поэтому всё относительно.

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

Сложным является Malbolge, но вряд ли на нём кто-то пишет :)

Из распространенных и наиболее популярных языков программирования — Python и JavaScript — по-своему сложны, но и одинаково прекрасны. В любом случае, их можно изучать с нуля новичкам в IT — с грамотной программой и серьёзным настроем у вас всё получится!

Посмотрите актуальные онлайн-курсы в digital 2023 года!Перейти на checkroi.ru
Какой самый сложный и самый легкий языки программирования? — 25 ответов, задан 
Я - программист, который знает немного о циклах и условиях.  · 15 дек 2021
Это в высшей мере субъективно. Например, язык Prolog - довольно лёгкий язык для людей, не имевших до этого опыта с императивными языками программирования. Но он крайне сложно даётся обычно людям с обширным бэкграундом на C, C++, Java и другим подобным языкам.
Scheme по идее должен быть одним из самых простых языков, его даже в MIT в качестве единственного принимают, на примере которого объясняется всё: это потому, что всё определение языка занимает несколько страниц, а возможностей у него столько, что многие языки могут лишь позавидовать. Однако есть люди, для которых множество открывающихся и закрывающихся скобок вызывает первобытный ужас.
Далее, Python - это вроде бы лёгкий с первого взглядя язык. Но если попытаться писать на нём большие программы, надёжные программы, программы, над которыми одновременно работает несколько людей, то сложность экспоненциально возрастает и практически мало чем отличается от тех же Java и C#.
Вообще, если оценивать языки по разнообразию конструкций и сложности синтаксиса, то C++ наверно будет занимать первое место, потому что синтаксис языка очень сложен, негигиеничные макросы усложняют прочтение программ на порядок, особенно если их много, а объём legacy и вариаций очень велик: всё потому, что программы, созданные на каком-нибудь C++98 должны быть корректными в C++23. Однако если изучать C++ в каком-то подмножестве конструкций, то он не будет каким-то прямо очень сложным.
4 эксперта согласны
Какой язык программирования самый легкий в обучение?  — 6 ответов, задан 
Администрирую и программирую(Java)  · 1 февр 2022
Python.
Возьмите любую из сотен книг по такой довольно сложной теме как машинное обучение. На манер известного анекдота они начинаются примерно так: "возьмите keras, pandas и numpy... Вот этой функцией загрузите данные, этой обработайте, и передайте вон той, что выведет красивый график".
Видите как просто?
Более того, там неимоверная тонна синтаксического сахара. Pyton буквально карамелизирован. Чего стоит только выборка с конца массива в начало, для чего в других языках функции городить приходится, а тут просто взял и написал "arr[-1:]" и всё.
Добавьте к этому ещё отсутствие строгой типизации и вы получите язык мечты. ....поколения зуммеров.
1 эксперт согласен