Forgot your password?
typodupeerror
Programming

Ask Slashdot: Best Rapid Development Language To Learn Today? 466

Posted by timothy
from the pronto-now-yesterday-or-else dept.
An anonymous reader writes "Many years ago, I was a coder—but I went through my computer science major when they were being taught in Lisp and C. These days I work in other areas, but often need to code up quick data processing solutions or interstitial applications. Doing this in C now feels archaic and overly difficult and text-based. Most of the time I now end up doing things in either Unix shell scripting (bash and grep/sed/awk/bc/etc.) or PHP. But these are showing significant age as well. I'm no longer the young hotshot that I once was—I don't think that I could pick up an entire language in a couple of hours with just a cursory reference work—yet I see lots of languages out there now that are much more popular and claim to offer various and sundry benefits I'm not looking to start a new career as a programmer—I already have a career—but I'd like to update my applied coding skills to take advantage of the best that software development now has to offer. (More, below.)
Ideally, I'd like to learn a language that has web relevance, mobile relevance, GUI desktop applications relevance, and also that can be integrated into command-line workflows for data processing—a language that is interpreted rather than compiled, or at least that enables rapid, quick-and-dirty development, since I'm not developing codebases for clients or for the general software marketplace, but rather as one-off tools to solve a wide variety of problems, from processing large CSV dumps from databases in various ways to creating mobile applications to support field workers in one-off projects (i.e. not long-term applications that will be used for operations indefinitely, but quick solutions to a particular one-time field data collection need).

I'm tired of doing these things in bash or as web apps using PHP and responsive CSS, because I know they can be done better using more current best-of-breed technologies. Unfortunately, I'm also severely strapped for time—I'm not officially a coder or anything near it; I just need to code to get my real stuff done and can't afford to spend much time researching/studying multiple alternatives. I need the time that I invest in this learning to count.

Others have recommended Python, Lua, Javascript+Node, and Ruby, but I thought I'd ask the Slashdot crowd: If you had to recommend just one language for rapid tool development (not for the development of software products as such—a language/platform to produce means, not ends) with the best balance of convenience, performance, and platform coverage (Windows, Mac, Unix, Web, Mobile, etc.) what would you recommend, and why?
This discussion has been archived. No new comments can be posted.

Ask Slashdot: Best Rapid Development Language To Learn Today?

