Файл: Классификация языко в программирования. Критерии выбора среды и языка разработки программ.pdf
Добавлен: 28.03.2023
Просмотров: 69
Скачиваний: 2
СОДЕРЖАНИЕ
ГЛАВА 1. ОБЩЕЕ ПОНЯТИЕ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
1.1.Понтие и классификация языков программирования
1.2. Декларативные языки программирования
1.3 Языки программирования общего назначения
ГЛАВА 2. ВЫБОР СРЕДЫ И ЯЗЫКА ПРОГРАММИРОВАНИЯ
2.1 Преимущества и недостатки средств разработки
Крутые инструменты: Любой C/C++ ветеран знает боль установки зависимостей, компиляции кода на нескольких платформах и борьбы с тайнами конфигурации CMake. Rust экономит бесконечные часы, проведенные в криках на GCC, предоставляя разумный менеджер пакетов и кросс-платформенные API.
Для получения дополнительной информации, ознакомьтесь с The Rust Book и Rust by Example.
Этот раздел написал Will Crichton — аспирант Стэнфордского университета, который специализируется на параллельных и конкурентных системах, визуальных вычислениях и архитектуре компиляторов и языков программирования. Он часто пишет о Rust в своем блоге. [7]
Kotlin
Kotlin представляет собой статически типизированный язык, который ориентирован на JVM и JavaScript. Kotlin родился из потребности JetBrains, которая искала новый язык для разработки своего набора инструментов (который был в основном написан на Java). Что-то, что позволило бы им использовать существующую кодовую базу и в то же время решить некоторые проблемы, которые возникали из-за Java. И именно решения этих распространенных недочётов, встречающихся при написании программного обеспечения, определили большую часть характеристик Kotlin.
Лаконичность: уменьшить количество шаблонного кода, необходимого для выражения определенных конструкций.
Универсальность: создать язык, который подходит для любого типа промышленного применения, будь то веб, мобильная разработка, desktop или серверные приложения.
Безопасность: пусть язык сам обрабатывает некоторые из распространенных ошибок, связанные с такими вопросами, как null reference exceptions.
Взаимодействие: разрешить языку взаимодействие с существующими базами кода на Java, библиотеками и фреймворками, что обеспечивает возможность постепенного внедрения и использования результатов уже вложенных инвестиций.
Kotlin был и всегда будет нацелен на прагматизм — выискивая распространённые проблемы, с которыми мы часто сталкиваемся при написании кода, и пытаясь помочь в их решении. Это проходит красной нитью через различные языковые особенности, такие как:
Null-safe по умолчанию: типы Kotlin по умолчанию не обнуляемы, что позволяет избежать назойливых исключений, связанных с пустыми ссылками/указателями.
Делегация первого класса: возможность делегировать функциональность члена класса внешней функции, что облегчает повторное использование и улучшает композицию.
Соглашения: ряд соглашений, которые позволяют писать выразительный код, открывая путь к созданию сильно типизированного DSL, который улучшает читабельность и упрощает рефакторинг[9]
html {
head { title
{+"XML encoding with Kotlin"}
}
body {
p { + "This is some HTML" }
}
}
Kotlin 1.0 был выпущен в феврале 2016 года, спустя более пяти лет разработки и тщательного тестирования в реальных проектах. В настоящее время более десяти продуктов JetBrains используют Kotlin. Также его используют такие компании, как Amex, NBC Digital, Expedia и Gradle.
Для получения дополнительной информации посетите kotlinlang.org
Этот раздел написал Hadi Hariri — вице-президент JetBrains, редактор блога Kotlin и главный докладчик на темы, посвящённые этому языку.
Crystal
Crystal является языком программирования общего назначения с девизом “Быстр как C, привлекателен как Ruby."
Это высокоуровневый, статически типизированный, компилируемый, полностью объектно-ориентированный язык программирования с передовым выводом типов и сборкой мусора.
Архитектурные цели Crystal:
Синтаксис похожий на Ruby (но совместимость с ним не является целью).
Статическая типизация, но без необходимости указания типа переменных или аргументов метода.
Возможность вызывать C-код, написав биндинги к нему на Crystal.
Возможность выполнения и генерации кода во время компиляции, чтобы избежать шаблонного кода (boilerplate).
Компиляция в эффективный машинный код.
Crystal имеет уникальные функции, такие как:
Каналы: Crystal использует каналы, вдохновленные CSP (так же, как Go) для достижения конкурентности. Он использует согласованные легковесные потоки, называемые Fibers, для достижения этой цели. Fiber легко создать с помощью ключевого слова spawn и сделать выполнение асинхронным/неблокирующим.
Макросы: Crystal использует макросы, чтобы избежать шаблонного кода и обеспечить возможности метапрограммирования. Макросы очень мощные и раскрываются во время компиляции, то есть они не приводят к потери производительности.
crystal: Команда crystal сама по себе полнофунциональна и поставляется с большим количеством встроенных инструментов. Она используется для создания нового проекта, компиляции, запуска тестов и многого другого. Там также есть встроенная утилита для автоматического форматирования кода. А ещё crystal play представляет интерактивную среду для быстрого прототипирования, подобно irb. [9]
Бонус:
Выразительность: Код читают гораздо чаще, чем пишут. Благодаря Ruby, Crystal действительно выразителен и лёгок для понимания. Это облегчает обучение для новичков и окупается в долгосрочной перспективе, благодаря упрощению сопровождения кода.
Для получения дополнительной информации вы можете обратить внимание на официальную Crystal Book и Crystal for Rubyists.
Этот раздел был написан Serdar Doğruyol — автор Crystal for Rubyists, создатель Kemal, веб-фреймворка для Crystal, куратор Crystal Weekly.
Elixir
Впервые представленный в 2012 году, Elixir является функциональным языком общего назначения, предназначенным для повышения производительности, масштабируемости и эксплуатационной надежности. В то время как язык является относительно новым, он компилируется в байт-код, который выполняется на виртуальной машине Erlang (BEAM). Erlang VM родилась в телекоммуникационной отрасли, развивается в течение почти 25 лет и стоит за многими сложными системами с высокой доступностью и низкой задержкой.
В настоящее время Elixir в основном используется для создания веб-приложений с использованием как Cowboy (низкоуровневый HTTP-сервер), так и Phoenix (полнофункциональный фреймворк для разработки веб-приложений). Кроме того, Elixir пробивается в нишу встраиваемых систем благодаря фреймворку Nerves.
Цели языка:
”Дружественное” функциональное программирование: сила и преимущества функционального языка программирования с ясным и доступным синтаксисом.
Высококонкурентный и масштабируемый: язык не должен создавать проблем на пути решения серьёзных задач для высоконагруженных систем.
Отличные средства разработки: для компиляции, управления зависимостями, тестирования и развёртывания.
Иммутабельные структуры данных и отсутствие побочных эффектов помогают сделать большие системы проще в обслуживании и понимании.
Конкурентность, основанная на акторах и отсутствии разделяемых данных, хорошо подходит для решения сегодняшних проблем конкурентности при масштабировании. См. Путь к 2 миллионам подключений.
Очень эффективное управление ресурсами означает, что вы можете обслуживать множество пользователей ограниченными аппаратными средствами. См. Почему WhatsApp требуется только 50 инженеров для обслуживания 900 миллионов пользователей.
Горячая замена кода позволяет проводить деплои без даунтайма.
Elixir и Phoenix набирают популярность, поскольку это сочетание позволяет легко создавать сложные надёжные веб-приложения и API с хорошей поддерживаемостью, отличной производительностью и масштабируемостью. Вот почему Pinterest, Bleacher Reports и многие другие компании выбирают Elixir для ключевых частей инфраструктуры своих продуктов. Вы можете получить продуктивность без ущерба для производительности (или наоборот), чего не скажешь о большинстве других языков.
ЗАКЛЮЧЕНИЕ
Конечно, в те времена не было компьютеров в современном понимании. Не было языков программирования, кроме машинного, не было даже приличных операционных систем. Да и машинные коды было возможно вводить лишь с пульта, так что появление первого в мире компилятора языка Фортран казалось фантастикой. Начало было положено – компьютеры становились все мощнее и портативнее, а математики с разработчиками писали все новые и новые языки программирования. Своего апофеоза «зоопарк» языков программирования достиг в России в 90-х годах, и тому были причины. Во-первых, появились первые персоналки – новые и красивые игрушки; во-вторых, софт традиционно был бесплатным, что давало возможность «попробовать все»; и, наконец, самое главное – было много свободного времени на работе, чтобы развлекаться и получать зарплату. До кризисов оставалось еще долго. В то время программисты от мала до велика изучали компиляторы языков, делали для себя вывод и выбор. А выбирать было из чего – в 2000 году в мире насчитывалось около 7000 языков программирования. И большинство из них – студенческие самоделки или языки, далеко ушедшие от нужд народа в науку. Хотя в то время еще были живы и здравы корифеи-разработчики и теоретики языков, программисты мало обращали внимания на строгую классификацию языков. В их понятии, категории были такими: системные языки, языки общего назначения и те, которые интересны лишь военным и ученым. В последнюю категорию сваливали все, что не давалось изучить за пару часов – Ada, APL, Prolog, Forth, Smalltalk и т.п.
Для освоения «системных» языков нужно было какое-никакое, а математическое образование, так как с их помощью писались операционные системы, драйверы, резидентные программы, компиляторы и первые хакерские программы вместе с вирусами. Это было сложно, но некоторым о большем и мечтать не хотелось.
А остальным осталась категория языков общего назначения, с помощью которых писали программы насущные, полезные и не очень сложные: расчет зарплаты, управление заводскими установками, создание утилит, расчетные и инженерные программы. Иногда даже игры, если после работы оставалось свободное время. Напомним, что персоналки в основном стояли на работе, а дома оккупировали бытовые компьютеры. Именно в то время и начались первые «холивары» – священные войны на тему «какой язык лучше». Ответов тогда никто ни от кого не ждал, поэтому предлагается объективно взглянуть на эти языки того времени.