Awesome
Programming Language Wish List
I use Python since 2001 and it works fine for most of my use-cases.
Nevertheless there are some things about Golang which are nice.
Instead of comparing Python with Golang I decided to ask myself:
Thomas, what is your wish list for a programming language?
Wasm
The language should be able to be compiled to WebAssembly
This way you can run your code in modern browsers.
Energy Consumption
I don't want to burn the planet. My small applications don't run at scale, so it does not matter much.
Nevertheless I would like my programms to be fast, efficient and use little energy.
Here you can read that Python is not efficient Sustainability with Rust
Dynamic typing is nice, but overall I don't need it. I can work with a staticaly typed language, since this would reduce energy consumption.
Easy to read
I think Python code is often beautiful.
Classes use CamelCase and uppercase, and methods use snake_case and lower case.
That's one thing I don't like about golang.
No pointers
The great thing about Python: You don't need to worry about pointers. It just works.
This semantic is part of my wish list.
name2type mapping
The language should support a name2type mapping.
This can help to keep the source code clean an easier to read for humans.
Of course this is optional. Don't use it, if you don't like it.
Packaging should be part of the core project
In Python packaging is not part of the core. There are several ways to package and install code (pip, conda, ...).
It would be nice if there was one way to package and install the code.
Template Literals
Python f-strings are nice, but Template Literals could be even better.
For example auto-escaping all arguments would be great.
More about this: Template Literals to Python
html templating in the standard library
Go has a great template/html library.
I would love to have this: Strings get quoted according to their context.
Combined with f-string like template-literals this would be heaven to create HTML inside code (Locality of Behaviour.
Async transparent
I don't want to type async
and await
again and again.
I think there is a way to create a async-transparent language.
Up to now the only language I know which is async-transparent is hyperscript
Garbage Collection
I know that Rust is faster than golang, but nevertheless garbage collection is on my wish list.
I don't want to allocate and free memory.
gRPC Integration
There should be a gRPC integration
Profiling
Profiling should be part of the standard library. Related: Go Profiling.
Testing: function based
I like function based tests like pyTest provides them. I don't want to write a class (jUnit style).
Example: https://docs.pytest.org/en/stable/how-to/assert.html#assert
Testing: fixtures like pyTest
PyTest fixtures are great. This way you can easily create data for your tests.
Just create an argument for your test function with the corresponding name.
Example: https://docs.pytest.org/en/stable/explanation/fixtures.html
Testing: From code to tests.
It would be great, if there would be a simple and fast way to get from a method in the code to the corresponding tests which execute this method.
Example: I have a method do_foo().
Now I want to see all tests which execute do_foo().
OOP
I think object-oriented-programming is overrated. Nevertheless I don't want to miss it.
Explicit parent constructor
I like the explicit way you need to call the parent-constructur in Python.
It is perfectly fine to write this one line in the constructor of your class.
Profiling which works in production
Golang has great support for profiling production code: https://go.dev/doc/diagnostics
Chat, with threads
It wish there is an active community chat where threads get used. Without threads a chat is just a stream of messages without structure. I prefer threaded chat, even if there is little traffic.
Feedback is welcome
Please tell me your thoughts. The prefered way is to open an issue.