1. Placing language interop as a high priority via extendible interop framework. Right now if you look for interop chances are you’re only gonna get A—>B bindings (eg Python->Rust), not even A B. I’d want something where, for all A,B in the set of supported languages, A B interop exists. This ideal language could then have like some glue module to allow that. 2. Extensible reflection system like in Python 3. 1 offici…
This really isn't what you asked for, but I discovered a "programming language" recently, named Enso, that seems like something you'd like. ( https://enso.org/ )
Ask HN: New Programming Language?
61–70 of 99 posts
Re: Ask HN: New Programming Language?
#62Earlier quoted context omitted.
In terms of the languages you listed there, sounds like V to me: https://vlang.io/
This sounds amazing, why there is no more traction for the language? What are the downsides?
Re: Ask HN: New Programming Language?
#63For example, it would tell module main depends on ui, utils and json, ui on graphics (a third party library) utils on encrypt and IO (which are part of the standard library of the language), json on Streams (another part of the standard library).
It also could say graphics doesn’t use reflection, json is thread-safe and O(input size), utils is pure, encrypt is constant-time, and main isn’t restricted in any way.
The compiler would have to enforce both the dependencies (main couldn’t directly call functions in IO, for example) and the properties (if json uses shared state, it somehow must be properly protected with locks/atomics) (this may, in cases, be a research project. Some properties might be better served with a different or more limited language (that’s what dtrace does for its language, to guarantee it won’t loop forever)
That file would serve as documentation. Tools would exist to render it to svg; users would expect their IDE to do that, maybe even in editable form.
Advantage of separating that from the source files would be that it is harder to accidentally change that information. Spotting them in reviews would be trivial, history could be tracked, etc.
Maybe, the compiler could error when compiling a module where the documentation doesn’t say it’s thread-safe, but it still is, but I can see problems with that, too, where implementers don’t want to commit to something, but still do it. Maybe, we need 3-valued properties: “is thread safe”, ”is not thread-safe”, and “doesn’t want to commit to thread-safety”
Advantage of the compiler enforcing the properties is that they would remain true.
Yes, you can bolt a lot of that on top of about any existing language, but the language needs a culture of doing that. I think golang has shown that the design of a language can influence its culture.
As I said: “I would like to see an experiment”. I’m not sure I would really be happy with the results though. What if there’s that one function that logically belongs in encrypt, but can’t be made constant time? Do you really want to create a sister module for that one function?
Re: Ask HN: New Programming Language?
#64I want a FOSS PL with bloated higher level primitives and APIs, like Wolfram. Think about how having a data frame class (+meta-programming) makes such a big impact in R. I want the same for images, sound, etc.
Re: Ask HN: New Programming Language?
#65- A strong static type system, but not as in-your-face as Rusts. Abstractions must be cheap in runtime, but not so cheap as to come at the price of more complex programs OR SYNTAX. Strong support for things like sum times with exhaustive matching. Generics. No Nulls. Annotations. All the things you expect from a modern language.
- Struct-oriented imperative programming, like Rust. That is: not a functional language, not an OO language, but a focus on imperative and immutable.
- A runtime with a garbage collector, to enable the above.
- Utf8 strings
- A rust like error handling system with catchable panics for "actually exceptional" things, and forced Result/Option types for everything normal.
Re: Ask HN: New Programming Language?
#66I'd like a systems programming lisp with first-class functions, lexical scoping, and tail recursion optimization: lisps are beautiful and there don't seem to be any well suited for handling binary data.
Javascript supports first class functions, lexical scoping, and tail recursion.
AFAICT from stackoverflow, the Safari JS engine optimizes tail recursion, while Firefox is apparently working on it.
Re: Ask HN: New Programming Language?
#67I'd like a systems programming lisp with first-class functions, lexical scoping, and tail recursion optimization: lisps are beautiful and there don't seem to be any well suited for handling binary data.
Re: Ask HN: New Programming Language?
#68Re: Ask HN: New Programming Language?
#69I'd like a language that, as much as possible, insulated me from async worries. I'm thinking of how garbage collection helps me forget about memory allocations. I don't want to have to pepper my code with 'async' and 'await' hints everywhere. I'd prefer to not have to figure out the syntax incantation for marshaling data across threads. If I'm not mistaken Go is the closest to this?
Haskell tries to automatically multithread code, along with providing support for it in its standard library.
Re: Ask HN: New Programming Language?
#70I want a programming language that can do a lot, from web, game and IoT, with type system like Haskell/TypeScript/Rust/Ocaml and simplicity of Go
Specifically, what does "simplicity of go" mean to you