Re: Choosing a PL - What you can do or how you do it?
- From: Chris Barts <puonegf+hfrarg@xxxxxxxxx>
- Date: Tue, 31 Jul 2007 01:39:01 -0600
August Karlstrom <fusionfive@xxxxxxxxx> wrote on Monday 30 July 2007 16:43
in comp.programming <QQtri.5128$ZA.2230@xxxxxxxxxxxxxxx>:
evan@xxxxxxxxxxxxxxxxx skrev:
[...]
On the one
hand, it is all well and good to sing the praises of languages like
Haskell, and it's FP brethren, but on the other hand - why do
necessary languages like C/C++ get such a bad rap, when it is pretty
clear we can't actually live without them?
Well, in fact there are saner alternatives to C and C++. Oberon, for
instance, is a completely type safe procedural language with OOP support.
Oh yes, Pascal without the real-world uptake or usage. The Algol Type System
From Hell and no support for meta-programming or type inferencing.
http://www.zel.org/oberon/fromctoo.htm
http://www.modulaware.com/mdltws.htm
http://www.modulaware.com/mdlt49.htm
Now, if Haskell could do
all the things that C can do - including meeting performance
requirements - then I would be fully converted. Right now, I'm still
sort of on the fence - and quite a bit skeptical. Thoughts, anyone?
To cite Niklaus Wirth regarding functional languages:
If he really said that, he's a moron.
"To postulate a state-less model of computation on top of a machinery
whose most eminent characteristic is state, seems to be an odd idea, to
say the least.
Not if you want parallelism with code humans can still read.
The gap between model and machinery is wide, and
therefore costly to bridge. No hardware support feature can wash this
fact aside: It remains a bad idea for practice.
Google and their MapReduce model beg to differ.
From Google, a company with real-world experience developing real systems,as opposed to academic experience developing toys:
"Programs written in this functional style are automatically parallelized
and executed on a large cluster of commodity machines. The run-time system
takes care of the details of partitioning the input data, scheduling the
program's execution across a set of machines, handling machine failures,
and managing the required inter-machine communication. This allows
programmers without any experience with parallel and distributed systems to
easily utilize the resources of a large distributed system."
<http://labs.google.com/papers/mapreduce.html>
This has in due time
also been recognized by the protagonists of functional languages. They
have introduced state (and variables) in various tricky ways. The purely
functional character has thereby been compromised and sacrificed. The
old terminology has become deceiving."
Utter nonsense.
http://www.cs.inf.ethz.ch/~wirth/Articles/GoodIdeas_origFig.pdf
August
--
My address happens to be com (dot) gmail (at) usenet (plus) chbarts,
wardsback and translated.
It's in my header if you need a spoiler.
.
- References:
- Choosing a PL - What you can do or how you do it?
- From: evan
- Re: Choosing a PL - What you can do or how you do it?
- From: August Karlstrom
- Choosing a PL - What you can do or how you do it?
- Prev by Date: standard concepts to describe network behavior?
- Next by Date: Re: State pattern query
- Previous by thread: Re: Choosing a PL - What you can do or how you do it?
- Next by thread: Multiple #defines in WinError.h
- Index(es):
Relevant Pages
|
|