Содержание

Как программировать в Puppy

Puppy — маленький дистрибутив, но он предлагает широкий выбор языков программирования. По умолчанию Live-CD ничего не устанавливает для компиляции программ С или С++, однако, имеется дополнительный файл devx_xxx.sfs (где xxx — это номер версии Puppy, например, 210), который превращает Puppy в среду, полностью поддерживающую компиляцию С/С++ (также плюс компилятор FreeBASIC). Даже и без файла devx_xxx.sfs Live-CD содержит множество языков, включая обработку сценариев Ash/Bash, Tcl/Tk и PuppyBasic. Эта страница посвящена обзору программных возможностей Puppy…

Ash/Bash сценарии

Язык, уже полностью готовый к использованию в Puppy, это сценарий командной оболочки (command-shell scripting). Сценарий оболочек Unix/Linux существует испокон веков и ещё столько же будет существовать. Под «командной оболочкой» я понимаю пользовательский интерфейс, который вы используете при работе с командной строкой. Когда вы работаете под X (графическая оконная оболочка), командная строка находится в окне терминала, когда вы покидаете X, вы снова оказываетесь в командной строке.

Программа, которая запускается и взаимодействует с вами, называется командной оболочкой (command-shell), в Линуксе это обычно оболочка Bash. В Puppy у вас есть выбор между двумя оболочками, Bash и Ash.

Заметьте, что под X в окне терминала запускается Bash. Если вы выходите из X в командную строку, то запускается Ash. Для однозначного определения командной оболочки, с которой необходимо работать, в первой строке сценария следует поместить "#!/bin/bash" или "#!/bin/sh" (или "#!/bin/ash").

Сценарий оболочки (shell script) является настоящей программой, только он хранится в текстовом файле и не требует компиляции. Сценарии могут быть очень сложными, в Puppy их имеется большое количество.

Эта страничка — не учебник по разработке Ash/Bash сценариев — есть множество книг на эту тему, а также ссылок в Интернете. Парочку таких ссылок вы найдёте здесь: "Advanced Bash-Scripting Guide", "Bash Programming --- Introduction HOWTO".

Всё, что вам нужно для написания Ash/Bash сценариев, это текстовый редактор, в Puppy есть два консольных редактора, e2 и MP, и два GUI редактора, Geany и Leafpad. Geany и MP интересны тем, что могут подсвечивать синтаксис для Ash/Bash сценариев. (см. также ML ниже в разделе Tcl/Tk)

Получайте удовольствие, разрабатывая сценарии для Puppy!

В Puppy есть масса документации и инструментов, помогающих разрабатывать сценарии:

В настоящий момент в Puppy имеется две версии gtkdialog, это gtkdialog2 и gtkdialog3 — предпочтительней использовать последнюю версию, так как, скорее всего, она одна останется в Puppy — другими словами, всегда запускайте бинарник gtkdialog3.

Вот некоторые сценарии, использующиеся в Puppy:

/usr/sbin/pmount
/usr/sbin/timezone-set

Tcl/Tk

Tcl это интерпретируемый язык сценариев, подобный описанным выше Ash-сценариям, и с той же лёгкостью Tcl-программа может использоваться в качестве сценария командной оболочки. Однако, чем действительно Tcl выделяется, так это библиотекой Tk, которая превращает Tcl в полноценную программную среду с GUI (графическим пользовательским интерфейсом). Существует много дополнительных библиотек для Tcl, в Puppy на настоящий момент имеется

Всё это вы найдёте в каталоге /usr/lib.

Много приложений в Puppy (также и в PET-пакетах) написаны на Tcl/Tk, это Slidedraw, TkZip, CDTAR, XS, snamp, tkpppoe, phv, TkDVD и regexpviewer.

Так почему же Tcl? Почему не Perl или Java? Для меня лично имеются три причины: существует огромное количество доступных GUI приложений, Tcl/Tk действительно мал по размеру и это язык, который очень прост для изучения. Последняя причина чрезвычайно важна, так как благодаря этому я могу легко читать код, написанный другими людьми, чего не скажешь о языках, основанных на Си-синтаксисе, имеющих трудный для понимания код (C++, Java).

Ещё одна причина для принятия во внимание — поддержка. Tcl/Tk сообщество очень активно, на его сайтах имеются горы документации, учебников и примеров кода. Tcl/Tk широко распространён — он включён в каждый дистрибутив Unix и Linux. Также он доступен и в других операционных системах, таких как Windows и Mac.

Вот пара инструментов, имеющихся в Puppy и помогающих в Tcl/Tk программировании:

Я не размещал в Puppy документацию по Tcl/Tk. Поэтому либо раздобудьте хорошую книгу, либо изучайте онлайн-документацию в Интернете. Вот несколько ссылок по Tcl/Tk: