What is Slang?
Slang is an object orientated scripting language with a static type system.
Why name it Slang?
Slang stands for scripting language as well as for slang, since its syntax resembles Java, but with subtile
differences.
How stable is it?
Currently it is more of a concept than a real world language because there are still a lot of issues to cope with
(inferior performance compared to major languages and the occational bugs here and there), but it resembles what I
initally wanted to create.
I love the power of native languages like C++ (especially since newer standards cleaned up the language a lot) but
I honor what Java and its ecosystem has brought to the world of software development even though it was still in
its infancy when I first got in contact with it. Slang visually resembles Java but with some additional features
borrowed from C++ that, in my mind, would make a perfect language out of it like operator overloading, RAII and
the magic 'const' word. In Slang you can const everything. Methods, parameters, locals, return values and even
classes (which I call objects; I don't get the classes thing that every OO language does. Since we are object
oriented, shouldn't we be oriented to objects instead of classes..?).
Since Slang isn't that fast - a problem that many interpreted languages share - I implemented an extension system
to be able to extend the language with new features and to enhance the performance of specific tasks.
extensions A collection of extensions which were originally
included in the main project featuring access to System V message queues, pipes, a JSON serializer and extensions
for HTTP servers to be able to access GET and POST data.
extBase64 Base64 encoding/decoding for Slang
extCurl Create cURL requests from Slang
extJson JSON serializer
extMariaDB Connect to a MariaDB database
extMySQL Connect to a MySQL database
extSQLite3 Connect to a SQLite3 database file
As a second option to extend the functionality of Slang I implemented a package manager (slang-pkg) that is able
to download modules from a central repository (stable) and has
some knowledge about module versions.
System Library The Slang
standard library
MysqlObject MySQL
entity serializer
libBehaviourTree
Behaviour tree module
libCSVReader CSV
reader module
And there's of course a debugger (slang-dbg) to do some basic debugging of Slang scripts. It's able to create
breakpoints, add watches, show the source code of the currently debugged files and store and reload debugging
sessions, so that one doesn't have to add breakpoints and watches again and again.