Comments Filter:
  • Re: Python (Score:0, Interesting)

    by Anonymous Coward on Sunday June 15, 2014 @11:45AM (#47240763)

    Use Python if you are ok using a language whose most regular users refuse to use the most recent version of, you don't need threads, you don't need your program to process data quickly, and it doesn't bother you that it took its creators over a decade to get the print function correct. JavaScript is a client side language and should stay there. Again, so slow to do any real processing. The only reason people use either of those languages is that they have an unjustified prejudice towards Java based languages and have not tried Groovy.

  • by holophrastic (221104) on Sunday June 15, 2014 @12:01PM (#47240855)

    only if you've never learned how to debug javascript. If you're using debugging tools, then yes, 17 hours is about right. If you've been debugging interpreted languages for decades, then it's no big deal.

    Just keep running it as you code -- every time you type a semi-colon, hit F5. When it doesn't do what you expect, the problem is in the last line that you typed. There's no compiling, and there's no linking, and there's no delay. In an hour of coding, you should be executing it well over 30 times. Adapt your coding style to sequence things atomically, and you won't have any problems.

    Until you type "tmep" instead of "temp" and it takes you a day to figure it out because javascript does very stupid things with variable scope that no other language would consider legal in any way -- like variables being in-scope before the line declaring them.

  • Re: Python (Score:5, Interesting)

    by rubycodez (864176) on Sunday June 15, 2014 @12:04PM (#47240883)

    python has threads; no one cares about your definition of "correct print statement" since it always could print; Python has libraries for specific data processing that needs to be done very quickly, but the truth is 90% of a program won't be dedicated to that

    What Python does have that makes it good candidate are mature libraries for all the use cases mentioned (web, server scripting, client gui, etc.) So does Perl 5, and to lesser extent Ruby has good libraries though not nearly as encompassing as either Perl 5 or Python

  • by conoviator (1991610) on Sunday June 15, 2014 @12:22PM (#47240977)
    Tons of online books and tutorials. See https://wiki.python.org/moin/P... [python.org] . Python is my go-to language for just getting stuff done. I use it for damn near everything these days, except mobile apps, which I code natively.
  • Re:Python + Qt (Score:4, Interesting)

    by MrEricSir (398214) on Sunday June 15, 2014 @12:30PM (#47241019) Homepage

    I'd second the QtQuick recommendation. What I like about it is you can easily slap together a standalone UI prototype and worry about the backend later.

  • Re:Python (Score:5, Interesting)

    by thoth_amon (560574) on Sunday June 15, 2014 @12:34PM (#47241039)
    Python is a good language, but it can be a little tedious to do simple one-off text-parsing tasks. Regexes aren't first-class elements of the language. You have to know what libraries to import. And Python as a language has an ongoing, controversial split between Python 2 and Python 3 that makes myself and others a little uncomfortable. Having said that, there's a lot of good stuff going on in Python. It's a worthy language.

    JavaScript, to me, is less worthy as a language. Yes, you "can do" pretty much anything in JavaScript (as you can with any Turing-complete language, meaning all of them), and yes, it has some desirable language features. But, it's typically hard to do simple things, at least if you want compatibility with older platforms. JavaScript has a substantial number of warts and language design problems. If JavaScript were a newly-introduced language, I think it would pretty much go nowhere. It's compelling because all the browsers use it, and because we now have some nice frameworks, like Node, that use it, and because of the browsers, some great debuggers and related tooling. Still, for quick programming of one-off tasks, I would not pick JavaScript.

    I would give Ruby strong consideration. Although you can write complex, large programs in Ruby, including web apps using frameworks like Rails, the language is very well-suited to small text-processing tasks as well. Check out Practical System Administration Using Ruby [amazon.com].

    None of these languages have a lot of the cool new language features that are coming out (it seems like) on a weekly basis lately. By this standard, they all seem a little backward. But these newer languages are almost always immature in important ways -- either the language is evolving too much, the docs are weak, there's not much community yet, they have no module system (gem/egg/CPAN) or a weak one, they're only good at a small subset of tasks, etc. In a few years, these languages might displace Python or Ruby, just as Python and Ruby largely displaced Perl. But the newcomers are not yet strong enough for that. In the meantime, Ruby or Python would make better here-and-now answers.
  • Re:Python (Score:2, Interesting)

    by Anonymous Coward on Sunday June 15, 2014 @01:21PM (#47241295)

    This is written by someone who clearly doesn't really get the power of JS (Object oriented, Event driven for free, functional at will for free). It's got warts, yes, but the power of the language and the ability to pick almost any paradigm you want and have it built in easily is phenomenal.

    Ruby isn't worth it. You still have to learn JS to do anything with the web (which, if you are using Ruby you probably are). If you are writing just desktop applications then fuck it - go Groovy/Grails and get access to the JVM and the infinite java libraries. Not to mention the neverending job market that is Java.

  • by BasilBrush (643681) on Sunday June 15, 2014 @04:31PM (#47242171)

    There's been more money to be made with Objective-C than most other languages these last few years. Possibly than any other language. And that has only one serious target. Well two if you count iOS and OSX separately.

    That should make Swift a very good bet. However, it's early days yet - the language is certainly not finalised even for a 1.0 release, and the documentation is skimpy. Most people would probably be best to wait a year.

  • Re:Scala (Score:2, Interesting)

    by Anonymous Coward on Sunday June 15, 2014 @05:55PM (#47242581)

    Scala is the language that came to my mind as the counterexample to a "rapid development" language. There are other functional languages just as terse (or even moreso) that do not suffer from Scala's slow compilations and strict typing (two other big factors for rapid prototyping).

    The best rapid development language has got to be Perl. I would even say, yes, do consider learning it (even today). It shines at small one-off scripts but also scales extremely well to large projects. The Perl community has also managed to maintain the fun "hacker" culture that is so-obviously missing from the "Enterprise" languages (esp. Java and, to a lesser extent, Scala).

  • Re:Python (Score:4, Interesting)

    by thoth_amon (560574) on Sunday June 15, 2014 @06:22PM (#47242681)
    I think we're back to the "it can do X" argument (JavaScript can do OO, it can do functional, etc). The problem with this argument is that any language can do X if you try hard enough. Unfortunately, to do OO in JavaScript, you do have to try, because JavaScript is not an OO language, but rather a prototype-based language. Compatibility layers such as CoffeeScript that offer clean OO have to produce somewhat wordy JavaScript to provide that support, precisely because even though you can emulate OO in JavaScript, it's not concise, easy, elegant or fun, unless you are using something like Coffee, which is a different language than JavaScript.

    Certainly Ruby and Python have beautiful OO models, much more attractive and natural than JavaScript's. And like JavaScript, both Python and Ruby can be programmed in a functional manner if you choose to do that; indeed, their libraries support functional behavior out of the box much better than JavaScript's. And, as with the OO example above, if you really want to do functional-style programming, you might be better off using a language designed with that in mind, for example with default currying and pattern-matching built in.

    But I don't think OP cares about any of that. I think OP just wants to whip some scripts together fast. JavaScript was designed with a browser in mind. It was not architechted with single standalone scripts in mind, and it continues to be a poor tool for that purpose.

... when fits of creativity run strong, more than one programmer or writer has been known to abandon the desktop for the more spacious floor. -- Fred Brooks

Working...