Re: Would it be possible that gtk implementation in C++



Rewriting a widely-used library in a new language, breaking all APIs, is not a good idea when we're already struggling to maintain our current codebase. Regardless of whether you like C++ or not, this isn't going to happen. Sorry.


On Thu, Aug 7, 2014 at 10:06 PM, 黄羽众 <ihyzi 163 com> 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.

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++.

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.


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 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.


Sent from MEIZU MX

-------- Original Message --------
From:Florian Pelz <pelzflorian googlemail com>
Time:Fri 8/8 05:23
To:gtk-list gnome org
Subject:Re: Would it be possible that gtk implementation in C++

>Hi,
>
>Someone asked this question on Stackoverflow:
>http://stackoverflow.com/questions/9747468/why-was-the-gobject-system-created
>I think they answer it pretty well. Also, C is much closer to the
>hardware and GCC's error messages for C++ are not that great.
>
>On 08/07/2014 10:49 PM, Dub wrote:
>> tbh, the only reason I use GTK is because it is C.
>>
>> While C++ is probably a better choice. C allows you to easier
>> integrate it with pretty much any language of your choosing easily
>> (Vala, Ruby, PHP (lol), Python, Rust, Go, Perl, Lua, _javascript_, etc)
>> that in itself is a really good reason.
>>
>>
>> On Thu, Aug 7, 2014 at 12:22 PM, 黄羽众 <ihyzi 163 com
>> <mailto:ihyzi 163 com>> wrote:
>>
>>     For the past few time, I am using gtkmm to development GUI
>>     application, and I am really enjoy it.
>>
>>     I know that choose C as its implementation language makes gtk gain
>>     a wonderful performance,
>>     but recently GCC turn to C++.
>>     https://gcc.gnu.org/gcc-4.8/changes.html
>>
>>     I think that as a complier which have to think a lot about
>>     performance, it turn to C++ for code elegance and development speed,
>>     a GUI application have no reason to continue using C stuff.
>>
>>     Actually gtk implement a object system as its essential part, that
>>     did prove that GUI application need a object-oriented design.
>>     And C++ could provide this as a language level feaure, needless to
>>     implement it in application code.
>>
>>     So I suggest that it is possible to develop gtk in c++ as
>>     main-line support?
>>
>>     Unlike gtkmm, which is just a wrapper from c++ to c, turn to c++
>>     in main-line means a lot.
>>
>>     GCC choose this and get good result, I think gtk could have a try.
>>
>>
>>
>>     _______________________________________________
>>     gtk-list mailing list
>>     gtk-list gnome org <mailto:gtk-list gnome org>
>>     https://mail.gnome.org/mailman/listinfo/gtk-list
>>
>>
>>
>>
>> _______________________________________________
>> gtk-list mailing list
>> gtk-list gnome org
>> https://mail.gnome.org/mailman/listinfo/gtk-list
>
>
>_______________________________________________
>gtk-list mailing list
>gtk-list gnome org
>https://mail.gnome.org/mailman/listinfo/gtk-list

_______________________________________________
gtk-list mailing list
gtk-list gnome org
https://mail.gnome.org/mailman/listinfo/gtk-list




--
  Jasper


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