THE SLANG PROGRAMMING LANGUAGE

ABOUT SLANG   LANGUAGE   REPOSITORY   PROJECTS   CONTACT

About Slang (Github)


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.