Borland's Kylix: turbocharging Linux development - page 5
Not Your Father's TurboPascal
I am always somewhat amused by the product reviews that talk about a "steep" learning curve, when they mean that something is difficult to learn. Since time is usually the horizontal axis on a learning curve, steep curves actually mean a rapid increase in knowledge. To be perfectly clear, I will say that Kylix probably has a long, rather than steep, learning curve for users who don't already know Delphi. The GUI equivalent of "Hello, World" can be created in a couple of minutes with almost no coding, but there are a lot of steps needed in creating a useful application. Anyone who claims otherwise has been sniffing too much advertising ink.
This isn't meant as a criticism of Kylix, but rather as a reality check for project managers who think that you can just hand a RAD tool like this to a programmer and get instant productivity. Kylix is a serious tool, and learning to use it well involves patience and practice. Pascal was designed as a learner's language to teach structured programming. It provides a forgiving, simple syntax while avoiding the brain rot that comes from using BASIC. As such, it is a quick language for programmers to learn, but it is still different from what most Linux programmers know today. Little syntax quirks, like using ":=" for assignment and "=" for comparison, require some mental gymnastics for programmers who are used to C-like syntax in such languages as Java and PHP.
To this one must add the sheer volume of classes in the Kylix environment. No matter what you need to do, there is probably a class that implements at least a portion of the functionality -- in this way, Kylix is very much like Java, in that both have very rich standard class libraries. Also similar to Java is the way in which the Kylix developers have given careful thought to the abstract concepts such as collections and exceptions. There is an elegance to the class tree that will make it more adaptable to future developments such as new GUI components or new Internet protocols. Yet this flexibility bears a price tag in the form of increased learning effort.
Kylix is not difficult to learn, but neither is it intuitively simple. Nor is it suitable for a true novice programmer, in my opinion. This reality, though, does not diminish its value as a serious tool for a professional developer. If you are moving to Linux from a Windows environment, using either Delphi or Visual BASIC, then buying Kylix should be a no-brainer. For programmers who need to develop sophisticated, high-performance code where the user interface is only a small part of the project, Kylix may not be the right way to go. On the other hand, for a corporate developer writing vertical applications -- especially for in-house use in an environment where many such applications are needed in a short time -- Kylix is a splendid choice.