92 lines
4.3 KiB
Plaintext
92 lines
4.3 KiB
Plaintext
\---
|
|
layout: project
|
|
title: Ruby in Ruby
|
|
sub-title: RubyX hopes make the the mysterious more accessible, shed light in the farthest (ruby) corners, and above all,
|
|
%b empower you
|
|
\---
|
|
.row
|
|
.tripple
|
|
%h2.center A better tool, a better job
|
|
%p
|
|
Ruby is the better tool to do the job. Any software job that is.
|
|
We, who use ruby daily do so because it is more productive,
|
|
better in almost every way.
|
|
The only downside is speed and we argue that with cheap resources.
|
|
%p
|
|
Why it has taken this long to even seriously attempt a ruby implementation in ruby is due to the overwhelming
|
|
influence of C (folks), especially at the time.
|
|
%p
|
|
Just a short and subjective list of why ruby is the better tool:
|
|
%ul
|
|
%li More fun. Ask anyone :-)
|
|
%li Lets you focus on the task
|
|
%li Elegant, both in syntax and solution
|
|
%li Understandable
|
|
%li Much faster to code
|
|
.tripple
|
|
%h2.center Boys and toys
|
|
%p
|
|
Rails has evolved tremendously from what was already a good start. All the development
|
|
%em around
|
|
it has nurtured
|
|
ruby developement in all areas. Rails and all those parts make up a most mature and advanced software system.
|
|
%p The "rails effect" is due to the accessibility of the system, imho. Ie it is written in ruby.
|
|
%p
|
|
Ruby itself has not enjoyed this rails effect, and that is because it is written in C
|
|
Crystal, Rust, Go Julia etc, have, for the exact same reason.
|
|
%p
|
|
It is my firm belief that given a vm in ruby, ruby development will "take off" too. In other words, given an
|
|
easy way to improve his tools, a developer will do so. Easy means understandable and that means ruby for a
|
|
ruby developer
|
|
.tripple
|
|
%h2.center Step to Indepencance
|
|
%p
|
|
The first thing any decent compiler does, is compile itself. It is the maturity test of a language to implement
|
|
itself in itself, and the time has come for ruby. The mark of growing up is being independant, in ruby's case of C.
|
|
%p
|
|
Having just learned Assembler, i can attest what a great improvement C is over Assembler.
|
|
But that was then and it is not just chance that developemnt has been slow in the last 50 years.
|
|
%p
|
|
There is this attitude C believers elude and since they are the gatekeepers of the os,
|
|
everyone is fooled into believing only c is fast. Whereas what is true is that
|
|
= succeed "is" do
|
|
%em complied (binary) code
|
|
%p
|
|
On a very similar note we are lead to believe that os features must be used from c. Whereas system calls
|
|
are software interrupts, not really
|
|
%em
|
|
calls
|
|
%em
|
|
at all.
|
|
Only the c std library makes them look like c functions, but they are not.
|
|
.span12
|
|
%p.center
|
|
%span
|
|
%b So what does empowerment mean.
|
|
%p
|
|
For me it is means owning your tools.
|
|
For everyone to really be able to unfold their ideas and potential.
|
|
Not to be stuck, rather to be able to change anything one wishes.
|
|
We usually own the code we write, and we have seen amazing progress in opening up new ideas.
|
|
%p
|
|
So it is hard to even think of ruby holding us back, and it isn't off course, only current implementations of it are.
|
|
%p
|
|
Concretely what does this mean: Well i don't know do i! That's the whole point, that anyone can improve it beyond
|
|
the original creators horizon.
|
|
%p
|
|
But to mention a few things that have crossed my mind (and that i will most certainly not implement)
|
|
%ul
|
|
%li Efficient vector extensions that use cpu/gpu instructions not supported in the core
|
|
%li Efficient graphics extensions
|
|
%li New language features, ie real dsl's that extend the parser on the fly
|
|
%li Off course there is always new cpu's and os's
|
|
%li Better implementation of core datastructures. Did i hear digital trees being mentioned?
|
|
%li Better gc's, better memory management.
|
|
%li Superoptimization! (heard of that one?)
|
|
%p
|
|
And the fun thing is off course that all the above can be created as gems. No recompiling, no rvm/rbenv.
|
|
Anyone can choose how they want to pimp
|
|
their vm in the same way as you can decide what stack/tools you use in a rails project. And we have the essential
|
|
tool to do this: the bundler.
|
|
%p And off course democracy decides what is good and what will stay. Natural extinction and all.
|