diff --git a/_layouts/main.html b/_layouts/main.html index 64e012b..560bbd8 100644 --- a/_layouts/main.html +++ b/_layouts/main.html @@ -12,8 +12,8 @@ layout: site
- 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. + When making the distinction between effectiveness and efficiency i like to think of transport.
- Why it has taken this long to even seriously attempt a ruby implementation in ruby is due to the overwhelming - influence of C (folks). + Efficiency is going fast, like an airplane is much more efficient than a car and that is more so than walking.
- Just a short and subjective list of why ruby is the better tool: -
+ Ruby, like python and mother smalltalk, let us be more effective at programming. We accept that they are not efficient, + but i think that can be changed. +
++ But even while ruby has blossomed we have seen noticeable increase in effectiveness with so called dsl's and + what is generally called meta-programming. +
++ But meta-programming is just a way to say that we manipulate the program just as we manipulate data. Off course! But + to do that effectively we need a better model of what an object oriented program actually is. +
++ The way i see it is that it is the understandibility that makes ruby or python more effective. As we read much more + code than write (even it's our own), focusing on descriptive programs helps. +
++ But you only have to look at even rubies basic blocks, to see how misleadingly language is used. + We use Strings to represent words and text, while we store data in Arrays or Hashes. + If you look these up in a dictionary you may find: a thread used for tying, + a military force, or a dish of diced meat and vegetables. So we have a way to go there. +
++ But even more disconcerting is that we have no model of how an object oriented system actually works. We know what it + does off course, as we programm using it all the time. But how it does it is not clear. +
++ At least not clear in the sense that i could go and read it's code. Ruby like python are written in c and that just + is not easily understandable code.
- Rails has evolved tremendously from what was already a good start. All the development around it has nurtured - ruby developement in all areas. Rails and all those parts make up a most mature and advanced software system. + When programming, we fly blind. We have no visual idea of what the system that we write will do and the only way + to get feedback is to have the final version run. Bret Victor has put this + into words well.
-The "rails effect" is due to the accessibility of the system, imho. Ie it is written in ruby.
-Ruby itself has not enjoyed this rails effect, and that is because it is written in C (or c++)
-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 +
+ So when we program, it's actually mostly in our head. By playing computer, ie simulating in the head what the computer + will do when it runs the programm. +
++ And so what we consider good programmers, are people who are good at playing computer in their head. +
++ But off course we have the computer right there before us. Really the computr should do it rather than + us having to simulate it. +
++ What will come out of that line when we actually manage to put it into practise is unclear, though it is certain it + will be easier to do and result in hugely more powerful programs +
++ Yet to get there we need better tools. Better tools that let us understand what we are doing better. Better models of + what we call programming, and by better i mean easier to understand by normal people (not the computer simluators).
- 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. -
-- 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. -
-- 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 static code is fast. -
-- On a very similar note we are lead to believe that os features must be used from c. Whereas system calls - are software interrupts and only the c std library makes them look like c functions. But they are not. -
-So what does empowerment mean.
-- 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. -
-- So it is hard to even think of ruby holding us back, and it isn't off course, only current implementations of it are. -
-- So 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. -
-- But to mention a few things that have crossed my mind (and that i will most certainly not implement) -
- 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. -
-And off course democracy decides what is good and what will stay. Natural extinction and all.
- When making the distinction between effectiveness and efficiency i like to think of transport. + 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.
- Efficiency is going fast, like an airplane is much more efficient than a car and that is more so than walking. + Why it has taken this long to even seriously attempt a ruby implementation in ruby is due to the overwhelming + influence of C (folks).
- Effectiveness on the other hand is how straight your route is. Say you're in Hamburg and want to go to Berlin, then - it is not effective to go to Rome first. -
-- Ruby, like python and mother smalltalk, let us be more effective at programming. We accept that they are not efficient, - but i think that can be changed. -
-- But even while ruby has blossomed we have seen noticeable increase in effectiveness with so called dsl's and - what is generally called meta-programming. -
-- But meta-programming is just a way to say that we manipulate the program just as we manipulate data. Off course! But - to do that effectively we need a better model of what an object oriented program actually is. -
-- The way i see it is that it is the understandibility that makes ruby or python more effective. As we read much more - code than write (even it's our own), focusing on descriptive programs helps. -
-- But you only have to look at even rubies basic blocks, to see how misleadingly language is used. - We use Strings to represent words and text, while we store data in Arrays or Hashes. - If you look these up in a dictionary you may find: a thread used for tying, - a military force, or a dish of diced meat and vegetables. So we have a way to go there. -
-- But even more disconcerting is that we have no model of how an object oriented system actually works. We know what it - does off course, as we programm using it all the time. But how it does it is not clear. -
-- At least not clear in the sense that i could go and read it's code. Ruby like python are written in c and that just - is not easily understandable code. + Just a short and subjective list of why ruby is the better tool: +
- When programming, we fly blind. We have no visual idea of what the system that we write will do and the only way - to get feedback is to have the final version run. Bret Victor has put this - into words well. + Rails has evolved tremendously from what was already a good start. All the development around it has nurtured + ruby developement in all areas. Rails and all those parts make up a most mature and advanced software system.
-- So when we program, it's actually mostly in our head. By playing computer, ie simulating in the head what the computer - will do when it runs the programm. -
-- And so what we consider good programmers, are people who are good at playing computer in their head. -
-- But off course we have the computer right there before us. Really the computr should do it rather than - us having to simulate it. -
-- What will come out of that line when we actually manage to put it into practise is unclear, though it is certain it - will be easier to do and result in hugely more powerful programs -
-- Yet to get there we need better tools. Better tools that let us understand what we are doing better. Better models of - what we call programming, and by better i mean easier to understand by normal people (not the computer simluators). +
The "rails effect" is due to the accessibility of the system, imho. Ie it is written in ruby.
+Ruby itself has not enjoyed this rails effect, and that is because it is written in C (or c++)
+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
+ 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. +
++ 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. +
++ 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 static code is fast. +
++ On a very similar note we are lead to believe that os features must be used from c. Whereas system calls + are software interrupts and only the c std library makes them look like c functions. But they are not. +
+So what does empowerment mean.
++ 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. +
++ So it is hard to even think of ruby holding us back, and it isn't off course, only current implementations of it are. +
++ So 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. +
++ But to mention a few things that have crossed my mind (and that i will most certainly not implement) +
+ 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. +
+And off course democracy decides what is good and what will stay. Natural extinction and all.