Re: Steps to get to GTK+ 3.0



Hi Gustavo,

6 jun 2008 kl. 19.22 skrev Gustavo J. A. M. Carneiro:

You just need to remember, nobody is forcing you to use Gtk+ 3.0 or even
Gtk+ at all.

That will not be true in practice.  Once Gtk+ 3.0 comes out, Gtk+ 2.0
will die a slow death, and projects have to switch to Gtk+ 3.0
eventually.

Please note the difference between Gtk+ 3.0 and Gtk+ 3.2 and beyond. Gtk+ 2.0 is already doing a good job at dying slowly and many have already agreed that Gtk+ 2.x is a dead end. What is meant by "nobody is forcing you to use Gtk+ 3.0" is simply, since there won't be features packed into it you don't need to move to it in order to get the latest and greatest.

It is a way for you as an application developer to get *more* time to ensure that your code works with the 3.x branch before the feature release 3.2 is out that you probably want to move to.

I think I agree with Muntyan here. Gtk+ 3.0 brings nothing exciting, so
why break API?  It's just so pointless and painful for everyone.  So
much effort done with memory profiling and now we'll have to have two
libraries, gtk+ 2.0 and gtk+ 3.0, side by side, for a few more years?

As outlined numerous times it is a conscious decision to separate features from break for the exact reasons you mention. Everyone who was around during the Gtk+ 1.x -> Gtk+ 2.x transition remembers that it was a painful exercise to migrate (and some still haven't taken the step). Gtk+ 2.0 was had a lot of new features and broke the API in many ways that made it really hard for application developers.

This is not the kind of break we are talking about with Gtk+ 3.0, it's a way smaller break that most importantly doesn't change the application logic in any way.

If, as I suspect, Gtk+ 3.0 is more of a marketing stunt than anything
else, great, we can release the next gtk+ 2.x as two separate libraries
and header files:

I can assure you that Gtk+ 3.0 has nothing to do with marketing and if anything it is a bad marketing move to bring out a new major version without major features. Gtk+ 3.0 is about bringing us out of the current dead end, improve the maintainability of the library and provide for a *smooth* migration to a new development policy that will enable the Gtk+ team to incrementally improve the library.

  1. gtk+-3.0: only the non-deprecated APIs
  2. gtk+-2.0 deprecated: only the deprecated APIs

$(pkg-config --libs gtk+-2.0) would yield -lgtk+-2.0 -lgtk+-3.0,
while $(pkg-config --libs gtk+-3.0) would give -lgtk+-3.0.
>
Everyone will be happy.  Projects that compile with gtk+ 2.0 with
GTK_DISABLE_DEPRECATED automatically become "gtk+ 3.0 ready".

That is exactly what will happen, if your application compiles with GTK_DISABLE_DEPRECATED and GSEAL_ENABLE you are good to go with Gtk+ 3.0. Though the linking will probably not look as you suggested above but I don't see that there is a difference.

The idea is to make the transition from 2.x to 3.x as painless as possible and if your code compiles with the latest 2.x with GTK_DISABLE_DEPRECATED and GSEAL_ENABLE it will also work on Gtk+ 3.x.

Best Regards,
  Mikael Hallendal

--
Mikael Hallendal
Imendio AB - Expert solutions in GTK+
http://www.imendio.com







[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]