I'm working on modernizing Rosetta Code's infrastructure. Starting with communications. Please accept this time-limited open invite to RC's Slack.. --Michael Mol (talk) 20:59, 30 May 2020 (UTC)


From Rosetta Code
This programming language may be used to instruct a computer to perform a task.
Official website
See Also:

Listed below are all of the tasks on Rosetta Code which have been solved using Beads.
Your Help Needed
If you know Beads, please write code for some of the tasks not implemented in Beads.
Try this language on Codepad.

Today's software development stack uses too many languages, tools, and is comprised of too many layers. Even a small project might need to use Apache, MySQL, HTML, CSS, Javascript, and various frameworks like jQuery and React.

The Beads project is a daring attempt to generate a new language that will replace the current popular toolchain stack of HTML/CSS/Javascript/+Frameworks+Database, with a single language.

The Beads language has the following properties that set it apart from JavaScript and most other commonly used languages:

  1. It can run both forwards and in reverse. Some people call this time travel debugging. The ability to reverse the model to any prior point in time, and see what the screen looked like is immense value during debugging. Some languages are starting this feature in limited ways, but because of the special design of our language, we are the only system that can include this feature in shipping products, so your customers will be able to submit a “breadcrumbs” file and thus end the scourge of “cannot reproduce this problem” reports which so plague quality assurance teams. It is so bad in large companies that customers using their software have no expectation that anything will ever get fixed.
  2. Beads uses no highly abstract concepts. It is extremely concrete and requires no math beyond junior high school algebra. It presents a very simplified, elemental model of computation. The operations are few in number and it avoids heavy use of punctuation and fancy operators.
  3. Beads incorporates a graph database inside the language. Graph databases are considered more powerful and modern than relational databases, and provide a very flexible structure that permits programs to be augmented gracefully without damaging production software, yielding an update-friendly language.
  4. It uses a modular architecture that allows people to plug in component code from others without pulling a big chain of dependencies. Beads is designed to help create a world of interchangeable software parts, because the components can handle events and draw, allowing easy integration.
  5. Beads incorporates a concept called the Loom, which is a way of viewing serialized events in such a way that allows different code to filter and absorb relevant events, while letting others pass through to other modules that would use them.
  6. Beads incorporates several kinds of deduction, where the system tracks the usage of variables, and if a drawing chunk uses a particular variable, and that variable changes, that part of the screen is automatically refreshed. Beads has an ability to track mutation of the state, all automatically.
  7. Beads has a much more predictable and usable layout model than CSS, which has a nasty habit of jumping things around the screen and is a source of great frustration. You can learn Beads in less time than it takes to learn just CSS.
  8. Beads is a single language for web, desktop and mobile devices. It lets your code last a long time, and move to the most important platforms.
  9. Beads has many conveniences and features, all designed around preventing error when possible, and detecting error quickly when it can’t be prevented ahead of time. To achieve this, it uses a protected arithmetic, including physical units of measurement, and myriad other checks inside the language, so that you spend as little time as possible.