Win a copy of Mesos in Action this week in the Cloud/Virtualizaton forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Learn New Programming Language

 
Gregg Bolinger
GenRocket Founder
Ranch Hand
Posts: 15302
6
Chrome IntelliJ IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I am wanting to learn a programming language that I don't currently have any experience with. Languages I already know or are already familiar with are:

C, C++, Perl, PHP, Python, SQL, XSTL, JavaScript, HTML, Korn/Bash Shell Scripting, C#, VB.NET, and Java.

So I'd like something not in that list. It would be helpful that if you suggest something you give some reasons as to why learning said language would be worth while and possibly even fun.

I'm not going to restrict myself to any particular type of development (desktop, web based, console, etc). The only platform restriction I have is I can't do anything that is MAC specific because I don't own one. So feel free to suggest anything with those couple of limitations.

Thanks.

[ August 18, 2006: Message edited by: Gregg Bolinger ]

[ August 18, 2006: Message edited by: Gregg Bolinger ]
[ August 18, 2006: Message edited by: Gregg Bolinger ]
 
Henry Wong
author
Marshal
Pie
Posts: 21127
78
C++ Chrome Eclipse IDE Firefox Browser Java jQuery Linux VI Editor Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
How about Macromedia Flash (ie. ActionScript)? From the little that I have seen, it looks somewhat like Java. And it definitely blows Applets out of the water.

Henry
 
Gregg Bolinger
GenRocket Founder
Ranch Hand
Posts: 15302
6
Chrome IntelliJ IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by Henry Wong:
How about Macromedia Flash (ie. ActionScript)? From the little that I have seen, it looks somewhat like Java. And it definitely blows Applets out of the water.

Henry


Thanks for the suggestion, however, I don't consider Flash AS a language. It's more like JavaScript than it is like Java. I know that the newest version of AS that shipped with Flash 9 is supposed to be all new and improved but I still don't like it. I had to deal with it a bit at my current job. Not to mention how expensive it is just to get the tools to develop Flash.

Actually, I would like something as far from Java as possible, if possible, realizing all languages have overlap.
[ August 18, 2006: Message edited by: Gregg Bolinger ]
 
Stan James
(instanceof Sidekick)
Ranch Hand
Posts: 8791
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Well, to take a giant leap out of the mainstream, look at REXX. It's a tiny language, ANSI standard, on almost all platforms, excellent for replacing WSH or shell scripts. String handling is very cool, though I don't think it ever got regex. I mean a space is a concatenation operator. Heh heh.

This may not sound very interesting because Perl and other scripting languages fit in the same space, but then look at how it integrates as the macro language for a C/C++ application. The "command environment" and function package architectures are great. IBM used it as the macro language in everything for a while - editors, DB2 tools, etc.

Nowadays there are also OO-REXX and NetRexx which supports free mixture of REXX and Java syntax.

http://www.rexxla.org/
 
Henry Wong
author
Marshal
Pie
Posts: 21127
78
C++ Chrome Eclipse IDE Firefox Browser Java jQuery Linux VI Editor Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by Gregg Bolinger:

Actually, I would like something as far from Java as possible, if possible, realizing all languages have overlap.


I know there is a chance that you won't consider this suggestion as a language either -- but going to a language "as far from Java as possible", while at the same time, staying very pragmatic....

How about SQL? And the tools are cheap too. MySQL and other databases have free versions. You can even get a full blown enterprise copy (albeit developers only) of SQL Server 2005 for $50.

Henry
 
Gregg Bolinger
GenRocket Founder
Ranch Hand
Posts: 15302
6
Chrome IntelliJ IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by Henry Wong:


I know there is a chance that you won't consider this suggestion as a language either -- but going to a language "as far from Java as possible", while at the same time, staying very pragmatic....

How about SQL? And the tools are cheap too. MySQL and other databases have free versions. You can even get a full blown enterprise copy (albeit developers only) of SQL Server 2005 for $50.

Henry


Ok, well, maybe I should have added SQL to my list of known lanugages. If you consider SQL a language. But for arguments sake, say I did tackle SQL. Which function implementation? DB2? Oracle? MSSQL? MySQL, PostgreSQL...They all have their own function list. Nah, not going to get into all that.

Come on people. Honestly, I'm surprised no one has said Ruby yet. Or Objective C, or any of the .NET crap.

 
Paul Clapham
Sheriff
Posts: 21107
32
Eclipse IDE Firefox Browser MySQL Database
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Everything you listed (except SQL, and no doubt you know HTML) is a procedural language. So why not try a functional language -- like XSLT for example?
 
Gregg Bolinger
GenRocket Founder
Ranch Hand
Posts: 15302
6
Chrome IntelliJ IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by Paul Clapham:
Everything you listed (except SQL, and no doubt you know HTML) is a procedural language. So why not try a functional language -- like XSLT for example?


Crap, should have added that one too.
 
Henry Wong
author
Marshal
Pie
Posts: 21127
78
C++ Chrome Eclipse IDE Firefox Browser Java jQuery Linux VI Editor Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
My favorite language (to learn that is) was probably Prolog. But quite frankly, I don't think you can find a compiler (or interpreter) for it anymore...

