Message Boards Message Boards

GitLink now open source and on Github

Wolfram Research does a lot with open source. We use many open source packages, and we frequently make contributions to those packages and send them back to the communities that created them. But I've often wished that we did a little more with creating our own open source software.

So, it's time for me to put up or shut up and open source a major project I've been working on for WRI. If you've been to the last two Wolfram Technology conferences [YouTube],

enter image description here

you know that I've been working on a connection technology from the Wolfram Language to git which I've been calling GitLink. Well, GitLink is now open source and you can get it on Github.

Why do this, and why do I care? For one, Wolfram Language is a real development system used by folks all over the world, but sometimes those folks lack the benefit of good examples to work from. There are tons of examples in the documentation of short-form code, but not as much as I would like for how long-form coding in the Wolfram Language should be done. GitLink provides some interesting examples of this which others might follow (and I've already gotten feedback on this!). Things like how to write a particular kind of LibraryLink package robustly. Or how to do some currently-under-documented things like extending the autocompletion mechanisms or building paclets. Or even more basic things like how to structure code, and how to use the notebook front end's package editor to do nontrivial package development. And if you look closely, you'll even see some ideas I'm still developing for writing unit tests which might show up in a future version.

For another, GitLink is slated to be a first-class feature of the Wolfram Language, but it's not quite ready yet. The things that work are pretty robust, but there's enough unimplemented functionality (like missing authentication methods, diffing functionality, config functionality) that it still won't make it into the Wolfram Language officially for a bit. But I'd love for people to see it. And I'd like to hear your inputs. You might have some interesting ideas I haven't thought of. You might even have the wherewithal to implement them, which I certainly won't turn down.

Finally, I'm hoping to start a trend. I don't think it's viable to see all of Mathematica become open source. Wolfram pays me for my services, and I'd like for the company to continue to be able to do that. But companies are finding ways these days to contribute intellectual property to the public good and still remain viable. I see a lot of code at Wolfram that I think our community would find very instructive or useful to have access to, and which really wouldn't hurt us at all by releasing. So, I'm going to work with other development groups through the company and see if the release of GitLink can be a pattern for more open source releases in the future...both of things which are in development and things which have been shipping for a while.

But for now, GitLink is a thing. Go check it out.

enter image description here

POSTED BY: John Fultz
6 Replies
Posted 8 years ago

Hi John,

When you just look at the amount of freely available Mathematica code here and elsewhere, there's no denying that Wolfram Research is in part an Open Source venture. I think what you are doing could be an interesting experiment for Apple / Windows users, and inspirational. They might later decide to try out Linus Torvalds' other famous project, Linux. I doubt that I'm alone in thinking that Linux command line utilities are good enough for using Git, but I also know from experience that some operating systems have forcibly moved away from anything TUI, and have crippled command line functionality.

In some of my recent research, I have been investigating PGP / GPG [1], as well the idea of a "Trust Ring". It's possible to sign Git commits using a combination of the Git "tag" function and GPG. For example:

Signing

As a private company, Wolfram Research already has it's own internal "Web of Trust" associated with a privatized privilege system that is not going to incorporate every last end-user. If we plan to make it easier to go between FOSS and Mathematica, it may be important to work on a trust model, if only for educational purposes.

My current task involves porting between languages, so interested to see what will become of this project.

Brad

  1. https://wiki.archlinux.org/index.php/GnuPG
POSTED BY: Brad Klee

@Daniel George

I'm also very interested in knowing more about the "microkernel" project, and most specially, if the microkernel is being thought for microcontrollers (similar to the micropython project): ATmega (arduino), ARM Cortex (Teensy), ESP's (8266, 32), etc..

If such a project exists, I would love to participate on an eventual beta testing phase.

Considering that there's a new chip in town every year (or couple of years), having this project open would definitely facilitate its adoption...(and aid on the approaching of our beloved software to the 21st century software business model...)

POSTED BY: Pedro Fonseca

This is great! Thank you for taking the initiative. I'm looking forward to seeing more of these projects and contributing to them.

I recall hearing about plans to open-source a "microkernel" of the Wolfram Language at the recent WTC. Are the low-level functional programming and pattern matching tools going to be included in this? And do you know when this will be released?

POSTED BY: Daniel George

While checking out GitLink, I noticed that there is also a Draw application at:

https://github.com/WolframResearch/draw

Wow. It is excellent both as an example of GUI programming and also to use it.

Was this announced somewhere?

POSTED BY: Gustavo Delfino

No, it wasn't properly announced, so let me talk about it here.

Along with official bits of Wolfram Language, we're also trying to pull together interesting things which will probably never be a part of Wolfram Language, but are notable in their own right. Draw was created by Tim Shedelbower, a colleague of mine, for his own personal use. When he showed it to me, I told him he had to take it open source so that other people could see what he's done, and when he did, we decided to fork a version of it into the Wolfram Research Github account to raise its exposure. Thanks to Tim for a truly excellent bit of engineering.

POSTED BY: John Fultz

Thank you for sharing this package. I am very happy to read these comments.

Indeed, GitLink has been quite useful to me as a model of a large LibraryLink application. I wasn't sure about trying to build paclets, but given your comments I am going try to transition some of my packages to that format, as an experiment. We really need more support for typical package development tasks!

I am very happy to see these comments about open source. I always believed that making some parts of Mathematica open source would benefit both us, its users, and Wolfram as a company. And while I admit that I am very naive about the business side of things due to lack of any experience, I can't see any downsides. Mathematica implements many methods which are well known and published. Why not show us a good Wolfram Language implementation? We need (to buy) Mathematica to use it anyway. If users have access to the code, they can understand it better, and in some cases they will even improve it, or fix bugs in it. I do wonder if this happens often with Maple, which is said to have most of its source code inspectable. It does happen occasionally on Mathematica.StackExchange when people go "spelunking", but usually only in relatively trivial and boring cases. If some of the code were truly open, and even encouraged to be forked (e.g. placed on GitHub), maybe we would see more substantial user-contributed improvements.

POSTED BY: Szabolcs Horvát
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract