Preferences

There's a port of Qt 6 in the works (not yet merged) here: https://github.com/SerenityOS/serenity/pull/9362

While hackish, it does look pretty promising: https://twitter.com/linusgroh/status/1426904775623385095/


That's cool, thanks for the links; I probably would have migrated Qt5 thought because it is much more stable and battle tested and uses C++98 which likely avoids many linker issues.
Qt6 is built with CMake which I feel way more comfortable with compared to the configure script from Qt5 (actually, I probably wouldn't be able to do this with just configure).

However, most of the code I've changed is used in the old buildsystem as well so somebody could possibly reuse what I'm doing in a Qt5 port. I'm not planning to do that though, Qt 6.2 will be perfectly good for my personal and selfish needs. :)

Thanks; I assume it's a challenge anyway.
SerenityOS widely uses modern C++, so I'd assume there's little point in restricting yourself to old C++ when porting a library.
>> modern C++

Well, according to Stroustrup himself C++98/03 is considered "modern C++" (see e.g. https://www.stroustrup.com/DnE2005.pdf ); and I can confirm from personal experience that C++98 and STL were a big step compared to what we had before. C++11 and later have some advantages, but nothing I couldn't live without (personally I don't consider policy based design the way to go). Actually Qt itself nicely demonstrated how to do perfectly well without e.g. move semantics.

Kind of besides the point that "C++98 to avoid issues" when porting to a project that requires C++20 seems a bit odd. (And let's say that the quality of Qt's solutions in such cases over what you can now do is ... controversial)
Does SerenityOS require all apps to be implemented in C++ or even C++20? I guess not (didn't have a close look at it yet).
Obviously not, if so many non-C++ programs are ported to run on it. Kernel, core libraries, and native programs are C++20. Don't expect pull requests for archaic-styled patches to those to be merged.
That was published 16 years ago. Fortunately, Andreas isn't so confused.

C++20 is a wholly more pleasant programming environment than any previous C++. When there is a choice between the old way and the new—which there always is, for backward compatibility—the new way is almost always better.

For some cases, the newer way is better sometimes but not always, e.g. east function return type, with "auto", vs. old-style west. For short functions, deduced return type, i.e. neither one, is often best.

All that said, C++20 coroutines will be much more pleasant to use when thd C++23 library support for them lands.

> You are very confused

Because I'm not obsessed with chasing the latest thing?

Qt5 switched to C++11 with 5.7.
But it's not mandatory, is it? Anyway, I would likely use the 5.6.3 version which was the last with LGPL 2.
From Qt 5.7, C++11 is mandatory. Anyway, why would one want to use an outdated Qt version? I don't think LGPL3 is a problem at all for SerenityOS ports anyway.
> why would one want to use an outdated Qt version?

Well, why would someone want to implement an outdated 90s UI? Apparently there are good reasons.

I have many projects even with Qt4.4 and no need to go to a later Qt version. Qt4 already had everything I ever expected. Qt5 brings a couple of advantages (e.g. better modularization and backend API), but Qt5.4 is good enough for that.

This item has no comments currently.

Keyboard Shortcuts

Story Lists

j
Next story
k
Previous story
Shift+j
Last story
Shift+k
First story
o Enter
Go to story URL
c
Go to comments
u
Go to author

Navigation

Shift+t
Go to top stories
Shift+n
Go to new stories
Shift+b
Go to best stories
Shift+a
Go to Ask HN
Shift+s
Go to Show HN

Miscellaneous

?
Show this modal