FOSDEM2019-devroom-proposal

From LibrePlanet
Jump to: navigation, search

This page lists the devroom proposal for the "Minimalistic Languages - for big ideas" devroom.

Devroom name: Minimalistic Languages - for big ideas

Devroom description

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.

Key organizers of this minimalistic languages dev room for big ideas are Mes, GNU Guile and Lua. Other programming languages such as Smalltalk, Tcl and Rebol will be asked to contribute talks. We expect a broad interest in this room with very diverse talks.

We are very excited about GNU Mes, for example, because it allows from source builds of Linux and Hurd distributions from a 200 byte bootstrap binary. It consists of a mutual self-hosting Scheme interpreter written in ~5,000 LOC of simple C and a Nyacc-based C compiler written in Scheme. This mes.c is being simplified to be transpiled by M2-Planet.

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.

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

  1. Mes bootstrapping full free software systems from source
  2. Tiny web servers for embedded systems
  3. Mobile/embedded software development with Lua
  4. Distributed applications using Flow-Based Programming on Racket Scheme
  5. Who Needs JSON when you can DSL?
  6. A Picture Language for Guile
  7. Hacking free software with GNU Guix
  8. Building domain specific languages with Tcl, Lua and Guile
  9. Alternative Lua implementations
  10. Languages that run on the Lua VM: MoonScript, Fennel, Urn
  11. Statically-typed languages based on Lua: Titan, Pallene
  12. Game development frameworks and libraries: Defold, Love2D, etc.
  13. Package management for minimalistic languages
  14. Lua as an in-kernel scripting language

Related URLs

 - 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/

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. FOSDEM also 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.


Devroom organisers

 - Ludovic Courtès (ludo@gnu.org) - GNU Guile project leader
 - Hisham Muhammad - LuaRocks lead developer (hisham@gobolinux.org)
 - Ricardo Wurmus (ricardo.wurmus@mdc-berlin.de)
 - Jan Nieuwenhuizen (janneke@gnu.org)
 - Pjotr Prins (pjotr.public445@thebird.nl)
 - Alex Sassmannshausen (alex.sassmannshausen@gmail.com)
 - Amirouche Boubekki (amirouche.boubekki@gmail.com)
 - Manolis Ragkousis (manolis837@gmail.com)

See also http://community.schemewiki.org/?FOSDEM2019 and http://lua-users.org/wiki/LuaAtFosdem