Hacker News new | past | comments | ask | show | jobs | submit login

As someone who doesn't really know anything about scala, why is this a cool thing?

While such an early release is definitely aimed at scala enthusiast, I'd still like a sales pitch for the rest of us.




Mmmmm basically I think it's because Scala itself is in a really captivating position, so seeing these utilities emerge makes it that much more promising.

I've switched from RoR to Scala on Play framework and at this point it's one of those things where you use & say "this is sick" but are still discouraged because the community is so small in comparison.

But with Akka, with the Typesafe Console & other niceties you realize "hm.. well... maybe the community isn't as large but they are prepping the toolset to be immensely powerful". And here is one more tool on that belt. I'm sure the reason is different for others, but just note that Scala is a JVM language competing in the same space as Ruby/Python, as well as with some of the functional languages. That alone is huge and making it a great general purpose language.


In my mind, Akka is the reason to use Scala right now. Actors are an incredibly powerful abstraction for building highly-concurrent, highly performant systems and the features Akka brings along—remoting, clustering and now event sourcing—make it a fantastic tool for these applications.

But then, I'm a backend developer and Akka is more useful in that realm.

Play still needs some work IMO. It's great if you need the real-time steaming or a very performant web app but otherwise the lack of scaffolding and other features will really slow you down. I love it but it's still early for most uses. If you come in expecting Rails, you'll be disappointed. For instance, you need to write your own authentication layer, Play doesn't provide one.

OTOH, I was able to write a real-time cluster monitor in Play for our Akka-based backend and the streaming component took less time to write than the setting up the app—it's that straightforward.

IMO, if you need them, Play's other features more than make up for its less polished aspects and I fully expect those to get fixed in time, especially now that Typesafe has brought Play under its wing.


Have been using Play for a couple of years now.

In regard to missing components, the goal is not to provide the kitchen sink, but rather the tools to build your house.

This is where RoR, Django, etc. differ from Play. Play just provides the basic MVC stack along with essentials like, modular routing (AKA sub projects), excellent form generation and validation, http request wrappers (AKA action composition) for say, authentication ;-), an OK template layer (could be better, generics not supported), etc.

Agreed, Play will not give you the rapid fire dynamic language based framework development experience, not while getting your feet wet at any rate.

On the flipside, you've got the JVM ecosystem at your finger tips, a static type system backing your every (errant) move, blazing fast performance in production, and general zero-stress on deploy, the shit just works.


I'm certainly not complaining. The toolkit Play offers today more than makes up for any deficiencies IMO.

And yes, action composition is how we handle authentication. ;)


yeah i agree it may not be ultra-streamlined for rapid application development yet, but i don't have any critical work i need to do with it. to me it's really just an excuse to learn Akka. When I read about Netflix's async Java libraries (RxJava I think its called) I realized how the Java world really has an edge in making advanced web apps.

The more polished frameworks are better for building apps quickly, sure, but as a technically-oriented developer (I am full-stack, usually above DSL) I'm more interested in making my mark by understanding some useful persistence/eventing/concurrency stuff. If we can master this, I believe it will be the thing that finally brings a unified model to web app development that simplifies the entire end-to-end flow without requiring redundant code or limited choices about persistence scopes.

It's strange that they don't have some scaffolding and authentication features, but as you said they'll come in time. It's just odd because they are on the more trivial end of the toolset.

But that doesn't turn me off and maybe that's the point. It's not really meant for someone trying to make a CRUD app. Sure it should and will be able to do this well, but to me the JVM is the place where people are really trying to dig past CRUD and get to some novel data-and-event-driven apps.

Lucky for me this is something I'm learning as a hobby so I don't have to support production-level apps with it anyway. But yeah to me it feels like they've taken a lot of the attractive features of Django/RoR and backed them with some more serious language features. This may be a bit delusional since I guess Ruby & Python are legitimate in their own right, but.... well, as you can tell, I'm more excited for a JVM language to try to introduce stronger modern design patterns into the framework world. MVC on it's own is dead & done (er... solved), it's the extra unifying logic layers that are more important now.


Er, doesn't .NET have Reactive Extensions (and RxJS too) by none other than Erik Meijer? Where's the love? Even MS does something right sometimes....


Yep, the Erik Meijer wrote the original Rx while at Microsoft Research. Others have expanded his work: now there's RxJS, RxCpp, Rx.rb, Rx.py, etc.:

https://rx.codeplex.com/


heh here is where i need to apologize for not paying attention to .NET :(

i had a bad experience with it in my early days of webdev. moreso my fault than microsoft, but by the time it was over i was firmly lodged in the open source world.

Netflix has many other cool Java libs besides just RxJava, but by all means give credit where credit is due. Interesting to know


In my mind, Akka is the reason to use Scala right now.

Why? Akka works fine with Java, Kotlin, and most other JVM languages.


I've used Akka with Java. It certainly works but it's a bit of a pain just because Java is so verbose. Some features like the FSM helper aren't available in Java either.


It's nowhere as elegant when used in Java though.


I'm sure this is going to read as dickish, but I personally would be much more inclined to give a thoughtful response if your question showed some evidence of you having attempted to explore this question before asking other people to spoon feed you answers.


This is really one of those questions that _requires_ someone to spoon feed you the answer.

He is asking a Scala expert to describe how a port to JavaScript allows developers to take advantage of advanced Scala language features or tools. The alternative is spending hours working with Scala and coming up with the answer himself.

Being a discussion forum, I don't see why you have a problem giving away knowledge freely over HN.


I've got no problem at all answering people's questions, if you look at my comment history. I just think this particular question was both vague and lazily written. It's natural that a question requires more effort to answer than to ask, but a thoughtfully asked question clues potential answerers into what the asker already knows and has already attempted to do to educate themselves. Like "I know Scala is X and Y, but why would these things be useful on the browser side?" or if you don't know anything about Scala in the first place, "I read Wikipedia about Scala but didn't understand Z, could someone explain this?"


Anyway, the answer of his questions has definitely its place in this thread, so it's a good thing that someone is asking it.


You're looking for a sales pitch for Scala? I can't provide that, but I'd argue that having the same language on two rather different platforms is pretty cool/useful in any case.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

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

Search: