Skip to content

nickmccurdy/rose

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Rose

GitHub Workflow Status Test Coverage Code Climate

An interactive, technical, and openly editable Rosetta Stone for developers.

Think of it as an interactive Rosetta Stone table, or a technical thesaurus for looking up code examples across different technologies. Rose makes it easy to learn how to do things you're used to with new technologies.

Why?

Existing question/answer sites like Stack Overflow are awesome for getting answers to most technical questions and keeping them in one place. However, the question/answer format isn't always the best for figuring out how to use features across different technologies.

For example, let's say you wanted to explain how to use a certain feature across ten different programming languages, relative to how it works in another language that your readers already know. If you were trying to write individual answers on a traditional question/answer site for every possible combination of a language to translate from (10 choices) and a language to translate to (9 choices), you would need to write 90 (10 * 9) answers to cover them all! That's a lot of combinatorial explosion.

Fortunately, Rosetta Stone tables (such as the Pacman Rosetta) are fantastic for showing how to use features across many different technologies. However, they're often hidden across many different wikis and websites, and their inner contents aren't easy to search through unless you already know where the table you need is. While they're dense in information, they aren't nearly as easy to search for in one place like answers on a question/answer site are.

Rose is meant to bring the best of both worlds. With Rose, you can describe how to use a feature once in all ten languages (like with a Rosetta Stone table), except that anyone could visit Rose and easily search between the code examples you provided without having to visit your specific table first.

Goals

  • Translate methods, functions, commands, concepts, etc. across programming languages, command line tools, libraries, and frameworks.
  • Store many different kinds of technologies, features, and examples in a very generalized and searchable way.
  • Fast searches for looking up information by the name of a feature or with source code examples.
  • Only provide detailed information about how features differ in different technologies. The technologies themselves already document how their features work, and Rose should link to third-party documentation where appropriate.

What Rose is not

  • A tutorial.
  • A language-specific reference.
  • A programming chrestomathy site. Rose should provide consice technical information on how to use specific features across different languages instead of providing ports of example programs across different languages.
  • A place for learning about concepts that you don't already understand in at least one known technology. Rose should link to you at least one good resource for understanding a feature example in at least one technology, however.

Inspirations

About

An interactive, technical, and openly editable Rosetta Stone for developers.

Resources

License

Stars

Watchers

Forks

Sponsor this project