Hacker News new | ask | show | jobs
by pizza 1613 days ago
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 official package manager only, with virtualenvs, and 1 official language version manager

4. Compilable and transpilable, like Futhark

5. Algebraic algorithm compiler hints: eg string length is a monoid homomorphism, so if I wanted to label ‘len(str)’ as such the compiler would be smart enough give me a parallelized, async version of string length

6. Higher order functions + partial application + lenses as built-ins

7. Really solid debugging tools, including at minimum time travel features and automatic data structure visualization

8. Jupyter notebook support

9. Can compile to wasm

10. Codegen as a first class feature, to go along w the reflection capabilities. Eg if I want to copy one region of code to another location, be able to do so. But also much more sophisticated operations than copy.

11. String diagram editor for composable module diagrams

12. IDE has built in natural language interface but in a non-interfering way. By which I mean, rather than writing the code for me at my cursor in my code editor, let me write the code on the left, and have the computer make a list of the ‘todos’ and function implementations that will need to be tackled next. Keep me in my flow, while helping me prefetch the next task to do.

3 comments

What exactly virtualenv adds to table that justifies it?

I have used c#, and javascript. And not felt any issues by lack of virtualenv.

I know python need it because otherwise it does not support project level modules. But that is a python only problem

Sure, just for managing the project-level language versions + project-level library dependencies. Doesn’t need to be exactly venv, but venv has proven simple enough to use that it tends to reduce headaches, rather than add more, in my experience.

The reason is that pip/most package managers have a default to install a package globally. Which can be annoying especially for noobs.

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/)
Looks groovy! Thanks for the heads up
GraalVM/Truffle aims to make high performance multi language interop a reality.