Популярные языки программирования Linux
Linux быстро развивается и становиться все популярнее, особенно в связи с тем, что сокращается использование Windows, а также множество программистов работают над продвижением Linux, создавая новые программы для настольных компьютеров, которые будут эквивалентны или даже лучше приложений в Windows и Mac OS X.
Для Linux есть множество языков программирования, и более того, каждый год появляются новые. Но не все их используют программисты, ведь для того, чтобы создать надежное, гибкое, эффективное и расширяемое, а главное, безопасное приложение, нужно подобрать правильный язык.
В этой статье мы рассмотрим самые популярные языки программирования для Linux. Рассмотрим те, на которых разработана эта операционная система и те, которые используются для создания приложений. На самом деле список не отсортирован по степени важности, все используемые здесь языки хороши. Все они кроссплатформенные, и вы можете написать на них программу для любой из доступных операционных систем.
1. Си
Я не преувеличу, если скажу, что этот язык был создан для этой операционной системы. Это уже старый язык. Он создавался в семидесятых годах инженером из Bell Labs Денисом Ритчи специально для написания ядра Unix. Дело в том, что в те времена программы и операционные системы писались на ассемблере и нужно было для каждой архитектуры писать программу отдельно, потому что наборы инструкций отличались. Разработчикам Unix нужен был высокоуровневый язык программирования, на котором они смогли бы написать Unix один раз и собирать его для всех платформ. Таким языком стал Си.
Ядро Linux, основано на Unix, а поэтому тоже написано на Си, также на Си реализованы все модули ядра, драйверы, а также огромное количество системного программного обеспечения. Если вы задавались вопросом, на чем написан Linux то теперь знаете ответ. На Си разработаны множество утилит из набора GNU, X сервер, набор библиотек для работы с графикой GTK и многое другое, некоторые оконные менеджеры. Но для написания новых программ Си используется все реже, ему на замену пришла его объективно ориентированная модификация С++.
2. С++
Это усовершенствованная версия Cи, появился он ненамного позже си. В 1980 году Бьёрн Страуструп работал над своим исследованием и ему не хватало стандартных возможностей Си, поэтому он придумал к нему пару улучшений. Неожиданно этот язык стал популярен среди его коллег и он уже не мог сам следить за его развитием.
Теперь это один из самых популярных языков программирования. Здесь доступно как объективно ориентированное, так и процедурные стили программирования. Правда, он все же очень сложен для новичков, как и Си. Здесь нужна очень высокая точность при управлении памятью.
На C++ написано много программного обеспечения в Linux, это те же самые утилиты GNU, много пользовательских программ, графические окружения, браузеры. На C++ написан графический фреймворк Qt, который сейчас используется для окружения рабочего стола KDE и большого количества кроссплатформенных программ. Qt — одновременно коммерческий и некоммерческий проект. Если вы разрабатываете свободное ПО, то можете использовать Qt бесплатно, нет — нужно платить за лицензию. Qt намного проще для начинающих чем чистый Си или С++.
Си и С++ наиболее популярные языки программирования для Linux.
3. Python
Python — это интерпретируемый язык высокого уровня общего назначения. Он разработан человеком по имени Гвидо Ван Россум в начале восьмидесятых годов, он работал над языком в свободное время, и ставил цель создать язык для обучения программированию.
Основная идея Python — простота, максимальная скорость разработки, минимум ошибок, минимум неопределенности. Сам синтаксис языка способствует тому чтобы вы писали правильно и не допускали ошибок. Это мгновенно сделало Python одним из самых популярных языков. Было разработано множество библиотек для работы с системными компонентами, реализаций алгоритмов и наборов API для работы с сетевыми сервисами. Сейчас на Python можно написать как веб-сайт, так и полноценное Qt приложение, доказательство первому — множество сайтов, в том числе Яндекс, а второму популярный видеоредактор OpenShot.
К тому же на Python написано бесчисленное количество системных скриптов и утилит для управления Linux. Это утилита apt для установки программного обеспечения в Ubuntu, пакетный менеджер Emerge в Gentoo и еще огромное количество небольших скриптов. Причина тому простота языка. Программист тратит на программу несколько часов, а она отлично работает несколько лет.
4. Perl
Perl — это ещё один скриптовый язык программирования разработанный Ларри Уоллом в 1987 году. У этого языка очень огромные возможности для работы с текстом. Регулярные выражения, которые используются в современных языках программирования, например, PHP, очень часто пошли именно отсюда. Но у Perl есть огромный недостаток, этот язык имеет очень сложный синтаксис и высокий порог вхождения.
Много старого кода в Linux написано на Perl, это различные скрипты сборки ядра, часты пакетного менеджера dpkg, скрипты системы инициализации и многое другое. Из современных программ, написанных на Perl можно отметить скрипт просмотра информации о системе inxi. Как правило, всё новое пишется на Python, но переписывать старое особого смысла нет.
5. Язык командой оболочки
Команды терминала Linux позволяют не только выполнять повседневные операции в интерактивном режиме, но это также полноценный язык программирования с поддержкой самых простых управляющих конструкций. Наиболее распространенная оболочка Bash (Bourne Again Shell) Больше всего скриптов написаны именно на ее синтаксисе, но есть и другие, например, тот же fish, sh, zsh, dash и т д.
Синтаксис управляющих конструкций Bash немного сложный для понимания, но на нем написано много системных скриптов, это в первую очередь все скрипты инициализации демонов в SysVinit, скрипты для обслуживания серверов, резервного копирования, запуска программ и т д. У каждого администратора есть несколько скриптов, написанных на Bash.
6. Другие языки
Большинство программ в Linux написано с использованием языков программирования, перечисленных выше. Они самые популярные, однако существуют и другие, менее используемые. Но тем не менее написанные на них программы могут выполнятся в Linux.
- Java — это мощный и полностью объективно-ориентированный, кроссплатформенный язык программирования в котором есть широкие возможности для создания как приложений для рабочего стола, так и сетевых и веб-приложений. Язык разработан в девяностых годах компанией Sun Microsystems для встраиваемых устройств, но потом завоевал все платформы. Этот язык больше предназначен для работки Enterprice программ, поэтому вы не часто встретите программы написанные на Java при обычном использовании системы или среди системных утилит. Самые известные программы на Java — это среды разработки: Netbeans, Eclipse и IntelijIDEA.
- JavaScript — это в первую очередь язык программирования для создания динамических веб-страниц, разработанный специально для этой цели в середине девяностых Бренданом Эйхом в компании Netscape. Но уже появился проект Node.js, позволяющий разрабатывать серверные программы на JavaScript. А потом компания GitHub создала фреймворк Electron, на базе Node.js, с помощью которого можно разрабатывать приложения для рабочего стола. Хотя платформа вышла совсем недавно, на ней уже написано до сотни приложений, среди самых известных можно отметить редакторы сходного кода Atom и LightTable, VSCode и другие.
- Go — новый язык программирования, выпущенный Google в 2008 году. Разработчики стремились исправить все недочёты Си, но в то же время создать очень быстрый язык компилируемый язык. У них неплохо получилось и язык начал очень быстро завоёвывать аудиторию. На Go пишутся новые программы, например, современная база данных InfluxDB.
- Ruby — это ещё один интерпретируемый язык программирования. Он разработан Юкихиро Мацумото в 1995 году. По синтаксису он немного похож на Perl, но он обективно ориентированный и достаточно современный. На волне популярности Ruby на нём начинали писать различные скрипты для Linux, например на нём написан фреймворк для тестирования безопасности Metasploit. Но сейчас популярность этого языка прошла и вместо него выгоднее использовать Python.
- C# — Фремворк .NET и C# от Microsoft очень долго не использовался в Linux. Большую часть времени приложения написанные на этом фремворке могли работать только в Windows. Лиш недавно ситуация поменялась в лучшую сторону. Многих разработчиков такое положение дел не устраивало, поэтому была выпущена платформа Mono, свободная реализация .NET для Linux. Приложения, разработанные для Mono могут работать и в Windows и в Linux. Такие программы выглядят, мягко говоря, не очень потому что не используют тему дистрибутива. На Mono не написано ничего серьезного, например, несколько графических клиентов для Git.
Выводы
Это далеко не все языки программирования linux, которые используются для создания программ в Linux, очень часто для создания скриптов в последнее время начали использовать новые языки, такие как Dart,Vala и другие. Для своих нужд я использую Python и PHP, а вы пишите программы для Linux? На каких языках программирования? Напишите в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
На каком языке пишут по для linux
Если вы являетесь технически грамотным пользователем, вы наверняка рано или поздно задумаетесь о том, как разработать то или иное приложение, которого вам не хватает в Linux. При этом следует принимать во внимание один важный нюанс: в большинстве дистрибутивов Linux не регламентируются технологии, которые могут использоваться для разработки программного обеспечения для них (исключением является разве что дистрибутив elementaryOS). Это означает, что вы можете использовать любой доступный язык программирования, графический тулкит, мультимедийный фреймворк или сервер базы данных, заботясь лишь о том, чтобы ваше приложение корректно функционировало в большинстве дистрибутивов. По этой причине я буду описывать лишь те инструменты и технологии, которые использую сам.
1. Языки программирования
1.1. Язык C
Краткое описание возможностей данного языка программирования:
- Введение
- Hello World
- Вывод информации
- Переменные
- Константы
- Строки
- Массивы
- Структуры
- Объединения
- Условные инструкции
- Операторы
- Циклы
- Перечисления
- Приведение типов
- Функции
- Указатели
- Препроцессор
- Заголовочные файлы
- Программная обработка файлов
- Компиляция
- Работа с временными файлами
- Модуль стандартной библиотеки time.h
- Модуль стандартной библиотеки math.h
- Модуль стандартной библиотеки unistd.h
2. Графические тулкиты
2.1. GTK
GTK является мультиплатформенным тулкитом для создания графических интерфейсов. Он предоставляет полный набор виджетов и подходит для создания как простейших утилит, так и сложных программных продуктов. В основе тулкита лежит язык программирования C, но благодаря его простому и понятному API, существует множество оберток, позволяющих использовать его возможности при работе с другими языками программирования. GTK распространяется в соотвествии с условиями лицензии LGPL, что означает, что вы можете использовать данный тулкит как при разработке свободного программного обеспечения с открытым исходным кодом, так и при разработке пропиетарного программного обеспечения с закрытым исходным кодом.
Краткое описание возможностей данного тулкита:
- Введение
- Hello, World!
- Иерархия виджетов
- Виджет окна (GtkWindow)
- Виджет контейнера (GtkBox)
- Виджет сетки (GtkGrid)
- Виджет метки (GtkLabel)
- Виджет кнопки (GtkButton)
- Виджет кнопки-переключателя (GtkToggleButton)
- Виджет флажка (GtkCheckButton)
- Виджет радио-кнопки (GtkRadioButton)
- Виджет поля для ввода числовых значений (GtkSpinButton)
- Виджет кнопки-гиперссылки (GtkLinkButton)
- Виджет кнопки для показа меню (GtkMenuButton)
- Виджет кнопки для разблокировки возможностей (GtkLockButton)
- Виджет переключателя (GtkSwitch)
- Виджет поля ввода строки (GtkEntry)
- Объект автодополнения поля ввода строки (GtkEntryCompletion)
- Объект буфера поля ввода строки (GtkEntryBuffer)
- Виджет поля ввода поискового запроса (GtkSearchEntry)
- Виджет панели мню поиска (GtkSearchBar)
- Виджет строки ускрителя (GtkAccelLabel)
- Виджет контейнера для кнопок (GtkButtonBox)
- Виджет разделителя (GtkSeparator)
- Виджет индикатора исполнения задачи (GtkSpinner)
- Виджет календаря (GtkCalendar)
- Виджет ползунка (GtkScale)
- Виджет кнопки для показа ползунка (GtkScaleButton)
- Виджет кнопки для установки уровня звука (GtkVolumeButton)
- Виджет меню (GtkMenu)
- Виджет главного меню окна (GtkMenuBar)
- Виджет элемента меню (GtkMenuItem)
- Виджет эелемента меню, являющегося флажком (GtkCheckMenuItem)
- Виджет элемента меню, являющегося радиокнопкой (GtkRadioMenuItem)
- Виджет элемента меню, являющегося разделителем (GtkSeparatorMenuItem)
- Виджет панели инструментов (GtkToolbar)
- Виджет палитры инструментов (GtkToolPalette)