Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C++ > Re: OO vs functional programming: what's a suitable newsgroup?

Reply
Thread Tools

Re: OO vs functional programming: what's a suitable newsgroup?

 
 
Melzzzzz
Guest
Posts: n/a
 
      03-14-2013
On Thu, 14 Mar 2013 11:19:25 +0000, Andy Champ wrote:

> I came across this in a job advert: "Experience of both functional and
> Object Oriented design and engineering is essential as the product is
> evolving from following a functional to an OO design discipline". I was
> a bit surprised at this - I know little of functional programming (in
> the Erlang/Haskell etc sense, which I assume is what they mean) but I'd
> thought it was a newer paradigm.
>
> This as a discussion doesn't really belong here - can anyone suggest a
> suitable newsgroup? I did look at comp.programming, but it doesn't look
> healthy.
>
> Andy


You want to discuss what?
about OO : comp.object or about functional programming:
comp.lang.functional?

 
Reply With Quote
 
 
 
 
Victor Bazarov
Guest
Posts: n/a
 
      03-14-2013
On 3/14/2013 4:32 PM, Andy Champ wrote:
> On 14/03/2013 11:33, Melzzzzz wrote:
>> On Thu, 14 Mar 2013 11:19:25 +0000, Andy Champ wrote:
>>
>>> I came across this in a job advert: "Experience of both functional and
>>> Object Oriented design and engineering is essential as the product is
>>> evolving from following a functional to an OO design discipline". I was
>>> a bit surprised at this - I know little of functional programming (in
>>> the Erlang/Haskell etc sense, which I assume is what they mean) but I'd
>>> thought it was a newer paradigm.
>>>
>>> This as a discussion doesn't really belong here - can anyone suggest a
>>> suitable newsgroup? I did look at comp.programming, but it doesn't look
>>> healthy.
>>>
>>> Andy

>>
>> You want to discuss what?
>> about OO : comp.object or about functional programming:
>> comp.lang.functional?
>>

>
> I want a beginner's guide to compare and contrast the two ways of
> working. I have a funny feeling that if I post to those two groups I'll
> start a flame war, so I'll pass. I take it there is no general SW
> engineering group anywhere.


Really?
You probably know better, so I'll take your word for it, but if it were
I looking, I'd try comp.programming or comp.software-eng.

> That said I've had some useful comments back from various people. I've
> never touched Lisp, and hadn't realised it was a functional language -
> my background is purely commercial, not academic.


Yet, your interest in comparing "the two ways of working" is most likely
purely academic, no? What profit can there be in comparing the two?
Once you've done one for some time, you're *unlikely* to be able to
switch to the other. I bet that from within each community "the other
side" always looks like the "dark side"... <chuckle>

V
--
I do not respond to top-posted replies, please don't ask
 
Reply With Quote
 
 
 
 
Rui Maciel
Guest
Posts: n/a
 
      03-17-2013
Chris Vine wrote:

> Nonsense. Most highly competent C++ programmers will know at least one
> functional language to passingly adequate level.


http://en.wikipedia.org/wiki/No_true_scotsman


Rui Maciel
 
Reply With Quote
 
Rui Maciel
Guest
Posts: n/a
 
      03-17-2013
Chris Vine wrote:

> So you assert


I don't assert anything. I've only pointed out that your argument is a
textbook case of a "no true scotsman" falacy.


Rui Maciel
 
Reply With Quote
 
Tiib
Guest
Posts: n/a
 
      03-17-2013
On Sunday, 17 March 2013 14:50:41 UTC+2, Chris Vine wrote:
> The only reasonable inference from your reference to the "no true
> Scotsman" fallacy was that you were putting yourself forward as the
> highly competent C++ programmer who provides the counter case.


It is difficult disagree with you that competent software developer has
to be savvy with several languages. Lets just count:

1) He needs to be able to prepare build environment, code repository
etc. Either with scripts or with tools integrated into IDE (involving
scripting IDE). Incompetent does such things manually.

2) Build and deployment systems are typically made with different sort
of scripts. Incompetent lets IDE to generate it and then whines when
strange things happen or some odd bogo-tool of his does not
integrate or deploy.

3) Various helpers that integrate programs or prepare data for those
or test them are often written as third sort of scripts. These things are
again sometimes done manually or not done at all by incompetent.

4) The compiled language itself in what the program is written is
usually entirely different from the ones above. Here incompetent tries
often to fix the shortcomings of his other tooling with various
unneeded bloat.

