caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* RE: [Caml-list] Jihad
@ 2001-11-07 18:02 Bauer, Robert
  0 siblings, 0 replies; 16+ messages in thread
From: Bauer, Robert @ 2001-11-07 18:02 UTC (permalink / raw)
  To: 'Eric Newhuis', caml-list


[-- Attachment #1.1: Type: text/plain, Size: 9315 bytes --]

Eric,
 
You make many sweeping statements that have either logical flaws or are
without support.  For example, you indicate that you've been writing trivial
programs in ocaml; however, the engineering issue is one of scalability.
Because something makes the trivial easy doesn't mean that it makes the
complex more simple.  Case in point - debugging; one advantage of the
imperative paradigm is that being based on turing machines, it provides
(indeed requires) explicit notions of state - this makes debugging easier -
the ocaml debugger is not very modern with respect debuggers for imperative
languages  - even though it is leaps and bounds better than anything
available for say, haskell.
 
Everyone likes polymorphic type systems - check out "basic".
 
You state that perl, sql, javascript, and python, and a "hoard" (better - a
babel) of languages brush problems under the rug - what justification, case
studies, etc., the implication is that functional languages don't have the
problem of "you appear to have accomplished something good, but later
you find out it stinks" - I do hope that you have a sense of how the proof
goes for the church-turing thesis and that you will immediately realize the
logical flaw.
 
Lastly, most of what you write sounds like marketing hype wrapped in
buzzwords - and to me that is the scariest of things.
 
Although I am a fan of functional languages, the paradigm shift won't be in
that direction - remember functional languages have been around a long, long
time; I think the true paradigm shift will come when we figure out to lift
the language above the: functional, imperative, logical, aspect,
object-oriented, and declarative models - In graduate school I was asked to
compare and contrast prolog unification with inheritance polymorphism -
later, in a philosphy class I was asked, "which is harder a piece of paper
or a rubber band" - in a very real sense the answers were similar. 
 
robert
 
 

-----Original Message-----
From: Eric Newhuis [mailto:enew@bigfoot.com]
Sent: Tuesday, November 06, 2001 11:20 PM
To: caml-list@pauillac.inria.fr
Subject: [Caml-list] Jihad



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.<?xml:namespace prefix = o ns =
"urn:schemas-microsoft-com:office:office" />

 

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 #1.2: Type: text/html, Size: 21830 bytes --]

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

* Re: [Caml-list] Jihad
  2001-11-07  7:20 Eric Newhuis
@ 2001-11-13  6:35 ` David Fox
  0 siblings, 0 replies; 16+ 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] 16+ messages in thread

* RE: [Caml-list] Jihad
  2001-11-08 22:17 ` Mark Wotton
@ 2001-11-08 23:20   ` Vitaly Lugovsky
  0 siblings, 0 replies; 16+ messages in thread
From: Vitaly Lugovsky @ 2001-11-08 23:20 UTC (permalink / raw)
  To: Mark Wotton; +Cc: Caml

On Fri, 9 Nov 2001, Mark Wotton wrote:

> What, a long, dangerous journey just to get back to where you started? :)

 "Getting out, stronger then before!" 

-------------------
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] 16+ messages in thread

* RE: [Caml-list] Jihad
  2001-11-08 21:13 Bauer, Robert
  2001-11-08 21:36 ` Vitaly Lugovsky
@ 2001-11-08 22:17 ` Mark Wotton
  2001-11-08 23:20   ` Vitaly Lugovsky
  1 sibling, 1 reply; 16+ messages in thread
From: Mark Wotton @ 2001-11-08 22:17 UTC (permalink / raw)
  Cc: Caml

What, a long, dangerous journey just to get back to where you started? :)

mrak

On Thu, 8 Nov 2001, Bauer, Robert wrote:

> I would be in favor of "odessy"
> 
> -----Original Message-----
> From: Vitaly Lugovsky [mailto:vsl@ontil.ihep.su]
> Sent: Thursday, November 08, 2001 12:17 PM
> To: Dave Berry
> Cc: Elan; Caml
> Subject: RE: [Caml-list] Jihad
> 
> 
> On Thu, 8 Nov 2001, Dave Berry wrote:
> 
> > Perhaps Eric should try the word "Crusade" instead ;-)
> 
>  It's not the same in a theological point of view. Crusade is a violence,
> war for territory, when the original muslims "jihad" is a war for 
> thyself, to improve thyself. But, sure, all religions sucks a lot. ;)
> 
> 
> 
> -------------------
> 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
> -------------------
> 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
> 

-- 


-------------------
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] 16+ messages in thread

* RE: [Caml-list] Jihad
  2001-11-08 21:13 Bauer, Robert
