Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
We Analyzed 30K GitHub Projects: Top Libraries in Java, JS, Ruby (takipiblog.com)
71 points by rubygnome on Nov 20, 2013 | hide | past | favorite | 33 comments


>TDD is huge in Java and Ruby ...40-50% ...JavaScript’s percentage of projects using a testing framework is considerably lower, coming in at 25%.

I doubt it is even that high. Sadly, many of the JS projects I look at have a tests folder and one test in it that usually amounts to:

equal("tests written", false)


I think the conclusion for Java is a stretch as well. Some sort of unit testing is probably standard in BigCo, TDD is not (I'm excluding the 'hot' trend-setting BigCos obviously).


Ruby ones are a bit pointless, rake, jquery-rails, sqlite3, uglifier, sass-rails and coffee-rails are all rails defaults.


It would be more pointless if they were all exactly the same, but they're not. Clearly a good chunk of developers are interested in decoupling Rails from the defaults.


It seems odd that there are more projects using Rails than Rake. What kind of Rails project would not use Rake?


What about the web and client-side JS?

From what I understand the list of JavaScript libraries is for node.js as it doesn't even include jQuery.


That is odd.

Grunt on Github: 6852 stars, 740 forks

jQuery on Github: 26,238 stars, 5,563 forks

And yet, "leaning towards those that have been favorited the most by developers". I'm confused on the results of what I think is their selection criteria.

Another thing, Javascript first appeared in early versions in 1995. Ruby on Rails appeared in 2004. But Javascript is still in the early days of it being a language? I wonder if that's in reference to recent growth in popularity and/or usage?


Repeat after me: Ruby on Rails is not a language. Ruby on Rails is not a language. Ruby on Rails is not a language.

Ruby appeared in 1995.


Although true, does not alter my point.

Also, I don't see that I claimed Rails was a language, but I can see how it can seem I implied that.


"Another thing, Ruby first appeared in early versions in 1995. Node.js appeared in 2009. But Ruby is still in the early days of it being a language? I wonder if that's in reference to recent growth in popularity and/or usage?"


I'm failing to understand your point.


I was confused too but, I think they analyzed 10,000 projects and the components they use. So, in conclusion a lot of JS projects use grunt.


A lot of JS projects require jQuery as well, or include it in some way.

I'm thinking my confusion is because, to me anyway, the description seems to suggest one thing while their list suggests something different.


jquery is at number 19 on the full list with 197 of 10,000 projects using it.

https://docs.google.com/spreadsheet/ccc?key=0Alceaf46X4GPdHh...

However, I have no idea how they chose the projects or arrived at this number. Perhaps they missed all the projects that include jquery via CDN.


You're right, there it is. Although I see it at number 26.

I would be interested in more details how they came to that number as I'm somewhat confused by the list I see.


I thought rails used rake, so how is the rake # < rails #?


It can be decoupled.


That's true, it can be decoupled. But not in the direction leaving Rake with less percentage than Rails. The authors could've deduped the results where Rake is being used by Rails, but I'm not sure they did.


> As a result we see 50% more frameworks used in JavaScript than in Ruby and Java in the top 100, echoing that fact it’s still early days for the language.

I think this shows more how flexible Javascript is than that it's still early days (the language is 16 years old, only two years younger than Java). Many different frameworks have very different opinions; some are opinionated and some aren't; many of the libraries available to JS through, e.g., npm and bower are tiny little tools. That's the huge difference between a typical Javascript library and a typical Java library: many of the non-framework libraries included by Javascript projects are extremely small, modular, single-concern interfaces. So of course you'll see what seems like fragmenting.

But it's not, really.


While JS is old, node.js, which spans many projects on GitHub, is a relatively new architecture, which has only gained traction in the last couple of years. This stands in comparison to Java, which has a much higher degree of consolidation due to its maturity as a server-side language (this is also true to an extend with Ruby).


I'm not being pedantic for its own sake, but I have noticed many people using terms that have definitions for other things that already have terms defining them. Esp. the term architecture.

node.js is not an architecture, is a "software platform" for running a "language" (javascript) server-side.

An examples of a computer architectures are x86, amd64, MIPS, ARM, SPARC, POWER.

"For example, at a high level, computer architecture may be concerned with how the central processing unit (CPU) acts and how it uses computer memory." [http://en.wikipedia.org/wiki/Computer_architecture]

Now there also is a software architecture which is the abstract design of a system: "The word software architecture intuitively denotes the high level structures of a software system. It can be defined as the set of structures needed to reason about the software system, which comprise the software elements, the relations between them, and the properties of both elements and relations" [http://en.wikipedia.org/wiki/Software_architecture]

But node.js is neither of these.


Indeed. However, the typical accepted JS style, especially with NPM modules, is lots of tiny dependencies instead of a few large God dependencies.

Which will lead to what looks like fragmentation, but really isn't.


This seems terribly biased towards more recent projects. Older projects might be used WAY more than the ones on Github, but because they started their lives on some other code hosting service, they will be left out of this evaluation.


The results are biased towards favorited projects because it's a good indication of their perceived importance by the GitHub community.


> Here are The Top 100 Libraries in Java, JS, & Ruby

Probably should've used the serial comma to make it more clear. At first I thought the top project language was Java and the second were projects that used both JS and Ruby together.


What about Python? pypi is a mess...


Ask the https://crate.io guys/gals to look into it. :)


Thanks for that, seems cool. Never heard of this before.


Their auth system appears to still be hosed, though, so I don't know how much attention the project is getting.


Looks good. no love for python though ?


Funny, what is described as potential problems for Javascript I see as benefits.


mockingito?


It's a typo. The complete list linked to at the end has it as "mockito-all"




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

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

Search: