I must admit that my rather non-committal email on V is largely down to my low appetite for years-old programming language drama. Wikipedia is also far from comprehensive.

Nothing is quite there yet as a "new language" for Plan 9. Rust is *too* abstract and is quite baroque (see: custom allocators, the saga of const generics, async function colouring), and leans on LLVM (which is its own C++-shaped can of worms).

Of the languages already available, I think Zig is the closest to the spirit of `Language Ideas`_, but LLVM libraries and tooling are still needed for its full feature set (including its big selling point: importing C code),[1]_ and it leans more towards the imperative than the functional. D is horrendously mismanaged. Nim and V are really just Zig, but worse.

There also a reluctance (from at least one 9front dev) to vendor Zig, because it's an external project with its own dependencies. Presumably similar reluctance would apply to other languages. Still, I expect vendoring Zig will get easier, as I shall explain.

Moving away from LLVM is `one of the core team's projects`_ at the moment, and I want to try integrating the Plan 9 toolchain with Zig's C backend (unless that has been tried already). Once `this issue`_ is closed, and provided the C backend behaves, I think the desirable missing features could be implemented by getting the Zig build system to use the native C toolchain.

As for release-mode optimisations, one of the core devs has `a broad-strokes idea`_ for a new compiler backend, which has a basis in recent CS research. I don't know whether that particular piece of vapourware will condense, but I suspect its IR would be expressive enough to do borrow checking as an analysis pass, which could universalise Rust's unique safety features.

This is my opinion on new programming languages for Plan 9.

       - Willow


.. _Language Ideas: https://wiki.9front.org/language-ideas
.. _one of the core team's projects: https://github.com/ziglang/zig/issues/16270
.. _this issue: https://github.com/ziglang/zig/issues/20630
.. _a broad-strokes idea: https://github.com/vezel-dev/graf

.. [1] https://github.com/ziglang/zig?tab=readme-ov-file#building-from-source-without-llvm

On 03/10/2024 21:24, d...@squizzler.co.uk wrote:
I am confused by the divisive views on V. On one hand people who seem to know their onions speak well of it. @Willow provides helpful reasons why the project might have started inauspiciously, whereas by contrast @Noam I feel you cast vague aspersions without evidence. Perhaps for a fledgeling language all publicity is good publicity? Certainly I would expect a "controversies" section on the wikipedia page if it was that toxic as some seem to think.

As for "vibes", I think @Kurmakes an interesting point on the importance of emotional factors. There seems to be an appetite for a new language within Plan 9 as evidenced by the wiki page linked in OP. HarveyOS jumped first (with Rust), but whilst rewriting everything in rust is trendy (has the right vibes), r9 hardly set the world on fire. The adoption of Rust in projects such as Linux may well be driven by emotion, and in a bloated codebase like Linux it seems to have been a failure. Could the experience of r9 - despite the vastly more manageable code base of Plan 9 - suggest it is not the language for Plan9's future?

Looking beyond Rust, could languages like Zig (good call, @Willow) and maybe V be better candidates? *9fans <https://9fans.topicbox.com/latest>* / 9fans / see discussions <https://9fans.topicbox.com/groups/9fans> + participants <https://9fans.topicbox.com/groups/9fans/members> + delivery options <https://9fans.topicbox.com/groups/9fans/subscription> Permalink <https://9fans.topicbox.com/groups/9fans/T9d57d40811a8ec5d-M37da1c1bd57e914926be4eb1>

------------------------------------------
9fans: 9fans
Permalink: 
https://9fans.topicbox.com/groups/9fans/T9d57d40811a8ec5d-M01cba3488d8d544732b5dbca
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription

Reply via email to