@ 2001-11-08 21:36 ` Vitaly Lugovsky
  2001-11-08 22:17 ` Mark Wotton
  1 sibling, 0 replies; 16+ messages in thread
From: Vitaly Lugovsky @ 2001-11-08 21:36 UTC (permalink / raw)
  To: Bauer, Robert; +Cc: Caml

On Thu, 8 Nov 2001, Bauer, Robert wrote:

> I would be in favor of "odessy"

 Okee. It's a "quest". No more religion and mithology ;)


-------------------
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] 16+ messages in thread

* RE: [Caml-list] Jihad
@ 2001-11-08 21:13 Bauer, Robert
  2001-11-08 21:36 ` Vitaly Lugovsky
  2001-11-08 22:17 ` Mark Wotton
  0 siblings, 2 replies; 16+ messages in thread
From: Bauer, Robert @ 2001-11-08 21:13 UTC (permalink / raw)
  To: Caml

I would be in favor of "odessy"

-----Original Message-----
From: Vitaly Lugovsky [mailto:vsl@ontil.ihep.su]
Sent: Thursday, November 08, 2001 12:17 PM
To: Dave Berry
Cc: Elan; Caml
Subject: RE: [Caml-list] Jihad


On Thu, 8 Nov 2001, Dave Berry wrote:

> Perhaps Eric should try the word "Crusade" instead ;-)

 It's not the same in a theological point of view. Crusade is a violence,
war for territory, when the original muslims "jihad" is a war for 
thyself, to improve thyself. But, sure, all religions sucks a lot. ;)



-------------------
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
-------------------
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] 16+ messages in thread

* RE: [Caml-list] Jihad
  2001-11-08 17:23 Dave Berry
  2001-11-08 17:47 ` Eric Newhuis
@ 2001-11-08 20:16 ` Vitaly Lugovsky
  1 sibling, 0 replies; 16+ messages in thread
From: Vitaly Lugovsky @ 2001-11-08 20:16 UTC (permalink / raw)
  To: Dave Berry; +Cc: Elan, Caml

On Thu, 8 Nov 2001, Dave Berry wrote:

> Perhaps Eric should try the word "Crusade" instead ;-)

 It's not the same in a theological point of view. Crusade is a violence,
war for territory, when the original muslims "jihad" is a war for 
thyself, to improve thyself. But, sure, all religions sucks a lot. ;)



-------------------
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] 16+ messages in thread

* Re: [Caml-list] Jihad
  2001-11-08 17:23 Dave Berry
@ 2001-11-08 17:47 ` Eric Newhuis
  2001-11-08 20:16 ` Vitaly Lugovsky
  1 sibling, 0 replies; 16+ messages in thread
From: Eric Newhuis @ 2001-11-08 17:47 UTC (permalink / raw)
  To: Caml

Crusade?  Inquisition?  This is beginning to sound like a Monty Python
movie.

After reading the most excellent
http://www.perl.com/pub/a/2000/12/advocacy.html#why%20i%20hate%20advocacy
I'm scared to use these terms for fear of making unintentional enemies.

BTW, I must retract my statement that Perl and C will not stand the test of
time.  After reading what I had written I could not remember what I was
really trying to say there.  Both Perl and C have clearly stood the test of
time.  (And how dare I attack my ex-girlfriends that way?  Shame on me!)  I
think I was trying to argue that everyone will one day wake up and demand
strong type checking so that they can spend less time debugging and more
time building cool stuff that works.

(You all knew that my test-of-time timeframe was several billion years,
didn't you?  ML will certainly prevail that long, right?  nudge-nudge,
wink-wink)

-------------------
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] 16+ messages in thread

* Re: [Caml-list] Jihad
  2001-11-08  3:09   ` Elan
@ 2001-11-08 17:39     ` Will Benton
  0 siblings, 0 replies; 16+ messages in thread
From: Will Benton @ 2001-11-08 17:39 UTC (permalink / raw)
  To: Caml

On Wed, 7 Nov 2001, Eric Newhuis wrote:
> I am sincere.  The term fits my personal experience with
> ObjectiveCaml.  It is jihad, i.e. "struggle".  I am sorry if others
> may take issue with my use of metephor.
>
> My intentions were never to offend.  And I will not retract.


This is really a matter of denotation vs. connotation.  When Eric says
"jihad", he claims he means struggle.  This could be bad, as Mark says,
because Eric is invoking the image of a zealot with a fixed-point
combinator in one hand and a Kalashnikov rifle in the other, which
paints FP devotees as fanatics.  Or it could be bad because, as Elan
says, the word "jihad" has been the motivation and justification for
countless murders of innocent people.

