Re: Mummy, I made a platform in my pants! [Was: focus!]
Alex Graveley alex at beatniksoftware.com writes: * Scripting framework Allows apps to easily expose external scripting and event notification. D-BUS was the big missing piece here. Can specify sets of interfaces for common tasks that apps can implement, and building up the frameworks to provide useful default implementations. That was the subject of my talk at Desktop Developer Conference (this minor conference that was earlier this week like evey year since 2004), were I proposed ideas toward a *cross desktop* implementation of such a framework. The people from KDE I did talk too were there are higly interested in such a feature. DBus for this framework would just be an IPC mechanism, and not the object model. I'll post the slide sometime next week when I actually have time to do so, but I certainly want to push an idea like that to be implemented. Hub ___ desktop-devel-list mailing list desktop-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/desktop-devel-list
Re: Mummy, I made a platform in my pants! [Was: focus!]
On Wed, 2006-07-19 at 10:50 +1000, Jeff Waugh wrote: A fucking amazing platform isn't an accident, and we need a fucking amazing platform to bring more developers to GNOME - both internal developers and external developers. One of our *crucial* audiences must be FLOSS hackers and ISDs. If we don't satisfy them, we can't build our own momentum for building this amazing software stack, and we can't build an ecosystem with opportunities for everyone else. The GNOME platform is pretty much *done* at this point from the viewpoint of what more code do we need?. - We have support for most human languages. - We have a tremendously powerful and rich GUI toolkit. - We (finally!) have a printing API that doesn't suck. - We have excellent accessibility at the toolkit level. - We have a good way to store configuration data. - We have a rich multimedia API. - etc. In terms of code and APIs, we are *done*. If you remember the Advisory Board meeting at GUADEC, what ISDs asked for was not more APIs, but the polish things: - High-level documentation (not done) - Overviews of the platform (done! Thanks, Shaun!) - Detailed descriptions of the platform's architecture (not done) - Stability guarantees (in progress) - Official word on which API you should use for what (in progress) - Performance tuning to make the platform leaner (in progress) Let me repeat: the platform is *DONE* in terms of code. We need the fit and finish now. Paint, polish, varnish, carpeting, and a nice glossy pamphlet to guide you through the beautiful building that is our architecture. Gaudà would be proud of its organic nature. [If you want to be pedantic and are looking for missing APIs, you can count them on even less than four toes: a lockdown API instead of reading ill-documented GConf keys, and oh, screw it, I can't think of any others right now.] GNOME is a *great* platform to build desktop-ish apps *right now*. That's our platform's space. People who get scared that Web 2.0 is going to replace us need to remember that the web needs a good web browser to run on, and that web browser needs a toolkit to be written in, and that toolkit is GNOME. It's there right now and it works. All the advancements in software for end users are happening elsewhere: in the web, and in high-level languages. That's fine. That stuff also needs a desktop-ish foundation to be built upon, and that foundation is GNOME. Only people who haven't written large-scale software think that it can be written efficiently in a low-level language. That's why most of the programming world is moving to high-level stuff: it's why companies write their internal software in Java, why Microsoft is writing their new software in C#, why all the cool/new end-user apps in free software are using Python and C# and Java... and you know what? Under all that high-level amazing stuff lies a foundation pretty much like GNOME: let that be the historic Win32 (in C and assembler since 1983, baby!), the historic Apple libraries (all the way from NextStep!), or GTK+ (11 years old!) and libgnome* themselves (almost 10 years old now!). Federico ___ desktop-devel-list mailing list desktop-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/desktop-devel-list
Re: Mummy, I made a platform in my pants! [Was: focus!]
Federico Mena Quintero wrote: GNOME is a *great* platform to build desktop-ish apps *right now*. Tech-wise strongly agree; ecosystem-wise no, because the number of users is too low for (non-hobbyist/volunteer) developers to care. That's our platform's space. People who get scared that Web 2.0 is going to replace us need to remember that the web needs a good web browser to run on, and that web browser needs a toolkit to be written in, and that toolkit is GNOME. It's there right now and it works. All the advancements in software for end users are happening elsewhere: in the web, and in high-level languages. That's fine. That stuff also needs a desktop-ish foundation to be built upon, and that foundation is GNOME. While I agree with most of your post, here I think you're missing an important point: - for almost everyone in the world, that foundation is _not_ GNOME. It's some other desktop. - in fact much of the recent innovation does not work on GNOME, and many of us don't notice since we just don't use sites like MySpace and Xanga, or commercial music services, or whatever, and thus don't experience their frequent IE/Windows-specificity i.e. just because people use/need a desktop doesn't mean they use/need any desktop or specifically our desktop. The benefit to audience has to be *vs what they have* not *vs nothing* The relevance of not-just-a-desktop as a direction is that it allows you to think about this question. make a desktop alone almost by definition means failure - it defines the project as an existing product category that everyone already owns - why do they need a new one? GNOME at least needs to say make a desktop that ___ though for many cases of that ___ the desktop aspect will be an artificial addition rather than an essential element of the user benefit, and thus very vulnerable to someone offering the same benefit minus the desktop requirement. I always have to add the disclaimer that people are free to be disinterested in market share, mass adoption, and what have you. There are many other measures of success. However, to me it's very clear that make a desktop has no chance of getting to 10x10 - this is the safe yet guaranteed-to-fail path. Havoc ___ desktop-devel-list mailing list desktop-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/desktop-devel-list
Re: Mummy, I made a platform in my pants! [Was: focus!]
Respectfully, I don't agree. There is a big set of missing frameworks that stops rich interop in Gnome applications, and generally make applications much harder to write well. All other desktop platforms include at least a subset of these... * Document framework Provides document loading/saving/printing/etc abstractions, window/tab management, automatic recently used, scripting hooks, etc. * Scripting framework Allows apps to easily expose external scripting and event notification. D-BUS was the big missing piece here. Can specify sets of interfaces for common tasks that apps can implement, and building up the frameworks to provide useful default implementations. * Rich Extension/Plugin framework Common UI for installing/removing plugins and checking for updates and downloading, common hooks for menu/toolbar integration and UI event integration. * Undo framework Almost no applications in Gnome support good Undo. Should provide both reliable desktop-wide interaction for text widgets as well as at an abstract object level. * Rich DND/CopyPaste framework Undocumented DND targets, poor support, and manual data parsing abound in our applications. Could provide structured data interop to make doing this loads easier. * Persistence framework Saving and indexing application-internal data, optionally exposing to search engines like beagle. Each one of these is a really large amount of work that doesn't exist at all today, with various bits being implemented from scratch in every application. -Alex Federico Mena Quintero wrote: The GNOME platform is pretty much *done* at this point from the viewpoint of what more code do we need?. ___ desktop-devel-list mailing list desktop-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/desktop-devel-list
Re: Mummy, I made a platform in my pants! [Was: focus!]
On 7/19/06, Alex Graveley [EMAIL PROTECTED] wrote: Respectfully, I don't agree. There is a big set of missing frameworks that stops rich interop in Gnome applications, and generally make applications much harder to write well. All other desktop platforms include at least a subset of these... * Document framework Provides document loading/saving/printing/etc abstractions, window/tab management, automatic recently used, scripting hooks, etc. * Scripting framework Allows apps to easily expose external scripting and event notification. D-BUS was the big missing piece here. Can specify sets of interfaces for common tasks that apps can implement, and building up the frameworks to provide useful default implementations. * Rich Extension/Plugin framework Common UI for installing/removing plugins and checking for updates and downloading, common hooks for menu/toolbar integration and UI event integration. * Undo framework Almost no applications in Gnome support good Undo. Should provide both reliable desktop-wide interaction for text widgets as well as at an abstract object level. * Rich DND/CopyPaste framework Undocumented DND targets, poor support, and manual data parsing abound in our applications. Could provide structured data interop to make doing this loads easier. * Persistence framework Saving and indexing application-internal data, optionally exposing to search engines like beagle. I'd add: * collaboration framework (though maybe the Abi guys are pushing in this direction in a way we can all use) * web integration framework- we know that MS is going to make all their apps backend to various web services in the not-too-far future, and we know that we can make our apps much more compelling if (for example) f-spot integrated seamlessly with web-based picture sharing, or gourmet integrated seamlessly with web-based recipe sharing. * search framework. Luis ___ desktop-devel-list mailing list desktop-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/desktop-devel-list
Re: Mummy, I made a platform in my pants! [Was: focus!]
Alex Graveley wrote: * Persistence framework Saving and indexing application-internal data, optionally exposing to search engines like beagle. Already mostly done in Tracker. Tracker's database can store just about any first class object complete with extensible metadata, tags and links. All thats needed it to extend Tracker's Dbus interface to cover the particular need. EG Tomboy notes could be stored directly in Tracker's DB instead of to a file. Tracker automatically indexes anything in its database which can be searched without Beagle (you can disable tracker's indexing if you want to use an external indexer like Beagle). All thats needed is to define a set of Dbus methods (SaveNote, LoadNote, LinkNote etc) for the Notes first class object. Tracker will also fill in the search framework too as well as the persistence/metadata DB stuff as well (when its finished - give it 3 months!) -- Mr Jamie McCracken http://jamiemcc.livejournal.com/ ___ desktop-devel-list mailing list desktop-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/desktop-devel-list
Re: Mummy, I made a platform in my pants! [Was: focus!]
ons, 19 07 2006 kl. 12:41 -0500, skrev Federico Mena Quintero: In terms of code and APIs, we are *done*. If you remember the Advisory Board meeting at GUADEC, what ISDs asked for was not more APIs, but the polish things: A common spell checking system would be extremely nice, currently GNOME ships with several applications which use different systems to present a spell checking interface to the user. Spell checking in GNOME makes puppies cry... please think of the puppies. - David Nielsen ___ desktop-devel-list mailing list desktop-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/desktop-devel-list
Re: Mummy, I made a platform in my pants! [Was: focus!]
Jeff Waugh wrote: A fucking amazing platform isn't an accident, and we need a fucking amazing platform to bring more developers to GNOME - both internal developers and external developers. One of our *crucial* audiences must be FLOSS hackers and ISDs. If we don't satisfy them, we can't build our own momentum for building this amazing software stack, and we can't build an ecosystem with opportunities for everyone else. I agree with you for volunteer developers; a simple, nice platform is pretty important. For commercial developers, in my experience they usually ignore whether the API is pretty or pleasant... developers will come because there are users. Platforms I've learned in the last 9 months: - HTML/JavaScript - Flash/ActionScript - Java/EJB3 - C++/COM/Win32 These are some of the most successful platforms around. They are mostly pretty bad in various ways; in many ways GNOME/Linux is better, in some ways it's worse. But the fact is that even though IE/HTML/JavaScript and Win32/C++/COM compete as two of the most irritating platforms I can imagine, commercial developers write for them anyway. That's because userbase trumps API aesthetics, and the fastest way to platform success is to have a lot of users. To me the GNOME platform is pretty good in terms of API offered. The largest API problems have to do with proprietary software; RPM and dpkg are not designed for third-party software, and the diversity of Linux distributions makes it even harder. The whole Linux ecosystem is set up assuming a single giant pool of built-from-source packages. Which has many advantages, but easiness for ISVs is not one of them. Still though I'd say number of users is a bigger issue than anything like this. We can, and should, do both. :-) I don't disagree, but I think the natural emphasis of a big horde of programmers (including myself) is to think 95% of the time about how to improve the platform to make their own lives nicer, and 5% of the time about the actual point of the software for some audience, so when deciding what to cheerlead I'd tend to avoid the go platform! point of view. ;-) Certainly GNOME tends to be badly skewed toward the platform side of things. I prefer working on APIs to working on UIs myself, I have to admit. Havoc ___ desktop-devel-list mailing list desktop-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/desktop-devel-list
Re: Mummy, I made a platform in my pants! [Was: focus!]
quote who=Havoc Pennington We can, and should, do both. :-) I don't disagree, but I think the natural emphasis of a big horde of programmers (including myself) is to think 95% of the time about how to improve the platform to make their own lives nicer, and 5% of the time about the actual point of the software for some audience, so when deciding what to cheerlead I'd tend to avoid the go platform! point of view. ;-) Certainly GNOME tends to be badly skewed toward the platform side of things. I prefer working on APIs to working on UIs myself, I have to admit. That said, culturally we've taken a lot of emphasis and glory away from the platform since pre-2.0, so it hasn't had the attention it really needs to improve what we can deliver on top of it. I guess the point of my post is to make sure we don't completely disempower/unglorify the platform in our drive towards coherent user focus. It's like the Apple comments about whether they've been successful or not. I think anyone who's seriously looked at their platform will know that they have massive silos of ammunition and opportunity in reserve - because they can and will be able to deliver compelling results to users faster, as will their developer ecosystem. - Jeff -- linux.conf.au 2007: Sydney, Australia http://lca2007.linux.org.au/ Wars end, love lasts. ___ desktop-devel-list mailing list desktop-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/desktop-devel-list
Re: Mummy, I made a platform in my pants! [Was: focus!]
quote who=Jeff Waugh That said, culturally we've taken a lot of emphasis and glory away from the platform since pre-2.0, so it hasn't had the attention it really needs to improve what we can deliver on top of it. I guess the point of my post is to make sure we don't completely disempower/unglorify the platform in our drive towards coherent user focus. Quick followup to this: Someone's going to say, But you can't create a platform without understanding the user problems you're solving (where 'user' can mean end user or developer user). This is true... However! ;-) Much like users don't ask for new technology to solve their problems because they don't understand the potential of the technology (which users would ask for a grid-based programmable calculating system before VisiCalc appeared?), application Developers often don't ask for new platform techology to solve their problems because they don't undertand the potential of the technology. - Jeff -- linux.conf.au 2007: Sydney, Australia http://lca2007.linux.org.au/ 'Cause remember, smug is beautiful. - Zachary Beane ___ desktop-devel-list mailing list desktop-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/desktop-devel-list
Re: Mummy, I made a platform in my pants! [Was: focus!]
Jeff Waugh wrote: That said, culturally we've taken a lot of emphasis and glory away from the platform since pre-2.0, so it hasn't had the attention it really needs to improve what we can deliver on top of it. I guess the point of my post is to make sure we don't completely disempower/unglorify the platform in our drive towards coherent user focus. Much of the 2.0 push was all about platform - GTK+ 2.0 was based on analyzing Qt and Swing and Windows and ensuring widget-by-widget that the API was competitive, for a while Red Hat was sponsoring C++ bindings, I did freedesktop.org, huge debates about component systems, etc. This is definitely what was going on in our minds at that time, within Red Hat at least. I think GTK+ continues pretty strongly and things like freedesktop, dbus, gstreamer, etc. are coming together. If we want to improve the platform though, why not do it using the same specific-benefits-for-specific-audience mindset. Only in this case the audience is programmers and designers. Then we can define enough attention on platform - when is the platform good enough? When is a change important/worthwhile/correct? I'd start by asking what qualitative/differences-in-kind would be made by new platform initiatives. For example, if the platform started including assumed, guaranteed linkage to online services, that really changes what apps I can write. Or if the platform, like Flash, has tools that nonprogrammers/visual-designers can use, then that really changes what apps can be written and who can write apps. Also we have to remember the platform isn't isolated from the end user experience. e.g. on this Mono thread I so rudely interrupted, it was all small footprint vs. shiny new apps - well, that's a tradeoff where you shaft either one audience who cares about one thing or another audience who cares about another. It can't be resolved well except by stepping up to the level of benefits to audience and setting that direction first, then making platform decisions compatible with it. Another example, an HTML/Flash type of platform really lets graphic design come into play, while a toolkit/GTK type of platform makes it actively painful to do original graphic design. People will have strong views on which is better, but either way you line up, the platform clearly sets the user experience on this. A final example, introducing extra platforms to the desktop in the form of Firefox and OO.org complicates things substantially - but also has big user experience wins (or losses, depending on audience) - how do you decide this? You need a clear set of priorities. It's like the Apple comments about whether they've been successful or not. I think anyone who's seriously looked at their platform will know that they have massive silos of ammunition and opportunity in reserve - because they can and will be able to deliver compelling results to users faster, as will their developer ecosystem. Hmm. To me the key to success in most cases won't be developing in 6 months vs. 8, it will be whether a product is laser-focused on getting a benefit to its audience ASAP, and whether the product really introduces new benefits to an audience or not. In the end I definitely agree with you that we need to do both, but I'll eat my hat[1] if the open source world suddenly really converts to the design focus/thinking thing and starts ignoring platform-building. I mean seriously, this is the community that brings us hundreds of Linux distributions and enough programming languages to sink a small tanker. Havoc [1] note, I don't ever wear a hat, so this is kind of an empty offer ___ desktop-devel-list mailing list desktop-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/desktop-devel-list