Lisp (and hence CLOS) is procedural rather than functional, like C or
Python.  It just has better support for untyped FP than most.

On Mon, Mar 21, 2011 at 6:47 PM, Kevin Wright <[email protected]>wrote:

> I fail to understand why Object-Oriented and Functional programming are so
> often portrayed as opposites.  Nothing could be further from the truth... if
> anything, the two paradigms are completely orthogonal.
>
> The real opposites here are imperative vs declarative programming, with FP
> being a subset of declarative programming.  Many languages (including Java)
> are able to support both imperative and declarative styles with varying
> degrees of ease.
>
> Object-Orientation works just fine in a purely functional context, and Alan
> Kay - who coined the term - did his first experiments in the area of OO
> building on top of LISP...
>
> CLOS gives a clear example that FP doesn't mean not-OO.  Or if you prefer
> something closer to home, JodaTime is a very good example of functional
> design.
>
> So does avoiding OO in the first semester/year/whatever mean that it's
> being abandoned in favour of pushing FP?   Absolutely not!
> It just means that the lecturers recognise it to be a paradigm more suited
> to larger composition and to system level design, problems that aren't
> really appropriate for teaching someone's first steps in programming.  For
> smaller-scale work, functional composition is far easier to teach and
> understand,
>
>
> On 21 March 2011 17:48, Carl Jokl <[email protected]> wrote:
>
>> It does look like a high degree of pet subject enthusiasm on the part
>> of the person running the course. As much as Java is mentioned in the
>> article, Java did not invent object orientation and there are many
>> other Object Oriented languages or languages which have embraced
>> object orientation after their initial invention. I don't see
>> functional programming being the silver bullet which makes all Object
>> Oriented systems redundant.
>>
>> Is what is being suggested here that data and functionality should be
>> kept separate for the greater good? I can see some of what is being
>> suggested but I don't believe that having data in special data
>> structures and functions to work on the data automatically makes a
>> system more modular and reusable. The code in the function may expect
>> data in a very problem specific way or the function may perform
>> functionality which is so specific to a given problem that it may not
>> be any more reusable than code on an object where the data and code
>> are combined together.
>>
>> Having data and functionality separate is somewhat the case with C
>> isn't it. C however does have some state by virtue of static variables
>> which can point to some other kinds of state holding structures.
>>
>> I don't know. Some of these food fights and almost dogmatic talk of
>> the one enlightened way of doing things can make me feel fed up with
>> the whole programming community. I always end up doing the wrong thing
>> according to someone.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "The Java Posse" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> For more options, visit this group at
>> http://groups.google.com/group/javaposse?hl=en.
>>
>>
>
>
> --
> Kevin Wright
>
> gtalk / msn : [email protected]
> <[email protected]>mail: [email protected]
> vibe / skype: kev.lee.wright
> quora: http://www.quora.com/Kevin-Wright
> twitter: @thecoda
>
> "My point today is that, if we wish to count lines of code, we should not
> regard them as "lines produced" but as "lines spent": the current
> conventional wisdom is so foolish as to book that count on the wrong side of
> the ledger" ~ Dijkstra
>
>  --
> You received this message because you are subscribed to the Google Groups
> "The Java Posse" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/javaposse?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups "The 
Java Posse" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.

Reply via email to