It doesn't matter.  The fact is, in the current world climate, it is
irresponsible to use the word "jihad" in conversation with a general
audience to refer to anything except what the media means by "jihad"
(the fanatical, murdering kind).  (I realize that Muslims also use the
word "jihad" to mean the daily struggle of faith/etc., but it does not
connote that for the vast majority of non-Muslims.)  It is an uphill
battle at best to convince people that you intend the literal meaning of
such a loaded word.

If anyone doesn't buy this, I think I can clarify with an example. 
Let's look at another word that means "struggle"; "Kampf" in German. 
"Kampf" is especially good because it doesn't have any religious
associations that I know of.  Would it be acceptable to write a book
called "Mein Kampf:  A Story of Learning OCaml" and assume that people
would know that it was a *just a struggle*?  I doubt it.  Some words and
phrases are far too emotionally loaded and surrounded by alternative
meanings to be useful as language.  (I am not suggesting that "Kampf"
itself is so tainted; "Mein Kampf" probably is.)

Eric, good luck in your struggle
.




wb

-- 
Will Benton      | "Nicht wie die Welt ist, ist das Mystische, 
willb@acm.org    |  sondern daß sie ist." --L. Wittgenstein
**GnuPG public key:  http://www.cs.wisc.edu/~willb/pubkey

-------------------
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] 16+ messages in thread

* RE: [Caml-list] Jihad
@ 2001-11-08 17:23 Dave Berry
  2001-11-08 17:47 ` Eric Newhuis
  2001-11-08 20:16 ` Vitaly Lugovsky
  0 siblings, 2 replies; 16+ messages in thread
From: Dave Berry @ 2001-11-08 17:23 UTC (permalink / raw)
  To: Elan, Caml

Perhaps Eric should try the word "Crusade" instead ;-)

Dave.

-----Original Message-----
From: Elan [mailto:rebol@techscribe.com]
Sent: 08 November 2001 03:09
To: Caml
Subject: Re: [Caml-list] Jihad

Jihad is a bloodthirsty warcry for the indiscriminant murder of innocent
victims...




-------------------
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] 16+ messages in thread

* Re: [Caml-list] Jihad
  2001-11-07 22:50 ` Vitaly Lugovsky
@ 2001-11-08 14:07   ` Julian Assange
  0 siblings, 0 replies; 16+ messages in thread
From: Julian Assange @ 2001-11-08 14:07 UTC (permalink / raw)
  To: Vitaly Lugovsky; +Cc: Eric Newhuis, Caml

>  Nothing can be free in this world (or evolution will stop). So,
> enjoy your fight against the world and use the power you gain in
> this fight to gain more and more. Fighting agains weak enemy will not
> give you much power. Choose the better challenge - and win or die!
> 
> P.S. sorry for offtopic.

Or, nod diplomatically, smile seductively, love lavishingly, keep
a little black book of the bored and the beautiful, build a
confederation of dunces, and take the weekend off for a game of
Brockian Ultra Cricket.

--
 Julian Assange        |If you want to build a ship, don't drum up people
                       |together to collect wood or assign them tasks and
 proff@iq.org          |work, but rather teach them to long for the endless
 proff@gnu.ai.mit.edu  |immensity of the sea. -- Antoine de Saint Exupery
-------------------
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] 16+ messages in thread

* Re: [Caml-list] Jihad
  2001-11-07 15:37 ` Mark Wotton
@ 2001-11-08  3:09   ` Elan
  2001-11-08 17:39     ` Will Benton
  0 siblings, 1 reply; 16+ messages in thread
From: Elan @ 2001-11-08  3:09 UTC (permalink / raw)
  To: Caml

Mark Wotton wrote:
> 
> On Wed, 7 Nov 2001, Eric Newhuis wrote:
> 
> > A quick note on my potentially offensive style...
> >
> > I am sincere.  The term fits my personal experience with
> > ObjectiveCaml.  It is jihad, i.e. "struggle".  I am sorry if others
> > may take issue with my use of metephor.
> >
> > My intentions were never to offend.  And I will not retract.
> 
> On a purely practical level, you may be well advised not to use religious
> terms. The perception of functional programmers is already that we're all
> crazed zealots: using religious terminology doesn't help that at all.
> 

I disagree that Jihad should not be used because it is a religous term.
I believe that adopting metaphors from all over the cultural scene
(including religion) is perfectly legitimate. 
Jihad is a bloodthirsty warcry for the indiscriminant murder of innocent
victims. This definition of Jihad is not theologically derived from the
Quran, it is politically defined by those terrorist groups who are
responsible for the assassination of former Egyption president Anwar
Sadat, for the murder of moderate Muslims in Algeria, whose throats are
routinely slit in attacks on their villages (must be quite a struggle),
of Christian worshippers in a church in Pakistan, of Sikhs and Hindu in
India, and let's not forget the most recent victims in the World Trade
Center. Bin Laden's version of Jihad includes the kidnapping of Ugandian
children, who are forced to serve as slaves on his farms in the Sudan. 

If these acts of Jihad happen to coincide with your experience of
programming in OCAML, Eric, then I recommend you rapidly switch to
binary.

To use "Jihad" as a metaphor for something that has nothing to do with
mass murder is not offensive. It is ignorant.

Elan
-------------------
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] 16+ messages in thread

* Re: [Caml-list] Jihad
  2001-11-07 14:41 Eric Newhuis
  2001-11-07 15:37 ` Mark Wotton
