
JavaScript is the most popular language on GitHub - Rauchg
https://github.com/languages/JavaScript
======
po
As other people are saying, this has a lot to do with almost all projects
relying somewhat on Javascript.

It also has a lot to do with there being very poor ways of managing
dependencies in Javascript. For instance, in python there is pip/pypi and in
ruby there are gems. Javascript doesn't yet have that. I don't check in all of
my dependent libs into my repo. I do check in the Javascript libs though.

There is npm (<http://npmjs.org/>) but it requires node and for most people,
they don't want to bother. They just manually change the name of the file or
directory and check in a new version.

~~~
ra
Agreed. some of my projects are ~50% Javascript, but in fact most of that is
jQuery, jQuery UI, canvas.js, json2.js etc.

------
JeffJenkins
Sure, but I bet it gets pulled in a lot where projects really aren't JS
projects. For example, my python mongoDB library is "25% javascript" but it's
all in the generated documentation:
<https://github.com/jeffjenkins/MongoAlchemy/graphs/languages>

~~~
technoweenie
For what it's worth, we try to exclude popular projects (like jQuery,
Prototype, or the wysiwyg textareas), as well as other common directories like
'vendor'.

~~~
thraxil
I think you need to work on this a bit more. It seems that a very large
percentage of the web apps I work on, which include a few JavaScript libraries
but are primarily written in Perl or Python get classified by Github as
"JavaScript". I've created a short list of 15 just from my personal and work
repos: <https://gist.github.com/734979>

~~~
technoweenie
I added mochikit to our list of exceptions, and now all of your projects are
Python, except rollo. Rollo uses a 'highlighter' js lib which still counts as
JS. It's one thing to exclude popular libs with names like "MochiKit" or
"jQuery". "Highlighter" is a pretty generic name though, and I feel iffy about
adding it. FWIW, here's our current list of exceptions:

    
    
        yui
        tiny_mce
        ckeditor
        redbox
        active_scaffold
        rico_corner
        code_highlighter
        vendor
        bundle
        cache
        assets
        bookends
        dojo
        extjs
        sencha
        mochikit
        prototype(.*)\.js
        mootools\.js
        jquery([^.]*)\.js
        jquery\-\d\.\d\.\d(\.min)?\.js
        effects\.js
        controls\.js
        dragdrop\.js
    

The last 3 are generic names too, but they happen to match common js files in
most Rails projects...

------
marcuswestin
I viewed <http://github.com/languages> a couple of hours ago, and ruby was
still at #1. Very cool that js is now on top of the hill!

(for the disbelievers: it's really not that hard to fathom, especially
considering the recent growth of legitimate JavaScript runtime environments)

Keep rocking the boat JS! We need it

------
drgath
Wow, lots of hate. I guess I'll be the first to say... Nice work JavaScript.
Congrats!

~~~
FlemishBeeCycle
I don't know if JavaScript had much to do with its own success. I would say
that JavaScript has succeeded, in spite of itself, due to increasing focus on
web applications.

Not to imply JavaScript is a "bad" language - I just don't think people are
rushing out code in JavaScript because of the language itself, but because the
position that it is in.

~~~
drgath
JavaScript had everything to do with its own success. It was a language
written specifically to be run inside the browser.

People should rush out to code in any language because of the capabilities of
that language. It is silly to focus on minor syntactical differences as the
determining factor for a language. I happen to like prototypal languages quite
a bit, despite some oddities languages like JS & Io have.

Religious wars only pop up when you have a dozen languages/frameworks that can
all do the exact same thing, just written with a different syntax, so people
come up with superficial reasons to differentiate something. In the grand
scheme of web apps, Python == PHP == Ruby. That certainly won't be a popular
thing to say, but it is true when you look at the capabilities of each
compared to other types of languages and approaches to programming.

I choose JS because it is the only language that runs in the browser as well
as the server (<\--- Killer feature). It is the only one that has that unique
capability. If it weren't for JS, you'd be writing Java applets while wanting
to shoot your brains out. JS created the position it is in by giving the web a
native programming language.

~~~
FlemishBeeCycle
> I choose JS because it is the only language that runs in the browser as well
> as the server (<\--- Killer feature)

That's what I was getting at - that JavaScript is popular because of the
position that it is in ( _not_ because of the ECMAScript specification).
JavaScript could have been a number of languages, the fact that it happened to
be JavaScript, is more a result of a externalities than the language itself.

JavaScript was originally developed on an incredibly short development cycle,
so I would be very surprised if we couldn't create a better language for the
browser after 15 years of experience.

As far as JS on the server - I don't really see the advantage (other than it's
a language that people already know). Having written several Node apps, using
a single language didn't strike me as a "killer feature" (especially since
their usage is fairly distinct - manipulating the DOM vs manipulating data
stores and what have you). Different tools for different problems. I don't see
JS as being superior for solving server-side problems.

~~~
drgath
"JavaScript could have been a number of languages, the fact that it happened
to be JavaScript, is more a result of a externalities than the language
itself."

If you are looking for The Perfect Programming Language, you are going to be
waiting for a looooong time. They all have flaws. For everyone who loves a
specific language, there's someone else out there that loathes it.

"I would be very surprised if we couldn't create a better language for the
browser after 15 years of experience."

We probably could, but why? JS is very simple for beginners, expressive enough
for experts, and extensible for everyone in between. Don't like JS? Fine, use
any other language that compiles to it. Don't like any of those? Write you
own, it's really easy.

"I don't see JS as being superior for solving server-side problems"

In the server-side scripting language world, JS & Node is by far the easiest
way to do concurrent servers. That's at least one area is is superior at.
There are also more JS coders than any other language on the planet, so that
frees up a lot of people who are currently duplicating work by writing the
same functionality for a dozen different languages.

~~~
FlemishBeeCycle
You seem to be missing my point - which is not to criticize JS (I use JS
frequently, and actually _like_ a lot of it) - I'm merely suggesting that its
success is not due to the language itself and its merits, but to the domain
that it has found popularity in, the browser. Were there a competing language
to JS (not Flash, not Java - but a comparable language for scripting the DOM),
we might have a real comparison. How can you really gauge 'popularity' when
there is no real choice?

------
futuremint
I would like to point out that popularity has nothing to do with software
quality. I've found the > popularity == < library quality.

See Ruby: as it got more popular in the past decade, your chances of any
random gem working in a production setup has approached 0.

~~~
tod
Do you mean a random gem working within a Rails app? That's a bit different,
Rails conventions have changed significantly. A random gem might be an old gem
that used old conventions, doesn't mean it wasn't quality at the time.

~~~
futuremint
Maybe I should have said any random combination of gems. Monkey-patching is
fine for a small-ish ruby script, but start combining ActiveSupport with some
others and you quickly run into weird order-depending loading issues because
of the Monkey-patching.

I've found namespacing to be the solution and it doesn't really cause me too
much friction when coding either.

~~~
FooBarWidget
In the past 3 years that I've used Rails I've used tons of gems. I've seen
exactly 1 gem in total that was messed up by the presence of ActiveSupport.
I'm really wondering where you got the impression from that monkey patching is
such a big problem.

------
InnocentB
A look at <https://github.com/languages> yields some interesting results. I
see VimL there at #10. Is this all just people backing up their personal vim
configs, or is there actually anything interesting happening in VimL (seems
unlikely)?

Maybe a better question: is GitHub just tracking the number of repositories
that contain that language to gauge its popularity? That doesn't seem like the
best metric.

------
wanderr
How much of this is skewed by every web product likely having its own copy of
a large framework/library such as jQuery?

------
nikcub
I wonder what the most popular license is. My anecdotal evidence suggests that
the beer licenses have become more popular than the GPL licenses, especially
for web projects (MIT, BSD etc.)

