Hacker News new | ask | show | jobs
by _nckn 2253 days ago
I think your argument here is counterproductive. Lihaoyi is a prolific coder but most coder like me are average Joe. How can Scala be useful and make average Joe like me productive. The fact that Lihaoyi is a prolific coder in any language does not help selling Scala.
3 comments

Haoyi makes libraries that are very easy to use, modelling them after popular Python libraries. If you're interested he recently wrote a long blog about the future of Scala being exactly this approach; make easy to use libraries for people like yourself interested in being productive in Scala quickly. https://www.lihaoyi.com/post/TheDeathofHypeWhatsNextforScala...
Fair point :)

The remaining piece of the puzzle is that Lihaoyi's libraries and general approach is exactly what a joe average coder would want. There is minimal use of advanced features, it is all quite straightforward and simple.

There are other productive contributors in Scala, but among them I would rate Lihaoyi to be among the least "magical". The fact that he is both practical and productive is what makes him unique. I guess my point was that there is a lot to be learned from that. For some nice examples of what it looks like in practice see his series of blogposts titled "how to work with x in scala".

My personal pitch for Scala comes down to two things: developer experience and suitability for projects of all scales.

I frequently miss basic features when I'm using other languages. Some of these include: - Its system for basic immutable data structures. - Pattern matching for very concisely extracting and branching on data. - A really nice immutable collections library. - Scalacheck for generative testing, driven by the type system. - A bunch of other nice-to-have syntactic features.

From the perspective of building projects, I appreciate that it can model anything from quick utilities to simple web services to concurrent systems, all within a single JVM. And with tools like Akka, you can move that to distributed systems without having to add external software you have to operate.