Fork me on GitHub

Contributions


Red’s ambitious goal is to build the world’s first full-stack language. To accelerate this process, we need to continue recruiting experts (and novices, too!) from every part of the software development spectrum. Dive right in and come say hi us on StackOverflow chat if you like, but here's a little background which might help...

You've probably heard of the term "Full-Stack Developer"But what is a full-stack Language, exactly?

Other languages (even impressive ones like Haxe) talk about having "one tool to rule them all"Red has that mindset too, pushed to the limit - it's a single executable that takes in your source files on any platform, and produces a packaged binary for any platform from any other. The tool doesn’t depend on anything besides what came with your OS...shipping as a single executable that’s smaller than a megabyte.

But that technical feat alone isn't enough to define Red's notion of a "Full-Stack Language". It's about the ability to bend and redefine the system to meet any need, while still working with literate code, and getting top-flight performance.  So what's being put in your hands is more like a "language construction set" than simply "a language". Whether you’re writing a device driver, a platform-native GUI application, or a shared library...Red lets you use a common syntax to code at the right level of abstraction for the task. 



Yes, you read that correctly. Imagine producing Android .APK files with no JDK or Eclipse and Eclipse plugins; just fire up your OS/X, Windows, or Linux machine and feed in the source. You probably won’t want to build an .EXE for a game you’ve written on your Nexus 5 and upload it to the cloud.  But soon you could do exactly that with Red...it’s cross-compilation done right.

Does this sound impossible? It's tricky, to be sure. But you can see a hefty part of it already working in Red’s alpha versions today. We often forget that only a couple of decades ago, mindblowing graphics demos were entered into competitions that fit in just 64 kilobytes. You don’t have to be that old-school to participate in Red (though it helps!)...you just have to have a sincere interest in the vision, and we will find work for you.

If you're impatient, skip down to the next section. But if you have a little time, watch this talk from the 2013 Recode conference in Montréal entitled "What is 
Red?", given by Red’s lead developer--Nenad Rakocevic. So far we have subtitles entered for English, Italian, Czech, and Dutch...but if you know another language we welcome more translations:





Joining us
  • As mentioned above, many Red developers hang out in the [Rebol and Red] StackOverflow chat, for both project planning and social conversation. There’s no reputation requirement to read the chat messages, but you do need 20 points to speak. Don’t be intimidated—that’s an easy score to get, you can get it in less than 24 hours with very little effort. It’s really just a spam control measure to see if you will have the due diligence to learn how to ask and answer questions in the system (once you do, you'll be hooked!) But if you’re having trouble after you’ve signed up getting those points for some reason, tweet a help request to @red-lang.
  • While the point system might seem a bit "elitist", for the most part we are big fans of the wiki-like nature and ability to improve and refine information on StackOverflow.  So if you have a question, it's often best to post it there.  But if that's not how you want to talk to us, we do keep a mailing-list (hosted on Google Groups)
  • Every open source project has the obligatory IRC channel, and so do we.  It's #red-lang on freenode. But it's nowhere near as active as the StackOverflow chat.
  • If you are a big drinker of the Kool-Aid (in the alternate universe where Amiga and BeOS computers run the world instead of Microsoft/Apple/Google) you can try connecting on AltME.  It's a realtime chat app where some of the inner circle meets, who won't use anything HTML/CSS/JavaScript-related.
  • When it comes to "show me the code", there is no better place to look these days than GitHub! We are https://github.com/red/red (and many thanks to GitHub for liking the Red project enough to swipe the "red" account from someone who was not using it and give it to us instead. :-P) We’re proud of the track record of fixing bug reports before moving on with new features, and welcome pull requests that fix issues. So if you wanted to grab one and help close it, that would be a great way to get started (but comment on the issue first, so we can warn you if someone is already on the case!)  See the contribution notes for the fact that our methodology is very different, and you will have to learn a bit of Rebol to get started.
  • It doesn't have to be too serious a commitment if your time is limited.  If you just want to sort of casually follow the progress, there is always, @red-lang on Twitter.
  • Cannot in good faith encourage people to use Facebook, but there's a group there too.  :-)

How to contribute?

There is a lot to do on a project like this, so all people willing to help are welcome. The project is still in its early stage of development, so do not expect a stable context, we are moving forward as fast as possible.

We've just begun using the "Trello" organizational tool to make a board of cards that are Ideas for Red Contributors.  So go look at that, as it will likely come to be updated more frequently than this page!

But speaking generally, if you want to contribute at the source code level:
  • We are at the bootstrapping phase, the whole compilation tool-chain is written in Rebol v2, so knowing this language is mandatory to make contribution to the compiler or linker. The good thing is: as Red will be very close to Rebol's syntax, your newly acquired knowledge will not be lost...and will help you be operational on Red at soon as it will be available.
  • The low-level Red/System DSL is at beta stage, but we still need:
    • testing: writing small apps, reporting issues, writing more unit tests,...
    • bindings to useful low-level libraries
    • larger applications (to help improve Red/System's programming-in-the-large abilities)
  • Install Git, learn how to use it (we can help for that), and open a Github account, then fork the Red project repository. When you are ready to propose some new source code or patches, send a pull request.
  • In order to apply for the Google Summer of Code 2014, we made a project ideas list.  But you don't have to be a college student to get involved with one of these!  Also they may trigger some thoughts about a 

But working on the codebase itself isn't the only help we need.  Notice that this website is not very fancy?  We're in the midst of migrating the content out of blogger and doing a custom rebuild, here's a test deployment of the scrape.  It's just a start...are you a HTML+CSS master, can you help us make it better?  Our hope is to shift the whole thing to be maintained in GitHub, the way ruby-lang does it.

You can also contribute by (roughly ordered by importance):
  • Proposing an embedded documentation system for Red/System runtime functions that could extract docstrings automatically from runtime source code.
  • Writing user manuals and tutorials for Red/System (step-by-step approach).
  • Writing online articles about Red project.
  • Giving us some feedback on Red/System language: tell us about what you like or don't like, ideally on the mailing-list, but if you prefer other channels, they are ok too.
  • Blogging and chatting about what you've learned about why Red (and Rebol) are great tools...and helping spread the word about what we are doing.
  • Proposing new ways to contribute: tell us about your ideas.

If you want to join the party, contact us through one of the preferred ways listed above, or drop an email to: contrib (at) red-lang.org

You can find the Paypal donation button and other donation methods under the Donations tab.

Published Work


Have you written a library or binding for Red?  If so, mention it in chat or Twitter it to @red-lang and we'll add it here...
  • Quick-Test unit testing framework for Red/System by Peter W A Wood.