Re: Mummy, I made a platform in my pants! [Was: focus!]

2006-07-21 Thread Hubert Figuiere
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!]

2006-07-19 Thread Federico Mena Quintero
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!]

2006-07-19 Thread Havoc Pennington
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!]

2006-07-19 Thread Alex Graveley

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

2006-07-19 Thread Luis Villa
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!]

2006-07-19 Thread Jamie McCracken
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!]

2006-07-19 Thread David Nielsen
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!]

2006-07-18 Thread Havoc Pennington
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!]

2006-07-18 Thread Jeff Waugh
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!]

2006-07-18 Thread Jeff Waugh
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!]

2006-07-18 Thread Havoc Pennington
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