Let's be honest, learning statically-typed functional programming is harder than the imperative one BUT reasoning about pure functional programs is much easier. I myself prefer to spend more time learning than debugging programs.
Now, seriously, why should anyone decide to design it like that? JavaScript is so f*cked up folks!
year -> the actual year
day -> the actual day
month -> the actual...nope! it's 0-based.
developer.mozilla.org/en-US/…
So, yesterday I finally decided to tinker with Scala 3. Well, after like 15 minutes I stumbled upon a compiler bug. Srsly, what are the odds? Anyway I discussed it in discord discord.com/channels/6321504… and it has readily been reported as a bug by som-snytt github.com/lampepfl/dotty/is…
Don't get me wrong, comments are important. Nevertheless, never stop wondering if what you're writing as a comment can be expressed in your code, instead, and make it clearer.
Annotate every type in Scala. The time you're going to save when you read the code in the future is much more than the one you'd save taking advantage of type inference to avoid some more typing.
Only a British person will quietly join the back of a five-mile queue, without even bothering to attempt to look how far ahead it stretches, not even looking up from their phone, maybe a small bottle of water in the other hand… showing the rest of the world how queuing is done.
Hey junior devs: many senior devs will suggest you read some academic/difficult books on programming, such as TAOCP. You can be sure most of them read from 0% to 5% of the pages of those books, so don't feel down if you don't fully understand them and move on.
As a former Java dev I appreciate the effort its community is making to improve it. Nonetheless this thread reminds me how lucky I am to use Scala and have that and much more with a less verbose syntax. E.g. see the CompletableFuture example? Here is the return part in Scala:
Every programming language provides ways to express our ideas and then translates them into reality. This thread will explore ten #Java programming features used frequently by developers in their day-to-day programming jobs.
In the future IDEs might even think and write code themselves, but I'm pretty confident that, nevertheless, they won't get matching parenthesis/brackets/quotes/... right.
When you write the docs for the Scala library you created, may I humbly suggest you include type annotations in the examples? That would make "following the types" much easier.