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