[Sussex] RE: The 'D' programming language

Geoff Teale Geoff.Teale at claybrook.co.uk
Thu Feb 20 11:33:00 UTC 2003


Steve wrote:
------------
> I have herd it said that Bill Joy will not add some features to the 
> Java language because it would make is as cluttered as C++ can be.
> While some of features might be useful - I have to say that he has
> a point.  The more cluttered a language becomes the more there is
> to dislike in the code use see written.  It takes a very, very good
> programmer to write a nice code all the time.

There is a tendancy for users to demand more and more features of a
language.  This only ends up in horrible syntax kludges.  If languages were
not all tailored for a particular task then there would be only one language
- we don't learn new syntax just for fun!  

There are rules for these things:

All art aspires to the state of music

All programs expand to the point where they can send and recieve e-mail (no
matter what their original function) - the canonical example is the
progression of TECO through to the environment that is EMACS.

All third generation programming languages are pressured by users towards
the state of "C".


> You've must have worked with a lot of people who's logon 
> should have been
> "id10t" :-) 

I think this is a result of having spent most of my career in environments
where IT is managed by business people rather than IT people - indeed this
situation has only got worse as my career has progressed (Claybrook is a
company of pensions experts who feel that they happen to do software - waht
they haven't really realised is that the software expertease is actually of
value as well as the pensions expertease).  

There is a tendancy amongst management experts to assume that the answer to
any problem is to add more management to the mix.  Equally there is a
tendancy amongst business people to assume that any technical aspect of an
implementation is unimportant as long as their immediate goals are met.
Unfortunately these people rarely reconcile this with the fact that they
will have a new requirement in a months time and will be shocked if you
can't implement it immediately (because they forced you to produce _bad_
software).  That's all just an aspect of short-termism in business, a common
problem.  Whether they are right or wrong (ultimately businesses _must_ make
money) is not the point here, the net result is making the programmers life
more difficult through ignorance.

> I have a very clean (OO) definition of "Business Logic":
> Code that actually implements the process of the business.  When a 
> customer places an order some part of the "Business Logic" 
> will have to
> make an associated with the payment details so that when the 
> goods/services
> are delivered his/her credit card can be debited.  How the credit card
> is debited is the job of the "System Code" within the 
> CreaditCard class.
> What is so hard in this to understand?

Yes, I accept that the phrase has a valid and sensible use, juist that the
people who have used it with me (who frankly would not understand what it
meant anyway) were universally a source of stress to me :)

> Any language can be used in a clean way.  

Except Pearl!  < don't hit me, I'm only joking :-) >

>One of the ways I think Java
> scores that it has actively been designed to be clean.  The 
> syntax doesn't
> really allow anything else (format aside).

Absolutley.  When I say Java is a clean, elegant language this is what I
mean.  It's syntax is not cluttered up by functionality that isn't relevant
to it's role in life.

> So the developers of "D" have taken a good look and learned from the
> mistakes and successes of those that when before - I call 
> that progress.

Absolutely.  Java was a revolution, D is an evolution.
 
> Of course C++ is a compromise system; it was designed to be.  
> OO incourages
> re-use - and I think I'm write in saying that it was a 
> driving factor in
> Stroustrup's design of the language.  By making C++ a 
> superset of C one
> can make use of all the C libraries that are out there.  Okay 
> - I know that
> you know this Geoff -  I've seen some of your C++ code and it 
> made use of
> the Wrapper pattern.

Yes. I just think that D, like java does better by forcing people to work in
a cleaner manner - one problem with C and C++ is that peoples approach to
things varies so greatly and the choice of library can effectively change
the character of the code totally.  While Gtk-- and Qt3 are fabulous they
require you to learn a whole new syntax (and in the case of Qt add an extra
stage to compile process and make tools like `make` useless).
 
> At the end of the day C++ carries the baggage that was built 
> in to it to
> get it accepted when C was everywhere.  The biggest problem any new 
> language has is getting wide spread acceptance in the 
> developer community.

Also agreed.  I persist with C++ programming at home because it is useful in
my career (and my best bet at getting away from the dreaded VB), but really
I'd rather be hacking hardware in Assembly language.  D will suffer from the
fact that other than being the "Right Thing" it doesn't offer anything major
that C++ doesn't and won't compile old C or C++ code. Developers will not
switch to it unless they are just interested in coding generally and have a
clean slate to start with.  Ruby and Python suffer this in comparison to
Perl.  

> Java's pick up was amazing.  At one time Sun measured the 
> "life" of Java 
> in days - and then you couldn't walk in to Waterstones with 
> out seeing 
> at least one shelf full of Java books - and Java was only 800 
> days old - 
> that's around 3 years old!!!!!!

But that, as I say is because Java offered something that had never existed
before.  Microsoft's .NET suffers as a Java copy-cat as Python suffers as a
Perl-Follower, even the might of Microsoft is having trouble shipping those
boxes.

-- 
geoff.teale at claybrook.co.uk
tealeg at member.fsf.org

"Injustice is happening now; suffering is happening now. We have choices to
make now. To insist on absolute certainty before starting to apply ethics to
life decisions is a way of choosing to be amoral."
   - Richard M Stallman


The above information is confidential to the addressee and may be privileged.  Unauthorised access and use is prohibited.
 
Internet communications are not secure and therefore this Company does not accept legal responsibility for the contents of this message.
 
If you are not the intended recipient, any disclosure, copying, distribution or any action taken or omitted to be taken in reliance on it, is prohibited and may be unlawful.
 
Claybrook Computing Limited is a subsidiary of Claybrook Computing (Holdings) Limited
Registered Office: Abbey House. 282 Farnborough Road, Farnborough, Hampshire GU14 7NJ
Registered in England and Wales No 1287205
 
A Hogg Robinson plc company





More information about the Sussex mailing list