Monday 25 January 2010

Delphi 2010

Having bought Delphi 2010 as an upgrade from Delphi 6 I was expecting it to be a vast improvement.  Knowing and loving the product since it was the Turbo Pascal I have seen the changes over the years and the introduction of the Integrated Development Environment under DOS and then with the advent of Windows the virtually sublime Visual Component Library.  I have owned most versions of Delphi up to version 6 and have used Delphi 7 in someone else's office.  I was impressed with the advances in some areas and the debugging in particular.  I had a lot of experience of that because I was working for someone else and having to fix some dire code.  I don't normally have much call for a debugger with my own code.  But the help had become almost helpless.  I rely on the help because my memory is no good.  I have a good conceptual memory and I only have to understand polymorphism once and I've got it but can I recall where the ... well there you go.  I went looking for the override directive and could I find it?  No!  I'm not going to spend all day trying to make this point but it seems that Pascal is being forced into history.  I did eventually get to what I suspect is the best help by searching for Pascal Language Guide but it is seriously lacking in integrity.  I even read a remark in the help somewhere that "Real programmers don't use Pascal."  Whether that was a joke or not I don't know but if it was a joke it wasn't funny.  Pascal is a seriously good high level language.  As far as I understand it the guy who concocted C which later became C++ was basically coding Pascal so that it was unreadable.  The whole idea of a high level language is that it is easier than writing in machine code.  But hackers (as I like to call them) prefer to massage their egos by having code that "looks" really complicated.  It makes them feel cleverer.  But it doesn't help productivity.  And anyway they get away with a lot more bugs because it is nearly impossible to spot them.  Pascal was developed with two main characteristics.  One was that it was a teaching language so it was designed with very clear reserved words like begin and end to mark the beginning and end of a block of code and "English" style commands like for N:=1 to 20 do, and repeat...until  but C has to "shorten" every thing with curly brackets and weird arrangements of symbols.  It is simply not explicit and you have to have a memory for what all the codes mean.  The second significant thing about Pascal is that it is rigidly consistent.  It is fractal in a way.  There are a few simple rules and everything else follows.  It has been thought out very carefully.  But C comes along and starts making exceptions right left and centre.  After a while it is a jumble of special cases.  But back to the Delphi 2010.


I was trying to get the main form that I was designing to tear itself away from the top left corner of the space in which it's container was docked.  Eventually I found, under Tools/Options/Delphi Options/VCL Designer, that you can set "Embedded designer" on or off.  If it is on then the forms you are working with are as a multi document interface and they are stuck to the top left corner of their work space.  If you turn it off you are informed that it will not take effect until you close Delphi and restart it.  Funny but true.  So I did that and it seemed more agreeable until I realised that the form had a "Stay On Top" quality so that when you are editing the code the form is in front of it.  There seems no way to get it behind your work space so you have to minimise it every time you want to edit the code.  I found also that you can do something about the arrangement under View/Desktops.  But although it gives you the option to select the old style "Classic Undocked" (which I was so relieved to discover) it turns out that all the windows are undocked except the form in the corresponding workspace as the text editor.  So it is still stuck in the top left corner of a container.  So the frustration is mounting.  I don't get the "advances" in the code completion either.  Maybe I will understand it one day but at the moment it takes more work to manage the code completion unless of course you don't know how to program in Pascal at all.  That's a thought!  Maybe I could learn C that way.  No - it wouldn't work.


A lot of this ranting is so that a) I get to vent my frustration, b) I get to have notes on things I have found like the search for "Pascal Language Guide" and other interesting things I might forget in months to come, and c) so that there may be some useful hints and tips, workarounds and solutions for other people searching the internet.


Anders Hejlsberg was the guy responsible for designing the Visual Component Libray and he made an exceptional job of it.  He was then pirated by Microsoft and designed the .NET framework.  If any of you budding techies out there are wondering why C# ever got invented it is because the .NET environment is written in Pascal with the Visual Component Library and is basically an extension of it.  XML is largely the streaming structure from the VCL.  All down to one very clever man.  But most programmers use C++.  As the comment I noticed referring to "real programmers" not programming in Pascal suggests most people who were going to use .NET are C programmers but it is written in Pascal.  So they invented a middle ground for C programmers and called it C#.  Why not Pascal?  It annoys me.  But that is probably because I have spent so many years programming in Pascal and I am a very slow learner and don't want to learn C.  I have recently got involved with HTML and am shocked by the inconsistencies in that.  Sometimes I think it is a bit like evolution.  It has to have inherent weaknesses otherwise it couldn't evolve.

No comments:

Post a Comment