Fusion Programming Language
38 points
2 days ago
| 8 comments
| fusion-lang.org
| HN
jdonaldson
2 hours ago
[-]
I'd love to see a comparison to Haxe. https://haxe.org/

I wonder what performance and generated code size/quality look like.

reply
raphinou
6 minutes ago
[-]
At a time I was very interested in haxe, but their focus on games made it (perceived as) lacking in the area I wanted to use it (cross platform client-server apps). Recently rust seems to have taken this role for me.
reply
jp3141
33 minutes ago
[-]
From https://github.com/fusionlanguage/fut/discussions/119#discus...

> I've read about Haxe in 2000s, before I started my work on Fusion. They have different design goals: in Haxe you create whole apps, in Fusion you create components to be used from other languages. Haxe has syntax similar to the (now dead) ActionScript, Fusion is similar to C#. Fusion transpiles to C, D, Swift, TypeScript, OpenCL and Haxe does not.

reply
nine_k
1 hour ago
[-]
Apparently Haxe cannot target OpenCL. It can target PHP and Lua instead.
reply
Panzerschrek
51 minutes ago
[-]
> implementing reusable components (libraries) for C, C++, C#, D, Java, JavaScript, Python, Swift, TypeScript and OpenCL C, all from single codebase

Why is this needed? I can't imagine that. I am sure writing code in fusion will produce C++ and Python code which is suboptimal and doesn't fit well in these languages.

reply
4k0hz
39 minutes ago
[-]
I think the target application is writing the same algorithm in multiple places with a guarantee that the logic will be based on a single source of truth. Not unlike Protocol Buffers work to standardize data layout across platforms.

It still feels overcomplicated compared to the standard solution of writing a library in a compiled language you like, exposing a C ABI compatible interface, and hooking it up to any language that can work with that (i.e. any language).

reply
BobbyJo
30 minutes ago
[-]
C code called from other languages has terrible ergonomics. Writing it sucks, debugging it sucks, maintaining it sucks.

I don't know if fusion is the solution, but I know C isn't.

reply
4k0hz
22 minutes ago
[-]
It can suck but it doesn't always. It depends a lot on the calling language.
reply
hyperhello
38 minutes ago
[-]
The syntax is so warm and simple, but not too simple. I like it, but I wonder how debuggable it can be, or if there is an interpreter for learning.
reply
knhung
1 hour ago
[-]
The idea it's good but hard to make it good. A universal language is hard to optimise for a particular language.
reply
nine_k
47 minutes ago
[-]
The point, AFAICT, is not in using all capabilities of all the target languages. Rather, it's about expressing some narrower class of computations and grafting them seamlessly into the target languages. Think of data formats, parsers, network protocols, stuff like handling and rendering of text, etc.
reply
jdw64
2 hours ago
[-]
Wow, this is really fusion. I like it.
reply
hav0c
2 days ago
[-]
Reminds me of https://xkcd.com/927/
reply
efrecon
2 days ago
[-]
Fusion is a programming language designed for implementing reusable components (libraries) for C, C++, C#, D, Java, JavaScript, Python, Swift, TypeScript and OpenCL C, all from single codebase.
reply
g42gregory
1 hour ago
[-]
What are the use cases? I am curious why Rust was not targeted.
reply
nine_k
54 minutes ago
[-]
I suppose you can write various algorithms in it, and have that code natively trsnspiled to different languages, for ease of native interoperability. It's unlikely to produce the absolutely most optimized code, but the lack of the interface translation barrier (aka FFI) may more than compensate for it.

Rust is not easy to target efficiently, due to the borrow checker, and they likely don't want to dyn Box everything.

reply