Our great sponsors
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
Nim
Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
Hello HN,
I'm considering the development of a new programming language, drawing inspiration from Rust's strengths, with a focus on compiling to JavaScript. Here what I'm considering are some key features:
Strict Type System
Algebraic Data Types
*Unsafe Mode for JS/TS Interaction*: Facilitate direct interaction with existing JavaScript and TypeScript code.
No Null Usage: Option/Result patterns to avoid null.
Trait Implementation
Backend Development Priority: Initially targeting server-side applications.
Efficient Compiler Design: Including features like dead-code elimination and partial evaluation, similar to the approach of Prepack[0] (by Facebook).
I believe this approach could bring significant benefits, especially with recent advancements like Uint8Array and worker threads.
Would this be of interest to the community? Looking forward to your insights and discussion.
[0] https://github.com/facebookarchive/prepack
I don't think it's a rust-inspired language, but since it has strong typing and compiles to javascript, did you give a look at nim [0] ?
For what it takes, I find the language very expressive without the verbosity in rust that reminds me java. And it is also very flexible.
[0] : https://nim-lang.org/
As another commenter has already suggested, ReasonML has a lot of what you described here.
However, modern JS-oriented toolchain for ReasonML is called ReScript and you can learn more here: https://rescript-lang.org/