LWN.net Logo

Calligra 2.5 released

Calligra 2.5 released

Posted Aug 13, 2012 18:48 UTC (Mon) by drag (subscriber, #31333)
In reply to: Calligra 2.5 released by boudewijn
Parent article: Calligra 2.5 released

Yeah; You would think that a popular open source application on Windows would get more attention from developers then a the Linux version does.

I wonder if it is because the Linux-style programming approach is a big turn off to Windows developers. Unfamiliar APIs and tools and such. So they go and work on other more windows-focused users.

Does QT/KDE development platform integrate naturally into Visual Studio and such things?


(Log in to post comments)

Calligra 2.5 released

Posted Aug 13, 2012 19:01 UTC (Mon) by boudewijn (subscriber, #14185) [Link]

Yeah, the Qt tools on Windows are pretty good -- integration with Visual Studio only works if you have the full version, not Express, though. And Qt Creator on Windows is very usable. Now, admittedly, setting up KDE in addition to Qt to work with on Windows can be tricky. The best way is to use an emerge-style source based installer that creates a whole environment to work in (http://techbase.kde.org/Getting_Started/Build/Windows/emerge). It's a cool environment, and an amazing achievement, but right now it's involved enough that it takes me about a day to create a full new development environment. And I have been doing that a lot lately, since for some reason Windows partitions, laptops and vm's keep getting corrupted.

However, I've never ever had a Windows developer come up to me and ask to help him get started, so I think that the basic interest just isn't there. I have a suspicion that the idea that you can, like develop software on your own, is not very current on Windows.

Calligra 2.5 released

Posted Aug 13, 2012 20:49 UTC (Mon) by Cyberax (✭ supporter ✭, #52523) [Link]

Developing software on Windows is OK, Microsoft tools are top-notch. The only main missing piece for me is valgrind (there are alternatives, but they are significantly more heavy-weight).

However, setting up developer environment for a project with lots of libraries can be tricky. It usually involves manually installing and compiling libraries and then making sure that the target project correctly picks them up.

Calligra 2.5 released

Posted Aug 13, 2012 22:57 UTC (Mon) by mathstuf (subscriber, #69389) [Link]

Some major problems I've had with Visual Studio 10 Express:

- limited target name length (260+ is not unheard of for generated targets);
- it's not Vim (yeah, personal choice, but Vim integration stuff was broken with 10);
- have to close VS every time I change a CMake file and reconfigure the vcxproj;
- horrendous error output (first thing I do on VS is turn on the Error/Warning window, then line numbers);
- refusal to debug Release applications (not even a backtrace!); and
- can't save command line arguments for "Run target" (or whatever the F5 action is) for later use (I have two files I want to test with, it only remembers one set of arguments).

Honestly, cmake --build is easier lots of the time. This list is by no means exhaustive, just what comes to mind.

Calligra 2.5 released

Posted Aug 13, 2012 23:07 UTC (Mon) by Cyberax (✭ supporter ✭, #52523) [Link]

>- have to close VS every time I change a CMake file and reconfigure the vcxproj;
That's not necessary, VS can pick up generated .vcproj changes just fine.

>- refusal to debug Release applications (not even a backtrace!); and
You certainly can do it, if you build debug information (it's called RelWithDebInfo in CMake). MSVC debugger even has very nice infrastructure for interfacing with symbol servers which is useful for post-mortem debugging.

>- can't save command line arguments for "Run target" (or whatever the F5 action is) for later use (I have two files I want to test with, it only remembers one set of arguments).
I think there's a plugin that does this.

Calligra 2.5 released

Posted Aug 13, 2012 23:28 UTC (Mon) by mathstuf (subscriber, #69389) [Link]

> That's not necessary, VS can pick up generated .vcproj changes just fine.
Sure, then I get the cascade of "Would you like to reload this target?" dialogs for 300+ projects because a compiler flag changed (the top-level project didn't change, so it didn't get asked about). Closing is much easier. AFAIK, the plugin which does the auto-yes doesn't work in 10 Express.

> You certainly can do it, if you build debug information (it's called RelWithDebInfo in CMake).
IIRC, the bug wasn't reproducible other than in Release.

> I think there's a plugin that does this.
That's a relief. Just to find it and hope it works with Express… Any hints for the name?

Calligra 2.5 released

Posted Aug 13, 2012 23:32 UTC (Mon) by Cyberax (✭ supporter ✭, #52523) [Link]

Ah, yes. Express versions don't support plugins (I've been using professional versions for as long as I can remember).

>> You certainly can do it, if you build debug information (it's called RelWithDebInfo in CMake).
>IIRC, the bug wasn't reproducible other than in Release.
RelWithDebInfo just generates debug information during a release build. It doesn't affect code generation at all.

Calligra 2.5 released

Posted Aug 14, 2012 2:54 UTC (Tue) by HenrikH (guest, #31152) [Link]

Well to me the last top-notch tool they ever devloped was Visual Studio 6, every VS after that feels horrible. To me that is, I guess that it is very top-notch for C# developers and people who design GUIs.

Especially the madness of each new version of VC having a pair of new libc:s is what turns me off the most. Whoever made that decision at Microsoft should be thrown out.

Calligra 2.5 released

Posted Aug 14, 2012 7:47 UTC (Tue) by boudewijn (subscriber, #14185) [Link]

For me, the biggest problem with developing on Windows are the build times. The file system is just so slow! Even when using an ssd, it's slower than building the same codebase on Linux.

Calligra 2.5 released

Posted Aug 14, 2012 16:37 UTC (Tue) by Cyberax (✭ supporter ✭, #52523) [Link]

That's probably a problem with the build system. MSVC itself is considerably faster than GCC, especially if you pass several source files at once.

Calligra 2.5 released

Posted Aug 14, 2012 17:17 UTC (Tue) by 2NZb42fVtpOEyCBv (subscriber, #86247) [Link]

> That's probably a problem with the build system. MSVC itself is considerably faster than GCC, especially if you pass several source files at once.

True - for one project we rewrote our entire build system so that it passed all source files in a dir to the compiler at once, rather than the traditional (e.g. make implicit rules) approach of invoking the compiler once per source file. Transformed Windows build times. I think that it's to do with process creation being absurdly slow on Windows, but didn't look into it.

(That change then broke sparse, because there was a bug that cropped up when you pointed it at multiple source files - IIRC to do with scoping of static variables. Our patch for that got merged moons ago though.)

That makes our Windows builds tolerable. Still, the notion of having your project compilation mechanism dictated to you by the sloth of process creation on an "operating system" is laughable.

Calligra 2.5 released

Posted Aug 14, 2012 17:29 UTC (Tue) by Cyberax (✭ supporter ✭, #52523) [Link]

No, it's cl.exe itself, it does a lot of startup initialization. I have no idea why, but it does.

Also, file system on Windows is excruciatingly slow. NTFS on Windows can literally be orders of magnitude slower than ext4 on Linux.

Calligra 2.5 released

Posted Aug 14, 2012 17:36 UTC (Tue) by boudewijn (subscriber, #14185) [Link]

That's what I said... The _filesystem_ is the problem, not the build system, not the speed of the compiler. I have tried with three different compilers on Windows, mingw, icl and mscv, on a spinning splatter and on ssd. It's the filesystem that makes life unbearable.

Calligra 2.5 released

Posted Aug 14, 2012 8:22 UTC (Tue) by boudewijn (subscriber, #14185) [Link]

The lots of libraries problem is more or less solved by the KDE Windows project. The emerge system can build pretty much all the dependencies for a big project like Krita out of the box, both with mingw and msvc. There are even two options: one can download most of the dependencies as pre-built binaries, the other will build everything for you.

You'll end up with a tree that looks a bit like a standard unix tree: rootdir/bin, rootdir/lib and so on. From there to packaging the software for an installer is a matter of simply copying the right files to your installer.

If you use kde libraries, then the system is smart enough to make it possible to co-install two kde-based applications and run them at the same time. But even if I would work on a pure-Qt application that needed libraries like lcms, I would still use this system to get all those dependencies ready and in place.

Calligra 2.5 released

Posted Aug 13, 2012 21:11 UTC (Mon) by dashesy (subscriber, #74652) [Link]

Actually Qt works really great with visual studio, and if you install the Qt Visual Studio Add-in, you get some extra debugging extensions too. If you can debug inside the pimpl structure fine, there is no need for the add-in really. I have not found a single showstopper bug in Qt, in the last couple of years. Using Qt properly there should be hardly any *other* API one may need to get accustomed with.

My guess is that Windows development for office applications is less exciting.

Calligra 2.5 released

Posted Aug 14, 2012 3:56 UTC (Tue) by cmccabe (guest, #60281) [Link]

> Yeah; You would think that a popular open source application on
> Windows would get more attention from developers then a the Linux
> version does.

Ultimately developers do what's fun for them. And there's nothing wrong with that.

If you want to get involved with a Windows port of these applications, I'm sure that they'd be happy to accept your assistance!

I'm curious how these projects are going to handle the fact that the latest version of Visual Studio is not available for no cost.
http://arstechnica.com/information-technology/2012/05/no-...

Calligra 2.5 released

Posted Aug 14, 2012 8:11 UTC (Tue) by boudewijn (subscriber, #14185) [Link]

Actually, Visual Studio isn't necessary -- not even the Microsoft SDK. The Qt SDK comes with Mingw32 out of the box, and that's also the default option for the kde emerge system, which basically builds all the dependent libraries, from libjpeg to openexr, from lcms to libz. It has the advantage of not needing the weird set of C-libraries that you get with each new msvc version, but the disadvantage that apps start much slower.

Calligra 2.5 released

Posted Aug 14, 2012 13:27 UTC (Tue) by drag (subscriber, #31333) [Link]

> If you want to get involved with a Windows port of these applications, I'm sure that they'd be happy to accept your assistance!

Cross platform stuff really isn't that interesting to me. I'd rather program games in Blender (which will take care of popular platform compatiblity for me, hopefully)

If I was going to right cross-platform apps it would be written in Javascript and HTML with a server backend in Python or Java... not so much a fan of C++.

:-)

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds