Something I wanted to say in the other thread but didn't had to do
with the real area I think has not moved on in software development
and is where the real revolution needs to take place.

Mapping user requirements to code. This takes time and is (for
non-trivial domains) very complex.

Of course the choice of programming language can help but thats no guarantee.

Its interesting that in recent years there's been a move to make the
code look like English (almost). I believe this has roots in Knuths
literate programming ideas. I know alot of people who use Ruby like to
write DSLs and that, they say, helps readability.

Functional programming almost seems to be the reverse of this trend.
Its completely alien to the user requirements (I'm saying this based
on zero experience in the real world so please state I'm wrong).

In my day-to-day coding in Java, I find that OO does great for 90% of
the work I do. Mapping user requirements to readable code is
challenging but something I hold dear and a goal I am for.

Functional programming seems to be useful when I come across
collection manipulation. There's a fair bit of that but its low-level
stuff, down deep under the abstraction layers created using OO.

Thats why FP didn;t get much traction outside academia - it doesn't
solve (enough of) the problems in the real world.

A lot of low-level algorithmic code which might be perfect for FP will
get written I have no doubt but will need to wrapped in an OO layer
for others to use. By then of course, the user won't care if it uses
FP under the covers or not. Someone else mentioned FP being like AOP
in that regard.

Rakesh

On Wed, Jul 14, 2010 at 4:45 PM, twitter.com/nfma
<[email protected]> wrote:
> Well, I'm not saying that OO doesn't make your code simpler and with better
> reuse but when you google "advantages of OO" those advantages are comparing
> OO with what?
> Also, I'm not saying that FP is better, I've only stated what were the
> benefits I've got when I applied some FP concepts on top of my usual OO
> programming.
> Though I have to say that there are some caveats... one of them is the
> difference between "tell, don't ask" of OO and "ask, don't tell" of FP. Java
> is an OO language and retrofitting some FP concepts on top, makes you wonder
> if you're really doing the right thing.
> On 14 July 2010 17:36, Jan Van Besien <[email protected]> wrote:
>>
>> Funny... If you google "advantages of OO", you'll find almost the same
>> kinds of arguments ;-)
>>
>> Jan
>>
>> On Jul 14, 4:29 pm, "twitter.com/nfma" <[email protected]>
>> wrote:
>> > Here are some benefits (from the top of my head) I've got from pushing a
>> > more functional style to my java coding:
>> >
>> > 1 - Referencial transparency (in most areas of the code)
>> > 2 - Simpler code (smaller classes, better separation of state and
>> > behaviour
>> > even if encapsulated inside an object)
>> > 3 - Simpler tests
>> > 4 - Better code reuse
>> > 5 - More predictability and easier to reason about the code execution
>> > 6 - Easier to scale, improve performance
>> >
>> > On 14 July 2010 16:16, Casper Bang <[email protected]> wrote:
>> >
>> >
>> >
>> > > I mean, we have tricks such as tail-recursion to optimize FP but at
>> > > the end of the day, FP ends up executing on a turing-machine. So isn't
>> > > FP more about expressiveness and correctness than performance? Perhaps
>> > > multi-cores will change this but don't think it has happened yet.
>> > > We'll always need number-crunching, but the most interesting stuff at
>> > > the systems level comes from side-effects (I/O, screen etc.).
>> >
>> > > On Jul 14, 4:03 pm, Kevin Wright <[email protected]> wrote:
>> > > > Well, one could argue that copy-on-write filesystems are all about
>> > > > persistent immutable structures.
>> > > > A cornerstone of most FP patterns nowadays.
>> >
>> > > > (no, not "persistent" as in Hibernate, but this kind of persistent:
>> > >http://en.wikipedia.org/wiki/Persistent_data_structure)
>> >
>> > > > On 14 July 2010 15:00, Casper Bang <[email protected]> wrote:
>> >
>> > > > > > Functional level programming is very useful at the system level
>> > > > > > implementations.
>> >
>> > > > > Hmm... because many kernels and device drivers make use of FP?
>> >
>> > > > > --
>> > > > > 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]<javaposse%2bunsubscr...@googlegroups­.com>
>> > > <javaposse%2bunsubscr...@googlegroups .com>
>> > > > > .
>> > > > > For more options, visit this group at
>> > > > >http://groups.google.com/group/javaposse?hl=en.
>> >
>> > > > --
>> > > > Kevin Wright
>> >
>> > > > mail/google talk: [email protected]
>> > > > wave: [email protected]
>> > > > skype: kev.lee.wright
>> > > > twitter: @thecoda
>> >
>> > > --
>> > > 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]<javaposse%2bunsubscr...@googlegroups­.com>
>> > > .
>> > > 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.
>>
>
> --
> 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