
Programming languages that are actively developed on GitHub - loppers92
https://github.com/showcases/programming-languages
======
Xcelerate
Interesting to note that Julia comes in at #9 on the list, ahead of Scala,
Clojure, and Erlang. I still think it's the most underrated programming
language of the decade and hope that its usage continues to grow. I know it's
touted as a language for numerical computing and scientific research, but I
believe it would make a great general purpose language, perhaps even better
than Python.

Other than a few minor nitpicks, Julia is genuinely a joy to program in, and
the depth of its feature goes very far (multiple dispatch, homoiconicity,
genuine macros, sophisticated type system, runtime compilation via LLVM, clean
interfacing with C code). I can't say the same for other languages. You can
tell the language was _designed_ and not cobbled together in an ad hoc
fashion.

~~~
throwaway7645
Does it still not have a decent charting library in the stdlib? I look at it
every now and then (always looking for a good successor language for Python)
and last I recall you had to use MatPlotLib? Is that accurate? This is
stupidly simple in Matlab and should be here as well.

~~~
Xcelerate
"Other than a few minor nitpicks"

That would be a nope. Gadfly doesn't meet my needs and seems to have stalled
in development, so I use Matplotlib via PyPlot, but Matplotlib is a bit
maddening to work with. I heavily considered attempting my own plotting
library during grad school but couldn't find the time for it :/

(Although I will say that Convex.jl makes up for all the pain of not having a
good plotting library...)

~~~
throwaway7645
Thanks for the reply. I agree that Matplotlib is too complex. I'd abandon
Python today if Julia had simple charting in stdlib, but practically nothing
does outside .NET (sadly, I'm not a fan).

------
xwowsersx
Which of these projects has a truly open development process that takes place
in public and on Github?

Are most (or some) of these developed internally by whichever enterprise is
behind the language where developers at those companies "bake" commits and
then push them up after going through an internal code review process?

~~~
kibwen
Rust is one that's developed in the open. Commits to Rust's master branch must
be done through pull requests on Github. All PRs must be approved and reviewed
before being merged, and the approver cannot be the same person who submitted
the PR. Furthermore, major changes to the language must undergo an RFC
process, which is also coordinated via a Github repo:
[https://github.com/rust-lang/rfcs/](https://github.com/rust-lang/rfcs/) .

~~~
hueving
>Commits to Rust's master branch must be done through pull requests on Github.
All PRs must be approved and reviewed before being merged, and the approver
cannot be the same person who submitted the PR.

Any company that puts half an effort into open washing will follow these same
procedures, so they aren't safe indicators that the real decisions aren't made
behind closed doors ahead of time.

Paying close attention to things like the rfc process and approval process for
commit rights and whatnot usually tell the real story.

------
kiliankoe
In the Top 10 there are only two languages which are not self-hosted. Swift
with C++ and PHP with C.

I know the reasoning for Swift being that it's just not practical at this
point reimplementing everything in Swift, but looking at the others it seems
to be the norm to self-host your language at some point at least. Is there a
reason for this? Is it just a rite of passage or do the maintainers obviously
enjoy using the language itself as well?

Some languages chose to go this route right from the start (see Crystal for
example), others might (hopefully) pick this up later (I'd love for Swift to
be). Does anyone have any insight on this?

~~~
transfire
> In the Top 10 there are only two languages which are not self-hosted.

I don't think that is true. Ruby is written in C, Elixir is built on Erlang
and Clojure is built-on Java. In fact the only two I know for sure that are
fully self-hosted are Crystal and Julia.

~~~
OvermindDL1
Elixir has a little bit of Erlang in the compiler but at this point it would
be fairly trivial to replace it with pure elixir, and most of the compiler is
elixir already. However, Elixir does compile down to the EVM/BEAM (Erlang
Virtual Machine) without using Erlang as a go-through. I'd argue that Elixir
is 'mostly self-hosted'.

~~~
rvirding
Actually the Elixir compiler does NOT compile directly down to the BEAM, it
generates Erlang AST which is then passed into the Erlang compiler which then
generates the BEAM code. So most of the compiler is in Erlang. It also uses a
significant amount of the Erlang libraries as a base for its own libraries. So
calling it 'mostly self-hosted' is stretching a bit.

------
pmontra
Ruby's main repository is on a subversion server at svn.ruby-lang.or and
GitHub is a mirror. See [https://www.ruby-lang.org/en/community/ruby-
core/](https://www.ruby-lang.org/en/community/ruby-core/)

The wiki and the issues are also lacking from GitHub because they are on a
Redmine server at [https://bugs.ruby-lang.org/](https://bugs.ruby-lang.org/)

GitHub was written in Ruby (and Rails) so the issue tracker already existed
and they felt it wasn't worth migrating it. I can understand why they don't
feel like hosting all of their knowledge base on an external server when their
one works well and their main repository uses a different technology.

I don't understand why they're still on subversion. Maybe some custom build
tools they don't want to migrate to git?

~~~
sytse
The core team indicated they quite like the sequential numbering that SVN
gives them. I'm considering building it into GitLab as an option if they would
use it to host ruby :)

~~~
marcinkuzminski
Inspired by Mercurial, we built such functionality for GIT backend in
RhodeCode. So the numeric identifiers are used now for all 3 backends we
support. Kallithea has it also implemented for GIT.

I personally never like the meaningless hashes. Those numbers act as good
identifier of project size and progress. It quickly shows what kind of ranges
we're taking when doing a compare, or simply looking at files and seeing those
numbers.

It gives a lot of context. Just look how much more useful information a
compare shows r1808:39334bf35fdf...r1819:3e8df3a82397 vs
39334bf35fdf...3e8df3a82397

~~~
sytse
Cool! How do you deal with the issues raised in
[https://news.ycombinator.com/item?id=13310271](https://news.ycombinator.com/item?id=13310271)
?

------
daurnimator
FWIW I recently got Lua up onto github, though development does _not_ happen
on github. [https://github.com/lua/lua](https://github.com/lua/lua)

See
[http://daurnimator.com/post/153864402074/githubcomlua](http://daurnimator.com/post/153864402074/githubcomlua)
for more info

~~~
vesche
Also, Moonscript which compiles to Lua is developed on GitHub.

[https://github.com/leafo/moonscript](https://github.com/leafo/moonscript)

------
skj
Go is not developed on github. It is mirrored to github.

~~~
draegtun
Ditto for Perl -
[https://github.com/Perl/perl5](https://github.com/Perl/perl5)

------
pier25
Haxe was so promising but it remains largely ignored by the community.

[https://www.google.com/trends/explore?date=all&q=%2Fm%2F0dbj...](https://www.google.com/trends/explore?date=all&q=%2Fm%2F0dbjtf)

~~~
merpnderp
I'd love to know why haxe never caught on mainstream and what it's primary
drawbacks are.

~~~
bionsuba
When I first learned about and took a look at haxe, there was no good
documentation.

Granted, this was six years ago, so it's probably better now.

~~~
larsiusprime
It's better now:
[https://haxe.org/manual/introduction.html](https://haxe.org/manual/introduction.html)

It can still be improved, but it's miles better than it was years ago.

------
saghm
Is CoffeScript still used much? I used it a bit a few years back when I was
more interested in webdev and I liked it a lot, but I haven't really heard
anything about it for a while. The only CoffeScript code I've seen lately is
when I looked into finding the cause of a bug in a package for Atom several
months backend back; I don't think I know of anything besides the Atom
ecosystem that uses it nowadays, although I might just not be aware of other
projects using it.

~~~
pcr0
It remains very popular amongst Ruby/Rails users, presumably due to less
switching overhead between Ruby and CoffeeScript vs JavaScript.

ES6 has provided a lot of the features that people were hoping for in JS, and
CoffeeScript doesn't seem to be worth the effort transpiling from anymore. It
used to be the game in town for "better" JS, but TypeScript seems to have
taken that position firmly.

~~~
pmontra
CoffeScript is endorsed by DHH and so it's more of a first class citizen than
JavaScript in Rails. However it's not something you have to use. I never
really liked using it and I easily managed to keep using JavaScript in all
these years since Rails 3.1. I hope it's going to the deprecation bin soon but
I believe that Basecamp is using it a lot. DHH won't have added it to Rails if
that was not the case.

------
SimeVidas
They forgot to include JavaScript which is at
[https://github.com/tc39/ecma262](https://github.com/tc39/ecma262)

------
eternalban
Golo [1][2] caught my eye given its French provenance -- they usually have a
fresh/interesting perspective in engineering.

[1]: [http://golo-lang.org/](http://golo-lang.org/)

[2]:
[https://www.eclipse.org/community/eclipse_newsletter/2016/oc...](https://www.eclipse.org/community/eclipse_newsletter/2016/october/article2.php)

~~~
throwaway7645
OCaml is industrial strength, but golo looks just like a fun research project.
I guess OCaml started that way though.

------
tomcam
Missing: Imba, with 1,750 stars. Can't do a PR because stuck on an iPad right
now. [https://github.com/somebee/imba](https://github.com/somebee/imba)

------
arvinsim
I'm surprised that Coffeescript is still actively developed. Either there are
still lots of legacy code out there to work on or some people just really love
the language.

~~~
MrLeap
My last full time job was coffeescript. I could take or leave most of it, but
returning to C# for a hobby project has made me really miss the null soak ?
operator.

I'm sure the craving will go away with a few more days of messing.

~~~
jve
Rename it to "Null-conditional Operator" and you're good to go:
[https://msdn.microsoft.com/en-
us/library/dn986595.aspx?f=255...](https://msdn.microsoft.com/en-
us/library/dn986595.aspx?f=255&MSPPError=-2147217396)

~~~
MrLeap
Hey that's awesome! Thank you. I normally shield my eyes from the fancy new C#
things like PLINQ and others because my hobby projects tend to sit in the
Unity3d ghetto. Really cool to know they adopted that though.

------
catenthusiast
I’ve used Crystal a bit and like it a lot. It’s a little rough around the
edges, but I hope it gains more traction. It isn’t just for Rubyists either.

------
hueving
No offense, but this list is stupid in its current ordering if the order is
meant to imply anything. I heavily use rust, python, and go and have not
starred any of the repos because I have faith the current contributors and
don't need to helicopter over current issues/PRs.

Stars are for following a project because you need to pay attention to
breaking changes, bugs, and major feature releases. If you need to do that for
a programming language, the language is immature, garbage, or both IMO.

Also, stars!=contributors, so an entire team of 1000 devs (!) could use github
to fully develop a language and look worse off than many of these other
examples that hardly use github at all.

~~~
frou_dh
GitHub has a distinction between 'Starring' and 'Watching' a repo.

A star is a far lesser commitment than you imply - it's a glorified browser
bookmark / facebook-thumbs-up.

------
eddieone
Typical node being ninja stealth. I guess not technically a language on it's
own. [https://github.com/nodejs/node](https://github.com/nodejs/node)

~~~
makefu
Not quite the same but nix[0] and the nix expression language [1] is also
missing from the list.

[0] [https://github.com/NixOS/nix](https://github.com/NixOS/nix) [1]
[https://nixos.org/nix/manual/#ch-expression-
language](https://nixos.org/nix/manual/#ch-expression-language)

~~~
eddieone
Sure, why not. Give us a master list with all the things.

------
tbrugz
Also missing: Ceylon - currently with 191 stars

[https://github.com/ceylon/ceylon](https://github.com/ceylon/ceylon)

~~~
gregpardo
It has a nice homepage and good examples but what would a language like this
provide over something like Kotlin? Also, I had to dig down into the homepage
to find out that it compiled down to JVM byte code.

~~~
kitd
Well, you could turn it around since Ceylon is older than Kotlin ;)

There's not a huge difference between the syntaxes, but IMHO Ceylon integrates
better with the general JVM ecosystem. It has an excellent module system and
works well with OSGi too. Ceylon + Vert.x is a powerful combo.

~~~
gregpardo
I should have done my research. I assumed since Kotlin has large support it
has been around longer. Thanks!

~~~
kitd
I think Ceylon is about a year older, so it's not much. Both arose out of
dissatisfaction with Java 7 and below. Whether Java 8 has done enough to stem
that, idk. IMHO, nice though they are, there's not enough in the other
languages to justify changing ... yet. Javac must be one of the most battle-
hardened, mission-critical bits of code in existence.

------
20years
Wow Go has really gained traction. Coming from a Python, PHP, JavaScript
background I have been contemplating learning Go or Elixir this year. I am
drawn to Elixir because of the functional approach which is different than
what I am used to.

~~~
qaq
I have very similar background after playing with both decided to focus on
Elixir very pleasant language and all the power of BEAM/OTP.

~~~
20years
Good to hear. I am looking forwarding to diving into it.

------
aag
Missing Scheme Requests for Implementation (SRFI). We do standards work for
the many Scheme implementations in public using 151 Github repos and counting.
The home page is at srfi.schemers.org.

------
indosauros
Also soon, Python:
[https://www.python.org/dev/peps/pep-0512/](https://www.python.org/dev/peps/pep-0512/)

------
jfroma
Idea for gh: It will be a nice feature categories or even tags for repos. I
would like to see a similar list for databases for example, or even relational
database, blog engines, etc.

~~~
aeosynth
these are curated lists, here's one for nosql:
[https://github.com/showcases/nosql-
databases](https://github.com/showcases/nosql-databases)

edit: big list of lists:
[https://github.com/sindresorhus/awesome](https://github.com/sindresorhus/awesome)

------
bdcravens
Missing [https://github.com/lucee/lucee](https://github.com/lucee/lucee) (open
source version of ColdFusion)

------
wincent
Missing: Reason
([https://facebook.github.io/reason/](https://facebook.github.io/reason/))

~~~
gregpardo
It's kind of an ocaml wrapper though but good point.

------
jeremiep
Most of these languages are also bootstrapped!

I wonder when we'll see Swift written in Swift. And I wonder what kind of
monstrosity a PHP written in PHP would look like.

~~~
ben-schaaf
You can't practically bootstrap an interpreted language. That being said, I'd
be intrigued to see PHP run using multiple nested interpreters from different
language versions.

~~~
giaour
PyPy is Python implemented largely in Python, and it supposedly is faster than
python's C implementation.

~~~
shakna
Depends on what you define as interpreter, as RPython, the language that PyPy
uses, actually has a VirtualMachine, turning PyPy more into a bytecode
interpreted language... Which some people argue isn't a straight interpreted
language.

------
rdsubhas
On a side note, I found it more useful that the Weekly/Monthly trending
repositories are finally working again.

[https://github.com/trending?since=monthly](https://github.com/trending?since=monthly)

[https://github.com/trending?since=weekly](https://github.com/trending?since=weekly)

------
nimmer
Nim is very underrated. It's among the fastest, has a python-like syntax and
can compile to C, JavaScript and other languages.

------
jack9
Some of these languages (ponyc) are still...prototypes. Yeah you can get them
working for a limited set of "working" and with very specific
setup->configurations. If every language included a Docker or VM with it
already set up for some level of demo, I think a rate for adoption/learning
them would uptick.

~~~
shakna
I've used Pony in production. Not a language I would describe as just a
prototype, when the compiler is almost as advanced as Rust's.

As to the ease of compiling it... I've always compiled it from source, to
track some bleeding-edge features, and compiling ponyc is a breeze.

------
dep_b
Swift gets a lot of traction, good to see that. I hope they manage to get the
ABI and core language features stable in the next release. Updating a large
project always makes me a bit nervous and I'm tempted to blame problems on the
migration even when it often turns out they don't.

~~~
pjmlp
The benefit of first class platform languages is that it doesn't matter how
well devs like them.

Anyone that wishes to use the platform needs to either cope with it, or face
the extra level of pain of development effort by not using tools supported by
the OS vendor.

So with time at least Apple platforms will be a bit more safer, and enjoy an
ML inspired language.

~~~
dep_b
I program in a lot of languages that also have different styles (JavaScript,
F#, C#, Objective-C, Python and PHP) and I find Swift pretty much ticking all
the boxes that make it a nice language to me for the majority of tasks I like
to do. I would probably use it also if I could pick other languages outside of
Apple's choices.

So far from what I've tried F#, Swift and Python are my favorites depending on
the task at hand. C# and F# are valid options for iOS and macOS development
but I wouldn't take the extra complexity of another layer just to use a
different language.

------
hbbio
One of the missing languages is Opa, which has more than 1k stars and has been
on GitHub for years.

[https://github.com/mlstate/opalang](https://github.com/mlstate/opalang)

------
0xcde4c3db
C++: [https://github.com/cplusplus/draft](https://github.com/cplusplus/draft)

(maybe omitted because they were only listing reference implementations?)

------
mattsouth
I dont think groovy should be on this list. It seems actively developed but is
migrated to apache's archive and not apparently mirrored on github.

~~~
xitep
the page has been updated to point to the mirrored repo

------
nslindtner
Funny github doesn't recognise swift as an language, but shows it as c++. Same
for PHP, that is shown as C.

Anyone know why ?

~~~
roryrjb
It's showing what language most of the implementation is in.

------
jiyinyiyong
No ClojureScript, seriously?

------
nodesocket
Missing Node.js which has 30k stars and 5.4k forks... Second to Swift.

[https://github.com/nodejs/node](https://github.com/nodejs/node)

~~~
sgift
Probably, because Node.js is a runtime environment for Javascript and not a
programming language?

~~~
nodesocket
You probably may be right. ;-)

------
SFJulie
There must be more. They forgot mine!

[https://github.com/jul/confined](https://github.com/jul/confined)

Intended use? A safe PHP and a safe container for remote execution of code.

Leaving your computer used by customers arbitrarily within bounded predictable
resources making you less stressed and able to do capacity planning.

Lol. I am playing out of my league I hadn't spent much time on it and havent
much perspective for valuing it :)

Much more a POC. But if I found a sponsor, I can finish it in 1 month :)

I still need to document the syntax of the FORTH I made, and create storage (~
vars and functions). But after that, my roadmap is handling the concept of
integrity/units that will prove more efficient than typing.

Ex : if c is $/unit then comparing/adding it with something in €/l will abort.

