Eiffel – Paolo Redaelli https://monodes.com/predaelli A civil engineer with a longlife fondness for Software Libero Sun, 15 Jun 2025 07:11:50 +0000 en-US hourly 1 https://wordpress.org/?v=6.7.2 91795679 What can we learn? https://monodes.com/predaelli/2025/06/15/what-can-we-learn/ https://monodes.com/predaelli/2025/06/15/what-can-we-learn/#respond Sun, 15 Jun 2025 07:11:47 +0000 https://monodes.com/predaelli/?p=13563 I just read “Python Creator Guido van Rossum Asks: Is ‘Worse is Better’ Still True for Programming Languages?” and I wonder what can we Eiffellers learn from it.

]]>
https://monodes.com/predaelli/2025/06/15/what-can-we-learn/feed/ 0 13563
Futura agenda https://monodes.com/predaelli/2025/06/08/futura-agenda/ https://monodes.com/predaelli/2025/06/08/futura-agenda/#respond Sun, 08 Jun 2025 07:08:33 +0000 https://monodes.com/predaelli/?p=13542 5 strutture dati strane (ma utili) nell’informatica (“5 Strange (but useful) Data Structures in Computer Science”).

Let’s look at five weird data structures that will help you when the arrays and hashmaps of this world aren’t enough.

Do we have it in Liberty Eiffel? ROPE is part of the standard library. The other are “futura agenda”, i.e. “things that must be done in the future”, at least when speaking of LibertyEiffel

]]>
https://monodes.com/predaelli/2025/06/08/futura-agenda/feed/ 0 13542
ThorVG | Thor Vector Graphics https://monodes.com/predaelli/2025/06/08/thorvg-thor-vector-graphics/ https://monodes.com/predaelli/2025/06/08/thorvg-thor-vector-graphics/#respond Sat, 07 Jun 2025 22:32:00 +0000 https://monodes.com/predaelli/?p=13545

ThorVG | Thor Vector Graphics (ThorVG) is an open-source, lightweight, and portable library designed for rendering vector-based scenes and animations, including SVG and Lottie formats

 

]]>
https://monodes.com/predaelli/2025/06/08/thorvg-thor-vector-graphics/feed/ 0 13545
Design-by-Contract (DbC) v Test-Driven Design (TDD) | Woland’s cat https://monodes.com/predaelli/2025/06/02/design-by-contract-dbc-v-test-driven-design-tdd-wolands-cat/ https://monodes.com/predaelli/2025/06/02/design-by-contract-dbc-v-test-driven-design-tdd-wolands-cat/#respond Mon, 02 Jun 2025 19:58:11 +0000 https://monodes.com/predaelli/?p=13499 Design-by-Contract (DbC) v Test-Driven Design (TDD) from  Woland’s cat

shortly: DbC = contracts + tests

]]>
https://monodes.com/predaelli/2025/06/02/design-by-contract-dbc-v-test-driven-design-tdd-wolands-cat/feed/ 0 13499
Saturating the name-space https://monodes.com/predaelli/2025/05/16/saturating-the-name-space/ https://monodes.com/predaelli/2025/05/16/saturating-the-name-space/#respond Fri, 16 May 2025 16:02:40 +0000 https://monodes.com/predaelli/?p=13371 We are saturating the name space for programming languages. These days I discovered the Odin Programming Language “”The Data-Oriented Language for Sane Software Development.According to its FAQs there are some things we may learn for Eiffel.

Its guiding principles are

  • Simplicity and readability
  • Minimal: there ought to be one way to write something
  • Striving for orthogonality
  • Programs are about transforming data into other forms of data
    • Code is about expressing algorithms—not the type system
  • There is embedded knowledge and wisdom in older programming languages
  • The entire language specification should be possible to be memorized by a mere mortal

Its featre are features (in no particular order):

  • Full UTF-8 Support
  • Custom allocators that are simple to use:
    • Memory arenas/regions, pools, stacks, etc. which can be easily added
  • Context system for allocations, logging, and thread data
  • Built-in types and procedures that take advantage of the context system:
    • new(type), and make use the context’s allocator (unless explicitly given)
    • Dynamic arrays and hash maps ([dynamic]int and map[string]int)
  • Array programming
    • a, b: [4]f32; c := a * b
    • i := a.x * b.y
    • v := swizzle(a, 1, 2, 0)
  • Explicit procedure overloading
  • Introspection on all types
  • High control over memory layout
    • Alignment
    • Field offsets
    • Endianness
    • Data sizes
  • Endian specific integer types (useful for specific data formats)
    • u32le
    • u64be
  • Decent package system and file handling
  • No bad preprocessor
  • Type inference
    • x: int = 1
    • x := 1 // x is deduced to be an int
  • using
    • making everything a namespace (similar to Pascal’s with but on steroids)
    • Ability to have subtype polymorphism
  • Multiple return values
  • Clean, consistent, and fast to parse syntax
  • No need for procedure prototypes
  • defer statements
    • defer a statement until the end of scope (akin to D’s scope(exit))
  • Nested procedures and types
  • Tagged unions and untagged unions
  • Ranged for loops
  • Labelled branches
    • break label_name
  • break by default in switch statements
    • Explicit fallthrough
  • “Raw” strings
    • x := `what "the" string?`
  • cstring for legacy use
  • Parametric polymorphism (“generics”)
  • Foreign system
  • Compile time when statements
  • Bounds checking which is togglable at the statement level:
    • #no_bounds_check #bounds_check
  • i128 and u128 support

