Hi,

On Tue, Jul 13, 2010 at 1:34 PM, Wildam Martin <[email protected]> wrote:

> On Tue, Jul 13, 2010 at 06:29, Oscar Hsieh <[email protected]> wrote:
> > Well, someone need to balance the force ... so let me take on the other
> > side.
>
> Thanks, I already somehow got the impression being quite the only
> person here that sees some of the currently hyped (real programming)
> languages and paradigms from a more critical point of view.
>
> *+1 on this...*
>


>
> > 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.
>
> Of course. I remember school time where one of my collegues' sport
> when we did C++ was to write things as one-liners, that others wrote
> in ten lines. He was very smart but the problem is: The code should be
> readable by as many people as possible. If just the 5 smartest people
> of the world are understanding it, then you have to pay those smart
> people to maintain the code which is expensive.
>
> * I assume that both will give me no headaches afterwards
(post-implementation..:)..)..You get some functions that use that .for e.g.
type-casting and then voila, you have so many headaches to take care
of...:(..

In my opinion, measuring such scenarios will decide my support...I like C++
more I guess..*

>
> > 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.
>
> Recursion is often a smart - often even the easier method to solve a
> programming problem, but it also creates a huge stack. I had cases
> where I ran out of memory because the recursive solution was consuming
> up the memory. The non-recursional solutions can be harder to code but
> less resource hungry at runtime.
>


> *Yes, me too..But is this problem language-specific?.,..*
>


>
> > 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) #...@%$@#%.
>
> Oh man, yes, you make me remember things that were deeply burried in
> the last corners of my brain...
> To find the shortest meaningful name was a challenge. But I think that
> helped me when trying - before exams - to put as most information as
> possible into my TI-74 with it's 8KB RAM only. ;-)
>
> *No comments on this as I dont know Erlang.*
> > Yes you can also write bad code in Java, but thanks to its
> > chattiness, people tend not to write short class/function/parameter name.
>
> In practice IDE's are doing autocompletion and NetBeans either does
> (quite good) parameter guessing so even very long variable names are
> not really an issue these days. Reading a long functional expression
> on the other hand with longer function and variable names (still) is.
> *True, but they also give unexpected errors and have their own
> implementation of the languages..including error debugging..So I am not sure
> if we can measure that on a single parameter....
> *



> BTW: I met people arguing e.g. the much of code to write for example
> for "MyCoolClass myCoolClass = new MyCoolClass();"
> NetBeans offers the code templates feature where you just write "newo"
> and type tab. While typing "MyCoolClass" it automagically writes that
> also in parallel after the new keyword. So the amount of writing can
> be really reduced which means: You do not really need to write so much
> code and still get the readability - thanks to modern IDEs. And the
> same people then still argue why the hack writing this two times, but
> hey, there are cases where you write "MyCoolClass myCoolClass = new
> MyMoreSpecificCoolClass();" - so makes sense not rationalize, isn't
> it?
> *Right, I agree to this..We have issues in name specifications all the
> time..I wonder if Java could come up with sense-making specifications  as
> well in their coding conventions*
>
> > 4. Function language are stateless and immutable.  Although that is very
> > good thing but can be challenging for new developer.
>
> Immutability (in the meaning of the word) etc is also a topic to learn
> in Java and can be done with plane Java also, if you just want
> immutable objects. Of course there is an implementation difference and
> for the functional approach it's by design immutable. And: There are
> plenty of use cases where mutability makes much sense - and of course
> then it can be challenging - for the new developer and either for the
> experienced one.*
> *
> *Most of the time, the requirements that we get need mutable
> objects..Thus, we need to use the latter all the time..I would question the
> use of immutable objects here..Why and how do I use that unless very
> necessary?*
>
> > 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.
>
> I feel that for designing web applications - the NetBeans already had
> the visual designer for JSF and dropped the support for it in 3.8 - I
> hope it will be back (even if it had flaws it is better than nothing).
> *Well, that depends on the demand and what those guys have in mind..*
>


> Although the Java debugger is already very good, I still miss the
> feature from the VB debugger that I could completely change the code
> and set the execution point to whereever I wanted during run of the
> program. I miss in particular the option to set the execution point
> e.g. back to the beginning of a loop or so.*
> *
> *you mean like goto label that we have in C.Isnt that bad coding
> practise..Though I found that usefull...*
>
> > 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 guess they don't expect anyone have experience with those so they
> even don't ask to avoid fear.
> *never agreed better on this. Boy that can be quite a ride..I actually
> heard this the first time..:)...*
>
> > 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.
>
> Yes, of course. However, some people want to talk me into trying some
> new stuff to learn the new perspective although I already have - even
> if it is very old nearly forgotten experience. Anyway there were
> reasons (basically those you mentioned) why I decided not to remain
> with those languages.
> *
> I would like to know those reasons here..Again, why is that some people
> prefer functional languages while others prefer the other category..Note
> that the experiences change too and the leanring pattern also..Estimating
> the future of a language based on past experiences for people with different
> amounts of experience and expertise, can definitely cause issues in our
> accuracy...*
>


> > 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.
>
> Yes, focus should be considerations like (in no particular order):
>  - Interoperability with other stuff
>  - ease of use and learn (it is needed that it is easy for new
> developers to get on board)
>  - stability and continuity of the language
>  - bug resistance (yes, with some languages it is easier to write buggy
> code)
>  - tools (of course)
>  - ...
> *ease of learning and inheritance of change, doesnt that affect the use of
> a language, and thus its future..*
>
> > 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
>
> Having both options in Scala maybe increases the options on how you
> could write bad code. ;-)
>
> However, I learned here in this group that the functional approach
> makes sense for parallel programming in the way that it avoids thread
> overlapping issues by the constraint of immutability for example.
>
> And Scala for sure is good stuff - I read performance tests where it
> ranged closely behind C++ being even faster than Java.
>
> Anyway, although there is a lot of good new stuff, I do see people
> expecting those stuff to be the overall solution for all problems  -
> even for the hunger in the 3rd world...
>
*    +1 on this*

--
> Martin Wildam
>


>  * Thanks,
> *
>
*    JD*

> --
> 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