What is Liitin and what is it good for? … for me?
Liitin is a Linux-based operating system especially designed for Makers; those with urge to create things by themselves or even to create things that don't exist today. Liitin provides an easy and exciting platform that empowers you with all the future Internet possibilities, but lets you concentrate on things that matter you most.
We have learned to tolerate that the world of computing is very short-sighted. You keep migrating your data from one system to another again and again, often losing some in the process. Programs stop working as time goes by or the system below changes. Things that used to be out there aren't anymore.
But things don't need to be like that, or mustn’t rather.
- What if the code you write today could still be executed as is after ten years? 50 years? Ever after? “As is” here means that you don’t need to install a legacy operating system, install the required applications on top of it, add a few libraries, figure out the “readme.txts”, go through the remarks along the source code, ask from a few mailing lists whether anyone else has actually managed to get the code running and how. So “as is” here means simply calling the function by its name.
- What if the code you write on your computer, could be run by any other one, anywhere in the world? Again, as is.
- What if you could do the same when someone else has written the code instead of you? … as is.
- What if you could see the source code of all the functions written by you or shared by anyone else? And then tweak to your own liking?
- And then the others could trust your code to be available to them. … ever after. To be run as is.
- What if it didn’t make any difference whether to run your code locally or remotely? Or simultaneously on several computers, just as easily?
- What if you could remotely control your devices no matter where they may locate?
I believe this is all possible. Or even better - and here’s the kicker - a proof-of-concept of such a system is up and running as we speak. Since all of the current platforms failed to deliver what I thought should be the right way, I started to vision one myself, then design, and finally implement in Racket, little by little.
"I could imagine huge gains, once it is polished and stable and ready for the world."
Matthias Felleisen, Trustee Professor in the College of Computer and Information Science at Northeastern University in Boston, Massachusetts.
Most Liitin improvements take place behind the scenes, and intentionally so. Highlighting every moment when the system behaves as you'd expect it to behave, isn't all that useful. A fair warning though: you may start to expect other systems to behave similarly. The most tangible improvement, however, is the built-in source code repository and versioning system, called "Liitin Object Storage". It is virtually one large library with version management, except it feels nothing as complicated.
To give a few examples about the developer experience in Liitin:
This is how you submit a new object to Liitin Object Storage:
- Choose a name for your content, say, a function
- Press "Save" button
- There. Now you can call or evaluate your object by calling its name any time later.
OK, let's make an update to it. Once you have finished editing the content, follow these steps:
- Press "Save Update" button
- Ready. To access the latest version, or any future version of it dynamically, call it like before. However, all the older versions remain accessible by adding a time attribute at the end of the object name.
Then, let's publish content so that it's accessible by other Liitin users:
- Do exactly like before, except before saving the object, switch radio button saying "Private" to "Public
How to call objects that others have saved as public?
- Simply by the object name, except you clarify the namespace, e.g. (gaia:fibonacci 5) >> 7
And you can look into the source code of any Liitin Object that you have permission to run.
For those less familiar with Lisp family of programming languages, It is good to understand that the "source code" is also the very code that you execute directly, without a separate compilation phase.
Together with the stable platform foundation, you can really take development to a new level - truly build knowledge on top of knowledge, reliably and durably. But these are all just platform things we should never need see or worry about. Below are some of the things that really intrigue me, and what I'd much rather use my time for. See if you can relate to some of them.
Although functional, Liitin isn't ready for public use yet, but then again, there's nothing that a crowd effort couldn't deal with. As my expertise is on user experience and user interface design, I've only concentrated on producing a proof-of-concept level implementation, enough for domain experts to take on [and they will have a blast reading my code]. Having Liitin for my personal use has certainly been awesome, but I would much rather see it open for all, as always intended. Just imagine what it would be like to have a wikipedia of functions for every hobbyist and professionals to use! And that is all within our reach. This is where everyone can contribute. But especially those hard-core Racket champs are needed to pave the way to those less experienced ones (me included) by building easy yet powerful utils and APIs, to help release Racket's full potential.
The good news is that all the expertise needed to turn Liitin into an open, robust platform is well within reach given the proper funding. I have personally worked in the field for over 20 years and I work in close co-operation with other industrial designers, mechanical engineers, software and electronics designers. With sufficient funding, the work could start today. This regards the minimum effort for the core platform, the dedicated Liitin compute stick hardware (suitable for desktop use, IoT device control, or headless compute node) and platform maintenance to keep it up and running and ensuring the data is secure and always available.
If you feel like-minded, I'd really like to know how many of us are out there. Because if there are enough of us, we could make Liitin available to us all through a crowdfunding campaign. This wouldn't obligate to anything, but would be of great help defining the right timing for a crowdfunding campaign. You will also receive information about any progress and won’t miss the chance to be among the first ones to hear about the crowdfunding campaign schedule and content, perhaps catch some early bird extras. Telling about Liitin to other like-minded people will speed-up things a great deal, too.
More information coming soon as the web-site is being updated.