Programming languages that are actively developed on GitHub
github.com
github.com
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.
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...)
https://github.com/tbreloff/Plots.jl
I still prefer Gadfly, which does everything I need while looking great. (Only nitpick is slow time to first plot in each session.)
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?
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.
Everything we do is through GitHub issues and PRs.
Its little brother Scala.js is entirely developed on GitHub too, complete with language proposals and issue tracking. https://github.com/scala-js/scala-js
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?
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.
It's also really powerful for users to just add the lib, and be able to immediately parse any C# solution with the official tools, get semantic info, errors, autocomplete info etc as well as compile scripts. You can get a mini visual studio up and running in a day.
I can even get the source off github, and continue working in my favourite language. I even did this and changed the parser round (removed need for semicolons, make the language whitespace sensitive) just as a learning exercise. It also gave me a bigger appreciation of functional programming, and how one can use immutable data structures when writing a compiler.
Edit: one of the devs even used it to make real time C# [1] ala Bret Victor style.
NB. At some point Rebol parts will be replaced by Red so making it self hosted.
The wiki and the issues are also lacking from GitHub because they are on a Redmine server at 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?
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
Would you implement it using tags?
See http://daurnimator.com/post/153864402074/githubcomlua for more info
https://www.google.com/trends/explore?date=all&q=%2Fm%2F0dbj...
Granted, this was six years ago, so it's probably better now.
It can still be improved, but it's miles better than it was years ago.
My guess is that there are way too many moving pieces since Haxe needs many side projects to be the universal language it promises to be.
I was making a short evaluation of platforms for light 2d game/graphic development/prototyping. This being in the context of a fun project with very limited time - having kids and a C++/embedded day job and no intent to analyze core dumps in my spare time.
Haxe was on that list (together with e.g. lua/LÖVE and phaser.io/typescript) and I had high hopes for it. The number of target platforms would make it very attractive to transition from prototype to "publishable" game.
But what turned me down was the documentation and confusing state of competing libraries and target platforms.
E.g samples of a recommended tutorial were not working due to library changes (in very basic initialization functions). I found a solution but there was just too much friction .
So in the end, haxe lost in my evaluation because ... too much choice? I really wanted to have a predefined simple platform and just focus on gameplay.
If somebody has a recommendation for a haxe "starter kit" (compile target, libraries, docs, debugger/IDE/vim plugins ...) that allows to publish to all of desktop / html5 / mobile app then I'd be happy to hear about it. Maybe the next project...
I personally use it at work every day, plus I notice there are quite a few libraries (both open source and closed source) that are obviously compiled from coffeescript.
There is also work being done on a new version, CoffeeScript6, which will compile to ES6 and future ES standards. Check out the discussion at https://github.com/coffeescript6/discuss
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.
trivial example:
{ a: b
c: d }
guess what this transpiles to (hint: not an object)this is about as far from least surprise principle as you can get.
[0] http://coffeescript.org/#try:%7B%20%22a%22%3A%20%22b%22%2C%2...
http://coffeescript.org/#try:%7B%20a%3A%20b%2C%20c%3A%20d%20... - object
http://coffeescript.org/#try:%7B%20a%3A%20b%0A%20%20c%3A%20d... - bullshit
i understand why this happens, i just think it's a stupid edge case that shouldn't exist. and there are more like that in coffeescript.
But, I'd still take an edgecase over other JS quirkiness.
[2]: https://www.eclipse.org/community/eclipse_newsletter/2016/oc...
I'm sure the craving will go away with a few more days of messing.
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.
A star is a far lesser commitment than you imply - it's a glorified browser bookmark / facebook-thumbs-up.
[0] https://github.com/NixOS/nix [1] https://nixos.org/nix/manual/#ch-expression-language
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.
They are both great languages. I find Elixir to be more applicable to most of the work that I do (web work), personally. Phoenix is so much more polished than any of the web options in Go, I'd tend to make it my default. Go is where I'd reach when I needed to performance tune a very specific piece of a system generally. Can be a bit tedious for high level things.
edit: big list of lists: https://github.com/sindresorhus/awesome
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.
[0] https://en.wikipedia.org/wiki/Meta-circular_evaluator#Exampl...
It's actually a superset of a subset of Python and it's called RPython: http://rpython.readthedocs.io/en/latest/rpython.html
> it supposedly is faster than python's C implementation
Only if its JIT compiler gets a chance to trace and compile some code which is then executed often enough to make up for the overhead.
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.
Programming languages are for programmers - the kind of people that run programmer-friendly OSs/distros and figure out how to make their own packages when needed.
You don't need containers and virtual machines when you can simply "emerge dev-lang/pony" and be on your merry way.
Anyway, Pony is not the right example for the point you're trying to make because it already provides Gentoo, Arch, Debian, RedHat, macOS and Windows packages plus a Docker image.
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.
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.
(maybe omitted because they were only listing reference implementations?)
Anyone know why ?
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.