Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?

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

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:
  • by Anonymous Coward on Sunday June 15, 2014 @12:32PM (#47240665)

    There are a lot of anti apple people on Slashdot, but I'd like to give swift a try. Having worked with many IDE's and development environments, I think Apple has the easiest to use, most supportive tools. So I am curious to see what they have done with this new supposedly modern, advanced language. The playground demo at WWDC was pretty enticing.

    Flame away you bastards.

  • by Anonymous Coward on Sunday June 15, 2014 @12:38PM (#47240715)

    You have never been able to learn a programming language in a couple of hours.

    It's just that some languages manage to trick you into thinking you can - and then those of us who actually do know what we are doing have to come along and fix the resultant mess.

    In answer to your actual question, my first suggestion is Python. It's used everywhere, not only on the Internet, but also as the scripting language in a wide range of traditional type applications.

  • by geoskd ( 321194 ) on Sunday June 15, 2014 @12:53PM (#47240817)

    It all depends on what kind of applications you need to write.

    If you're looking to write back-end or network applications that do not require a GUI, then I would still recommend C++ with one caveat. Get and use the Boost libraries. You will find that these libraries fix most of the crap that was broken about C and C++. C++ is not necessarily the easiest language to use, but you already know it which is a tremendous advantage.

    If you need to do front end / GUI development, I recommend JavaScript. Not because its easy to use, but because web browsers are everywhere, and largely platform agnostic at this point. There are plenty of systems out there that build on top of JavaScript, and any of them would be worth a look.

  • Re:Python (Score:4, Insightful)

    by mrvan ( 973822 ) on Sunday June 15, 2014 @12:57PM (#47240831)

    Python: 'Nuff said


    Python is quick to learn, portable, has great libraries, both the standard-library and frameworks such as django and sqlalchemy. You can use it OO or more "imperatively", and it has some great primitives for functional-style programming. It is easy to use in a command-line script sense and just as easy to use in a web (backend) role, from very lightweight flask to all-bells-and-whistles django. The documentation and community are also suberb, and you can find a good answer to almost every question online.

  • Java in an IDE (Score:2, Insightful)

    by Sesostris III ( 730910 ) on Sunday June 15, 2014 @01:00PM (#47240851)
    Java in Eclipse or NetBeans. It's not interpreted but you can create it and run it in-situ ('Run As' in Eclipse). It also ticks most of the other boxes (web - Apache Tomcat. Mobile - not looked int this but there's mobile Java or there's Dalvik. GUI - Swing, SWT or JavaFX). I believe that NetBeans may be better for visual GUI development (I'm not familiar with NetBeans. I use Eclipse and set things up manually with Swing if required).

    The only down-side is the learning curve. However there are lots of resources on the Web, and many books available. It is also cross-platform, maintained (by Oracle) and free (Gratis and, if you use OpenJDK, Libre). There are also plenty of third-party libraries you can download.

    If I need something quick and dirty, it's what I use. (But then, I'm a Java developer so probably biased!)
  • Re:Python (Score:5, Insightful)

    by petes_PoV ( 912422 ) on Sunday June 15, 2014 @01:01PM (#47240861)
    Did you forget to read the post?

    The guy says:

    I'm not looking to start a new career as a programmer—I already have a career

    So forget a strategic language to base a career on, he just wants to get stuff done

  • Re:Python (Score:4, Insightful)

    by rubycodez ( 864176 ) on Sunday June 15, 2014 @01:07PM (#47240891)

    the current craze of using javascript for other than embedded in web page is just passing fad, it does not have the mature libraries of other languages to be general purpose. No one is going to write Linux configuration/admin systems in javascript, nor making general purpose cron jobs. Python and Perl and Ruby excel at that sort of thing, on the other hand.

  • Re:Seriously? (Score:5, Insightful)

    by mrvan ( 973822 ) on Sunday June 15, 2014 @01:13PM (#47240923)

    Maybe you should leave the coding to people who actually know what they're doing? If you're just a 'dabbler' then your code will always suck in every language and 'real' coders will smell it a mile away. Looking for the latest, greatest, buzzword to add to your resume will not improve your skills.

    I really disagree with this. I think everybody who touches computers and data for a living (and who doesn't, nowadays?) should know some essential programming. They might never use it, but they'll understand so much more on what is going on.

    I am very far from a car geek, but I can point to the basic components of my car and has some clue about what they do; same for small jobs around the house, basic management skills, etc etc.

  • by tepples ( 727027 ) <tepples@gm a i l . c om> on Sunday June 15, 2014 @01:22PM (#47240973) Homepage Journal

    [Apple Swift] is not a good choice until it is available as free software.

    Let me elaborate on why this is true: Unless a compiler is available in source code form, you don't know whether it has a backdoor. And unless a language has multiple independent compilers, you can't use David A. Wheeler's diverse double-compiling construction to rule out self-propagating backdoors.

  • by Gibgezr ( 2025238 ) on Sunday June 15, 2014 @01:24PM (#47240985)

    Never waste your time on a language with only one deployment target platform if you can help it.

  • by Anonymous Coward on Sunday June 15, 2014 @01:36PM (#47241057)

    [Apple Swift] is not a good choice until it is available as free software.

    Let me elaborate on why this is true: Unless a compiler is available in source code form, you don't know whether it has a backdoor. And unless a language has multiple independent compilers, you can't use David A. Wheeler's diverse double-compiling construction to rule out self-propagating backdoors.

    Of course, unless you have unlimited time, are already an expert at writing production-quality compilers and are willing to go line-by-line through a huge pile of source code with the incredible care needed to identify subtle backdoors you won't actually do that. Instead you will simply assume that because it is open source that someone else must have done so - and look how well that worked for OpenSSL. Look, I like f/oss too, but let's be realistic...

  • by rewindustry ( 3401253 ) on Sunday June 15, 2014 @01:53PM (#47241159)

    i spent most of my working career in C, and as advised by my early mentors, over the decades, i have build, and have continued to hone my own little collection of useful functions.

    i have learned interpreted languages, bash scripts, also postscript and forth along the way, various others...

    in the end what remains best is C code, and my own little legacy collection of solutions to the problems i have encountered.

    to answer your heads as best as i can:

    archaic - C is not - underneath every "other" language you will almost always find C source and a C compiler.

    text based - think AJAX if you want instant and easy access to gooey bling stuff. these days almost everything that can do GUI can also do an RPC text based interface of some form or another, and if you don't want the fuss off rolling your own interface, there are plenty of stock C libs out there will do this for you.

    not a hotshot - you know C, you are not only hot, you are a rare breed, and an essential part of the future - as i said above, C lies beneath just about everything out there, and large parts of the Original Framework is now inscrutable to the script kids, despite their whole world would collapse, if there were no-one left to maintain it.

    update your coding skills - in short please stick with C as much as you can, and think about building bridges - in my opinion your time would be best spent studying the C and text interfaces exported by other languages, and working out for yourself how best to leverage their abilities from within C - as opposed to jumping ships.

    help out - get yourself a git account, share your work, if you can.

    in all of these except the last i speak from 30 years experience, and in regard to the last - i'm working on it - most of my stuff is still bound in commercial licence, however i continue to hope this will change, eventually, and i continue to prepare for that day.

  • by aussersterne ( 212916 ) on Sunday June 15, 2014 @02:36PM (#47241363) Homepage

    I do this all the time in my line of work. Someone hands us a data dump of 2 million lines in a messy CSV file with dozens of columns that's old collected data. We benefit if we can make use of it--but we have to clean it up first.

    It's a one-time job--script something up to process the data into cleaner data and format it as we need it to make use of it ourselves. Then, toss the script away.

    There's a big difference between "software engineering" and "coding." Coding skill is useful in all kinds of edge cases that mainstream applications don't handle, and when you're just looking to finish an edge-case task, you don't need to think about correctness or maintainability. You certainly don't want to pay a contractor $$$ to cook something up if it's only three dozen lines and will only be used for two weeks. For those casesÃ"the "who cares if it works six months from now, we just need it to do something specific for us this afternoon" caseÃ"you just need it to work once or twice, during the current project, as a part of the *process* of getting it done, not as an *asset* to monetize over time.

    I totally get where he/she is coming from.

  • Re:Python (Score:3, Insightful)

    by Anonymous Coward on Sunday June 15, 2014 @02:58PM (#47241469)

    Learn one and use it. It doesn't have to be 'new' and 'sexy' and, and, and...just use what works for you. For me it's perl.

    I write perl code for CGI that also incorporates javascript, css and even PHP. JQueryUI has a hella pile of UI goodies that scale across mobile and desktop devices and perl has a deep, DEEP bench of available modules.

    Undoubtedly you can do the same in python or ruby; but I have a perlhammer, so every problem is perlnail.:-/

  • C# and JQuery (Score:2, Insightful)

    by Anonymous Coward on Sunday June 15, 2014 @04:03PM (#47241807)

    *ducks tomatoes*

    I've had no problem neither finding employment nor developing projects that were truly fulfilling by working in nothing but MS shops my entire (albeit short) career. Career Aspirations aside, even if you're looking to be a happy go lucky, change the world hippy anti-establishment coder C# has still (*gasp*) surpasses Java.

  • by MrBandersnatch ( 544818 ) on Sunday June 15, 2014 @04:46PM (#47241949)

    sorry there is no one-size fits all solution. The *closest* is Javascript and client-side development isn't that painfull these days but its still Javscript and WILL bite you on the ass.

    So I'd say it boils down to either Python or Ruby + Javascript and if I'm honest, I'd say Python has the edge in terms of general applicability. I *personally* prefer the Ruby language, but that's not what you're asking. Breaking it down:

    Server side, backend = Python+Django OR Ruby+Rails if you want to get stuff done and stay sane. Ruby should be considered Linux only server side, but then server-side should be considered *nix only. Node works but...its javascript.
    Server side Scripting = Python/Ruby are both sensible choices. I prefer Ruby as a language but Python is a safer choice given the library support and performance. The exception is server/cloud management for which Ruby still has an edge (debatable, I know).
    GUI/Desktop Clients, Python + QT. Great combination. Its possible to use QT with Ruby, it just doesnt feel right though.
    OSX/IoS/Android - Ruby/Rubymotion. Really, really nice if you're developing for the Apple side. Android support is early days.
    Browser - Javascript + Framework + UI components of choice. Learn javascript, one framework and one set of UI components and you're set. Well, until you need something a bit different....but its Javascript.

    BTW I said I'm a Ruby guy but I've 10 years of Python experience. If the project is suitable though I'm more productive with Ruby (with 18 months experience) but it really is a case of the right tool for the right job.

  • Re: Two languages (Score:2, Insightful)

    by angel'o'sphere ( 80593 ) on Sunday June 15, 2014 @06:08PM (#47242351) Journal

    A syntax that does not rely on indentation?
    Methods where you don't need to call the first parameter 'self'?
    Lots of 'categories' that improve the existing Java foundation classes?
    A language that is just simpler to read and write than python?

  • Your problem (Score:3, Insightful)

    by AchilleTalon ( 540925 ) on Sunday June 15, 2014 @06:42PM (#47242533) Homepage

    Your problem is hidden in the list of requirements which have absolutely nothing to do with the programming language itself and all with the APIs. No matter how fluent you are in a programming language, if you don't know the specific APIs for GUI desktop, Web, mobile, etc, you will not succeed.

    Frankly, I don't feel your question is serious given you are describing yourself as an occasional programmer which needs to be able to program code for almost all platforms and type of interfaces. Seems to me like a forged question to try to find a one-size-fits-all solution for your hypothetical needs.

    Nobody learn all the APIs in the world in case. You learn them as you go along and some of them requires major time investment which you will surely avoid to do if you are really an occasional programmer without time to learn in detail the API for perhaps a one-time-shot usage.

  • by aminorex ( 141494 ) on Sunday June 15, 2014 @09:11PM (#47243083) Homepage Journal

    > There's been more money to be made with Objective-C

    Only for the mediocre. For skilled persons, most of the money has been in matlab.

Testing can show the presense of bugs, but not their absence. -- Dijkstra