На каком языке пишут приложения для linux
Linux быстро развивается и становиться все популярнее, особенно в связи с тем, что сокращается использование Windows, а также множество программистов работают над продвижением Linux, создавая новые программы для настольных компьютеров, которые будут эквивалентны или даже лучше приложений в Windows и Mac OS X.
Для Linux есть множество языков программирования, и более того, каждый год появляются новые. Но не все их используют программисты, ведь для того, чтобы создать надежное, гибкое, эффективное и расширяемое, а главное, безопасное приложение, нужно подобрать правильный язык.
В этой статье мы рассмотрим самые популярные языки программирования для Linux. Рассмотрим те, на которых разработана эта операционная система и те, которые используются для создания приложений. На самом деле список не отсортирован по степени важности, все используемые здесь языки хороши. Все они кроссплатформенные, и вы можете написать на них программу для любой из доступных операционных систем.
Я не преувеличу, если скажу, что этот язык был создан для этой операционной системы. Это уже старый язык. Он создавался в семидесятых годах инженером из Bell Labs Денисом Ритчи специально для написания ядра Unix. Дело в том, что в те времена программы и операционные системы писались на ассемблере и нужно было для каждой архитектуры писать программу отдельно, потому что наборы инструкций отличались. Разработчикам Unix нужен был высокоуровневый язык программирования, на котором они смогли бы написать Unix один раз и собирать его для всех платформ. Таким языком стал Си.
Ядро Linux, основано на Unix, а поэтому тоже написано на Си, также на Си реализованы все модули ядра, драйверы, а также огромное количество системного программного обеспечения. Если вы задавались вопросом, на чем написан Linux то теперь знаете ответ. На Си разработаны множество утилит из набора GNU, X сервер, набор библиотек для работы с графикой GTK и многое другое, некоторые оконные менеджеры. Но для написания новых программ Си используется все реже, ему на замену пришла его объективно ориентированная модификация С++.
Это усовершенствованная версия 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.
Выводы
Это далеко не все языки программирования linux, которые используются для создания программ в Linux, очень часто для создания скриптов в последнее время начали использовать новые языки, такие как Dart,Vala и другие. Для своих нужд я использую Python и PHP, а вы пишите программы для Linux? На каких языках программирования? Напишите в комментариях!
Здравствуйте хочется научиться писать программы под Linux. На каком языке лучше всего писать программы? Такие как Java меня не интересуют, хочется чтобы программы после компиляции запускались средствами самой ОС.
Хочется научиться создавать пакеты, чтобы в дальнейшем их можно было устанавливать как другие программные продукты для Linux.
Я говорю про консольные программы, без графических элементов.
Что мне для всего этого необходимо знать? Язык, какой лучше всего использовать?
Есть ли возможность разрабатывать программы под Linux на windows?
Заранее большое спасибо!
С/C++ если вам нужен нативный код. Python еще можно использовать, но нужен интерпретатор, хотя в линухах он обычно есть.
Сергей Протько: или любой другой ЯП, предварительно установоив пакетс его интерпритатором
LittleFatNinja:
моно уже юзабелен?
мелкософт взялся его поддерживать?
sim3x: и go и rust компилируемые языки, так что я бы поставил их выше Си или C++ в списке, аккурат после python.
sim3x: насколько я знаю все пока только в планах. под mono они только часть своих продуктов тестить собираются но не более.
Разработка на C\C++ используя gcc-компилятор дает возможность использовать приложения и в nix и в win системах, за исключением минимальных доработок.
Python-интерпретатор (по-умолчанию идет во многих nix-системах), а в WIN-системах установленный поверх - дают возможность писать код где угодно и использовать его фактически без ограничений.
Вообще говоря, отвечая на вопрос "можно ли писать программы для Linux под Windows" - можно ответить смело - можно, притом писать можно на любом языке: открываете блокнот в Windows, пишете код, компилируете этот файл уже в Linux, перебросив его туда, в соответствующей кодовой странице (кодировке).
Хочу написать GUI-приложение, да так, чтобы впоследствии было достаточно нетрудно его перенести на OS X, в идеале просто скомпилировать для этой платформы и оно заработало. Какой язык / стек выбрать?
Java? Наверное, таки Java?
UPDATE: приложение должно будет вытаскивать из Postgresql данные, показывать в табличке, редактировать данные и сохранять обратно в таблички + немного логики. Данных будет немного, несколько тысяч записей. Веб-приложение тут не подойдет, база будет локально лежать у каждого юзера своя.
Common Lisp / LispWorks CAPI
Что приложение должно делать?
Да! JavaFX — твой выбор. Если хочешь пойти более трудным путем, то бери C++ и Qt
Добавил в первый пост описание.
На яве нормально будет. У маков же всё нормально с явой?
А что не дотнет?
Qt. И вопрос, если база у юзверя своя локальная, зачем постгрес? Не проще sqlite заюзать?
shift видимо завис или я не умею синхронно.
несколько тысяч записей
Один локальный коннект
Пг с дефолтными настройками
Mate, you're doing it wrong!
Возьми SQLite, и хоть на телефоны переноси.
Только на маке выглядит как говно.
У идеи гуй на JavaFX?
Нет, у них свой фреймворк поверх AWT.
qt с qml, очевидно же
JS мерзок, а тащить целый браузер нерационально для моей довольно простой проги.
жаба и моно весят больше чем электрон.
Только везде кроме линукса выглядит как говно.
Десктоп - значит нормальный кроссплатформенный красивый GUI. И кроме Qt 5 мне ничего не приходит. И с базой данных там будет сразу хорошо.
Я серьезно, не вижу смысла на десктопе ничего кроме Qt 5. Перенести просто скомпилировав? Точно Qt. Даже я, ставив хакинтош, без проблем компилял свой софт для OS X, просто нажимая build в Qt Creator для мака.
Всё как-то слышится то там то сям про libui то Xwt, но где же уровень и качество?
Я же с мака вещаю.
нормальный кроссплатформенный красивый GUI
Если вы хотите, что бы версией для macOS пользовались, то придется писать нативную GUI. Иначе вашим приложением пользоваться будете вы и еще полтора с половиной человека.
Ты его на макоси видел? Впрочем, оно везде выглядит как говно.
Если плевать, как выглядит, пиши на python+Tk, в противном случае пиши гуй на какаве и гтк с одинаковым интерфейсом и линкуй родное на каждой платформе.
Я не говорил что он должен быть нативно-выглядящим. Просто качественным красивым кроссплатформенным. Это Qt 5. Противоречия нет.
Ты его на макоси видел? Впрочем, оно везде выглядит как говно.
есть что-то кроссплатформенное, что выглядит лучше?
Я, как маковод с четырехлетним стажем — скажу, что GTK и Java выглядят просто на порядок хуже, а wx отдельная печальная песня.
Последнее исправление: I-Love-Microsoft 10.10.16 12:51:41 (всего исправлений: 1)
JavaFX неплох. Может тянуть внутри себя JVM, так что на выходе получается бандл ещё меньший, чем при использовании Qt 5 с ICU.
Меня не интересуют некие языки, С++ / Qt вполне устраивает.
Можно ещё сделать так, как это сделал популярный плеер VLC:
Для GNU/Linux — Qt 5, для macOS — CocoaAPI. Но на Qt 5 под macOS писать не рекомендуется. Слишком большая разница между UX у программы на нативных API и программой на Qt.
Да и раздут Qt 5. Во времена Qt 4 ещё можно было понять: либа и исполнительный файл приложения < 10 МБ. А теперь там около 50 МБ всякого разного дерьма через macdeployqt притягивается. Ну и на кой грызть C++ (даже присахаренный Qt'ом) если можно взять тот же JavaFX и получить бандл с программой и JVM всего на 30 МБ? При этом работать программа на JavaFX будет примерно так же быстро, как и Qt-шная, но при этом: весит меньше, а скорость разработки — выше.
EXL ★★★★★ ( 10.10.16 12:56:32 )Последнее исправление: EXL 10.10.16 13:01:57 (всего исправлений: 2)
Очевидный Qt, но на маке он не очень.
JavaFX оно развивается еще? А формы там как делают? Я не против Java, для меня всё кроссплатформенное опенсорсное - гуд.
При этом работать программа на JavaFX будет примерно так же быстро
Во-первых оценка размера завышена в несколько раз, во-вторых кого это вообще заботит? Люди качают приложения на электроне и не жужжат.
CrossFire ★★★★★ ( 10.10.16 13:16:54 )Последнее исправление: CrossFire 10.10.16 13:19:00 (всего исправлений: 1)
Чтобы фанатеть от GUI-тулкита нужно быть ушибленным на голову. Я говорю по делу: я всегда положительно отзывался о Qt, когда он был лёгким и быстрым. Но в Qt 5 они свернули куда-то не туда. Спасибо местному Поттерингу — Тьяго.
Так что какой смысл ковыряться с C++ и отлавливать сегфолты, когда на выходе получается куча зависимостей, которая суммарно по размеру больше чем JavaFX + JVM (!). И всё так же медленно работает.
Раздеплоить на все популярные системы:
И оно будет просто работать.
Как известно, история Unix / Linux и C идут рука об руку. Ядро Linux написано в основном на этом языке программирования, и было даже решено обновить части, написанные на ассемблере, чтобы переписать их на C и упростить для разработчиков. Сейчас даже ведутся споры об использовании Rust (язык Mozilla) в ядре из соображений безопасности.
Но независимо от операционной системы, если вы разработчик (или вы думаете об изучении языка программирования), и вы работаете с дистрибутивом GNU / Linux, вы наверняка хотели бы знать, какие из них являются лучшими или наиболее популярными для разработки приложений для этих платформ .
Что ж, вот список с некоторыми из языки программирования интереснее:
- Питон: Этот интерпретируемый язык стал очень популярным для разработки утилит, будь то инструменты безопасности или другие. Причина в том, что это простой, мощный язык для изучения и множество интересных библиотек для работы.
- C + +: еще один из наиболее часто используемых языков программирования. Он объектно-ориентированный, мощный и один из самых популярных в приложениях Linux, средах рабочего стола и т. Д. Кроме того, если вы думаете о разработке видеоигр, это тоже будет отличным вариантом.
- C: Конечно, это не только основа ядра Linux и многих важных инструментов, но и все еще присутствует во множестве программ. Кроме того, это один из самых мощных языков, который позволяет программировать также на более низком уровне, что идеально подходит для контроллеров, высокопроизводительных приложений и т. Д.
- Perl- Этот язык сценариев по-прежнему важен, несмотря на то, что многие считают его несколько устаревшим. Это швейцарский армейский нож для разработчиков определенных утилит. Однако следует признать, что постепенно его заменяют Ruby, PHP или Python.
- Java: - еще один из наиболее часто используемых языков, поскольку он мультиплатформенный. Кроме того, это также хорошая идея, если вы планируете создавать для Android. Он используется для всех типов программного обеспечения, от утилит до игр, таких как Minecraft, поэтому он очень универсален.
- Go: Язык Google также набирает поклонников. Он уже используется для многих важных проектов. Его легко изучить, он имеет синтаксис типа Си, его программы компилируются и запускаются очень быстро. Он имеет обширную стандартную библиотеку, которая дополняется сторонними библиотеками.
Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.
Полный путь к статье: Любители Linux » Общие » Ресурсы » Лучшие языки программирования для разработчиков Linux
Читайте также: