caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] Jihad
@ 2001-11-07  7:20 Eric Newhuis
       [not found] ` <20011107184438.A7336@team.ph.inter.net>
  2001-11-13  6:35 ` [Caml-list] Jihad David Fox
  0 siblings, 2 replies; 7+ messages in thread
From: Eric Newhuis @ 2001-11-07  7:20 UTC (permalink / raw)
  To: caml-list

[-- Attachment #1: Type: text/plain, Size: 7263 bytes --]

I want to send this to my engineering staff but would like someone to comment on what I claim here.  I don't want to mis-represent the ocaml language or the intentions of those who harbour it.  I wrote this as if I speak from authority.  But in reality I am a novice.  My true intentions are to help spread the good news about what I think could become a major paradigm shift.



Sincerely,

Eric Newhuis

CTO

FutureSource





--begin--



This slide show is a must read because it discusses the ML language's type system which is arguably the best in the world.  I've been writing trivial programs in Objective Caml, an ML dialect, and have been surprised how much it helps one craft code.  So I was really excited when I came across this slide show that relates C, ML, and Perl.

 

http://perl.plover.com/yak/typing/

 

So the next time you hear me praising "strongly typed languages" and attacking Perl you'll know what I'm talking about.

 

Perl, SQL, Javascript, Python, and a hoard of other languages brush problems under the rug.  You can appear to have accomplished good work only to discover later, long after the product has been deployed, that something still stinks.

 

What aggravates me the most is the ignorance of the software development community in the USA.  One of the best features of modern software development practices has simply been overlooked by our American tool vendors (up until now?  See below.).  I suppose there is no demand for what I'm going to describe here because most of us are ignorant of the benefits.  So maybe I can help build that demand by passing on this cutting-edge information to this group.

 

 

Strongly typed languages are your friend?

 

As programming languages have evolved, attempts at type systems implemented in Pascal, C, and C++ made declarations more complex than necessary.  Perl mongers have been quick to point out that it is much harder to type type-safe code.  And I concur that C++'s template syntax is one of the most disgusting uses of ASCII characters.  But the designers of C++ had little choice because of C++'s roots in earlier mistakes--i.e. C.

 

Recently Java has decided to join the ranks of C++ template syntax lemmings.  But Java, to the best of my knowledge, is actually going to make the problem worse than that in C++ because one will not be allowed to provide aliases for complex type descriptions.

 

 

Simple, and yet strong?

 

ML proves that type-safety can be simultaneously easier to code and yet more powerful than dynamically typed languages and inferior strongly-typed languages.  Complexity arguments just don't hold up.

 

I've heard other arguments that languages like Perl, because they allow slop engineering practices more closely map to the real world because the real world is also full of a lot of slop.

 

This is bull.

 

Software, because it is so pliable, should represent our exact engineering intentions and our tools should help us enforce those intentions as much as is currently possible before we deploy our systems.

 

The true professional will understand the merits of what I am demanding.  Languages like C and Perl will not stand the test of time.  They will fade into obscurity as more powerful engineering tools take center stage.

 

We should stand up and demand better engineering tools from our tool vendors.  After all, our users have the right to intentionally-designed products.  We ought to be able to demonstrate that the code we create will actually work without running it in every possible combination of use cases.

 

 

An Early Hope?

 

Microsoft's .NET platform may play the role of catalyst in this Jihad.  For finally we may see theoretically superior research-grade languages make their way into the mainstream with a newfound ability to use a common library platform (i.e. Microsoft's platform).  Once developers see the benefits of stronger type systems and higher-level polymorphism they will avoid C and Perl like our predecessors learned to avoid assembly language in favor of FORTRAN and Pascal.

 

Microsoft R&D has pumped some money into ObjectiveCaml research.  They did so in order to extend the reach of .NET's Common Language Runtime.

 

If you learn only one "alternative language" (as Dr. Dobbs magazine put it) in your lifetime, then I urge you to study ML or Objective Caml.  Use of these languages will reduce time to market and eliminate most failures of your code to, as one University of Illinois professor put it

 

      "obey the principle of least astonishment".

 

 

Be Fair to Perl?

 

