Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

In my experience Scala is one of the most intuitive and coherent languages out there. Very hard to beat in those regards.

A tiny language with only a few, but powerful, features which can be used as building blocks to express even the most advanced patterns.

The problem are just the people "holding it wrong".

If you try to use it as Java++ Scala will be more cumbersome than Kotlin.

If you try to use it as Haskell this will become very painful quite quickly.

You need to use it as Scala… This means you need to embrace its features and philosophy. Just use the best parts of OOP and FP together!



> A tiny language with only a few, but powerful, features which can be used as building blocks to express even the most advanced patterns.

And yet from the scala 3 website itself :

> One underlying core concept of Scala was (and still is to some degree) to provide users with a small set of powerful features that can be combined to great (and sometimes even unforeseen) expressivity. For example, the feature of implicits has been used to model contextual abstraction, to express type-level computation, model type-classes, perform implicit coercions, encode extension methods, and many more. Learning from these use cases, Scala 3 takes a slightly different approach and focuses on intent rather than mechanism. Instead of offering one very powerful feature, Scala 3 offers multiple tailored language features, allowing programmers to directly express their intent:

> The problem are just the people "holding it wrong".

If enough people have the same problem with a programming language, at one point it become the problem of the language, not the people.

> Just use the best parts of OOP and FP together!

Assuming that one can cleanly extract the best part of OOP and FP without bringing the baggage of eiter. It's not clear to me that those part don't have a certain level of "contradiction" which leads to the whole beeing less coherent than just OOP or FP.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: