4 ms·
> [Odersky's] work is not focused on simplicity as Wirth's was - I wonder if he tried hard to adopt Wirth's simplicity mantra or not I would beg to differ. I t
by sideeffffect 3y ago
> [Odersky's] work is not focused on simplicity as Wirth's was - I wonder if he tried hard to adopt Wirth's simplicity mantra or not
I would beg to differ. I think he's very much aiming at simplicity. Btw, the essence of Scala really is simple. Take for example DOT (Dependent Object Types is the theoretical calculus Scala is based on), it is simple
https://www.scala-lang.org/blog/2016/02/03/essence-of-scala.html https://www.scala-lang.org/blog/2016/02/03/essence-of-scala....
as video https://www.youtube.com/watch?v=bZEWNKzhBoU https://www.youtube.com/watch?v=bZEWNKzhBoU
Or take his emphasis on simplicity in practical software engineering: https://www.youtube.com/watch?v=-qf8yteuxPs&pp=ygUObWFydGluIG9kZXJza3k%3D https://www.youtube.com/watch?v=-qf8yteuxPs&pp=ygUObWFydGluI...
Than there is the question of practical concerns with Scala, like fitting onto the JVM, interoperability with Java, superficial features for programmer comfort (or lack thereof) and the tendency of some people to use the most powerful features for the simplest of problems that inevitably lead to messy codebases. And that certainly makes things complicated.
> the notion of "object-functional" itself, as a hybrid concept, lacks simplicity
I think this is misunderstanding about what Scala is all about. Scala is not supposed to be 50% functional and 50% object-oriented. It's supposed to be both 100% functional and 100% object-oriented (aka having powerful module system) _at the same time_. It's supposed to be a concrete proof that this dichotomy (FP vs OOP) is false and you can have both in the same language with the same features.
This is contrary to other languages which may have support for FP and OOP but have _separate_ support for each, like SML, OCaml or F#. Scala is in this tradition, but different, it supports FP and OOP with one set of features. And from this point of view it is _simpler_. Whether people find it _easy_ is another question.
- jll29 3y ago> It's supposed to be both 100% functional and 100% object-oriented (aka having powerful module system) _at the same time_. That is well said, and I agree. And it certainly is an acomplishment, it's even in some way elegant, but I would not call it "simple". Simple is a compiler book in less than 100 pages that _also_ includes the full source code of a compiler that can compile itself, or a language the syntax graphs of which fit on a single paper page of ordinary size. Odersky saw that to make impact, you need to interact with an existing, large library ecosystem instead of "build it all yourself", so I'd say he is a realist-pragmatist whereas Wirth was a practicising (self-made) idealist-minimalist. I think I will get out my old MODULA-2 book in honour of Wirth again and play with GNU Modula-2 a bit, let's see how that feels after 24 years of C++/Java/Python in-between.