Replies: 2 comments 5 replies
-
If there is a language for each mode, does that mean switching between modes is a full transliteration between languages each time? Also there is no terminal point that I see, since any code that was last written in mode 3 may need mode 2 attention next or even mode 1. |
Beta Was this translation helpful? Give feedback.
-
Rust is both performant and safe because it has ownership is a fast class concept. Ownership is one of the things that makes rust difficult to learn and unwieldy for certain types of problems. A language without ownership would not be able to safely use rust data structures. Similar would apply to other features that make languages perf oriented. As a result I can't really see how you could have one ecosystem that is usable in a pleasant way from all 3 languages. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
This can regarded as just some thoughts based on my personal experience and not some language design idea/proposal. I think when I am developing, I am in one of these three modes:
I am sure that, there would be other things not conforming to any of these modes. But I am focusing on these three for now. I think no one single language can be a good fit for all three modes.
For the first mode, I would like to use a optionally typed, error-forgiving, interpreted language with great type inference and tooling support. I have found non-strict TypeScript or type checked JavaScript a good fit in this category. I have not used Python that much. But I am sure it would also be a good choice here. Beginners and data scientists will most probably choose this category of language. Also the scripting languages like PowerShell fall into this category.
C# is kind of the language needed for the second mode. Newer languages like Swift and Kotlin also are nice choices. Strict TypeScript can also go with this category. Here I would like to have strong and strict typing, reliable application development frameworks, testing and other tooling. Also I think the language has to be managed or garbage collected for this mode.
For the Optimize mode, my top choice would be Rust. C++/C are also in this category. Developer needs to have full control over the bits and bytes. There would be no runtime. The program will be compiled to a native artifact for the target platform. And to have this control, some agility will be sacrificed.
But what I would love have is an ecosystem having languages for all three modes. Some points I would like to see are-
I feel now ecosystems are becoming language-centric. Rust community wants to do everthing in Rust. C# community wants C# everywhere. Same goes for Javascript/Typescript and other languages. But having different languages focusing on different use-cases, while still being part of the same ecosystem will be nicer. I would expect the libraries and frameworks mostly being built with perf-lang and some may be in dev-lang. But consumed from dev-lang or explore-lang. Application development would mostly be targeted to dev-lang, with basic support for explore-lang.
This idea is so large that, I don't expect much in terms of implementation. But I am just shareing my thoughts.
Lastly some name suggestions for languages :). How about
EScript
,D#
andPerf
?Beta Was this translation helpful? Give feedback.
All reactions