Revision [2377]
This is an old revision of ProgrammingLanguages made by Puppyite on 2009-10-21 14:55:22.
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
- C - Many programs are written using C. Plus they don't need any interpreter
- TclTk Tcl/Tk - Scipting Language with a GUI toolkit. Used for the drive mounter MUT (and others). LearnTclTk Learn how to program in Tcl/Tk
- PuppyBasic - also called WxBasicscript is a modified (and smaller) version of wxBasic with new functions for the Linux platform. PuppyBasic was written by Mark Ulrich
- LuaProgramming MurgaLua - will be in Puppy 2.16 and greater.
- bash Shell Scripting - Is used extensively in Puppy. Here are some ShellScriptsExamples examples.
- There may be some not listed here yet. (feel free to add them)
- Note: Puppy can run programs made with these languages, but to write with them you may need other files. See Compiling compiling help.
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 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 is very common for programs using the Gtk toolkit (the Gnome equivalent of the Win32 API).
- C++ is very common for programs using the QT toolkit (the KDE equivalent of the Win32 API).
C and C++ are the core languages used for writing Linux itself.
- Python, Perl, Ruby, Java - are not used by Puppy but may be used by some applications. Including them in Puppy would make Puppy bloated.
- Shell Scripting (Bash/ash) - Puppy uses the bash-shell for a lot of its scripting needs.
Other Languages
Puppy will use Murga Lua starting in 2.16 and may include a new control panel.
- LuaProgramming 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.
- TclTk Tcl/Tk - used in puppy for The drive mounter MUT
- Freebasic is an open source BASIC compiler wikipedia link
Examples of Programming Languages (mostly in Puppy)
PuppyBASIC - PuppyBackground, PBcdripper, Puppysearch, PBrenameTclTk Tcl/tk - Tkdvd, Pvolume, TKmines, TKdiff
Perl program using Gtk: http://www.murga.org/~puppy/viewtopic.php?t=3755
Java - jrisk.pup
- java is not that common, but there are some nice applications already.
examples: Network wizard, Pmount, Soxgui, Grafburn, Pfind, Pbackup
C with GTK1 - Gcrontab, Gtkfind, Gtksee, Dillo, SSH gui, Turma, uxplor, xpdq, Xproc.
http://www.murga.org/~puppy/viewtopic.php?t=11778
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
TclTk Tcl/Tk - You're pretty much alll set also. Check the TclTk Tcl/Tk page for more help.
IDEs: (Integrated Development Environments)
KDE has Kdevelop
http://www.kdevelop.org/
Unfortunately, KDE is quite huge, so not by default in Puppy.
This might be a good alternative (no package yet):
http://women.kde.org/articles/tutorials/kdevelop3/
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 http://gtk.org
There also is a "visual" tool:
http://glade.gnome.org/
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.
http://www.murga.org/~puppy/viewtopic.php?t=9599&highlight=gnome
An enhanced editor/IDE without visual designer:
http://www.murga.org/~puppy/viewtopic.php?t=9077&highlight=mingw
http://www.murga.org/~puppy/viewtopic.php?t=4413
for a gui designer for tcl there's visual tcl:
http://vtcl.sourceforge.net/
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.