Delphi 2010 released...

by Kim 5. September 2009

Delphi 2010 has now been released by Embarcadero.

First impressions is, that if there have ever been a time to drop Delphi 7, and move on to a new Delphi, then that time has come.

D2010 is just so much faster than the last several Delphi releases, that its an absolute joy to use. It also have Delphi 7 usability features implemented, like the ability to get the old component bar back, as an alternative to the newer style component palette implemented in D2005.

There are few quirks related to that (like that the componentbar's position seems to move after a restert of D2010), but they are relatively minor issues, and can probably quickly be resolved in a future fixpack.

 In D2005, D2006, D2007 and D2009 there were nasty leaks in the IDE, that made the memory usage swell up over a short period of time, making the IDE (and the rest of the machine) painfully slow to use after a short while. Although some progress was made from D2005 to D2009, there still were annoying leaks of this type, that required a restart of the IDE regularly to get rid of the leaked memory.

Im happy to conclude that they finally nailed the leaks in the iDE in D2010 it seems. Previously it wasnt possible for me to work, using a complex project, for more than a couple of hours without having to restart Delphi. Now its not an issue any longer.

The responsiveness of the IDE has improved vastly. Its startup time seems quicker than D2009. In general it just has the right snappy feel about it that we knew from D7 (on the machines of that time), and that makes it a pleasure to use.

There have been improvements the components provided with D2010, but the, in my opinion, most interesting one is the new gesture support. >Gesture support means that you can make special mouse movements to signal a command to the application. That of course is mostly interesting when you are not using the mouse, but instead a touchscreen. Hence its possible to make an interface that operates similarly to the touchscreen of an iPhone.

I think its an important feature, not so much of the feature in itself, but because it gives some indications of where the desktop part of Delphi is heading or at least where it, imo is supposed to be heading.

I have, in a previous blog post, almost written off Delphi as a futureproof and viable development tool and language, due to the fact that for desktop applications, development tools like Adobe Flex and MS WPF are making serious efforts in providing a relatively easy to use way to make very cool looking client side applications with lots of functionality. Delphi simply lacked the facilities they are providing.

And on the server side I wrote off Delphi, as its market has been shrinking seriously due to Java and .Net and due to the loss of the last cross platform compatibility feature (namely cross compiling for .Net) which in addition to the previous loss of Linux support, by dropping the ancient Kylix compiler, really didnt leave many reasons for a manager to choose Delphi vs the rest of the wolfpack. The only major sellingpoint, one source/multiple platforms, that Delphi did have with Kylix 3 and Delphi.Net, wasnt any longer. Thats still the case today, but Embarcadero have however, within the last 6 months, announced plans for supporting cross platform compilation for Mac and Linux, which absolutely is a step in the right direction, as long as Embarcadero delivers on the plans!

Delphi 2010 is no doubt the best native Win32 development tool today. It runs circles around all other development tools in that respect. And if thats all you need, then there is no reason not to upgrade to D2010 right now!

With the new gesture support and plans for cross compilers, my griefs seems to have been heard, and Delphi may in the next years, actually have a chance to compete and win back market shares. However we still need to  see the cross compilation support emerge, and Embarcadero should not rest on the laurels about gesture controls, as that is just a small, but important, step in the right direction for desktop applications.

Whats imo missing on the desktop for Delphi to really compete? 

  • Improved binding of any data to any control. Today the only binding existing is when you use specialized datasource binding aware controls (TDataSource and the TDBxxx components). It was cool when it was presented back in the early days of Delphi, but today it has been surpassed by both .Net and Adobe Flex/Flash 4, which allows for 2 way binding of any property to any other property or value. The existing Delphi DB controls needs to be deprecated, and somewhere in the hiearchy between TObject and TCustomControl, there needs to be added advanced automatic 2 way binding on any property value.
  • The existing TCanvas and windows Device Contexts, should be abstracted further, to make it possible to place any control on the canvas, and let the canvas be free floating in a 3D space.  That would allow for a new ball game of user interfaces, which is allot more intuitive to how users perceive the world, than the current 2D flat way. One example... you only have so much screen estate available, and you want to present details about multiple products in your product inventory software at the same time. You would often resort to a list, and someone clicking on the item on the list to present a window with details about the product, or you would have a number of tabs with product information in each. However in both cases you dont actually present information concurrently about multiple products. What if you could use the Apple CoverFlow method (http://en.wikipedia.org/wiki/Cover_Flow), where the focused product is shown in a 2D way, while the other products full product information is shown as pages in 3D space. Then combine that with the gesture control and a touch screen, and let the user use his fingers and hands to navigate thru the products. Its allot more demanding on the hardware than a simple 2D form, and it would have been a challenge in the D7 days, but today, even the simplest machines PCs are able to provide enough power to make it look smooth.
And on the server side.. lets get that single source, multiple platforms support!

Generally as language features I would like to see 

  • XML and regular expressions as part of the language itself! XML has come to stay, and regular expressions are really very useful string matching and parsing facilities, that many applications use. But today its all done outside the language, via class instances etc. Why not simply make it part of the language syntax? Like you have a string native type, have an XML native type where you can simply do this: var myXML:XML = <xmlnode><xmlnode2 attr1="abx"/></xmlnode>; In fact check out E4X EcmaScript for XML (http://en.wikipedia.org/wiki/E4x), where they have chosen to integrate XML directly into the language. It seems so natural to use it that way, and much easier than going thru rigid object instances and collections. 

In addition, I think it wouldnt hurt, if they bright people of Embarcadero, would start to think about how to solve the following tasks as an integrated part of the development process:

  • Packaging and distribution of applications. Today thats something that is made AFTER the application has been developed. Instead the IDE or language, should encourage that to happen while the development is taking place.. possibly by using the new attribute features of D2010.
  • Distributing to the Win32 environment today is already quite complex, although made somewhat simpler by various 3rdparty installation tools. But the problem with most of them (if not all) is that they require use of yet another development tool and language for creating the relevant installation scripts. And those scripts of course very quickly become stale, and needs constant updating.
  • Documentation has become part of the development process to some extent, by providing various comment tags inside the source code where the full document for a topic can be written in. Its a method I personally dont like as it clutters up the source immensely, but I also dont like the current alternative which is a completely decoupled documentation application, that needs to be kept in sync. Hence imo, the IDE should provide a solution that keeps things guaranteed in sync, but separates the documentation from the source, so its easy to get documentation translated to other languages, and its possible to distribute documentation and source separated.
When I had lots of time to think, when sailing my ship on the big oceans, I dreamed about a time where it would be possible to express the intent of an application in the best practical way that fits the problem. Today we, as developers, tries to map different expression types into the same single type dictated by our development language.
Wouldnt it  be nice if the language Delphi allowed for integrating other expression syntaxes  into the language? Say if something is best described and understood as a mathematical equation, or something is best described and understood as an algebraic expression, then those expressions could simply be copied/pasted into your Delphi source. When you skim your source, you would see your own regular Delphi code, and the expressions would show as they were originally intended to (as an equation or as algebra etc). You wouldnt have to convert the algebra or expression to Delphi code, but instead a plugin compiler that understands those syntaxes would compile them, and the linker link the input and output values to the relevant places where they are accessed inside your regular Delphi code.
 
I would even go so far as to allow for something that is best expressed as a graphical picture, should be allowed to be part of the code, and not as a separate graphics file.
 
It may, under the hood, actually store the things separately, but the developer should simply see the code editor the same way as we see a web browser today... there is a mix of different things that makes sense for that particular page one is viewing (or for that particular application one is editing).
 
Well.. enough future ideas talk for now... Id better get back to releasing kbmMW v. 3.20 beta 2, which contains D2010 support and many nice new features and optimizations! 
 
/Kim Madsen 

 

Related posts

Comments

September 10. 2009 03:13

Gravatar

Regarding your comment on the Component Toolbar: "There are few quirks related to that (like that the componentbar's position seems to move after a restart of D2010)"

I can confirm that was a bug introduced by a last minute change by me and it will be addressed soon. Sorry about that!

Mark

Mark Edington us

September 17. 2009 16:58

Gravatar

Hi Mark,

Cool! The new openness, and faster than preEmbarcadero reactiontime, from the you and your colleagues is imo an important step towards establishing Delphis future now.

best regards
Kim Madsen
Components4Developers

Kim

November 24. 2009 06:04

Gravatar

This is really nice and interesting blog.I m glad to know

traslochi intercontinentali us

November 27. 2009 01:57

Gravatar

ASP.NET is more easier than other development technologies and languages. While working on asp.net platform, you may access to system windows event log. Using System namespace you retrieve messages. ASP.NET is more easier than other development technologies and languages

http://www.worldpokerpages.com/ in

November 29. 2009 08:01

Gravatar


The things that could been through is to make a differ from this site,This will be that great site i've never seen,Thanks for sharing.

Private Labeling us

January 3. 2010 16:23

Gravatar

Good news

quiche

January 28. 2010 06:02

Gravatar

Great posting about this issue. I got new knowledge here. Your article easy to understand. Keep writing and happy blogging.

Regards
bibak

Home ie

January 28. 2010 06:02

Gravatar

Great posting about this issue. I got new knowledge here. Your article easy to understand. Keep writing and happy blogging.

Regards
bibak

Home ie

February 8. 2010 15:29

Gravatar

Develop success from failures. Discouragement and failure are two of the surest stepping stones to success.

instant online payday loans us

Add comment


(will show your Gravatar icon)  

  Country flag




Live preview

February 8. 2010 19:44

Gravatar

Powered by BlogEngine.NET 1.0.0.0
Theme by Components4Developers

Calendar

<<  February 2010  >>
MoTuWeThFrSaSu
25262728293031
1234567
891011121314
15161718192021
22232425262728
1234567

View posts in large calendar

Categories


Archive

Disclaimer

The opinions expressed herein are personal opinions and do not necessarely represent Components4Developers view in anyway. Any forward looking statements are not a guarantee of future direction and Components4Developers retains the full right to alter our plans in any way.

© Copyright 2010

Sign in