Discussions

News: Advice from A JUG leader II - debate breakdown

  1. Advice from A JUG leader II - debate breakdown (9 messages)

    The arguments against learning a new language or using a new language in production were probably the same back in the late nineties when Java was still new. People surely came to the defense of C and C++ saying that we didn’t need a new language then. It’s progress and subsequent resistance to change, and in the technology industry change can sneak up on you pretty quickly if you aren’t paying attention.

    Read the full article:

    Advice From A JUG Leader II - Debate Breakdown/

  2. Revisionist history?[ Go to top ]

    Frank -

    People surely came to the defense of C and C++ saying that we didn’t need a new language then.

    First, Java addresses a much different space than C/C++. Second, while I can appreciate why a few developers would defend C, C++ is such a horrifically ugly baby that very developers (besides Stroustrupp) defended it. You'd be far closer if you pointed out Smalltalk instead, since everything Java has ever done was done first and better in Smalltalk (as all six surviving Smalltalk programmers will point out to you).

    Peace,

    Cameron Purdy | Oracle

    (Working for Oracle but expressing my own opinions.)

  3. Cameron -

    Frank -

    Who is Frank?  :)

    People surely came to the defense of C and C++ saying that we didn’t need a new language then.

    First, Java addresses a much different space than C/C++. Second, while I can appreciate why a few developers would defend C, C++ is such a horrifically ugly baby that very developers (besides Stroustrupp) defended it. You'd be far closer if you pointed out Smalltalk instead, since everything Java has ever done was done first and better in Smalltalk (as all six surviving Smalltalk programmers will point out to you).

    To be Frank frank, I remember when Java was just getting 'big', and it's no secret that many that took up Java were from the C++ world.  The point I was trying to make is that communities tend to cling to what they have as their identity (Java in this case).  I felt that some of the reaction to my article was based more on that resistance to change and less on any genuine positive feelings towards the Java language. 

    I was just starting my career when Java became popular, but I do have some memory of some sticking with C++ instead of branching out to Java right away.  Call it 'loyalty to the community' instead of 'defense of the language' and the result is essentially the same.  It's an emotional attachment more than one based on the merits of the language.

    Dave

  4. I took for granted my rapid progression from Pascal to 68000 assembly to C to C++ to Java. Coders I knew who resisted new languages just coludn't "get" procedural or OO languages. Those pre-Java languages were easy to leave because they only had a few libraries. What locks in Java are the tens of thousands of frameworks available to it. What's sad is so many coders who learned J2ee a dozen years ago or Spring half a dozen years ago don't want to update their Java skills.

  5. Programming language evolvement[ Go to top ]

    To be honest, I'm afraid what for instance lambda expressions would have in store for Java. Yes very convenient and powerful when used correctly, but devastating when abused by less capable programmers. I think some limitations are actually protecting us from many bad practises. With less tricks you just have to work harder on your design and architecture to maintain elegance through simplicity, and that's not a bad thing.

    And I personally really don't care if I have to use Java 5, 6 or 7 (but I can't live without generics). The rest is mostly syntactic sugar, and any limitations in API normally is countered by having common components in the codebase or using one of the many open source projects available.

    Is a better programming language in the academic sense also better when used by the average programmer?

  6. Programming language evolvement[ Go to top ]

    To be honest, I'm afraid what for instance lambda expressions would have in store for Java. Yes very convenient and powerful when used correctly, but devastating when abused by less capable programmers. I think some limitations are actually protecting us from many bad practises. With less tricks you just have to work harder on your design and architecture to maintain elegance through simplicity, and that's not a bad thing.

    And I personally really don't care if I have to use Java 5, 6 or 7 (but I can't live without generics). The rest is mostly syntactic sugar, and any limitations in API normally is countered by having common components in the codebase or using one of the many open source projects available.

    Is a better programming language in the academic sense also better when used by the average programmer?

  7. RE: Programming language evolvement[ Go to top ]

    To be honest, I'm afraid what for instance lambda expressions would have in store for Java. Yes very convenient and powerful when used correctly, but devastating when abused by less capable programmers. I think some limitations are actually protecting us from many bad practises. With less tricks you just have to work harder on your design and architecture to maintain elegance through simplicity, and that's not a bad thing.

     


    I've heard this opinion shared by more than a few people over the past couple years since they were announced.

    Is a better programming language in the academic sense also better when used by the average programmer?

    I think this is the question where things get interesting.  I think at this point, from what I'm seeing, there aren't a ton of average programmers getting deep into some of the languages I believe you are referring to (Scala is probably the most obvious).  Is it that the more advanced programmers flock to these languages becuase they are capable of using them, and that more average engineers shy away due to either fear of the larning curve or lack of curiosity?  Not sure - perhaps both?  I don't think a superior set of tools in the hands of an average engineer are going to make that engineer more effective until he/she really learns how to use them properly. 

  8. Dave, the base of your affirmation is there are tons of BETTER languages out there better than Java and only lazy people don't make the effort to learn... but the answer is NOT.

    First of all, a non-static typed language cannot replace a static typed language, I'm not alone many people think so. Dynamic languages are fine for configuration and awesome for code generation and similar tasks and no much more, of course you can do the same as a static typed lang, ok, if you can afford so much   lost of control.

    This statement says goodbye to many languages: Groovy, JavaScript, Ruby, PHP...

    The JVM ecosystem is enourmous and rich, hard to say goodbye just for the sake of "change".

    Finally the only OOP, JVM base able to "replace" Java is Scala, and I'm not sure about it's going to happen, when Java 1.8 (Java8) is around the corner with closures and functional features.

    Maybe is more interesting to learn "NEW" ecosystems like Android and iOS (yes it requires a new lang Objective C) instead of trying to write the same "ifs" in more ways.

     

  9. Dave, the base of your affirmation is there are tons of BETTER languages out there better than Java and only lazy people don't make the effort to learn... but the answer is NOT.

    Jose - There is a bit more to this than whether or not a language is 'better'.  Java will certainly be better for certain things and worse for others.  And I'd never say there are 'tons of better languages', rather there are an increasing number of languages that tend to have greater appeal to engineers than Java does.  I'm not saying that people who don't want to learn new languages are lazy.  I am saying that if you are a career-minded individual that understands supply and demand for skills, learning a new language in today's software landscape is a wise move.

    This statement says goodbye to many languages: Groovy, JavaScript, Ruby, PHP...

    I see very little interest in Groovy in my circles (could be geographic thing, not sure).  I rarely hear good things about PHP from anyone.  I think JavaScript is the comeback player of the year, making huge gains with members of the Java community and the overall software community.  Ruby also seems to be moving forward in adoption, and I personally don't expect that to change much.

    The JVM ecosystem is enourmous and rich, hard to say goodbye just for the sake of "change".

    I certainly wasn't suggesting the JVM ecosystem was in any danger.  I would say the JVM ecosystem is arguably at its strongest point due to language variety being welcomed by the community.

    Finally the only OOP, JVM base able to "replace" Java is Scala, and I'm not sure about it's going to happen, when Java 1.8 (Java8) is around the corner with closures and functional features.

    I don't know if Scala will 'replace' Java either, way too early to tell.  I think the term 'around the corner' is part of the reason you see former Java pros on the alternative language path - they perhaps have been waiting too long for Java to adopt their wishes.  I've said this before - Java doesn't take changes lightly, which is great for stability, but certainly not as popular with developers who want features they see in other languages.  It's the 7 year itch.

    Maybe is more interesting to learn "NEW" ecosystems like Android and iOS (yes it requires a new lang Objective C) instead of trying to write the same "ifs" in more ways.

    Interesting is one thing, but I'm also talking about demand in job markets.  Even if Java provides you some level of stability, career focused engineers need to realize that their skills could be transferred to some more 'in demand' technologies which will benefit them in more ways than one.  Supply/demand and marketability were some of my key points in these articles, and readers seem to skip that part.

     

     

  10. Dave when I said JavaScript I was thinking in server (Node.js), in client JavaScript is here for a while and wil be here for many years to come (I learned JS many years ago).

    If the market is moving through Groovy or Ruby fine, maybe I would switch, but in my opinion I'm not going to satisfy my customers in the same quality and robust level I do in Java or any other decent OOP JVM based statically typed lang,  I'm not here just for the money, yes other scripting languages with increasing demand could be give more money just because there is no very much people in boat but I don't think I'm going to deliver better soft. 

    Scala for me is the only real alternative to Java, yes interesting to learn for a Java hardcore developer, but I think it has lost its opportunity.