Interesting to note that Spring sees a yearly surge in interest between February and April. Are you sure you cleaned your data correctly, or did you just search by keyword?
@jasonkester: the dataset only spans 14 months, so i'm not quite sure what you mean by yearly surge in interest. there are very definite horizontal seasonal fluctuations, though, it's true.
as to the second question, matching is simply by keyword, or at least the regular expression equivalent.
March to May is a spring (season). If you see a surge in interest between February and April it might mean that Spring (framework) has nothing to do with it.
Ah, ok: the argument is that HN members will be mentioning "spring" with increasing frequency during the matching season of time?
To answer then, no. The data is not cleansed for those purposes, so discount the Spring data as you will.
FWIW, a regular expression match for season returns 1940 results across the entire HN dataset, which spans 49 months, meaning that the number of context independent mentions of that word are ~40 month.
It's interesting how Django manages to get good mention on HN. But the fact is, there are very few job opportunities for Django developers compared to, say, Rails developers. Even on the supply side, its difficult to find Django developers for startups.
Perhaps its because for one we could hire anyone with Python skills or secondly anyone that is proficient in computer science can usually pick up Python quickly.
I don't think you could just hire a Python programmer who has never done web programming. And even if he has some experience in web programming, Django has its own share of learning curve to master.
Edit: Another point to note is, Indeed aggregates traditional job boards where Rails jobs are less posted. Rails job postings are usually done on Github job board, 37signals job board and many Ruby oriented job boards like toprubyjobs.com.
I think the languages that's going to win is the one providing the best value and the easy adoption. I tend to go for nodejs. How many times a language is mentioned does not necessarily reflect its power or its capabilities.
Although Spring and Rails do similar things I think they serve two different roles. A more accurate comparison would be something like the Play! Framework, which would barely register (unfortunately)
All web frameworks do similar things. The important point is what kind of thing each of the doesn't do. Spring doesn't avoid writing tons of boilerplate, specially compared to Rails.
At its core, Spring provides some niceties such as dependency injection, resource location, validation, and data binding, all for POJOs: you can use these features in a regular app or in a web app. For other features such as persistence, you can see Spring as a meta-framework wrapping other frameworks (e.g., hibernate).
Spring Framework thus go way beyond web frameworks.
Disclaimer: I'm not a huge fan of Spring and I don't like "meta-frameworks", but to qualify it as a "web framework" is diminutive at best.
Sorry. I have only used Spring in web-application contexts. The app I am currently maintaining (and going bald because of it) is not a shiny example of elegance and probably doesn't make Spring look particularly good either.
Just as a side note, I wouldn't consider Java for web applications (because we have much better experiences with Django and Rails), but I wouldn't rule it out as easily for desktop apps. And I am also looking for an excuse to play more with Clojure.
A lot of Spring code predates the rising popularity of "convention over configuration" (thank you, Rails, for getting this so widely accepted), so if you're in one of those code bases, you're going to see a LOT of the Java+XML verbosity that led to everyone lampooning Java.
In exchange, you get a ton of flexibility. You probably only need 5-10% of it, but that 5-10% is NICE. The ability to do clean testing of your data tier, for instance, is glorious when you first experience it. Goodbye, horrible ResultSet mocks!
If you're lucky enough to work on a codebase that fully embraces autowiring and all the spiffy new annotations, then you get all this awesome stuff, but with virtually none of the crazy XML configuration stuff that makes it impossible to just trace the source and figure out what the hell is going on.
For Java web frameworks, Play! http://www.playframework.org/ is definitely on the top of my list for green-field projects. I've only used it on small things so far, but it really seems to have learned the lessons of Django and Rails.
https://github.com/weavejester/compojure is on my To-Try list for Clojure stuff. Until I get around to it, I'm just monitoring buzz on the web, but so far it's been mostly positive.
For a true lightweight modern web framework in Java that's based on Guice, checkout my little embedded web framework for the next generation of Hadoop.
No XML, no YAML, no config/properties files, no templates. Everything is statically checked by java compiler with instant feedbacks in an IDE. It's better than rails :)