Noah Silva on Thu, 4 Jul 2002 12:00:41 -0400


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

RE: [PLUG] Pascal?


On Thu, 2002-07-04 at 11:09, Charles Stack wrote:
> <snip>
> Well one thing I _don't_ like about Delphi and Kylix is their
> over-pushing of oop and similar things.  It is used mainly by business
> developers, not by "pure" programmers, so they don't know what good vs.
> bad uses are.  You can write device drivers with most pascal dialects,
> </snip>
> 
> First, you know nothing of my background so please don't make implications.

No I wasn't, I meant in general Delphi is used where VB would be by
shops who have a little bit of a clue.

> I don't write business apps.  I write components and system applications.
> The libraries needed to writing ring 0 drivers are, last I checked,
> compatible with Delphi.  Why?  Most are .obj's written to Microsoft's C++
> naming convention.  This prevents those libs from linking to a Delphi
> application.  If they are pure C and callable using standard C calls, then
> that's a different story.

I haven't run across this problem, but I normally link to low-level C
DLLs, and if an oop interface is wanted, build it in pascal.  At the
least it's easier that way.  It may even be the only possible way in
some circumstances.  I notice Borland's interface to QT is a C only
interface.  Looks like they wrote a C++ to C interface in C and then
imported the C interface into Pascal and then build an OOP layer onto of
this.  I would -think- that even if importing the QT C++ libs was
impossible, it would be easier to modify the compiler than to do all
this work.  But I know they were under a crunch to release it, and there
are automated tools to do some of this stuff.

> 
> INDY does not work well in server applications.  For clients, I'll say they
> work and leave it at that.  

Fair enough, I normally write client apps.  I do know another consultant
though that uses INDY to write server apps with few problems.  I can
tell you that the old winshoes that came with older delphi is probably
the buggiest thing I have ever seen.  I am so glad that the event model
is gone.  I don't like setting up state machine to keep track of what's
going on.

> I used to be on the core team and know all the
> parties involved.  I also know the original author of most of the Winshoes
> server components, Ozz Nixon.  Ozz leave the Winshoes team when he and Chad
> had a falling out on how the library should work.  DxSock is the Ozz's
> product and it easily outpaces INDY code by over 100%.  Period.  INDY is
> free (for now..we won't talk about INDY 10).  DxSock is $799.  But, major
> Delphi IT shops are willing to pay the price after they try implementing
> their apps with INDY and they fail or performance sucks.  Look at the bug
> list....yup..this is the current release candidate.

Well I won't talk about what I don't know, since I haven't used DxSock. 
I have used another component set called something like IP*Works, which
I didn't like much.

> > But, Kylix 3 is not being targetted at writing servers, per se.  Instead,
> it
> 
> <snip>
> I like it
> because the underlying language is flexible enough to do many things,
> and do most of them better than C, and it's actually readable.
> </snip>
> Yup.  C and C++ code can be readable as well and still be fast.

yes _can_... but tends not to be.
What's worse, the optomizations people make in C often don't help
matters.  Some things that are faster on slower processors (like the
68000) are actually slower on faster processors (like 68030) because
they invalidate the cache, etc.  I have seen C people tell me that it's
better to do something like:

a++
a++
a++
a++

than to use 

a=a+4;

because four inc's is faster than an addition.  But it isn't on newer
processors.  Examples of this are nearly endless.

> <snip>
> I normally write my own components or customize Open Source ones. (or
> inherit the closed-source ones and add functionality).
> </snip>
> 
> What sorts of components have you written?  Have you published any of your
> work?  I haven't published in a while...the company I work for prefers that
> I don't at this time.

The work I publish tends to be libraries and small programs, mainly
designed with atari TOS in mind.  (It has Pure Pascal, a turbo 7 derived
compiler).

Some of these things include:
a.) A small simple database system. (using file of records)
b.) Some CGI libs and programs.
d.) Delphi compatibility libs for older compilers (SysUtils, etc.)
e.) A lot of the unix utils (ls, cp, ps, uptime, etc.) I wrote for Magic
OS 6.x
f.) CRT replacement unit that uses VT-52
g.) CRT replacement unit that uses nothing (dummy to make apps using CRT
compile in delphi)
h.) Libraries and GUI application to read/write and manipulate Sony's
proprietary MiniDisk audio format !!!  You can un-copy-protect audio
tracks, etc.
i.) program to generate nice HTML albums of jpegs.
j.) A Caller ID and ANI application with database lookup, etc.
k.) A dating type application called "match-up".
l.) Fixed and updated some PD bindings for window's SCSI libraries (so I
can use with CD-Writers and MD data drive)
m.) bindings for StinG TCP/IP (atari stuff), and then an OOP layer over
that that works in Windows, Linux, or MagiC + sting.
n.) Some programs to convert japanese text-encoded HTML into HMTL with
image references to GIFs of the japanese charicters.  (don't ask... it
lets web browsers on systems that don't support japanese show japanese
by converting the pages...)
etc.

