mastouille.fr est l'un des nombreux serveurs Mastodon indépendants que vous pouvez utiliser pour participer au fédiverse.
Mastouille est une instance Mastodon durable, ouverte, et hébergée en France.

Administré par :

Statistiques du serveur :

592
comptes actifs

#lua

6 messages5 participants0 message aujourd’hui

🦾 Why Lua Beats MicroPython for Serious Embedded Devs

「 Lua isn’t just compatible with embedded systems; the Lua ANSI C library was designed for them. Its architecture is clean, compact, and deterministic.

MicroPython, on the other hand, is a reimplementation of Python 3. It works well for many embedded use cases, but it inherits assumptions from a desktop-oriented language 」

embedded.com/why-lua-beats-mic

While it has its own issues, there are several good reasons why my favourite #ProgrammingLanguage in the real world is #C

Why not #Go?
Because it's from #Google.

Why not #Csharp or #Fsharp?
#Microsoft.

Why not #Rust or #Zig?
#LLVM (aka #Apple & friends).

Ultimately, most of languages I avoid like the plague are controlled by #BigTech one way or another.

C is simple enough to get several alternative compilers based on useful standards.² ³


¹ In theory I still prefer #Oberon07, but when I want to code something useful I still use C instead to lower the entry barrier for other devs, because there are too many incompatible implementations of the compiler and "standard" library.

² Ok, #Python, #Scheme and #Lua have similar qualities, but for the tools I write I usually prefer binary executables with no runtime.

³ No, #C++ is not an option. 😉
harmful.cat-v.orgBjarne Stroustrup: "I Did It For You All..."

The @ardour #Lua scripting workshop at #LAC25 #INSA #Lyon has just started. And I am curious to learn how to extend the functionalities of this great free and #OpenSource #DAW in a programmatically way in #realtime.

As @lualang is #CrossPlatform like #Ardour is, you can draft your script on a Windows machine at work and refine it on your #Linux computer later at home, for example.

Let's see how we can automate tasks in Ardour sessions, which otherwise would require another person operating #plugin parameters, session properties, #routing, etc. interactively.

A répondu dans un fil de discussion

Ok, dispatch is in, some quick benchmarks, using a script that does nothing but return Outcome::NotForUs:

  • lua (luajit): 127k req/sec
  • lua (luau-jit): 142k req/sec
  • roto: 173k req/sec

So #Roto wins over #Lua by a sizeable margin here, even with luau-jit (which, iirc, is supposed to be the fastest).

However, #Lua is fast enough. I'm willing to trade some performance for user convenience, and Lua is at a spot where the performance drop, while noticable, is within acceptable limits, and is offset by the convenience of the language.

A répondu dans un fil de discussion

In a number of ways, #Lua is going to be a better fit than #Roto: it's a far better known language, and a whole bunch of things are easier to do in Lua.

Do I regret going with #Roto first? Absolutely not. I like Roto's syntax better, and prefer its minimalism over Lua. From what I remember about my prior benchmarks, Roto is also significantly faster. But I'll do some side-by-side comparisons once the Lua support is in a better place, and once I can actually choose which one to use.

Right now I just made a struct that implements the same functions as MeansOfProduction, and replaced Roto with Lua. That is obviously not how it will work down the road.