Bash
Сценарии командной оболочки Unix, созданные Кеном Томпсоном в начале 1970-х годов, тесно связаны с языком программирования C. Bash — обновленная оболочка Unix — была впервые выпущена в конце 80-х годов и до сих пор активно разрабатывается. На Bash обычно пишутся сценарии конфигурации сервера, поэтому это хороший выбор для работы в современных облачных средах с контейнерным хранением и микросервисами. Скрипты командной оболочки используются достаточно часто, так что знание этого языка пригодится.
Также стоит обратить внимание на zsh, который в настоящее время является оболочкой по умолчанию в macOS.
Области применения: администрирование сервера, инструменты интерфейса командной строки, DevOps, виртуализация.
COBOL
Один из старейших языков, используемых до сих пор, был создан Грейс Хоппер в конце 1950-х годов и предназначался для стандартизации разработки крупномасштабных бизнес-приложений на компьютерах. Блестящая концепция, которая до сих пор применяется в кроссплатформенных SDK. Через системы COBOL проходят невероятные 95% транзакций ATM, причем многие из этих устройств работают круглосуточно 365 дней в году. Такие поставщики устройств, как IBM, разрабатывают более мощные машины, предназначенные для COBOL, но продолжают обслуживать и обновлять существующие системы из-за затрат и рисков, связанных с их заменой. В ближайшее время COBOL никуда не уйдет. Это хороший выбор для тех, кто хочет работать с клиентами из финансовой сферы.
Области применения: банковское дело / финансы, международные корпорации, правительства.
C/C++
Эти языки часто занимают вершины различных рейтингов — их ценят за мощность и быстродействие. C был создан в начале 1970-х годов Деннисом Ритчи, C ++ в 1985 году разработал Бьёрн Страуструп. Сегодня два этих языка лежат в основе всего: от ОС и игр до современных научных вычислений и машинного обучения. C и C++ хорошо подходят для требовательных приложений, которым важны низкоуровневый доступ к оборудованию и производительность. Для освоения этих языков нужно время и определенные усилия.
Область применения: разработка ОС / SDK, встроенные устройства, игровые движки, наука.
C#
C#, выпущенный Microsoft в 2000 году, был разработан Андерсом Хейлсбергом как кроссплатформенный язык объектно-ориентированного программирования. Сейчас он часто используется для разработки бизнес-приложений, API, игр и многого другого. Благодаря широкому набору функций этот язык подходит для работы с графикой и других задач асинхронного программирования.
Области применения: корпоративные приложения, разработка программного и пользовательского интерфейса, игры, графика.
Dart
Современный язык, разработанный в Google для создания мобильных, десктопных, веб-и серверных приложений. Его создатель Ларс Бак также придумал JavaSript Engine V8. Dart напоминает другие современные языки объектно-ориентированного программирования — C #, TypeScript и Java — и предоставляет обширный набор функций, подходящих для определения сложных взаимодействий, асинхронных операций, анимации и других задач.
Области применения: кроссплатформенные приложения, облачные сервисы / корпоративные системы, игры, графика.
Fortran
Fortran, разработанный в IBM в 1950-х годах Джоном Бакусом, — это язык общего назначения, который был создан для проведения научных и инженерных работ. Он до сих пор широко используется в этих целях, в том числе для контрольного тестирования самых быстрых суперкомпьютеров в мире. Он также применялся в космических и физических исследованиях и моделировании погоды.
Области применения: аэрокосмическая/оборонная промышленность, научные вычисления, численный анализ.
Java
Java — это ООП-язык общего назначения, разработанный в 1990-х годах Джеймсом Гослингом в Sun (сейчас принадлежит Oracle) и предназначенный для компиляции в байт-код для запуска на виртуальной машине Java. К 2020 году к ним относятся практически все виды устройств — от телевизоров и игровых приставок до серверов, телефонов и даже кухонных приборов. Язык широко распространен в корпорациях и университетах, что сделало его популярным как среди начинающих программистов, так и среди опытных разработчиков.
Области применения: корпоративные приложения, встроенные системы, веб-сервисы, игры.
JavaScript
JavaScript разработал Брэндон Айх в 1990-х годах, чтобы добавлять выполнение скриптов на сайты. Сегодня это универсальный язык веб-интерфейса с мощными стандартизированными функциями, которые поддерживаются всеми основными браузерами. JavaScript соответствует стандарту EcmaScript, который обновляется каждые несколько лет с добавлением новых спецификаций языка. Кроме того, JavaScript часто используется для разработки серверных служб и API, мобильных приложений, игр и другого программного обеспечения. Это отличный выбор для изучения и дальнейшего совершенствования.
Области применения: фулстэк-разработка, облачные сервисы / контейнерное хранение, игры, утилиты.
Julia
Современный язык высокого уровня, предназначенный для высокопроизводительной числовой обработки и статистического анализа. Julia разработали в 2009 году Джефф Безансон, Стефан Карпински, Вирал Б. Шах и Алан Эдельман. Это один из четырех языков, позволяющих достигать производительности суперкомпьютеров на уровне петафлопсов (наряду с C, C ++ и Fortran). Пользуется популярностью в университетах, правительствах и финансовых учреждениях.
Области применения: финансовый анализ, математические исследования, научные вычисления.
Kotlin
Kotlin, разработанный для взаимодействия с Java, оснащен возможностями функционального программирования и функциями ООП, включая работу с ламбда-выражениями, перегрузку операторов и так далее. В 2019 году Google назвал Kotlin предпочтительным языком для разработки под Android, поэтому его точно стоит изучить тем, кто планирует создавать приложения для Android и плагины для популярных SDK.
Области применения: приложения для Android, разработка на стороне сервера, а также все сферы, где используется Java.
Lisp
Lisp — это группа языков, связанных с исторической реализацией LISP, которая была разработана в MIT в 1950-х годах для описания программ математическим способом. Синтаксис в Lisp основан на s-выражениях — это отличает его от большинства других языков, многие из которых связаны с С или находятся под его влиянием. Lisp был популярен в ранних исследованиях ИИ и широко применялся как язык скриптов для САПР и других инженерных приложений, так как он воспринимает код в виде данных и позволяет настраивать язык с помощью макросов , что отличает его от более статичных языков. Среди известных приложений на его основе —AutoLisp (скрипт для AutoCad) и Roomba. Один из языков семейства, Clojure, особенно удобен для создания масштабных приложений для бизнеса и интернета.
Области применения: искусственный интеллект, робототехника, написание скриптов, расширения языков, исследования, разработка.
Lua
Lua был разработан в 1993 году Роберто Иерузалимски для встраивания в другие приложения. Сейчас он широко используется в качестве языка скриптов для добавления новых функций в программы. Например, с его помощью можно дополнять описание игровой логики при разработке видеоигр или расширить набор пользовательских функций в графических приложениях.
Области применения: расширения программного обеспечения, игровая логика, автоматизация, электроника / интернет вещей.
PowerShell
PowerShell был разработан Microsoft в 2006 году для предоставления Unix-подобных функций интерфейса командной строки в Windows. Позже он был выпущен с открытым исходным кодом и портирован на macOS, CentOS и Ubuntu. PowerShell широко применяется в системах, использующих Windows Server и другие технологии Microsoft: он делает администрирование удобнее и снижает затраты на обслуживание.
Области применения: системное администрирование Windows, интерфейс командной строки, скрипты, обслуживание.
Python
Python, представленные в 1991 году Гвидо ван Россумом, был задуман как хорошо читаемый язык с функциями ООП, предполагающий использование функциональных парадигм для построения чистых и хорошо организованных программ. Python пользуется поддержкой крупных платформ и применяется в самых разных сферах, в том числе в науке, интеллектуальной обработке данных, разработке систем искусственного интеллекта, компьютерной графике для художественных фильмов, облачных вычислениях, разработке игр и многих других. Python хорошо зарекомендовал себя и останется одним из наиболее востребованных инструментов в течение долгого времени.
Области применения: искусственный интеллект / машинное обучение, интеллектуальная обработка данных, облачные сервисы / веб, медиа, скрипты.
R
R был выпущен в 1995 году для статистических вычислений и выполнения других сложных математических операций, связанных с анализом данных и графикой. Корпорация Fortune 500 часто использует R для проведения комплексного анализа рисков, тенденций поведения клиентов и других задач, требующих большого количества вычислений. R отличается от многих языков статистики, а его синтаксис на основе s-выражений напоминает Lisp. Несмотря на то, что для других целей R используется редко, он считается стандартом в сфере аналитики данных, особенно для прогнозирования рынков или анализа пользовательских тенденций.
Области применения: интеллектуальная обработка данных, прогнозная аналитика, графика.
Ruby
Ruby был разработан Юкихиро Мацумото в 1995 году в качестве объектно-ориентированного языка скриптов, чтобы компенсировать отсутствие функций ООП в других скриптовых языках программирования того времени. Наличие таких функций, как динамическая типизация, наследование, отражение и перегрузка операторов, делают его идеальным для созданий сложных скриптов и приложений для веб-серверов.
Области применения: сложные скрипты, управление пакетами, утилиты, веб-сервера.
Rust
Rust — это мультипарадигмальный язык, предназначенный для создания крупных параллельных систем, обладающих высокой производительностью и надежностью. С 2016 года Rust ежегодно признавался самым популярным языком программирования в опросе StackOverflow. Будучи языком системного уровня, похожим на C ++ и не требующим длительной обработки или наличия виртуальной машины, Rust обеспечивает низкоуровневый доступ к оборудованию. Благодаря этому он идеально подходит для разработки операционных систем, программ для микроконтроллеров и другого софта, в котором решающее значение имеет производительность железа.
Области применения: разработка ОС, встроенные приложения, сервера, инструменты, игры.
SQL
SQL относится к универсальным языкам программирования, но является мощным предметно-ориентированным языком для управления реляционными базами данных. Способы его применения — от хранилищ данных Fortune 500 до встроенного SQLite — широко используются в десктопных и мобильных приложениях. На многих позициях в ИТ и разработке необходимо хотя бы базовое знание SQL. Расширенные навыки позволяют разработчику создавать чрезвычайно безопасные и надежные правила предметной области, не зависящие от языка программирования или используемого SDK. Высокопрофильные реализации включают в себя Microsoft SQL Server, Oracle Database и PostgreSQL. Каждая из них обладает уникальным расширением языка SQL и предлагает новые функции, выходящие за рамки базовой спецификации SQL. Изучение SQL не займет много времени и пригодится во многих областях от аналитики и обработки данных до управления в сфере ИТ и разработки программного обеспечения.
Области применения: работа с реляционными данными, встраивание данных в приложения.
Swift
Swift был выпущен Apple в 2014 году в качестве замены Objective-C в их продуктах (аналогично тому, как Kotlin заменил Java для Android). Swift сохраняет некоторые функции Objective-C (такие как динамическая диспетчеризация), используемые в программном обеспечении продуктов Apple, но отличается повышенной безопасностью и измененным синтаксисом, более близким к C # или Java.
Области применения: создание приложений для macOS, iOS, watchOS и так далее.
TypeScript
TypeScript — это язык с открытым исходным кодом от Microsoft, разработанный для добавления функций ООП в JavaScript и повышения удобства работы со сложными приложениями. TypeScript, представленный в 2012 году, обычно используется для создания надежных масштабируемых веб-приложений, сред и других программ — например, популярного редактора VS Code.
Области применения: веб-интерфейс, разработка программного интерфейса, игры, масштабирование любого программного обеспечения JavaScript.
Вывод
Для успешной карьеры в ИТ нужно владеть хотя бы несколькими языками из данного списка. У каждого из них есть свои сильные и слабые стороны: эффективнее всего использовать преимущества конкретной среды и искать другие инструменты для тех областей, в которых система работает не так успешно. Если какой-то язык не подходит для решения определенной задачи, найдите тот, который пригодится больше. Существует множество стилей программирования и десятки шаблонов проектирования для каждого из перечисленных языков.