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