5) Modern times web browser is too usual target for UI, so there
comes another programming language Javascript (plus several markup
languages).

So it can't be said that one who does not know 5 languages is likely
kicking puppies too ... just that he can't likely deliver on his own and
needs help of others. I do not know English ... is it jackeroo or prentice
or how to name such guy.
 
Reply With Quote
 
Rui Maciel
Guest
Posts: n/a
 
      03-17-2013
Chris Vine wrote:

> "Most" is the kind of quibble that can come in handy!
>
> Really though, if you are highly competent at C++ I am surprised you
> do not know any functional language to some degree. You cannot do
> template metaprogramming without coming across things like recursion.


No one is forced to learn an entirely different programming language to
learn how to use a language feature which was already inherited from C.
Perhaps you are referring to the functional programming paradigm instead of
functional programming languages.


> As a side note, testing a programmer on recursion is a useful way of
> gauging his/her ability more generally in my experience. Also, those
> who struggle with recursion also seem to struggle with programming with
> threads. Possibly this is because both require you to hold more than
> one context in your mind at the same time.


In C++, and even in other languages such as C, recursion is frowned upon
because, contrary to functional languages, tail call elimination isn't
mandated. As a consequence, blindly using recursion with these programming
languages carries a danger of bursting the call stack, which tends to be
frowned upon.


Rui Maciel
 
Reply With Quote
 
Rui Maciel
Guest
Posts: n/a
 
      03-17-2013
Chris Vine wrote:

> No, I've only pointed out that it was certainly not.
>
> What perhaps you were trying to assert was that my proposition was so
> broad as, although logically falsifiable, in practice incapable of
> being so and therefore worthless. Or perhaps you were trying to assert
> that my proposition was so patently false as to amount to hand-waving.
> However, neither of those gives rise to the "no true Scotsman" fallacy.


I didn't asserted anything. Please stop claiming I did.


Rui Maciel
 
Reply With Quote
 
Stefan Ram
Guest
Posts: n/a
 
      03-17-2013
Rui Maciel <(E-Mail Removed)> writes:
>Perhaps you are referring to the functional programming paradigm instead of
>functional programming languages.


A competent C++ programmer needs to know one language: C++.

Insofar as functional programming is possible with C++,
he can learn it with C++. Insofar as it is not possible
with C++ he does not need to learn it.

Knowing another language can even mislead the programmer to
try to use idioms of that other language in C++, which might
not be idiomatic in C++. Some even claim that certain
perfect pieces of C++ code were written in bad style, because
it is deemed wrong or to be bad style in another language.

 
Reply With Quote
 
Rui Maciel
Guest
Posts: n/a
 
      03-17-2013
Paavo Helde wrote:

> One should not use anything in C++ blindly, the language is so full of
> undefined behavior that any such attempt will ultimately fail and
> hopefully rather sooner than later.
>
> However, for example if there appears to be a nice recursive function for
> navigating an hierarchical data structure and I know the depth of the data
> structure is limited in practice to some sane values, there is no reason
> why I should rewrite my function by hand and create a convoluted non-
> recursive version of it. Of course, the worst-case depth ought to be
> covered by unit tests for all needed target platforms.


You are absolutely right.


Rui Maciel
 
Reply With Quote
 
Rui Maciel
Guest
Posts: n/a
 
      03-17-2013
Stefan Ram wrote:

> A competent C++ programmer needs to know one language: C++.
>
> Insofar as functional programming is possible with C++,
> he can learn it with C++. Insofar as it is not possible
> with C++ he does not need to learn it.
>
> Knowing another language can even mislead the programmer to
> try to use idioms of that other language in C++, which might
> not be idiomatic in C++. Some even claim that certain
> perfect pieces of C++ code were written in bad style, because
> it is deemed wrong or to be bad style in another language.


Very true.


Rui Maciel
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Re: OO vs functional programming: what's a suitable newsgroup? Bart van Ingen Schenau C++ 9 03-18-2013 06:28 PM
Re: OO vs functional programming: what's a suitable newsgroup? Tiib C++ 7 03-17-2013 10:51 AM
Re: OO vs functional programming: what's a suitable newsgroup? Nick Keighley C++ 1 03-16-2013 10:29 PM
Re: OO vs functional programming: what's a suitable newsgroup? 88888 Dihedral C++ 14 03-16-2013 01:05 PM
Re: OO vs functional programming: what's a suitable newsgroup? Stefan Ram C++ 0 03-14-2013 01:49 PM



Advertisments