Future Delphi with Qt [closed]
Will the next version of Delphi be released with cross platform support and Qt based components? If so, do开发者_开发问答 we have to distribute with Qt? (I don't know anything about Qt) How can Qt help the Delphi world, and why did many programmers using C++ start using Qt with, and what will happen to VCL?
do we have to distribute with Qt
Probably. A lot depends on how it will be implemented, and how Qt will be linked to executables. There are also interesting implications depending on what kind of Qt license is used. The LGPL is not the MPL or the BSD...
why many programmers using c++ started using Qt with them
Qt is a C++ library, and C++ developers use it directly. It makes sense to use it from C++ to write portable applications. It makes a lot less sense to create a wrapper over a wrapper, what the Qt/VCL would be. They will take that road because it's faster to deliver a cross-platform framework that way, but they didn't learn anything from the mistakes they made (CLX, VLC.NET) and will repeat it again. They will have to map a library written with its onw design to the Delphi library design, and it means a lot of compromises without any control over the underlying framework. IMHO, it will be a failure like the CLX and the VCL.NET.
There will be a new VCL+ library, released together with the VCL "classic" library.
As far as we can tell, this VCL+ library will be based on Qt 4. And the "classic" VCL will remain, but targeting Windows only.
Since Qt is C++ based, there will be a dll containing a "flat" version of the library, ready to be accessed from Delphi code. This dll will have to be released with your application. Since Qt can be statically linked, I guess this dll will contain all necessary Qt code, ready to run on Windows/Linux/MacOsX. But another possibility will be to have a "flat" dll which will be able to call other Qt dll, which could be upgraded on purpose, when a new official Qt update will be released: it could be better not to rely on EMB to follow the Qt upgrades, that is not to buy a new Delphi license to have access to the updated Qt framework.
I suspect the way Qt will be used by Delphi programmers will be far away from how c++ programmers use the library. Qt relies heavily on macros and pre-compilation (compiling a Qt application is very time consuming), whereas Delphi will rely on components and more classic class orientation (which compiles quickly).
We can only guess from what was done with the CLX library, when Borland released Delphi and Kylix based on Qt 2. I hope they have learned from this experiment (CLX was never widely deployed/used). But Qt 4 is definitively much more attractive than Qt 2 was.
What we don't know yet is how deep the VCL+ will rely on Qt Core. Will some part of the RTL be translated into better matching the Qt design? For example, will multi-threading and sockets call the corresponding parts of the Qt Core? It could make sense, for cross-platform compatibility, not to reinvent the wheel, since Qt engineers already made the hard work and maintain it...
Well, according to their previous roadmap, current version (Delphi XE) was supposed to provide cross-platform support; that is, compiling your project for different platforms (Win, Mac, Linux), not porting the IDE to those platforms. But they didn't provide it, and postponed it to future releases.
The current roadmap is still vague; it says they will provide it, but no specific time frame (except for 64-bits compiler preview). Embarcadero has postponed expected features (e.g. 64-bits support, or cross-platform support) without informing the customers properly a few times, for example, most (if not say all) of their customers had no idea cross-platform support was excluded from XE up to a few weeks before the official release. So it wouldn't be a surprise for me to see they postponing this again or totally dismiss their current roadmap.
For Qt, according to Mike Rozlog, Delphi product manager, in his interview with Delphi Podcast; their cross-platform support would be based on their previous cross-platform library (CLX) which was available in Delphi 6 and Delphi 7. Even he mentions that most of existing CLX-based apps might compile successfully using the new cross-platform feature. So if this hasn't been changed, then Yes, it will be a Qt base solution. CLX was also based on Qt library.
If it is Qt-based, then you have to deploy Qt runtime library too. In Linux it shouldn't be an issue, cuz as far as I know, most of Linux distros already have Qt runtime installed. For Windows, I know it is not installed by default. I don't know about Mac OS.
How can Qt Help the Delphi world
Qt is a popular and well-established cross-platform framework which is owned and developed by Nokia, and is published for free (LGPL license). Delphi is probably just supposed to use Qt GUI widgets for cross-platform GUI support, but Qt itself consists of many different libraries for almost anything, and just a GUI framework.
why many programmers using c++ started using Qt with them
You should ask this from C++ developers, but as far as I can say; Qt is a proven cross-platform framework, has a nice IDE and UI designer (Qt Creator), can be easily integrated with popular development tools (e.g. Visual Studio), has good support, you can find Qt port for almost all major programming languages, and Nokia is using it as the base software framework for their current and future mobile platforms (e.g. Symbian^4 and MeeGo).
what will happen for VCL
Again referring to Mike Rozlog; they are going to keep VCL as a Windows-based framework, and provide a new framework for cross-platform development which is similar to VCL.
精彩评论