On Fri, Aug 08, 2014 at 10:06:28AM +0800, 黄羽众 wrote: > Thank you for point out predecessors' question! > > I read the question and get some points, but I thinks the situtations change > a lot and I am not ask the same question. > > 1. I am not ask for why GTK choose to implement in C, I know it have some > historical reason. I want to make a proposal that gtk could be re-written > with c++ just as GCC does. I want to discuss with you whether it is a good > idea.
It's of course possible from an academic perspective, even though as a lot of people have already said it would not be very practical. My suggestion is that anyone who wants to go forward with this makes a fork and works on it, with no expectations that it would ever be merged back. Take the opportunity to break the ABI and make a new great GTK+ inspired toolkit. If it's good then people will adopt it. > 2. Situations change a lot. Back to the time GTK was born, C++ is also very > primitive so the developers would rather implement an object-system by hand. > But nowadays C++ is stable and have many cool features especially in C++11 > and the in-coming C++14. C++'s object-system is becoming more and more > complete and add many useful features in GUI development such as exception, > multi-threads and so on. I think due to the same reason did GCC turn to C++. C is not updated as rapidly as C++ but it is modernized occasionally. Support for multi threading is for example an optional part of C11. This doesn't really matter too much for GTK+ though since it uses Glib. > 3. Now, from the view of app developers, who are very likely learned > C/C++/Java in classes, and learn Python/JS/PHP/Nodejs after class. And very > probably have experiences coding with QT, HTML5, Android. They can't be more > familiar with OOP and C++. But when they turn to GTK, they have to expand one > line in C++ into three or more lines in C. This will threaten many > developers. Although there are gtkmm available, but gtkmm didn't gain enough > official support and recommend as GTK, and much fewer reference, help, > support available. The official recommand is gtk in c rather than gtkmm in > c++, so many devlopers read some tutorials and feel threatened and leave. > What's worse, gtkmm didn't wrapper all of the gtk featurese. In some complex > cases, developers have to use the low level gobj pointer to get things done. If the impression that developers get is that they have to use C or that they are strongly recommended to use C; then that sounds like a problem with the documentation. > Now is in 2014, It can't be more normal to develop GUI application with OOP > style. I think it's time to change. GTK+ is already object oriented, and good GTK+ applications are often that as well even when they are written in C. You don't need support for object orientation in the language in order to use object orientated design. > GTK could be rewritten in C++, and what's more important, GTK should > officially recommend to develop apps in C++, which can't be more familiar to > GUI developers. The GTK+ project web site already says on its first page that while the toolkit itself is written in C it also supports a wide range of other languages. That's fairly official to me. Marcus [1] http://www.gtk.org/ _______________________________________________ gtk-list mailing list gtk-list@gnome.org https://mail.gnome.org/mailman/listinfo/gtk-list