CFA LogoCFA Logo Computer
Новости Статьи Магазин Прайс-лист Драйвера Контакты
Новости
RSS канал новостей
В конце марта компания ASRock анонсировала фирменную линейку графических ускорителей Phantom Gaming. ...
Компания Huawei продолжает заниматься расширением фирменной линейки смартфонов Y Series. Очередное ...
Компания Antec в своем очередном пресс-релизе анонсировала поставки фирменной серии блоков питания ...
Компания Thermalright отчиталась о готовности нового высокопроизводительного процессорного кулера ...
Компания Biostar сообщает в официальном пресс-релизе о готовности флагманской материнской платы ...
Самое интересное
Программаторы 25 SPI FLASH Адаптеры Optibay HDD Caddy Драйвера nVidia GeForce Драйвера AMD Radeon HD Игры на DVD Сравнение видеокарт Сравнение процессоров

АРХИВ СТАТЕЙ ЖУРНАЛА «МОЙ КОМПЬЮТЕР» ЗА 2003 ГОД

Занимательное пингвиностроение. Фундамент

Сергей ГУЛЕНОК aka Gray graywolf@ukrpost.net

Скоро я буду справлять годовщину своей миграции на 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().

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

Рекомендуем ещё прочитать:






Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

RSS
Комментарий:
Введите символы или вычислите пример: *
captcha
Обновить





Хостинг на серверах в Украине, США и Германии. © www.sector.biz.ua 2006-2015 design by Vadim Popov