If dealing with uses after free and lack of bounds checked access in release code is still a fun factor.
> Java -?-> Go
Not at all, unless one misses Java 1.4 with loots of if/else boilerplate.
- I think you're right. C is more l'île a garbage collected C.
It is the same fallacy as C code is safe if everything was checked, while CVEs keep happening.
Having said that, isn’t Deno close to what you’re looking for?
I can write statically typed code that easily shapes & reshapes objects & code that fits functional or object oriented programming styles.
It's a statically typed language that feels dynamic.
Now, if I were to get a version of TS without all of JS's crutches that would be amazing.
Deno is pretty close, but it lacks on performance & is bounded in potential by JS (in some aspects).
Things like `Object.keys` irritate me because they don’t compose well. What would go wrong if TS started supporting `Object.prototype.keys`? Could even be implemented as a rewrite using `Object.keys`.
It’s the ideal replacement for general purpose scripting and browser work IMO. I can’t recommend it enough.
Not sure if that's because I'm a beginner or if it's just Spark itself, but Scala errors are impossible to decrypt.
Time to bump Scala to version 3 so that you don't have the 22 case class field limit anymore. :)
See here: https://dotty.epfl.ch/docs/reference/dropped-features/limit2...
That is what I mean though - but I would replace "Java" with python here. Just stay away from all the complexity and write python code. It's pretty simple and some people argue it's the better way to use Scala.
Just like how you don't have to use type annotations, generators, decorators, context managers in python.
Same for libraries.
At some point you will stumble upon a library that forces you to understand them or you even write one yourself, but that is not something that stops you in the beginning.
Go got this right. If you want to read code, contribute to a large code base, folks will be using the features of the language, including the weird ones. Go has kept things very simple (relatively) in terms of core language. Some things were beyond basic (error handling? no generics?) But boy did it make it easier for contribute and understand code.
def Hi() = "hi" Hi() Hi
Yes, those two variants both work?
Sure, but in that case, is python really beginner friendly? I don't think so. I had the impression we were talking about starting out with the language and building the well-known todo-list to learn the basics.
Also, golang is a rather young language and it will go the way that all languages go: it will get more and more complex because the more experienced developers want to improve their productivity with better language features. Remember the "no generics" thing? Well, now the generics will be added - I predicted this to happen. And just wait, other features will follow...
They've been adding some really more edge / line noise type features. Consider the walrus operator? You can do pretzel magic with this which make figuring out scope and what happened to what difficult.
I love the old way.
with open(…) as f: for line in ...
And I wish they'd just made more things iterable maybe or fixed some of the regex match stuff?
The apps may be heavyweight, but the runtime was designed to run on set-top boxes 25 years ago.
- A simplified/sounder natively integrated version of Typescript's type system - Javascript's easy notation for manipulating objects - None of Javascript's other baggage/cruft - Something akin to go routines
Basically, something with the performance of Go/Java (so there would be no need to rewrite your code once it starts serving millions of people) but the elegance of Typescript.
Not sure if this is similar to your vision of a "next Python" but it feels somewhat similar.
Basically I think right now:
C -> Zig
C++ -> Rust
Java -?-> Go
Python/Javascript --> ???
With native typing we could get a language as fast as Java/Go but with the cleanliness of Typescript.