For me, one of the most important GTK+ features is that it is
implemented in plain C. This simplifies its usage from other languages
(Lua, Go, C#, Rust, etc) as it is much more easy to have a C FFI than
a C++ FFI. For those who want to program with GTK+ with a C++
interface, there is gtkmm already.

On Mon, Aug 11, 2014 at 8:04 AM, Marcus Karlsson <m...@acc.umu.se> wrote:
> 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



-- 
http://oproj.tuxfamily.org
_______________________________________________
gtk-list mailing list
gtk-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-list

Reply via email to