File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Meaningless Drivel and the fly likes Which New Programming Language To Learn Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of EJB 3 in Action this week in the EJB and other Java EE Technologies forum!
JavaRanch » Java Forums » Other » Meaningless Drivel
Bookmark "Which New Programming Language To Learn" Watch "Which New Programming Language To Learn" New topic
Author

Which New Programming Language To Learn

Gregg Bolinger
GenRocket Founder
Ranch Hand

Joined: Jul 11, 2001
Posts: 15286
    
    6

I'd like to start learning a new programming language. I have a bit of a crutch when it comes to the JVM. So I'd prefer some suggestions to languages that aren't direct JVM languages (Lift, Closure, etc). Any advice and it would be nice if you would include the why.


GenRocket - A Test Data Generation Platform
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 60041
    
  65

Ignoring your non-JVM clause, I'd suggest Scala. Seems to have much more of a buzz than any other new language to come along recently.

And of course, I always recommend learning JavaScript really well -- and I mean really well; not just JavaScript for the browser. I think it's going to be a big player on the server as well.


[Asking smart questions] [Bear's FrontMan] [About Bear] [Books by Bear]
Bert Bates
author
Sheriff

Joined: Oct 14, 2002
Posts: 8764
    
    5
Before I read Bear's answer, my answer was also JavaScript - and like Bear said - the real, gnarly, object prototype, functional programming, closures-rich, swpa, 10,000 lines of JavaScript kind of JavaScript.

Scala... meh.

How about other technologies? Neo4j and Akka seem pretty interesting and potentially very useful.


Spot false dilemmas now, ask me how!
(If you're not on the edge, you're taking up too much room.)
Paul Clapham
Bartender

Joined: Oct 14, 2005
Posts: 18109
    
    8

How about Erlang?

I say that because I got a book about Erlang (won it on the Ranch) and it looked like an interesting language. However I haven't got around to learning it yet (I did read the book, twice) because I don't have a project I want to do which could make good use of it. Which brings me to my point: do you have a project in mind to implement in this new language? I've found that learning a new language is useless unless I do something of a fairly decent size in it.
Pat Farrell
Rancher

Joined: Aug 11, 2007
Posts: 4634
    
    5

Javascript? meh. I know, I know, its used everywhere. Its good for your professional career. But it is, IMHO, a really crappy language that was hacked out in a weekend and 15 years later we are stuck with it.

How about Google's GO? That looks cool for its problem space.

For a complete change of pace, I suggest spending $25 and buying an Arduino board, then learn how to program it. It uses an open source, c-like language to do embedded programming. A completely different kind of thinking than writing large Java systems.
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 60041
    
  65

Pat Farrell wrote:Javascript? meh. I know, I know, its used everywhere. Its good for your professional career. But it is, IMHO, a really crappy language that was hacked out in a weekend and 15 years later we are stuck with it.

Which means you don't know much about the language. Maybe it should be your next language.

Saurabh Pillai
Ranch Hand

Joined: Sep 12, 2008
Posts: 498
I think handheld devices are becoming more popular for day to day activities. Doesn't that mean, we should learn iOS, Android type of languages?
Pat Farrell
Rancher

Joined: Aug 11, 2007
Posts: 4634
    
    5

Bear Bibeault wrote:
Which means you don't know much about the language. Maybe it should be your next language.


Not willingly. I've even bought a really good book by a great writer named @bear and I can't stand even reading about it.

Reminds me too much of Perl. Obscure syntactical shortcuts that make the code too concise. One doesn't have to be as verbose as Cobol, but
the style of Iverson's APL or Perl leave me cold.
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 60041
    
  65

Pat Farrell wrote:
I've even bought a really good book by a great writer named @bear


Reminds me too much of Perl. Obscure syntactical shortcuts that make the code too concise.

I detest Perl for that very reason; I call it the "write-only" language. I don't see that in JavaScript, however. What makes JavaScript more concise than something like Java isn't obscure syntax, but rather its use as a functional language. For someone coming from OO, that can be a bit of a bump at first -- it was for me -- but you can write JavaScript in the imperative style as well.

I think you'd despise Scala.
William P O'Sullivan
Ranch Hand

Joined: Mar 28, 2012
Posts: 860

COBOL.

Not taught anymore. Current programmer base is dwindling due to natural causes, retirement etc.

Banks, Utility companies will be paying top, top $$$ very soon for even general maintenance.

WP
Gregg Bolinger
GenRocket Founder
Ranch Hand

Joined: Jul 11, 2001
Posts: 15286
    
    6

I've decided to go the JavaScript route. I agree that it is only going to get bigger and I'm in it daily anyway. So it works out great. I've ordered "Javascript The Good Parts" and I also have "Secrets of the JavaScript Ninja" and "HF JavaScript". So I should be set.
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 60041
    
  65

I'd also recommend some books on server-side JavaScript -- I'm not sure what the good ones are yet; that's an area I need to spend some time investigating. So much to learn!
Gregg Bolinger
GenRocket Founder
Ranch Hand

Joined: Jul 11, 2001
Posts: 15286
    
    6

Bear Bibeault wrote:I'd also recommend some books on server-side JavaScript -- I'm not sure what the good ones are yet; that's an area I need to spend some time investigating. So much to learn!


I agree. I have HTML5 in Action and it has a chapter that uses Node.js which is basically the real option for server side JavaScript right now. I'll just start there.
Gregg Bolinger
GenRocket Founder
Ranch Hand

Joined: Jul 11, 2001
Posts: 15286
    
    6

Saurabh Pillai wrote:I think handheld devices are becoming more popular for day to day activities. Doesn't that mean, we should learn iOS, Android type of languages?


Generally, I agree. But there are a couple of reasons I don't care to dwell on those right now:

  • I have already written iPhone apps.
  • Android is Java
  • Learning iOS is learning a platform, not a language. Learning Objective-C would be better for me considering what I'm looking to do.
  • Bear Bibeault
    Author and ninkuma
    Marshal

    Joined: Jan 10, 2002
    Posts: 60041
        
      65

    Manning has Node.js In action available via MEAP, but I'm not sure if it's any good or not yet. I have the MEAP, now I just need the time to read it!
    Gregg Bolinger
    GenRocket Founder
    Ranch Hand

    Joined: Jul 11, 2001
    Posts: 15286
        
        6

    Bear Bibeault wrote:Manning has Node.js In action available via MEAP, but I'm not sure if it's any good or not yet. I have the MEAP, now I just need the time to read it!


    I'll probably hold off on Node.js in that depth for the time being. More interested in digging deep into the language right now.
    Bear Bibeault
    Author and ninkuma
    Marshal

    Joined: Jan 10, 2002
    Posts: 60041
        
      65

    Your feedback on the the Ninja book in that regard would be great. Chapters 3 through 7 are intended to give just that "next level" view of understanding the language.
    Gregg Bolinger
    GenRocket Founder
    Ranch Hand

    Joined: Jul 11, 2001
    Posts: 15286
        
        6

    Also, I'm probably cheating a bit by picking JavaScript because I do use it daily. However, over the past year it has been in the form of jQuery primarily. I also don't feel that I ever moved much past the DOM API with JavaScript's usage. So I'm excited to get into the heart of it all and really get it.
    Bear Bibeault
    Author and ninkuma
    Marshal

    Joined: Jan 10, 2002
    Posts: 60041
        
      65

    Understanding JavaScript well, especially its use as a functional language, will actually help you write much more effective jQuery code as well.
    Gregg Bolinger
    GenRocket Founder
    Ranch Hand

    Joined: Jul 11, 2001
    Posts: 15286
        
        6

    Bear Bibeault wrote:Your feedback on the the Ninja book in that regard would be great. Chapters 3 through 7 are intended to give just that "next level" view of understanding the language.


    Sure. I got to Chapter 5 last night. Closure's have always dumbfounded me a bit so excited to get into that. 3-4 were great and I learned a lot. So I'm enjoying it thus far.
    Bear Bibeault
    Author and ninkuma
    Marshal

    Joined: Jan 10, 2002
    Posts: 60041
        
      65

    Cool. I'm currently making a lot of improvements to chapter 5 (more diagrams, for one thing!), which won't appear until the next MEAP update. So if you have feedback on it, get it to me and it could help make the chapter even better.
    Pat Farrell
    Rancher

    Joined: Aug 11, 2007
    Posts: 4634
        
        5

    William P O'Sullivan wrote:COBOL.
    Not taught anymore. Current programmer base is dwindling due to natural causes, retirement etc.


    As an undergraduate 40 years ago, the CS majors could not take COBOL for credit.

    Being the last blacksmith in town is very profitable.
    Pat Farrell
    Rancher

    Joined: Aug 11, 2007
    Posts: 4634
        
        5

    Bear Bibeault wrote:I think you'd despise Scala.


    I got a good book on Scala too. Got it because Java can't scale to multiple processors in a world of 8 core desktops and quad core cell phones.
    I've only gotten a few chapters into it.

    Bear Bibeault
    Author and ninkuma
    Marshal

    Joined: Jan 10, 2002
    Posts: 60041
        
      65

    I've about halfway through Programming in Scala, and it's a really good book.

    But the language itself can be confounding. A lot of the book goes like this:
  • Here's the very readable version of doing something-fratz.
  • After applying a few shortcuts, here's the somewhat readable but compact way of doing something-fratz.
  • After applying a few more, here's the totally unreadable way of doing something-fratz in 3 characters.

  • Yeah, I'm exaggerating a bit, but Scala definitely seems like the sort of language you need to use daily to even begin to grok.
    Pat Farrell
    Rancher

    Joined: Aug 11, 2007
    Posts: 4634
        
        5

    Bear Bibeault wrote:Yeah, I'm exaggerating a bit, but Scala definitely seems like the sort of language you need to use daily to even begin to grok.


    I think so too from my reading. Part of it has to be that its functional, and my brain doesn't think about programming functionally. But we have reached the limits of traditional programming, they just don't support modern massively parallel processing. We need to be able to have normal engineers develop this stuff, without needing the Ranch's expert Henry Wong.
    Paul Anilprem
    Enthuware Software Support
    Ranch Hand

    Joined: Sep 23, 2000
    Posts: 3198
        
        2
    Wonderng why no one mentioned Python. It seems to be in good demand in the job market these days (if that is your criteria to pick a language to learn).


    Enthuware - Best Mock Exams and Questions for Oracle/Sun Java Certifications
    Quality Guaranteed - Pass or Full Refund!
    Gregg Bolinger
    GenRocket Founder
    Ranch Hand

    Joined: Jul 11, 2001
    Posts: 15286
        
        6

    Paul Anilprem wrote:Wonderng why no one mentioned Python. It seems to be in good demand in the job market these days (if that is your criteria to pick a language to learn).


    Python is a great tool language. By that I mean it is good at doing grunt work elegantly. Beyond that, I'm not so sure it offers anything unique. It also would be quite difficult for me to find a good project to base my learning on.
    Sumit Bisht
    Ranch Hand

    Joined: Jul 02, 2008
    Posts: 329

    Gregg Bolinger wrote: It also would be quite difficult for me to find a good project to base my learning on.

    There are tons of open source projects in python. The popular third party libraries also get updated. It is quite similar to Ruby, but the community is not as extroverted as the ruby crowd.
    Also, the functional constructs are way easier to grasp than in scala.
    Mohamed Sanaulla
    Saloon Keeper

    Joined: Sep 08, 2007
    Posts: 3054
        
      33

    Once you are done with JavaScript Ninja and Good Parts, you might want to look at Single Page Webapps book by Manning. Frameworks (do we call them frameworks?) like Knockout, Backbone and others like them are kind of getting popular.


    Mohamed Sanaulla | My Blog
    dennis deems
    Ranch Hand

    Joined: Mar 12, 2011
    Posts: 808
    Gregg Bolinger wrote:
    Paul Anilprem wrote:Wonderng why no one mentioned Python. It seems to be in good demand in the job market these days (if that is your criteria to pick a language to learn).


    Python is a great tool language. By that I mean it is good at doing grunt work elegantly. Beyond that, I'm not so sure it offers anything unique. It also would be quite difficult for me to find a good project to base my learning on.


    I spent a year working in Python, and I loathed every moment of it. If you want to experience every kind of misery a programming language can inflict on you, Python's your boy.
    Pat Farrell
    Rancher

    Joined: Aug 11, 2007
    Posts: 4634
        
        5

    Dennis Deems wrote:I spent a year working in Python, and I loathed every moment of it.


    I'd love to hear more.
    Bear Bibeault
    Author and ninkuma
    Marshal

    Joined: Jan 10, 2002
    Posts: 60041
        
      65

    There's just something about languages where whitespace is significant that makes a steel door in my mind clang shut.
    chris webster
    Bartender

    Joined: Mar 01, 2009
    Posts: 1475
        
      11

    Well, the options seem to be narrowing down a bit: Gregg's ruled out JVM, which also rules out Bear's suggestion of Scala (definitely one to watch IMO) or Clojure. And the hostility to Python and its refreshingly simple whitespace instead of endless nested parentheses rules that out (disclaimer: I'm learning Python and I like it so far), although if you were looking for things to do with Python you could try Machine Learning In Action, which combines Python with egghead ML techniques and would keep you busy for a while. As for JavaScript, I know Bear's right, but it still stinks.

    But if you guys like parentheses so much, why not Learn You A Haskell For Great Good - pure functional programming with lots of lovely brackets and no JVM. What's not to like?


    No more Blub for me, thank you, Vicar.
    Bear Bibeault
    Author and ninkuma
    Marshal

    Joined: Jan 10, 2002
    Posts: 60041
        
      65

    I'll again assert that anyone who think JavaScript "stinks" hasn't really learned/studied the language. I used to think so too. That changed when I let go of three myths that seem to surround JavaScript:
  • Myth #1: JavaScript is related to Java
  • Myth #2: JavaScript is an OO language
  • Myth #3: The DOM API is part of JavaScript

  • Few people I know that have given JavaScript a fair shot think that it "stinks".
    Pat Farrell
    Rancher

    Joined: Aug 11, 2007
    Posts: 4634
        
        5

    chris webster wrote: why not Haskell - pure functional programming with lots of lovely brackets and no JVM. What's not to like?


    Eh, real men use LISP
    Bear Bibeault
    Author and ninkuma
    Marshal

    Joined: Jan 10, 2002
    Posts: 60041
        
      65

    Pat Farrell wrote:
    Eh, real men use LISP


    FYP: (Eh ((real) men) (use (LISP)))
    Pat Farrell
    Rancher

    Joined: Aug 11, 2007
    Posts: 4634
        
        5

    Bear Bibeault wrote:
  • Myth #1: JavaScript is related to Java


  • Sure, its a myth, and a very damning one at that. Just the brilliant folks at Netscape decided that LiveScript was not sexy enough, and changed Live to Java since at the time Java was hot, trendy, cool, whatever.....

    From that day forth, we have confusion.
    chris webster
    Bartender

    Joined: Mar 01, 2009
    Posts: 1475
        
      11

    Pat Farrell wrote:
    chris webster wrote: why not Haskell - pure functional programming with lots of lovely brackets and no JVM. What's not to like?


    Eh, real men use LISP

    LISP is jutht thilly...
    Bear Bibeault
    Author and ninkuma
    Marshal

    Joined: Jan 10, 2002
    Posts: 60041
        
      65

    Pat Farrell wrote:Just the brilliant folks at Netscape decided that LiveScript was not sexy enough...

    That was truly a lamentable decision.

    Although it could be worse: ECMAScript, anyone?
    chris webster
    Bartender

    Joined: Mar 01, 2009
    Posts: 1475
        
      11

    Bear Bibeault wrote:I'll again assert that anyone who think JavaScript "stinks" hasn't really learned/studied the language. I used to think so too. That changed when I let go of three myths that seem to surround JavaScript:
  • Myth #1: JavaScript is related to Java
  • Myth #2: JavaScript is an OO language
  • Myth #3: The DOM API is part of JavaScript

  • Few people I know that have given JavaScript a fair shot think that it "stinks".

    OK, I give up - it's just blind prejudice on my part (although I have been using Google Apps Script for a while). So I guess I should order your book, now, huh?
     
    I agree. Here's the link: http://aspose.com/file-tools
     
    subject: Which New Programming Language To Learn
     
    Similar Threads
    Java seems like a technology no one wants to use
    Where to post Scala discussions
    What does R-language bring to the table?
    I Want to Learn C As Additional Programming Language
    As a programmer, how often do you feel the need of creating your own laguage for your purposes?