LinuxBegin.ru - offline-версия от 26.04.2004
Главная | Все темы | Все статьи | Ссылки | Аналоги Windows-программ в Linux | Top 20

Занимательное пингвиностроение. Фундамент
(Основы программирования в Linux.)


- Сергей ГУЛЕНОК aka Gray, 17.11.2003, Мой Компьютер Weekly, оригинал -

Скоро я буду справлять годовщину своей миграции на Linux. Надо сказать, программирование было одним из первоочередных пунктов, с которыми мне предстояло разобраться при переходе. В разговорах о Linux мне часто попадалась фраза "Linux написан программистами для программистов". Так ли это?

Первое, что заставляет обратить на себя внимание в Linux, - это поддержка разнообразных языков программирования. Парад открывают признанные гранды - C и C++ (реализованные GNU C Compiler'ом или просто gcc), на которых держится практически весь Linux. За ними следуют скриптовые языки - Perl (просто ас обработки текстов :-)) и стремительно набирающий популярность в сисадминских кругах Python. Не забыты и другие известные языки: Pascal (в образе Free Pascal Compiler и GNU Pascal), Java, Fortran, Ada, Lisp, Assembler. А еще не очень известные, к сожалению, Eiffel да Objective C и многие другие. Но главная прелесть всего этого разнообразия в том, что подавляющее большинство компиляторов и интерпретаторов бесплатны!

Библиотеки. Их очень много. Я не могу утверждать точно, но уверен, что процентов эдак 90 (а то и больше) того, что вам нужно, вы найдете. Имеются библиотеки для работы с архивами и базами данных, звуком и графикой, XML и PGP, сетями (без них-то и UNIX - не UNIX :-)) и еще много чего. Есть библиотеки для работы с трехмерной графикой (OpenGL) и создания игр (SDL - аналог DirectX). Понятно, не обошлось и без средств создания графических интерфейсов - можно выбрать из Gtk+, Qt, FOX, wxWindows и FLTK. Кроме того, в комплект поставки практически любого дистрибутива входит куча утилит, которые могут значительно облегчить процесс написания программ и их сопровождение. Таковыми я бы назвал, например, систему управления версиями CVS (в дистрибутивы также часто включают Cervisa - удобный фронт-энд для нее), утилиты lex (для автоматического создания лексикографических анализаторов), yacc (для создания парсеров), diff (для сравнения файлов), gprof (для статистического анализа функций и анализа их быстродействия), make, autoconf, automake (незаменимые при сборке больших программ) и многие другие.

Немного о средах разработки. Для консоли таковой является, например, Emacs. Но наиболее популярной среди продвинутых UNIX-программистов является vim. Несмотря на внешнее убожество и неудобство редактирования (те, кто хоть раз запускал старенький vi, меня поймут), за ней скрывается небывалая мощь, которую, причем, наращивать можно практически бес конца. Есть хороший текстовый редактор с подсветкой синтаксиса FTE, XEmacs. Чем-то они похожи, но FTE не хватает функциональности (например, нет возможности отлаживать программу), а XEmacs - удобства. Xwpe (есть и консольный вариант) и Motor для любителей сред разработки в стиле Borland C 3.x или Pascal 7.x. Среди чисто графических средств я бы отметил связки из сред разработки и визуальных строителей форм: Kdevelop+Qt Designer (можно найти в большинстве последних дистрибутивов), KDE Studio Gold+Qt Designer (правда, влетит это в копеечку - стандартная версия для закачки KDESG стоит $24.95; хотя возможность ее попробовать есть - зайдите на http://www.thekompany.com/products/ksg/ и скачайте демо-версию) и Anjuta+Glade для C/C++. "Паскалисты" могут опробовать компилятор FPC со средой Lazarus (я бы назвал это попыткой сделать бесплатный аналог Delphi). Так как из "графики" я больше знаком с Gtk+, мне лично по душе именно Anjuta и Glade. Остановимся немного на них.

Anjuta - удобная среда разработки. Она имеет весьма симпатичный редактор кода с некоторыми наворотами (например, есть возможность сворачивать комментарии и функции на манер дерева, также радуют всплывающие подсказки по параметрам функций - правда, пока не по всем). Кроме того, она генерирует множество дополнительных файлов, например makefile.am (для automake), configure.in (для autoconf), autogen.sh и т.д. Они хорошо знакомы тем, кто хоть раз собирал пакеты из исходников. В общем, среда определенно должна понравиться начинающим программистам. Кстати, один мой знакомый, краем глаза увидев Anjut?у, принял приложение за Visual C++ :-). К сожалению, есть у нее один маленький недостаток - после инсталляции нет поддержки кириллических шрифтов. Однако это дело легко поправимое. Достаточно заглянуть в файлы ~/.anjuta/user.properties и ~/.anjuta/session.properties и в первом раскомментировать строку:

