|
|
(2 intermediate revisions by the same user not shown) |
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
| |