\chapter{A Quick and Painless Introduction}

\quick{This chapter is designed to give you an overview over \SB\ and
lets you determine whether the language suits your needs.}

\section{Two Words of Caution}

\begin{itemize}

\item This booklet is about the \SB\ programming language -- it's
\emph{not} an introduction to programming in general. While not a lot of
software background is expected from the reader, it is assumed that
common programming concepts are already understood.\footnote{If you're
struggling with terms like >>strings<<, >>loops<<, or >>pointers<<, this
booklet might not be for you.} Some knowledge in programming languages
like >>C<<, Pascal, or Ruby is useful.

\item \SB\ is a language with a long and varied history.  Some features
which are still present in its code are no longer actively supported.
These deprecated features may be removed in future releases, and, to
keep the Vademecum concise, they will not be dealt with in this
document.

\end{itemize}

\section{Features, or: Is it for me?}

\SB\ started life as something like an >>extended handheld calculator<<,
designed for PIMs\footnote{>>Personal Information Manager<< -- for you
youngsters out there, that's a smartphone without connectivity} running
the Palm OS. One release note read, >>It's not meant to be a
full-fledged programming language, and it will never be. Please don't
ask us to turn it into one.<<

Some time has gone by since, and \emph{Nicholas Christopoulos} and
\emph{Chris Warren-Smith}, the driving forces behind the project, have
developed \SB\ into a dialect of the BASIC language which is neither
>>small<< (in the sense of it's capabilities), nor does it share too
much with classic BASIC dialects.\footnote{On a completely unrelated
tangent, I'm convinced that one of the reasons BASIC has become much
less popular today than many of the more strictly standardized languages
like >>C<<, Python, or Ruby, is that though there
actually \emph{is} a standard for the language, it never has really been
implemented. Rather, every BASIC dialect shows its own strengths and
shortcomings, and one never really knows what one gets when one toys
with a new dialect. This is one of the charms of working with BASIC, but
of course it makes maintaining or porting software written in that
language a nightmare.\\Back to our scheduled programme.}  

Today, some of \SB's features are:

\begin{itemize}

\item \SB\ is a multi-platform BASIC language: Currently, Linux, 
Windows and Android are supported.\footnote{Older ports for Palm OS, DOS,
and several others are no longer actively maintained. While some of
these versions are still around, they may miss many of the features
described here.}

\item The language is pretty compact: The Debian installer for Linux,
for example, comes as a single file with ca. 600~kb.

\item \SB\ features a very comprehensive set of mathematical functions.

\item It is an interpreted language with no compilation runs required.

\item \SB\ supports structured programming, user-defined structures and
modularized source files.  It is not object-oriented, though.

\item It also shows much leeway in questions of syntax: For many
commands, there are alternatives, and for many constructs, there are
different synonyms available.

\item \SB\ comes with its own little IDE.

\item Graphics primitives (like lines, circles, etc.) are provided, as
well as sound and simple GUI functions.

\item \SB\ supports HTML and the Web in a rudimentary way.

\end{itemize}

\section{Resources \label{resources}}

Here you will find a few internet resources that might be helpful for you when
you want to get more closely acquainted with \SB:

\begin{itemize}

\item \url{http://smallbasic.sourceforge.net/} is the central hub for
information about \SB\ in general -- a good starting point for a user of
\SB. It leads you to the download of the current \SB\ versions and
provides a lot of background information.

\item \url{http://sourceforge.net/projects/smallbasic/} hosts the
source code and cutting-edge \SB\ releases -- most interesting if you want
to contribute to the further development of \SB.

\item There is also a small forum on the sourceforge site:
\url{http://smallbasic.sourceforge.net/?q=forum} It doesn't carry very
much traffic, but is a good point to ask questions about \SB\ or make
suggestions.

\item \url{https://www.facebook.com/groups/12117250426/} and
\url{https://www.facebook.com/pages/SmallBASIC/110997952286349} are two
Facebook groups dedicated to \SB. (Both don't exactly swamp you with
traffic either.)

\item \url{http://forum.basicprogramm.org} is a generally good place to
ask questions around various BASIC programming languages.

\item You can get directly in touch with the developing team of \SB\
through \href{mailto:smallbasic@gmail.com}{e-mail}.

\end{itemize}

\section{Licenses}

\begin{itemize}

\item{\SB\ is released under the
\href{http://www.gnu.org/licenses/old-licenses/gpl-2.0}{GNU General Public
License version 2.0 (GPLv2)}}

\item{This document, the >>Vademecum<<, is released under the
\href{http://creativecommons.org/licenses/by-nc-nd/3.0/de/deed.en_GB}{Creative
Commons License by-nc-nd}. In short, this license means that you are
free to reproduce and distribute this document in any non-commercial
manner, as long as you don't change the author's name (that's mine), and
as long as the contents remain unchanged.}

\end{itemize}