Затем, если во втором тоже существует такой параметр, присвоить и ему значение 204. Вот и все сложности. При желании шрифты редактора потом можно настроить по своему вкусу.

Glade - это инструмент для создания графических интерфейсов на основе Gtk. Хочу дать один совет: начинайте создавать графические приложения, написав код вручную, чтобы понять, что и как делается, вникнуть в саму организацию, а потом уже используйте визуальные построители форм, чтобы ускорить работу. Это, кстати, относится не только к интерфейсу.

Этим коротким вступлением я собираюсь начать небольшой цикл статей, посвященный некоторым аспектам написания программ в Linux. Сразу хочу предупредить, что я не буду рассказывать, что такое указатели, динамические структуры данных, толковать о работе с файлами, и т.д. - подразумевается, что все это вы уже знаете (если же нет - Кернигана и Ритчи в руки, и вперед :-)!) В этом цикле будут рассмотрены некоторые из механизмов взаимодействия процессов UNIX, создание многопоточных приложений и оконных приложений на базе Gtk+, работа с сетью. Если же вы хотите разобраться в чем-нибудь, что не было затронуто, - пишите, подумаем над этим вместе. Основной язык программирования - C, но я постараюсь уделить немного внимания shell?у и perl?у, поскольку иногда использование всей мощи C, мягко говоря, не оправдано.

За сим прощаюсь. Следующая тема - системные вызовы fork() и exec().

Продолжение следует.

Просмотров: 1713  |  Рейтинг статьи: 4.85 (Голосов: 7).
4.85
Дата размещения статьи: 2003-12-06 16:56:54



5 последних поступлений в раздел Основы программирования в Linux.:

29.12.03: Однострочник месяца на Perl: Приключение с произвольными архивами ("Резолв Дот Конф, простой... м-м-м, скажем, сисадмин. Недавно его жесточайшим образом заставили устан...)
29.12.03: Создание man-страниц (Работа каждой программы, запускаемой из UNIX shell'а, описана в man-странице. В этой заметке мы рассм...)
10.12.03: Новая рассылка "Программирование в Linux с нуля" (Автор рассылки (программист под Linux со стажем) поэтапно научит читателей профессиональному програм...)
06.12.03: Занимательное пингвиностроение. Фундамент (Этим коротким вступлением я собираюсь начать небольшой цикл статей, посвященный некоторым аспектам на...)
22.11.03: OSS API - Цифровой звук (Крайне рекомендуется ознакомиться с главой Programming Guidelines раздела Introduction документации п...)

Комментарии:

Re: Занимательное пингвиностроение. Фундамент (Оценка: 0)
от Anonymous на 09.12.03
Начинайте, начинайте уже руки от нетерпения пожимаю. Пробежался по Книжным та-акое фувло предлагают по С и С++ и в основном как накачать мазоль на правой руке... (кто под виндами работет. тот знает, от мыши рука болеть начинает. Кстати это тоже одна из причин почему я на Линух перешёл)

Николай

-- Anonymous


LinuxBegin.ru © 2003-2004 Valery V. Kachurov | Условия использования материалов | О проекте