分享
 
 
 

真正的程序员用Pascal

王朝delphi·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

Real Programmers Use Pascal

Real Programmers Use Pascal

by Ray Lischner, author of

Delphi in a Nutshell

In case you haven't heard the news yet, Borland is porting their landmark

Delphi product to Linux. To many professional programmers, this is wonderful

news. Earlier, you may have read

Kylix is Coming!, in

which I introduced the Kylix project and described it in general terms.

Now that Borland has revealed more information about Kylix, I can give you

more details.

Delphi is a rapid application development (RAD) environment, powered by a

modern, object-oriented programming language and an extensible,

component-based architecture. Currently, all this power is available only on

Windows, where it is successfully being used in games, development tools,

desktop applications, and used to drive web sites and connect multi-tier

database systems. This article takes a closer look at Delphi for Linux and its

companion product, C++ Builder for Linux.

Codename Kylix

Kylix is Borland's code name for a large project that involves porting Delphi

and C++ Builder to Linux, working with tool and component builders to make

sure third-party support is in place when the products ship, and getting

the word out that rapid application development is coming to Linux.

Kylix isn't for everyone, though.

For one thing, the main programming language is Delphi Pascal. Just the name

Pascal sends many programmers scurrying for the exits. But don't be too hasty.

This is not your father's Pascal. A far cry from traditional Pascal, Delphi

has a number of modern conveniences, such as:

Object-orientation (single inheritance of classes, multiple inheritance of

interfaces, single root class)

Integer overflow checking

Array bounds checking

Exception handling

ANSI and Unicode strings

Runtime type information

Built-in assembler

Unit-based modular programming

Static or dynamic linking of units

Strongly typed, except when you need latent type checking, which comes in

the form of the Variant type

Multithreading support (TThread class, synchronization, thread-local

storage)

Function overloading

Arithmetic operator overloading

Fast, optimizing, native compiler

In other words, Delphi has everything a programmer needs for modern software

development (with one exception--generic types--but no language is perfect).

Rapid Application Development

The Kylix package contains more than just a souped up Pascal compiler, though.

The integrated development environment (IDE) supports rapid application

development, which means:

Syntax-directed editor

Integrated debugger

Visual design of forms (windows and dialog boxes)

Visual design of menus

Extensible, component-based framework

Rich assortment of visual controls and widgets

Components to integrate with many popular SQL databases

Components for many popular Internet protocols

Commercial and freeware third-party components

Extensible design-time tools for creating:

Apache modules

Simple or complex database applications

Commercial and freeware third-party tools

Extensible IDE

No need to learn a separate extension or scripting language

Still not convinced? That's okay. As I wrote earlier, Kylix is not for everyone.

Don't use Kylix if:

You like to get your hands dirty in the code. If you don't want to click

and drag a component, but would rather write a few hundred or thousand lines of

code yourself, you probably won't like Kylix.

You need to write kernel modules. Kylix does not support the GNU extensions

that the Linux kernel depends on. (In particular, Kylix has a different syntax

for writing inline assembly language.)

You are writing intensive numerical code. Kylix has an optimizing compiler,

but it doesn't optimize floating-point arithmetic.

You have all the free time in the world to spend banging out code.

What Is RAD?

Now you know what Kylix isn't good for. What use is it? Rapid application

development means just that--writing applications quickly and effectively.

Applications can be desktop tools, from games to word processors. They can be

database clients, servers, or middle-tier layers. They can be network clients

such as email readers, or network servers such as web servers.

The "rapid" part of the description means you can use Kylix to write

applications faster than you could with traditional tools, such as gcc, emacs,

vi, and gdb.

The first part of being rapid is the ability to design forms (windows and

dialog boxes) visually. Click on a component, drop it on a form. Select a

component and modify its properties. These features are commonplace, and you

can find them in Glade, KDevelop, and other tools, so it's no surprise to find

this feature in Kylix.

Kylix is much more than a mere GUI-builder, though. It uses an extensible,

component-based framework for widgets, database components, network components,

and more. The framework is called CLX (component library for cross-platform,

pronounced "kliks"). CLX is easily extensible. Already, third-party developers

are writing components to supplement the standard components. Writing your own

component can be as easy as deriving a new class from an existing component.

CLX comes in several parts:

BaseCLX contains the core parts of the component framework. Included are

