Live data from Hacker News

CopperSpice, a Modern C++ Fork of Qt

copperspice.com

31–40 of 104 posts

Re: CopperSpice, a Modern C++ Fork of Qt

#31
post #11
post #7

Earlier quoted context omitted.

> So they replaced the moc functionality with some c++11 magic ? You mean they replaced moc magic with C++11?

Advanced template metaprogramming is far less common of a skill than opening a generated source file and reading source code.

C++ is a far more common skill than moc. I know C++, I can barely get my head around writing a Qt app.

Re: CopperSpice, a Modern C++ Fork of Qt

#32
post #7
post #6

Earlier quoted context omitted.

I fail to understand either, but they say: > CopperSpice has been modified to remove moc, the Qt meta object compiler. Moc was removed to simplify the build process, allow CopperSpice to be a standalone library, increase run time performance, and allow developers to utilize C++11 features. So they replaced the moc functionality with some c++11 magic ?

> So they replaced the moc functionality with some c++11 magic ? You mean they replaced moc magic with C++11?

moc magic for signals/slots was already possible with C++98, as proven by Gtkmm already back in 2000.

http://libsigc.sourceforge.net/

But it required beefy template support, which would leave out some of the compilers supported by Qt (not only MSVC).

Re: CopperSpice, a Modern C++ Fork of Qt

#33
post #10

Qt's Contributor Summit just ended, and one of the topics was C++11 support [0]. The key takeaway is Qt 5.6 will start the move away from C++98 towards C++11 support, though not fully C++11 mainly due to the MSVC compiler's limitations. The joy of being cross-platform. That being said, I don't immediately see the value of using CS over Qt. Binary size alone is not generally worth jumping ship from an established comm…

So will Qt stop supporting commercial UNIX compilers and embedded platforms with compilers still stuck in C++98/03/partial 11?

Re: CopperSpice, a Modern C++ Fork of Qt

#34

Why? And why 4.8? The 5.x branch is a far better version of Qt. This looks ridiculous. Qt is a massive framework - the work of hundreds, if not thousands, of people - and this seems to be the work of a random dev with zero backing and a 2004-style website with zero content (everything, even the 14-forum completely empty phpbb forum).

I'm always bewildered by such aggressive reactions to things people put out for free.

So you don't like it and won't use it, but why do you find it necessary to insult the people who worked on it ? Are they trying to steal something from you or cheat you into giving up your freedom or something ?

I just don't get it. We are all developers and we all know how hard it is to make something.. anything. And knowing the struggle I go through to get things to completion, I have great respect for people who actually finish things and share them with the world.

Even if I won't use the thing and find it useless, I still think they deserve at least a word of support, not a dismissive rant.

Re: CopperSpice, a Modern C++ Fork of Qt

#35
post #10

Qt's Contributor Summit just ended, and one of the topics was C++11 support [0]. The key takeaway is Qt 5.6 will start the move away from C++98 towards C++11 support, though not fully C++11 mainly due to the MSVC compiler's limitations. The joy of being cross-platform. That being said, I don't immediately see the value of using CS over Qt. Binary size alone is not generally worth jumping ship from an established comm…

One thing broken with moc is parralel build in MSVC. I think we all agree that moc is a dirty hack and needs to go.

I'd blame vcbuild/msbuild for its oddly limited parallel build rules. If you feel like switching build tools, I've personally used cmake, bjam, waf and qmake /w makefiles. All parallelize on both Windows and Linux. I'd recommend cmake or qmake /w makefiles, though qbs is worth looking into.

We certainly don't all agree that the moc should go. An extra compiler adds complexity to the build, but the build is fast and the generated code is simple. That said, I'm interested to look into CS's alternative.

Re: CopperSpice, a Modern C++ Fork of Qt

#36
post #22

Earlier quoted context omitted.

Use something like CMake which is cross-platform, works very well in most cases and a lot of cross-platform open-source C++ libs are using already.

CMake. Making easy things easy and hard things impossible. Provided most cases are easy, an acceptable solution.

Hmm, any examples for the impossible hard things? Or are you just trolling?

Re: CopperSpice, a Modern C++ Fork of Qt

#37
post #30

The last time I used Qt was a long, long, time ago. I liked it, mainly because it avoided the STL and was cleaner. I'm not a fan of C++ (I consider it a baroque and overly complex language), but I enjoyed using Qt. So, this line seems like a drawback to me, instead of an advantage: "CopperSpice is a C++ library derived from the existing Qt 4.8 framework. Our goal was to change the core design of the libraries, levera…

Well you should take another look at C++. The changes in the language in the last 10 years have really made it more pleasant to work with, in particular around the STL (which imho is excellently designed, but was hampered by the the language itself.)

There was always a kernel of a beautiful language inside C++ trying to get out (and it wasn't C). I think the recent moves within the language have started to expose it.

FWIW I have approached Qt many times and always been repulsed by its non-standard use of C++. It felt very much like the project had to be built around Qt -- with their nonstandard preprocessor, lack of embrace of the STL, etc -- rather than Qt fitting itself into existing C++ projects. I'm very picky about the style and structure of my code and I always felt like Qt imposed a huge proprietary overhead on that front. So I've avoided it. If Qt can finally drop moc, and use C++11 features, I might consider it.

Re: CopperSpice, a Modern C++ Fork of Qt

#38
post #32
post #7

Earlier quoted context omitted.

> So they replaced the moc functionality with some c++11 magic ? You mean they replaced moc magic with C++11?

moc magic for signals/slots was already possible with C++98, as proven by Gtkmm already back in 2000. http://libsigc.sourceforge.net/ But it required beefy template support, which would leave out some of the compilers supported by Qt (not only MSVC).

I think I'm not contradicting you, but I just wanted to state that I've been using libsigc with MSVC since 2002 or 2003.

Re: CopperSpice, a Modern C++ Fork of Qt

#39
post #25
post #17

Uhm, "modern" and "built using GNU Autotools" in a single sentence just doesn't compute. Cross-platform portability obviously isn't their goal. Oh and thank you for removing moc and replacing that with some template black magic. Yeah, you can do that, but your developers are going swear up a storm at you once they see the wonderful compilation errors that e.g. MSVC produces with templates ... But I guess they don't t…

> Cross-platform portability obviously isn't their goal. As someone who runs a couple of obscure platforms, I swear every time I have to use a non-Autotools project. Autotools may be slow and may check for seventeen different fortran compilers even if your project never uses fortran, but portability-wise it simply works.

I suggest that everyone defending Autotools in this day and age actually reads one of these blogs (and check the date on them!):

http://freecode.com/articles/stop-the-autoconf-insanity-why-...

http://www.shlomifish.org/open-source/anti/autohell/

That should give you the idea why Autoconf/Automake setups are past their sell-by date. For more than a decade.

Re: CopperSpice, a Modern C++ Fork of Qt

#40
post #38
post #32

Earlier quoted context omitted.

moc magic for signals/slots was already possible with C++98, as proven by Gtkmm already back in 2000. http://libsigc.sourceforge.net/ But it required beefy template support, which would leave out some of the compilers supported by Qt (not only MSVC).

I think I'm not contradicting you, but I just wanted to state that I've been using libsigc with MSVC since 2002 or 2003.

I wanted to make a point about other compilers, as for many HNers only MSVC, gcc and clang do exist, while Qt supports many others.
Post reply on HN