3 ms·
Now that it's unlimited resources... Here's several random fictional languages: 1. A dependent type language with superior IDE, so that the people could write
by namelosw 5y ago
Now that it's unlimited resources... Here's several random fictional languages:
1. A dependent type language with superior IDE, so that the people could write a signature (specification) and leave the implementation to the computer (similar to Copilot, but it derives from types. If we could combine dependent type and Copilot it would be really powerful). Also, people could write specs and try to auto-complete proofs of the same system.
2. Or another language similar to Erlang, but statically typed. Since Erlang feels like an OS, the language is going to BE the OS, the experience would be very integrated like Smalltalk and Pharo, or Elisp and Emacs. It would not use plain text for everything like Unix, but structured data of the language itself. The key of the language/OS would be the lightweight processes and fast context switching. It could also be installed on bare metal, making it an ideal server-side language. Like Erlang or Kubernetes, it can form a cluster very easily - it lets you treat a cluster just like a single machine transparently, because a single machine is a collection of processes, a cluster is also a collection of processes as well. So there would be no difference between code for a single machine and a cluster. If major cloud providers support this language/OS, the ops part would be extremely easy because there would be no *nix, Kubernetes, and Docker, instead, there would be GenServers, Supervisors, and Registries which are just application code from developers (instead of ops/devOps).
3. Or another more practical language would support a superior range of platforms, like JavaScript but much better. JavaScript already dominated the browser, the desktop, and sometimes the mobile and backend. But the desktop and mobile experience is not the best, and there's not much about system programming. If we take a look at languages like Nim, it's a system programming language with a compact syntax that feels like scripting language. So assume a language that 1) feels like a scripting language for faster development 2) not only reach all platforms support JavaScript, but also for system programming, and game programming, etc 3) very fast so there could be better alternatives for Electron and React Native. It seems possible to build such language on WASM, it just requires a lot of work. The thing with a WASM language is it also should be a language with a very small core, and very extensible, or the binary would be large and waste time for download.
Well, in case if the three fictional languages happen to be the same it would be even better...
Other concrete features I would like to have is:
4. Symbolic programming (from time to time I wish the language I'm using supports it)
5. Built-in logic programming sub-language (so that it's easier to query things)
5. Other than the language IS the OS, the idea of language IS the database is also very useful. Instead of writing server talk to DB, we write code on the DB cluster so there's less inconsistency (because the logic and data are in-place) and less back and forth. There are many DB support stored procedures or Lua scripts, but if the language is a more full-sized general-purpose language that runs on WASM would be great.