Визуальные среды программирования для Linux
Может ли быть лучший дистрибутив Linux для веб-разработчиков? Или, в более общем плане, допустим, может быть лучший дистрибутив Linux для разработчиков ?
Мы рассмотрели SemiCode OS, дистрибутив Linux для программистов. Но SemiCode OS все еще находится в состоянии бета-тестирования, поэтому я решил составить список, чтобы ответить на ваш вопрос: какие дистрибутивы Linux я должен использовать для программирования?
Многие вещи, такие как язык программирования, используемые инструменты, поддержка, доступность пакетов и скорость их обновления в репозиториях и множество нефункциональных требований, таких как среда рабочего стола, обеспечивают стабильность, и важность чтобы определить .
Программист вступает в контакт с ОС, особенно в более высокой степени, чем кто-либо другой. Для программиста операционная система должна включить его/ее. И под «включением» я имею в виду создать горячую страсть к кодированию и желанию сделать мир лучше.
Лучшие дистрибутивы Linux для начинающих программистов
В любом случае, давайте начнем. Мы рассмотрим менеджеров пакетов, наличие пакетов, стабильность, модели выпуска и среды рабочего стола дистрибутивов, в частности.
Также, если у вас свои варианты дистрибутивов, которые можно отнести к списке «Лучшие дистрибутивы Linux для начинающих программистов» - пишите их в форму комментариев на сайте.
1. Ubuntu
Ubuntu дает 3 конкретные причины для использования программистами.
Ubuntu так сильно вырос, что стал настоящим настольным Linux. Я вижу, что почти все поставщики программного обеспечения, которые производят для платформы Linux, предлагают пакет.deb. Сегодня Ubuntu получает максимальную поддержку от поставщиков, чем любой другой дистрибутив.
Это означает, что любые IDE, инструменты, необходимые разработчику, будут иметь.deb installer, готовые для загрузки. Все, что вам нужно сделать, это нажать на кнопку загрузки. Это также имеет огромное преимущество, когда ваш проект зависит от конкретной версии программного обеспечения. Он также имеет огромное хранилище стабильного программного обеспечения.
Ubuntu предоставляет версию LTS, которая будет поддерживаться в течение 5 лет и никогда не поддерживаемая версией LTS в течение 9 месяцев. Версия, отличная от LTS, не имеющая большого количества пакетов (как вариант LTS). Это обеспечивает непревзойденную стабильность. Основные компоненты операционной системы и ядро не будут меняться, как в случае с подвижной версией ОС. Это обеспечивает программистов и разработчиков, надежную и стабильную рабочую базу, которая не собирается выдавать какую-либо несогласованность.
В-третьих, я хочу обсудить среду рабочего стола Ubuntu, которая является Unity. Хотя это вопрос субъективного предпочтения, я хотел бы рассказать о преимуществах Unity для программиста.
Unity имеет простой интерфейс. Пусковая установка представляет собой простой стек, где вы размещаете все ваши любимые и наиболее часто используемые приложения. Вы запускаете приложения и переключаетесь между приложениями, используя одну и ту же пусковую установку. Это, я думаю положительный момент, ведь эта оболочка была более резко менее инвазивной по сравнению с GNOME. Это упрощает переключение между приложениями. Кроме того, Unity легко настраивается. Dash также очень удобная и помогает быстро перемещаться по ОС. Честно говоря, пусковая установка является отличным усилителем производительности.
Ubuntu — это полированная операционная система. Ubuntu также доступен в различных версиях и есть отличные дистрибутивы на основе Ubuntu. Проверьте их тоже. Вы можете скачать Ubuntu на официальном сайте.
2. openSUSE
OpenSUSE — один из самых сложных дистрибутивов Linux. В нем есть отличное сообщество, солидный сектор развития и абсолютно профессиональное отношение. Хотя я использую Arch Linux на своих компьютерах, у меня всегда было высокое мнение об openSUSE.
OpenSUSE гораздо более подходит для разработчиков, особенно из-за свободы, которую он предоставляет. OpenSUSE поставляется в двух вариантах. И если говорить про Лучшие дистрибутивы Linux для начинающих программистов то, это будет хорошим вариантом.
Leap поставляется с жизненным циклом через 6 месяцев после выхода следующей версии. Так что в настоящее время, если вы установите OpenSUSE Leap 42.2, он будет поддерживаться до 6 месяцев после выпуска openSUSE Leap 42.3. Он поставляется с гарантированным стабильным программным обеспечением, поэтому любой инструмент, необходимый для разработки, будет работать без ошибок во всем и вне вашего проекта.
С другой стороны, openSUSE Tumbleweed следует за скользящим выпуском. Вы можете сказать, что это будет поддерживаться навсегда. Программное обеспечение будет обновляться на регулярной основе. Все IDE, ваши любимые редакторы с открытым исходным кодом и другие инструменты всегда будут обновляться до самой последней версии. Хотя обновления хорошо протестированы, и они почти никогда не вызывают проблем, связанных с кроссинговыми граничными дистрибутивами, есть одна вещь, которую вы должны учитывать. Чаще всего ваш проект может зависеть от конкретной версии программного обеспечения, такого как JDK. Вы должны быть осторожны при принятии обновлений в таких случаях.
Leap или Tumbleweed, openSUSE имеет абсолютно удивительный способ доставки программного обеспечения. Просто зайдите на software.opensuse.org, найдите нужный пакет и просто нажмите «Direct Install» и сделайте. Нет репозитория, команд и сбоев зависимости. Я думаю, что это основной пункт продажи openSUSE. Это сэкономит много времени, когда вы просто захотите установить материал и перейти к кодированию.
Наконец, openSUSE — отличный дистрибутив Linux для программирования и кодирования из-за его надежности, стабильности и огромного хранилища хорошо поддерживаемого программного обеспечения. Неудивительно, что даже многие предприятия используют его для своих разработчиков. Определенно проверьте это.
3. Fedora
Сам Линус Торвальдс использует Fedora. Нужно больше причин?
Fedora быстрая. Даже версия Fedora от Gnome работает быстрее на моем ПК. Быстрее, чем другие дистрибутивы, работающие на Gnome. Мне нравится, когда мне не нужно смотреть на экран, когда Chrome «подвисает» из-за огромного количества открытых вкладок.
Fedora имеет цикл выпуска 6 месяцев. Это отлично подходит для разработчиков, которые слишком долго не могут оставить старую версию.
Основной причиной выбора Fedora является нечто большее, чем просто менеджер пакетов или среда рабочего стола. Fedora является ортодоксальным сторонником принципа с открытым исходным кодом. Все Fedora — с открытым исходным кодом. В репозиториях Fedora нет проприетарных драйверов и материалов (вы можете установить проприетарные драйверы, но это немного сложно, чем выполнение пары команд dnf). Итак, если вы энтузиаст с открытым исходным кодом, Fedora определенно для вас.
Fedora — сестра проекта Red Hat Enterprise Linux, операционной системы оригинального программиста. Существует взаимная связь между Fedora и Red Hat Enterprise Linux, которая дает оба преимущества в отношении технологий и инноваций.
Fedora может получить спонсорскую и профессиональную обратную связь от RHEL, но ее поддерживает сообщество восторженных разработчиков и профессионалов RHEL, которые увлечены Fedora. Это напрямую приводит к тому, что Fedora является превосходной настройкой для разработчиков. И добавить Fedora — один из самых стабильных дистрибутивов Linux в каждой версии. Мы были просто обязаны добавить эту сборку в наш список про Лучшие дистрибутивы Linux для начинающих программистов .
Fedora также доступна в ваших любимых средах рабочего стола. Проверьте их после установки. Вы можете скачать Fedora Gnome на официальном сайте.
4. Arch Linux
Этот дистрибутив также можно отнести к списку про Лучшие дистрибутивы Linux для начинающих программистов , ведь для того чтобы просто настроить систему для этого вам потребуется достаточно времени и терпения, чтобы все работало правильно. Но оно того стоит.
Arch Linux поставляется с ядром Linux и менеджером пакетов Pacman. У вас даже нет графического интерфейса. Вы строите на базе, собираете компоненты по своему усмотрению. Результатом этого является высоко персонализированная операционная система, которая содержит все, что вам нужно, и ничего, что вы не делаете.
Arch Linux известна своим кровоточащим краем, современным репозиторием. Каждый пакет в официальных репозиториях всегда находится на наивысшем номере версии, но до сих пор доступен только после тщательного тестирования. Таким образом, сама операционная система полностью надежна. Редкие проблемы, связанные с устойчивостью стабильности, возникают при установке неподдерживаемых пакетов из архивного репозитория Arch (чего можно избежать, проявляя осторожность при работе с AUR). Это также затрагивает только программное обеспечение, о котором идет речь, а не о самой ОС.
Каждая информация и инструкции отладки хорошо документированы в Arch Wiki, которые, честно говоря, являются лучшей документацией, которую имеет любой дистрибутив Linux. Таким образом, любая проблема, с которой вы можете столкнуться, может быть легко устранена, следуя самым новаторским инструкциям, представленным в Arch Wiki.
Arch Linux поставляется с нулевым обслуживанием, поскольку ОС постоянно обновляется. Pacman может эффективно решать проблемы зависимостей и потерянные пакеты. Последнее и самое большое из всего, что Linux всегда доступно в Arch User Repository.
Построение персональной операционной системы с Arch Linux — это путь, если вы спросите меня. Здесь вы можете найти Arch Linux.
5. Antergos
Antergos — это дистрибутив Linux на базе Arch. Многие считают, что дистрибутивы на основе Arch являются просто установщиками Arch, что помогает установить систему Arch с использованием графического пользовательского интерфейса. Ну, это не тот случай. Antergos использует архивные хранилища да. Но он имеет свои собственные ветки.
Antergos следует за быстрым выпуском, поэтому вам не нужно беспокоиться о конце поддержки. Он доступен на всех основных языках. Antergos, хотя и основан на Arch, не является barebone-дистрибутивом. Он поставляется с большим количеством предустановленных программ. Но это число по-прежнему меньше по сравнению с другими дистрибутивами, поэтому вы не почувствуете, что система раздута, и это дает возможность настроить его в соответствии с вашими пожеланиями и потребностями.
Думаем, этот дистрибутив также заслуживает оказаться в нашем списке «Лучшие дистрибутивы Linux для начинающих программистов «.
Antergos использует репозитории Arch, поэтому все, что вам нужно в вашем арсенале, всегда доступно с наивысшим номером версии. Pacman, менеджер пакетов в Arch приходит без каких-либо проблем с добавлением репозитория. Репозиторий содержит новейшее программное обеспечение, и иногда также хранятся некоторые известные старые версии, такие как Java Development Kit. Antergos также имеет свой собственный дополнительный репозиторий, который предоставляет пакеты настройки Antergos (отличные от Arch), программное обеспечение Antergos и многие другие вещи, такие как обои Antergos и пакеты значков.
Pacman обрабатывает проблемы зависимостей и осиротевшие пакеты таким образом, который превосходит любой менеджер пакетов. Нестабильность не может быть и речи.
Новые программные средства кодируются, разрабатываются методы и изменяются тренды с каждым восходом солнца. Здесь находится репозиторий Arch User. Репозиторий Arch User — это репозиторий, основанный на сообществах, который содержит огромное количество пакетов, включая множество новых программ. Он практически содержит все, что работает на Linux-машине. Поэтому каждая интегрированная среда разработки, комплект разработчика и библиотеки, которые вам нужны, будут установлены только с помощью одной команды.
yaourt name_of_the_software
Antergos обеспечивает все основные среды рабочего стола. Установка проста с установщиком Cnchi. Он предоставляет варианты выбора среды рабочего стола, браузера, графических драйверов и т. Д. На самой установке. В целом, Antergos делает отличный дистрибутив Linux для кодирования. Проверьте это на своем официальном сайте.
Выводы
Если у вас есть знакомые которые интересуются Linux расскажите им что, я выбираю Лучшие дистрибутивы Linux для начинающих программистов. Поделитесь своими отзывами об этих дистрибутивах с нами. Кроме того, поделитесь некоторыми советами, которые многие, программисты, могли бы найти полезными в комментариях ниже.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter .
Многие начинающие кодеры бояться
программирования в Linux — нет виндовой простоты
и наглядности. Однако и для Linux существует
множество визуальных средств
программирования, и это не только клон Delphi.
Конечно, они не могут стать полноценной
заменой той же Visual Studio, однако вполне
помогают ускорить процесс разработки
программ.
NetBeans
Одна из лучших IDE сред. Предназначена для
работы с Java, с ее помощью можно
разрабатывать не только кросс-платформенные
Java программы, но и web-приложения, web-сервисы и
клиентов для них, J2ME программы и т.п. Может
работать в Windows, Linux, MacOS. IDE можно расширять
различными плагинами и аддонами, кои можно
найти на сайте. При этом — все бесплатно, то
есть на хаялву! В общем — бесспорный номер
один.
QT / KDevelop Designer
Еще одна мощная среда разработки на
платформе KDE и Gnome. Кросс-платформенные C++
приложения выходят только в путь. Для
некоммерческих программ Qt можно
использовать бесплатно, существует
практически для всех дистрибутивов.
Клон Visual Basic, причем не только в оформлении,
но и в конструкциях языка. Идеальное
средство для VB программистов, желающих
перейти на Linux. Простой и удобный интерфейс.
Доступ ко всем главным базам данным — MySQL,
PostgreSQL и т.д. Работает практически на всех
дистрибутивах.
WYSIWYG редактор для создания web-страниц. Во
многом напоминает редактор Macromedia или все
тот же FrontPage. Поддерживает автоматическую
работу с сайтом по FTP.
Python и Ruby IDE среда, делающая
программирование на языке довольно простым
и увлекательным. Написанная собственно на
Python.
Eclipse - вообще не IDE, а целая платформа для
различных приложений. В стандартную
поставку входят дополнительные плагины для
поддержки языка Java (JDT) и разработки
плагинов для Eclipse (PDE - Plugin Development Environment). Для
работы с другими языками должны быть
установлены специальные плагины — в Eclipse
можно работать практически на любом
доступном языке программирования. Еще одно
преимущество тоже относится к
расширяемости: гигантское количество
утилит (особенно для Java) теперь
поставляется и в виде плагинов для Eclipse,
например, Ant, JavaDoc, JUnit, JDepend, Check Style, Subversion.
Значит, нам не придется отказываться от
своей системы контроля версий, от своей
программы проверки качества кода и т.п.
Третье преимущество - то, что Eclipse является
кросс-платформенной средой, то есть
существуют версии для различных
операционных систем (чего не может
позволить себе та же Visual Studio).
JDeveloper
Платформа от Oracle — не с открытым кодом,
однако все равно бесплатная. Как ясно из
названия используется все та же кросс-платформенная
Java. Использует для работы Sun JDK, так что сама
Oracle никаких претензий к создаваемым
программам по идее иметь не будет.
Ну и наконец визуальная среда управления
проектами для Gnome Desktop. Не менее полезная
программа для программистов чем IDE.
Эта статья расчитана на два вида читателей. Во-первых, это люди, имеющие опыт программирования под MS Windows, но не имеющие такого опыта под GNU/Linux. Во-вторых, это люди, не имеющие опыта программирования вовсе. Однако, я предполагаю, что читатель в общем знаком с общепринятой в программировании терминологией, и ему не нужно объяснять, например, что такое «программа», «функция», «компилятор» или «отладка».
Средства разработки
Я буду рассматривать разработку с использованием тех средств, которые являются наиболее «родными» для GNU/Linux. К ним относятся:
Язык программирования C
Командная оболочка bash
Текстовые редакторы Vim и Emacs
Компилятор GCC
Отладчик GDB
Утилита для сборки проекта GNU make
Система управления версиями Git
Оконная система X11
Выбор именно этих средств не является догмой. Каждое из выше перечисленных средств может быть при желании заменено на другое. Однако, обычно под фразами наподобие «среда разработки Linux» понимается именно этот набор инструментов.
Языки программирования
Наиболее «родным» языком программирования для GNU/Linux является C. Это обусловлено следующими факторами:
GNU/Linux заимствует многие идеи (практически, идеологию) операционной системы UNIX;
Операционная система UNIX была написана на языке C (собственно, этот язык создавался именно для написания этой ОС);
Соответственно, ядро Linux и системное окружение GNU написаны тоже на C.
Ниже я буду рассматривать разработку с использованием языка C. Однако, этот выбор не является догмой. Другими популярными при разработке под GNU/Linux языками являются C++, Python, Perl. Конечно, могут использоваться и любые другие языки.
Среда разработки
В течение последних двух десятилетий очень широкое распространение получили т.н. IDE — интегрированные среды разработки. Такая среда включает в себя текстовый редактор, компилятор, отладчик, средства сборки проекта и мн.др. Такие среды есть и под GNU/Linux (наиболее популярны Eclipse, NetBeans, IDEA, KDevelop, Anjuta). Однако, история разработки под UNIX-подобные системы показывает, что IDE не являются не только единственным, но и наиболее эффективным средством разработки. Практически, правильный ответ на вопрос «какая самая лучшая IDE под GNU/Linux» — это «GNU/Linux это и есть IDE».
Часто можно встретить мнение, что большой проект без IDE разрабатывать невозможно. Это мнение легко опровергается. Первые версии UNIX писались даже не в Vim (его тогда ещё не было), а в Ed. Это так называемый «построчный» текстовый редактор, в котором вы можете редактировать за раз только одну строку текста. Весь файл на экране не отображается. В случае с UNIX по-другому и быть не могло — у разработчиков не было никаких экранов, а общение с системой осуществлялось при помощи телетайпов. Современное ядро Linux пишется в основном в редакторах Emacs и Vim.
Многие утилиты UNIX вызывают «текстовый редактор по умолчанию». Команда, запускающая текстовый редактор по умолчанию, берётся из переменной окружения $EDITOR . Некоторые утилиты смотрят сначала в переменную $VISUAL , и, лишь если она не установлена, в переменную $EDITOR . Это исторически сложившееся поведение: к старым компьютерам зачастую не было подключено никакого дисплея, а только телетайп, поэтому запускать экранный (визуальный) редактор смысла не было. В современных дистрибутивах обычно по умолчанию оказывается EDITOR=vi или EDITOR=nano . Указать использование другого редактора для одной команды можно так:
EDITOR=emacs some-command
Чтобы использовать нужный редактор по умолчанию всегда, нужно добавить в файл ~/.profile строчку типа
export EDITOR=emacs
Исторически сложилось так, что «настоящими» текстовыми редакторами для программистов являются только Vim и Emacs (просто из-за того, что у них самая долгая история развития именно в качестве текстовых редакторов для программистов). Остальные редакторы находятся в положении догоняющих.
Командная оболочка
Командная оболочка (или командный интерпретатор) — это программа, принимающая команды от пользователя на некотором достаточно простом языке программирования и выполняющая их. Большинство команд запускают одноимённые программы. Отдельные команды представляют собой конструкции языка программирования оболочки.
Стандарт POSIX включает описание минимального набора возможностей, предоставляемых командной оболочкой. Реально используемые оболочки предоставляют, как правило, больше возможностей.
ОС семейств DOS и Windows заимствовали некоторые функции командной оболочки из UNIX, однако их авторы пошли на существенные упрощения, из-за чего функционал COMMAND.COM и cmd.exe получился сильно урезанным. PowerShell вполне на уровне, но работает существенно по-другому.
В рамках этой статьи я ограничусь использованием командной оболочки bash (как наиболее распространённой и используемой по умолчанию в большинстве дистрибутивов) для запуска компилятора и других средств разработки. Хороший обзор использования командной оболочки можно найти, например, в известной книге .
Документация
Все средства разработки и библиотеки в GNU/Linux обычно довольно хорошо документированы. Традиционно для документации используется специальный формат и утилита для его просмотра — man . Документация в системе делится на несколько разделов:
Команды пользователя (например, ls, gcc или man)
Системные вызовы — API ядра ОС
Библиотечные функции
Драйвера и т.п
Форматы файлов
Игры и т.п
Различные обзоры подсистем
Команды, используемые для системного администрирования
Для вызова раздела документации по имени нужно указать это имя при вызове команды man (например, man ls). Иногда разделы с одинаковым названием есть сразу в нескольких разделах документации документации. Указать конкретный раздел можно при вызове man (например, man 3 printf).
Более подробную информацию о справочной системе man см. в man man .
Утилиты системного окружения GNU часто используют для документации формат info. См., например, info Coreutils .
Компилятор
Сейчас существует много компиляторов языка C, более-менее совместимых с различными стандартами. Тем не менее, пока что в среде GNU/Linux наиболее применимым остаётся компилятор C, входящий в комплект GNU Compilers Collection (GCC). Этот компилятор, кроме стандарта C, поддерживает некоторое количество расширений стандарта. Эти расширения, в частности, широко используются в исходных текстах ядра Linux. В последнее время появляются компиляторы, способные скомпилировать ядро Linux (например, llvm-clang, или EKO).
Компилятор GCC запускается из командной оболочки командой вида
gcc program.c
где program.c — имя входного файла. Кроме того, по стандарту POSIX, компилятор может быть запущен командой cc program.c (cc — от "C compiler").
При обычном запуске компилятор пытается создать исполняемый файл. По умолчанию, выходной файл называется a.out (такое название осталось от древних версий UNIX). Другое название можно задать с помощью опции компилятора -o , например,
gcc -o program program.c
При сборке программы из нескольких модулей компилятору можно подавать на вход несколько исходных файлов или файлов объектного кода, например,
gcc -o program main.c module1.o module2.o …
Чтобы только скомпилировать один исходный файл в объектный код (не пытаясь собрать исполняемый файл), нужно дать команду вида
(имя выходного файла по умолчанию будет module.o).
Для сборки программы часто бывают нужны библиотеки. В Linux используются два типа библиотек: библиотеки для статической и динамической компоновки. При статической компоновке библиотека при сборке программы целиком включается в состав исполняемого файла. При динамической компоновке в исполняемый файл вписывается только название динамической библиотеки, а поиск этого файла и компоновка происходят при запуске программы.
Статическая библиотека в UNIX-подобных системах представляет собой архив (старинного формата ar), включающий набор объектных файлов. Такой архив создаётся командой вида
ar r libsomething.a module1.o module2.o …
Имена файлов библиотек традиционно начинаются с префикса lib .
Динамически загружаемая библиотека представляет собой объектный файл специального формата (расчитанного на динамическую загрузку). Такая библиотека создаётся командой вида
gcc -shared -o libsomething.so module1.c module2.c …
Для использования библиотеки при сборке программы её нужно указать компилятору при помощи опции -l , например
gcc -o program -lm program.c
(здесь будет использоваться файл библиотеки libm.so , префикс lib компилятор подставляет по умолчанию). По умолчанию компилятор собирает программу, использующую динамические библиотеки. Если нужно использовать статические версии библиотек, компилятору нужно указать опцию -static .
Подробную информацию об опциях gcc см. в man gcc .
Hello, world!
Считается, что традиция начинать изучение языка программирования с написания программы, выводящей строку "Hello, world!", пошла с книги Кернигана и Ричи "Язык C" . В случае с языком C эта программа выглядит следующим образом:
#include
int
main
(int
argc,
char
*
argv)
{
printf
("Hello world!
\n
"
);
return
0
;
}
Чтобы запустить эту программу, этот текст нужно записать в файл с именем, скажем, hello.c , и из директории, в которой расположен этот файл, дать команду вида
gcc -o hello hello.c
Впрочем, в случае такой простой программы достаточно дать команду
(я поясню ниже, почему эти две команды работают одинаково). В результате в той же директории появится исполняемый файл с именем hello . Запустить его можно командой
Порядок сборки
Остановимся несколько подробнее на том, что именно делает компилятор. Порядок действий компилятора C традиционен, и применяется компиляторами некоторых других языков.
На входе компилятор имеет в общем случае набор файлов с исходными текстами. Перед началом собственно компиляции эти файлы обрабатываются т.н. препроцессором (программа cpp). Главная функция этой программы — выполнение директив вида #include . Встретив такую директиву, препроцессор вставляет содержимое указанного файла (в данном случае, stdio.h) на место этой директивы. Препроцессор понимает ещё некоторые директивы, но сейчас на них останавливаться я не буду.
После препроцессора выполняется собственно компиляция. Из исходных файлов на этом этапе получаются т.н. объектные файлы. Это файлы, содержащие исполняемый машинный код, но ещё не готовые для запуска. Главное, чего в них недостаёт — это адреса вызываемых библиотечных функций. Например, код функции printf() содержится в библиотеке libc . А в объектном файле содержится только имя этой функции. Кроме того, объектный файл содержит имена всех объявленных в нём функций.
Объектные файлы, а также используемые библиотеки подаются на вход компоновщику (программа ld). Компоновщик ищет все вызываемые из различных объектных файлов функции (по именам) в объектных файлах и в библиотеках. Если все функции найдены, то компоновщик собирает собственно исполняемый файл. При этом имена вызываемых функций заменяются на конкретные адреса памяти. В случае использования динамической библиотеки имя используемой функции остаётся, и к нему добавляется имя файла динамической библиотеки, в которой при запуске программы нужно будет искать эту функцию.
Собственно программа gcc представляет собой так называемый драйвер (driver). Она запускает упомянутые выше программы (или только некоторые из них, в зависимости от опций), чтобы получить исполняемый файл.
Второй пример: решение квадратных уравнений
В качестве несколько более сложного примера рассмотрим программу, которая должна решать квадратные уравнения. Пользователь вводит коэффициенты квадратного трёхчлена, а программа выдаёт его действительные корни. Вот полный текст такой программы:
#include
#include
/* solve: calculate roots of square equation.
* a, b, c are coefficients in equation.
* Roots would be stored at x1, x2.
* Return value: count of real roots.
*/
int solve(double a, double b, double c,
double* x1, double* x2) {
double D = b*b - 4*a*c;
double sqrtD;
if (D > 0) {
sqrtD = sqrt(D);
*x1 = (-b - sqrtD)/(2.0 * a);
*x2 = (-b + sqrtD)/(2.0 * a);
return 2;
} else if (D < 0)
return 0;
else {
*x1 = -b/(2.0*a);
return 1;
}
}
int main (int argc, char* argv) {
double a,b,c;
double x1, x2;
int roots_count;
// Input coefficients
printf("A: ");
scanf("%lf", &a);
printf("B: ");
scanf("%lf", &b);
printf("C: ");
scanf("%lf", &c);
// Solve the equation
roots_count = solve(a,b,c, &x1, &x2);
// Output results
switch (roots_count) {
case 0:
printf("No (real) roots.\n");
break;
case 1:
printf("One root: %0.4lf\n", x1);
break;
case 2:
printf("Two roots: %0.4lf and %0.4lf\n",
x1, x2);
break;
}
По аналогии с предыдущим примером, запишем этот текст в файл square.c и попытаемся скомпилировать его командой
gcc -o square square.c
Но на этот раз мы получим ошибку примерно такого вида:
/tmp/cc6RNFIi.o: In function `solve": square.c:(.text+0x6d): undefined reference to `sqrt" collect2: ld returned 1 exit status
В чём здесь дело? Ясно, что компилятору почему-то не понравился вызов функции sqrt() . Причём, он жалуется уже не на файл исходного кода, а на объектный файл (вот этот cc6RNFIi.o). Это означает, что исходный файл благополучно скомпилировался, а проблемы возникли на стадии компоновки (что можно видеть и по упоминанию в тексте ошибки программы ld — это стандартный в GNU/Linux компоновщик). Компоновщик не смог найти функцию sqrt() . В данном случае, это произошло из-за того, что эта функция содержится в библиотеке libm , а мы не просили компилятор использовать её. Чтобы избавиться от этой ошибки, нам нужно изменить команду компиляции на следующую:
gcc -o square -lm square.c
Такая команда должна отработать без ошибок и создать исполняемый файл square .
При сборке любой достаточно сложной программы нам придётся использовать несколько библиотек, и, возможно, понадобится указывать ещё какие-то опции компилятору. Команда может получиться довольно длинная. Что же, каждый раз набирать её вручную? Нет. Один из принципов философии UNIX гласит: «Всё, что может быть автоматизировано, должно быть автоматизировано». Здесь нам пригодится одна из древнейших UNIX-утилит — программа make . Чтобы воспользоваться ею, нужно написать файл с именем Makefile (в той же директории, что и наш исходный файл) со следующим содержимым:
square: square.c $(CC) -o $@ -lm $<
Теперь собрать исполняемый файл можно просто дав команду make . Как это работает?
Make
Утилита make предназначена для сборки программ (хотя может использоваться для автоматизации многих других похожих задач). Она читает файл с именем Makefile и видит в нём набор правил. Каждое правило определяет три вещи: цель (goal, т.е. то, что нужно собрать), список исходных файлов и набор команд, которые нужно выполнить, чтобы собрать цель из исходных файлов. В примере выше, square — это имя цели, square.c — единственный в данном случае исходный файл (если их несколько, они перечисляются через пробел), а вторая строчка — команда. В команде могут использоваться переменные. Некоторые из переменных имеют специальное значение. В частности, в любом правиле $@ обозначает имя цели, а $< — первый исходный файл. Переменная $(CC) указывает на компилятор C, используемый в системе по умолчанию (в большинстве случаев это gcc , но бывает и что-нибудь другое).
В имени цели и списке исходных файлов может использоваться подстановочный символ % . Например, такое правило:
%.o: %.c $(CC) -c $<
обозначает, что файлы с именем, заканчивающимся на.o , нужно собирать из соответствующих файлов с суффиксом.c .
Кроме того, make заранее знает некоторое количество правил по умолчанию. Среди них есть упомянутое в последнем примере, а также правило
%: %.c $(CC) -o $@ $<
Благодаря этому правилу, в примере с «Hello, world!» просто команда make hello запускала cc -o hello hello.c .
По набору правил make составляет граф зависимостей целей друг от друга и от исходных файлов, и выполняет только те команды, которые нужны для сборки цели, указанной в командной строке. Если не указано никаких целей, то собирается первая цель, описанная в Makefile .
Более подробную информацию об этой утилите см., например, в man make .
Управление версиями
Для управления версиями исходного кода может использоваться любая VCS. Однако, раз уж мы говорим о GNU/Linux, рассмотрим вкратце систему, используемую для разработки ядра Linux: git. По git существует довольно обширная документация, в т.ч. и на русском языке. См. например, мою статью или известную серию статей .
Для начала использования git нужно создать репозиторий — хранилище для версий файлов. Это делается командой
Теперь можно добавлять файлы в репозиторий. Но нам не нужно отслеживать версии некоторых файлов, а именно: объектных файлов и исполняемых файлов. Чтобы сразу исключить их из рассмотрения git, напишем файл.gitignore следующего содержания:
*.o square hello
Теперь команда
добавит в репозиторий все файлы в текущей директории, кроме упомянутых в файле.gitignore . После этого можно делать коммит командой
По этой команде откроется текстовый редактор по умолчанию. Тут нужно будет написать комментарий к коммиту. В данном случае достаточно строчки типа «Initial commit».
Отладка
Для отладки в Linux используется отладчик gdb . Но сначала, для того, чтобы программу было удобно отлаживать, её нужно скомпилировать с опцией -g . Сейчас нам достаточно изменить Makefile , приведя его к виду
square: square.c $(CC) -o $@ -lm -g $<
и пересобрать программу.
При обычной компиляции в исполняемый файл не попадают имена функций, переменных и т.п. Опция -g указывает компилятору, что эту информацию нужно записать в соответствующую секцию исполняемого файла. Кроме того, с этой опцией в исполняемый файл записывается информация о соответствии смещений и номеров строк в исходном файле.
Отладка запускается командой вида
gdb ./some-program -a -b
При запуске отладчика появляется приглашение командной строки вида:
GNU gdb (GDB) 7.2-ubuntu Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i686-linux-gnu". For bug reporting instructions, please see: ... Reading symbols from /home/portnov/LUG/src/square...done. (gdb)
Работа с отладчиком, в общих чертах, напоминает работу с командной оболочкой. Вы вводите команды, отладчик их исполняет. Как и в командной оболочке, работает автодополнение команд по клавише Tab. Кроме того, для краткости можно сокращать команды до первых нескольких букв — лишь бы избежать неоднозначности.
К наиболее часто используемым командам относятся:
Напечатать очередной кусок исходника (печатается 10 строк). Можно указать конкретные номера строк после имени команды, например l 10,15 .
Запустить программу на выполнение под отладчиком. Программа будет выполняться до ближайшей точки останова, или до конца.
Установить точку останова. Номер строки, на которой нужно установить точку останова, указывается после имени команды.
Выполнить одну строку программы.
Вычислить и напечатать выражение. Выражение указывается после команды. Таким образом можно, например, однократно посмотреть значение какой-нибудь переменной.
Добавить выражение к списку постоянно отображаемых. Значения этих выражений будут показываться после исполнения каждой команды. Рядом с каждым выражением печатается его номер в списке. Удалить выражение из списка можно командой undisplay с номером выражения.
Выход из отладчика.
Более подробную информацию по GDB см. в man gdb .
Оконная система X11
Исторически в UNIX не было и не могло быть никакой графической среды, потому что не было графических дисплеев. Графическая среда для UNIX появилась примерно тогда, когда появились распространённые графические дисплеи: в 1984. Сначала она называлась W (от Window), затем её усовершенствовали и назвали следующей буквой алфавита — X, следующая версия называлась X2… Сейчас имеем X11.
X11 представляет собой, прежде всего, сетевой протокол поверх TCP/IP и UDP/IP. У протокола есть клиент и есть сервер. Клиент посылает последовательность запросов вида «нарисуй мне окошко», «нарисуй на нём кнопочку», а сервер их исполняет. Один из главных принципов X11 — «определять механизмы, а не политики». Протокол предоставляет возможность, скажем, рисовать окошки, а как именно они будут отображаться — не определяет.
Наиболее распространённым X-сервером сейчас является Xorg (http://x.org); всё ещё жив XFree86; под Windows актуален Xming; выпускаются аппаратные X-серверы — комплекты «монитор + клавиатура + мышка», в которых поддержка серверной функциональности X11 реализована аппаратно — такие комплекты используются в качестве графических терминалов.
Протокол X11, в отличие от, скажем, HTTP, является бинарным, а не текстовым — это сделано из соображений экономии пропускной способности сетевого соединения и простоты разбора запросов сервером. Но это усложняет создание клиентов этого протокола: собирать замысловатые бинарные X11-запросы заведомо сложнее, чем, например, текстовые HTTP-запросы. Поэтому для написания X-клиентов используются специальные библиотеки функций, формирующих и отправляющих серверу X-запросы. Наиболее распространена библиотека libX11. Более современным вариантом является libxcb.
Запросы X11 весьма низкоуровневые. Например, чтобы реализовать функциональность кнопки, нужно нарисовать в окне прямоугольник, написать в нём текст, ждать в цикле нажатия кнопки мыши, и при каждом нажатии проверять, где щёлкнули — внутри прямоугольника или вне него. Поэтому стали появляться так называемые тулкиты — библиотеки, являющиеся высокоуровневыми обёртками над libX11.
Исторически первым тулкитом был Athena3D. Потом были Motif и Tk. Сейчас наиболее распространены GTK+ и Qt (Qt, строго говоря, представляет собой не X11-тулкит, а многоцелевой кроссплатформенный набор библиотек, который может использоваться в качестве X11-тулкита).
Hello, world на GTK+
В качестве примера рассмотрим следующую программу. Она показывает окно с одной кнопкой. При нажатии на эту кнопку появляется сообщение «Hello, world».
#include
// This function displays message dialog.
// main_window parameter should be set to parent window of the dialog.
void message_box (GtkWindow* main_window, gchar *message) {
GtkWidget *dialog, *label, *content_area;
// Create a dialog
dialog = gtk_dialog_new_with_buttons ("Message",
main_window,
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_STOCK_OK,
GTK_RESPONSE_NONE,
NULL);
// Create a label
content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
label = gtk_label_new (message);
// On "response" signal (it"s called when user clicks a button in
// the dialog), destroy the dialog.
g_signal_connect_swapped (dialog,
"response",
G_CALLBACK (gtk_widget_destroy),
dialog);
// Add a label
gtk_container_add (GTK_CONTAINER (content_area), label);
// Show the dialog
gtk_widget_show_all (dialog);
}
// Callback for delete-event signal
static gboolean delete_event(GtkWidget *widget,
GdkEvent *event,
gpointer data)
{
// If return TRUE, window will not be closed.
// This may be used to preven closing window in some situations.
return FALSE;
}
// Callback for destroy signal
static void destroy(GtkWidget *widget,
gpointer data)
{
// End main GTK+ event loop
gtk_main_quit ();
}
// Callback for button click
static void hello (GtkWidget *widget,
gpointer data)
{
// "data" parameter represents main window here
message_box(GTK_WINDOW(data), "Hello, world!");
}
int main(int argc,
char *argv)
{
GtkWidget *window;
GtkWidget *button;
// Init GTK+
gtk_init (&argc, &argv);
// Create main window
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
// Set up callbacks for some signals
g_signal_connect (window, "delete-event",
G_CALLBACK (delete_event), NULL);
G_signal_connect (window, "destroy",
G_CALLBACK (destroy), NULL);
// Set window borders width
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
// Create labeled button
button = gtk_button_new_with_label ("Hello World");
// Set up callback for "clicked" signal of the button.
// Pass main window as second parameter.
g_signal_connect (button, "clicked", G_CALLBACK (hello), (gpointer)window);
// Pack the button into window
gtk_container_add (GTK_CONTAINER (window), button);
// Show the button
gtk_widget_show (button);
// Show the window
gtk_widget_show (window);
// Run main GTK+ event loop.
gtk_main ();
Собирается эта программа командой вида
gcc -o gtk-hello $(pkg-config --cflags gtk+-2.0) $(pkg-config --libs gtk+-2.0) gtk-hello.c
Дополнительная литература
Реймонд, Эрик С. Искусство программирования для UNIX. — Пер. с англ. — М.: Издательский дом «Вильямс», 2005. — 544с., ил.
Керниган Б., Пайк Р. UNIX. Программное окружене. — Пер с англ. — СПб: Символ-Плюс, 2003. — 416с., ил.
Керниган Б., Ритчи Д. Язык программирования C. — Пер. с англ. — Москва: Вильямс, 2006. — 304 с.
Linux быстро развивается и становиться все популярнее, особенно в связи с тем, что сокращается использование Windows, а также множество программистов работают над продвижением Linux, создавая новые программы для настольных компьютеров, которые будут эквивалентны или даже лучше приложений в Windows и Mac OS X.
Большое количество дистрибутивов пытаются сделать Linux более легким для новых пользователей, которые раньше использовали Linux или Mac OS X. Это еще лучше способствует продвижению Linux в массы.
Для Linux есть множество языков программирования, и более того, каждый год появляются новые. Но не все их используют программисты, ведь для того, чтобы создать надежное, гибкое, эффективное и расширяемое, а главное, безопасное приложение, нужно подобрать правильный язык.
В этой статье мы рассмотрим самые популярные языки программирования для Linux. Рассмотрим те, на которых разработана эта операционная система и те, которые используются для создания приложений. На самом деле список не отсортирован по степени важности, все используемые здесь языки хороши. Все они кроссплатформенные, и вы можете написать на них программу для любой из доступных операционных систем.
Я не преувеличу, если скажу, что этот язык был создан для этой операционной системы. Это уже старый язык. Он создавался в семидесятых годах инженером из 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. Java
Это мощный и полностью объективно-ориентированный, кроссплатформенный язык программирования в котором есть широкие возможности для создания как приложений для рабочего стола, так и сетевых и веб-приложений.
Изначально Java был разработан в девяностых годах компанией Sun Microsystems для встраиваемых устройств с низкой вычислительной мощностью. Для мобильных телефонов, микроконтроллеров и другого оборудования. Его цель была поднять кроссплатформенность на новый уровень. Программа пишется на java, преобразуется в байт код, которой Java машина может выполнять вообще на любом оборудовании независимо от архитектуры и возможностей. Затем Java начал использоваться для создания веб-апплетов в браузерах, а потому же начали создаваться настольные приложения.
Java - один из лучших языков программирования, особенно если вы собираетесь разрабатывать приложения, которые будут работать везде. Java очень выгодна в плане переносимости, вы можете без изменений выполнять программу в Windows или Linux также она более безопасна, ведь программа выполняется в виртуальной машине и мы можем контролировать все ее действия. Но недостатком есть большое потребление памяти и низкая производительность по сравнению с Си.
На Java пишется не так много программ, но среди них есть и известные, это такие среды разработки, как Netbeans, Eclipse, InteljIDE. Некоторые производители оборудования выпускают утилиты для управления своим оборудованием на Java, чтобы они могли одинаково хорошо работать в Linux. На Java написано много простых игр, а также она вовсю используется в операционной системе Android.
3. Python
Python - это интерпретируемый язык высокого уровня общего назначения. Он разработан человеком по имени Гвидо Ван Россум в начале восьмидесятых годов, он работал над языком в свободное время, и ставил цель создать язык для обучения программированию.
Основная идея Python - простота, максимальная скорость разработки, минимум ошибок, минимум неопределенности. Сам синтаксис языка способствует тому чтобы вы писали правильно и не допускали ошибок. Это мгновенно сделало Python одним из самых популярных языков. Было разработано множество библиотек для работы с системными компонентами, реализаций алгоритмов и наборов API для работы с сетевыми сервисами. Сейчас на Python можно написать как веб-сайт, так и полноценное Qt приложение, доказательство первому - множество сайтов, в том числе Яндекс, а второму популярный видеоредактор OpenShot.
К тому же на Python написано бесчисленное количество системных скриптов и утилит для управления Linux. Это утилита apt для установки программного обеспечения в Ubuntu, пакетный менеджер Emerge в Gentoo и еще огромное количество небольших скриптов. Причина тому простота языка. Программист тратит на программу несколько часов, а она отлично работает несколько лет.
4. JavaScript / GitHub Electron
JavaScript - это в первую очередь язык программирования для создания динамических веб-страниц, разработанный специально для этой цели в середине девяностых Бренданом Эйхом в компании Netscape. До недавнего времени JavaScript так и использовался для генерации динамических веб-страниц на стороне клиента и в веб-приложениях. Но затем появился проект Node.js, позволяющий разрабатывать серверные программы на JavaScript. Совсем недавно компания GitHub создала фреймворк Electron, на базе Node.js, с помощью которого теперь JavaScript может использоваться для создания десктопных приложений.
Electron позволяет использовать технологии HTML, CSS, JavaScript для создания прекрасных программ для рабочего стола. Эта платформа активно поддерживается командой GitHub и сообществом.
Хотя платформа вышла совсем недавно, на ней уже написано до сотни приложений, среди самых известных можно отметить редакторы сходного кода Atom и LightTable, а также приложение для управления сайтом WordPress, и новое приложение для чата RocketCaht. Кроме того, JavaScript используется для разработки программ рабочего стола на платформе Chromium, таких программ намного больше, тот же редактор Brackets, такие полезные утилиты, как Google Keep, Pocket, Wunderlist и другие программы из магазина Chrome.
5. Shell
Команды терминала Linux позволяют не только выполнять повседневные операции в интерактивном режиме, но это также полноценный язык программирования с поддержкой самых простых управляющих конструкций. Наиболее распространенная оболочка Bash (Bourne Again Shell) Больше всего скриптов написаны именно на ее синтаксисе, но есть и другие, например, тот же fish, sh, zsh, dash и т д.
Синтаксис управляющих конструкций Bash немного сложный для понимания, но на нем написано много системных скриптов, это в первую очередь все скрипты инициализации демонов в SysVinit, скрипты для обслуживания серверов, резервного копирования, запуска программ и т д. У каждого администратора есть несколько скриптов, написанных на Bash.
Выводы
Это далеко не все языки программирования linux, которые используются для создания программ в Linux, очень часто для создания скриптов в последнее время начал использоваться Ruby, уже выходит из моды Perl также применяются такие более специфические языки программирования как Go, R, Vala и другие. Для своих нужд я использую Python и php, а вы пишите программы для Linux? На каких языках программирования? Напишите в комментариях!
В этом учебном пособии продолжается обзор Eclipse Rich Client Platform. Здесь показано как использовать views, actions и wizards для создания полноценного приложения.
Шаг 1 - Компиляция программ на языке C/C++ (30.01.2002 - 2 Kb)
Шаг 2 - Отладочная информация (30.01.2002 - 4.2 Kb)
Шаг 3 - Компиляция нескольких файлов (15.02.2002 - 3.7 Kb)
Шаг 4 - Библиотеки объектных файлов (20.02.2002 - 3.0 Kb)
Шаг 5 - Создание статической библиотеки (20.02.2002 - 3.7 Kb)
Шаг 6 - Создание динамической библиотеки (20.02.2002 - 5.2 Kb)
Шаг 7 - Использование динамических библиотек (23.02.2002 - 4.9 Kb)
Шаг 8 - Функции работы с динамическими библиотеками (23.02.2002 - 5.0 Kb)
Шаг 9 - Инициализация динамических библиотек (27.02.2002 - 3.5 Kb)
Шаг 10 - Передача опций в программу - getopt (15.10.2002 - 6.6 Kb)
Шаг 11 - Передача длинных опций в программу - getopt_long (19.12.2002 - 11.2 Kb)
Шаг 12 - Вывод сообщений об ошибках программы (22.12.2002 - 7.5 Kb)
Шаг 13 - Получение информации о пользователе (22.12.2002 - 10.2 Kb)
Шаг 14 - Получение данных из shadow password (22.12.2002 - 5.5 Kb)
Шаг 15 - Работа с паролями системы с помощью функции crypt() (24.12.2002 - 10.0 Kb)
Графические инструменты - это библиотеки подпрограмм, которые позволяют добавлять определенный набор функций, используя который язык программирования интегрирует графический интерфейс в Вашу программу.
GCC
GCC - отличный компилятор, но man-page не очень удобна. Заметка рассказывает о простоте использования компилятора.
Ассемблер
Язык Shell
Интерпретатор командного языка shell
Та же книга , но в текстовом формате.
Регулярные выражения - самый мощный инструмент работы со строками, который смогли выдумать современные программисты. С их помощью можно проводить анализ строк, на содержание последовательностей символов, производить замену на основе этой выборки, разбивать строки на массивы и многое другое.
Язык C и C++
Утилиты make, например, GNU make, System V make и Berkeley make, являются основополагающими инструментами, необходимыми для упрощения процесса сборки приложений. В этой статье вы познакомитесь со структурой файла makefile
В заметке рассказывается как настроить среду разаработки для 8-и битных микроконтроллеров AVR фирмы Atmel.
Pascal и Delphi
Язык Java
Язык JavaScript
Продолжаем разговор о применении скриптов на web-страничках. И начнем мы, пожалуй, с написания некоторых функций, которые нам впоследствии очень пригодятся.
Скриптовые языки в некотором роде перевернули мир, и именно благодаря им появился DHTML, который позволяет делать со страничкой практически что угодно. Как известно, всего два языка претендуют на лавры победителя в броузере. Это VBScript - подмножество Visual Basic-а и JavaScript. Вот последним мы и займемся, как наиболее универсальным.
Perl
Копия
Данная статья призвана помочь взять "быстрый старт" тем, кто решил строить Web-приложения "своими руками" и выбрал в качестве средства для их создания язык программирования Perl (Practical Electric Rubbish Lister).
PHP
Из этого учебного пособия вы узнаете, как использовать PHP для создания приложения, поддерживающего workflow, узнаете о HTTP-аутентификации, потоках данных, создании объектов и обработке исключений.
Из этого учебного пособия вы узнаете, как использовать PHP для создания приложения, поддерживающего workflow.
Из этого учебного пособия вы узнаете, как использовать PHP для создания простейшего приложения, поддерживающего workflow, научитесь строить PHP-страницы с использованием HTML-форм и получать доступ к базам данных.
"Часть I
"Часть II
"Часть III "Top 21 PHP progamming mistakes" by Sterling Hughes, January 14, 2001 http://www.zend.com/zend/art/mistake2.php, Перевод: Данил Миронов.
"Пишем PHP код, устойчивый к ошибкам"
В этой статье из цикла, посвященного современному "сайтостроению", рассказывается о популярной системе MySQL и языке программирования PHP, как с их помощью можно решать задачи, с которыми сталкивается любой разработчик Интернет-сайта - подготовка и отображение новостей, ввод и отображение текстовой информации, поиск на сайте, организация дополнительных сервисов ("узнавания" посетителя, форумов, опросов и т.д.). Оба эти средства являются бесплатными и предоставляются всеми без исключения хостинг-провайдерами.
Часть 1. Первое знакомство с PHP и MySQL
Часть 2. Кругом новости, но как их ввести и отобразить?
Часть 3. Статьи для сайта
Часть 4. Дополнительные сервисы