2018-04-11 14:33:32 +02:00
|
|
|
|
= render "pages/project/menu"
|
|
|
|
|
|
|
|
|
|
%h1= title "RubyX, where it started"
|
|
|
|
|
|
2018-04-10 17:39:03 +02:00
|
|
|
|
.row
|
2018-04-11 14:33:32 +02:00
|
|
|
|
%p
|
|
|
|
|
Torsten Ruger started this on 10.04.2014 after having read the Blue Book 20 years earlier.
|
|
|
|
|
The main ideas were:
|
|
|
|
|
%p
|
|
|
|
|
%ul
|
|
|
|
|
%li Mikrokernel
|
|
|
|
|
The microkernel idea: anything that can be left out, should, puts a nice upper limit
|
2018-04-10 17:39:03 +02:00
|
|
|
|
on things and at the same time provides a great cooking pot for everyone else to try out their ideas.
|
2018-04-11 14:33:32 +02:00
|
|
|
|
%br
|
2018-04-10 17:39:03 +02:00
|
|
|
|
Given gems and bundler this also seems an obvious choice. I really hope to see things i hadn't even thought of.
|
2018-04-11 14:33:32 +02:00
|
|
|
|
%li Layers represent an interface, not an implementation
|
|
|
|
|
It is said that every problem in computing can be solved by adding another layer
|
|
|
|
|
of indirection. And so we have many layers, which, when done right, help us to
|
|
|
|
|
understand the system. (Read, layers are for us, not the computer)
|
|
|
|
|
But implementing each layer comes with added cost, often unnecessary.
|
|
|
|
|
%li Empowerment
|
|
|
|
|
I like the openness of ruby. Everyone can do what and how they want.
|
|
|
|
|
And change other peoples code in an easy and sensible way.
|
|
|
|
|
The best ideas survive and even better ones are coming.
|
|
|
|
|
Friendly competition as it were, cooperation, independent improvement all make
|
|
|
|
|
ruby gems better all the time.
|
|
|
|
|
%br
|
2018-04-10 17:39:03 +02:00
|
|
|
|
But ruby itself has not benefited from this in the same way (ie by ruby developers), because it is not in ruby.
|
2018-04-11 14:33:32 +02:00
|
|
|
|
%br
|
|
|
|
|
%li To get it done
|
|
|
|
|
Beats me why this hasn't been done before.
|
2018-04-10 17:39:03 +02:00
|
|
|
|
.row
|
2018-04-11 14:33:32 +02:00
|
|
|
|
%h1.center Thanks
|
|
|
|
|
%p.center This would not have happened without:
|
2018-04-10 17:39:03 +02:00
|
|
|
|
/ About Us
|
|
|
|
|
.row
|
|
|
|
|
.tripple
|
|
|
|
|
%h2.center Smalltalk
|
|
|
|
|
%p
|
|
|
|
|
Smalltalk is the mother of OO for me. Adele Goldberg has written down the details of early implementations in the
|
|
|
|
|
Blue Book, which made a great impression on me. Having read it, mri code is quite easy to understand.
|
|
|
|
|
%br/
|
|
|
|
|
Unfortunately Smalltalk was too far ahead of it's time and used the image, the implications of which are still
|
|
|
|
|
not understood imho.
|
|
|
|
|
%br/
|
|
|
|
|
Additional bad luck struck when, in Steven Jobs great heist of the PARC UI, he did not recognise the value of it's
|
|
|
|
|
implementation language and so pure OO did not get the same boost as the gui. Instead we got difficult c dialects.
|
|
|
|
|
.tripple
|
|
|
|
|
%h2.center Ruby and Rails
|
|
|
|
|
%p
|
|
|
|
|
After years of coding Java, Ruby was a very fresh wind. Smalltalk reborn without the funny syntax or image.
|
|
|
|
|
Instead of the image we now have gems, git and bundler, so code exchange has never been easier.
|
|
|
|
|
%p
|
|
|
|
|
Rails has sort of given Ruby it's purpose and made it grow from a perl like scripting language to a server programming
|
|
|
|
|
environment with all the whistles and bells. Rails maturity and code quality make it not only a joy to use,
|
|
|
|
|
but an excellent source for good ruby practises.
|
|
|
|
|
%p
|
|
|
|
|
.tripple
|
|
|
|
|
%h2.center Synthesis
|
|
|
|
|
%p
|
|
|
|
|
Synthesis is a microkernel OS written
|
|
|
|
|
in the 80's by Alexia Massalin which not only proves the validity of the microkernel idea, but also
|
|
|
|
|
introduces self modifying code into, of all places, the OS.
|
|
|
|
|
%p
|
|
|
|
|
Alexia has raised questions about the nature of code and ways of programming which are still unresolved.
|
|
|
|
|
I regularly reread the thesis and especially the chapter on
|
|
|
|
|
%a{:href => "http://valerieaurora.org/synthesis/SynthesisOS/ch4.html"} Quajects
|
|
|
|
|
in the endeavour to understand what
|
|
|
|
|
they are in any higher language terms.
|
|
|
|
|
.row
|
|
|
|
|
.span12.center
|
|
|
|
|
%p Many other steps on the way that have left their mark:
|
|
|
|
|
.row
|
|
|
|
|
.span1
|
|
|
|
|
.span10
|
|
|
|
|
%p
|
|
|
|
|
%b
|
|
|
|
|
%a{:href => "http://judy.sourceforge.net/"} Judy
|
|
|
|
|
has been a major source of inspiration and opened new
|
|
|
|
|
ways of thinking about data structures and indeed coding. It has been the basis of two databases i wrote and together
|
|
|
|
|
with Synthesis redefined the meaning of speed for me.
|
|
|
|
|
%p
|
|
|
|
|
%b
|
|
|
|
|
%a{:href => "http://metasm.cr0.org/"} Metasm
|
|
|
|
|
finally confirmed what i had suspected for a while.
|
|
|
|
|
Namely that you don't need C to generate machine code. Metasm has be been assembling, deassembling and
|
|
|
|
|
compiling for several cpu's since 2007, in 100% ruby.
|
|
|
|
|
A great feat, and the only reason i don't use it is because it is too big (for me to understand).
|
|
|
|
|
%p
|
|
|
|
|
%b
|
|
|
|
|
%a{:href => "https://github.com/cyndis/as"} As
|
|
|
|
|
ended up being the starting point for the assembly layer.
|
2018-04-11 14:33:32 +02:00
|
|
|
|
It was nice and small and produced working ARM code, which is what i wanted,
|
|
|
|
|
as raspberry is arm.
|
|
|
|
|
%b
|
|
|
|
|
%a{:href => "https://github.com/seattlerb/wilson"} Wilson
|
|
|
|
|
got assimilated for similar reasons, ie small and no dependencies.
|
2018-04-10 17:39:03 +02:00
|
|
|
|
%p
|
|
|
|
|
%b
|
|
|
|
|
%a{:href => "http://kschiess.github.io/parslet/"} Parslet
|
|
|
|
|
is great, thanks Kasper!
|
|
|
|
|
Parslet makes parsing possible for everyone.
|
|
|
|
|
%p
|
|
|
|
|
%b
|
|
|
|
|
%a{:href => "http://bundler.io/"} Bundler
|
|
|
|
|
just makes you wonder how we managed before.
|
2018-04-11 14:33:32 +02:00
|
|
|
|
Thanks to Yahuda for starting it, and Andre for making it fantastic.
|
2018-04-10 17:39:03 +02:00
|
|
|
|
.row
|
2018-04-11 14:33:32 +02:00
|
|
|
|
%p
|
|
|
|
|
Lastly, but most importantly there is a spiritual side to this too.
|
|
|
|
|
Actually to anything i have done for at
|
|
|
|
|
least 15 years, and i just mention it
|
|
|
|
|
= succeed "," do
|
|
|
|
|
%a{:href => "spiritual.html"} here
|