Популярные языки программирования Linux
Linux быстро развивается и становиться все популярнее, особенно в связи с тем, что сокращается использование Windows, а также множество программистов работают над продвижением Linux, создавая новые программы для настольных компьютеров, которые будут эквивалентны или даже лучше приложений в Windows и Mac OS X.
Для Linux есть множество языков программирования, и более того, каждый год появляются новые. Но не все их используют программисты, ведь для того, чтобы создать надежное, гибкое, эффективное и расширяемое, а главное, безопасное приложение, нужно подобрать правильный язык.
В этой статье мы рассмотрим самые популярные языки программирования для Linux. Рассмотрим те, на которых разработана эта операционная система и те, которые используются для создания приложений. На самом деле список не отсортирован по степени важности, все используемые здесь языки хороши. Все они кроссплатформенные, и вы можете написать на них программу для любой из доступных операционных систем.
Я не преувеличу, если скажу, что этот язык был создан для этой операционной системы. Это уже старый язык. Он создавался в семидесятых годах инженером из Bell Labs Денисом Ритчи специально для написания ядра Unix. Дело в том, что в те времена программы и операционные системы писались на ассемблере и нужно было для каждой архитектуры писать программу отдельно, потому что наборы инструкций отличались. Разработчикам Unix нужен был высокоуровневый язык программирования, на котором они смогли бы написать Unix один раз и собирать его для всех платформ. Таким языком стал Си.
Ядро Linux, основано на Unix, а поэтому тоже написано на Си, также на Си реализованы все модули ядра, драйверы, а также огромное количество системного программного обеспечения. Если вы задавались вопросом, на чем написан Linux то теперь знаете ответ. На Си разработаны множество утилит из набора GNU, X сервер, набор библиотек для работы с графикой GTK и многое другое, некоторые оконные менеджеры. Но для написания новых программ Си используется все реже, ему на замену пришла его объективно ориентированная модификация С++.
Это усовершенствованная версия Cи, появился он ненамного позже си. В 1980 году Бьёрн Страуструп работал над своим исследованием и ему не хватало стандартных возможностей Си, поэтому он придумал к нему пару улучшений. Неожиданно этот язык стал популярен среди его коллег и он уже не мог сам следить за его развитием.
Теперь это один из самых популярных языков программирования. Здесь доступно как объективно ориентированное, так и процедурные стили программирования. Правда, он все же очень сложен для новичков, как и Си. Здесь нужна очень высокая точность при управлении памятью.
Си и С++ наиболее популярные языки программирования для Linux.
3. Python
К тому же на Python написано бесчисленное количество системных скриптов и утилит для управления Linux. Это утилита apt для установки программного обеспечения в Ubuntu, пакетный менеджер Emerge в Gentoo и еще огромное количество небольших скриптов. Причина тому простота языка. Программист тратит на программу несколько часов, а она отлично работает несколько лет.
4. 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
Все действия в операционной системе выполняются с помощью программ, поэтому многим новичкам интересно не только использовать чужие программы, а писать свои. Многие хотят внести свой вклад в кодовую базу OpenSource.
Это обзорная статья про программирование под Linux. Мы рассмотрим какие языки используются чаще всего, рассмотрим основные понятия, а также возможности, разберем как написать простейшую программу на одном из самых популярных языков программирования, как ее вручную собрать и запустить.
1. На чем пишут программы?
Исторически сложилось так, что ядро Unix было написано на языке Си. Даже более того, этот язык был создан для написания ядра Unix. Поскольку ядро Linux было основано на ядре Minix (версии Unix), то оно тоже было написано на Си. Поэтому можно сказать, что основной язык программирования для Linux это Си и С++. Такая тенденция сохранялась на протяжении долгого времени.
А вообще, писать программы для Linux можно почти на любом языке начиная от Java и Python и заканчивая С# и даже Pascal. Для всех языков есть компиляторы и интерпретаторы. Писать программы на С++ сложно, а Си многими уже считается устаревшим, поэтому множество программистов используют другие языки для написания программ. Например, множество системных инструментов написаны на Python или Perl. Большинство программ от команды Linux Mint, установщик Ubuntu и некоторые скрипты apt написаны на Python. Множество скриптов, в том числе простые скрипты оптимизации написаны на Perl. Иногда для скриптов используется Ruby. Это скрипты OpenShift или, например, фреймворк Metasploit. Некоторые разработчики кроссплатформенных программ используют Java. Но основные компоненты системы написаны все же на Си.
2. Библиотеки
Библиотеки делятся на два типа:
Таким образом, для любой программы на Си нужно подключать библиотеки, и все программы используют какие-либо библиотеки. Также важно заметить, на каком языке бы вы не надумали писать, в конечном итоге все будет сведено к системным библиотекам Си. Например, вы пишите программу на Python, используете стандартные возможности этого языка, а сам интерпретатор уже является программой на Си/С++, которая использует системные библиотеки для доступа к основным возможностям. Поэтому важно понимать как работают программы на Си. Конечно, есть языки, вроде Go, которые сразу переводятся на ассемблер, но там используются принципы те же, что и здесь. К тому же системное программирование linux, в основном, это Си или С++.
3. Процесс сборки программы
Перед тем как мы перейдем к практике и создадим свою первую программу, нужно разобрать как происходит процесс сборки, из каких этапов он состоит.
На следующем этапе к работе приступает компилятор, он выполняет все необходимые действия над кодом, разбирает синтаксические конструкции языка, переменные и преобразовывает все это в промежуточный код, а затем в код машинных команд, который мы можем потом посмотреть на языке ассемблера. Программа на этом этапе называется объектный модуль и она еще не готова к выполнению.
Далее к работе приступает компоновщик. Его задача связать объектный модуль со статическими библиотеками и другими объектными модулями. Для каждого исходного файла создается отдельный объектный модуль. Только теперь программа может быть запущена.
А теперь, давайте рассмотрим весь єтот процесс на практике с использованием компилятора GCC.
4. Как собрать программу
Для сборки программ в Linux используется два типа компиляторов, это Gcc и Clang. Пока что GCC более распространен, поэтому рассматривать мы будем именно его. Обычно, программа уже установлена в вашей системе, если же нет, вы можете выполнить для установки в Ubuntu:
sudo apt install gcc
Перед тем как мы перейдем к написанию и сборке программы, давайте рассмотрим синтаксис и опции компилятора:
С помощью опций мы говорим утилите что нужно сделать, какие библиотеки использовать, затем просто указываем исходные файлы программы. Давайте рассмотрим опции, которые будем сегодня использовать:
Собственно, это все самое основное, что нам понадобится. Теперь создадим нашу первую программу. Она будет выводить строку текста на экран и чтобы было интереснее, считать квадратный корень из числа 9. Вот исходный код:
int main() <
printf(«losst.ru\n»);
printf(«Корень: %f\n», sqrt(9));
return 0;
>
Я специально добавил функцию корня чтобы показать как работать с библиотеками. Сначала нужно собрать объектный файл. Перейдите в папку с исходниками и выполните:
Это этап компиляции, если в программе нет ошибок, то он пройдет успешно. Если исходных файлов несколько, то такая команда выполняется для каждого из них. Далее выполняем линковку:
Конечно, все эти действия могут быть выполнены и с помощью различных графических сред, но выполняя все вручную, вы можете лучше понять как все работает. С помощью команды ldd вы можете посмотреть какие библиотеки использует наша программа:
Это две библиотеки загрузчика, стандартная libc и libm, которую мы подключили.
5. Автоматизация сборки
Когда мы рассматриваем программирование под Linux невозможно не отметить систему автоматизации сборки программ. Дело в том, что когда исходных файлов программы много, вы не будете вручную вводить команды для их компиляции. Можно записать их один раз, а затем использовать везде. Для этого существует утилита make и файлы Makefile. Этот файл состоит из целей и имеет такой синтаксис:
цель: зависимости
команда
Затем вам достаточно выполнить команду make для запуска компиляции, только не забудьте удалить предыдущие временные файлы и собранную программу:
Программа снова готова и вы можете ее запустить.
Выводы
Создание программ Linux очень интересно и увлекательно. Вы сами убедитесь в этом, когда немного освоитесь в этом деле. Сложно охватить все в такой небольшой статье, но мы рассмотрели самые основы и они должны дать вам базу. В этой статье мы рассмотрели основы программирования в linux, если у вас остались вопросы, спрашивайте в комментариях!
Курс программирования на Си под Linux:
Desktop-приложение для Linux / OS X на чём написать?
Хочу написать GUI-приложение, да так, чтобы впоследствии было достаточно нетрудно его перенести на OS X, в идеале просто скомпилировать для этой платформы и оно заработало. Какой язык / стек выбрать?
Гуглёжь подсказывает C# в виде Xamarin, но неясно как это всё устроено. Electron + JS как-то неохота, JS мерзок, а тащить целый браузер нерационально для моей довольно простой проги. Всякие FreePascal рассматривать вообще?
Java? Наверное, таки Java?
UPDATE: приложение должно будет вытаскивать из Postgresql данные, показывать в табличке, редактировать данные и сохранять обратно в таблички + немного логики. Данных будет немного, несколько тысяч записей. Веб-приложение тут не подойдет, база будет локально лежать у каждого юзера своя.
Common Lisp / LispWorks CAPI
Что приложение должно делать?
Да! JavaFX — твой выбор. Если хочешь пойти более трудным путем, то бери C++ и Qt
Добавил в первый пост описание.
На яве нормально будет. У маков же всё нормально с явой?
Qt. И вопрос, если база у юзверя своя локальная, зачем постгрес? Не проще sqlite заюзать?
shift видимо завис или я не умею синхронно.
Qt должно хватить. Приложение легко перекомпилируется на любую из 3-х платформ (Lin,Win,Mac). У C# на Linux плохая репутация.
несколько тысяч записей
Один локальный коннект
Пг с дефолтными настройками
Mate, you’re doing it wrong!
Возьми SQLite, и хоть на телефоны переноси.
Только на маке выглядит как говно.
У идеи гуй на JavaFX?
Ну и собственно, чтобы и линуксолюди и маководы тебя поблагодарили за то, что приложуха хороша и не выглядит как говно можешь бекенд в либу утащить а фронтенд для каждой платформы свой замутить. Так даже проще.
Нет, у них свой фреймворк поверх AWT.
qt с qml, очевидно же
JS мерзок, а тащить целый браузер нерационально для моей довольно простой проги.
жаба и моно весят больше чем электрон.
Только везде кроме линукса выглядит как говно.
Я серьезно, не вижу смысла на десктопе ничего кроме Qt 5. Перенести просто скомпилировав? Точно Qt. Даже я, ставив хакинтош, без проблем компилял свой софт для OS X, просто нажимая build в Qt Creator для мака.
Пока еще не появился нормальный современный GUI-фреймворк с достойным редактором форм. Есть только убогий GTK#(2) или винформс без редактора.
Всё как-то слышится то там то сям про libui то Xwt, но где же уровень и качество?
нормальный кроссплатформенный красивый GUI
Если вы хотите, что бы версией для macOS пользовались, то придется писать нативную GUI. Иначе вашим приложением пользоваться будете вы и еще полтора с половиной человека.
Ты его на макоси видел? Впрочем, оно везде выглядит как говно.
Если плевать, как выглядит, пиши на python+Tk, в противном случае пиши гуй на какаве и гтк с одинаковым интерфейсом и линкуй родное на каждой платформе.
Я не говорил что он должен быть нативно-выглядящим. Просто качественным красивым кроссплатформенным. Это Qt 5. Противоречия нет.
Ты его на макоси видел? Впрочем, оно везде выглядит как говно.
Во-первых выглядит не так уж плохо, а слабые моменты можно подправить. Во-вторых, есть что-то кроссплатформенное, что выглядит лучше?
есть что-то кроссплатформенное, что выглядит лучше?
Да все выглядит как говно, но не хуже культей. wx выглядит достаточно нативно, а слабые моменты можно подправить. Но зачем делать кроссплатформенное вырвиглазие, если можно сделать все аккуратно и нативно? А если плевать, как выглядит, можно брать хоть тк.
Я, как маковод с четырехлетним стажем — скажу, что GTK и Java выглядят просто на порядок хуже, а wx отдельная печальная песня.
Меня еще интересует libui, которое быть может станет хорошей заменой GTK там где требуется к некоему языку прилепить GUI (в смысле, GUI-only). Для Python для Mono/C#. Не пробовал libui?
JavaFX неплох. Может тянуть внутри себя JVM, так что на выходе получается бандл ещё меньший, чем при использовании Qt 5 с ICU.
Меня не интересуют некие языки, С++ / Qt вполне устраивает.
Можно ещё сделать так, как это сделал популярный плеер VLC:
Для GNU/Linux — Qt 5, для macOS — CocoaAPI. Но на Qt 5 под macOS писать не рекомендуется. Слишком большая разница между UX у программы на нативных API и программой на Qt.
Да и раздут Qt 5. Во времена Qt 4 ещё можно было понять: либа и исполнительный файл приложения ★★★★★ ( 10.10.16 12:56:32 )
Последнее исправление: EXL 10.10.16 13:01:57 (всего исправлений: 2)
Программу на C, C++ или C#, GUI на GTK или Qt, билд-ферму на CentOS
Очевидный Qt, но на маке он не очень.
При этом работать программа на JavaFX будет примерно так же быстро
Во-первых оценка размера завышена в несколько раз, во-вторых кого это вообще заботит? Люди качают приложения на электроне и не жужжат.
Чтобы фанатеть от GUI-тулкита нужно быть ушибленным на голову. Я говорю по делу: я всегда положительно отзывался о Qt, когда он был лёгким и быстрым. Но в Qt 5 они свернули куда-то не туда. Спасибо местному Поттерингу — Тьяго.
Так что какой смысл ковыряться с C++ и отлавливать сегфолты, когда на выходе получается куча зависимостей, которая суммарно по размеру больше чем JavaFX + JVM (!). И всё так же медленно работает.
C JavaFX можно быстренько и просто замутить такое: https://github.com/ZorgeR/DroidFlasher
Раздеплоить на все популярные системы:
И оно будет просто работать.
Так что, сорян, ничего личного, но у Qt 5 сейчас как-то нет очевидных преимуществ. Раньше были значимые преимущества — легковесность и скорость. Но текущие разрабы всё это похерили. Они это сами и понимают, иначе не стали анонсировать бы Qt 5 Lite, а как здешние фанатики Qt упёрлись бы рогом и повторяли мантру «Qt 5 легковесный и быстрый, просто вы идиоты». Но они пока адекватны и понимают что Qt 5 стал монструозным и неповоротливым и надо что-то делать. Так что Qt 5 Lite, я думаю, можно будет дать шанс.
5 лучших редакторов кода для программистов в Linux
Программы для редактирования кода, перечисленные здесь, помогут разработчикам, переходящим на Linux, в разработке новых революционных приложений.
Изучение программирования может быть сложным, но подходящие инструменты немного облегчают процесс. Начав писать прекрасный код, вы можете так увлечься, что забудете обо всем на свете. Но этот волнующий опыт может быть испорчен неправильным инструментарием. Если говорить о машинах, MacBook, пожалуй, лучший выбор для разработчиков, проводящих часы за сплетением кода. Кроме Mac OS, запускаемой на MacBook, есть еще одна платформа, подходящая для создания приложений, и это Linux.
На протяжении многих лет Linux развивается и расширяется, отвоевывая долю рынка у Windows. Благодаря усилиям сообщества сегодня существует множество дистрибутивов Linux для самых разных нужд.
Есть даже дистрибутивы, созданные для разработчиков. Однако вам не обязательно переходить на них чтобы использовать редакторы кода из этой статьи.
Эти программы повысят вашу продуктивность благодаря своим продуманным свойствам.
1. Atom
Atom это редактор с открытым исходным кодом, разработанный GitHub. Он подойдет любому разработчику, от нуба до эксперта. Самое большое преимущество Atom заключается в его настраиваемости для любых потребностей и одновременно в возможности начать работу сразу же, не заглядывая в конфиги.
Atom предлагает несколько вариантов настройки для изменения внешнего вида и поведения по вашему вкусу. Если вы знакомы с HTML и JS, вы можете даже наладить вид и поведение внеся некоторые изменения в UI. Все эти свойства делают Atom лидером нашего списка.
Особенности редактора кода Atom
Установка Atom в Linux
Если вы используете Ubuntu или его производные, вы можете установить Atom с помощью PPA, запустив следующие команды:
2. Sublime Text 3
Sublime Text — самый распространенный в сообществе разработчиков редактор кода для Linux. Это легковесный и несложный редактор кода. Sublime Text строится из пользовательских компонентов, что обеспечивает непревзойденную отзывчивость. Благодаря мощному настраиваемому кросс-платформенному инструментарию пользовательского интерфейса с непревзойденным механизмом подсветки синтаксиса Sublime Text высоко устанавливает планку производительности.
Эта программа может использоваться в качестве простого текстового редактора и подсветкой синтаксиса. Подключив дополнительные плагины, вы можете так расширить его функциональность, что он будет способен практически на все, на что способны IDE. Кроме этого в Sublime Text предлагается множество вариантов настройки. Сочетания клавиш, меню, сниппеты, макросы, расширения и многое другое – практически все в Sublime Text настраивается с помощью обычных JSON-файлов. Эта система дает вам гибкость, поскольку настройки могут быть различными для разных типов файлов или разных проектов.
Особенности Sublime Text 3
Вот некоторые из лучших свойств этого редактора:
Установка Sublime Text в Linux
Стабильную версию Sublime Text 3 можно инсталлировать, введя в терминале команды, указанные ниже. Этот способ подходит для дистрибутивов, основанных на Ubuntu и Debian. Если вы используете другие дистрибутивы, такие как Fedora, Arch и Suse, обратитесь к этой странице за инструкциями по установке.
3. Vim
Vim – усовершенствованная версия vi, программы-редактора, поставляемой в большинстве UNIX-систем. Vim часто и вполне заслуженно называют «программистским» редактором. Он очень реконфигурируемый и очень полезен в программировании, поэтому многие считают его целой IDE. Конечно, он подходит не только программистам. Vim отлично справляется с любой редактурой кода, от составления электронных писем до редактирования конфигурационных файлов.
Vim можно использовать как отдельное приложение или запускать в командной строке (это одна из первых программ, приходящих на ум в качестве редактора командной строки).
Особенности Vim
Установка VIM в Linux
Есть несколько способов установить Vim в Linux. Существуют различные инсталляционные файлы, но здесь мы покажем установку через PPA-репозиторий.
Кстати, для облегчения изучения редактора можно запускать vimtutor — пособие и программу для отработки навыков работы.
4. Brackets
Brackets это современный, популярный редактор кода от Adobe, доступный в Linux. Он бесплатен в отличие от другого программного обеспечения Adobe. Если вы веб-разработчик, то вам особенно подойдет Brackets, поскольку он создан с учетом нужд разработки. У этого редактора есть несколько особенностей, которые могут быть расширены дополнительными плагинами. В Adobe работали над Brackets с тем чтобы создать лучший современный редактор кода под Linux.
Brackets после установки уже имеет все функции, обязательные для современного текстового редактора. Основан он на JavaScript.
Особенности текстового редактора Brackets
Скачивание и установка Brackets
5. Редактор Bluefish
Bluefish это больше чем редактор кода. Он кажется скорее современной IDE, как Eclipse и Netbeans. Со своим большим набором функций он может делать практически все то же, что и IDE. Одна интересная особенность Bluefish – интеграция со сторонними программами. Bluefish универсален в плане поддержки различных языков. Он поддерживает Ada, ASP.NET, VBS, C/C++, CSS, CFML, Clojure, D, gettextPO, Google Go, HTML, XHTML, HTML5, Java, JSP, JavaScript, jQuery и Lua.
Особенности Bluefish
Вот некоторые свойства, выделяющие этот редактор кода из общего ряда:
Установка Bluefish
Чтобы установить Bluefish в Ubuntu или основанных на этой ОС дистрибутивах можно запустить следующие команды:
Заключение
Разработчики часто расходятся во мнениях относительно лучшего редактора кода как в целом, так и конкретно для Linux. Приведенные в данной статье редакторы отобраны на основе их производительности, удобства использования и возможностей кастомизации. Вы можете выбрать тот, который больше вам подходит, как из этого списка, так и из не вошедших в него.