The Delphi stuff I do is for work and so remains their property, but I
have done:
1.) A specialized string grid component for financial editing.
2.) Lots of additions to the Lotus Notes libraries (which are GPL so I
have sent changes back to the author).
3.) Way too many data conversion libraries.
4.) A lot of fuzzy-logic type name matching libraries to handle things
where someone is in one system as "bob smith" and in another system as
"william Z. SMYTH, III" and we want to link them.
etc.

> <snip>
> I don't think most linux developers get this.  The linux developers
> tools I have seen are rudimentary at best.  Coding a program with vi in
> one window and gcc in another X-term and glade running and gdb on
> another console is hardly efficient compared to a decent IDE like kylix
> has.  The problem is the "debuggers are for wimps" attitude.  Well tell
> you what, I'll race someone using the above method to make almost any
> simple app. ;)
> </snip>
> 
> Well, I get the impression is they get it but don't want Linux to take off
> (for whatever reason).

I can understand people fighting commercialization to some degree.  On
the other hand, debian isn't going to suddenly disappear, and
commercialization means you can get drivers for odd hardware that we
like.

> <snip>
> Jbuilder itself is done in Java from what I understand, so it didn't
> ...
> to use GCC, even if it isn't better, just because it's defacto.
> </snip>
> 
> Incorrect.  JBuilder would not initially run on Blackdown and many other
> Java implementations.  That's why Borland got involved with the product and
> made the necessary contributions to make it work.  But, you are correct to
> say the GUI is written in Java.

I see.  Well you can tell how much I use JBuilder ;)  For the Java stuff
I do, very little of it is GUI, and I use JEdit.
 
> <snip>
> cool technology.  If they concentrate on .net, microsoft will beat them
> at their own game though, I would bet on that.
> </snip>
> 
> Microsoft is providing the necessary assistance to make it happen.

I am sure.

> <snip>
> Well the "real" Kylix and the "enterprise" kylix only differ in included
> components, which, form and end user point of view is important, but
> from a more hardcore programmer point of view is irrelevant.  Given a
> little time, I could code almost all of the components they include in
> professional, and release them as GPL.
> </snip>
> 
> Well, yes you could.  Provided you had an operating budget or weren't
> concerned about bring a product to meet a certain marketing timeframe.
> FWIW, there's a new joint initiative between many Delphi/Kylix vendors
> called Dionesis (sp).  Watch for it.

Well I meant in a sense that it can be done, not that I as a company
would do it for any one project.

I just downloaded and took a look at Lazarus this morning.  It isn't
going to scare Borland any time soon, but it is making progress.

Since there has been a reasonable amount of traffic on this, and it
isn't -strictly- linux related, if anyone wants us to take it off list,
I have no problem with it...

 -- noah silva 


______________________________________________________________________
Philadelphia Linux Users Group       -      http://www.phillylinux.org
Announcements-http://lists.phillylinux.org/mail/listinfo/plug-announce
General Discussion  -  http://lists.phillylinux.org/mail/listinfo/plug