Well, someone need to balance the force ... so let me take on the other
side.
Functional languages has been around since 1950's ... they never become big
enough to take on procedural/object oriented
languages and I think there are several reasons why

1.  function language syntax look too much like mathematical equations, and
most people dont like math.  Comparing the following code
    erlang: [X + 1 || X <- L].
    java:    for(X : List1) List2.add(X+1);
    You can argue but I think most people will find the 2nd code fragment
easier to understand.
2. Pure function language such as Erlang does not have loop (for, while
...).  Instead, you have to use recursion. For average
    Joe, recursion is hard.
3. Yes function language code tend to be concise, but sometimes people tend
to be tooooo concise.  I have seem lots Erlang code
    with single character function name and parameter f(X, Y) #...@%$@#%.
 Yes you can also write bad code in Java, but thanks to
    its chattiness, people tend not to write short class/function/parameter
name.
4. Function language are stateless and immutable.  Although that is very
good thing but can be challenging for new developer.
5. Tooling.  One thing I hate about coding Erlang is error message that does
not tell you anything, and the lousy debugger.  After using java and eclipse
    for so many years it is like going back to stone age.

Recently I have a new job.  Although interview was all about Java, I was
asked to work on Erlang and MongoDB.
(It is partially my fault since I mention I was learning Scala :), but I
think they also have problem finding people know or
willing to learn function language.  (I picked it up pretty quickly thanks
to a Scheme course I took 15 years
ago when I was in school).

Personally I think everyone should at least take a look at functional language
since it allows you to see programming
from a totally different perspective.  However, I think it is silly to
choose language mainly based on how functional it is or
how much less boiler plate you have to write.  As far as I see functional
languages are still too nerdy for most people and
probably remain mostly in telecoms and those of googles and amazons.  Scala,
being the hybrid and seems to get the best of
both worlds, might finally bring both worlds together, at least we can hope
:)

Thanks

On Mon, Jul 12, 2010 at 10:25 AM, Kevin Wright <[email protected]>wrote:

> Imperative/Functional/Declarative/Object-Oriented programming are all
> paradigms, not languages.
>
> If you can handle the boilerplate, then any of these techniques are usable
> in C
> (Microsoft's COM library is one such example of object-oriented code in
> pure C - I never said it had to be pretty!)
>
> Many of us are already writing "functional" code in Java, just check out
> Google Collections, or JodaTime.  What changes is not your language, but the
> way you think about problems.
>
> Of course, chances are you'll then reach a stage of frustration with
> single-abstract-methods, and having to write getters on an immutable object
> just to keep some 3rd party library (i.e. Spring) happy, and marshalling
> exceptions through styles of abstraction that don't meet their original
> design purpose.  That's the stage when you start looking around for a
> language that better fits your heightened awareness.
>
> Once again, functional programming does NOT force you to move away from
> Java (or any other favoured language).  It's often just easier if you do...
>
>
> On 12 July 2010 15:06, Wildam Martin <[email protected]> wrote:
>
>> On Mon, Jul 12, 2010 at 14:28, Carl Jokl <[email protected]> wrote:
>> > As much as I have favourites I am not prepared to cut of my nose to
>> > spite my face or make myself a martyr by sticking to just one platform
>> > and refusing to use anything else.
>>
>> It is not, that I am refusing the rest, but I definitely can't get an
>> expert in all. Rather likely I either could know many languages a
>> little or one really good. Of those two extremes (if I had to choose
>> one or the other) I would prefer the latter.
>>
>>
>> > Not that many people get to do exactly what they enjoy the most. A lot
>> > of people, particularly now in a recession, will take what work they
>> > can get.
>>
>> Of course.
>>
>>
>> > I like to hope that the chances of Java and .Net and C/C++ dying in
>> > rapid succession is highly unlikely.
>>
>> I also think that all these will be around for a good while and
>> probably when Java gets the COBOL status probably .Net will become
>> either. ;-)
>>
>>
>> > I was also flirting with the idea of getting into Games development.
>> > Nothing may come of that but that space is dominated by C++.
>> > If I did decide I wanted to go into that field I doubt I would be
>> > doing much Java.
>>
>> Of course, it depends on the job where the focus is. A driver
>> developer also wouldn't be THE Java developer.
>>
>> On the other hand, some people don't stop to argue that Java is only
>> for big enterprises... - people spreading out such phrases contribute
>> to the "Java is dying myth"... >-(
>>
>> --
>> Martin Wildam
>>
>> --
>> 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%[email protected]>
>> .
>> 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%[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