Revision [2341]

This is an old revision of ProgrammingLanguages made by CrustyLobster on 2009-10-18 01:07:02.


Programming With Puppy

So what is a programming langauage anyway?

Programming Languages are how people give instructions to the computer. For info see this wikipedia article.
Puppy has a few built-in, and more can be added

Overview of Languages included in Puppy

Different Types of Languages

The code that a computer executes is binary, 0's and 1's. Humans have great difficulty creating such code directly so we use programming languages to create the binary code.
Assembler is a symbolic language humans use to represent each computer instruction, one at a time, which is translated into binary code.
Macro Assembler uses more powerful constructions that can generate multiple machine instructions from one line of code.
Interpreters are high-level languages that are translated and executed line-by-line. This is a quick way to develop a program, but the execution is not as efficient. (examples are Java, Ruby, and Python)
Compilers are high-level languages that are translated into computer code for later execution. (examples are C, C++, Fortran, BASIC) Compiling Help
The development process may be slower and more tedious, but this maximizes execution speed.
Shell Scripting Languages are not compiled and are a subset of Interpreted Languages. They are used throughout puppy for many tasks. (examples Bash, Ash)

Common Languages

C and C++ are the core languages used for writing Linux itself.

Other Languages

Puppy will use Murga Lua starting in 2.16 and may include a new control panel.
  • MurgaLua is a scripting language that provides nice GUI's, Networking, Databases & XML in a small runtime (about 500k).
  • It makes it easy to create rich applications easily (preferably with a GUI builder)
  • It can deploy to both Linux and Windows with no changes to the code.
  • It isn't a completely cryptic and propriety language.

Examples of Programming Languages (mostly in Puppy)

PuppyBASIC - PuppyBackground, PBcdripper, Puppysearch, PBrename
Tcl/tk - Tkdvd, Pvolume, TKmines, TKdiff
Perl program using Gtk:
Java - jrisk.pup Shell Scripting - Puppy makes intensive usage of the scripting capabilities of the bash-shell.
examples: Network wizard, Pmount, Soxgui, Grafburn, Pfind, Pbackup
C with GTK1 - Gcrontab, Gtkfind, Gtksee, Dillo, SSH gui, Turma, uxplor, xpdq, Xproc.

Contributing to Puppy

Currently there is no formalized method to contribute code to Puppy. If you want to contribute code just make a post on the forum.
If you would like to help find bugs in Puppy, there is a Mantis bug tracker for Puppy. It is currently only semi-official to the best of my knowledge.
forum link - link to bugtracker
Note: If you just want to view the bugs, you can login as login:guest password:guest

Getting Started Actually Programming in Puppy

If you want to program in C then you will need devx_214.sfs (if you are using Puppy2.14)
See Compiling for more info about setting up your environment.
PuppyBasic - you're pretty much all set, just check the PuppyBasic page for more help
see also WxBasicscript and WxBasic
Tcl/Tk - You're pretty much alll set also. Check the Tcl/Tk page for more help.

IDEs: (Integrated Development Environments)
KDE has Kdevelop
Unfortunately, KDE is quite huge, so not by default in Puppy.
This might be a good alternative (no package yet):
Qt Designer can use QT without the additional KDE libraries.
KDE is a desktop based on QT, but also requiring additional libraries.
An example for a QT application without KDE libraries is the webbrowser Opera.

A "classic" way to write programs for Puppy would be C / Gtk.
Tutorials see
There also is a "visual" tool:
But we have no package for Puppy yet, as most of the programs made for Puppy are based on dialogs/scripts.
Also Glade might require a full Gnome installation (not sure though), while Puppy only uses the smaller Gtk subset.
Gnome is a desktop based on the Gtk libraries and many additional Gnome-libraries.
We only have a testversion of Gnome, it is too bloated to be seriously maintained by us.

An enhanced editor/IDE without visual designer:

for a gui designer for tcl there's visual tcl:

Languages IN Puppy:
Linux Script (similar to MS Dos batch files - ash and bash) Widely used by GuestToo and Barry
TclTk - LearnTclTk
Tcl/tk (pronounced tickle and very powerful and mature)
XUL - built into Mozilla, may have potential for Puppy.

Valid XHTML :: Valid CSS: :: Powered by WikkaWiki