On Feb 6, 2012, at 12:56 PM, Nick Ager wrote: > Hi Stef, > > Similarly to Philippe my feedback is based on a Seaside/web centric view of > how I use Pharo. > > I'd echo Philippe's concern about looking carefully at how much effort is > required to rework Morphic vs using an existing UI library or WebView. From a > web centric view I'd emphasis building a remote browsing interface over > significant Morphic work.
yes but this is a web centric view :). We will have to get decent uibuilder and reuse of logic > At FOSDEM this weekend I was impressed with the progress Craig Latta has made > on spoon recently [1] [2]. Does his work on remote browsing and micro kernels > fit into a future Pharo? I do not know. What is clear is that we are working micro kernels and bootstrap for pharo and we will restart our effort on it. > As I develop with Pharo and deploy with Gemstone, maintaining some level of > compatibility between Smalltalks is important. I note the problem raised with > XML compatibility between dialects [3]. So the ability to maintain a > compatibility layer such as Grease is important, as is the ability to re-use > packages between Pharo and Gemstone. Indeed now our goal is to absorb as much as possible grease so that there is no need to load grease for pharo this will proved that our libraries will get better. > > [1] http://thiscontext.wordpress.com/ > [2] http://netjam.org/spoon/naiad/ > [3] > http://www.mail-archive.com/pharo-project@lists.gforge.inria.fr/msg56924.html > > > > > > > > On 5 February 2012 17:43, Philippe Marschall <kus...@gmx.net> wrote: > On 30.01.2012 09:24, Stéphane Ducasse wrote: > > OK, so here's my take. I try to not turn this into a wish list. > > Rich libraries > While I obviously agree that rich libraries are valuable I believe it's > important to have clear guidelines to what should be part of Pharo and what > not. In one extreme I could have everything from SqS be part of Pharo. I > don't think this is the idea. You don't want to have the same discussion for > every library whether it should be part of Pharo. > > FFI > First I think we need to have a problem statement. We want to be able to use > libraries written in C from Pharo. We don't implement them in Pharo because > we don't have the resources to develop them or Pharo is unsuited for the > task. This sucks because it's no longer "turtles all the way down" but better > than nothing. Since blocking C calls block the entire VM until the call > returns we need to have "threaded-FFI". > Yes, I do think that callbacks should be mentioned here. Currently the > situation as I understand it is: > - use FFI for call-outs > - use Alien for call-backs > - use NativeBoost for faster callouts? "portable plugins"? > It would be really nice to have a better, more integrated solution here. If > that results in something that's more than a one liner for a C call that's > fine with me. > > 64 bit > I think it's important to make a distinction between 64bit images and 64 bit > VMs. > > 64 bit VMs > Unless you on a small device current systems are 64bit. While most of them > offer some sort of way for running 32bit applications this cannot be the way > forward since: > - it clearly marks the application as legacy > - you can only talk to 32bit libraries (see FFI) > - we don't know how long this will still be supported (Apple anybody?) > I don't know how much work is required to make Cog run on 64bit. > > 64bit images > While it would be nice to have multi gigabyte images (maybe not) I don't > think it's realistic to assume we have the resources to come up with a GC > that can handle such images. > > SOAP > SOAP is a massive resource sink [1]. Yes it would be nice to have good > support but the cost is prohibitive and better spent on other things. > > Sockets > I don't think the socket layer is holding us back. Sure, it's ugly, sure, it > can — and should — be improved, but it's not holding us back. IMO it's > missing four things: > - better documentation with examples, this is important and relatively easy > to do > - SSL, this is "just" an issue for clients since servers are fronted anyway. > I know Sven's working on this. > - sendfile support. This would allow us to send files efficiently over the > network without touching user space. Since we're fronted anyway this is not a > big deal. > - asynchronous support. This would allow us to have a large amount of open > connections for things like WebSockets. May be too much work to get it > working on Mac/Linux/Windows. This alone doesn't give us WebSockets, we still > need to write quite some infrastructure on top of it so you'll probably want > to deprioritize if not drop this. > I know I have a narrow Seaside-centric focus here. > What would be nice is to have a generic client-server framework (how many > times have I written a socket-loop?) but I don't think this should be part of > Pharo. > > Load balancer > I don't think this needs to be part of Pharo. Apache already does this. > > UI frameworks: > Have you considered cutting your losses? You have your existing > infrastructure that requires more resources than you have and if you could > you rewrote it. Then in addition you have new requirements and you want to > come up with new paradigms. I feel this alone can consume more your entire > resources. > Options that I would consider: > - status quo, maintenance only, no further development > - drop UI entirely, go for something like embedded WebKit > - make it somebody else's problem, once you have better FFI generate > bindings for GTK/QT/… > This is not giving up. This is not fighting battles you cannot win. > > Plug Computer > Really? You have all the other places that need more resources and you want > to do even more. > > Now the things that aren't on your list: > > VM: > Better JIT, allocator, collector. No matter how good your VM is it's never > good enough and there's always useful stuff you can add like monitoring. > > #identityHash > It would certainly be nice to have more than 12 hash bits, especially form a > performance PoV. IIRC there was once talk of getting rid of compact classes. > I take an additional hash bit over an immutability bit any time. > > Infrastructure > If your tools and build infrastructure are holding you back fix them. I would > be quite happy if a year from now Pharo is exactly the same and the only > thing that changed is the infrastructure you use to build Pharo is way > better. I know Seaside sucks at this as well. > > Migration Support > Since you're changing quite a lot of things (SystemDictionary/SmalltakImage, > file system, streams, …) it would be nice to have support to: > - tell the user where he uses deprecated code > - assist the user in migrating to new APIs > this can also help you migrate everything in Pharo to the new APIs. You > probably want to build on top of the rewrite engine of RB. Since you don't > have static types the migration can probably only done in a semi-automated > way presenting the user a list of possible matches and letting him select the > appropriate ones. The deprecation support has been discussed previously. This > is probably the only thing in this list that could be put into research > papers. > > Releases > I know Seaside sucks at this as well so this isn't a flame. To me as an > outsider the release process of Pharo is confusing. I find the release > process of Eclipse [2] [3] better. The main points are: > - One main release every year > - Two bugfix releases every year > - after the two bugfix releases a new main release is done and the old main > release becomes unsupported > The releases are date driven, not feature driven. The dates for the ga, rc > and milestone releases as well as feature and API freezes are set years in > advance. That has downsides. For example if your feature misses a deadline, > you have to wait for more than a year to see it in a release. But it makes > everything nicely planable. > > [1] > http://www.innoq.com/soa/ws-standards/poster/innoQ%20WS-Standards%20Poster%202007-02.pdf > [2] http://wiki.eclipse.org/Simultaneous_Release > [3] http://wiki.eclipse.org/SimRel/Overview > > Cheers > Philippe > > >