Linked by Thom Holwerda on Tue 21st Sep 2010 21:32 UTC, submitted by diegocg
Qt After many months of designing, coding, reviewing, testing and documenting, Qt 4.7.0 is finally ready for the big time. Although it's a little more than nine months since Qt's last feature release (4.6.0 on December 1, 2009), the seeds of some of the new stuff in 4.7 were sown much earlier. Indeed, many of the ideas behind the biggest new feature in Qt 4.7.0, Qt Quick, were born more than two years ago, not long after Qt 4.4 was released
Order by: Score:
QML looks good
by flynn on Tue 21st Sep 2010 23:06 UTC
flynn
Member since:
2009-03-19

QML seems nice, it's like JavaFX, but with less fail.

Reply Score: 5

RE: QML looks good
by shmerl on Wed 22nd Sep 2010 04:05 UTC in reply to "QML looks good"
shmerl Member since:
2010-06-08

As well as XUL, MXML etc.

Reply Score: 1

RE[2]: QML looks good
by mart on Wed 22nd Sep 2010 15:41 UTC in reply to "RE: QML looks good"
mart Member since:
2005-11-17

As well as XUL, MXML etc.

yes and no, even if the "end result" could look similar to animations done in flash or javafx, the fundamentals of the language are pretty peculiar: it's quite heavily based on the declarative description of a state machine. that allows to do cool animations in the ui leaving the codebase pretty simple and elegant (and still human, and non coder readable)
the only thing as far i'm aware that shares a good degree of similarity with it (as a general paradigm, not implementation) is the efl framework from Enlightenment

Reply Score: 3

Comment by mtzmtulivu
by mtzmtulivu on Wed 22nd Sep 2010 06:20 UTC
mtzmtulivu
Member since:
2006-11-14

rekonq uses qtwebkit(ships with qt) and it is very crash happy. Hope the crashes are coming from qtwebkit and they are fixed in this release. I like the browser but i switched back to firefox because it was crashing waaay too often.

qtwebkit also uses phonon to handle html5 media elements and hence should be able to handle all codecs phonon backend media player can handle. I use xine backend and xine can play h.264 so i have support for the codec but rekonq simply wouldnt play html5/h.264 videos. It played theora just fine. Hope the fix is in this release too. On my way to compile it and test.

Reply Score: 2

RE: Comment by mtzmtulivu
by lemur2 on Wed 22nd Sep 2010 07:22 UTC in reply to "Comment by mtzmtulivu"
lemur2 Member since:
2007-02-17

rekonq uses qtwebkit(ships with qt) and it is very crash happy. Hope the crashes are coming from qtwebkit and they are fixed in this release. I like the browser but i switched back to firefox because it was crashing waaay too often.


webkit is mature code. rekonq is development code. In the upcoming Kubuntu 10.10 (maverick meercat), rekonq has been made the default browser, even though it is only version 0.6.

Happily this version is far more stable than earlier versions, but be warned (as the version number should tell you), this is still development code, it is not yet stable.

Given that qtwebkit is mature code, and also given that rekonq isn't mature code, one would presume that any crashes you are experiencing are more likely to be due to reconq that to be due to qtwebkit.

Reply Score: 2

RE[2]: Comment by mtzmtulivu
by Neolander on Wed 22nd Sep 2010 08:24 UTC in reply to "RE: Comment by mtzmtulivu"
Neolander Member since:
2010-03-08

Yeah, Ubuntu have that annoying habit of pushing forward alpha-quality software... PulseAudio, early releases of KDE4, rekonq...

Reply Score: 2

RE[3]: Comment by mtzmtulivu
by tuco on Wed 22nd Sep 2010 09:44 UTC in reply to "RE[2]: Comment by mtzmtulivu"
tuco Member since:
2010-09-22

It's the same with Fedora, Opensuse, Mandriva...

Reply Score: 1

RE[4]: Comment by mtzmtulivu
by Neolander on Wed 22nd Sep 2010 11:18 UTC in reply to "RE[3]: Comment by mtzmtulivu"
Neolander Member since:
2010-03-08

Well, Ubuntu and Fedora are a bit worse in that they push things forward. On Mandriva, alpha-quality features are introduced cautiously (pulseaudio can be easily disabled if it does not work, compiz was not automatically enabled last time I checked). On openSUSE, they were generally more serious about adding new features at all, except for incomplete open-source drivers.

Reply Score: 5

RE[2]: Comment by mtzmtulivu
by Fettarme H-Milch on Wed 22nd Sep 2010 12:45 UTC in reply to "RE: Comment by mtzmtulivu"
Fettarme H-Milch Member since:
2010-02-16

webkit is mature code.

QtWebKit from Qt 4.6 is not mature. In 4.7 it's way better but there are still a few issues, especially related to text fields (no spell check, weird theming at least with Qxygen, and a few other relatively minor issues).

Still, QtWebKit became a fine rendering engine in Qt 4.7.

Edited 2010-09-22 12:48 UTC

Reply Score: 2

v RE[2]: Comment by mtzmtulivu
by leos on Wed 22nd Sep 2010 17:15 UTC in reply to "RE: Comment by mtzmtulivu"
RE[3]: Comment by mtzmtulivu
by lemur2 on Thu 23rd Sep 2010 09:30 UTC in reply to "RE[2]: Comment by mtzmtulivu"
lemur2 Member since:
2007-02-17

"rekonq is development code. In the upcoming Kubuntu 10.10 (maverick meercat), rekonq has been made the default browser, even though it is only version 0.6.


^
|
This. Why I no longer use Linux.
"

Orly?

You no longer use Linux because one desktop (which is not even the main desktop for that distribution) changed the default browser?

My, yor smart, aintchya.

BTW, it is dead easy to un-install the browser and change the default, and you are given a choice of at least four fine, free, freedom browsers that you can install. You don't even need a browser installed in order to be able to install another.

Sheesh.

Reply Score: 2

RE[4]: Comment by mtzmtulivu
by Calipso on Thu 23rd Sep 2010 10:44 UTC in reply to "RE[3]: Comment by mtzmtulivu"
Calipso Member since:
2007-03-13

think he means distros that release software that's not ready for mass consumption yet. Granted he could choose a less cutting edge distro but I guess if you want the latest and greatest, you have to be ready to deal with some bugs/unstability.

Reply Score: 2

RE[4]: Comment by mtzmtulivu
by flynn on Thu 23rd Sep 2010 13:27 UTC in reply to "RE[3]: Comment by mtzmtulivu"
flynn Member since:
2009-03-19


Orly?

You no longer use Linux because one desktop (which is not even the main desktop for that distribution) changed the default browser?

My, yor smart, aintchya.

BTW, it is dead easy to un-install the browser and change the default, and you are given a choice of at least four fine, free, freedom browsers that you can install. You don't even need a browser installed in order to be able to install another.

Sheesh.

Are you seriously too blind too realize that the post is not about rekonq specifically but about the ever present attitude amongst linux developers thinking that putting alpha quality software as the default is a good idea?

Things like PulseAudio, rekonq and oss graphics drivers are introduced as the defaults before they are ready and then people wonder why average people can't get their computer working properly or find linux hard to use. This incessant "it will work eventually" attitude might work in an imaginary ideal world, but here in the real world, people have shit they need to do on their computers, today. Not in three years when your new fangled software finally reaches maturity, but today.

Reply Score: 0

RE[5]: Comment by mtzmtulivu
by spiderman on Thu 23rd Sep 2010 15:16 UTC in reply to "RE[4]: Comment by mtzmtulivu"
spiderman Member since:
2008-10-23


Are you seriously too blind too realize that the post is not about rekonq specifically but about the ever present attitude amongst linux developers thinking that putting alpha quality software as the default is a good idea?

Things like PulseAudio, rekonq and oss graphics drivers are introduced as the defaults before they are ready and then people wonder why average people can't get their computer working properly or find linux hard to use. This incessant "it will work eventually" attitude might work in an imaginary ideal world, but here in the real world, people have shit they need to do on their computers, today. Not in three years when your new fangled software finally reaches maturity, but today.

Man, you confuse "linux developers" with Ubuntu developers. (Or Fedora, or whatever cutting edge distro)
Use a good distro and the problem is gone.
Try Red Hat, Slackware, Debian stable or whatever.

Edited 2010-09-23 15:19 UTC

Reply Score: 4

RE: Comment by mtzmtulivu
by emerson999 on Thu 23rd Sep 2010 21:51 UTC in reply to "Comment by mtzmtulivu"
emerson999 Member since:
2007-12-08

You want to see real horror with qtwebkit, try using the java bindings. To be fair, they ditched those to the community for support. But it's still amazing just how slow that is. While I look at it embedded in C++ based browsers, and it flies.

Reply Score: 1

RE[2]: Comment by mtzmtulivu
by Richard Dale on Thu 23rd Sep 2010 22:42 UTC in reply to "RE: Comment by mtzmtulivu"
Richard Dale Member since:
2005-07-22

You want to see real horror with qtwebkit, try using the java bindings. To be fair, they ditched those to the community for support. But it's still amazing just how slow that is. While I look at it embedded in C++ based browsers, and it flies.


I'm not sure why that should be. I wouldn't expect the language bindings to be involved much when a web page is being rendered.

Reply Score: 3

Congrats!
by ricegf on Wed 22nd Sep 2010 11:22 UTC
ricegf
Member since:
2007-04-25

QT Quick, as I understand it, intends to make non-programmer user interface specialists first-class citizens of the development team. Great goal, and it looks good so far.

QT supports cross-platform development for newer Symbian phones (including the N8) and MeeGo phones, tablets, netbooks, TVs, In-Vehicle, ... well, MeeGo kinda gets around. ;-) QT apps also run on my N900, and of course on Windows and Linux computers - and it's the default framework for KDE 4.

I'm very happy to see that 4.7 is now official.

Reply Score: 4

RE: Congrats!
by vivainio on Wed 22nd Sep 2010 13:07 UTC in reply to "Congrats!"
vivainio Member since:
2008-12-26

QT Quick, as I understand it, intends to make non-programmer user interface specialists first-class citizens of the development team.


I think the more important goal is that QML allows your UI to kick ass.

It's very easy to create a UI with the "old" stuff (QWidgets - basically the same as visual basic/winforms/delphi/whatever), but doing something "impressive" in terms of glorious animations is hard. QML makes it easy.

Problem with QML has been that a graphical designer has been necessary to get stuff done. The answer to this is "Qt Components":

http://labs.qt.nokia.com/2010/09/10/building-the-future-reintroduci...

Reply Score: 2

RE[2]: Congrats!
by mart on Wed 22nd Sep 2010 15:46 UTC in reply to "RE: Congrats!"
mart Member since:
2005-11-17

Problem with QML has been that a graphical designer has been necessary to get stuff done. The answer to this is "Qt Components":


the graphical designer helps but is not necessary, the syntax is really simple.
the problem is that it provides only primitives, so developers would have to write their own "widget set" to be reused (or reuse an already existing one, either QWidget or QGraphicsWidget based, it works just fine)
what qt quick wil do is to provide a basic widget set, written in QML itself and themed with the particular platform style it's running in.
so a layer for the coherency without sacrificing the expressivity.

Reply Score: 2

RE[3]: Congrats!
by vivainio on Wed 22nd Sep 2010 17:48 UTC in reply to "RE[2]: Congrats!"
vivainio Member since:
2008-12-26


the problem is that it provides only primitives, so developers would have to write their own "widget set" to be reused


That's what I meant by requiring a graphics designer - as a developer I can't draw widgets that look tolerable.

Reply Score: 2

RE[4]: Congrats!
by mart on Wed 22nd Sep 2010 17:51 UTC in reply to "RE[3]: Congrats!"
mart Member since:
2005-11-17

"
the problem is that it provides only primitives, so developers would have to write their own "widget set" to be reused


That's what I meant by requiring a graphics designer - as a developer I can't draw widgets that look tolerable.
"
eheh, so true ;)

Reply Score: 1

RE[2]: Congrats!
by _txf_ on Wed 22nd Sep 2010 20:12 UTC in reply to "RE: Congrats!"
_txf_ Member since:
2008-03-17

I suspect that it is easier to get things done by using the text editor.

I hope that qt quick becomes as powerful as xaml and qt creator rivals expression blend.

Haven't tried it yet but I doubt it as anywhere as easy to create awesome animations as it is in expression blend.

Reply Score: 2

Comment by Stephen!
by Stephen! on Wed 22nd Sep 2010 18:51 UTC
Stephen!
Member since:
2007-11-24

Is Qt 4.7 currently required to compile KDE4, or is it still using Qt 4.6?

Reply Score: 1

RE: Comment by Stephen!
by noobsaibot on Wed 22nd Sep 2010 20:43 UTC in reply to "Comment by Stephen!"
noobsaibot Member since:
2010-01-09

kde 4.5.1 on my box was compiled with Qt 4.6

Reply Score: 1

RE[2]: Comment by Stephen!
by lemur2 on Thu 23rd Sep 2010 09:36 UTC in reply to "RE: Comment by Stephen!"
lemur2 Member since:
2007-02-17

kde 4.5.1 on my box was compiled with Qt 4.6


Which is of course entirely sensible, since KDE 4.5.1 was released prior to Qt 4.7.

August 31st, 2010
http://www.kde.org/announcements/announce-4.5.1.php

September 21st, 2010
http://labs.qt.nokia.com/2010/09/21/qt-4-7-0-now-available/

Reply Score: 3

RE: Comment by Stephen!
by spiderman on Thu 23rd Sep 2010 05:48 UTC in reply to "Comment by Stephen!"
spiderman Member since:
2008-10-23

It depends on who compiled your KDE and with which QT version. It can be compiled with 4.7 or earlier versions.

Reply Score: 3

RE: Comment by Stephen!
by mart on Thu 23rd Sep 2010 15:34 UTC in reply to "Comment by Stephen!"
mart Member since:
2005-11-17

Is Qt 4.7 currently required to compile KDE4, or is it still using Qt 4.6?


the 4.5 branch will require Qt 4.6 forever.
trunk (what will be the KDE 4.6 platform) will require Qt 4.7 in about 2 weeks

Reply Score: 2

axilmar
Member since:
2006-03-20

Qt has become extremely bloated...furthermore, it is no longer a c++ library. It's a collection of libraries, tools and and programming languages that one needs to master.

I think it's time for a new simple c++ GUI library.

Reply Score: 0

richmoore Member since:
2005-08-06

Since you can choose which modules you enable for your application, the fact that there are lots of features doesn't actually add any overhead.

Reply Score: 2

spiderman Member since:
2008-10-23

Just use GTK then. I don't think we really need yet another GUI library.

Reply Score: 2

axilmar Member since:
2006-03-20

Just use GTK then. I don't think we really need yet another GUI library.


Let's see. Is there a c++ GUI library that:

1) does not have proprietary language extensions?
2) does not depend on external tools?
3) is only about GUI?
4) follows object-oriented principles cleanly?
5) reuses the STL or STL-like principles?
6) reuses the native widgets?

Let's take one library at a time:

a) Qt fails at #1 and #2 and #3 and #5 and #6.
b) GTK is C, not C++; GTKMM has some serious problems (even the authors say don't use the latest version, it contains serious regressions).
c) MFC fails at #3, #4 and #5.
d) ATL/WTL fails at #4 and #5.
e) wxWidgets fail at #4 and #5.

Edited 2010-09-23 13:18 UTC

Reply Score: 1

siride Member since:
2006-01-02

Use .NET or Java. Let's not continue to waste time with C++ as it's a horrible language and for most GUI apps, you don't need the "speed" it provides.

Reply Score: 2

turrini Member since:
2006-10-31

I think you are horrible.

C first appeared in 1972, C++ in 1983. They're in use today, and will be for the next 40 years.

You will not survive until that, C/C++ will. Neither Java/.NET will.

So who is the horrible here?

Reply Score: 2

siride Member since:
2006-01-02

That's also true for COBOL and FORTRAN and MS Windows. Good company, eh? I mean, to be honest, that's really a terrible argument. Christianity as been around for a long time, as has prostitution and murder. Does age really mean anything? Not really. Just because C++ has been around does not mean it's the be-all, end-all.

Look, C++ is not a well-designed, well-implemented language. It's not good for RAD or business apps. It has its pluses, but mostly in the metaprogramming, performance-computing and research arena. For writing business apps, it just doesn't make sense. You have to do so much work, deal with slow and difficult compilers and work around semantics problems in the language. Why bother when you just need to make some forms and DB connections? Just use .NET or Java for that.

Reply Score: 2

tbcpp Member since:
2006-02-06

True, but that does ignore one important fact: there's no true replacement for C++ available. If I'm writing a game/compiler/hpc code I am forced to use C++. I may not like it, but there is no other option for code that needs to run as fast as possible and with as little memory overhead as possible.

Get me a language that can do that (and with a decent ide) and I'll be a happy camper.

Reply Score: 3

siride Member since:
2006-01-02

True, but that does ignore one important fact: there's no true replacement for C++ available. If I'm writing a game/compiler/hpc code I am forced to use C++. I may not like it, but there is no other option for code that needs to run as fast as possible and with as little memory overhead as possible.

Get me a language that can do that (and with a decent ide) and I'll be a happy camper.

It's like people don't even read my post. Yeah, I know that C++ is really good at some things. But for throwing together GUI apps, business apps, webapps, etc. it really is not useful (and those are the kind of apps we are talking about, after all, since the topic of conversation is Qt, not general C++ usage). It's better to use .NET or Java.

Interestingly enough, both of those languages are quite suitable for writing compilers and indeed the compilers for languages on those platforms are generally written in C# or Java. And guess what? They are much faster than C++ compilers. Memory usage is definitely worse, though, but with the exception of some embedded platforms, that's not an issue.

Reply Score: 2

lemur2 Member since:
2007-02-17

True, but that does ignore one important fact: there's no true replacement for C++ available. If I'm writing a game/compiler/hpc code I am forced to use C++. I may not like it, but there is no other option for code that needs to run as fast as possible and with as little memory overhead as possible. Get me a language that can do that (and with a decent ide) and I'll be a happy camper.


http://en.wikipedia.org/wiki/D_%28programming_language%29

http://www.digitalmars.com/d/

If you don't need OO:
http://en.wikipedia.org/wiki/Google_go

Will either of those suit?

Reply Score: 3

turrini Member since:
2006-10-31

I am C programmer for over 20 years and never had any of the problems you mentioned above.\

The difficults that novice programmers encounter are because they don't know computing at all.

That's why they makes mistakes.
That's why they can't develop in C/C++.

A real programmer must know, MUST KNOW, the machine he is operating.

Otherwise, they keep themselves in ignorance and use .NET, Java or SomeOtherManagedAndEasyLanguage.

Edited 2010-09-23 19:19 UTC

Reply Score: 3

siride Member since:
2006-01-02

Read the C++ FQA. It's not just beginner mistakes. The language is fundamentally *nasty*.

I've also done C for quite some time. I've done assembly. I even wrote my own assembler and my own virtual machine. I've done C++, Java, Perl, PHP, C# and, sigh, even VBA. I have books on operating system kernels and how the computer works on a low-level. I've taken classes in that stuff. Believe me, I'm not just saying this because I don't get pointers. I get pointers. I can deal with C++, but it's such a fscking pain and the more I use other languages, the more I find them to be considerably superior except in the performance/memory-usage department. Better, though, is to write most of your app in a managed language and write the performance critical core in C++ or another unmanaged language.

Reply Score: 3

nt_jerkface Member since:
2009-08-26


That's why they makes mistakes.
That's why they can't develop in C/C++.


You should work on English before any programming language so you don't sound like Skwisgaar Skwigelf.


Otherwise, they keep themselves in ignorance and use .NET, Java or SomeOtherManagedAndEasyLanguage.


RealCarpentersDontUseNailGuns.

You seem to not realize that lot of C# programmers have a C++ background. A big reason why MS used C syntax was to make it appealing to programmers with existing C/C++ experience.

Sometimes it makes sense to use managed code, sometimes it doesn't. But being completely dismissive of managed languages doesn't make any sense at all.

Watch out for those pointers, don't want to leave yet another buffer overflow exploit.

Reply Score: 2

axilmar Member since:
2006-03-20

Neither language you propose have a good quality GUI library. Swing is very tedious to program, Windows Forms is tied to Windows.

Furthermore, I program real time applications for a living, and I don't think that both languages are suitable for me.

Reply Score: 3

siride Member since:
2006-01-02

Guess what, a lot of people use Windows.

Reply Score: 2

_txf_ Member since:
2008-03-17

the fact that none of those toolkits fulfill all your criteria should say something.

Maybe YOU can be the genius that designs a library that fits your very specific needs?

Reply Score: 3

mart Member since:
2005-11-17

Qt has become extremely bloated...furthermore, it is no longer a c++ library. It's a collection of libraries, tools and and programming languages that one needs to master.

I think it's time for a new simple c++ GUI library.


1) it's pure and simple c++, really
languages like the xml formt for layouts (.ui files) or QML are just to -help- since creating the gui layout directly in the code is plain ugly. in any language.
as for the bloated.. Qt is not -one- library, it's a set of libraries, each one pretty simple. you always use and link -only- to the ones you need/use.
it you link only to QtCore for instance you don't even have any gui-related functions, only pure event loop, QObjects with signals and slots.. and that's it.

Reply Score: 2

siride Member since:
2006-01-02

Hey, don't let facts get in the way of a good, ill-informed rant.

Reply Score: 2

axilmar Member since:
2006-03-20



1) it's pure and simple c++


It's not. The Signals And Slots mechanism requires the MOC.

Reply Score: 2

mart Member since:
2005-11-17


It's not. The Signals And Slots mechanism requires the MOC.


that is in turn pure c++
now one can debate if auto generated code is a good thing or not, but if you open a moc file you'll find nothing but perfectly valid c++

Reply Score: 2

axilmar Member since:
2006-03-20

"
It's not. The Signals And Slots mechanism requires the MOC.


that is in turn pure c++
now one can debate if auto generated code is a good thing or not, but if you open a moc file you'll find nothing but perfectly valid c++
"

You didn't get it. Qt is not pure C++ because it requires an external tool other than the compiler itself.

Reply Score: 2

anda_skoa Member since:
2005-07-07

You didn't get it. Qt is not pure C++ because it requires an external tool other than the compiler itself.


No, mart is right. All code necessary for Qt applications are pure C++, compilable with basically all C++ compilers available today.

It also comes with a set of tools that allow developers to automate certain tasks or avoid having to write boilerplate code again and again.

These code generators, e.g. qmake, moc or uic, take an input file which is easier to write, read and maintain than the code which is actually required.

qmake takes a simple text based project file and generates platform specific makefiles or even IDE project files. While writing Makefiles might still be possible manually (or writing shell scripts that contain all compiler invocations), this would be pretty difficult for IDE project files.

moc doesn't require an additional input file, it gets its input from the usual source and header files and generates C++ code. Again these can obviously also be written manually, but that would be quite boring.

uic takes XML bases files which describe UI forms and, again generates C++ code. Doing that manually is again possible, but doing UI visually is gives a developer an early impression on how it will look like and even allows non-developers (e.g. designers) to work on UI parts.

Tools that help development by generating code of some sort are quite common. Almost no build is done manually but through a build system with an easier input format (aside from qmake, e.g. cmake, autotools, ant/maven).

My guess is that this is why developers usually don't talk about compilers as stand alone entities but as part of their tool chain.
Because it is just so common that more than one tool is involved in building software

Edit: trying to fix quoting

Edited 2010-09-24 13:06 UTC

Reply Score: 2

axilmar Member since:
2006-03-20


No, mart is right. All code necessary for Qt applications are pure C++, compilable with basically all C++ compilers available today.

It also comes with a set of tools that allow developers to automate certain tasks or avoid having to write boilerplate code again and again.

These code generators, e.g. qmake, moc or uic, take an input file which is easier to write, read and maintain than the code which is actually required.

qmake takes a simple text based project file and generates platform specific makefiles or even IDE project files. While writing Makefiles might still be possible manually (or writing shell scripts that contain all compiler invocations), this would be pretty difficult for IDE project files.

moc doesn't require an additional input file, it gets its input from the usual source and header files and generates C++ code. Again these can obviously also be written manually, but that would be quite boring.

uic takes XML bases files which describe UI forms and, again generates C++ code. Doing that manually is again possible, but doing UI visually is gives a developer an early impression on how it will look like and even allows non-developers (e.g. designers) to work on UI parts.

Tools that help development by generating code of some sort are quite common. Almost no build is done manually but through a build system with an easier input format (aside from qmake, e.g. cmake, autotools, ant/maven).

My guess is that this is why developers usually don't talk about compilers as stand alone entities but as part of their tool chain.
Because it is just so common that more than one tool is involved in building software

Edit: trying to fix quoting


Let me ask you a question: can you define new signals and slots in Qt with only using the C++ compiler and linker?

Reply Score: 2

siride Member since:
2006-01-02

Yes you can. Go look at what MOC generates. It just generates some tables and a few boilerplate methods. It's all there, in C++. There's no special tricks that only MOC can do. You can write it manually if you want. It's just tedious and pointless because MOC does it automatically and with more readable C++. Same reason why people use macros and templates instead of tediously writing out the same code over and over again. Or why people use C and C++ instead of assembly. And so on.

Reply Score: 2

Morty Member since:
2005-07-06

"[q] It's not. The Signals And Slots mechanism requires the MOC.
that is in turn pure c++ now one can debate if auto generated code is a good thing or not, but if you open a moc file you'll find nothing but perfectly valid c++ " You didn't get it. Qt is not pure C++ because it requires an external tool other than the compiler itself. [/q]
Since you are not requred to use MOC to utilize the Qt libraries, it's by your own reasoning pure C++. Since nothing stops you from manually write the pure C++ code that MOC generates, rather than having MOC generate it for you. That it would be a totally stupid and pointless thing to do, is another issue altogheter. Much like arguing against Qt on grounds of it not being "pure" C++.

Reply Score: 2

axilmar Member since:
2006-03-20

Since you are not requred to use MOC to utilize the Qt libraries, it's by your own reasoning pure C++.


How is it pure C++, when it requires me to alter the way I work? with pure C++, you only need a text editor and the compiler.

Reply Score: 2

Morty Member since:
2005-07-06

"Since you are not requred to use MOC to utilize the Qt libraries, it's by your own reasoning pure C++.
How is it pure C++, when it requires me to alter the way I work? with pure C++, you only need a text editor and the compiler. "

As I already have written, you do not have to use MOC. Nothing stops you from manually write the pure C++ code that MOC generates.

Edited 2010-09-24 14:03 UTC

Reply Score: 2

siride Member since:
2006-01-02

Do you really call gcc manually always, or do you use makefiles? If you use makefiles, like any sane person, then your workflow is not altered by using MOC.

Of course, it sounds like you're one of those people who wants to take a dumbass stand on an issue of insignificance as you try to get people to convince you that what already makes sense (MOC) isn't unreasonable.

Reply Score: 2

mart Member since:
2005-11-17

You didn't get it. Qt is not pure C++ because it requires an external tool other than the compiler itself.

requiring a tool to generate code and being another language is a tad different.
everything that the programmer writes validates perfectly, and that for me closes it.

Reply Score: 1

_txf_ Member since:
2008-03-17

If you're so dead set against using tools why don't you program in assembler?

Is there any Decent and modern gui toolkit that does not use external tools to create boilerplate code?

Seriously what is the point? Boilerplate code is always the same.

Reply Score: 2

axilmar Member since:
2006-03-20

If you're so dead set against using tools why don't you program in assembler?


I use tools, but I don't want to use more tools than what is actually required. The MOC is not really necessary in order to have signals and slots: any other signals and slots system does not use an external tool.

Is there any Decent and modern gui toolkit that does not use external tools to create boilerplate code?


Nope. That's what I said.

Reply Score: 2

siride Member since:
2006-01-02

"If you're so dead set against using tools why don't you program in assembler?


I use tools, but I don't want to use more tools than what is actually required. The MOC is not really necessary in order to have signals and slots: any other signals and slots system does not use an external tool.
"
MOC really is required for Qt, so you have to use it. End of story. Just deal with it. I mean, what are you gaining by taking this ridiculous stance about MOC? It's not that hard. It costs pretty much nothing. It's fairly automatic if you use any type of build system at all. Stop bitching about something that almost nobody else cares about and just get your job done. Really isn't that hard. People like you make me weep for the programming community.

"Is there any Decent and modern gui toolkit that does not use external tools to create boilerplate code?


Nope. That's what I said.
"
A lot of other toolkits actually do use autogenerated code. Some Java frameworks do it. .NET does it. It makes things easier because you can avoid the tedium of building your GUI in pure code.

As I said in another comment, if C++ had proper reflection, MOC wouldn't be needed. Yet another reason why C++ is actually a poor language for building GUIs (among other things).

Reply Score: 3

axilmar Member since:
2006-03-20

MOC really is required for Qt, so you have to use it. End of story. Just deal with it.


Nope, sorry, the attritude of 'just deal with it' is not acceptable for me.

I mean, what are you gaining by taking this ridiculous stance about MOC? It's not that hard. It costs pretty much nothing. It's fairly automatic if you use any type of build system at all. Stop bitching about something that almost nobody else cares about and just get your job done. Really isn't that hard. People like you make me weep for the programming community.


I guess you never had to manually setup the MOC for each file you created, because there was no support for the MOC in the IDE of your choice. It happened to me, in the context of the project at work, and it was not pretty.

Reply Score: 2

siride Member since:
2006-01-02

You seriously can't use qmake like other sane people? I mean, if you want to use weirdo setups that are incompatible with the tools you are using, then you will have to deal with the mess. A whole bunch of other people get by just fine without any problem at all because they don't try to create giant piles of problems by intentionally doing things wrong.

Did you know that using Qt requires a C++ compiler? Yeah, what a fscking pain! My weirdo IDE only supports C and INTERCAL. Clearly, Qt is not usable at all.

Reply Score: 3

nt_jerkface Member since:
2009-08-26

I don't want to use a nail gun if it means I can't load nails that I forged myself.

Let me know when they make a nail gun that doesn't require specialized nails.

Reply Score: 2

_txf_ Member since:
2008-03-17

Possibly what I should have added:

Is there any other way to automatically create boilerplate code short of creating a new language (that probably will do so behind the scenes anyway)?

That is unless you're a masochist that enjoys writing boilerplate code just to keep purity in the language (of which c++ isn't already)?

Personally I prefer to make applications quickly instead of writing reams of code that are exact copies of that produced by machines. My time is pretty valuable to me.

Edited 2010-09-24 16:11 UTC

Reply Score: 2

nt_jerkface
Member since:
2009-08-26

It doesn't matter what Oracle does at this point, Java will never be as clean and Qt isn't tied to a single language.

Java on the server isn't safe either.

People like Shuttleworth need to get over their attachment to GTK and Gnome. Qt and KDE have better teams and better plans for the future.

Qt just has to hit the tipping point where it rivals Apple's native toolkits. A Qt port is in development for Android as well.

Reply Score: 3

Kalessin Member since:
2007-01-18

And how often is Java used for GUI apps? Sure, it happens often enough (presumably Android apps done in Java are typically GUI apps), but a lot of the stuff that Java is used for has nothing to do with GUIs (especially since swing looks so ugly, though many Java GUI apps use SWT, which looks much better). Java is not the language of choice for GUI apps and never has been.

So, while a more powerful Qt might make doing certain stuff in C++ easier, it's not like it's going to do in Java. Even Oracle's stupidity won't kill it, since it's been open sourced. Now, Oracle's stupity may very well seriously reduce how much Java is used, but it won't kill it.

A better Qt may whittle away at Java's user base, but it isn't going to kill it.

Reply Score: 1

nt_jerkface Member since:
2009-08-26


So, while a more powerful Qt might make doing certain stuff in C++ easier, it's not like it's going to do in Java.

It will in the consumer software sphere which is what I was referring to. Java is still used once in a while for cross-platform consumer applications but Qt will eliminate Java as even a consideration.


Even Oracle's stupidity won't kill it, since it's been open sourced.


Just because something is open sourced does not mean that it will progress. OpenOffice was also open sourced and yet over 90% of the commits were from Sun. Giant codebases like Java and OO require a team of paid developers. Open source does not guarantee success, just look at the HURD.

Reply Score: 2

iria Member since:
2010-05-17

Shuttleworth is/was using KDE SC on his desktop.
Read interview - http://derstandard.at/3413801/Shuttleworth-Apple-is-driving-the-inn...

Reply Score: 1

nt_jerkface Member since:
2009-08-26

So? What he personally uses and what he pushes are two different things. I'm sure he runs OSX half the time anyways.

Reply Score: 2