Henry
 
Henry Wong
author
Marshal
Pie
Posts: 21127
78
C++ Chrome Eclipse IDE Firefox Browser Java jQuery Linux VI Editor Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
It looks like I was wrong. There are still quite a few prolog compilers out there, including one from GNU.


Anyway, what makes Prolog an interesting language is its ability to backtrack. Every function (predicate, rules) call actually has multiple results.

What the language will do is call functions, and then use the result in the next function call, and so on. If it encounters a case where there isn't a solution, it will actually backtrack to the previous function for a different result, and continue. It will keep doing it until every possible combination of results is tried (unless you request it to not to).

Henry
 
Ulf Dittmer
Rancher
Posts: 42967
73
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I second Prolog. It's very different from OO or procedural languages, so you'd learn quite a bit. There's a good Java implementation at jlogic @ sourceforge. (BA: I implemented a BSF interface for JLog, at http://www.ulfdittmer.com/jlog/index.html
[ August 18, 2006: Message edited by: Ulf Dittmer ]
 
Jeanne Boyarsky
author & internet detective
Marshal
Posts: 34423
347
Eclipse IDE Java VI Editor
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I'll throw Lisp into the ring. It's definitely a different way of thinking than a procedural/OO language.
 
Gregg Bolinger
GenRocket Founder
Ranch Hand
Posts: 15302
6
Chrome IntelliJ IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Prolog sounds interesting. I'll look into it. I've messed with Lisp before but didn't add it to my list of familiars because I am not that familiar with it. So that is something else I might possibly look into.

Keep them coming though.
 
Ernest Friedman-Hill
author and iconoclast
Marshal
Pie
Posts: 24211
35
Chrome Eclipse IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Why has Ruby not yet been mentioned?
 
Gregg Bolinger
GenRocket Founder
Ranch Hand
Posts: 15302
6
Chrome IntelliJ IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by Ernest Friedman-Hill:
Why has Ruby not yet been mentioned?


I wouldn't mind a brief rundown of why I should consider Ruby if someone can do it and be specific to the language and not mention RAILS.
 
Jim Yingst
Wanderer
Sheriff
Posts: 18671
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
[Gregg]: I'm surprised no one has said Ruby yet.

Well that was my first thought, but I considered it, ummm... obvious. And evidently it was, since you mentioned it yourself. But yeah, Ruby + Rails has a good number of enthusiastic supporters out there, and you've probably already seen quite a few, um, "discussions" of the merits of the various languages/platforms/frameworks/whatever. Hyperbole and vitriol aside, Ruby seems like a language that is both fun and productive, and worth looking into, whether you end up embracing it wholeheartedly or not.

Alternately, Haskell might be a good way to at least bend your mind in different directions than it's used to.
 
Gregg Bolinger
GenRocket Founder
Ranch Hand
Posts: 15302
6
Chrome IntelliJ IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
What's difficult, at least for me, is to find good arguments for Ruby without RAILS coming into the equation. I've read documentation on the Ruby web site and done some really simple scripts.

But lately, since RAILS is the big buzz, I can't find any decent articles on the language and it's merits all by itself. Didn't Lasse right something up on the Journal? I am going to go look...
 
Gregg Bolinger
GenRocket Founder
Ranch Hand
Posts: 15302
6
Chrome IntelliJ IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Found it but it is about RAILS.
 
Jim Yingst
Wanderer
Sheriff
Posts: 18671
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Oh sure, make another post a couple minutes before mine which just completely undermines what I posted. (And a couple more after that.) Fine. I can't be terribly specific; I haven't delved very far into Ruby. I can say that Ruby has appeal to me independent of Rails. I like the easy and thorough support of closures, and wish we had that in Java. Groovy is also cool for similar reasons, but hasn't come as far in stabilizing and attracting a user base, and if you're looking for something different from Java, Groovy is not what you want, since it effectively seems to be a middle ground between Java and Ruby/Python. Hopefully someone else can go into additional detail.
[ August 18, 2006: Message edited by: Jim Yingst ]
 
Gregg Bolinger
GenRocket Founder
Ranch Hand
Posts: 15302
6
Chrome IntelliJ IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Not sure how legitimate this is, but here you go...

http://gafter.blogspot.com/2006/08/closures-for-java.html
 
Ernest Friedman-Hill
author and iconoclast
Marshal
Pie
Posts: 24211
35
Chrome Eclipse IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Ruby the language has a novel sort of intuitiveness about it that's hard to explain, but easy to experience. Read an introductory chapter or two about Ruby, and then try to write some code. You'll find that most things you try will work -- moreso than with other languages. It's not really due to similarity with other languages, either -- it's just that it has a nice self-consistency that's missing, IMHO, from other languages in the same space (like the 3 P's.) Once you understand part of it, you'll be able to guess the rest of it.
 
