Eiffel – Paolo Redaelli https://monodes.com/predaelli A civil engineer with a longlife fondness for Software Libero Fri, 16 May 2025 16:02:44 +0000 en-US hourly 1 https://wordpress.org/?v=6.7.2 91795679 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
Textual https://monodes.com/predaelli/2023/12/17/textual/ https://monodes.com/predaelli/2023/12/17/textual/#respond Sun, 17 Dec 2023 11:26:08 +0000 https://monodes.com/predaelli/?p=11033

Textual is a TUI framework for Python, inspired by modern web development.

Textual is a Rapid Application Development framework for Python, built by Textualize.io.

Build sophisticated user interfaces with a simple Python API. Run your apps in the terminal or a web browser!

Well, I just wish I could have it in EIffel….

]]>
https://monodes.com/predaelli/2023/12/17/textual/feed/ 0 11033
Eiffeldoc: ANY https://monodes.com/predaelli/2022/10/09/eiffeldoc-any/ https://monodes.com/predaelli/2022/10/09/eiffeldoc-any/#respond Sun, 09 Oct 2022 08:15:00 +0000 https://monodes.com/predaelli/?p=9707

twin: ANY– Return a new object with the dynamic type of Current.

copy (other: ANY) — Update current object using fields of object attached to other, so as to yield equal objects.

Too bad that those Eiffel features, (function members) available in each and every object and variable are not available in Kotlin.

]]>
https://monodes.com/predaelli/2022/10/09/eiffeldoc-any/feed/ 0 9707
Iced Rust Toolkit https://monodes.com/predaelli/2022/10/02/iced-rust-toolkit/ https://monodes.com/predaelli/2022/10/02/iced-rust-toolkit/#respond Sun, 02 Oct 2022 09:39:52 +0000 https://monodes.com/predaelli/?p=9690 System76’s Pop!_OS COSMIC Desktop To Make Use Of Iced Rust Toolkit Rather Than GTK

Ok, yet another #GUI library.

Of course I hope they’ll be successful, but I wonder why they had to start another one.

I’ll keep an eye on it, it may be useful in the case we make LibertyEiffel interfacable with Rust

]]>
https://monodes.com/predaelli/2022/10/02/iced-rust-toolkit/feed/ 0 9690
SpaceVim has Eiffel support! https://monodes.com/predaelli/2022/10/01/spacevim-has-eiffel-support/ https://monodes.com/predaelli/2022/10/01/spacevim-has-eiffel-support/#respond Sat, 01 Oct 2022 10:49:41 +0000 https://monodes.com/predaelli/?p=9687 SpaceVim, a community-driven vim distribution that seeks to provide layer feature, besides turning Vim into a nifty IDE for several languages (C/C++, Rust, Kotlin, Go, Python, Java and JavaScript plus others), it offers among the available layers one for Eiffel!

 

]]>
https://monodes.com/predaelli/2022/10/01/spacevim-has-eiffel-support/feed/ 0 9687