[neomutt-devel] Fwd: Re: which language for object orientation? Was: To fork or not to fork?

toogley at mailbox.org toogley at mailbox.org
Fri Jan 27 21:34:10 CET 2017

> On Thu, Jan 26, 2017 at 06:15:32PM +0100, toogley at mailbox.org wrote:
> > Hm, sorry. I keep forgetting that i have to reply to the group...
> press `L` to answer to the list (or rebind it)


> You could make a great MUA in Lua (or in Go, or in Python…), but I doubt
> you could achieve the same kind of performance you get with Mutt. And
> that does not really matter, Mutt is in C, and the whole point of
> Neomutt is to /improve and modernise/ the codebase, not writing an MUA
> from scratch!

My suggestions were only meant as a step for modernization. Of course i had some thoughts on maybe rewriting specific parts of neomutt to improve the design. (just an idea i thought would fit the discussion - i have not the experience to contribute big parts to that myself)

> And definitely, if we were thinking on replacing parts of mutt in Lua,
> we'd keep all the low level stuff in C to be exposed as Lua API, and
> write stuff like the user interface in Lua (that would work with Python,
> or any other high level language). But that's not what we want, current
> UI and UX is great ☺
> An interesting discussion I'd like to see happen, is what API would be
> useful to be exposed as Lua methods so that we can make useful plugin
> scripts to extend Mutt and make it better interoperate with other
> applications.

Nice idea. :)

> If we were rebooting mutt from scratch, it'd be both fun and a good
> lesson to write it in Rust, as this language aims at being at the same
> level as C, but with a lot of neat features to make better more easily
> tested code. (That would work with Go, Elixir etc..).
> So why stick to C? Because currently there's about 84kloc in C that
> offers an efficient way to load mailboxes, and a neat interface to
> browse, read, sort and edit mail. C is portable across all Unix
> flavours, and most importantly, there's a huge community of C coders.

So you think we won't profit much from even replacing small parts of C with Rust? And continuously refactor neomutt in that way?

> And finally, you'll understand that Object Oriented programing and
> Functional Programing are just ways of coding that will make your code
> better, but that can be applied with almost any language. Those are
> paradigms you need to apply to your thought process before writing the
> lines of code.

Hm, maybe I will understand that someday if I'm more experienced :D

More information about the neomutt-devel mailing list