To be fair I must admit that Perl has a lot of neat tricks.  Being a conglomeration of a diverse toolset enables the language to perform mixed-paradigm feats that bland languages like C must delegate to platform-specific libraries.  So there is still a lot one can learn from Perl.

 

So when you want to perform tricks and you feel like a magician, go ahead and use Perl.  And when you feel like an engineer, use ObjectiveCaml or some other ML dialect.  But remember that magicians are only concerned with appearances.  Engineers are after the loftier goal.

 

 

Evidence that ObjectiveCaml Works?

 

Check out http://dada.perl.it/shootout/ for some excellent language comparisons.  If you give CPU time, lines of code per intention, and memory footprint equal weights then ObjectiveCaml reigns supreme over all other languages.  If all you care about is CPU time then ObjectiveCaml sits between C and C++.  Amazing?  No, just proof that strongly-typed languages rule.

 

A number of successful commercial applications have been developed in ObjectiveCaml.  NBC uses it in a web site:  http://shopping.nbci.com.  For a better list check out http://caml.inria.fr/users_programs-eng.html and http://caml.inria.fr/hump.html.  (Although cool, the ObjectiveCaml port of the DOOM game engine doesn't count because DOOM has been ported to everything.)

 

Some of the standard ObjectiveCaml library modules include Perl-compatible regular expressions, shell interfaces, XML, XSLT, XPATH, cryptography, web servers and clients, message queuing, xml-to-unix-man-page (what!?!?!), a graphical CVS front end, an Emacs-like editor, 3D graphics, signal processing, file system synchronization, LaTeX stuff (who cares?), COM and CORBA, a web proxy, mail client, parallel computing, lots of TCP/IP stuff, generative techniques, gobs of complex data structures--not just the stupid simples ones like linked lists and sets but Splay trees, Tries, and other exotic things, Postgresql, ODBC, MySQL, Java & C++ interfaces, scientific and numerical computing, "here" docs, ZIP/Jar/GZ libraries, etc.

 

 

Lastly?

 

I didn't intend to convince you all to turn in your C++ compilers.  Nor do I want to bash Perl to a pulp.  I do, however, want us to keep our minds open and be ready to move if and when the paradigm shifts.  I wouldn't mention this stuff if I didn't think it would help us to compete.  I strongly believe that the ML family of languages can some day help us cut our development costs at least in half.  See?  It really is all about oil.


[-- Attachment #2: Type: text/html, Size: 17702 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Do you mean that C# will be at its head? (was Re: [Caml-list] Jihad)
       [not found] ` <20011107184438.A7336@team.ph.inter.net>
@ 2001-11-07 14:54   ` Eric Newhuis
  0 siblings, 0 replies; 7+ messages in thread
From: Eric Newhuis @ 2001-11-07 14:54 UTC (permalink / raw)
  To: Caml

You can rest assured I was not referring to C#, but the common language
nirvana that Microsoft seems to be hyping.

C# is obviously "Microsoft Search & Redevelopment".  And I think it is
amazing that smart people like Anders Hejlsberg enjoy regurgitating Java at
any price.

Yes I agree with you and perhaps I am overly optimistic about Microsoft's
willingness to help bring Caml to the masses.

I am also aware of a few of the difficulties in targeting MSIL.

Nevertheless I am hopeful and I will continue the struggle.

----- Original Message -----
From: "Rafael 'Dido' Sevilla" <sevillar@team.ph.inter.net>
To: "Eric Newhuis" <enew@starband.net>
Sent: Wednesday, November 07, 2001 4:44 AM
Subject: Do you mean that C# will be at its head? (was Re: [Caml-list]
Jihad)


> On Wed, Nov 07, 2001 at 01:20:09AM -0600, Eric Newhuis wrote:
> > An Early Hope?
> >
> > Microsoft's .NET platform may play the role of catalyst in this Jihad.
> > For finally we may see theoretically superior research-grade
> > languages make their way into the mainstream with a newfound ability
> > to use a common library platform (i.e. Microsoft's platform).  Once
>
> When you speak of "theoretically superior research-grade languages", do
> you mean C#?  Because, if you do, I really have to laugh at what is
> otherwise a well-reasoned, well-thought-out rant.  I've seen what C#
> looks like and, well, what I can say is that Anders Hejlsberg seems to
> have opened a "Java for Dummies" book when he began designing the
> language!  Nothing about it incorporates any of the cutting edge
> research into language design that you refer to elsewhere.  All it is
> really is the marriage of C++ and Java that combines most of the good
> parts of both.  To call it a "theoretically superior research-grade
> language" is the funniest thing I've heard all year.  At best, it's an
> evolutionary improvement on an old design, a design which you, in the
> rest of your rant, blast violently.
>
> No, I doubt that .NET will be the catalyst for this "Jihad" you talk
> about.  Microsoft is not pushing any of the alternative languages like
> OCaml as its spearhead for .NET, whether they funded development for it
> or not.  They "invented" (using a loose definition of "invented") C# for
> that purpose, and C# is still deep in the family of languages you hit.
>
> --
> Rafael R. Sevilla <sevillar@team.ph.inter.net>   +63(2)   8177746 ext.
8311
> Programmer, Inter.Net Philippines                +63(917) 4458925
> http://dido.engr.internet.org.ph/                OpenPGP Key ID:
0x5CDA17D8


-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Caml-list] Jihad
  2001-11-07  7:20 [Caml-list] Jihad Eric Newhuis
       [not found] ` <20011107184438.A7336@team.ph.inter.net>
@ 2001-11-13  6:35 ` David Fox
  2001-11-13 12:17   ` Receptive Tool Vendors (was: Re: [Caml-list] Jihad) Eric Newhuis
  1 sibling, 1 reply; 7+ messages in thread
From: David Fox @ 2001-11-13  6:35 UTC (permalink / raw)
  To: Eric Newhuis; +Cc: caml-list

"Eric Newhuis" <enew@bigfoot.com> writes:

> What aggravates me the most is the ignorance of the software
> development community in the USA.  One of the best features of
> modern software development practices has simply been overlooked by
> our American tool vendors (up until now?  See below.).

Have you found tool vendors outside of the USA more receptive /
perceptive?
-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Receptive Tool Vendors (was: Re: [Caml-list] Jihad)
  2001-11-13  6:35 ` [Caml-list] Jihad David Fox
@ 2001-11-13 12:17   ` Eric Newhuis
  2001-11-13 15:55     ` David Fox
  0 siblings, 1 reply; 7+ messages in thread
From: Eric Newhuis @ 2001-11-13 12:17 UTC (permalink / raw)
  To: Caml

> Have you found tool vendors outside of the USA more receptive /
> perceptive?

Not directly.  However I have, on occasion, encountered people from the UK
who know ML and have preached its virtues.  I only assumed that there must
have been some form of support outside the classrooms and research labs.

Am I wrong?  What is the current state of functional programming language
acceptance?

I used to preach Lisp for no apparent reason.  I know that Lisp has enjoyed
some commercial success, perhaps for those who have refused to relinquish
who now find themselves solving commercial problems.

After learning about ML and Caml I doubt that I will ever preach Lisp again.
I wouldn't have known any better if I hadn't collected years of personal
observations on the (potential) safety provided by languages like C++ and
Caml.

Caml provides a much stronger safety of primitives than C++.  I believe
higher-level safety is also important:  Avoid Primitive Obsession and
construct useful classes that encapsulate basic domain concepts.  This is a
good form of safety that is even possible in weakly typed languages.

Why am I venturing here in response to your question?  Well I think there
are a lot of good techniques that programmers consistently ignore because
they are creatures of habit.  So we don't have a lot of developers screaming
for better type safety here in the USA.  And I'll bet this is true worldwide
since USA tool vendors have an influence on the world, no?

I recall reading "After the Gold Rush" in which the author urges us to move
toward more professional software engineering practices.  I firmly believe
that languages like Caml can play a role in that.

It is precisely the X-behavior of weakly typed languages that leads one to
believe that programming is still more of a "black art" or a .  I say those
developers are simply too lazy or too lame to undertake the higher task that
is deserving of the title of "Professional Engineer".  (This is what I was
referring to in my first email about the "true professional".)

