Hacker News new | ask | show | jobs
by mandubian 4959 days ago
And Play2 core is composed of very robust components without any runtime enhancement, any magic. Using Scala power, we can build very clean tools, such as this one, without perverting typesafe/fully-compiled basements.
2 comments

...at the cost of a much higher learning curve.

There was a long email thread on the play framework, but as someone who is doing Play 2/Scala, they're nothing even close to the same framework, enough that calling it the same name is silly. Further, the deprecation of Play 1 does no favors, and I'm just hoping that as things go forward, a fork will emerge.

I'm also hoping that Play 2 will stop taking so ing long to compile longer projects. Is 2.1 going to make me not want to claw my eyes out?

Nice work on the new Json API, though.

See this is something I've never understood. What is this obsession with type safety/everything compiled ?

Any possible benefits to the developer disappear in the face of a huge increase in complexity.

Making stronger apps?

Let's take the Play 1 vs Play 2 example:

How many times I got a 500 pages in the face due to a basic NullPointerException in Play 1 groovy templates...

In new play 2 templates, because they are type-safe, they guarantee that you will not have those basic errors.

Of-course, it doesn't guarantee everything, but it's way less error-prone. You actually CANNOT make this kind of NPE errors with type-safe scala code.

where in java you do something like:

user.address.town // oops I forgot to test if user.address is not null

in scala:

// user.address.town wouldn't work, because address is represented as an Option[Address]

user.address.map(_.town).getOrElse("")

I do understand your point as far as templates go. But they could have replaced the template engine or even improved on Japid.

It just seems that for the rest of the system there isn't any real benefit over Play1 if you are using Java as opposed to Scala.

It depends on your mindset. I use both and love both but when it comes to massive changes on critical components in huge codebases give me static typing every time.
typesafety+compiled brings a robustness and sureness (and sometimes performance) that dynamic languages can't really provide. Dynamic languages are interesting in some domains also... I must admit I'm a big fan of static typed language since the beginning so I'm not really objective ;)