And lots more!

]]>
https://monodes.com/predaelli/2025/05/16/saturating-the-name-space/feed/ 0 13371
1024cores – Distributed Reader-Writer Mutex https://monodes.com/predaelli/2025/04/16/1024cores-distributed-reader-writer-mutex/ https://monodes.com/predaelli/2025/04/16/1024cores-distributed-reader-writer-mutex/#respond Wed, 16 Apr 2025 16:35:51 +0000 https://monodes.com/predaelli/?p=13109 1024cores – Distributed Reader-Writer Mutex

This is definitively something that I would like to Eiffelize!

]]>
https://monodes.com/predaelli/2025/04/16/1024cores-distributed-reader-writer-mutex/feed/ 0 13109
Name hijacking https://monodes.com/predaelli/2024/08/16/name-hijacking/ https://monodes.com/predaelli/2024/08/16/name-hijacking/#respond Fri, 16 Aug 2024 10:36:04 +0000 https://monodes.com/predaelli/?p=11869 I like the programming language named Eiffel, at least since 1998. Now I discover its name is somehow being robbed by a CI/CD project.

I simply had to let Bertrand Meyer, father of Eiffel know it. The easiest way I found is throught X (once known as Twitter):

Dear professor @Bertrand_Meyer, I’m sure you have been informed of https://eiffel-community.github.io Isn’t their name picking choise a little confusing, to say the least?

I also left the same message as a comment on his blog.

I know the name space of project looks almost exausted but coudln’t they conceive another name?

]]>
https://monodes.com/predaelli/2024/08/16/name-hijacking/feed/ 0 11869
Yet another missing Eiffel 😢 https://monodes.com/predaelli/2024/01/07/yet-another-missing-eiffel-%f0%9f%98%a2/ https://monodes.com/predaelli/2024/01/07/yet-another-missing-eiffel-%f0%9f%98%a2/#respond Sun, 07 Jan 2024 22:21:57 +0000 https://monodes.com/predaelli/?p=11120 On https://github.com/attractivechaos/plb2 there is yet another programming language benchmark. And yet another not having Eiffel….

In addition to C, there is Nim, V, Rust…. that’s very sad 😢

]]>
https://monodes.com/predaelli/2024/01/07/yet-another-missing-eiffel-%f0%9f%98%a2/feed/ 0 11120
7:26 on a RP3… https://monodes.com/predaelli/2024/01/07/726-on-a-rp3/ https://monodes.com/predaelli/2024/01/07/726-on-a-rp3/#respond Sat, 06 Jan 2024 23:08:27 +0000 https://monodes.com/predaelli/?p=11111 time ./install.sh ..... real 446m11,935s

Well… wow!

]]>
https://monodes.com/predaelli/2024/01/07/726-on-a-rp3/feed/ 0 11111
Haxe – The Cross-platform Toolkit https://monodes.com/predaelli/2023/12/17/haxe-the-cross-platform-toolkit/ https://monodes.com/predaelli/2023/12/17/haxe-the-cross-platform-toolkit/#respond Sun, 17 Dec 2023 11:35:10 +0000 https://monodes.com/predaelli/?p=11037 Watabou’s Procgen Arcana is is a collection of free map generators for tabletop role-playing games and worldbuilding. Currently, it consists of six generators, all of them are in active development. They are proprietary but free to use and they are made with Haxe

Haxe – The Cross-platform Toolkit

Haxe is an open source toolkit based on a modern, high level, strictly typed programming language.

All those “open source” have the same targets that Eiffel had 30-40 years ago… this for example already have commercial, hefty “Support Plans”, starting from an yearly rate of 6000€ (six thousand euros).

One thing I think they got right is that Haxe allows you to compile for several targets:

Liberty has C, and once had JVM. Ideally I wish to “resurrect” the JVM and add PHP (yes) and Python, or at least improve the interoperability with those languages.

]]>
https://monodes.com/predaelli/2023/12/17/haxe-the-cross-platform-toolkit/feed/ 0 11037