@ 2001-11-07 22:50 ` Vitaly Lugovsky
  2001-11-08 14:07   ` Julian Assange
  1 sibling, 1 reply; 16+ messages in thread
From: Vitaly Lugovsky @ 2001-11-07 22:50 UTC (permalink / raw)
  To: Eric Newhuis; +Cc: Caml

On Wed, 7 Nov 2001, Eric Newhuis wrote:

> A quick note on my potentially offensive style...
> 
> I am sincere.  The term fits my personal experience with ObjectiveCaml.
>  It is jihad, i.e. "struggle".    I am sorry if others may
> take issue with my use of metephor.

 All the human's life is jihad. Jihad for knowledge, for power,
for glory, for money ;)

 Nothing can be free in this world (or evolution will stop). So,
enjoy your fight against the world and use the power you gain in
this fight to gain more and more. Fighting agains weak enemy will not
give you much power. Choose the better challenge - and win or die!

P.S. sorry for offtopic.

-------------------
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] 16+ messages in thread

* Re: [Caml-list] Jihad
  2001-11-07 14:41 Eric Newhuis
@ 2001-11-07 15:37 ` Mark Wotton
  2001-11-08  3:09   ` Elan
  2001-11-07 22:50 ` Vitaly Lugovsky
  1 sibling, 1 reply; 16+ messages in thread
From: Mark Wotton @ 2001-11-07 15:37 UTC (permalink / raw)
  Cc: Caml

On Wed, 7 Nov 2001, Eric Newhuis wrote:

> A quick note on my potentially offensive style...
> 
> I am sincere.  The term fits my personal experience with
> ObjectiveCaml.  It is jihad, i.e. "struggle".  I am sorry if others
> may take issue with my use of metephor.
> 
> My intentions were never to offend.  And I will not retract.

On a purely practical level, you may be well advised not to use religious
terms. The perception of functional programmers is already that we're all
crazed zealots: using religious terminology doesn't help that at all.

mrak


-------------------
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] 16+ messages in thread

* [Caml-list] Jihad
@ 2001-11-07 14:41 Eric Newhuis
  2001-11-07 15:37 ` Mark Wotton
  2001-11-07 22:50 ` Vitaly Lugovsky
  0 siblings, 2 replies; 16+ messages in thread
From: Eric Newhuis @ 2001-11-07 14:41 UTC (permalink / raw)
  To: Caml

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

A quick note on my potentially offensive style...

I am sincere.  The term fits my personal experience with ObjectiveCaml.  It is jihad, i.e. "struggle".    I am sorry if others may take issue with my use of metephor.

My intentions were never to offend.  And I will not retract.

Sincerely,
Eric Newhuis


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

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

* [Caml-list] Jihad
@ 2001-11-07  7:20 Eric Newhuis
  2001-11-13  6:35 ` David Fox
  0 siblings, 1 reply; 16+ 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] 16+ messages in thread

end of thread, other threads:[~2001-11-13  6:32 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-11-07 18:02 [Caml-list] Jihad Bauer, Robert
  -- strict thread matches above, loose matches on Subject: below --
2001-11-08 21:13 Bauer, Robert
2001-11-08 21:36 ` Vitaly Lugovsky
2001-11-08 22:17 ` Mark Wotton
2001-11-08 23:20   ` Vitaly Lugovsky
2001-11-08 17:23 Dave Berry
2001-11-08 17:47 ` Eric Newhuis
2001-11-08 20:16 ` Vitaly Lugovsky
2001-11-07 14:41 Eric Newhuis
2001-11-07 15:37 ` Mark Wotton
2001-11-08  3:09   ` Elan
2001-11-08 17:39     ` Will Benton
2001-11-07 22:50 ` Vitaly Lugovsky
2001-11-08 14:07   ` Julian Assange
2001-11-07  7:20 Eric Newhuis
2001-11-13  6:35 ` 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).