Mastering Delphi Programming

 
General

Source code

Pascal

Java

C++

C

Applied PC

Client/server

 

 

 

 

 

 Design  | SFC  |  NOS  |  Code |  Diary  | WWW |  Essay |  Cisco | [Home]


Author:
Dr W.Buchanan,
Napier University,
Edinburgh.

Downloads:
Source Code


As an experienced author of several software development books, and also someone who has had a successful career in software development, I would like to recommend Delphi as the language that is the most useful of all. I’ve used most languages, and they typically have weaknesses, but Delphi has very few. With Visual Basic, the user interface and the design method (which is similar to Delphi) are excellent, but the fundamental weakness of the BASIC programming language always provides barriers for the developer. Its strength of integrating with other Windows applications, especially Office programs, provides a useful way of reducing the loading of the main program, but often it is difficult, and complex, to properly integrate these into the main program.

With C and then with C++ we had a programming language which was developed by software developers. Unfortunately it has, in the past, relied too much on the professionalism of developers to catch potential problems before they occur. C had, and still has, many pitfalls, including running off the end of arrays, pointer problems, and it was difficult to react to events. C++ improved things by providing for design methods which allowed the data to be properly modelled, but the underlying problems of C were still there. It also did not cope with events, and, initially, with Windows programming. New versions of C++ compilers deal with Microsoft Windows programming and integrate event-driven software, but they do this in a rather complex way. This is fine for professional programmers, but is a nightmare for anyone starting with programming, or who just want to get a program to create a few windows, and react to a few events. C++ for Windows is likened to assembly language programming, where large programs were produced for relatively simple operations. This problem has become so bad that many Windows-environments for C++ have a template-driven system which produces the initial framework for the code, into which the programmer must add their own code. This has been developed because it is often difficult in C++ to produce simple windows, with menus and to make them mouse-driven. C++ is often a complex language to learn, and I’ve seen many undergraduate students struggle with its actual syntax. Much of the Windows operating system is actually written in C++ so it is the most natural language for developing windows applications, but, of course, this does not make it the best language. This is like saying that the most natural device to chop down a tree is an axe, but an axe is not the best device to chop it down with. In fact, in some circumstances, C++ can be likened to an axe and Delphi to a chainsaw.

The coming of the Internet saw new applications for programs, especially in creating applications which could run over networks, using client-server architecture, and for different types of computers to connect to each other. These computers might have differing operating systems, and range from supercomputers to simple mobile devices. There was thus a demand for a language which could be run on many different types of systems. This called for an interpreted language which could run on the system using the original source code. The interpreter could then interpret the language and convert it for its own hardware. In the past computers were not powerful enough for this to occur, but increasing processing power, and increasing memory capacity, have allowed these systems to compete with traditional software languages. The language most relevant to this is Java. As with C++ it is aimed at the professional software developer, as it is often a difficult language to read and write code for. Java has many strengths; it is extremely strong on the definition of data structures in the program and its good portability and integration with the Internet. Unfortunately it has many weaknesses, especially in that large programs are generated for simple programs. It has also lacked proper integrated development systems, which included a graphical design environment, code editor, compiler, debugger, and so on. Thus Java wins on many fronts, but fails on just as many. Unfortunately when it fails, it fails badly. When it does something well, it does it very well.

Most of the other languages, such as COBOL, Assembly Language, FORTRAN, and so on, are also-rans. They obviously still have their niche in certain areas, but are so weak in most areas that they can never really be considered for new software projects.

Thus we return to Delphi. Well it is strong in virtually every area, and has excellent integration with databases, the Internet and the operating systems. It also produces strong and robust applications. One of its major strengths is that it has a similar design feel to Visual Basic (as it designs around forms which have associated code), but it scores over Visual Basic in that it has a proper object-oriented programming language which has been properly defined and developed. The thing that has made Delphi so good was that Borland took just two versions to get it right. Delphi 1 was a good start, but Delphi 2 was an excellent package, which was at least five years ahead of anything else. Versions after this basically followed the same theme, and just refined an already near-perfect product. Unfortunately there was not much further that the product could go, and the competition, mainly C++ and Visual Basic, and then Java, were allowed to catch up with it. It has thus lost shares of the market, which it should have gained, typically due to the strength of Microsoft products. Companies such as Novell (in networking), Lotus (in spreadsheets) and IBM (in operating systems) have all succumbed to the power of Microsoft. Delphi has survived purely because it has an excellent foundation, and provides one of the most general-purpose environments for software development.

 



 
 
Design  | SFC  |  NOS  |  Code |  Diary  | WWW |  Essay |  Cisco | [Home]