Hacker News new | ask | show | jobs
by warfangle 4590 days ago
> 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.

1 comments

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.