ePlaice / For the Best Software on the Net

Mainly Free and Open Source Software


Software Dev't Navigation

Delphi Conversion | DataSets | DataGridView | Record Navigation | Data Formatting / Validation | Data Queries Data Input Form Data Readers MDI Forms Charts Using MySQL | Using MySQL with .NET |

Valid XHTML 1.1

Latest news

27 Feb 2007: I decided to write a few lines about my experiences with C# and SharpDevelop, but got waylaid looking at some of my earlier experiences.

17 Feb 2008: SharpDevelop 3.0 Beta 1 has been released - you can get it on Sourceforge.

Links:

Software Development

SharpDevelop

Having been involved in the computer industry for more years than I care to remember I have to confess a slight penchant for meddling in what used to be called programming. However, once I wrote my first few programs I was quickly moved into Systems Analysis and Project Management.

Was I that bad at programming? Probably not, but as a Project Manager in the early days you had a lot of control over the process and provided you delivered the goods you weren't subject to too many controls. Of course it's a different story today and I can understand why so few people want the Project Manager role where sometimes it's difficult to breathe due to the current obsession with statistics, targets, scorecards, key performance indicators etc. It's a bit like the NHS where everything is monitored except whether the patient survived or not (for patient read project). But, isn't it wonderful for the Senior Managers to have all these statistics, so that they can kick 'under performers' without even having to get out of their office. My experience is that statistics are no substitute for management actually mingling with their staff and finding out how things actually work. Numbers by themselves tell you nothing and are only one of the tools used by good Managers.

Early Days

I have worked on Fortran, Algol, Basic, Cobol, C++, Pascal (well the Delphi version) sometimes as part of my job but usually as a bit of a hobby. I have seen all sorts of wonderful (supposedly) ideas which went out of fashion as quickly as they came in. Fortran was a dream when it first appeared and I always remember the young lady from ICT (precursor to ICL and now Fujitsu) giving us our first instructions on the Blackboard telling us 'we'll have a slash here' - to many sniggers in the back row. The Fortran 'goto's' and subroutines were very much in fashion. I was then introduced to Basic when I was in Mechanical Engineering using Geisco timeshare and paper tape readers trying to harness the power of the gosub. This was way before Bill Gates had even fallen in love with Basic. After a few years I saw the light and ventured into the murky world of EDP (Electronic Data Processing). Now, if a user really wants to aggravate an IT professional he just needs to mention EDP which somehow has connotations of vast computer printouts that always had errors and that nobody took any notice of unless of course they did not appear due to a 'ZZ' error run.

Life in EDP

My first impressions of commercial programming in EDP (Electronic Data Processing as it used to be called instead of the modern IT - Information Technology) was this language called Cobol which was rather dull and boring. My impressions were obviously shared by others in the team who quickly designed an application generator (probably based on Cobol) which was going to conquer the world and generated intermediate files like there was no tomorrow. There were even rumours that it 'could mend broken legs'. It was soon abandoned when Management realised that they also had to deliver projects. The measure of whether a system worked or not was judged by how much paper output was produced, so when senior team members ran an Engineering simulation which after running for 24 hours only produced a page of stress calculations this was incomprehensible to them - how could you write a program that did not loop and yet produce so little output!! The hardware was interesting particularly as ICL saw itself as a world player with the ICL 1901 and 2A's and the giant ICL 1906A at headquarters. I can well remember colleagues refusing to accept that on-line computing was the future because a lot of storage was required to hold the data and disks were only 20mb.

Snow White and the Seven Dwarfs

IBM often referred to as 'Big Blue' was Snow White because it dwarfed its other mainframe competitors. Even in the early days of the 1970's IBM was notorious for its overweight software products but was both feared and respected by all its competitors. The saying was that nobody got fired for choosing IBM, on the other hand there were constant rumours that many people in independent firms did get fired if they stood in the way of an IBM sale. The seven dwarfs were Burroughs, Sperry Univac, Honeywell Information Systems, NCR, Control Data, General Electric and RCA. In those days Burroughs had some fairly neat machines and marketed very aggressively wanting to be all things to all men. Unfortunately, sometimes their selling and marketing went way beyond their capability to deliver. It was one of my first lessons regarding buying computers - never believe a computer salesman and no matter how tight you think the contract is there is always plenty of wriggle room for the vendor to escape. Sperry Univac struck me as having quite the opposite approach to selling. They had very heavyweight products both in terms of hardware and software and seemed to be having difficulties moving out of defense industries to strictly commercial business. When Burroughs and Univac merged to form Unisys it seemed to me that this was a match of opposites and it would be interesting to see which lines of business would survive. In fact I haven't really heard anything much of Unisys since they merged in 1986 but I understand that they are predominantly engaged in IT services and that the mainframe business is just for very large corporations and Government agencies.

The Minis

DEC or Digital Equipment Company was extremely loved by the Engineering and Scientific communities during the 1970's and 1980's. In fact so much so that whenever an Engineer gained a position of power, there was strong pressure to change the whole Company to run on a VAX. DEC was attractive to the techies because they only spoke techy language and were obsessed by the nuts and bolts of the computer to the total absence of customer solutions. Eventually, they could not live in a real commercial world, particularly when they produced such disasters as the Rainbow PC, and were swallowed up by Compaq and eventually merged with Hewlett Packard. Hewlett Packard always came across as extremely competitive and made great efforts to move into the mainstream computing arena.

The Rise of Microsoft

PC's were very exciting in the 1970's with the Tandy TRS80, the Commodore PET and the Apple II being at the forefront of just about affordable machines. These machines had 16kb of memory or if you were rich 32kb and you could just about run a small Basic program. Rather late in the day, in fact not until 1981, along came IBM with the PC. In the early days the central computing department tried to make everyone use CP/M from Digital Research. From what I remember it seemed to do a fairly similar job to MSDos but the truth was that it it was not quite so user friendly and didn't run the software that we at the coalface wanted to run. It was no contest and the standards and strategy people quickly went back to thinking up their next 'wet dream' to justify their existence. Nobody took Windows seriously until versions 3.0 and 3.1 were released. Effectively it was still MSDos in pictures but now you could actually do something useful with it. One or two people in our department saw the potential, but the majority regarded it as a novelty, until it became a status symbol to have an IBM PC running Word and Lotus 123. Meanwhile, the typing pool with the 'snopake' queens had disappeared, so no more begging for your report to be typed.

Unix

The next dream was probably Unix or nowadays most likely called Linux. I have had a dabble when I was running a migration project that ran on Unix servers. The things that stick in my mind was the constant need for command line processing such as Greps and 'ls' which reminded me very much of the early MSDos command line processing. There were these extremely nerdy people who were the guardians of the Unix machine, who often forget to do backups, consequently could never find anything to restore, were always running out of storage and CPU. They also spoke a very different language to 'normal' IT people, so consequently they were highly paid but very difficult to find when needed, because they were often working all night to do essential maintenance on this extremely 'cheap' Unix machine. Luckily I didn't get too deep in otherwise I might have grown into one of the guardians.

The Fall of ICL

ICL was a pygmy in giants clothing. It had world beating ideas but never put sufficient Development and support into it's mainline. So we had TME and VME operating systems both of which were ahead of their time. The ME29 under TME was one of the most productive systems I have ever worked on. However, it did have a tendency to keep on having these mysterious leaf crashes. By the time ICL came out with Quickbuild I was in IT and had survived flirtations with DEC, Burroughs, Univac and even HP. By then the writing was on the wall for the mini and the mainframe vendors. ICL Quickbuild was an attempt to cure the application backlog by selling more mainframe power. Management drooled at the thought of increasing productivity (by getting rid of programmers) but failed to consider the heavy performance penalties and the fact that applications have to be maintained. Unfortunately, the bugs that came out were rather obscure and there was only limited support. It wasn't long after that, that ICL was rather unceremoniously dumped for IBM, despite desperate lobbying from all the mincomputer vendors. It never ceases to amaze me how gullible senior IT Management is when it comes to being sold new ideas which claim to improve programmer productivity. In the first place they forget that the actual programming or coding is only a small (but very important) piece of the process. They forget that all of these tools do little or nothing for analysis, design, testing, user acceptance and training.

Delphi

Delphi was an inspiration to the desktop developer; now for the first time anyone could develop quite a good looking application with the minimal of coding. Unfortunately, all good things had to end Borland lost their inspiration for Delphi when Anders Hejlsberg left to join Microsoft. I struggled on with Delphi until after Delphi 7, when it seemed that Borland had a breakdown when they decided to replace the VCL by the Microsoft NET classes. They did not seem to appreciate that Delphi's fate rested on what they did with the VCL. However, it was understandable that Delphi, which has always been strongly associated with Microsoft Windows would see the NET path as a 'safe' option.

Options for Delphi

I had a quick look at what was being suggested for converting from Delphi 7 to a Delphi NET version and it was truly frightening. So there and then I decided to have a look at alternatives which rested between Java and C#. Java came up with all the right answers except when I had a go I tried out the Netbeans and Eclipse IDE's and found it quite difficult to just compile a program. Also I guessed that Java might be quite good for a net application, but pretty useless for the desktop. I was put off by most of the desktop applications I saw by what seemed a fairly 'clunky' interface and below standard user interface. At the end of the day it was too much of a culture shock to go from Delphi which is a Microsoft application to a different Java philosophy. I don't mean to denigrate Java just to explain my reasons for not going Java.

C# and NET

However, once Borland made the decision to go with NET then it was obvious that there was little stopping the user base going the whole hog to Microsoft NET and C#. What finally convinced me was seeing Paint.NET go through development and come out rivalling Photoshop. I liked the interface and even the performance was very good for a non compiled application. So, I then had a look at C#, came across SharpDevelop and the rest is history. The first attempt at compiling worked, the program structure was so similar to Delphi in terms of Units and Forms and resources. There were no nasty Unix undertones where suddenly you had to grapple with command line processing. C# and Object Pascal seemed to me much closer in spirit than say C# is to C++, which is not surprising when the chief designer is Anders Hejlberg who carried on where he left off from Borland. This is not to say that all is wonderful. I liked the visual style of programming in Delphi and in particular the database development tools. It's quite frustrating working in SharpDevelop without a DataSource. Also it is heavily accented towards SQLServer. Whereas I prefer MySQL. On the other hand having to do some things programmatically does tend to give you richer and deeper insights into the development process. I don't particularly like having a massive framework sitting on the PC. I would prefer having the facility to generate executable code which did not need the framework. Probably, I would be totally shocked at the size of the code generated, so maybe better not to know. The big plus as far as I can see is that I get rid of having to buy a licence for Delphi since SharpDevelop is open source and free. Not only that but I can use MySQL as my database which again is open source. I don't have to buy Visual Studio, worry about the BDE, bother with Interbase. In fact I don't have to pay out anything. I quickly converted a couple of my applications and gradually learnt that everything (well pretty well) that I could do with Delphi I could also do in C#. My only worry is that I have to use the NET class library, but as they say millions of users can't be wrong. Perhaps one day a bright company will come up with an emulator to the NET framework which is more compact, quicker etc - somehow I don't see that company being Borland. Maybe they will get Delphi running under Framework 2.0 by then (only kidding!!!).