Session
FOSDEM 2021 Schedule
Declarative and Minimalistic Computing

A few patterns (and one antipattern) you might see only in Raku

A few constructs that might make Raku interesting for programmers of big & small languages alike
D.declarative.minimalistic
Juan Julián Merelo
Raku is a multi-paradigm language, that is able to do meta-programming, declarative, object-oriented programing as well as many other specific features. At 5 years, it's still a young language, but some patterns are emerging that make it quite suitable for practicing your programming chops, or embark in some side project. In this talk we will introduce some interesting programming patterns that are seen, possibly, nowhere else, from "grammaroles" through "piggybacking objects". On the other hand, for a language where TIMTOWDI, there is more than one way to do it, talking about antipatterns might look paradoxical. So let's see how we get out of this catch-22 situation.
Raku was created as a language for the next 100 years by its creator, Larry Wall, and as such it incorporates most of the paradigms tha modern language use, from a very extensive Unicode foundation, to a more classic, but still new at heart, approach to functional programming. It's this mix and match of programming paradigms that make it unique, and it's also what has provoked the emergence of certain programming patterns that solve unique problems in an interesting way. This arises as much from its design, as from its implementation, which uses Raku itself for most of it. Anyway, this talk will be about a short introduction to some Raku features, followed by a few programming patterns exemplified in Raku and in the closest you can get in other, modern languages. The main objective of the talk is to pique the curiosity about this language, which is still new, and its interesting, diverse and enthusiastic community.

Additional information

Type devroom

More sessions

2/7/21
Declarative and Minimalistic Computing
Fridtjof Siebert
D.declarative.minimalistic
Fuzion is a modern general purpose programming language that unifies concepts found in structured, functional and object-oriented programming languages into the concept of a Fuzion feature. It combines a powerful syntax and safety features based on the design-by-contract principle with a simple intermediate representation that enables powerful optimizing compilers and static analysis tools to verify correctness aspects. Fuzion was influenced by many other languages including Java, Python, ...
2/7/21
Declarative and Minimalistic Computing
Hisham Muhammad
D.declarative.minimalistic
This talk is the third part in a trilogy of talks hosted at this devroom that chronicles the birth of Teal, a new programming language that is a typed dialect of Lua. In this talk I will present an update on Teal: we'll talk about the current status of the language and its nascent community, and look forward at what lies ahead for its future. We will discuss a bit about the recent evolution of the project, and where it can go from here while adding more power to the type checking while keeping ...
2/7/21
Declarative and Minimalistic Computing
Pierre Neidhardt
D.declarative.minimalistic
The popular but aging shells (Bash and the like) suffer from many design flaws: lack of structured data, pipes are hard-to-debug blackboxes, lack of interactivity, while the user interfaces are mostly poor and limiting. High time we moved on away from this cruft, starting with a top-notch interactive language boasting full-fledged introspection and debugging.
2/7/21
Declarative and Minimalistic Computing
Jan Nieuwenhuizen (janneke)
D.declarative.minimalistic
Last year GNU Mes helped create a second reduction by 50% of the Guix bootstrap binaries, to about ~60MiB. This year we have removed the binary seeds for MesCC-Tool and GNU Mes and replace them with Stage0 and M2-Planet: the Full Source Bootstrap!
2/7/21
Declarative and Minimalistic Computing
Pjotr Prins
D.declarative.minimalistic
Declarative programming is a programming paradigm that expresses the logic of a computation without describing its control flow. Many languages that apply this style attempt to minimize or eliminate side effects by describing what the program must accomplish in terms of the problem domain, rather than describe how to accomplish it as a sequence of the programming language primitives. Declarative programming is the basis for functional programming, logic programming and dataflow.
2/7/21
Declarative and Minimalistic Computing
Andy Wingo
D.declarative.minimalistic
An introduction to compiling to WebAssembly, from a low-level perspective. Learn more about the nuts and bolts of targetting basic WebAssembly 1.0, as well as a look forward towards extensions that are still in development.
2/7/21
Declarative and Minimalistic Computing
Arun Isaac
D.declarative.minimalistic
Lisp has a wonderful minimal syntax that almost directly expresses the abstract syntax tree. Yet, diff and other tooling operate on the unix newline ending model. When lisp prides itself for its minimal syntax---code is data---that is easy to parse, why can't we do better? Traditional diff implementations, such as GNU Diff, treat files as a flat list of lines. A tree-diff algorithm that can produce minimal and semantically meaningful output is a surprisingly more difficult and complex problem. ...