This page lists the devroom proposal for the "Minimalistic Languages - for big ideas" devroom.
Devroom name: Minimalistic Languages - for big ideas
In computing the term Minimalism refers to the application of minimalist philosophies and principles in the design and use of hardware and software. Minimalism, in this sense, means designing systems that use the least hardware and software resources possible. In an era where personal computer perfomance capabilities expanded by orders of magnitude and mainstream software becomes more and more complex, minimalistic programming languages try to remain simple, elegant and use are little resources as possible.
With the expansion of small hardware in phones, the internet of things and embedded systems, free and open source software minimalism is key to low energy use and secure systems.
Last year key organizers of this minimalistic languages dev room for big ideas were Mes, GNU Guile, Lua, Tcl, Perl and Racket. A lot of interesting and different languages participated and had the opportunity to share ideas and cooperate. Again this year we will ask every minimalistic programming language out there to contribute talks. We again expect a broad interest in this room with very diverse talks.
For GNU Mes, FOSDEM was a great help in going forward. By bringing together people of shared interest GNU Mes has landed a grant from nlnet on privacy and security. Also, an ARM port was started. When a bitcoin developer (Carl Dong) saw the talks on Mes and Guix a new reproducible bitcoin, he has created a new secure bitcoin build system using Guix. A cross build system is being worked on.
GNU Guile is the preferred extension system for the GNU Project which features an implementation of the Scheme programming language, a dialect of Lisp with a mature community. GNU Guile is continually improved where recent milestones were a new compiler infrastructure, a virtual machine implementation, a switch to the Boehm-Demers-Weiser garbage collector and many improvements to the Guile Scheme language itself. Major performance improvements were demonstrated at FOSDEM with a new optimizing compiler which is now part of the recent 2.2 release. Other recent additions are a "sandbox" facility that can run code from untrusted users and improved support for immutable data. Big Guile ideas are GNU Shepherd which is a systemd replacement and the GNU Guix project with over 300K lines of Scheme code to build complete Linux and Hurd reproducible software distributions.
Racket is a general-purpose, versatile, multi-paradigm programming language designed to be a platform for programming language design and implementation. The Racket language is a language which enables creating embedded and domain-specific languages, language constructs such as classes or modules, and separate dialects of Racket with different semantics, to solve a wide area of problems.
Lua is a powerful, efficient, lightweight, embeddable scripting language. It supports procedural programming, object-oriented programming, functional programming, data-driven programming, and data description. Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. Lua is dynamically typed, runs by interpreting bytecode with a register-based virtual machine, and has automatic memory management with incremental garbage collection, making it ideal for configuration, scripting, and rapid prototyping. LuaJIT is an alternative implementation of Lua, achieving performance widely considered to be one of the fastest dynamic language implementations. Some big Lua ideas can be found in the gaming community, networking, and in embedded systems.
Examples of the types of talks we envisage for this dev room are
- Mes bootstrapping full free software systems from source
- Tiny web servers for embedded systems
- Mobile/embedded software development with Lua
- Why JSON when you can DSL?
- Tcl - An Embeddable Long-lever with a Comfortable Grip, that fits in your Pocket.
- A Picture Language for Guile
- Hacking free software with GNU Guix
- Building domain specific languages with Tcl, Lua, Guile and Racket
- Alternative Lua implementations
- Languages that run on the Lua VM: MoonScript, Fennel, Urn
- Statically-typed languages based on Lua: Titan, Pallene
- Game development frameworks and libraries: Defold, Love2D, etc.
- Package management for minimalistic languages
- Lua as an in-kernel scripting language
- MES and bootstrappable https://www.gnu.org/software/mes and http://bootstrappable.org - Lua https://www.lua.org/ - GNU Guile https://www.gnu.org/software/guile/ - GNU Guile libs https://www.gnu.org/software/guile/libraries/ - Scheme http://community.schemewiki.org/ - Racket https://racket-lang.org/ - Smalltalk http://smalltalk.org/ - Tcl https://www.tcl.tk/about/language.html - Rebol http://www.rebol.org/ - Mgmt https://github.com/purpleidea/mgmt - Never https://never-lang.readthedocs.io/en/latest/ - Luerl https://github.com/rvirding/luerl
Why should FOSDEM accept this proposal?
Minimalism matters. Minimalism allows for smaller systems that take less resources and consume less energy. More importantly, free and open source minimalism allows for secure systems that are easy to understand. Finally, we believe that minimalism is educational and brings back the fun of the early days of computing where people learn to understand systems from the ground up. Speakers will be asked to accentuate the educational side of their projects.
Lua and GNU Guile are projects with a growing number of users and active development. In 2016 and 2017 GNU Guile and Lua shared a devroom at FOSDEM in the K building and both were a great success with a continuous full house. In 2019 the Minimalistic Languages devroom was a success with 16 talks and one workshop, which allowed different small languages exchange ideas and communicate. The room was a great success and continuously full of people. FOSDEM gives these communities a great impulse by getting developers together and projects like MES started there. This devroom will be a great oportunity to attract new people, new ideas from different backgrounds, as well as gather everyone familiar with the projects together, to develop new free Software and improve existing projects.
- Ludovic Courtès (firstname.lastname@example.org) - GNU Guile project leader - Hisham Muhammad - LuaRocks lead developer (email@example.com) - Ricardo Wurmus (firstname.lastname@example.org) - Jan Nieuwenhuizen (email@example.com) - Pjotr Prins (firstname.lastname@example.org) - Alex Sassmannshausen (email@example.com) - Amirouche Boubekki (firstname.lastname@example.org) - Manolis Ragkousis (email@example.com)
See also Minimalistic Languages devroom 2019