Gregg Bolinger
GenRocket Founder
Ranch Hand
Posts: 15302
6
Chrome IntelliJ IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by Ernest Friedman-Hill:
Ruby the language has a novel sort of intuitiveness about it that's hard to explain, but easy to experience. Read an introductory chapter or two about Ruby, and then try to write some code. You'll find that most things you try will work -- moreso than with other languages. It's not really due to similarity with other languages, either -- it's just that it has a nice self-consistency that's missing, IMHO, from other languages in the same space (like the 3 P's.) Once you understand part of it, you'll be able to guess the rest of it.


Thanks Ernest. I did do some reading and like I said, have gone through some really simple scripts. I'll see what else I can find.

Also, I don't want this thread to become Ruby specific, so more suggestions are welcome. Thanks for everything so far.
 
Jeroen T Wenting
Ranch Hand
Posts: 1847
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
For historical completeness you should learn Fortran, Cobol, or PL/1.

Fortran is still important in scientific computing, and Cobol and PL/1 are in heavy use in mainframe systems.
 
Gregg Bolinger
GenRocket Founder
Ranch Hand
Posts: 15302
6
Chrome IntelliJ IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by Jeroen T Wenting:
For historical completeness you should learn Fortran, Cobol, or PL/1.

Fortran is still important in scientific computing, and Cobol and PL/1 are in heavy use in mainframe systems.


Learned both in college, don't remember poop about either one. I think I'd like to keep it that way for now. But thanks.
 
Deepak Bala
Bartender
Posts: 6663
5
Firefox Browser Linux MyEclipse IDE
 
Jeroen T Wenting
Ranch Hand
Posts: 1847
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by John Meyers:
VC++


da no a language, da a dialekt!
 
Henry Wong
author
Marshal
Pie
Posts: 21127
78
C++ Chrome Eclipse IDE Firefox Browser Java jQuery Linux VI Editor Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by Jeanne Boyarsky:
I'll throw Lisp into the ring. It's definitely a different way of thinking than a procedural/OO language.


For some reason which I find hard to explain, Lisp is a language near the bottom of my list of programming languages.

I could never write elegant code with that language. No matter how hard I try to make Lisp code look readable. If I revisit (my own) code after a only a month, I have to figure it all out again.



The language on the absolutely bottom of my list, was used to implement a very cool Windowing System, that went by the acronym "NeWS". However, the language was postscript -- and whoever thought that using postscript was good idea should be shot.

Okay, maybe not shot.... If he was shot then we wouldn't have gotten Java...

Henry
 
Henry Wong
author
Marshal
Pie
Posts: 21127
78
C++ Chrome Eclipse IDE Firefox Browser Java jQuery Linux VI Editor Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by Gregg Bolinger:


Learned both in college, don't remember poop about either one. I think I'd like to keep it that way for now. But thanks.


There is actually a language related to Fortran called "ratfor" -- which is short for rational fortran. One of my favorite books in College was called "software tools" which used that language -- it was later changed to used a different language for examples. (This was a bad idea, which I will explain)

The whole idea of the book was to write very small but useful tools, and then build on them to write very small but more useful tools. It starts with simple data get and set, to very complex parsing. In fact, by the end of the book, you end up with a "ratfor" to fortran processor.

It was really cool both learning a new language, and by the end of the semester, actually seeing a preprocessor that implemented that language.

Henry
 
Robbi Palacios
Ranch Hand
Posts: 96
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You might try assembly language. You can use to it program any
electronic device you invent then try to make a robot.
 
Guy Allard
Ranch Hand
Posts: 776
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Ruby or REXX would do, but I really agree about assembler.

If you do not know at least one platform's assembler language, you should.
 
Gregg Bolinger
GenRocket Founder
Ranch Hand
Posts: 15302
6
Chrome IntelliJ IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I took an Assember class in college as well.
 
Guy Allard
Ranch Hand
Posts: 776
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I'm stretching - how about SNOBOL?

The original name was SEXI.
 
Marilyn de Queiroz
Sheriff
Posts: 9064
12
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
smalltalk?
 
Amit Batra
Ranch Hand
Posts: 361
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
How about japanese or chinese its going to be in big time demand soon(The latter)
 
Barry Gaunt
Ranch Hand
Posts: 7729
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
caml or ocaml?
haskell?
Scheme?
EFH?
[ August 19, 2006: Message edited by: Barry Gaunt ]
 
Bear Bibeault
Author and ninkuma
Marshal
Pie
Posts: 64858
86
IntelliJ IDE Java jQuery Mac Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
BLISS!

But you'll have to get yourself a VAX.
 
Jim Yingst
Wanderer
Sheriff
Posts: 18671
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Of course, you wouldn't want to overlook the merits of Whitespace either, would you?
 
Svend Rost
Ranch Hand
Posts: 904
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Gregg,

im assuming that you'll learn your new language because of the fun of it,
and the learning expirience - not because you aim you land a job using
your the new programming language.

I would suggest (as other also have suggested) you to learn a new programming paradigme.

Functional programming: ML or Haskell
Logic programming: Prolog

Another thing that you might find interesting is Aspect Oriented Programming (AOP).
The obvious choice of AOP language would be AspectJ, since it's
basicly Java.

/Svend Rost
 
Liu Zhixiang
Ranch Hand
Posts: 32
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by Amitabha Batranab:
How about japanese or chinese its going to be in big time demand soon(The latter)




 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic