[Interest] Apologies on the "bloat" thread (a.k.a yes Windows is still important)
thiago.macieira at intel.com
Thu Apr 11 00:50:10 CEST 2013
First of all, let me apologise for my behaviour in the thread on "dependency
bloat". I've re-read my first reply and it was clearly out of line. And the
number of off-ML messages I got also indicates that.
So, my deepest apologies for letting my personal feelings and frustrations
with Windows get in the way of being professional. So let's sort things out:
* Qt and Windows:
(this is supposed to be objective)
Windows has been and continues to be the biggest addressable market for Qt,
even after years of Nokia strongly pushing mobile. There are many users who
choose Qt for their Windows-only applications, with no intention of ever doing
cross-platform development. They do that because the Qt API is good and the
documentation is well-written.
And, I now realise, also because it's easy to build. I feel dumb for not
realising this before, especially when a month or two ago I tried to build
some other Unix-originated libraries on Windows and thought to myself, "gosh,
this is so much easier with Qt".
Rest assured that the Qt Project remains attentive to Windows. Windows remains
one of the reference platforms for the project, which means all new features
that make sense on Windows must be implemented on Windows before they are
accepted. Any changes made anywhere must not break the build on Windows
We're not out to try and make Windows developers lives harder. Quite to the
contrary, which is why Qt exists in the first place and why Windows is
The requirement for Perl was a conscious decision, one that we took after
analysing what our objectives were, to wit:
1) the overwhelming majority of Windows downloads are of the pre-compiled
binaries and have been for as long as I can remember, so we will continue
to invest time to make that better, easier, more efficient
That's why we're now going to ship an MSVC2012 64-bit build, a non-ANGLE
build, and we've worked with the MinGW community to come up with a decent
distribution of theirs that can produce good-performance code.
2) lower the barrier of contributing to the Qt Project, lower our own
maintenance costs (time spent). That's why we decided to make the source
releases closer to the repository contents. I hope you can understand and
appreciate how this gets accomplished and the value to you.
3) verifiability: sources are cryptographically verifiable (goal not yet
We assumed that requiring Perl was acceptable. It was already required on
Windows if you decided to do an out-of-source build, which most people didn't.
We assumed that Perl, being such an industry old-timer, would be an easy
requirement, unlike other tools we have to ship, like GNU flex.
Maybe we assumed wrong. To still achieve all those goals, maybe we should
really give the binary replacement tool a try. I am currently swamped with
other work, so I can't do it, but I do volunteer to mentor anyone who wishes
to do it.
And by the way, also remember that Linux distributors often hate us for doing
things the Windows way, like bundling libpng, libjpeg, zlib, sqlite, not using
autoconf, not using gettext. We're trying to be a great cross-platform tool,
which unfortunately means compromising here and there.
* Feelings about Windows and bias:
(this is subjective!)
I get extremely frustrated every time I have to develop using Windows.
Compared to the ease of development I have when using my Linux machine, I'm
nowhere near as efficient. Tools that I take for granted, like shell scripting,
AWK, Perl, sed, strace, valgrind, as well as SQLite, ICU, libpng, libjpeg,
zlib are missing.
And as I said to summarise in one word: valgrind. It's one of the most awesome
tools a developer could hope to have, to the point that I recommend people
have a Linux VM just in case they need it (note: there are commercial
alternatives for Windows; if you can't use Linux, make sure you get one of
So my biased conclusion is that no developer with half a mind would willingly
choose to use Windows. I said that in one of my emails.
And that is clearly biased. It is so because it's the environment in which I
am the most efficient. When I first started dabbling with development, in 1995, I
did use Windows, but no compilers were freely available. The one freely-
available compiler of that era for Windows was the Java one -- and some of you
may remember what Java 1.0 was like. Soon after, I discovered Linux, with
source code available and a decent (albeit much to be improved) compiler
available with just the flick of a switch -- that was GCC 2.7.2.
So I've "grown up" as a developer on the Unix world, with the tools familiar
with that world.
Objectively speaking, I have to say that there are many advantages with the
environment I use: having readily accessible tools to look into low-level
events, system-wide debugging, access to the source code of the libraries that
I use, rapid script development, etc. But if I speak objectively, I have to
also recognise that Microsoft Visual Studio is an awesome tool, as long as you
don't have to go beyond its boundaries.
And therein lies the big difference: the philosophy of those two worlds. In the
Windows / MSVC world, developers are expecting their tools to be self-
contained. They use Visual Studio and everything is inside there. They don't
have to go poking for third-party software. That's why the Qt Visual Studio
Add-in exists and that's actually the type of experience that Qt Creator is
trying to duplicate.
It's just not how I work.
So, apologies for being out of line.
Thiago Macieira - thiago.macieira (AT) intel.com
Software Architect - Intel Open Source Technology Center
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 190 bytes
Desc: This is a digitally signed message part.
More information about the Interest