Curated list of Scala frameworks, libraries and software
github.comThis list would be a ton more useful if there were some metrics or indications for which libraries were included and why. Just as good, which were purposefully not included. And again, why.
This is pretty much the reason folks go with full stack frameworks fairly often. Trying to determine which of the testing modules to pair with which authentication module and which ... is annoying.
Agreed, it's pretty much the opposite of "curated" as it stands, especially since it's hard to believe the creators of the list studied carefully the sources of all these frameworks in order to determine their awesomeness.
I eagerly await the day when the 'curated' buzzword is no longer with us.
And "awesome".
A number of projects on the list (e.g. Blueeyes and Jerkson) are not even maintained any more.
The list is open source and community driven. It means that everyone can improve it and suggest edits. There has already been 19 pull requests with additions and deletions.
Currently the list is just a work in progress, but I am certain that after several iterations of pull requests it will be up to date and useful.
That just brings the entire "curated" aspect into question. I mean, sure it was curated. By the internet.
At the least, common metrics that can be applied to various offerings would be neat. Possibly a qualifier such that you can't add an item unless it meets a threshold on a few criteria.
And yet, the list still contains quite a few projects that are abandoned and zero annotations of why each project is listed there.
If you're going to claim this list is "curated" and the projects listed there are "awesome Scala", the least you can do is explain the criteria.
It would be useful to clarify what the requirements are for the "curated" list. Also, why each framework is recommended. Otherwise, it's just a list of stuff.
I've asked before but I'm going to try again: are there any resources out there for learning Scala that do not assume a Java background?
I have no Java experience (I'm primarily a Python developer) and therefore find most of the documentation difficult because I'm not at all familiar with the Java ecosystem (maven, jars, weird reverse-DNS naming convention for packages, JDBC, etc). Am I expected to first become a Java developer before I can even start with Scala?
I've been working with scala for about 1.5 years. My background previously was mostly Python & R for the previous 10 years although I had been working w/ Java a little here and there for about a year prior to switching to Scala.
I didn't encounter any difficulty picking up Scala - my main resources at the time were "Programming in Scala", poking around StackOverflow and my group's existing code base. If anything I think my background with Python & R helped as I was already familiar with a lot of the functional-ish approaches from those languages (e.g. lambdas, maps, etc)
As Kev009 pointed out, using something like IntelliJ helped immensely as well as it handles a lot of the boilerplate-y stuff.
Nice. That's very similar to my background (R & Python). There's no existing codebase though, we are doing everything greenfield in Scala.
I'll give IntelliJ another try, thanks.
Coursera has a couple of Scala courses: try the introductory one "Functional Programming Principles in Scala". I'm not sure when it will be offered next, but they've given it a few times already. It doesn't require any Java knowledge.
Thanks for the suggestion, I looked through that Coursera course. I'm reasonably comfortable with the language fundamentals, it's more about the toolchain and using third-party libraries like the Slick ORM. I find the quickstart inscrutable (maybe it's just me).
As a counter example, I was up and running with Go in 15 minutes.
Slick in my experience is pretty unusable even for experienced Scalaphiles. I couldn't use it until I wrote a wrapper for it:
https://github.com/zenbowman/slickint
And even then, I think I by far prefer raw SQL to Slick. If you stick to the standard Scala libraries, they are pretty well designed, and I second taking the Functional progamming in scala course. There is some discussion of the toolchain in Lecture 0 of that course.
Interesting, thank you. Do you have any ORMs that you recommend above Slick? I think raw SQL is probably a deal-breaker for us.
Nope, Slick is the best one that I ran across for Scala.
I just found writing the classes painful so I wrote slickint to deal with generation of classes, and it was reasonable after that.
The things you identified you will need to know and would be proficient knowing them. JDBC not so much but depending on the libs you use, you could be using it indirectly. Same story with maven, knowing how to look up stuff on mavencentral will help but beyond that you don't need to care.
Knowing a little Java would help when calling into Java libs but an IDE like IntelliJ that can help you understand conversions would do well too.
A lot of people convert from languages like Perl and Ruby without tremendous difficulty. I can only recommend diving in to make a real assessment, prejudices and phobias will otherwise prevent understanding.
It's interesting to see that most of these libraries are either web services or language support. Are client side apps for the (Oracle) JVM definitively over?
I wish people would stop creating scala libraries and frameworks, it just fragments the java community. Scala was a short term hack to fill in the gaps until Java has lambdas. Java does now and there's no need to keep scala separate, the syntactical sugar to remove some of the boilerplate to java is just not worth the fragmenting effect. We've seen much the same thing with python 2 and python 3, which differ in ways similar to java. We need to delete scala and delete python 3 and all get back to solving real problems.
> Scala was a short term hack to fill in the gaps until Java has lambdas.
If you think this is true and not just trolling, you are extremely ignorant about Scala's history, Scala's aims and Scala's features. Scala is so much more than a better Java, this statement is beyond ridiculous.