Future of Qt in the light of open source .Net
Recently Microsoft has announced open sourcing .net (http://blogs.msdn.com/b/dotnet/archive/2014/11/12/net-core-is-open-source.aspx). One of the many advantages i have seen with Qt is it is cross platform. As the .net frame work will run on platforms like Linux and Mac, what will be the key advantages of using Qt?
Microsoft has not open sourced any visual components, only core of the platform. At least as far as I'm aware. So you still won't be able to use .Net to "code once, deploy everywhere". But maybe I am mistaken. Plus, they have "only" open sourced it, which means the support for other platforms is not yet done - Qt has been here, doing the cross-platform job, for decades. And it already has a healthy code ecosystem.
In the future they may open source it, even if it is not, if they provide it as libraries, wouldn't it be suffice? or are you meaning to say that, they will provide only the core for other platforms? I read somewhere else that Visual studio and some other libs (don't remember exactly) will be ported in 2015 to linux and mac.
I also believe that this movement can strengthen mono project.In the GUI side, mono has GTK#. I dont have good knowledge in this area, so seeking your opinion in investing in Qt on a long term basis.
The change in MS attitude is indeed welcome. I know only basics of C# and .Net, so I can't assess the situation thoroughly for you, sorry. Sticking to Qt is a good idea because of it's superb API and documentation. But I've heard a lot of good things being said about C#, too.
[quote author="lloydqt" date="1416912003"]I dont have good knowledge in this area, so seeking your opinion in investing in Qt on a long term basis.[/quote]Whether or not it's worth investing in Qt for the long term depends on your goals. What kind of projects are you planning to do?
It is a standard desktop application. mainly processing big amount of data (few terabytes). Main processing will be of type searching and filtering. User interacts with the system continuously. It will need a rich GUI and will also need some custom controls.
The main strength of Qt in my view is the underlying C++. Even if you do your UI in QML it is well integrated with C++ backend, and C++ is still superb when it comes to heavy number crunching.
It's a moving thing, as there are initiatives clearly recognising this, like .NET Native, but for now and foreseeable future C++ and C are the goto languages when you need to get the low level(to the cache line or sse intrinsic) performance.
As for lighter, more UI centric applications I would choose between Qt and C# based on the array of available platforms you want to support and the know-how of the programmer/team.
timday last edited by
This is an interesting topic. I remember being (pleasantly, at the time) surprised MS didn't pick up Qt as part of the Nokia acquisition and call it "MFC2" or something. Probably didn't fit in with their all-Windows/managed code is the future/anti-FOSS dogma of the time... but yes now there does seem to be fresh attitude from MS and some interesting developments (good grief did I see something about hosting Docker containers on their server OSs? Let's hope that turns out better than POSIX support did).
I have seen a little bit of the Xamarin stuff for doing cross platform apps. There seemed to be an expectation that you'd do the front end using the platform's own native UI toolkits, with C# more for the cross-platform backend (see "here":http://developer.xamarin.com/guides/cross-platform/application_fundamentals/building_cross_platform_applications/sharing_code_options/#Shared_Projects ). It all seemed a bit fiddly to me. However they do have a "Xamarin.Forms":http://developer.xamarin.com/guides/cross-platform/xamarin-forms/introduction-to-xamarin-forms/ which is an abstraction for native widgets (including "mobile":http://developer.xamarin.com/guides/cross-platform/xamarin-forms/creating-mobile-apps-xamarin-forms/). IMHO XAML is horrid compared with QML+js though.
I remember being quite impressed by these "blog":http://blog.qt.digia.com/blog/2012/11/20/qt-gearing-up-for-the-future/ "posts":http://blog.qt.digia.com/blog/2013/04/23/keeping-qt-in-the-lead-and-adding-value/ (wow, those were only a couple of years ago; seems longer!) and thinking Qt "Got It" with their "#1 in multi-platform support" goal. Clearly MS are wanting a piece of the action too though, and taking the multiplatform development space more seriously than they ever have in the past.
As usual, M$ does a little too little, a little too late. they should open source their entire codebase and maybe then it will make up for the damage they inflicted with their schemes to lock in vendors, developers and users alike with their dirty, exclusive practices for decades...
I highly doubt there is a shred of noble aspiration behind that decision. M$ either sees a drop in developer base, prompting it to pretend to be nicer, or more likely - opportunities to entrench developers who would normally not touch their development tools.
If their .net APIs are as ugly as their RT C++ APIs, I would not worry about Qt losing relevance to a portable .net. And somehow I have my doubts M$ will ever invest effort into supporting nice high level features on competing platforms.