some simple collection classes (array-based lists), string-manipulation, I/O,

date and time functions, file management, exception-handling, and more.

VisualCLX uses

Qt , TrollTech's GUI toolkit, for graphics and visual controls. (Borland has

negotiated a limited license with TrollTech, so if you purchase Kylix, you

have a royalty-free license to use parts of Qt in freeware, shareware, and

commercial products. You do not need to pay any additional fees to TrollTech

for use of Borland-licensed Qt technology.)

DataCLX uses Borland's

dbExpress to connect to a wide variety of SQL

databases, including Interbase (which is now an Open Source product)

and mySQL. You can use DataCLX in a single-tier architecture (database and

application on the same machine), client/server, or multi-tier architecture.

NetCLX provides components for common Internet protocols, from direct

socket access to TCP to FTP to HTTP. Write clients and servers, including

Apache modules.

Because CLX is extensible, there will be a variety of components from

third-parties. Several web sites (such as

Delphi Super Page,

and Torry's Delphi Pages ) host thousands of components that can be added to Delphi for Windows,

and we can expect similar abundance of components after Kylix ships.

Third-party tool and component vendors are already working with early releases

of Kylix to get their components ready.

Components are convenient for many uses. For example, you can drop a POP3

Client component on a form, add a tree widget to display a hierarchy of

folders, a list widget to display messages in a folder, and a text area to

display a single message. To hook up these components, you add event handlers,

which are just methods (member functions) declared in the form's class. Some

event handlers are simple, such as the tree widget's OnChange handler, which

looks up the selected folder, retrieves all the messages to display in the

list widget. Because you have the full, object-oriented power of Delphi or C++

at your disposal, you can make the event handlers as simple or complicated

as you want.

In less than a day, you can have a basic, but fully functional email client.

RAD has a bad rap in some circles because of tools that allow you to rapidly

build extremely limited applications. The authors advertise that you can build

applications with point-and-click ease without writing much code. We all know

that real programming problems require real code.

What makes Kylix RAD especially powerful is that the CLX component framework

simplifies the tedious aspects of application development, without hiding the

power of the language and operating system. If you need to make system calls

directly, you can.

Instead of wasting your time writing code to manage windows and widgets, you

supply the guts of the application: business logic, computation, organization,

or what have you. Kylix is designed for large and small applications. When

writing code, the source editor helps you in many ways:

Color-coded syntax highlighting shows you reserved keywords, unbalanced

strings or comments, and so on.

Can't remember a function name? Start typing, and the source editor shows

you a list of names to choose from.

Can't remember the function parameters? The source editor tells you the

names and types of the parameters.

Source file too big to find things? The Code Explorer shows all the

classes, subroutines, types, and other declarations in the file, making it

easier to navigate large files.

Where is this declared? Select an identifier and jump directly to its

declaration, even if it is declared in a different file. You can also find all

uses of a declaration within a project.

Even if the source editor is missing a feature that you want or need, you can

extend the editor and other parts of the IDE.

Extensible IDE

Sometimes, though, you need more power than a component can provide. Kylix

has an extensible IDE so you can add new design tools. For example, a menu

bar is a component, as is a popup menu. These components, in turn, contain

menu item components. Editing components is a poor way to design menus, so

Kylix has an interactive menu editor that makes is easy to edit menus

visually. Kylix also comes with wizards (as these tools are called) for

designing database applications, web server modules, and more. Because the

IDE is extensible, third-party developers are working on additional wizards,

and you can write your own.

Some tools require you to learn a special extension language (such as Emacs

Lisp). In Kylix, though, you can continue to use your everyday development

language. Extend the Delphi IDE using Delphi or C++ Builder using C++.

You can even extend Delphi with a wizard written in C++ Builder or vice versa,

so third-party developers can use their language of choice and distribute

their products to all Kylix users.

You can extend the IDE in several ways. You can:

add design windows, like the menu editor;

add menu items to the main menu bar and to the various popup menus in

the source editor, form editor, and so on;

add items to the tool bars;

add form and project designers that build new forms, projects, or other

files based on user-interaction;

customize key bindings (although this feature is more difficult than it

should be);

interface with the debugger, form and source editors, and more.

On the other hand, if you prefer command line tools; if you don't want the

convenience of a WYSIWYG form editor; if you like the challenge of locating

and debugging buffer overruns; then by all means, continue to use your

current tools. You wouldn't be happy with Delphi.

C++, Too!

Real Programmers use Pascal, but sometimes you need or prefer C++, so Kylix

will include C++ Builder for Linux. C++ Builder uses the same IDE and

component framework as Delphi, but with the C++ language. To use the Delphi

component framework, you must use Borland-specific extensions to the C++

language. Note that C++ Builder does not support GNU extensions, so don't try

to recompile the Linux kernel with C++ Builder.

If you prefer standards, C++ Builder can compile ISO standard C++ and C, too.

You can compile any application that adheres to the ANSI/ISO standards, and

you will probably find that C++ Builder for Linux compiles faster than

gcc or g++. You also get the advantage of an extensible syntax-directed editor

and an integrated debugger, even if you don't take advantage of CLX and the

interactive form builder, menu builder, and other RAD tools.

Linux and Cross-platform

Kylix will produce native x86 code, producing standard ELF binaries

(programs and shared objects). No byte-code, no virtual machine, no runtime

library, no Windows emulator needed.

The first release of Kylix will not support other hardware platforms. You

will be able to link gcc-compiled object files into a Delphi project, but g++

classes are not binary compatible with Delphi or C++ Builder. Future

releases will probably support additional hardware platforms, as the market

dictates. Perhaps we will see Delphi and C++ Builder on other operating

systems, too.

CLX is portable between Linux and Windows, and is designed to support other

platforms in the future. Thus, Delphi 6 for Windows will also support CLX

(in addition to its native Windows component library, the VCL). Your source

code can be ported without change between Linux and Windows, provided you

avoid system-specific functions (or you can use conditional compilation).

Borland is firmly committed to remaining neutral when it comes to desktops

and distributions. Naturally, they want you to use Kylix regardless of

whether you prefer Red Hat, Mandrake, Caldera, Slackware, SuSE, or what have

you, or whether you use KDE , GNOME, or

just plain old fvwm. The development tool should not dictate end-user

decisions. That said, the first release will favor KDE slightly because Kylix

and KDE both use

Qt . Kylix applications will run on GNOME, but will not take full

advantage of GNOME-specific features. You can expect future releases to

provide better support for GNOME.

The core Delphi Pascal language will not change significantly in Kylix, nor

will Borland's C++ extensions. Most of the reference material in

Delphi in a Nutshell will apply equally to Windows and Linux, except

for a few Windows-specific features. I will post any language changes posted

to oreilly.com.

How Kylix Will Save the World

Or not. Linux currently faces three significant hurdles against wide-spread

acceptance as a desktop operating system: ease of installation, ease of use,

and availability of applications. Kylix can't help with the first, but

it can with the next two.

Why do I use Windows to read my email? Why am I writing this column under

Windows? The simple reality is that many applications are available only under

Windows. I've tried many email and news clients on Linux, but I prefer

my Windows-based application (Agent, if you must know). I've tried numerous

HTML editors, but I prefer Visual Page for Windows. One of the difficulties

facing Linux application developers is that Linux lacks tools for producing

high quality desktop applications.

If you want to throw together a quick and dirty interface, you can use

Tcl/tk. If you need more programming guts behind the interface, switch to

Python and Tk. If you need the performance of a natively compiled

application, though, you must resort to C or C++. Sure, you have some

toolkits, such as Qt and Jx. These toolkits even have basic IDEs. Kylix has

all that and more.

Borland expects to deliver Kylix sometime in 2000. When Kylix ships, its

feature list will read like the to-do list for other Linux RAD tools. For

professional developers and many others, Kylix will be a valuable addition to

the suite of development tools on Linux. Not everyone will want to use Kylix,

and not everyone should. But if you value your time, if you want to use

cutting-edge tools, if you want to make your mark in the Linux application

space, you should take a close look at Kylix.

Post your responses to this articlehere, or read what others have to say!

Ray Lischner is well-known in the Delphi community as an author

and speaker. He wrote

Delphi in a Nutshell, Secrets of Delphi 2, Hidden Paths of

Delphi3, and numerous articles for Delphi Informant, Dr. Dobb's

Journal and other magazines. His conference appearances include the annual

Borland/Inprise conference, and he has spoken to Delphi users' groups across

the country. He also wrote Shakespeare for Dummies. You can reach Ray

at nutshell@tempest-sw.com.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有