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 > > >