Beta

×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Nokia Closing Australian Office, Looking To Sell Qt Assets

Unknown Lamer posted about 2 years ago | from the this-isn't-funny-any-more dept.

Linux Business 125

An anonymous reader writes "One day after word leaked out that Nokia is shutting down its Qt Australia office, which is responsible for Qt3D, QtDeclarative, QtLocation, QtMultimedia, QtSensors, and QtSystems, reports are beginning to surface that Nokia is trying to sell off all Qt assets." Seems like selling itself to Nokia wasn't the best option for Trolltech after all.

cancel ×

125 comments

Sorry! There are no comments related to the filter you selected.

Correction to title: NOT Australian office (-1, Troll)

h111 (2698497) | about 2 years ago | (#40842443)

They're closing Australian QT Office. As QT is largely open source, it seems like open sores guys have to (and can!) keep managing it themselves. Nokia's and Trolltech's plan on QT has been largely abandoned for a long time already, anyway.

Re:Correction to title: NOT Australian office (1)

Anonymous Coward | about 2 years ago | (#40842529)

QuickTime Office? It's Qt not QT.

Re:Correction to title: NOT Australian office (1)

Anonymous Coward | about 2 years ago | (#40842579)

Considering h111 cannot spell "source" correctly, I think it's asking an awful lot of him to get such a subtle capitalization detail correct.

Re:Correction to title: NOT Australian office (1)

flimflammer (956759) | about 2 years ago | (#40844641)

He wrote "open sores" intentionally.

Re:Correction to title: NOT Australian office (0)

Anonymous Coward | about 2 years ago | (#40847407)

whooosh.

Mod down (0)

Anonymous Coward | about 2 years ago | (#40842647)

"Open sores", much like "M$", is an insult not likely to be employed by anyone worth your respect.

On the upside, thanks for making it easy for us!

Re:Correction to title: NOT Australian office (0)

Anonymous Coward | about 2 years ago | (#40842919)

"open sores guys"

Eeeeewwwwwww.

Don't want those guys working on any code I use. Gives new meaning to software virus and makes a trojan seem like a good idea.

Re:Correction to title: NOT Australian office (1)

mcgrew (92797) | about 2 years ago | (#40843137)

it seems like open sores guys

Someone please moderate that comment as the flamebait it is.

For better or for worse... (4, Insightful)

Kensai7 (1005287) | about 2 years ago | (#40842475)

This might be a good thing for Qt. It is the BEST C++ toolkit for many high quality applications. It was being drudged behind Nokia's anemic policy regarding where to head with a mobile OS. Let's hope it doesn't end to Oracle. :p

Re:For better or for worse... (-1, Flamebait)

h111 (2698497) | about 2 years ago | (#40842509)

Qt is far from best C++ toolkit. I would personally tout for Embarcadero's (old Delphi/CodeGear) VCL.

Re:For better or for worse... (3, Informative)

CadentOrange (2429626) | about 2 years ago | (#40842649)

Having used both, VCL has nothing on Qt. It also doesn't hurt that Qt is free and cross platform while VCL costs a fortune and has only recently gained OS X support. However now that Nokia appears intent on offloading Qt, I'd worry about Qt's long term future.

Re:For better or for worse... (1)

X0563511 (793323) | about 2 years ago | (#40843601)

Why? It's not like the code is just going to evaporate if nobody picks it up.

Re:For better or for worse... (1)

MightyYar (622222) | about 2 years ago | (#40843967)

Windows, Mac, and the various unix-like desktops are all moving targets.

Re:For better or for worse... (2)

X0563511 (793323) | about 2 years ago | (#40844795)

That hasn't stopped GTK+ from working on all three platforms. Why would QT be any different?

Re:For better or for worse... (4, Interesting)

CadentOrange (2429626) | about 2 years ago | (#40846241)

That hasn't stopped GTK+ from working on all three platforms.

Define working :)

GTK+ apps look out of place on Windows, even more so on Mac. In addition to that, Qt just integrates a lot better into the native tool chain (e.g. Visual Studio, Xcode). Prior to being bought out by Nokia, Trolltech were charging $1500 per developer, per platform for Qt. And Trolltech were profitable! It is *that* good a toolkit. It's benefited immensely from being backed commercially and it shows.

Will this continue after Nokia bails? Will the pace of development slow, to the extent that it no longer integrates as well with new tool chains and platforms? That is an unknown and I really hate unknowns ...

Re:For better or for worse... (1)

X0563511 (793323) | about 2 years ago | (#40846945)

Never had a problem with GTK apps on windows or mac. Just make sure you've got the proper theme installed into the run-time environment and if necessary tell GTK to use it.

Here's some proof [draeath.net] if you don't believe me. Looks totally correct, and GIMP looks the same, too.

While it should just work, for other reasons I've got "gtk+-bundle_2.24.10-20120208_win32" installed, set it's \bin to my %PATH%, and even went so far as to symlink \gtk to it. This is all done because I've got several versions laying around and wanted to be sure it was using the right one.

Re:For better or for worse... (1)

Jurily (900488) | about 2 years ago | (#40844593)

I worried about Qt's future when they tried forcing Qt onto Symbian. I'm glad they gave up. If all else fails, we can still have a Free port maintained by the KDE people or something.

Re:For better or for worse... (2)

HiThere (15173) | about 2 years ago | (#40846139)

You just started worrying? I started back when Trolltech was acquired. This only got worse when MS "acquired" Nokia. (And yes, I *do* know that officially that hasn't happened.) I will be quite worried about who they will find to sell it to. This is the more significant with the Gnome folk trashing their own libraries. It's enough to cause one to suspect outside influences.

Re:For better or for worse... (0)

Anonymous Coward | about 2 years ago | (#40842651)

Does that toolkit have anywhere near the functionality of the full Qt suite? I don't know much about it, but after a quick google I seriously doubt it.

Re:For better or for worse... (2)

DeathToBill (601486) | about 2 years ago | (#40842655)

Oi, get your beard cut!

Not flamebait guys (0)

Weaselmancer (533834) | about 2 years ago | (#40844967)

I haven't used Qt so I can't speak to the comparison, but VCL is actually pretty awesome. I've always liked CBuilder. It was doing RAD well and correctly back when MS solution was to make the dlls in Visual C and the UI in Visual Basic. Remember that mess? I will always have a fond spot in my heart for CBuilder for being a better alternative.

So take VCL, and couple that with Project Jedi [delphi-jedi.org] and you've got a great dev environment. Scores of smart widgets, panels, sliders, panes, etc. If there is anything that rich for Qt I'd really like to see it. Seriously - I would! Not being snarky. I'd love to see something that rich as open source. I keep hoping and praying that the Jedi guys will do a port that will work on Lazarus [freepascal.org] , but so far no luck.

Re:For better or for worse... (4, Interesting)

Desler (1608317) | about 2 years ago | (#40842541)

And hopefully this means that Qt will go back to focusing on the desktop widgets instead of QML and the inane pipe dreams about mobile devices that never came to exist.

Re:For better or for worse... (1)

Anonymous Coward | about 2 years ago | (#40842685)

And hopefully this means that Qt will go back to focusing on the desktop widgets instead of QML and the inane pipe dreams about mobile devices that never came to exist.

Nooo... QML (once the desktop components are finished) are the best thing to happen to Qt in a long time.
Hardware accelerated, easily animated, interpreted- It's really slick and much easier to create custom widgets with.

Re:For better or for worse... (0)

Anonymous Coward | about 2 years ago | (#40842731)

Yeah and completely worthless for any real desktop application beyond toy apps, due to QML's sluggishness, or creating some Metro fart app.

Re:For better or for worse... (5, Interesting)

glebovitz (202712) | about 2 years ago | (#40843039)

Pretty strong and incorrect comment from a coward.

Qt largest growth sector is embedded systems and QML Is the driving force behind this market. You cannot get the performance from Widgets that you can from QML objects (Well you can if you rewrote the widgets in a light weight framework like QGraphicsView or SceneGraph, but then you would essentially have QML.)

I don't know where you get your facts, but QML behaves very well in highly animated GUIs on fairly low end embedded hardware. The fact that it is backed up with a highly optimized SceneGraph engine that removed the overhead of the QGraphicsView engine makes QML even better performing.

The comment above about Digia is greatly misleading. Digia focuses on the commercial license market which is a legacy business. The growing embedded market uses the LGPL version and gets support from the open source community. Companies like ICS and KDAB are growing at a very fast pace servicing this market. Digia has not been able to transition well to the embedded space.

Re:For better or for worse... (0)

Anonymous Coward | about 2 years ago | (#40843163)

I get my 'facts' from actually using it and from Qt developers themselves saying QML is still insufficient to completely repace widgets for desktop apps. Also, if this market you claim was growing so fast then there would be no point to closing the office since clearly someone would have been begging to buy it. Also, i loled about your Digia statement despite the fact that more people are still buying new commercial licenses every day and more new software is being made that uses QWidgets.

Re:For better or for worse... (1)

Anonymous Coward | about 2 years ago | (#40844819)

If you rewrote QWidgets in a light weight framework like QGraphicsView or a scene graph, at least it would be C++ instead of a web developers language!!! At least you would have C++ bindings for the scene graph, instead of nothing at all! At least you would still have widgets instead of having to reinvent the push button for every project!!!

QML is the result of a political decision by Stephen Elop and Lars Knoll. Widgets bad, get rid of them. C++ bad, get rid of it. Desktop bad, everything is now 100% focused on mobile. WE STILL DON'T HAVE DESKTOP COMPONENTS YET! They will not be in the release of Qt 5.0, and probably not even in 5.1.

QML was a good idea, is a good idea. I have no problem defining the UI with a descriptive language of some sorts. But the idea that C++ must be confined to the back end business logic is fucking stupid. Is Nokida afraid the sight of some C++ will scare away the precious snowflake web developers that they think are Qt's target market?

Re:For better or for worse... (4, Interesting)

arendjr (673589) | about 2 years ago | (#40843569)

Like it or not, thanks to Windows 8 "real desktop application" and "Metro app" will increasingly mean the same thing in the future. QML is a result of Nokia's (failed) mobile efforts, but thanks to it, Qt (unlike pretty much any other toolkit) is actually able to create competitive interfaces, regardless of whether the competition is using traditional widget-based interfaces or Metro-style interfaces.

So yeah, I agree with GP here, QML is the best thing to happen to Qt in a long time.

Re:For better or for worse... (3, Informative)

shutdown -p now (807394) | about 2 years ago | (#40848925)

QML is a result of Nokia's (failed) mobile efforts, but thanks to it, Qt (unlike pretty much any other toolkit) is actually able to create competitive interfaces, regardless of whether the competition is using traditional widget-based interfaces or Metro-style interfaces.

It's not the only toolkit - WPF is quite similar, and shares many of the same concepts. Qt is the only such C++ / native code toolkit, though, and it's a fair bit faster than WPF. And portable to boot.

Re:For better or for worse... (1)

Desler (1608317) | about 2 years ago | (#40842783)

They could have made widgets hardware accelerated and easily animated, but that would hav required 'hard work' and it's more fun to just shove out new crap instead. Luckily, Digia seems to have people that realize what the real needs of the vast majority of Qt developers are even so they continue to fix and improve widgets as the Nokia guys were having fun in their QML circle jerk into irrelevance.

Re:For better or for worse... (4, Informative)

tibit (1762298) | about 2 years ago | (#40844771)

They could have made widgets hardware accelerated and easily animated.

Yes. And that's how QML came to be, because when you actually try to make "widgets" do all that you end up with something that's not widgets anymore. Do you seriously believe that the mindset was "let's come up with something new from scratch, we've got too little work to do"? The legacy widget model has insurmountable performance issues that cannot be overcome in that model. If you don't understand that, you need to do some research first, perhaps actually try coding something up and convincing everyone how your supercool painter widget based model keeps up with competition.

There's no way to get good performance from a painter-based architecture that asks everyone to repaint their part when something changes. This model made sense for a while because common graphics hardware was generally slow and had no acceleration to speak of when it comes to graph-based representations of the visuals. It doesn't make any sense anymore. When a window moves and is to be recomposited, you shouldn't have to transfer more than a command or two to the graphics card to change a couple coordinates. It'll be picked up next time the rendering is done. In the painter-based model, at best you have backbuffers for every window (even if a window has a flat background that can be represented by two flat shaded triangles -- two dozen numbers at the most, not a megabyte), and those backbuffers have to be composited.

The widget model not only sucks performance-wise, but it also sucks resource wise: you need a lot more memory and a lot more memory bandwidth to render even fairly simple things.

Re:For better or for worse... (0)

Anonymous Coward | about 2 years ago | (#40844875)

So is that why C++ was dumped in favor of Javascript? Because Javascript is faster?

Re:For better or for worse... (2)

gbjbaanb (229885) | about 2 years ago | (#40845329)

So is that why C++ was dumped in favor of Javascript? Because Javascript is faster?

It wasn't, you're confusing a few things. Javascript is used as the glue that ties a few events and methods together, but you still pass them down to your c++ program logic to do work. If you just need to change a radio button when another one is pressed, then that hardly needs and c++ logic, a little bit of js would be quite sufficient and make no noticeable difference to performance.

Re:For better or for worse... (4, Informative)

ardor (673957) | about 2 years ago | (#40847477)

I wish to elaborate on why the painter model is inefficient with today's GPUs.

The painter employs an imperative approach that does not allow for much freedom. Example: begin(), line(), text(), line(), end(). The two line() calls should be grouped together, but they cannot, because then the result would not be equal (what if text() drew over the first line, then the second line() call drew over the text for example?). The result is pretty bad: the underlying implementation has to perform tons of unnecessary shader switches (since font rendering most likely uses different shaders than the line drawing code), and perhaps texture switches (if texture-based AA is used). In addition, every time the painter is used, a vertex buffer has to be filled with vertex data. It cannot be easily cached. And this applies to *every* begin..end painter sequence.

A declarative QML-like approach is a much, much better idea. The fundamental reasons are that (1) the renderer now always has a global picture of what the frame shall look like, (2) intermediate results are much easier to cache, (3) no strict sequence of drawings is given, therefore the renderer is free to reorder and merge drawcalls in any way it wishes. This benefits even pure CPU-based rendering - the Enlightenment Foundation Libraries [enlightenment.org] render using a graph, and are extremely efficient (they clip and cull primitives early on, group primitives together, IIRC can even detect accumulated opacity from several alpha blended layers ..).

C++ QML bindings would likely consist of an API that can modify the graph. Either way, the painter-based approach is gone.

Re:For better or for worse... (4, Insightful)

shutdown -p now (807394) | about 2 years ago | (#40848937)

The real awesomeness about QML is not the visual graph - for a high-level UI developer that's an implementation detail. What makes it awesome is declarative UI markup, and flexible data bindings to the model. It's what MVC should have been from day 1.

Re:For better or for worse... (0)

Anonymous Coward | about 2 years ago | (#40844479)

Nope. Pretty much all core Qt developers have drunk the QML KoolAid(tm). It's pretty sad. I'm hoping the Elop-itis they all contracted will wear off after a while, and we can get back to reality.

Claim: widgets are too slow for modern interfaces. Huh, a class that handles user events and draws to a rectangular regular is too slow? Then fix the widgets! There is a lot of cruft in QWidget, but that WAS getting taken care of until Elop and Knoll decided they could speed things up by dumping C++ for JSON.

Claim: The sequential rendering pipeline of QPainter is too slow. Yeah? So what? Maybe it's too slow if I have several hundred animated doodads flowing over the screen, but don't tell me that using a standard QPushButton is slowing down the application! There are areas to improve painting but that's a reason to fix QPainter, not to officially deprecated it in favor of a new scene graph that doesn't even have C++ bindings! There is also the related claim that QGraphicsView is too slow because of sequential painting, so they replaced it with a Javascript-only scene graph. But the big bottleneck of QGraphicsView was its poor indexing, something that QtQuick 2 did not address. Besides, there was nothing stopping QGraphicsView from drawing its items in parallel. Nothing but politics.

Re:For better or for worse... (2)

tibit (1762298) | about 2 years ago | (#40844827)

Huh, a class that handles user events and draws to a rectangular regular is too slow?

Yes. Because when the graphics card does the actual rendering using the modern 3D hardware, you don't need the rectangular window anymore, nor its memory and bandwidth baggage. If you actually understood how it works, and what it takes to composite legacy rectangular widgets, you'd have understood it. As it is, you're talking out of your ass, demonstrably without any technical understanding of what's involved. Sorry.

There are areas to improve painting but that's a reason to fix QPainter.

It's got nothing to do with fixing QPainter, you're delusional if you think so. The model where something changes on the display and user code is asked to do repaints is crazy when you have a piece of very fast graphics hardware that will do all that for you without a single line of code running on the CPU, without a single task switch even though there may be windows from a dozen applications all being updated.

Re:For better or for worse... (0)

Anonymous Coward | about 2 years ago | (#40845149)

I didn't say you could keep QWidget/QPainter unchanged! There are several obvious fixes that don't require the use of JSON or Javacript to implement.

For example, paint to a OpenGL texture instead of to the screen. Then you can paint all of your widgets / graphics items in parallel. You would still need a dirty bit, because in real life stuff does change and its appearance does need to be updated. But now because we are painting to a texture, we can do this outside of the paint event and in a different thread.

And by using the word "rectangle" I did not imply a fixed and bounded region. QGraphicsView items certainly are not limited to externally imposed boundary. Sorry if my use of the word got your panties in a wad.

Re:For better or for worse... (1)

ardor (673957) | about 2 years ago | (#40846911)

This is an imperfect solution which assumes that redrawing inside the window (which is the OpenGL texture) is done quickly enough. It also splits the system into two parts: the hardware-accelerated window compositing part and the unaccelerated drawing part.

More sophisticated solutions exist. Examples:
Using distance fields in OpenGL shaders for font rendering [nokia.com]
Using textures for anti-aliased vector graphics rendering [bdmonkeys.net]
Spline rendering in the GPU for non-affine vector graphics rendering (including text) [nvidia.com]

Such techniques assume the presence of a GPU. Forget about abstracting that away with a painter-based architecture. The fundamental problem is that the painter acts at a level that is too low. This is the reason for the higher-level QML scenegraph. As for the missing C++ bindings, thats debatable, but if some appear one day, expect a high level API. Nothing else makes sense.

It should be noted that the Enlightenment Foundation Libraries [enlightenment.org] do something very similar with the combination of Evas and Edje.

Re:For better or for worse... (5, Funny)

Anonymous Coward | about 2 years ago | (#40842809)

I hope the Raspberry people buy it.

Then they can call it Qt Pi.

Re:For better or for worse... (1)

killmenow (184444) | about 2 years ago | (#40842859)

fresh outta mod points but that was funny.

Re:For better or for worse... (-1)

Anonymous Coward | about 2 years ago | (#40844081)

Qt is not an acronym, thus that would be "cute pie". Nice try though.

Re:For better or for worse... (1)

rdnetto (955205) | about 2 years ago | (#40844549)

You joke, but there's already a lightweight Qt-based desktop environment called Razor-QT that runs quite nicely on the RasPi, though it is still a bit rough around the edges since it's still in development.
If all else fails, the KDE project could probably assimilate it.

Re:For better or for worse... (0)

Anonymous Coward | about 2 years ago | (#40849047)

If all else fails, the KDE project could probably assimilate it.

Not only can they, its in their charter.

Still a great toolkit despite Nokia (5, Interesting)

zenyu (248067) | about 2 years ago | (#40842821)

Maybe SUSE (Attachmate) can buy it, or even better Cannonical. SUSE could keep it going but Cannonical is trying to develop a toolkit from the ground up for Unity3D based on NUX, but it is really terrible compared to Qt and it will take them 5+ years to catch up. Forever in this business. It would make much more sense to move Qt in the direction they want to go.

Re:Still a great toolkit despite Nokia (1)

jpstanle (1604059) | about 2 years ago | (#40843079)

You keep your unity interface the hell out of my QT!

Seriously though, it would be nice to see someone with the resources and, more importantly, the commitment to continue to develop QT. It's too good to let it waste away...

Re:Still a great toolkit despite Nokia (3, Insightful)

Enderandrew (866215) | about 2 years ago | (#40843619)

I've wondered how long it would take to make a Unity (or Gnome 3) clone shell with Qt and Plasma. The advantage of Plasma is that you can easily swap shells on the fly and give users choice (though frankly I think the traditional KDE desktop is far more usable than Gnome 3 or Unity).

However, if anyone should purchase Qt, it should be Google. They can guarantee it will stay GPL. And Google themselves need to learn a few things about cross-platform apps. Apps like Picasa, Google Earth, Chrome, etc. probably should have used Qt from the beginning.

Re:Still a great toolkit despite Nokia (1)

Gavagai80 (1275204) | about 2 years ago | (#40845669)

Picasa and Google Earth weren't created by google (just acquired later), so can't blame them for those decisions.

Re:Still a great toolkit despite Nokia (1)

Eravnrekaree (467752) | about 2 years ago | (#40844993)

After Unity, i dont think we want Canonical to touch it. Unity is the worst. UI. Ever.

Maybe Novell or SuSE.

Re:For better or for worse... (-1, Flamebait)

betterunixthanunix (980855) | about 2 years ago | (#40842837)

C++ toolkit for many high quality applications

There's your problem!

Re:For better or for worse... (0)

Anonymous Coward | about 2 years ago | (#40842873)

Having a great toolkit that makes highly efficient applications and is source compatible on tons of operating systems? Where is the problem exactly? Oh, you must be one of those Java 'programmers'.

Re:For better or for worse... (1)

luis_a_espinal (1810296) | about 2 years ago | (#40847107)

Having a great toolkit that makes highly efficient applications and is source compatible on tons of operating systems? Where is the problem exactly? Oh, you must be one of those Java 'programmers'.

Because generalizations are the stuff smart people use to sound smarter or more technically proficient </roll-eyes>

Re:For better or for worse... (2)

Stele (9443) | about 2 years ago | (#40842885)

-1 Ignorant

Re:For better or for worse... (3, Informative)

betterunixthanunix (980855) | about 2 years ago | (#40842927)

Not really; look at the state of exception handling in C++ and get back to me about "high quality" software. In fact, Qt's own documentation says this:

Exception safety is not feature complete! Common cases should work, but classes might still leak or even crash.

And,

Qt itself will not throw exceptions. Instead, error codes are used.

http://qt-project.org/doc/qt-4.8/exceptionsafety.html [qt-project.org]

Which is not to mention the incoherent uses of exceptions and error codes in the C++ standard library.

Re:For better or for worse... (1)

Desler (1608317) | about 2 years ago | (#40842975)

Yes, and? It's still less annoying than checked exceptions in Java. Also, Qt runs on embedded platforms where exceptions aren't a good choice for use so error codes is the pragmatic choice they made.

Re:For better or for worse... (3, Interesting)

betterunixthanunix (980855) | about 2 years ago | (#40843085)

The problem is that "high quality software" should handle errors -- it should not crash when an error occurs (in the worst case, it should gracefully shut down), and it should not ignore errors. Error codes are fine as long as you actually handle them, but in practice the effort required to check the return value of every function call (and you think checked exceptions are annoying?) leads to some errors not being detected or handled. That is why exceptions are good in theory; but if in practice, an exception can cause a program crash even when there is an exception handler waiting to catch the exception (this is the case in C++), then they are not a good way to deal with errors.

As for embedded systems, if there is enough computational power to display a GUI, I really do not see how exceptions are problematic.

Re:For better or for worse... (2)

Desler (1608317) | about 2 years ago | (#40843259)

And high quality software does handle errors. You seem to be wrongfully blaming deficiencies in Qt's implementation on the langauge. I've written numerous pieces of complex software with Qt using exceptions and have never seen an exception fail to be caught or ever let errors go unchecked. Eitherway, I've used tons of crappy Java and .Net applications that have failed to catch exceptions or check errors and routinely crash because of this. As the person above said, you seem to be just another boring, ignorant C++ hater. You might want to update your C++ hater points beyond what you read on yosefk.com or other lame whiner sites.

Re:For better or for worse... (4, Interesting)

betterunixthanunix (980855) | about 2 years ago | (#40843925)

You seem to be wrongfully blaming deficiencies in Qt's implementation on the langauge

I was originally replying to a post that claimed Qt was the "best" toolkit for writing "high quality" C++ programs. Qt uses error codes, not because error codes are a good thing (they are not), but because Qt is a C++ toolkit and C++ makes anything other than error codes unreliable. How is that an unfair criticism?

I've written numerous pieces of complex software with Qt using exceptions and have never seen an exception fail to be caught or ever let errors go unchecked

Except that preventing exceptions from crashing your program in C++ means preventing some exceptions from propagating -- and basically forces you to create programs that do not handle certain errors. In C++98, you could just risk a double exception fault, but it was considered bad practice; in C++11, you can't even take that risk, and so your destructors either have to handle the error properly or you need to find some other way to signal the error (or else let it go unhandled or just quit). On some level, you are either not using exceptions at all or else you are allowing some exceptions to be ignored -- that's a reality of C++ exception handling.

I've used tons of crappy Java and .Net

Did I say that Java or .NET are better? In all of these systems, exceptions could have been done better -- for example, by not destroying the stack before the exception handler executes. Java won't cause your program to abort when exceptions are thrown, but Java will cause exceptions to be "forgotten" under some circumstances:

try {
} finally {
throw new SomeException();
}

That is not much better if you want "high quality" software.

You might want to update your C++ hater points beyond what you read on yosefk.com or other lame whiner sites.

Lame whiner sites? I programmed C++ for a decade, and I still have to write C++ code sometimes. My dislike of the languages comes from experience, not from some website. Error handling is just one issue, one that I think is very much relevant if we are going to talk about "high quality" software. Programming in C++ requires knowledge of the long list of undefined behavior, the long list of patterns that have to be used to avoid that behavior (which hardly anyone deviates from, except for novices who have not yet learned the patterns), and debugging is as much about correcting bad program mechanics as it is about correcting bad program logic (and the majority of C++ code is not low level code).

Yes, I know, programmers should just follow best practices; if that is the case, why not just make those practices standard, and create a special statement to disable that behavior? Why are we forcing programmers to explicitly say, "I do not want this program to crash," when we could be forcing them to be explicit in situations where they do want to write potentially unsafe code?

Re:For better or for worse... (1)

gbjbaanb (229885) | about 2 years ago | (#40845075)

Except that preventing exceptions from crashing your program in C++ means preventing some exceptions from propagating -- and basically forces you to create programs that do not handle certain errors

I don't understand this - of course you have to prevent some exceptions from propagating - ie catching them. If you don't catch them anywhere, they end up in the default handler which usually stops your program by design.

Exceptions are seen as magic error handlers by some people, but the truism that you should never throw an exception you're not prepared to catch is valid. Similarly, you could say you should never return an error code if you're not prepared to check it. The only difference is really in that checking code - the exception handler can be placed in a different location to the error handler code, which can often help code readability. That's all there is to it though, if you ignore an error code - fine you know the call may not have worked. If you ignore an exception - fine, you know your program may stop.

So how to make exceptions opt-out rather than opt-in... the only way is to inspect all the exceptions a piece of code will throw (and the code it uses itself) and then create handlers for each of them, or just wrap all function calls with a generic catch(...) handler which will at least provide a quick and easy way to catch all those exceptions, unless you handle them first. So the best practice is really to write the equivalent of a switch's 'default' case every time.

Re:For better or for worse... (1)

betterunixthanunix (980855) | about 2 years ago | (#40847249)

I don't understand this - of course you have to prevent some exceptions from propagating - ie catching them.

That is not what I mean; what I mean are things like destructor exceptions e.g. closing a file can result in an error condition, and exceptions are basically the only reliable mechanism to signal that. In C++, iostream classes have that exact issue, and the standard dictates precisely what I said: if closing a file causes an exception to be raised, the destructor must catch it and do nothing, which is another way to say that the error will happen silently. There was, I am told, a very lengthy debate about this on Usenet and in committee meetings, because some people wanted a Lisp-style restarts system (or no change from C++98), but the committee went a different way on this issue.

Similarly, you could say you should never return an error code if you're not prepared to check it

There are two non-cosmetic differences:

  1. There is no way to guarantee that a C++ program will check an error code, nor does the language actually require such a thing. The best we have are separate tools that allow us to assert and prove that error codes are being checked, which can be used by programmers who want to do such things. With exceptions you are at least guaranteed a runtime error if the exception is not handled.
  2. There are some situations where an error code would not even be feasible. When a function is called, objects are copied; the copy constructor may have an error, but there is no sequence point between the copy constructor calls. You would need a very complex system for registering the error codes, and in C++ this is even worse because the order of copy constructor calls is undefined. This is the real selling point of exceptions: you can signal an error even in places where functions are not explicitly called.

Really, in a language like C++, exceptions are the only good way to signal errors; that is why getting exceptions right is critical to enabling programmers to write reliable code, and why getting exceptions wrong (which I contend is what happened in C++11) makes writing reliable code far more difficult.

So how to make exceptions opt-out rather than opt-in... the only way is to inspect all the exceptions a piece of code will throw (and the code it uses itself) and then create handlers for each of them, or just wrap all function calls with a generic catch(...) handler which will at least provide a quick and easy way to catch all those exceptions, unless you handle them first. So the best practice is really to write the equivalent of a switch's 'default' case every time.

Yes, and there is a top level catch-all that will terminate the program in any language that has exceptions. That is a fine thing to do, but consider the difference in Common Lisp (at least those implementations I have used): the top level catch-all presents the user with options that are specified by the function which throws the exception. Thus a failed attempt to close a file might give the user a "try again" option, which the user can use after freeing disk space. Clearly such a thing will not always work: the program might be non-interactive, but you can always override this behavior with your own top level catch-all.

As a final thought, the C++ goal of being both high- and low-level has questionable merit. High level programming is only about program logic; low level programming involves some logic, but must also deal with mechanics. Most of the code that is in use today is high level i.e. there is nothing machine-specific about it, it was written to implement a particular abstract algorithm or process. This is true of C++ code as well: most C++ code is high level code. Unfortunately, in order to satisfy the needs of low level programmers, C++ does not provide certain high level features (garbage collection being the most prominent, but also multiple dispatch, restarts/continuations, reflection, and even basic things like making all methods and destructors virtual by default or automatically checking array bounds) and has somewhat limited expressive power (e.g. look at the various hacks that are needed to do things that are built in to many high level languages), and so high level code in C++ is both more difficult to write and is often plagued with "mechanical" bugs (dangling pointers, buffer overflows, etc.). When you consider the number of non-experts who write C++ code (code that is used in production systems), the problem becomes very real: novices often do not have the long list of things they should not do / things they must not forget to do committed to memory.

Re:For better or for worse... (1)

Stele (9443) | about 2 years ago | (#40847635)

We get it - you don't like C++.

Personally, I have several Qt/C++ applications on the market that pretty much anyone (except maybe you) would consider "high quality". I'm certainly very satisfied with Qt.

Re:For better or for worse... (1)

betterunixthanunix (980855) | about 2 years ago | (#40847695)

OK, and I did not say it is impossible to do that -- just that it is needlessly difficult, and that as a result it is unusual. People have also written high quality software in assembly language, but if you needed to write high quality software, I doubt that assembly language would be your first choice.

Re:For better or for worse... (1)

gbjbaanb (229885) | about 2 years ago | (#40848893)

I agree with a fair bit of that, but you need to get up to speed on modern C++. Try this video [msdn.com] , it's not too long but is very good for you.

Re:For better or for worse... (1)

luis_a_espinal (1810296) | about 2 years ago | (#40847795)

Except that preventing exceptions from crashing your program in C++ means preventing some exceptions from propagating -- and basically forces you to create programs that do not handle certain errors

I don't understand this - of course you have to prevent some exceptions from propagating - ie catching them. If you don't catch them anywhere, they end up in the default handler which usually stops your program by design.

I think he's referring to the poor exception semantics in C++, in particular that there is no exception "top" type. If that's not what he means, at least that is something I've had to face with when it comes to developing C++. As you know, a throw can take on anything, even an int. There is no exception type as a first class type, and as result, there is no "top" type for them.

But since anything can, in theory, be thrown at your code, your code must always have a catch(...) as the last catch of every try you have (if you want to print some time of line-code diagnostics, which is all you'll ever had)... or at the very least a catch(...) at the top-most section of your program/event loop.

Since you cannot determine anything at all from whatever that falls into a catch(...) block, you are restricted to do a "unknown error" handling operation, or to silently ignore it. Either way, that is a type of errors that you cannot effectively handle (note the wording, "effectively handle"). Logging a "something happened" error message (or ignoring an unknowable exception) to prevent a crash is essentially not handling the error to avoid the crash (because there is no way to effectively handle something that cannot be diagnosed.)

And that is the main semantic problem with C++ exception handling (on top of many others). C++ exception handling makes Java checked exceptions look incredibly appealing (and that is no compliment.) It is not only Qt that opts for error codes over C++ exceptions. A large number of very important systems (.ie. Azul's VM for example, or many C++ system in the defense sector) follow similar design decisions.

Exceptions are seen as magic error handlers by some people, but the truism that you should never throw an exception you're not prepared to catch is valid.

Another truism is to never assume the thrower of an exception is either you or some other entity under your direct control. In any sufficiently large/complex system, your code will be used by others, or will be layered over others' code base, or will interface with other component. In such situations, a exception mechanism without a "top" exception super type can quickly become more a liability than anything else. That uncertainty makes error codes a better alternative. Mind you that this is only true in C++ (but false in all other languages with true "top" exception types.) Similarly, you could say you should never return an error code if you're not prepared to check it. The only difference is really in that checking code - the exception handler can be placed in a different location to the error handler code, which can often help code readability. That's all there is to it though, if you ignore an error code - fine you know the call may not have worked. If you ignore an exception - fine, you know your program may stop.

So how to make exceptions opt-out rather than opt-in... the only way is to inspect all the exceptions a piece of code will throw (and the code it uses itself) and then create handlers for each of them, or just wrap all function calls with a generic catch(...) handler which will at least provide a quick and easy way to catch all those exceptions, unless you handle them first. So the best practice is really to write the equivalent of a switch's 'default' case every time.

As a said, an exception system that permits generic catch(...) blocks but does not provide a "top" exception super type is a system that makes effective universal exception handling impossible.

Re:For better or for worse... (1)

gbjbaanb (229885) | about 2 years ago | (#40848825)

I understand, and it does seem that a hierarchy of well-defined exceptions would be something the standard body could consider, but you'd still be stuck with backwards-compatiblity with throwing an int.

I guess you could attempt to build your own, rely on exceptions derived from std::exception, and then use a global handler to catch all other exceptions.

I'm a pragmatic chap, I know there is no perfect code, and that you can't build it in other languages that do have well-defined exception hierarchies (eg in .NET a StackOverflow exception cannot be caught and will stop your program, *without* reporting any error. Nice).

In most C++ apps, an exception is a way of specifying something terrible has happened that cannot often be handled except to log and halt. What you see in languages that have an exception top class is exceptions used for all kinds of program flow. Perhaps its a good thing C++ doesn't have such a construct given this.

Re:For better or for worse... (2)

shutdown -p now (807394) | about 2 years ago | (#40848975)

in C++11, you can't even take that risk, and so your destructors either have to handle the error properly or you need to find some other way to signal the error (or else let it go unhandled or just quit).

That's not true - destructors default to noexcept(true) in C++11, but you can explicitly override that.

Re:For better or for worse... (0)

Anonymous Coward | about 2 years ago | (#40849013)


Did I say that Java or .NET are better? In all of these systems, exceptions could have been done better -- for example, by not destroying the stack before the exception handler executes. Java won't cause your program to abort when exceptions are thrown, but Java will cause exceptions to be "forgotten" under some circumstances:

Hmmh? Stack information is retrievable from the exception object itself, it is not lost (which also makes Throwables rather expensive to construct). But I fail to see why ability to catch and drop Exceptions is somehow bad thing for a language. You are certainly free to let exceptions percolate as high as you want to... which is, after all, the default unless you explicitly catch them.

Re:For better or for worse... (0)

Anonymous Coward | about 2 years ago | (#40843901)

I've been programming longer than some of you have been alive. And my experience has taught me that you never through an exception you yourself aren't prepared to catch. By "you" I mean both you personally and not your coworker down the hall, and you as the module you're coding (ideally not even the compilation unit). You don't just throw them over the wall hoping someone else will catch them. All exceptions will crash a program if not handled. All are fatal. This should go without saying, yet people continue to use them as if they were a general purpose error reporting system.

This is why I greatly appreciate Qt's exception policy. Qt DOES use exceptions, but only internally. It just doesn't throw exceptions out to the end user developer.

Re:For better or for worse... (1)

betterunixthanunix (980855) | about 2 years ago | (#40843979)

And my experience has taught me that you never through an exception you yourself aren't prepared to catch.

That's fine if you have a good way to signal errors to client code. Error codes and return values are lacking in that department, because client code can (and probably will) ignore them.

Re:For better or for worse... (0)

Anonymous Coward | about 2 years ago | (#40845485)

So? Client code that will ignore my error code is client code that won't catch my exception. The difference is that not all of my errors are fatal, whereas by definition every exception is.

Example, parsing a numeric string. If I cannot convert the string to an integer, I could set the value to 0 and return/set an error code. If the error code is ignored, the program will not crash. But if I did it in the "purist" way I would throw and exception instead. Now the program crashes.

You SHOULD check for all return codes, and you SHOULD handle all exceptions. But we're talking real life here, not the idealized world they taught us in college. In real life error codes sometimes don't get checked and exceptions sometimes don't get handled. The solution is to, as best as is possible, deal with the error at the point that it occurs, instead of handing it off to someone else with less knowledge to deal with.

Not all unhandled errors should be fatal, but by using exceptions you do make them fatal.

Re:For better or for worse... (1)

betterunixthanunix (980855) | about 2 years ago | (#40847659)

Client code that will ignore my error code is client code that won't catch my exception

Except that the behavior of a program following an unhandled error is essentially undefined -- the only well-defined behavior is to terminate. That's what exceptions give you; if the programmer does not define how an error should be handled, the program just stops. In terms of a state machine model, if the program enters an error state and has no transitions out of that state, it halts.

The difference is that not all of my errors are fatal, whereas by definition every exception is.

No, not all exceptions are fatal, at least not in languages that support restarts or continuations. You can have exceptions that are recoverable or ignorable; the programmer just needs to specify that that is what should happen.

Example, parsing a numeric string. If I cannot convert the string to an integer, I could set the value to 0 and return/set an error code. If the error code is ignored, the program will not crash.

Unless you try to divide by the integer you converted to, in which case you crash, and you lose the information about why you crashed. This can be even worse: you might have been trying to read the price of an item, but a thumb drive was removed, and now the price is set to zero -- which is not what you wanted. Unhandled errors are bad things and should be discouraged.

we're talking real life here, not the idealized world they taught us in college

In real life, unhandled errors cause worse problems than program crashes:

http://descriptions.securescout.com/tc/16657 [securescout.com]

The solution is to, as best as is possible, deal with the error at the point that it occurs, instead of handing it off to someone else with less knowledge to deal with.

Sure, but sometimes you really have no other choice. If the disk is full, you can possibly correct the error by asking the user to remove some files; but if you are not interactive, then you cannot do so. Exceptions with restarts are the answer; not error codes, and certainly not allowing client code to just ignore error states.

Re:For better or for worse... (1)

davydagger (2566757) | about 2 years ago | (#40846925)

my ass it is.

GTK is far better, or at least doesn't crash X with nvidia drivers

Do you do it for money or for love? (0)

Anonymous Coward | about 2 years ago | (#40842557)

You can't have it bothways.

Re:Do you do it for money or for love? (4, Funny)

DeathToBill (601486) | about 2 years ago | (#40842665)

Unless you're Dominique Strauss-Kahn, of course.

I hope Google gets Qt (4, Insightful)

goruka (1721094) | about 2 years ago | (#40842879)

And integrates it to Android, NaCL, ChromeOS, etc. It would make developing and porting large applications to their platforms much, much easier.

Re:I hope Google gets Qt (5, Interesting)

chrb (1083577) | about 2 years ago | (#40843043)

There already is QT for NACL [qt-project.org] . It's a very interesting idea, you can deploy QT apps over Chrome instead of having to target a native desktop. If you build for x86 and ARM you've got a complete software stack for web-accessible native GUI apps that will run on any platform that Chrome runs on (which apparently will soon include Android).

Re:I hope Google gets Qt (2)

thatbloke83 (1529851) | about 2 years ago | (#40844457)

There is already a community-run project to port Qt to Android. It's called necessitas, and today the Alpha 4 version was released for testing.

I've dabbled a bit with it with previous versions, and it's in a very good state already :)

See here: http://sourceforge.net/p/necessitas/home/necessitas/ [sourceforge.net] (It seems the website isn't showing alpha 4 yet, but it was announced on the necessitas mailing today that it was available).

Re:I hope Google gets Qt (1)

gbjbaanb (229885) | about 2 years ago | (#40845237)

In a way I hope Microsoft buys it.

no, wait!

Firstly, MS would do well with it - there is a ton of old MFC code out there that will need to be updated to something jazzy, and with the MFC->Qt migration tools, all that old code could be made shiny and modern. This is especially important given MS's renewed interest in native development. Its also important given MSs current GUI technology WPF being a bit shit [wordpress.com] - using way too much resources and performing really badly, really so for anything using lots of fancy animation.

For all MSs faults, they do good documentation and put a lot of effort into making their tools work - remember the monkey dance to prove that! They also have a lot of developers who would love to be allowed to use it in corporate MS-only no-OSS environments. Suddenly Qt would get a lot of push forward to a lot of computers and developers and MS would get a really good GUI system (at last).

I doubt Google would put much effort into it, and might end up shelving it after a few years like a lot of their other projects. They might be interested in Wt though - that turns the Qt code into a web front end.

Re:I hope Google gets Qt (1)

DarwinSurvivor (1752106) | about 2 years ago | (#40847503)

For all MSs faults, they do good documentation and put a lot of effort into making their tools work.

Right, that's why MSDN still has no facility to filter a search by programming language (finding the "c" version of a call is damn near impossible since it also brings up c++, c# & objective-c) and hitting recompile a second time in Visual Studio will fix some bugs in your software.

I say this as someone that did a fair bit of win32 programming in College (required, trust me it was NOT by choice!) and it was by FAR the buggiest piece of crap I have EVER worked with and I've done JavaScript on IE6!

Re:I hope Google gets Qt (1)

gbjbaanb (229885) | about 2 years ago | (#40848353)

actually the MSDN v4 help system was the dogs danglies, then v5 went all HTML and was ... acceptable. The new one is a lot more rubbish... however, I was referring to the quantity of the stuff, they do not skimp on writing the stuff - and besides I use Google to search through the online version nowadays, that works :)

Ps. it used to bring up the Windows CE version first, every time.

Re:I hope Google gets Qt (0)

Anonymous Coward | about 2 years ago | (#40848355)

hitting recompile a second time in Visual Studio will fix some bugs in your software.

I'd love to see a citation for this. I've got years' worth of Visual Studio use under my belt and have never run into this situation. Visual Studio may have its problems but this isn't one of them in my experience.

Nokia -- why? (2)

Sipper (462582) | about 2 years ago | (#40843239)

All I can do is express my confusion. Nokia purchased Qt presumably with the intent of using it on their phones. They put out a couple of very good phones such as the N900 that leveraged Debian and Qt. All of that seemed like they were on the right path. Debian users practically swear by the N900.

And then... they announce plans to switch to a non-existent Windows platform. What? That was a total reversal of course away from what was previously a direction of free and open source software. Somewhere in the company I'm betting the reasoning given has to do with a spreadsheet of expected costs of development between the Qt and Windows platforms, and my personal bets are on those numbers being wrong and thus the wrong decision being made.

What matters to me personally is that Qt support structure survives this intact, because it's a very important framework. Thankfully Qt is GPL software, so the existing code will survive no matter what.

Re:Nokia -- why? (4, Interesting)

jonwil (467024) | about 2 years ago | (#40843521)

What happened is that Microsoft managed to get an ex-Microsoftie into the top job who then eliminated a major competitor and turned them into the biggest supporter of the Microsoft platforms.

And with Nokia being all about Windows, Qt has no place at Nokia anymore, hence the decision to get rid of Qt.

Re:Nokia -- why? (5, Interesting)

RoccamOccam (953524) | about 2 years ago | (#40844443)

This. For quite a while, I've had a sneaking suspicion that Nokia's acquisition of Qt is one of the principal reasons that Microsoft embarked on their torpedo-Nokia strategy.

Re:Nokia -- why? (5, Insightful)

PolygamousRanchKid (1290638) | about 2 years ago | (#40845069)

ex(?)-Microsoftie

Does anyone believe that Elop is not still working for Microsoft . . . ?

Re:Nokia -- why? (1)

Anonymous Coward | about 2 years ago | (#40847947)

I do not understand why Microsoft Nokia is getting rid of Qt. One would think that their ability to control both GTK and Qt via Microsoft employees Miguel de Icaza and Stephen Elop would be a good thing.

Re:Nokia -- why? (1)

shutdown -p now (807394) | about 2 years ago | (#40848999)

How exactly do you control an open source project?

Re:Nokia -- why? (1)

gl4ss (559668) | about 2 years ago | (#40843549)

Because of Elop. have you been hiding under a rock?

the reason why they got the board to go with it is that they spent something along to the tune of billion++ dollars on being prepared to do "great things" with whatever tech was the jesus tech of the day - that was the real expenses problem(and the structure of that development was such that it leaked lots of money to companies outside of Nokia).

what they should have done would have been to fire the people anyways and definitely not announce dropping the whole system before they had replacements already on the market.

technically it's probably that it took way too long for them to port the core qt libs to such a shape on symbian that they were usable for actually building apps. thing is they seemingly had a huge army of developers(which were just burning cash).. and then just a small core that didn't move anywhere for a long time doing the porting and bitching about symbian quirks preventing them doing things instead of fixing those quirks. in a word there was a lack of urgency in the whole endeavor which is hardly surprising since there were people working on it who were just attached to the project from outside of nokia (the longer it took the more money the company which contracted the people got).

add to that spreading the work between multiple teams on multiple continents.. you could ask, why the hell were these parts in development in australia especially since there's parts there for which proper implementation on the systems that interested nokia would have needed direct access to the guys doing core symbian? which is something that on several occasions colored symbian development: managers didn't seem to understand that you can't fix problems in a bottom layer by building another set of api's on top of it that just map to the old one's when the problem was that the old api's didn't do what they were supposed to at all or were implemented so that they only did a specific sub task of the whole array of things you were supposed to use them for.

So.. probably the board got enough of that. however that still doesn't excuse them for letting Elop do his stupid talk.

Re:Nokia -- why? (0)

Anonymous Coward | about 2 years ago | (#40845103)

I found a recent picture of Stephen Elop. You can see one of the Nokia board members just to the right.
Stephen Elop.jpg [the-reel-mccoy.com]

Re:Nokia -- why? (1)

Viol8 (599362) | about 2 years ago | (#40843565)

Probably in case of failure. If Nokia's handsets tank and the company goes into the red because no one wants a Windows phone - which seems to be the way things are going - then I suspect they hoped they could have a soft landing in the form of being bought out by Microsoft and saved from themselves. Whether this will happen or not - who knows. Though to me it looks like a case of from the frying pan into the deepest bowels of hell.

Re:Nokia -- why? (2)

tuffy (10202) | about 2 years ago | (#40844065)

Microsoft has already thrown Nokia under the bus once when they denied the Lumia an upgrade path to Windows 8. So rather than rescue this dying company (and all its debts) with a buyout, they'll just wait for Nokia to crash and burn before picking up the useful pieces at fire sale prices.

Leadership Change (2)

mx+b (2078162) | about 2 years ago | (#40843595)

When you read the history, it makes more sense.

Nokia bought Trolltech (the original Qt developers) in 2008. I vaguely remember the articles at the time saying the reason was indeed so that Nokia could develop new GUIs for their phones. The new CEO of Nokia, Stephen Elop, became so in late 2010. Not long afterward is when the announcements started about going toward the WP7, and one by one stopping the other phone OS projects. Guess where Elop worked before taking over Nokia? Microsoft.

It's a shame that Qt has been passed around when it is such a terrific framework. I am not much of a programmer by trade, but I am by hobby, and it has been a joy to use on my personal projects. That modern KDE is so streamlined and adaptable is a testament to its abilities, and Qt 5 sounds like it will be a big leap forward.

Thankfully it is GPL, but without work, it will stagnate. I am sure many would love to contribute to it, but it is not practical to continue develop on it as hobby. Redesigning modules and all takes lots of time, and when are you supposed to do all that around your other jobs that you need to make money? I hope some corporate sponsors pick it up in some form, if not outright buying the assets/company, then at least sponsoring some hackers to work full-time on the open source version. Maybe a few KDE-centered distros will help out (SUSE?), if not KDE itself?. I'd be happy to buy a copy of the next SUSE to support development of a good distro and continued development of Qt/KDE.

probably a good thing for Qt (5, Interesting)

Blob Pet (86206) | about 2 years ago | (#40843243)

Over the last few years, whenever I looked at a changelog for a new release of Qt, I noticed quite a bit of of work was being done to support Symbian or Meego. When I went to their annual conference a couple of years ago, some of the stuff they were showing off (namely, basic UI control widgets for QML) seemed to be focused on Symbian or Meego first and maybe other platforms later. Meanwhile, I noticed that some releases of Qt (especially around 4.6.2) had some surprisingly bad bugs that I wouldn't have expected in the past. I wasn't alone. A friend of mine at Nokia doing Mac development with Qt admitted as much. The whole thing made me think that far more resources was going into getting Qt support for Nokia's platforms at the expense of Qt's traditional desktop platforms. That's an uncomfortable feeIing to have when you're a software firm and you're paying Nokia (and now Digia) for commercial support for the toolkit. I'm hoping that what's going on now will refocus Qt development.

Trolltech patents... (3, Funny)

turkeyfeathers (843622) | about 2 years ago | (#40843333)

What happens if a patent troll gets the Trolltech patents?

Did the check bounce? (2)

John Hasler (414242) | about 2 years ago | (#40843677)

Seems like selling itself to Nokia wasn't the best option for Trolltech after all.

Did the check bounce?

Google can buy it, give it to Stroustrup (1, Interesting)

Anonymous Coward | about 2 years ago | (#40843761)

I think this is great. The devs got paid $135 million for all their hard work, from a big, stupid company. Now, Nokia will probably sell it at a low price. Google as an act of generosity could buy it for a low price, and give it to the C++ committee.

Re:Google can buy it, give it to Stroustrup (1)

Eravnrekaree (467752) | about 2 years ago | (#40845417)

Sounds good to me. The patents it would seem are the really important part. The source code is GPL, I already have downloaded a complete copy of Qt source code, I advise others to do so, for safekeeping.

Google (0)

Anonymous Coward | about 2 years ago | (#40844033)

Google, we need you now! Buy it!

Jolla? (2)

cdp0 (1979036) | about 2 years ago | (#40844055)

Maybe Jolla [wikipedia.org] will buy Qt? It may be useful to them considering their plans, but I have no idea what the price is and if they can afford it.

Since we're talking about potential purchasers ... (1)

Anonymous Coward | about 2 years ago | (#40845077)

... I note with interest that Thiago Maceira - a hard-core Troll and formerly Qt's product manager - jumped to Intel a while back and works in their Open Source Technology Centre. He is still very heavily involved in Qt development.
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?
or Connect with...

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>