btw... as someone pointed here, I need to clarify something I said: I didn't 
mentioned Eliot because I was talking about the plugins... 
When we talk about the VM itself, the number of people who are capable of work 
on it reduces from 10 to maybe 5 (Eliot and some others like Igor... but 
certainly not me :)

Disclaimer done... is so obvious for me that Eliot is "the master-guru" that I 
just forget to mention him (I'm really sorry for that). 

Esteban

On Apr 17, 2013, at 6:30 PM, Esteban Lorenzano <esteba...@gmail.com> wrote:

> you're right... I will cut&paste and write something extra next days :)
> 
> On Apr 17, 2013, at 4:25 PM, p...@highoctane.be wrote:
> 
>> Very interesting email, worth a post somewhere.
>> 
>> 
>> 2013/4/17 Esteban Lorenzano <esteba...@gmail.com>
>> Hi,
>> 
>> On Apr 17, 2013, at 11:23 AM, kilon <theki...@yahoo.co.uk> wrote:
>> 
>> > Anyway, my only objection is the fact that we will have twice the code to
>> > maintain and more to worry about.
>> 
>> let me explain this little thing a bit...
>> 
>> Do you think that code doesn't need to be maintained and taken care how it 
>> is right now?
>> 
>> I will draw you a picture of how it works this now
>> 
>> /----------------------------------------------\
>> | "Pretended wonderland" (image) |
>> ===========================
>> | Lots of things: I/O, FFI, etc.             |
>> -----------------------------------------------
>> | Virtual Machine (Cog, Stack, Int)  |
>> \----------------------------------------------/
>> 
>> This is your world right now. You work on "pretended wonderland" side, 
>> assuming that everything below will work and hence you "don't need" to 
>> maintain what is below wonderland, isn't?
>> 
>> Well, wrong.
>> 
>> Everything need to be maintained. What you do not see too (you do not see 
>> it, but it is there, oh yes).
>> The difference is:
>> 
>> - in wonderland, everybody can try to fix things (even id they fail, it is 
>> there to play/change/adapt)
>> - in levels below, there are just a few people on earth who actually can 
>> maintain that: Igor, myself and some others, but is for sure less than ten 
>> people.
>> In fact, what happens now is that I have to maintain not two, but three 
>> different versions of the same thing (for each platform), in two different 
>> languages (C and Objective-C) and three different sets of libraries. And  
>> yes, I "personalize" and use the "I" instead "we" because most of the times 
>> is me, with some really valuable from Igor and Camillo (but well, they do 
>> Athens and a PhD respectively, so many times is just a one-man-work).
>> 
>> So, what actually happens now is that problems stack waiting for a solution, 
>> a solution which btw will never be of total satisfaction of users.
>> As an example, let's see the display plugin (which of course is not a plugin 
>> at all, if you remove that from vm, it stops to work).
>> 
>> Display plugin is based in BitBlt, who creates/transforms bitmaps and 
>> renders them into screen.
>> Forget about 2D vectorial graphics (or any thing that can bebefict of using 
>> of GPU).
>> This technology is obsolete and retina displays on mac prove that: there is 
>> no way to do it work fine (that means: good rendering and good performance).
>> 
>> So we need to change that.
>> 
>> How to do it? There are two basic approaches possible:
>> The traditional one says that some "gurus" should write a new plugin 
>> (ideally backward compatible with the previous one). Then you have an 
>> updated plugin (and probably a perfect one, if you don't want to maintain 
>> it), until next time technology changes and then the gurus can be summoned 
>> again to do their magic.
>> As you can see, since our community of potential gurus is (with luck) ten 
>> persons in the world, that does not scales at all.
>> 
>> Then it is our approach: move to the image all the things that can be moved. 
>> Then you will have this:
>> 
>> /----------------------------------------------\
>> | "Pretended wonderland"                 |
>> -----------------------------------------------
>> | Abstract system layer in image      |
>> | (that most of people will never       |
>> | see anyway)                                      |
>> ===========================
>> | Virtual Machine (Cog, Stack, Int)   |
>> \----------------------------------------------/
>> 
>> With NativeBoost we can achieve same performance that we achieve using plain 
>> C.
>> And we have an incredible huge extra bonus: it is there so everybody can try 
>> to modify/fix/update if needed, not just the gurus.
>> And we also have much more advantages to show: this is moving also the low 
>> level programing to "pharo way", and as I showed in my silly videos, is 
>> bring the "immediate feedback" experience also to that level (something that 
>> you could never achieve with older way of thinking)
>> And finally... been in image does not need that you will need to deal with 
>> that. How many of you know of the internals of Zinc/Zodiac or the Weak 
>> Registry? (just to put a couple of examples). Most of us just take it and 
>> use it.
>> 
>> Our path is to bring to the whole community the power to change everything 
>> in your environment. To change it live, in the pharo way.
>> And some times I feel that it is a power that the community is afraid to 
>> take :)
>> 
>> lose your fear: having that power feels good :)
>> 
>> And again: do you still think there is no need for maintain low level stuff? 
>> Think again.
>> 
>> cheers,
>> Esteban
>> 
>> 
>> 
> 

Reply via email to