Ответы пользователя по тегу Языки программирования
  • Минимальное подмножество высокоуровневого языка программирования?

    Странно, что никто ещё не упомянул Rust. Его разработчики как раз и ставят перед собой задачу сделать максимально простой язык с минимальным количеством сущностей. Язык активно развивается; замыкания, pattern matching и шаблонные типы в нём есть уже теперь.
    Ответ написан
    Комментировать
  • Какие самые востребованные языки программирования и какие задачи они решают?

    Всякий используемый на практике язык программирования общего назначения является полным по Тьюрингу. Это означает, что написанная на нём программа способна выполнять все действия, какие может выполнить абстрактная машина Тьюринга-Поста - каретка, отмечающая клетки на бесконечной ленте, считывающая отметки на них, и перематывающая ленту в обе стороны. Несмотря на всю сложность всех существующих программных систем, никакой современный компьютер в принципе не может сделать ничего, на что не способна эта каретка.

    Другими словами, это означает, что все современные языки программирования по сути своей эквивалентны. Если вы можете написать нечто на одном языке - то по большому счёту ту же функциональность можете получить и на другом.

    Да, есть нюансы: нельзя написать операционную систему на JavaScript или отладчик уровня ядра на Python. Да, компьютерные игры пишут на C++, чтобы добиться максимальной скорости, а веб-приложения часто пишут на Python, Ruby или там PHP.

    Но в основе своей все эти C, Python, Java, даже Haskell - все они полны по Тьюрингу, все они работают на одной и той же архитектуре фон Неймана. И все они фундаментально эквивалентны. Хорошо написанный код на Python и столь же хорошо написанный код на Go, коли они обладают одинаковой функциональностью, могут отличаться множеством деталей реализации, но суть у них будет одинакова. Если переписать этот кусок кода на Haskell - ну он будет выглядеть сильно иначе, но суть всё равно останется той же.

    Поймите это. Нет других языков, кроме полных по Тьюрингу, нет других вычислительных машин, кроме машины фон Неймана. Это всё, что у нас есть, а остальное детали.

    Но вы, кажется, начинающий и мучаетесь выбором. Хватит мучиться, возьмите какой-нибудь простой язык, тот же Python, - я его всем советую, - и занимайтесь, чего-нибудь делайте. Если потом окажется, что вы жить не можете без управления указателями - перейдёте на C, ничего страшного. Если вам очень захочется монад и категорий - Haskell или Scala вас ждут. Такова жизнь: решения находятся итеративно, методом последовательных приближений. Действуйте.
    Ответ написан
    Комментировать