3 ms·
Some convenient omissions here, how about Scala? Kotlin?
by egamirorrim 1y ago
Some convenient omissions here, how about Scala? Kotlin?
- viccis 1y agoScala was absolutely killing the "we need JVM because all our Hadoop era tech uses it but we're a new generation of JVM data tooling and so we need a language in which the functional programming based abstractions we're using for our data processing are first class language features" niche for a while in the late 2010s. Was a really big part of Kafka and Spark ecosystems until they supported Python well enough that a lot of people just stuck with that instead of teaching their devs to write Scala.
- Larrikin 1y agoScala screwed up by having no filter. Implementing every idea someone with a PhD thought of from the entire history of programming seems like a good idea until you have to use the language. Everybody doing whatever they want because of the freedom and no guidelines didn't help. And build times killed it Kotlin feels like it has a much better plan and it seems like so far it won't suffer the same death.
- winwang 1y agoI agree about no filter*, I disagree with your reasoning. Scala (2) as a language is quite simple. The complexity came from the incredible power of its building blocks (e.g. implicits and path-dependent types). The lack of filter, as I felt, was moreso on how different two Scala codebases could be. That was part of the point though -- a scalable language, which means changing to the needs of each team.
- pdimitar 1y agoWhich also means less transferable knowledge. That killed it for me. If you muscle through it you'll get there, sure, but in the meantime I found languages that have smaller surface, are just as (or more) productive, and you can be onboarded in a project in half an afternoon.
- rienbdj 1y agoThis is true but what’s odd is that Java has better functional programming support than Python.
- notpushkin 1y agoCould you elaborate?
- Larrikin 1y agoA simple example is that people who start with Python think the list comprehension with all the colons and negative numbers is actually good instead of a hindrance. Python relies on pandas, Polars, and Pyfunctional to prop up a bad language design choice.
- notpushkin 1y agoList comprehensions look like this: [f(x) for x in xs] I think you mean the slice syntax (`xs[5:7]`). I don’t see how this is a bad design choice, though.
- rienbdj 1y agoTake a look at F# for a superior list comprehension design.
- rienbdj 1y agoIn Java you can write multiline anonymous functions and in Python you can’t (well, not in a reasonable way). Java has immutable bindings with the final keyword. Java variables are lexically scoped, which discourages mutation of globals.