Forgot your password?
typodupeerror
Programming IT

Ask Slashdot: What Language Should a Former Coder Dig Into? 530

Posted by samzenpus
from the getting-your-chops-back dept.
An anonymous reader writes "I was a consultant for nearly 20 years and I got into projects where I had to work with a huge variety of software, operating systems, hardware, programming languages, and other assorted technologies. After retiring from that I have spent the last 10 years in a completely different sector. Now I find myself wanting to really focus on coding for personal reasons. You can imagine how out-of-touch I am since I never really was more than a hack to begin with. I can learn syntax and basics in a weekend, question is, what Language should I become native to? Never liked anything 'lower-level' than C, and I don't have the funds to 'buy' my development environment....help me Slashdot, you're my only hope."
This discussion has been archived. No new comments can be posted.

Ask Slashdot: What Language Should a Former Coder Dig Into?

Comments Filter:
  • Python (Score:5, Insightful)

    by protactin (206817) on Sunday May 06, 2012 @06:52PM (#39910851) Homepage

    n/t

    • Python is hugely versatile, you can easily port C routines into Python. It's free and open source, what more could you ask for? I haven't used it but the IBM backed open source Eclipse IntegratedDevelopmentEnvironment seems to be very popular.
    • I agree with Python, and be sure to check out ActiveStates's Komodo Edit [activestate.com] as your development environment.

    • Agreed whole-heartedly! First language I learnt when I came to Linux, and the one that I always come back to if I want to program for fun, or need a quick script/mockup (it is however also good for proper, large software projects). Hugely flexible and fast to develop in, with nice C bindings if you need to do some specialist stuff.
    • Re:Python (Score:4, Interesting)

      by squiggleslash (241428) on Sunday May 06, 2012 @08:08PM (#39911363) Homepage Journal

      Disagree. Python is a great language, but it's unlike the vast majority of other languages out there. It wouldn't establish you with a base of "How things currently work". You can easily learn Python after learning one of a list of other languages, but other languages are going to come across as a tad confusing if you learn just this one.

      I'd go with Javascript. STOP. READ THE FOLLOWING BEFORE FLAMING.

      Javascript exactly at the intersection of everything right now. It's a scripting language that's close enough in concept to C# or Java for a jump to be relatively easy. It's enormously powerful, and has 95% of modern programming language features.

      Now, TO BE CLEAR (shouting again, because I know you're going to flame me if I don't!) it's NOT that I'd recommend programming in Javascript in anger, it's more that if you jump from JS to Java, C#, Python, or PHP, you're going to find it an easier jump. Jumping from Python to, say, Java is rather more of a leap.

      For learning purposes, JS is a great language. Python is also a great language, but don't allow your enthusiasm to get the better of you when promoting it. For learning how the world works today, recommending Python would be as sensible as arguing that a Chinaman who wants to talk to Westerners should learn Italian first.

      (Yes, Italian's my favorite spoken language, I'd still recommend English to said Chinese person. Good combination of Romance and Germanic languages that'll get you understanding "us", even if it sucks!)

      • Disagree. Python is a great language, but it's unlike the vast majority of other languages out there.

        In what sense? It doesn't use curly braces based syntax, but who cares about syntax? Semantically, though, it's a pretty nice OOP language with all the usual bells and whistles you see elsewhere, so moving from it to something else later will not be a problem.

      • Re:Python (Score:5, Insightful)

        by styrotech (136124) on Sunday May 06, 2012 @10:22PM (#39912071)

        Not flaming, but how exactly do you reckon that Javascript is closer to Java than Python is? I'm curious...

        Apart from completely superficial stuff like having braces and semicolons that is.

        Python and Java have classical OO rather than the prototypical OO Javascript uses. And although Python is not statically typed like Java is, it is strongly typed like Java is. Javascript is neither. Python has an extensive standard library and set of builtin objects/functionality (like Java), and Javascript doesn't.

        This isn't a criticism of Javascript - but it is further away from most other common languages than Python is and requires a very different mindset than C# or Java. Javascript is a sort of hybrid functional language all by itself with an unusual OO design and unusual scoping rules.

        Personally I'd probably put Python somewhere between Java and Javascript on most arbitrary sets of language style continuums. In fact I reckon Javascript and Java seem almost like polar opposites in a lot of ways.

  • Brainf*ck (Score:4, Informative)

    by greywire (78262) on Sunday May 06, 2012 @06:53PM (#39910853) Homepage

    en.wikipedia.org/wiki/Brainfuck

  • re (Score:5, Funny)

    by Anonymous Coward on Sunday May 06, 2012 @06:53PM (#39910857)

    "...help me Slashdot, you're my only hope."

    You're screwed.

    • by cupantae (1304123)

      It's Princess Leia. OP thought to gain our most sincere recommendations by first forming a nerdish bond.

      Instead, I just feel silly for knowing the reference :(

      • by epine (68316)

        OP thought to gain our most sincere recommendations by first forming a nerdish bond.

        No, the purpose of the reference is A) to mock the epic futility of his quest in his advanced state of neurological senescence, and B) to sufficiently date himself that half the Facebook generation goes "huh" with the effect of doubling the signal to noise ratio on answers he can seriously consider pursuing.

      • by Genda (560240)

        Friggin Nerf Herders...

  • by Lord Lode (1290856) on Sunday May 06, 2012 @06:54PM (#39910869)

    Don't worry, I can't think of many languages that for which you need to 'buy' a development environment.

    Want to do frontend stuff? JavaScript, etc... Your dev environment is a good JS debugger in a browser.

    C/C++: Do those in Linux for best ease of use (compiler and debugger come with the OS)

    Java: Eclipse, or IntelliJ's open source edition?

    I think even C# can be developed with a free editor...

  • Your answer (Score:5, Insightful)

    by Anonymous Coward on Sunday May 06, 2012 @06:55PM (#39910873)

    Forgive me for sounding rude, but to give you advice about what languages to get into, without giving even a hint what you're trying to create, is ridiculous.

    Languages have evolved around their purpose. No purpose, no advice.

    • Let me attempt a clearer question: What language should I learn if I seek a full-time job as a programmer without having to leave behind my family and move to (say) Austin, Boston, or Seattle?
  • PHP (Score:5, Funny)

    by schroedingers_hat (2449186) on Sunday May 06, 2012 @06:56PM (#39910881)
    It's clean, elegant. Has consistent, well thought out syntax, is easy to debug (PHP Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM) and is secure by default.
  • What do you want to hack or work on? If you want to write Mac or iPhone apps, you should learn objective-c. If you want to do the web, then javascript. If you want something nice and general purpose and useful in various scenarios, Java's a good choice. If you want to dazzle yourself with interesting algorithms and programming techniques, try one of the computer science type favourites like Lisp, Scheme, ML or such.

  • by gman003 (1693318) on Sunday May 06, 2012 @06:58PM (#39910887)

    If this is for your own, personal use, I can only recommend that you take a week or two (or a month, if you like) and try out as many new and interesting languages as you can, then decide for yourself which of them you liked best. There's literally dozens of languages people will recommend, and very few of them are going to be "wrong".

  • by Anonymous Coward on Sunday May 06, 2012 @06:59PM (#39910891)

    Best all-around: Python

    Best for enterprise work: Java

    Best for OS dev, e.g. device drivers: C

    Best for system programming above OS, e.g. database internals: C++

    Best for game programming: C++

    Best for financial apps: C#

    Best social networking startup interview: Ruby

    Best for web dev: JavaScript

    Best for bioinformatics: R, SAS

    • Best all-around: Python

      Best for enterprise work: Java

      Best for OS dev, e.g. device drivers: C

      Best for system programming above OS, e.g. database internals: C++

      Best for game programming: C++

      Best for financial apps: C#

      Best social networking startup interview: Ruby

      Best for web dev: JavaScript

      Best for bioinformatics: R, SAS

      Although Perl gives me a splitting headache, I think it deserves an honourable mention somewhere in this list (bioinformatics and web dev?) or maybe in a category of its own.

      Also, some missing categories:

      Best for numerical analysis and simulation: C/C++ (nowadays), Fortran (once upon a time, still has some holdouts)

      Best for scientific visualization: Matlab (not free) or Octave (free), IDL (not free)

      Best for mathematics: Mathematica (not free), Maple (not free), various freeware options

      That's all I can think

      • by elashish14 (1302231) <profcalc4&gmail,com> on Sunday May 06, 2012 @07:55PM (#39911291)

        Best for numerical analysis and simulation: C/C++ (nowadays), Fortran (once upon a time, still has some holdouts)

        Best for scientific visualization: Matlab (not free) or Octave (free), IDL (not free)

        Python deserves some mention in both of these categories as well. Numpy/Scipy are outstanding tools which can easily replace Matlab and Octave. Namespace hierarchies and OO implementation aren't necessarily the highest priorities for simulation, but when they are, Python kicks the pants off Matlab. Pylab has also fit all of my needs for plotting, though I have never really used it for anything too serious and it still isn't Python3 compatible.

        For numerical analysis and simulation, you can always write Python wrappers for your low-level C and Fortran libraries.

        Another consideration to keep in mind for these types of projects is that if you're gonna run them on a supercomputer, you can damn near guarantee that Python will be available on it while Matlab probably will be, but will require a bitch of dealing with license matters.

  • C or Java (Score:5, Insightful)

    by phantomfive (622387) on Sunday May 06, 2012 @07:01PM (#39910905) Journal
    C and Java are the leading languages by a lot of measures right now. C will easily get you a job, you'll get back into it easily because you already know it, but you'll have to learn how to write code without leaking. Java is a fine language, but the number of enterprise libraries you have to learn can feel overwhelming. C# can get you a job if you want live in Microsoft world, and it's designed to be easy to pick up.

    Really I'd say focus on what you want to do, then learn what language is popular in that area. Embedded? Learn C. Enterprise code? Learn Java. Games? C++. If you want to do general scripting, learn Python. If you want to write web apps, focus on Javascript, and learn a bit of Java/Python/PHP/Ruby (choose your favorite, Ruby is fun) to figure out the server side. Choose one database (oracle/MySQL/Postresql) to start out with, the knowledge will transfer to the others. Figure out what you want first, then choose a language that will support it.
  • Ruby (Score:4, Interesting)

    by Anonymous Coward on Sunday May 06, 2012 @07:02PM (#39910917)

    I'm pretty much in the same boat as you, trying to revive a career that I once had but spent the last 15 years removed from coding. I looked around a lot and asked a bunch of people stuff. I have chosen Ruby because it looks like it's strong, gaining popularity, and has a big demand in jobs right now. It seems everybody and their brother already knows Python and the PHP framework, so you'll get a lot of 'be one of us' posts, but I recommend you figure out your goal, besides just personal hobby stuff which you can do in any language. Looking for employ-ability? You might find what I did, that Ruby, then Ruby on Rails will be a good fit.

    • Re:Ruby (Score:4, Insightful)

      by BitterOak (537666) on Sunday May 06, 2012 @07:11PM (#39910981)
      I second that. If you want to learn a new language now, Ruby is the way to go. It just makes it so easy to do object oriented programming properly. (In that sense it's the polar opposite of C++). So, Ruby is a great all purpose language, and for speed critical work, just use C.
  • Ask, "What do I want to accomplish?" Then figure out what tools are best to do so.

  • It's easy, high-level, quick to write practical programmes in, platform-neutral and has an active community. Generally speaking, a lot of people who are handy with computers and do a bit of programming for fun or personal reasons like it.

    anything 'lower-level' than C

    OK, so that rules out assembly... and, em... Fortran? Pascal?
    Not great as pretty much the only specifics you've given. I took it that you don't like low-level languages.

  • If you really want to try something cutting edge but still want to stay high level with your programming, I'd strongly suggest Scratch:

    http://scratch.mit.edu/ [mit.edu]

    In spite of all of the junior high kids that make apps in the language, there is a strong adult community there as well... usually talking about educational applications of the language but sometimes getting into more serious programming discussions too. Some modding goes on, but if you have been out of the loop for 20 years from doing much programmin

    • That's so high level I got a nose bleed, so hip you must have trouble seeing over your own pelvis.

      Seriously, if I wanted Scratch for Adults, I'd look at Powerpoint / Keynote / Open Office Presentation or whatever they call it.

  • C# (Score:4, Insightful)

    by Kittenman (971447) on Sunday May 06, 2012 @07:16PM (#39911025)
    Wealth of books out there, it's fairly easy, and the "Express Edition" is free (and comes with a free Visual Studio). It looks good on a CV, makes you more attractive to the opposite sex, guaranteed to put hair on a billiard ball ... sorry, but you get the idea. Python's fine, but most fun is had in C#. YMMV, of course.
    • Re:C# (Score:5, Insightful)

      by aaronb1138 (2035478) on Sunday May 06, 2012 @08:44PM (#39911537)

      Definitely agreed here. There is plenty of movement away from Java towards C#. Microsoft is working hard to be fair to the community and let the language become a real standard without severe restriction.

      Also, C# lets you develop on a wide array of platforms, Windows, WP7/8, iOS (Mono), OSX (Mono), Android (Mono), Linux (Mono again).

      Versus Java, C# affords a better opportunity to stay within one language for the entirety of a program. Higher performance doesn't mix with Java, video games for example, frequently need modules coded in C/C++ in order to achieve reasonable performance levels. Some of the Java -> C# porting has shown massive performance gains.

      Unless Oracle changes their policies regarding Java, the language is likely to languish as it has for the past several years.

      I'm not a fan of Python like others. I've always felt the language doesn't encourage the best coding practices because of the ease and lax style. I will give it credit as probably one of the faster to implement languages for one-off rapid application development. C# strikes me a better language to continue your existing knowledge while modernizing and have a path forward.

    • by gadzook33 (740455)
      C# programmers are the most highly paid right now but slashdot doesn't really take it seriously because it's related to MS. It's a shame because it's a phenomenal language and .NET is one of the best designed libraries since the STL.
  • by Ken_g6 (775014) on Sunday May 06, 2012 @07:22PM (#39911063) Homepage

    You say you can learn the syntax and basics of a language in a weekend. You're probably right. What you can't learn in a weekend is the standard API that comes with each language, defining all the standard objects and methods you'll want to use. That's probably the biggest change in the last 10 years. What you want to look for in a language is one that makes it easy to do stuff. What you want to look for in an API is good, usable documentation.

    Javascript, for one, is a pretty bad language with hardly any standard API (aside from the browser's DOM). Fortunately, there are free add-ons, like jQuery, that add both language features and an API.

    Java was one of the first languages with a large standard API. It has nice documentation, but the language is barely better than C/C++. An ecosystem has developed around Java bytecode, however: languages like JRuby and JPython can run like Java and interface with Java code. There's also "groovy", a "modern" language built entirely around Java bytecode.

    The major competing bytecode standard is .NET, from Microsoft. They offer free-with-certain-restrictions .NET compilers for C/C++, C#, Visual Basic, and more. All of them can use the .NET API which is documented on the MSDN site. I never found the documentation quite as nice as Java's; but it's usable. Again, other languages have been made to run .NET bytecode: IronRuby and IronPython.

    Python and Ruby outside the bytecode versions have their own APIs. If you liked Perl and like object-oriented programming you'll love Ruby.

    Finally, if you find you can't stand all this object-oriented programming, try PHP. It's used widely for making dynamic web sites, and has a nice, large API with documentation; but it rarely uses user-defined objects.

  • Chinese (Score:3, Insightful)

    by Ralph Spoilsport (673134) on Sunday May 06, 2012 @07:25PM (#39911085) Journal
    Programming isn't important. You "pay people to do that" - usually some minimal fee in the Philippines or Malaysia or India. The language to learn is chinese because this century belongs to them.
    • by Surt (22457)

      The Chinese economy has peaked. Jobs are beginning to leave China for cheaper locations. Their economy may double in size one more time, which will still leave it smaller than the US economy.

  • by slasho81 (455509) on Sunday May 06, 2012 @07:25PM (#39911089)
    If you're doing it for personal stuff and don't have the constraints of the corporate world - Clojure. It's the cutting edge. It's way ahead of anything else out there today.
  • I think that is a big decision point. You may find that if you choose gui, that it will strongly affect which language you choose to go with.
    Or maybe not.

  • A Book You May Like (Score:5, Interesting)

    by DannyO152 (544940) on Sunday May 06, 2012 @07:31PM (#39911119)

    Pragmatic Programmers published "Seven Languages in Seven Weeks" last year. I liked the book and would recommend it for any one who wanted a taste of today's interesting languages. Over the past year, I've seen that some readers were disappointed at the language choices and some didn't like the way the author, Bruce A. Tate, selected a movie characters as shorthand descriptions for the languages' feels.

    The languages: Ruby, IO, Prolog, Scala, Erlang, Clojure, and Haskell. As for development and runtime environments, these can be had and installed at no cost.

    If I was asked to name the one language that is widely used, has immediate practicality, and the runtime is already installed on your computer, I'd pick javascript, which runs in the browser. Get a browser that has a console for reviewing javascript errors. The java part of its name is deceptive. It is quite different than java, but the 90s Netscape folks figured that that imprecision would help adoption. I'm not one to rue days, but that one could a candidate.

    You didn't mention what languages you were familiar with from your consulting days. One question to be asked is whether you want to look at a language that is familiar but advanced the the ones you did work with or would you prefer to explore the other streams of language design. If you wish to write personal application and utilities, there is likely to be a language tied to your platform. For Windows, it's C#. For OS X, Objective-C. For Linux, you will have to pick a gui framework and its language.

  • If you don't work for a company that forces you to develop in language xyz then you should pick the language that fits your needs...not pick a language and then start writing away. Yes...most languages can be bent upside down and backwards to do almost anything. That's ignoring the point though.

    You're completely free to choose. Most of us don't have that luxury. Study carefully what you want to do and pick the best language for that task. Do not ask a large group of tech heads what language they love best.

  • by Surt (22457)

    I'd use the preferred language for the kind of project you want to work on. If you just want to be employable, learn java.

  • Mature language and environment, vast number of open source third party libraries, runs literally anywhere. (Well... except iOS ...)

    • Mature language and environment, vast number of open source third party libraries, runs literally anywhere. (Well... except iOS ...)

      Wow, that's just masochistic. Well, at least the Eclipse/Nios C++ environment I run is.

  • by Kjella (173770) on Sunday May 06, 2012 @07:47PM (#39911245) Homepage

    I've found that Qt wraps most for the craziness that is C++, it's a very nice toolkit for for "personal project" size. Don't know what the commercial market is and don't care, but for hobbyist work I find it great. Of course if you want to be part of the "cool kids" you'd probably go with Java so you can program for Android, mobile is all the rage these days but I don't feel I need it for my projects. And that's really the question, what kind of apps are you looking to make? Desktop apps? Mobile apps? Web apps? Scripting? Simulations? There's still no one language to rule them all because they all do better at certain things.

  • If there are more jobs for C++, do that. If there are more for C# or Java, do that. Coding is either about money or it's masturbation (not that there's anything wrong with that...), but if you're doing it for money, then put yourself in the biggest money stream.

    And sorry guys, if you're looking for money, that's probably not python, ruby, coffee, php or web language of the week. Much as I delight in all of them, there are just fewer high-paying jobs there last I looked. Feel free to prove me wrong. I'd be h

  • javascript, jquery, ajax.
  • Python for complete, modern scripting with good OO.

    If you like to look at something minimalistic though, have a look at Lua. That language is really fascinating.

  • It is very satisfying for personal/hobbyist applications. Lots of libraries for graphics, sound, serial port, remote control, etc.

    www.processing.org

  • Ruby is porn for programmers, but it's unsuitable when performance matters.
    Python has a niche carved out handling mail, and is good for many other things.
    Lua is a solid embedded language for games.
    Java is (used to be?) the language of business software. Maybe it's C# these days?
    R is fantastic for statistics mostly due to the available libraries.
    Fortran is the language for physics, again due to the libraries.
    PHP is kind of a watered-down, nothing-exceptional language, but it's nonetheless quite popular for

  • Any comments posted by people who only use "dynamic" (formerly known as "scripting") languages are largely irrelevant. If, on the other hand, your entensive coding experience also includes compiled languages, such as C/C++, C#, Java, Delphi then sure, I am all ears.
  • There are thousands of languages out there and your asking which one you should learn? Without information as to what type of programming you want to do or why you want to learn, it's a total crap shoot. If you just want to learn a language easily, python is a good starting language. If you want to do "real" programming than C/C++ is probably the best way to go. If you want to just do programming for entertainment, pick a project off sourceforge or github and use whatever language it uses. If you wan

  • by Riktov (632) on Sunday May 06, 2012 @08:51PM (#39911597) Journal

    You say you want to "code for personal reasons", which I take to mean because you find programming enjoyable and want to write programs for fun.

    Then I would absolutely recommend Lisp and Smalltalk. For Lisp, you can get started with Lisp In A Box [common-lisp.net] and Peter Siebels' "Practical Common Lisp" [gigamonkeys.com]. For Smalltalk, try Squeak [squeak.org] accompanied by Squeak by Example [squeakbyexample.org]. It's all free.

    No, you are probably not going to get a job writing in either of these languages, but learning them may indeed help you get a job, as they are both conceptually deep, and their influences are broader than many realize: JavaScript borrows heavily from Lisp, and Ruby and Objective C from Smalltalk. Even Python and Perl have some Lisp concepts in them. In fact it seems that every new dynamic language to come out in the last twenty years owes something to these two languages. They are like the Greek and Latin of programming languages.

  • by hamster_nz (656572) on Sunday May 06, 2012 @11:32PM (#39912439)

    If this is for a hobby, and you want to keep challenged, buy an FPGA development board (e.g. a Digilent Basys2 or a Papilio One) and learn a HDL. It will cost a little bit of money ($60) but you will get months of play time out of it.

    Once you've programmed in 10 or so languages they are pretty generic, but the jump from programming to Hardware Designing is a complete mindfsck, but one you grok it it is very satisfying. Everything happening in parallel in hard real time....

    Build your own 'soft' CPUs, invent the next big thing!

    • The real mindf*ck for most computer programmers comes when they realise half their common constructs are completely useless.
      Looping is generally a bad idea (unless if it's a generation loop), recursion shouldn't even be considered, etc... . But VHDL is one of the better languages out there actually. I've written large snippets of VHDL that worked instantly. Simply cause of the fact that it's very hard to make a mistake in VHDL. But the learning curve might be a bit steep without a good tool chain (Xilinx I

No amount of genius can overcome a preoccupation with detail.

Working...