| 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. |
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