Programming is too complicated. 

 

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/JS/+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.

If this sounds interested, join the test program by sending an email to beads@magicmouse.com, let us know your platform (mac or windows), and how many years of experience you have. This isn’t some distant impersonal research project; you will be working directly with the author of the language, and have a chance to influence its evolution and refinement.

 
 

Projects

Find out about my past projects.

Learn More →

An early telephone exchange, the Telefontornet, in Stockholm 1890.

An early telephone exchange, the Telefontornet, in Stockholm 1890.

Contact me

Need a project designed?

Contact me →