|
|
| Line 1: |
Line 1: |
| − | This page lists the devroom proposal for the "Minimalistic Languages - for big ideas" devroom.
| + | See [[FOSDEM2019-devroom-minimalism]] |
| − | | |
| − | = Devroom name: Minimalistic Languages - for big ideas =
| |
| − | | |
| − | = Devroom description =
| |
| − | | |
| − | In computing the term
| |
| − | [[https://en.wikipedia.org/wiki/Minimalism_(computing)] [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
| |
| − | | |
| − | - Mes bootstrapping full free software systems from source
| |
| − | - Tiny web servers for embedded systems
| |
| − | - Mobile/embedded software development with Lua
| |
| − | - Distributed applications using Flow-Based Programming on Racket Scheme
| |
| − | - Who Needs JSON when you can DSL?
| |
| − | - A Picture Language for Guile
| |
| − | - Hacking free software with GNU Guix
| |
| − | - Building domain specific languages with Tcl, Lua and Guile
| |
| − | - 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
| |
| − | | |
| − | = 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
| |