Interviewer:  "Yes Mr. NASA engineer, just how did you get that robot to
land on Mars and take pictures?"
NASA Engineer:  "Oh that?  We don't know.  We have a number of magicians
working for us and they refuse to reveal their secrets."

Hogwash!

True; no language is a silver bullet.  We need a combination of fail-safe
mechanisms, good engineering practices, and technical management and process
optimization.  (I must sound like an SEI pundit.)

I think Caml can be one piece of a much larger puzzle.  Tool vendors who
sell this higher cause and demonstrate how it can save money by producing
more intentionally error-free software will, perhaps, have an edge over the
competition.

But the sales pitch needs to also educate software developers in best
engineering practices.  And I don't necessarily mean UML diagrams, but more
practical things like SOME of those practices suggested by the Extreme
Programming crowd, the Refactoring book, NASA's SEL, and IBM's software
lifecycle management research.

Failure to instruct in all these areas will diminish the understanding that
a language like Ocaml is a good thing.

-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Receptive Tool Vendors (was: Re: [Caml-list] Jihad)
  2001-11-13 12:17   ` Receptive Tool Vendors (was: Re: [Caml-list] Jihad) Eric Newhuis
@ 2001-11-13 15:55     ` David Fox
  2001-11-13 23:57       ` Eric Newhuis
  0 siblings, 1 reply; 7+ messages in thread
From: David Fox @ 2001-11-13 15:55 UTC (permalink / raw)
  To: Eric Newhuis; +Cc: Caml

"Eric Newhuis" <enew@bigfoot.com> writes:

> > Have you found tool vendors outside of the USA more receptive /
> > perceptive?
> 
> Not directly.  However I have, on occasion, encountered people from the UK
> who know ML and have preached its virtues.  I only assumed that there must
> have been some form of support outside the classrooms and research labs.
> 
> Am I wrong?  What is the current state of functional programming language
> acceptance?

I would say it is low world wide.  As a matter of fact, many of the
engineers in the U.S. who are unaware of functional programming are
foreigners!  I'm being facetious, but I think that injecting
nationality into this discussion is unhelpful and annoying.
-- 
David Fox
dsfox@cogsci.ucsd.edu
http://www.foxthompson.net/dsf/
-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Receptive Tool Vendors (was: Re: [Caml-list] Jihad)
  2001-11-13 15:55     ` David Fox
@ 2001-11-13 23:57       ` Eric Newhuis
  2001-11-14 15:26         ` David Fox
  0 siblings, 1 reply; 7+ messages in thread
From: Eric Newhuis @ 2001-11-13 23:57 UTC (permalink / raw)
  To: Caml

> I'm being facetious, but I think that injecting nationality into this
discussion is unhelpful and annoying.

I only have experience in the USA.  I think you may have read too much into
what I wrote.

-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Receptive Tool Vendors (was: Re: [Caml-list] Jihad)
  2001-11-13 23:57       ` Eric Newhuis
@ 2001-11-14 15:26         ` David Fox
  0 siblings, 0 replies; 7+ messages in thread
From: David Fox @ 2001-11-14 15:26 UTC (permalink / raw)
  To: Eric Newhuis; +Cc: Caml

"Eric Newhuis" <enew@bigfoot.com> writes:

> > I'm being facetious, but I think that injecting nationality into this
> discussion is unhelpful and annoying.
> 
> I only have experience in the USA.  I think you may have read too much into
> what I wrote.

Yes, I suppose so.
-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2001-11-14 15:23 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-11-07  7:20 [Caml-list] Jihad Eric Newhuis
     [not found] ` <20011107184438.A7336@team.ph.inter.net>
2001-11-07 14:54   ` Do you mean that C# will be at its head? (was Re: [Caml-list] Jihad) Eric Newhuis
2001-11-13  6:35 ` [Caml-list] Jihad David Fox
2001-11-13 12:17   ` Receptive Tool Vendors (was: Re: [Caml-list] Jihad) Eric Newhuis
2001-11-13 15:55     ` David Fox
2001-11-13 23:57       ` Eric Newhuis
2001-11-14 15:26         ` David Fox

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).