comp.lang.ada
 help / color / mirror / Atom feed
From: "Yannick Duchêne (Hibou57)" <yannick_duchene@yahoo.fr>
Subject: Re: Some exciting new trends in concurrency and software design
Date: Thu, 23 Jun 2011 11:59:51 +0200
Date: 2011-06-23T11:59:51+02:00	[thread overview]
Message-ID: <op.vxiwp1onule2fv@douda-yannick> (raw)
In-Reply-To: b66eac0c-c65b-4a9c-b872-dd07841ba3a8@o10g2000prn.googlegroups.com

Le Tue, 21 Jun 2011 11:36:31 +0200, steveh44 <steve_h44@yahoo.com> a écrit:

> On Jun 20, 4:56 pm, jonathan <johns...@googlemail.com> wrote:
>
>>
>> Functional programming doesn't appeal to me,
>
> I also tried FP, and I did not like it either.
I you just (and not more) used it as a clean base from which to derive  
other implementations, in say, Ada, you may had another feeling. Sure FP  
lacks things like the expression of concrete hardware (real life machines)  
limitations: typically, with FP, you will not bother about defining a  
range for an integer type, instead, it may rely on big numbers, which are  
obviously less efficient and only limited by available memory and CPU  
speed, which is obviously not acceptable at all in many case.

Keep in mind: FP does not focus on the same thing a language like Ada do;  
however, multiple views is often a good thing. I like to think for some  
area (not all, don't forget), FP is nice for a first model, from which you  
will derive a concrete implementation. You will then not throw it away,  
because it may help you to compare result of both FP and Ada  
implementation, if ever some suspicious results occurs with the release  
implementation, or if you lost some tracks due to some side-effect mess.  
You think of an FP model as a documentation for an Ada implementation, as  
a way to explain it (providing the FP text is documented enough, of course)

Also, as Phil outlined, being expression based (no side effect), FP also  
leave you a chance to turn a sequential implementation into a concurrent  
implementation, which is not the least. Whatever an Ada implementation is,  
try to turn a sequential design into a concurrent design, and tell about  
it after you did.

As a rule of thumb, although its not true for every thing, keep in mind FP  
is not good for final release implementation.

> I could write some cool looking code, which does
> something amazing in few lines, but when I come
> back few days later and look at it, I find myself
> struggling to understand it.
As Phil and Shark said: use “(*” comments “*)” ;) (aren't you talking in  
an Ada Usenet here ? ;) )

> FP seems to be good for short programs. But try to
> build a large software system with it, and things
> start falling apart quickly.
That is true of any bad design, what ever the language is. Also note that  
SML comes with Signature, Structure, and Functor, which all may help here.

-- 
“Syntactic sugar causes cancer of the semi-colons.”  [Epigrams on  
Programming — Alan J. — P. Yale University]
“Structured Programming supports the law of the excluded muddle.” [Idem]
Java: Write once, Never revisit



  parent reply	other threads:[~2011-06-23  9:59 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-20 10:49 Some exciting new trends in concurrency and software design jonathan
2011-06-20 14:40 ` Georg Bauhaus
2011-06-20 14:48   ` Georg Bauhaus
2011-06-20 23:56   ` jonathan
2011-06-21  9:36     ` steveh44
2011-06-21 13:04       ` Phil Clayton
2011-06-22  0:37       ` Shark8
2011-06-22  9:45       ` anon
2011-06-29 21:39         ` Robert A Duff
2011-06-30 16:52           ` anon
2011-07-01 18:31             ` Shark8
2011-06-23  9:59       ` Yannick Duchêne (Hibou57) [this message]
2011-06-23 10:25         ` Dmitry A. Kazakov
2011-06-23 10:57           ` Yannick Duchêne (Hibou57)
2011-06-23 12:20             ` Dmitry A. Kazakov
2011-06-23 22:17             ` Georg Bauhaus
2011-06-24  1:26               ` Phil Clayton
2011-06-24  1:34                 ` Yannick Duchêne (Hibou57)
2011-06-24 10:41                 ` Georg Bauhaus
2011-06-24  1:27               ` Yannick Duchêne (Hibou57)
2011-06-24 10:32                 ` Georg Bauhaus
2011-06-24 13:45                   ` Yannick Duchêne (Hibou57)
2011-06-21 12:19     ` Dmitry A. Kazakov
2011-06-21 12:14   ` Phil Clayton
2011-06-22  8:39   ` Oliver Kleinke
2011-06-23  2:48     ` Nasser M. Abbasi
2011-06-23  9:23   ` Yannick Duchêne (Hibou57)
2011-06-23 10:03     ` Nasser M. Abbasi
2011-06-23 11:07       ` Yannick Duchêne (Hibou57)
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox