Slashdot Mirror


Ask Slashdot: Best Rapid Development Language To Learn Today?

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?

466 comments

  1. Python by Anonymous Coward · · Score: 0

    'Nuff said

    1. Re:Python by Anonymous Coward · · Score: 1

      Javascript is a terrible language and the server side libraries are mostly terrible. For instance, the database libraries are all trash compared to SQLAlchemy, NHibernate, JDBI, Entity Framework etc.

    2. Re: Python by Anonymous Coward · · Score: 0, Interesting

      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.

    3. Re:Python by buchner.johannes · · Score: 5, Informative

      There are two possible answers to the question: Python and Javascript.

      Python is a general-purpose language, with a large number of user areas. It is your best bet for general applicability.
      However, if you want to aim for the web market -- which, granted, is huge -- go with Javascript.

      That's pretty much all you need to know to make your decision.

      --
      NB: The message above might reflect my opinion right now, but not necessarily tomorrow or next year.
    4. Re:Python by Anonymous Coward · · Score: 0

      So what? It pays and it gets the job done. You have to learn javascript anyway if you want to work on the web. Any other route means having to learn and master multiple languages. Also, Javascript is NOT a terrible language at all, it's just different. Have you even USED node? It's easy, pretty quick (especially compared to ruby/php) and easy to pick up. The async approach dodges the heisenbugs of multithreading.

    5. Re: Python by Anonymous Coward · · Score: 0

      That isn't being debated. What is is whether it is a rapid prototyping language that is heavily used, where there is ease of available work at a wage that one can live off of. Sure there are better tools for the job, but everyone needs JS right now. Only a minute subset needs python.

    6. Re:Python by Anonymous Coward · · Score: 1

      I don't really like Python but I think it's a pretty good choice right now for rapid application development. It's a pretty mediocre language but it has proven and thoroughly tested libraries for basically everything.

    7. Re:Python by TheGratefulNet · · Score: 1

      python.

      after 30 or so yrs in C, I'm finally getting some time (at work) to learn python. I already know bash, but python is getting more popular by the year and shows no signs of fading.

      groovy? are you kidding me. be serious. if you want java, run fucking java and not some bastardization of it that forces people who have to support your code to waste time on a variant of a language that is just not worth the short amount of expendable/spare time we have.

      --

      --
      "It is now safe to switch off your computer."
    8. Re:Python by mrvan · · Score: 3, Insightful

      Python: 'Nuff said

      +1

      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.

    9. Re:Python by Anonymous Coward · · Score: 0

      Any other route means having to learn and master multiple languages.

      the horror!

      If you only want to learn one language, learn C++. Which is actually multiple languages.

    10. Re:Python by Anonymous Coward · · Score: 0

      The async approach dodges the heisenbugs of multithreading.

      There are tons of gotchas with the way async routines are implemented in Javascript/Node, especially when it comes to proper error handling, and the vast majority of the Javascript community doesn't understand the implementation details enough to use it properly. It's a huge house of cards.

      This fear of real multi-threading is also laughably pathetic.

    11. Re:Python by tomhath · · Score: 1

      If you want to spend your weeks sitting next to hipsters who think they know everything about software development because they can write a simple Javascript method, then learn Javascript. But if you already have a job and want a language that can do pretty much anything quickly then learn Python; and learn how to program it properly, rather than like a C or Java programmer (if there is such a thing).

    12. Re:Python by petes_PoV · · Score: 5, Insightful
      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

      --
      politicians are like babies' nappies: they should both be changed regularly and for the same reasons
    13. Re: Python by rubycodez · · Score: 4, Interesting

      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

    14. Re:Python by rubycodez · · Score: 3, Insightful

      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.

    15. Re:Python by Snotnose · · Score: 1

      Python++. The only thing I don't like about it is the way whitespace delimits blocks, but that's already been gone over.
      Javascript is the language from hell, I wouldn't recommend it to anybody.
      Off the top of my head, here's the languages I've used enough to feel like I was good at: awk, sed, bash, C, C++, perl, python, java, javascript.

    16. Re:Python by narcc · · Score: 2

      It's a fine language. The two biggest problems, which have caused most of the confusion, can easily be ignored: new and constructor functions. (They're why every half-wit on Slashdot thinks that 'this' is 'broken' or 'confusing'.) Avoid those while you're learning and you'll find a surprisingly sophisticated language. You'll wonder how you ever put up with Java and C#.

      You'll want to learn them later, of course. But only because you'll see them inexplicably used in other people's code.

    17. Re:Python by thoth_amon · · Score: 5, Interesting

      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.

      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.

    18. Re:Python by mrvan · · Score: 2

      Yeah, although I understand the reasoning for the whitespace and don't object on principled grounds, it can be quite annoying practically if you are copy/pasting code, need to (de)indent a large block, and especially if you are forced to develop somewhere where your favourite editor/IDE that actually handles these cases well is unavailable and you have to work with something that actually inserts a tab when you press tab... *shudders*

      It's also a shame that some of the things corrected in python3 were not corrected earlier, but at least they did have the courage to make some breaking changes, instead of waiting for the next language to come around and start without the excess baggage but also without the built-up community and design experience...

    19. Re:Python by narcc · · Score: 1

      is just passing fad, it does not have the mature libraries of other languages

      Considering how new it is on the server, I'm not surprised. It may very well be a passing fad, a point to which I'm inclined to agree, but that's not one of the reasons why.

    20. Re:Python by Anonymous Coward · · Score: 0

      You can't argue with a corporate sheep. they will always pick what the industry tells them to pick.

    21. Re:Python by Anonymous Coward · · Score: 0

      he just wants to get stuff done

      Well, if it's numerical stuff, he should learn APL or J (the real J which is an evolution of APL, not Microsoft's J++ bastardization of Java). Mind you, he might need a little math to think in terms of arrays instead of loops. One of my hobbies a few decades ago was compressing APL's library functions; it was an achievement to knock one line from a 10 line function (10 lines is a lot in APL).

    22. Re:Python by rubycodez · · Score: 1

      link please to the mature libraries that let javascript be used for any purpose whatsoever? I see lots of amusing test / beta quality crap efforts on sourceforge, but they aren't production grade. X11 server in javascript, there's a cute one

    23. Re:Python by thoth_amon · · Score: 2

      I'd much rather code in Scala or Clojure than Java. And these languages have good, and increasing, user bases who can provide support for those languages. An increasing number of companies are adopting these languages for production tasks, too -- apparently they feel they can find people who can support them.

      I'm not saying Groovy per se is a good choice (or not a good choice), just rejecting the general argument that we should stick to the core language of a system for support reasons. If that argument were valid, then we should use assembler instead of C, we should dump CoffeeScript and the like in favor of JavaScript, and of course we shouldn't use any of the great new JVM languages, presumably sticking with Java 6 or something so we can make the lives of lowest-common-denominator programmers maximally easy.

    24. Re:Python by Anonymous Coward · · Score: 0

      Whitespace. That one thing that drives me nuts about Python. I can't get used to it. I've tried. And I'm fairly fussy about indenting code carefully even in languages which have braces to delimit blocks. I know regular python users who love the language are tired of hearing about people whining about whitespace, but I honestly have difficulty with the convention in python.

    25. Re:Python by Anonymous Coward · · Score: 1

      LOL WUT?!

      Yes, you most definitely can make webapps in C++.

      You're more wrong than a football bat.

    26. Re:Python by Anonymous Coward · · Score: 1

      Then other option is C# by reformating and installing Wins 8: dun dun dun... ;-})

    27. Re:Python by Anonymous Coward · · Score: 0

      Their are programmers who woke up from a coma I believe, and are writing webapps in x86 asm so, if their is will their is a way...

    28. Re: Python by Anonymous Coward · · Score: 0

      Fret not, I charge a huge commission to Python up to code... ;-}):-

      a,
      cyberConsultant

    29. Re:Python by Anonymous Coward · · Score: 1

      Have you read the original post? It's just honest. Multi-threading is a can of worms for someone who isn't a dedicated developer. I've seen some nasty and subtle bugs from multithreading - especially if someone doesn't REALLY get it. Hrmmm... that sounds like the OP to me.

    30. Re:Python by Anonymous Coward · · Score: 2, Interesting

      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.

    31. Re:Python by Anonymous Coward · · Score: 0

      Sure you can. OKCupid runs off C++

    32. Re:Python by savuporo · · Score: 1
      --
      http://validator.w3.org/check?uri=http%3A%2F%2Fwww.slashdot.org Errors found while checking this document as HTML5!
    33. Re:Python by savuporo · · Score: 2

      And if you are really claiming that packages here https://www.npmjs.org/browse/d... are not stable and dependable, you sir are an idiot.
      Same with this http://stats.bower.io/

      --
      http://validator.w3.org/check?uri=http%3A%2F%2Fwww.slashdot.org Errors found while checking this document as HTML5!
    34. Re:Python by Anonymous Coward · · Score: 3, Insightful

      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.:-/

    35. Re:Python by MightyMartian · · Score: 1

      JavaScript is a lot of things, but fast prototyping language it ain't. You spend as much time peering through references as you do coding.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    36. Re:Python by Anonymous Coward · · Score: 0

      I don't put up with the pile of shit that is Java/C#. So why would I accept JS?

    37. Re:Python by qpqp · · Score: 1
      I recommend you read this.
      Some tidbits:

      Node.js is fast!
      [...]
      V8 has done incredible things to run JavaScript code really fast. How fast? Anywhere from 1x to 5x times slower than Java [...]
      Conclusion? Node.js is best suited for CPU-bound regex-heavy workloads.

      Node.js is non-blocking! It has super concurrency! It’s evented!
      Node.js is in this weird spot where you don’t get the convenience of light-weight threads but you’re manually doing all the work a light-weight threads implementation would do for you. [...] instead of being used to work around recursion growing the stack, it’s used to work around a language without built-in support for concurrency. [...]

      Node.js makes concurrency easy!
      JavaScript doesn’t have built-in language features for concurrency, Node.js doesn’t provide that magic, and there are no metaprogramming capabilities. You have to manage all of your continuations manually, or with the help of (lots of different) libraries that push JavaScript syntax to its absurd limits. [...] It’s the modern-day equivalent of using GOTO because your language doesn’t have for loops.

    38. Re:Python by knightghost · · Score: 1

      Learning a language to accomplish this is a miss. Learn an architecture. The language is just there to make tweaks to RAD/XP/Agile designs.

    39. Re:Python by indeterminator · · Score: 2

      I expect server side JS to be about as passing fad as writing operating systems in C.

      It's not great for typical cron jobs or admin scripts. What it is great for, is small server damons. The single threaded everything-is-asynchronous model works so well for that, you don't want to go back once you get started.

    40. Re:Python by rubycodez · · Score: 1

      yes, one group at work that has jumped onto the node.js bandwagon has indeed found that some of those packages are poor crap. you are the idiot, or at least inexperienced, maybe having very recently jumped onto the bandwagon yourself

    41. Re:Python by rubycodez · · Score: 1

      yes, that would be an example of pile of libraries some of which are very new and immature

    42. Re:Python by savuporo · · Score: 1

      "Some of these packages are poor crap" out of tens of thousands in repository ? Oh, the humanity ! How is that different from any other programming language ? 90% of contents of any open source repositories is poor crap, be it github, sourceforge ( is that still alive ?? ) or even volumes of example code docs put out by good wise companies like Google, Apple or Microsoft. Its your job as a developer to sort through the crap that stinks less.
      And no, i dont regularly attend parades and do not ride on bandwagons, thanks.

      --
      http://validator.w3.org/check?uri=http%3A%2F%2Fwww.slashdot.org Errors found while checking this document as HTML5!
    43. Re:Python by savuporo · · Score: 1

      If FORTRAN and ADA are more of your thing, go right ahead. I hear COBOL programmers used to be immature as well 30 years ago, but maybe the situation has improved by now.

      --
      http://validator.w3.org/check?uri=http%3A%2F%2Fwww.slashdot.org Errors found while checking this document as HTML5!
    44. Re:Python by SpaceCracker · · Score: 1, Funny

      Remarkable language C#. Beautiful plumage, ain't it?

      [Sorry, couldn't help it...]

      --
      sigo ergo sum
    45. Re:Python by Anonymous Coward · · Score: 0

      But if you already have a job and want a language that can do pretty much anything quickly then learn Python; and learn how to program it properly, rather than like a C or Java programmer (if there is such a thing).

      I wouldn't be ragging on the C programmers if I were you. If it wasn't for them, the applications you write in Python would be miserably slow. All those nice libraries that are fast and nice to use are written in C.

      Of course, Python is just Perl for the hipsters.

    46. Re: Python by Anonymous Coward · · Score: 0

      What do you think Facebook is written in? It used to be PHP, then they entirely rewrote it in C++.

    47. Re:Python by Anonymous Coward · · Score: 0

      "there"

    48. Re: Python by Bill_the_Engineer · · Score: 1

      Let's be honest. Python may support multiple threads of execution, but most of the time (thanks to the GIL) it's just shooting yourself in the foot. Threads in Python always had the feel of being simply a feature that is on a checklist. "Does Python have multithreading? Yea sure..."

      You better off keeping the multithreaded work in C or just run multiple Python processes.

      --
      These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
    49. Re: Python by Bill_the_Engineer · · Score: 1

      I'll add one more thing. Sometimes you got to have a Python thread and most of the time it's because you need to do some I/O that is separate from your main thread of execution. Keep it to a minimum and you won't take too much of a performance hit.

      Seriously though, Python is good for getting stuff done when you don't really care how fast it is completed. Otherwise there are better languages out there, but most would argue that the performance gains you make are offset by the programmer productivity lost.

      --
      These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
    50. Re:Python by Belial6 · · Score: 1

      Even more so, if it were not for those C programmers, the OP likely wouldn't be running Python at all. I'm not familiar with any hardware that runs Python natively.

    51. Re: Python by Anonymous Coward · · Score: 0

      They did not.

    52. Re:Python by thoth_amon · · Score: 4, Interesting

      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.

    53. Re: Python by TapeCutter · · Score: 1

      Agree, I use python almost daily but I've never felt the need to use it for multithreading. Speed is not what Python is about, it's about fast prototyping and integration work, for example automating build scripts. It's very easy to learn, particularly if you have a C/Lisp background.

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
    54. Re: Python by Anonymous Coward · · Score: 0

      Wow, you republicans are all alike. It does not matter how much you conservatives hate PHP. You people have tried for years to stop. Guess what? You failed.

    55. Re: Python by Anonymous Coward · · Score: 0

      C# is an incredibly rich language. I think you have no idea what you're missing. However dependency on the .NET Framework can be a PITA.

    56. Re:Python by Alien1024 · · Score: 2

      As others have pointed out, what the OP is asking for is, basically, a language that does it all across many platforms, a tool that does all jobs, and I'm afraid that doesn't exist. The closest thing, IMHO, would be the oh-so-obvious answer "Java", except it's not interpreted.

      Anyway, a question to those who are answering Python and Javascript: since the OP is asking for something that has, among other things, "mobile relevance, GUI desktop applications relevance", are there any decent IDEs/APIs/whatever that facilitate Rapid development of desktop programs and what these days is referred to as "mobile" (meaning, mainly, iStuff and Android Apps)?

    57. Re:Python by Anonymous Coward · · Score: 0

      1. give it time.
      2. Why reinvent X11 in JS?? I assume that the OP wants to do new things, not re-code old solutions in an arbitrary new language. For the current world of web-apps JS is great. It's not for writing an OS (yet anyway). I seriously doubt that's the goal though.

      For just getting things done, pretty easily and quickly and having it be working software, JS is great. Every person I've met otherwise is either trying to solve problems were JS shouldn't even be considered (embedded programming) or just really really doesn't get or doesn't want to get how JS works and how to use it. They want to write some other language in JS syntax and then whine when it's not the thing they are used to.

    58. Re:Python by rubycodez · · Score: 1

      I am talking about compared to Perl and Python and say Java (not the *script) libraries, and even Ruby which is somewhat lesser by that measure

    59. Re:Python by aminorex · · Score: 1

      make it kx and he can start a new career in finance

      --
      -I like my women like I like my tea: green-
    60. Re:Python by aminorex · · Score: 2
      --
      -I like my women like I like my tea: green-
    61. Re:Python by dbrueck · · Score: 1

      Most hardware doesn't run C natively either. ;-)

    62. Re:Python by Concerned+Onlooker · · Score: 1

      Yes, but if you hadn't nailed it to the perch it would be pushing up daisies.

      --
      http://www.rootstrikers.org/
    63. Re:Python by Belial6 · · Score: 1

      OK, I'm not familiar with any OS that consists of Python compiled to machine language.

    64. Re:Python by Anonymous Coward · · Score: 0

      It always depends on your needs, what language you choose.

      There is no single best language, they are all good at what they do. They just do different things good.

      For C, if you gonna write lowlevel stuff, or if you gonna write for embedded with small amout of memory, or legacy computers, why not?
      If you gonna write a Operatingsystem then selected C.

      Java, if you gonna write Enterprice software and want to be able to employ people with 10 years in the buessnies.
      Running on the JVM is ofcourse a good way to easliy debug things,
      Dont forget about mobiles, you want to write for mobiles, select Java

      Scala, Clojure, if you gonna write a small new program, with a selected crowed that you know like these languges, then please go ahead.
      I dont think you should expect the same level of experience in the developers you hire here, cause the languages hasn't been around and tested for that extent of time.

      C++, if you do hardcore gaming, and visual stuff. Hard to understand and debug, but fast.

      JavaScript, CoffeScript, I can for one not find a single application where these langues fit, but that is me, cause I got tired of doing webwork 14 years ago :-)
      But if you are working with web frontend, then you probably should select one of these languages.

      As a developer for the last 14 years, I have to say:
      The knowledge of the libraries for a language, is more important then the language itself.
      If you are kickass in everything around it, then please do select Visual Basic :D

    65. Re:Python by Anonymous Coward · · Score: 0

      yay! jsoftware

      But it's certainly got it's learning curve.

      Seriously, the answer to his question is python.
      Or maybe ipython

      If non-open expensive things are an option: LabView is ridiculously easy and fast: Practically a fun toy except with C power. You can even program FPGA's in it.
      But expensive as all get out, and suffers terrible version 1.0-itis: You'll be flipping dvd's quite a while to install it, it's a heavyweight. It really needs a ground-up rewrite to handle diagrams in vector, not bitmap. Like playing TA when you could be playing sup-com or PA : You'll miss the ability to zoom out.

      Mathematica is surprisingly easy / useable if you like dealing with a little data, and a lot of math. (Less good if your data doesn't fit easily in RAM), A lot cheaper and smaller than LabView, and a different beast entirely, really.
      It is epic for getting to the bottom of some complicated equations, eg: compressible flow dynamics / rocket science.

      But I use plain C for grokking big data, it's much quicker to mmap the whole thing and let the kernel sort out the buffering.
      (~multi TB data). J can do this, but not nicely for 24bit data :(

    66. Re: Python by PC_THE_GREAT · · Score: 2

      Python breaks a lot. Libraries keeps changing a lot, I have no idea whether they heard about keeping backward compatibility when they started developping Python.

      Python Engineering wise is a nice language, usage wise, it is not something i consider mature, many will disagree, and well i am not here to impose my view, so please feel free to disagree.

      Want something nice to learn, Try Perl, Try GoLang.

    67. Re: Python by Anonymous Coward · · Score: 0

      No, they use a mix of languages. PHP is still in there, and yes C++, but also I think Python. I ran into an ex-FB dev in Panama last week. Entirely rewriting something as large as Facebook in another language is a slow process. That they created a PHP compiler first should tell you something.

    68. Re:Python by Anonymous Coward · · Score: 0

      But if you already have a job and want a language that can do pretty much anything quickly then learn Python; and learn how to program it properly, rather than like a C or Java programmer (if there is such a thing).

      I wouldn't be ragging on the C programmers if I were you. If it wasn't for them, the applications you write in Python would be miserably slower. All those nice libraries that are fast and nice to use are written in C.

      Of course, Python is just Perl for the hipsters.

      fixed that for you

    69. Re:Python by Anonymous Coward · · Score: 0
      If you really want to get stuff done, you use perl.

      And let the language/frameworks fanbois continue to suck each other's dicks.

      I recently had to dive into some large java codebases, and I was amazed how kludgy, unreadable and unportable everything was.

      My throwaway perl oneliners and hacks look like textbook programming in comparison ;-)

    70. Re:Python by Anonymous Coward · · Score: 0

      That's not even close to being true.

    71. Re: Python by MikeBabcock · · Score: 1

      None of your facts make sense ... Python has threading, can process data very quickly and has actually evolved over its lifetime.

      --
      - Michael T. Babcock (Yes, I blog)
    72. Re: Python by dilvish_the_damned · · Score: 1

      "Have to" is pretty strong wording considering you must do nothing of the sort.

      --
      I think you underestimate just how much I just dont care.
    73. Re: Python by dilvish_the_damned · · Score: 1

      I think you meant Perl. Python is for something else.

      --
      I think you underestimate just how much I just dont care.
    74. Re:Python by MooseMiester · · Score: 1

      Quick to learn - sort of. The way Python does object oriented things drove me batty when I learned it. It pretends to be object oriented but it's not - at least to an old C++ guy like myself.

      Portable, yes. One of the few languages that really is portable.

      The biggest issue I had with Python was that when I looked at the code I had written two weeks later it was very hard to see what it did quickly, as the language is almost a little "too" compact.

      I have found Django guys are almost impossible to find.

      --
      Murphy was an optimist
    75. Re:Python by dbrueck · · Score: 1

      Sorry, I'm struggling to understand the point you're trying to make, as well as correcting the implication that there's generally available hardware that runs C natively.

      The fact that Python was originally written in C is an argument for not using Python? I don't get it.

    76. Re: Python by Bill_the_Engineer · · Score: 1

      As a user of both (more so for Perl), I would say that for all practical purposes they are equivalent.

      --
      These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
    77. Re:Python by Anonymuous+Coward · · Score: 1
      Not only was Python /originally/ written in C, it /still/ is written in C.

      And most hardware is able to run C natively -- C is just a glorified assembler. And ISAs which didn't map nicely to C, like pdp10, are long gone.

      Anybody would love a system programming language other than C, less anchored in single-threaded '70 pdp11 concepts and idiosincrasies; but as long as there isn't any, stop pitching your slow bloated language-of-the-day, and pretending that with enough kool-aid and meditation, you can replace C with Java or Python.

    78. Re:Python by dbrueck · · Score: 1

      *Some* versions of Python are written in C, but not all of them. In fact, the version you're referring to is officially known as CPython to differentiate it from the others.

      Claiming that hardware can run C natively is quite a reach. Your definition of what it means to run a language natively is so broad that it encompasses a large number of programming languages (if not all of them). Even before abstractions like LLVM were introduced, going from C to hardware involved translating to assembly and then machine language - multiple steps.

      And "language-of-the-day"... really? Python is over 20 years old. I think it's beyond the passing fad stage.

      Finally, it's not about getting rid of C, but people use higher level languages like Python over C for the same reason we generally stopped using assembly in favor of C back in the day - the costs vs benefits made it worth it in many cases. C's a good language in many ways and I still use it where it's the right fit, but these days it's realistic to get anywhere between 2x and 10x the productivity by using a higher level language than C. And if the cost is very little in practical terms, it's hard to justify not using a higher level language for many projects. Just like assembly, C probably won't go away anytime soon, if ever. But just like with assembly, these days there are many, many, many scenarios in which the cost vs the benefit isn't worth it.

    79. Re:Python by Belial6 · · Score: 1

      Then you should spend more effort in reading. The OP was trash talking C programmers. The OS that you run your Python on was written in C. C is for all intents and purposes the mother language that the rest of the computer age is built on. It is not an argument against using Python. It is an argument against Python developers claiming C is inherently flawed. Because without C and it's developers, you wouldn't have Python developers.

    80. Re:Python by dbrueck · · Score: 1

      I wasn't replying to the OP, nor (AFAICT) were any Python developers claiming C is inherently flawed. I was responding to the "Python is just Perl for the hipsters" nonsense as well as the weird statement that implied hardware ran C natively.

    81. Re:Python by Belial6 · · Score: 1
      You are trying to hard to pick apart individual words. I can write an application in C and with no other software have it running on the vast majority of hardware in the world with no other layer of software required for that application to run. Conversely, I don't know of a single piece of hardware that can run a program written in Python without the use of a layer of software, generally written in C.

      But if you already have a job and want a language that can do pretty much anything quickly then learn Python; and learn how to program it properly, rather than like a C or Java programmer (if there is such a thing).

      This comes across as being derogatory towards c programmers.

    82. Re: Python by david_thornley · · Score: 1

      Given that this is for somebody who wants to occasionally get some programming done, what do threads have to do with it? Threads are problems waiting to happen, unless you know what you're doing.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    83. Re:Python by Anonymous Coward · · Score: 0

      I don't think he's implying that there's hardware that "runs C natively."

      What does "native" mean? Typically it's binary executables in the native machine language of the machine you're running the code on, i.e. compiled rather than interpreted. You can't make those with Python.

      Compiled languages give the best performance by minimizing the amount of work the CPU has to do to execute your code at runtime, although interpreters combined with JIT compilers are getting very close.

      Of course, you know all this... so what was YOUR point again?

    84. Re:Python by dbrueck · · Score: 1

      Agree to disagree on what he's implying - the context was talking about C and Python and mentioning that he's no familiar with hardware that runs Python natively. If he wasn't implying that C on other hand does run natively, then the comment seems to have no meaning.

      And yes, there /are/ versions of Python that compile to native code, but most people use the interpreter flavors as they give the most flexibility or have the fewest restrictions. Similarly, there are interpreted versions of C, but most people use the compiled flavor.

      JIT-compiled languages sometimes in fact exceed statically-compiled languages as far as performance goes, but in general don't yet.

      My point(s)? To recap: hardware doesn't run C natively. Python is not a language-of-the-day or some passing fad. The fact that the main version of Python is written in C is mostly irrelevant (as in, I'm still not sure why it was mentioned and it does not mean Python is not useful or not worth learning). Raw performance of a language is rarely as important as developer productivity, and languages like Python regularly yield higher developer productivity than lower level languages like C. More and more people moved to C from assembly as the benefits exceeded the costs more and more, but assembly of course didn't go away. More and more people move to higher level languages like Python from C as the benefits exceed the costs more and more, but C of course won't go away. The trend will likely continue, with lower level languages becoming more and more niche because progressively powerful and higher level languages will continue to provide benefits that outweigh the costs, while the lower level languages will not warrant as much use because of the relatively lower productivity.

    85. Re:Python by Anonymous Coward · · Score: 0

      And yes, there /are/ versions of Python that compile to native code

      Please tell me more... I've heard of the JIT-based Pythons and ones that cross-compile to other languages, but haven't heard of a source-to-native-binary Python compiler.

    86. Re:Python by dbrueck · · Score: 1

      I haven't kept up on what the latest and greatest things are in this area, but last time I checked Shedskin seemed the most mature and had a relatively small set of restrictions (in most cases, converting Python to a statically-compiled language involves either giving up some of Python's dynamicness to make it "fit" into the more static language or adding some sort of layer on top of the static language to support more dynamic functionality - Python is strongly but dynamically typed).

      Anyway, py2c and Nuitka both seem to be in the same space as Shedskin but I haven't used either.

      Cython bills itself as an "optimizing static compiler" for Python, although I think it's geared more towards writing Python extensions in C as opposed to trying to convert your entire program away from Python (i.e. it's a good fit if you're writing in Python but want to statically compile some performance critical parts of your app in C, or if you are calling some C library and don't want to use ctypes or cffi).

      I believe that for awhile rpython (from the pypy project) optionally targeted the LLVM; not sure if that ever went anywhere.

      The above are just the ones I've heard about; don't know if there are others.

    87. Re:Python by Anonymuous+Coward · · Score: 1

      Claiming that hardware can run C natively is quite a reach. Your definition of what it means to run a language natively is so broad that it encompasses a large number of programming languages (if not all of them).

      It's not about the number of passes of the compiler or if a language is supposed to be portable or not, but about the "virtual machine" abstraction a language is assuming, and how far is that from what typical hardware has to offer.

      To run any Lisp or Python program, no matter what interpreter/compiler you use, you need to implement garbage collection, reflection, run-time code evaluation, etc.

      Those features are neither light-weight, trivial nor scope-limited, unlike software routines implementing integer multiplication/division (on alpha) or a floating point emulator (on most arms) -- that are needed for a full C implementation.

      And if you strip your language of those complex features, you also lose the 10x productivity you like to claim, and you simply get a C without pointers.

    88. Re:Python by dbrueck · · Score: 1

      Claiming that hardware can run C natively is quite a reach. Your definition of what it means to run a language natively is so broad that it encompasses a large number of programming languages (if not all of them).

      It's not about the number of passes of the compiler or if a language is supposed to be portable or not, but about the "virtual machine" abstraction a language is assuming, and how far is that from what typical hardware has to offer.

      So, by your definition, most modern machines run Pascal natively? All I'm pointing out is that this is a pretty atypical use of the term "natively". Native code, for example, refers to code in its binary (processor-specific) form. No processor that I'm aware of knows how to run C code natively - it has to first be taken from its portable format and translated into native (assembly and then machine) code. It's not a matter of when or how that translation happens; processors simply don't speak C.

      The abstraction of a virtual machine is definitely interesting, it just has nothing to do with whether or not processors can run C natively.

    89. Re:Python by Anonymous Coward · · Score: 0

      And most hardware is able to run C natively

      This doesn't even mean anything. C has to be compiled to native code, just like any other compiled language. There's nothing special about C except maybe it has a lower level of abstraction of data types.

      C is just a glorified assembler.

      Said every C programmer who's never tried to write a compiler.

      I don't know why this trope persists; programming in C is nothing like programming in assembly. C is structured, assembly is not. That structure is easier to implement in a C compiler than in some other languages, but it's well beyond "glorification" of assembly.

    90. Re:Python by Anonymuous+Coward · · Score: 1

      Native code, for example, refers to code in its binary (processor-specific) form. No processor that I'm aware of knows how to run C code natively - it has to first be taken from its portable format and translated into native (assembly and then machine) code. It's not a matter of when or how that translation happens; processors simply don't speak C.

      You still don't get it.

      Running your Python code is not just a matter of 'translating', 'interpreting', whatever they say in tutorials. The problem is that your program needs /at runtime/ some bloated, slow VM written in C and it will still need it even if you compile your program into native code. It simply cannot work without it.

      By comparison, if I compile C program for the attiny13a, I get some dozen or hundred bytes to put into its memory to run through them, and that's it.

      And the situation wouldn't change no matter how many compiler passes I do, or what "abstraction level" I use, or whatever. It's still very much an assembler, even if I was producing machine code from flowcharts, koans or gestures.

    91. Re:Python by dbrueck · · Score: 1

      Native code, for example, refers to code in its binary (processor-specific) form. No processor that I'm aware of knows how to run C code natively - it has to first be taken from its portable format and translated into native (assembly and then machine) code. It's not a matter of when or how that translation happens; processors simply don't speak C.

      You still don't get it.

      Actually I /do/ get it. I'm really quite familiar with how Python works, as well as how C, assembly, and machine language work. I'm not debating one is the other, nor that VM vs not is better than the other. What I *am* saying, however, is that the thing you're talking about is not the same thing as a processor supporting such and such a language natively. "Natively" means something specific, and what you're talking about isn't it.

      I'm not saying that Python does or doesn't require a runtime, a virtual machine, etc. (even though there are some versions that don't). What I /am/ saying is that I don't know of any processor that runs C natively. Make up a different term for the concept you're talking about, because "natively" already has a meaning in this context, and how C works is definitely not native.

    92. Re:Python by Anonymous Coward · · Score: 0

      Running your Python code is not just a matter of 'translating', 'interpreting', whatever they say in tutorials.

      That's the relevant part, though. If you're compiling down to bytecode for a virtual machine or machine code for a different platform that need to be emulated or translated at runtime, you are using the interpreter/emulator/JIT compiler to run non-native code.

      The problem is that your program needs /at runtime/ some bloated, slow VM written in C and it will still need it even if you compile your program into native code. It simply cannot work without it.

      True, but lots of languages need a runtime environment even for native code - Objective-C and Smalltalk, for example.

      By comparison, if I compile C program for the attiny13a, I get some dozen or hundred bytes to put into its memory to run through them, and that's it.

      Nothing to do with native vs. non-native. Hope this clears things up for you.

  2. Two languages by angel'o'sphere · · Score: 1

    Coffeescript, compiles to JavaScript and obviously runs in any JavaScript environment
    Groovy, an enhanced lazy typed Java, running on the JVM

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    1. Re:Two languages by Anonymous Coward · · Score: 0

      RapydScript is better than CofeeScript.

    2. Re: Two languages by Anonymous Coward · · Score: 0

      I would agree with Groovy. It takes the best parts of Python and makes them better. Collections in Groovy is amazing as is its multithreading capabilities. Even better library support than Python because you can use any Java library you want. Additionally one of the best (if not the best) MVC web framework uses Groovy... Grails.

    3. Re: Two languages by tdelaney · · Score: 3

      So exactly what do you get with Groovy that you don't get with Jython (Python on the Java VM)? Apart from different syntax of course ...

      One of the great things about Python is it runs just about anywhere. There are even embedded versions.

      The only real problem with Jython is it doesn't implement Python 3 yet.

    4. Re: Two languages by angel'o'sphere · · Score: 1, Insightful

      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?

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    5. Re: Two languages by stephenmac7 · · Score: 1

      Enforcing style isn't a bad thing. It's not like they're telling you what type of indentation to use. If you don't indent, then you shouldn't even be writing code anyway.
      What's wrong with calling the first parameter 'self'. Is that just bothersome? If you don't want to call it self, call it whatever you want. Python does not force you to name it that.
      I'm not sure what categories are, so I can't refute that.
      Groovy being simpler to read and write is highly subjective.

      --
      "No man's life, liberty, or property are safe while the legislature is in session." -- Judge Gideon J. Tucker
    6. Re: Two languages by Anonymous Coward · · Score: 0

      "So exactly what do you get with Groovy that you don't get with Jython (Python on the Java VM)?"

      Hipster street cred.

    7. Re: Two languages by Anonymous Coward · · Score: 0

      style and syntax should be separated tho. any language where casual indentation can break the code is fundamentally wrong surely?

    8. Re: Two languages by Anonymous Coward · · Score: 0

      Yeah, Python, Lua and Javascript. The rest of the languages will die out or hugely marginalized. (I'm a C programmer BTW.)
      If I would have to restart my life, I would learn to be a Python-wizard.

    9. Re: Two languages by Anonymous Coward · · Score: 0

      From a compiler perspective, having white space be semantically meaningful is an incredibly stupid thing.

      It makes the language crufty and ugly.

      From a syntax perspective, Python is a bad joke.

    10. Re: Two languages by angel'o'sphere · · Score: 1

      In all other languages you don't need to add that extra parameter declaration, it is introduced by the compiler automatically.
      The point about indentation is: two tabs have the same value as two spaces. And bottom line I find it idiotic to use indentation as replacement for { / } or begin/end. It makes automatic code generation e.g. a night mare.

      Categories are a trick to add methods to a class from the out side (kind of a wrapper with extra methods which area dded to your class). You can enhance classes by this without having access to the source code. Well in SmallTalk categories are something different.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    11. Re: Two languages by angel'o'sphere · · Score: 1

      Jython is much slower than Groovy.
      Groovy is compiled to a great deal into byte code, whereas Jython is compiled into Java data structures, mainly HashMaps that are interpreted by a mini Python interpreter.
      The speed difference is between a factor 10 and 100.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    12. Re: Two languages by stephenmac7 · · Score: 1

      The self parameter increases clarity, especially for beginners. Concerning automatic code generation: I don't think python was built for that. Maybe something like Lisp might be better for the job than say, Python or Groovy. So, categories are like monkey patching in Ruby?

      --
      "No man's life, liberty, or property are safe while the legislature is in session." -- Judge Gideon J. Tucker
    13. Re: Two languages by angel'o'sphere · · Score: 1

      Well,
      the "problem" with self is, that free functions obviously don't have it and that methods have it but don't pass it as an ordinary parameter but use it as prefix. In addition if a method calls other methods of the same object, you again have to prepend those calls with self)

      I "as a teacher" find that complicated, but perhaps you are right and students find it easy ...

      I'm not sure about "monkey patching" a short googeling and stack overflow tells me it is more ment to replace existing methods of a class, hence "patching".

      Categories are a helper to add new methods to existing classes.

      E.g. in Java there is a "Process" class which you use to execute external processes, like starting a web server or what ever. It is a bit clumsy and in our days we rather use a "ProcessBuilder".

      In groovy however the inventors have "extended" the String class (which is final in Java what means you can not even derive classes from it) and gave it amoung others the "execute();" method.

      That means in groovy you can write:
      "/usr/bin/apache/httpd -some -args".execute()

      Anyway, some writes disagree and monkey patching is also used as moniker for "adding" of methods.

      But with categories in groovy you can only add, not patch/replace. In SmallTalk a category is more meta information for the class or methods of a class. Consider it as something like an annotation in Java/C#.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  3. I'd like to give swift a try by Anonymous Coward · · Score: 0, Insightful

    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.

    1. Re:I'd like to give swift a try by Anonymous Coward · · Score: 0, Flamebait

      It is not a good choice until it is available as free software. This will probably happen according to Chris Lattner, but not right now. You should not use Swift until then, or until there's a free software alternative.

    2. Re:I'd like to give swift a try by kanweg · · Score: 0

      Swift is also a good choice because nobody has a head start on you.

      Bert

    3. Re:I'd like to give swift a try by Gibgezr · · Score: 4, Insightful

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

    4. Re:I'd like to give swift a try by Anonymous Coward · · Score: 1

      Parent obviously suggested this just because he likes Apple and not because of the language. Better ignore. Probably not a programmer to begin with.

    5. Re:I'd like to give swift a try by Great+Big+Bird · · Score: 1

      I have looked at the language, and although I am an 'Apple Guy', I haven't done much with it yet. The language itself looks like a really really nice language for some of this sort of thing, but I mainly would want it for general purpose — so I agree with your parent that for this application s/he shouldn't look at it. However, if it becomes freely available as a compiler and multiplatform (with libraries) it would be worth a serious look at.

    6. Re:I'd like to give swift a try by Anonymous Coward · · Score: 0

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

      Where did he say anything about deploying what he writes or running it on a system he didn't write it on?

      He mentions he frequently uses shell scripting. Well, that can be done portably or with every Linux-ism and bleeding edge new feature available.
      When you're just getting a job done as he says and aren't deploying it anywhere, you don't care about portability. For instance, that's when I whip out GNU awk 4.0 features that aren't even available in RHEL6. Whats the difference between THAT and using any other platform specific tool for a non-distributable one-off script?

      Why not use a Mac or Windows or [Very Specific Linux Distro] solution for this problem?

    7. Re:I'd like to give swift a try by BasilBrush · · Score: 3, Interesting

      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.

    8. Re:I'd like to give swift a try by Anonymous Coward · · Score: 0

      It deploys to two platform... Mac and iOS.

      Next time learn what your talking about.

    9. Re:I'd like to give swift a try by aminorex · · Score: 3, Insightful

      > 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.

      --
      -I like my women like I like my tea: green-
    10. Re: I'd like to give swift a try by Anonymous Coward · · Score: 0

      I'm the original poster, and true I like Apple. But I've been a programmer for 30 years, program all day every day, currently in C++ on Windows. Most of my experience is with C/C++ but also PHP, some JavaScript, and in recent years a lot of objective C. That's why I said Apple's tools are the best, because I currently have to deal with Visual Studio all day.

    11. Re:I'd like to give swift a try by Anonymous Coward · · Score: 0

      > There's been more money to be made with Objective-C than most other languages these last few years

      I have seen lots of claims (3? years ago) that might have been historically substantiated, but there's no evidence of this today. Sounds like a lot more mobile hype with the bias on the wrong side of the revenue charts.

    12. Re:I'd like to give swift a try by Anonymous Coward · · Score: 0

      Controlled by 1 entity. He probably meant 1 vendor. And I agree with him.

    13. Re:I'd like to give swift a try by Anonymous Coward · · Score: 0

      Mainly because no one WANTS to code in objective c. Arrays returning 0 if the index is out of bounds instead of segfaulting? Makes sense.

    14. Re:I'd like to give swift a try by BasilBrush · · Score: 1

      Thanks for the laugh!

    15. Re:I'd like to give swift a try by david_thornley · · Score: 1

      Generally a good idea. A language that isn't available as free software will be much slower to build up a community, and could go away at any time. If it gets popular, there will be a free implementation. You don't necessarily have to use the free version, but having it available is a good sign and a safety net.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    16. Re:I'd like to give swift a try by Anonymous Coward · · Score: 0

      I've always argued that C should be everyone's first language, if only because so many of the others since are based on it.
      Modern C, C11, is plenty capable, as explained in the O'Reilly book "21st Century C", and it is the speed demon everything else is compared to. Objective-C is still basically C, and good for some of the hottest programming markets out there, but still awkwardly verbose.

      I've completely dropped my enthusiasm of C. Swift beats it in almost every way. It's simpler, it's safer, it's FASTER!
      Too soon to jump in? It's four years old already and plenty flexible and sturdy.
      I don't need slow scripting languages anymore. I don't need idiomatic functional languages any more, and I certainly don't need languages that require a virtual machine and 'just-in-time' compiler to run. I'm DONE shopping around!
      This thoroughly modern, multi paradigm, lightweight and crazy fast language is everything I've ever wanted in a programming language. I now just need to learn it thoroughly, inside and out. No more 'distractions.'

    17. Re:I'd like to give swift a try by Gibgezr · · Score: 1

      There's been more money to be made with Objective-C than most other languages these last few years.

      Really? I thought most developers weren't making any money on any of the mobile platforms. Here's an article that states that 60% of iOS developers don't break even:
      http://arstechnica.com/apple/2...

    18. Re:I'd like to give swift a try by BasilBrush · · Score: 1

      For the year of 2013, App Store sales totalled $10 billion. That's a lot of money. The interesting question is how many people it's shared between. There were around a million apps. So a pure average gives $10,000 per app. And whilst that's per year, apps take most of their money whilst they are new. But wait, it's far more complicated than that.

      First of all those million apps include old apps that date back to every year from 2008. They don't sell significantly, but they lower the headline average.

      It includes all the free apps, that are not intended to make any money from the app store: Apps that companies and organisations commission to promote their business, but don't get any direct app store revenue. But this doesn't mean the developers don't get paid - they are usually paid consulting rates - though sometimes they are employees.

      It includes all the hobbyist apps. It includes people who think they are professional but aren't (If you don't pay for a designer, and aren't spending money on marketing, it's not professional.)

      Now what platform do you compare it with? On Linux, there are employees of big tech firms that earn salaries. But virtually all the independent developers earn nothing. People expect free on Linux.

      On Windows there's a big market, But it's largely dominated by software companies. As a programmer you're earning salary. Independant development is hard - you need to run your own store, and most copies of your software will be pirated. Then there's a hell of a lot of free stuff again. Exactly the kind of stuff that lowers the average on iOS.

      I know you phrased it as "any of the mobile platforms", and so you;re aware there's not much money to be made on Android. But for the sake of completeness: Android users expect free apps to a far greater extend than iOS users, so indie developers have a hard time. And companies and organisations commission free iOS apps before Android apps and often only iOS apps. So the consultancy opportunities are less too.

      So how to judge all this? Well on the one hand it's the impression I get from job listings. iOS is the hot development area, and salaries are good. And secondly it's the knowledge of individual indie developers on the app store - those that take it seriously, employ designers and actively market their apps - I know people who are doing this, and they make very good money.

  4. What's wrong with html and javascript? by holophrastic · · Score: 0

    javascript takes about 17 minutes to learn -- same basic syntax as C, plus a document object model -- a big hash structure full of values defining the html. Wrap it in an HTA, and you've got an executable with full access to the entire machine (windows only, of course), including the file system, ODBC connectivity, system ports, et cetera.

    I'll always prefer perl for data processing, but you don't want to learn perl. That's a very very steep learning curve -- because that's the point.

    But javascript is dead-simple. You can make a quick-tool HTA in seconds. Being HTML, the GUI comes for free. It's the same html and javascript for any mobile or web anything.

    1. Re:What's wrong with html and javascript? by angel'o'sphere · · Score: 1

      As soon as you want to do kore than C like programming in JavaScript it is a. hell to learn.
      How many different ways does it support for OO programming defining inheritance, classes, higher order functions, prototype bases object systems etc. etc.?
      If younlearned JavaScript in 17minutes you likely use less than 17% of its features.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    2. Re: What's wrong with html and javascript? by osiaq · · Score: 0

      I admire your sense of humor, teach me!

    3. Re:What's wrong with html and javascript? by Anonymous Coward · · Score: 0

      Javascript sucks but gamemaker is shite too, we don't need any point-and-click environment for dumbass, we're talking about real language, capito ?

    4. Re:What's wrong with html and javascript? by Anonymous Coward · · Score: 1

      Why you little wusaaaaaaaaaaaaaaaaaaaaaaaaaaay!

      Gamemaker can do anything.
      There's nothing that Gamemaker cannot do.
      Gamemaker doesn't have a single flaw.
      Gamemaker is excellent.
      Gamemaker's the best.
      Gamemaker, Gamemaker, Gamemaker!

      Why have you not returned?
      Because you've been indoctrinated.
      Because you're inconsequential.
      Because you're unworthy.
      Change yourself, and return!
      Return to the magnificent paradise.
      Return to the heavenly lands!
      Return to the glorious paradise!
      You may return.
      You can return.
      You will return.
      You *shall* return.
      Return... to Gamemakerdom!
      Return!
      Return!
      Return!
      Return!
      Return!

      Return, return, return, return, return to Gamemakerdoooooooooooooooooooooooooooooooooom!

    5. Re:What's wrong with html and javascript? by holophrastic · · Score: 1

      read the original post again. he's looking for one-off tools. 17% of javascript is plenty for 70% of tools. the HTA (JScript) will provide the other 30%, no problem.

    6. Re:What's wrong with html and javascript? by NoNonAlphaCharsHere · · Score: 1

      So your question is "What's wrong with HTML and Javascript?" and then you go on to say you prefer Perl for data processing. And me without mod points.

      +11 Funny

    7. Re:What's wrong with html and javascript? by PolygamousRanchKid+ · · Score: 5, Funny

      javascript takes about 17 minutes to learn --

      . . . and 17 hours to debug . . .

      --
      Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
    8. Re:What's wrong with html and javascript? by holophrastic · · Score: 1

      the former for the original poster's skills-set, the latter for mine. I've got more equipment, and decades with perl.

    9. Re:What's wrong with html and javascript? by holophrastic · · Score: 1, Interesting

      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.

    10. Re:What's wrong with html and javascript? by petes_PoV · · Score: 1

      javascript takes about 17 minutes to learn

      Learning the syntax of a language is the smallest step towards actually using it. If you want to do more than write "Hello World\n" you need to learn an IDE, and all the relevant libraries. That is what takes the years of experience. Especially in these days where people assume (incorrectly) that IDEs are "intuitive". There's nothing worse than having to waste a day clicking around in a piece od code trying to find the one, obscure, little windowy attribute that the guy before you used to set a feature.

      Since IDEs make documenting code and teaching the learning process virtually impossible: there's no printable version, which makes referencing it and publishing books on it a mess of pictures of windows and option buttons, while the language structure may be simple the IDE / library learning curve is very long-winded.

      --
      politicians are like babies' nappies: they should both be changed regularly and for the same reasons
    11. Re:What's wrong with html and javascript? by Splab · · Score: 2, Informative

      Are you insane?

      There is no way your shot-gun approach to debugging is ever faster or better than dropping JS into a debugger; having something like intellij hook into your browser and debug your code running in an IDE is by miles better and faster than what you suggest.

      Especially if you are doing something difficult and not just trying to load an ajax request...

    12. Re:What's wrong with html and javascript? by narcc · · Score: 2

      If younlearned JavaScript in 17minutes you likely use less than 17% of its features.

      You're right about that. A big part of the "hate" seems to come from people unwilling to learn the language. I assume because they assume they already know it, due to it's familiar syntax.

      I'd argue that it's rather easy to learn. Easier than, for example, Java or C# for a beginner. Prototypal OO is much simpler and more "powerful" than Classical OO. Half the problems people new to JS suffer seems to come from dragging all that classical baggage with them. I suspect it's why so many people seem to have trouble with the 'this' keyword.

    13. Re:What's wrong with html and javascript? by Anonymous Coward · · Score: 0

      Perl is easy to learn. I once went into a job not knowing anything about it and had it mastered within two weeks. It was made to be easy to pick up.

    14. Re:What's wrong with html and javascript? by Anonymous Coward · · Score: 0

      ASM without a debugger may not be insane...

    15. Re:What's wrong with html and javascript? by Anonymous Coward · · Score: 2, Funny

      I've never listened to anyone who's attempted to teach me anything in this industry.

      Wow! I'd hire you on the spot if I could. I'm off to check out some of your code.

    16. Re:What's wrong with html and javascript? by flargleblarg · · Score: 1

      But javascript is dead-simple.

      Yes, so simple. http://dorey.github.io/JavaScr...

    17. Re:What's wrong with html and javascript? by flargleblarg · · Score: 1

      Are you insane?

      This made me laugh. That was my reaction as well.

    18. Re:What's wrong with html and javascript? by Anonymous Coward · · Score: 0

      "use strict";

      Now try your "tmep" again.

    19. Re:What's wrong with html and javascript? by holophrastic · · Score: 1

      Perl has things that no other (typical) language has. That's what makes it ridiculously difficult for programmers coming from C: hidden variables, context-sensitive variables, native regular expressions, and lists -- no C-style language has lists; there's no concept of a function that returns multiple objects in C; and there certainly isn't any concept of a function that knows how its return will be cast by the caller.

    20. Re:What's wrong with html and javascript? by holophrastic · · Score: 1

      That page makes it sound like you'd want to use the triple sign. You almost never do. That page doesn't actually explain the difference between double and triple. I'll help you. Double compares the values of the variables. Triple compared the references to the variables. Double tests to see if two variables have the same value. Triple tests to see if two variables point to the same place in memory -- are actually the same variables. In most contexts, the triple actually tells you that changing one variable's value will change the second one automatically.

      Stop reading random documentation. Use it. Then make up your own mind based on results, not based on efforts. With javascript, you'll spend a week playing, and you'll produce real-world usable tools. Sure you'll encounter problems, sure javascript is riddled with bugs. But you'll produce working results and sellable product. That just ain't true of most languages.

    21. Re:What's wrong with html and javascript? by holophrastic · · Score: 1

      use strict; ...27 lines of code
      var temp = null; ...87 lines of code
      var tmep = null; ...912 lines of code
      temp = temp * 3; ...153 lines of code

      use strict doesn't help at all. it does absolutely nothing but enforce style conventions. I don't want use strict. I want use smart. Where's the warning: "you have two variables conspicuously similarly named", or "you've named a variable something that you've never used before in thirty years of programming life".

    22. Re:What's wrong with html and javascript? by angel'o'sphere · · Score: 1

      No one needs to 'learn an IDE'. That is a nonsense attitude.
      However not using an IDE means your as max 10% as fast as an mediocre programmer and likely not even 1% as fast as a competemt one.
      Sorry, you now posted like 3 posts where you told us utter nonsense.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    23. Re:What's wrong with html and javascript? by angel'o'sphere · · Score: 1

      Your explanaition is wromg.
      If it was true, something like this:
      var a = 1;
      var b = 1;
      var hm = a === b;
      Would let hm be false, but actually it is true.

      Sorry, did you actually ever program in JavaScript, or are you in fact still far below the 17% knowledge level I proposed a few posts back?

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    24. Re:What's wrong with html and javascript? by holophrastic · · Score: 0

      learn to read. I said references. You might want to learn the differences between variables and references some day. Some of us have grown past a=1. For some of us, a = {'v':[{'a':1,'b':2},{'a':1,'c':5}],'z':[1,8,4]};

      test my a' and my a.v, not your a. see what happens.

    25. Re:What's wrong with html and javascript? by holophrastic · · Score: 1

      You might also try a='1', a=1, a=01, a='01', a=0, a='0', a=false, a='', and a=null.

      Using a simple scalar integer isn't an example of anything. It's a grade 1 text book. Try harder.

    26. Re:What's wrong with html and javascript? by gtall · · Score: 1

      Great, you get to piss off your life doing make files or some such brain dead build script pile of dingos' kidneys. Cook with gas, learn a decent IDE, use your time effectively.

    27. Re:What's wrong with html and javascript? by Anonymous Coward · · Score: 0

      No, the multitude of ways one can go about coding up a solution is what makes Perl easy to learn and use. It might not be easy for another person to come in and maintain it, but that doesn't invalidate the point.

    28. Re:What's wrong with html and javascript? by holophrastic · · Score: 1

      That concept of multitude is completely foreign to a C programmer. It makes them fail every time. You simply cannot introduce a C programmer to Perl and expect them to have any kind of easy time with it. You might as well introduce a cyclist to a horse.

    29. Re:What's wrong with html and javascript? by Visarga · · Score: 1

      If there's one IDE I loved it was the Turbo Pascal 7 from MSDOS. It was pure and minimalistic. I still use Chrome Developer Tools a lot in order to inspect web pages, but 90% of my work is being debugged with print statements and I see no problem with that.

    30. Re:What's wrong with html and javascript? by Splab · · Score: 1

      Well earning 1 million dollars over two decade span in this industry working as an consultant is actually pretty abysmal.

      And whats with the bow analogy? Are you saying that you are estimating wrong all the time, but you do so faster than anyone in the industry? Because going 200 mph, isn't that impressive, if it means you are going to crash horribly...

      Also, why do you believe using ; to debug helps your development 6 months down the line? I find comments and well structured code is the right path there. Also, explain to me, how you debug weird branched code, without stepping through frames (up and down) - and why would you ever pass on the ability to hot wire your code by manipulating the current scope using your debugger?

    31. Re:What's wrong with html and javascript? by Anonymous Coward · · Score: 0

      " I've been profitting for two decades now. I'm telling you that I've made over a million dollars doing it this way"

      So, $50k per year? Colour me unimpressed.

    32. Re:What's wrong with html and javascript? by Anonymous Coward · · Score: 0

      Consider that was accumulated over 20 years, 1 million isn't terribly impressive. I've made more than that writing VB4&5&6 apps for the last 20 years. That doesn't mean VB or its IDE is superior.

    33. Re:What's wrong with html and javascript? by Anonymous Coward · · Score: 0

      +1 Nostalgic feels Turbo Pascal...this might as well be my first language. I was coding in c-64 basic before hand, but TP is where I really started learning how to code. The good old days.

    34. Re:What's wrong with html and javascript? by cerberusti · · Score: 1

      You seem to be misinformed.

      === is true if both the type and value match (it will not do type conversion.)

      --
      I'm a signature virus. Please copy me to your signature so I can replicate.
    35. Re:What's wrong with html and javascript? by Urkki · · Score: 1

      Just letting you know, that kind of talk sounds like you're one of those developers who tend to leave behind messy disasters needing complete rewrite as soon as some change is required, while talking about their own greatness. You probably know the type if you're not one, so you might want to adjust your message. And if you're one of 'em... Never mind, ignore this reply.

    36. Re:What's wrong with html and javascript? by holophrastic · · Score: 1

      The bow wasn't an analogy. It was real.

      You might have noticed that the two decades began at a very young age, includes a large house, a sportscar, and semi-retirement at age 35.

      Why would I choose to write weird branched code that can't be debugged atomically when I can instead write atomic code that branches? I don't use a debugger. I use something called "truth statements". Truth statements don't need to get debugged as a whole; they get debugged individually -- atomically.

    37. Re:What's wrong with html and javascript? by psmears · · Score: 1

      You might also try a='1', a=1, a=01, a='01', a=0, a='0', a=false, a='', and a=null.

      Using a simple scalar integer isn't an example of anything.

      Yes it is - it's an example of your explanation being wrong. Here are some more. You claimed:

      Double tests to see if two variables have the same value.

      However,

      a = "1";
      b = true;
      result = (a == b);

      ... gives a result of true - when clearly "1" and true are different values - for instance, you'll get different results if you pass them to alert(). You also said:

      Triple tests to see if two variables point to the same place in memory -- are actually the same variables.

      "Pointing to the same place in memory" and "actually being the same variable" are two entirely different concepts. For example, after:

      a = {foo: 1, bar: [1,2,3]};
      b = a;

      then 'a' and 'b' refer to the same object ("point to the same place in memory", if you like), and a===b will return true. But they're still different variables, because after modifying one of the variables

      b = {};

      the other variable will not be affected in any way.

      The reason for wanting to use triple-equals is not because "double-equals compares values", it's because double-equals sometimes behaves in a way that's confusing and not very useful. For instance, I'd expect, for any sensible equality operator, that if a==b and b==c, then a==c... but for JavaScript's double-equals, that's not true (put a="", b=[], c="0" - then ""==[], and []=="0", but "" != "0"...)

    38. Re:What's wrong with html and javascript? by holophrastic · · Score: 0

      Dude, I'm not 40. I said well over. I own a house, a sprotscar, travel 40 days per year, and am semi-retired at 35. Learn to do business math. You dropped the "well over", you averaged linearly, and you took two decades to mean 20 years. In business, 2 decades can mean as little as 2 years, but usually means at least 12 years. Most people make more money as they grow their business from the age of 14.

      At the height of my full-timeness, I was making $150'000. Today, semi-retired, I choose to stop at $100'000 because I'd rather spend the time enjoying my hobbies than making more money to spend on them.

      Enjoy your life. I sure won't.

    39. Re:What's wrong with html and javascript? by holophrastic · · Score: 1

      Like I said elsewhere, I didn't say 20 years. I didn't say linearly. I didn't say only. I didn't say as an adult. Learn to do business math.

    40. Re:What's wrong with html and javascript? by holophrastic · · Score: 1

      var a = {'v':[{'a':1,'b':2},{'a':1,'c':5}],'z':[1,8,4]};

      What do you think the value of a is?

    41. Re:What's wrong with html and javascript? by holophrastic · · Score: 0

      Well, seeing as how I guarantee that my clients won't need stuff re-written, that I maintain their loyalty for years and sometimes decades at a time, and that I guarantee minor changes forever for free, if that were me I'd have gone bankrupt long ago.

      But I certainly agree that my previous reply is consistent with what you describe. Alas, it was one of many replies, each incomplete as a character description of my business.

    42. Re:What's wrong with html and javascript? by Splab · · Score: 1

      The scary part is, you actually believe in this crap!(?)

    43. Re:What's wrong with html and javascript? by cerberusti · · Score: 1

      undefined

      --
      I'm a signature virus. Please copy me to your signature so I can replicate.
    44. Re:What's wrong with html and javascript? by holophrastic · · Score: 1

      Wow, you are incredibly confused. b = {}; doesn't modify b, it re-assigns b. Please learn how variables work. And if you think that "1" and true are different values, then you don't understand what a "value" is.

      So you and I are obviously done here. You're either really old, used to bit-registers not complex objects, or you're really young reading text books, or you've navigated the industry by avoiding business-level programming. I've focussed on business-level programming. In this sub-industry, everything you've said simply isn't true. a==b, b==c, would never presume a==c. It's never true in real-world business, so I'd never want it to be true in business programming.

      So I'll leave you with this, because it makes one angle very clear. Have you ever used perl? Perl does something interesting in this regard. Printing a reference to a variable (we'll call these objects conversationally here) never attempts to cast anything. It simply prints out the type and memory address. So a = {foo:1,bar:[123]} might be "HASH(32598763)". It actually is the memory address, but it's more than that. Because if you're numerically comparing it to another variable, it'll get cast as a number -- the memory address. In perl, using the value of a reference requires explicitly dereferencing it, making this particular issue quite straight-forward -- especially since casting is done on operators, not on values, which is awesome by the way.

      Javascript does some of the same stuff, but conceals it all. Like most languages, lvalues are cast differently than rvalues. But because javascript is designed, primarily, for non-algothimic and non-scientific use, of course [] is 0. There are six versions of nothing, and whether you have nothing once or you have nothing multiple times, you still have nothing. But you've only gone half-way with your last example there. Add a numerical 0, as well as a null value, then the fun really happens. Try "0happy" too. Woah the fun you'll have!

      Here's the skinny. I've been using javascript for professional profit for 17 years. I've needed to use === merely four times. Let's ignore, for the moment, how stupid javascript is in many ways, and especially in this crazy-casting way -- because it is crazy-cryptic to anyone who hasn't memorized it all, and there's always one thing that's forgotten. The real question is what would a programmer expect from string == object? Why would a programmer be comparing a string to an object in the first place?

      If we're talking about a complete logic error, then I don't really care what a language does when I screw up my entire concept. If it's a convenience service, then as long as the language is consistent then I'm fine with whatever it's going to do.

      Pop quiz. What do you think perl does with "5" + "information". The answer may surprise you. Here's a hint, it actually casts "information" to a number because the first three letters match a defined numerical value.

    45. Re:What's wrong with html and javascript? by cerberusti · · Score: 1

      Many people have trouble with javascript being classless. A lot of people associate objects with classes, and are confused by an object oriented language without them.

      --
      I'm a signature virus. Please copy me to your signature so I can replicate.
    46. Re:What's wrong with html and javascript? by psmears · · Score: 1

      Have you ever used perl?

      As it happens I've been using perl for longer than your 17 years of JavaScript, so I'm well aware of how its references work... but nothing about that changes the fact that your assertion about JavaScript's "==" comparing values is wrong; in fact, it would be truer to say that "===" compares values.

      b = {}; doesn't modify b, it re-assigns b. Please learn how variables work.

      I know how variables work, thanks ;-). Assignment is how you change a variable's value in imperative languages. You can't just arbitrarily assert that words like "change" and "modify" have different meanings from their standard ones..

      And if you think that "1" and true are different values, then you don't understand what a "value" is.

      I've got a very good idea what a "value" is. One property of values (in the context of computing) is that, if two things have different effects when passed to the same function, then they're different values. Perhaps you have a different definition of "value" that contradicts this? If so, do enlighten us, and can you provide a link to a credible source to back up your definition? Again - you can't just arbitrarily assert that words have different meanings from their standard ones.

      You're either really old, used to bit-registers not complex objects, or you're really young reading text books, or you've navigated the industry by avoiding business-level programming.

      Haha... actually none of the above are true. And even if they were - your assertion about "==" would still be wrong, so your comment to angel'o'sphere to "try harder" would still be uncalled for.

      Wow, you are incredibly confused.

      I agree that one of us is, indeed, quite confused :-)

    47. Re:What's wrong with html and javascript? by flargleblarg · · Score: 1

      Stop reading random documentation. ...

      It's not random documentation. It's one of several bookmarks I keep around that I pull out whenever anyone tries to say that JavaScript is simple.

    48. Re:What's wrong with html and javascript? by flargleblarg · · Score: 1

      a==b, b==c, would never presume a==c. It's never true in real-world business, so I'd never want it to be true in business programming.

      It's a tautology in mathematics (known as the transitive property of equality) and it should be a tautology in any programming language. If a language gets this wrong, that's a major flaw in the language's design. (Which is not to say that the language isn't still useful. It's just confusing as hell is all.)

    49. Re:What's wrong with html and javascript? by flargleblarg · · Score: 1

      Pop quiz. What do you think perl does with "5" + "information". The answer may surprise you. Here's a hint, it actually casts "information" to a number because the first three letters match a defined numerical value.

      I did not know that. And I think I just threw up a little in my mouth now.

    50. Re:What's wrong with html and javascript? by Anonymous Coward · · Score: 0

      All these problems with comparisons stem from lame-brained casting.

      If I ever design my own language, there will be no automatic casting, zero. Not even integer > float or vice versa.

      Treating strings as numbers and numbers as strings is just brain-dead. Why cause yourself that kind of grief? Just do something like this:

      a = int2str(5) & "information"
      b = 5 + "information".parseInt // should raise exception, not default to "0" or null or NaN

    51. Re:What's wrong with html and javascript? by Anonymous Coward · · Score: 0

      Double compares the values of the variables. Triple compared the references to the variables.

      Not quite. '===' only compares references for objects, not for primitives.

      That's what makes primitives different from objects - when you make an assignment to a primitive variable, you change the contents, you don't make the variable point to a new value in a different area of memory.

      When you make an assignment to an object variable, it points to the new object and discards the old one, i.e. it changes the "value" of the reference.

    52. Re:What's wrong with html and javascript? by holophrastic · · Score: 1

      Yup, that's what I did too! Now I laugh hysterically at it in hind-sight.

      Ok, here's another simple bug that had an unexpected symptom..
      my $spi = [5,6];
      my $ind = [2];
      $spi->[$ind] = 7;

      Why might line three take thirty full seconds to execute?

    53. Re:What's wrong with html and javascript? by flargleblarg · · Score: 1

      Wow, so it's trying to use [2] as an array index inside @$spi . . .

      Is it converting [2] into "REF(ARRAY)" or somesuch, and then converting that to an integer and using that as the index?

      My Perl interpreter (5.12) chokes on that code...

      $ perl -e 'my $s = [5,6]; my $i = [2]; $s->[$i] = 7'
      Modification of non-creatable array value attempted, subscript -1283427544 at -e line 1.

      ...but it gives an interesting hit with the negative giant subscript index.

      What version of Perl are you using that chews up 30 seconds of CPU time?

    54. Re:What's wrong with html and javascript? by holophrastic · · Score: 1

      v5.8.8. So yeah, it winds up suddenly auto-vivifying a few million array elements. You must have gotten lucky that your memory address just happened to look like a negative number.

    55. Re:What's wrong with html and javascript? by Anonymous Coward · · Score: 0

      var a = {'v':[{'a':1,'b':2},{'a':1,'c':5}],'z':[1,8,4]};

      What do you think the value of a is?

      The value is: You're fired. Preferably from a cannon.

      Seriously, why on earth would anyone write code like that? Code is not just for the computer to run, it's for humans to understand.

  5. Python by Anonymous Coward · · Score: 1, Informative

    Really? No. If you want a job, learn Javascript. It's used frontend everywhere, now backend with node, and the pay is good.

  6. Xojo (formerly RealBasic) by Anonymous Coward · · Score: 0

    It's easy to learn and easy to use. Works on a lot of platforms. Includes good support for GUI development. Works for small and simple projects but scales up to large and advanced projects too.

    1. Re:Xojo (formerly RealBasic) by Anonymous Coward · · Score: 0

      And only costs $900.00...

    2. Re:Xojo (formerly RealBasic) by Anonymous Coward · · Score: 0

      It's $995 for Xojo Pro. It starts at $300 if you don't want the full package and renewals are around half the initial price. Not that much for a tool that you use every day to be honest.

  7. Clojure ? by boorack · · Score: 2

    With ClojureScript it now covers both client side and server side.

    1. Re:Clojure ? by Anonymous Coward · · Score: 0

      Because ClojureScript compiles down to ridiculously large file sizes.

    2. Re:Clojure ? by Trepidity · · Score: 1

      How compatible are Clojure and ClojureScript? Can you expect a typical program to run in both?

    3. Re:Clojure ? by an_orphan · · Score: 1

      This isn't true. Clojurescript uses the Google Closure optimizing javascript compiler for things like minification, including dead code elimination. Source maps support makes debugging this kind of code still possible.

    4. Re:Clojure ? by an_orphan · · Score: 1

      The core is pretty compatible, but certain features are present in one, absent in the other, and vice-versa. You generally wouldn't care to write a full program in one and expect it to work in the other, but you can share code, there's projects like CLJX that facilitate this.

    5. Re:Clojure ? by Anonymous Coward · · Score: 0

      Mostly, though there are some limitations on the ClojureScript side (macros come to mind...)

  8. Programming language in 2 hours ? Yeah, right. by Anonymous Coward · · Score: 4, Insightful

    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.

    1. Re:Programming language in 2 hours ? Yeah, right. by NotSoHeavyD3 · · Score: 1

      Hell I'm one of the guys that harps on how quickly you can learn a language and even I agree with this. I mean I know I say that since I know C++ I was able to learn C# very quickly since the syntax is largely the same. But I'd still say it was at least a couple of weeks before I was pretty comfortable in C#. (No, I don't think it'd take any decent C++ guy months or years to get as good in C# but still it's not nothing either.) Mod the parent up. (I know I know, the mods can't because they're too busy modding down pointlessly, they have no points left.)

      --
      Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
    2. Re:Programming language in 2 hours ? Yeah, right. by Anne+Thwacks · · Score: 1
      You have never been able to learn a programming language in a couple of hours.

      You can learn Snobol (the original, not Snobol4) in a couple of hours. Unfortunately, you probably can't actually do anything useful with it, but that was not required by your original post!

      --
      Sent from my ASR33 using ASCII
    3. Re:Programming language in 2 hours ? Yeah, right. by Oligonicella · · Score: 1

      I've heard from a number of people that they could and every time, it only meant that they could learn to understand the syntax, not learn to code anything of any significance.

    4. Re:Programming language in 2 hours ? Yeah, right. by BlackHawk-666 · · Score: 1

      You can learn LUA pretty damn quick.

      --
      All those moments will be lost in time, like tears in rain.
    5. Re:Programming language in 2 hours ? Yeah, right. by Anonymous Coward · · Score: 0

      [
      ]
      ,
      .
      +
      -
      >

      Congrats, you have learned a programming language -- brainfuck.

    6. Re:Programming language in 2 hours ? Yeah, right. by Jane+Q.+Public · · Score: 1

      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.

      Not intending to get in a flame war here. My basic suggestion is the same, but I'd say it's a tossup between Python and Ruby. Python is a bit older, but Ruby is old enough now to be called a "mature" language.

      Each has its own strengths and weaknesses. Python has a more established base, especially in the academic community. Ruby has a few newer additions to the language, and (just my opinion) is a bit more consistent in its structure.

      Some people love Python's "significant whitespace" formatting. I don't like it, but I don't pretend that's anything more than a personal preference.

      Because Ruby is my preference and I am more familiar with it, I can tell you that it is in continuous development, and bytecode-compiled versions are available (JRuby, which uses the JVM, and others). I do not know about Python in this respect because I haven't used it nearly as much.

    7. Re:Programming language in 2 hours ? Yeah, right. by Coryoth · · Score: 1

      Because Ruby is my preference and I am more familiar with it, I can tell you that it is in continuous development, and bytecode-compiled versions are available (JRuby, which uses the JVM, and others). I do not know about Python in this respect because I haven't used it nearly as much.

      Python has the default implementation CPython which compiles python to an interpreted bytecode; there's also Jython which compiles to JVM, and IronPython which compiles Microsoft's CLR. There's also Cython (which requires extra annotations) which compiles to C and thence to machine code, and numba which does compilation to LLVM. Finally there's Pypy which is a python JIT compiler/interpreter written in a restricted subset of Python.

    8. Re:Programming language in 2 hours ? Yeah, right. by Anonymous Coward · · Score: 0

      I second that: I taught myself Python (to the point of writing a sizeable app, with GUI) in a couple of weeks.
      I would vote against Java for 2 reasons:
          1. It's a resource hog: just look at the footprint of Eclipse to see what I mean.
          2. Not a week (day?) goes by without another patch from Oracle: hell, just how many bugs can you have in 1 piece of code?

    9. Re:Programming language in 2 hours ? Yeah, right. by aminorex · · Score: 1

      Whitespace: minutes to learn, aeons to master.

      --
      -I like my women like I like my tea: green-
    10. Re:Programming language in 2 hours ? Yeah, right. by aminorex · · Score: 1

      whereas in python, the bugs just never get fixed. try reimplementing eclipse in python, including the ability to actually use it.

      --
      -I like my women like I like my tea: green-
    11. Re:Programming language in 2 hours ? Yeah, right. by laird · · Score: 1

      You can learn some languages that have clean/consistent designs in a few hours. Lisp, C, Lua, Smalltalk ... those languages are simple, clean languages that you can learn the syntax of in a few hours.

      That begin said, to really get work done you need to understand the runtime environment, GUI and other frameworks, database/persistence, messaging, performance characteristics, etc., and that's vastly more complex than the syntax of the language. Even if you learn Python in a few hours (you can), there's no way you're going to understand the frameworks and how to get real work done in a real application in a few hours. Even in an environment that takes care of most of the details (like Google App Engine) it takes a few weeks to wrap your head around the High Availability Data Store, Google's APIs, etc.

      I suppose you have a chance, if all your code needs to do is run on a command line, process stdin and generate stdout with no persistence. But that doesn't describe most applications these days.

    12. Re:Programming language in 2 hours ? Yeah, right. by david_thornley · · Score: 1

      You aren't going to learn those languages in a few hours. You can understand that basic structures in that time. You are likely not to know the details of the base languages, and are certain not to have a good knowledge of the more esoteric parts of the language or the standard libraries.

      To get work done, you need to know how to write programs in the language, and that's harder. You can copy-paste a program that works and try to modify it, but that'll be about it. To get useful work done, you need to have a feel for how the language works. To use it professionally, you need to be able to write reasonably idiomatic programs and know where the dangerous parts of the language are. This is in addition to knowing the runtime, IDEs, etc.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  9. Perl?? by Anonymous Coward · · Score: 0

    Pathologically eclectic rubbish lister?

    I don't really get the segregation of the languages. Actually i think you would still be able to pick up a language in a couple of hours. The only problem would be when you have to clue yourself into a library's idiosyncratic double think. This is probably truer when you're used to some conveniences afforded by your language of choice.

    1. Re:Perl?? by Richy_T · · Score: 1

      Agreed. There are a few paradigms that you really need to get your head around before you can use some languages (OO and threading, for example) but new languages tend to be mostly just learning how they do the same old thing.

  10. Python + Qt by CQDX · · Score: 5, Informative

    With Qt you can develop for desktop or mobile, with a GUI or not. With Python you can do simple scripting all the way up to full-blown apps. Once you become familiar with Qt you can also fallback to C++ if you need the performance. You also have the option using Qt's GUI as traditional widget or Javascript based Qt Quick.

    1. Re:Python + Qt by MrEricSir · · Score: 3, Interesting

      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.

      --
      There's no -1 for "I don't get it."
    2. Re:Python + Qt by dargaud · · Score: 1

      I've been trying to get on the Qt bandwagon on and off for a year, but I still can't remember how to do a hello world if I don't have an example in front of me. Talk about unintuitive...

      --
      Non-Linux Penguins ?
    3. Re:Python + Qt by Anonymous Coward · · Score: 1

      Complete Hello World example:


      import QtQuick 2.2

      Rectangle {
              width: 360
              height: 360

              MouseArea {
                      anchors.fill: parent
                      onClicked: {
                              Qt.quit();
                      }
              }

              Text {
                      anchors.centerIn: parent
                      text: "Hello World"
              }
      }

      That was tough...

    4. Re:Python + Qt by Anonymous Coward · · Score: 0

      That was tough...

      Very. Compared even to 30 year old languages. Some of these new languages appear to exist with the sole purpose of making things harder.

      10 PRINT "HELLO WORLD"

      And before you yell "GUI", a C# main() method calling MessageBox.Show is not a lot more code than the line of basic code above.

    5. Re:Python + Qt by danknight48 · · Score: 1

      With Qt you can develop for desktop or mobile, with a GUI or not. Once you become familiar with Qt you can also fallback to C++ if you need the performance.

      Even with C++, Qt is an extremely bloated API before you even start coding.

      An empty window:
      - Qt = 50+mb memory usage
      - FLTK = 3+ mb memory usage
      - Windows API 1mb memory usage

      Dont get me wrong, Qt is extremely fast to create programs and a refreshing change of simplicity to work with.
      But it shouldn't be the platform of choice if you consider performance an important factor in your coding practices.

    6. Re:Python + Qt by TopherC · · Score: 1

      A program like the grandparent's "Hello World" is meant as a starting point and not a demonstration of how small a nearly-useless program can be. A GUI program necessarily aims to do more than just print a message, and this example gives you a small glimpse at how you the language could look and feel, and how you might go about doing something more practical. A MessageBox popup is not a good starting point since about all you can change is the text itself.

    7. Re:Python + Qt by rmarshasatx · · Score: 2

      I absolutely agree with Python for programming most anything, Qt for GUI, and Javascript so you can use packages like D3 for anything visual or Mapbox for maps. You can pick them up to the detail you need.

    8. Re:Python + Qt by praxis · · Score: 1

      With Qt you can develop for desktop or mobile, with a GUI or not. Once you become familiar with Qt you can also fallback to C++ if you need the performance.

      Even with C++, Qt is an extremely bloated API before you even start coding.

      An empty window:
      - Qt = 50+mb memory usage
      - FLTK = 3+ mb memory usage
      - Windows API 1mb memory usage

      Dont get me wrong, Qt is extremely fast to create programs and a refreshing change of simplicity to work with.
      But it shouldn't be the platform of choice if you consider performance an important factor in your coding practices.

      For those three cases, are you measuring memory allocated by the process under measurement only or does that include resources third-parties allocate on the process's behalf?

    9. Re:Python + Qt by Anonymous Coward · · Score: 0

      Fuck you, shit for brains, I'm all up in your fucking shiteating face. You're a cunt ass whore.

  11. Swift by Anonymous Coward · · Score: 0

    Swift is a modern language with all sorts of cool features. There may be a few languages that are even cooler, but they do not have what Swift has: a first rate IDE, one of the very best frameworks for writing GUI apps, a billion dollar company that pumps out documentation, and a massive developer base all running on a platform with hundreds of millions of users who are willing to pay money for good software. Seriously, even though it has been out for like a week it has more developers than Haskell, Scala, O'Caml, SML, Erlang, etc... combined. By this time next year there will probably be more Swift libraries and packages than all those other languages/platforms too.

    Just being realistic, I don't even own an iPhone.

    1. Re:Swift by Anonymous Coward · · Score: 0

      Swift is a nice language, but it's OS X only. Until there is an open source version on other platforms, it isn't useful as a general purpose language.

  12. Type of applications by geoskd · · Score: 1, Insightful

    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.

    --
    I wish I had a good sig, but all the good ones are copyrighted
    1. Re:Type of applications by rubycodez · · Score: 1

      C++ would be absurd for systems admin and operations scripting, however. Other langauges do all those things and also excel in the operations/admin/batch processing realm - Python, Perl, Ruby

    2. Re:Type of applications by arth1 · · Score: 1

      Most ops/admin/batch processing can be done with sh, sed and awk. Perl and python are nice fourth and fifth languages after these, but proficiency with the first three tends to be more valuable for an admin than the latter two. It's a certainty that you will have to maintain other people's shell scripts, and expanding them with a well placed inline sed or awk program can be oh so helpful.

      There's no question that perl gives you the most bang for the buck, but maintaining perl scripts can be painful. Like with advanced regexps, the easier solution is often to replace a chunk of code than to grok it. Even if you were the one who originally wrote it, and commented the hell out of it.

    3. Re:Type of applications by rubycodez · · Score: 1

      I do all of those languages in my daily job, but awk/sed/sh is inferior because of the chances for bugs are greater in a script with any complexity due to the arcane rules and syntax, and topic is of languages good for "programs" not just dozen-liners. I don't see how maintaining Perl scripts is any more painful than effort required for any other scripting langauge. Note the built-in tools packaging and admin are already done in Perl and Python in most (most being all the dozen or so I deal with 8D ) BSD and Linux distros.

    4. Re:Type of applications by drinkypoo · · Score: 1

      There's no question that perl gives you the most bang for the buck,

      In particular, any time you are considering using awk inside sh, you probably should be using perl instead, because of that complexity you mentioned. Why use two languages (plus an additional utility to handle regexps) when you can just use one?

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    5. Re:Type of applications by pthisis · · Score: 2

      awk is fine for one-liners and for simple takes on moderately large files can be 5-6x faster than Perl.  For all that perl has the reputation for being a grep/sed/awk replacement, it's incredibly slow at the job.  Sometimes that matters.

      For anything larger than a one-off, I'd go with python/pypy (ruby and lua are also fine choices).

      $ time awk '{print $1}' < f4.txt >/dev/null

      real    0m0.296s
      user    0m0.288s
      sys    0m0.004s

      $ time perl -pale '$_="@F[0]"' < f4.txt >/dev/null

      real    0m1.920s
      user    0m1.896s
      sys    0m0.020s

      $ time python -c "import sys;[sys.stdout.write(line.split()[0]+'\n') for line in sys.stdin]" < f4.txt >/dev/null

      real    0m0.618s
      user    0m0.604s
      sys    0m0.008s

      $ time pypy -c "import sys;[sys.stdout.write(line.split()[0]+'\n') for line in sys.stdin]" < f4.txt >/dev/null

      real    0m0.531s
      user    0m0.508s
      sys    0m0.020s

      --
      rage, rage against the dying of the light
    6. Re:Type of applications by arth1 · · Score: 1

      In particular, any time you are considering using awk inside sh, you probably should be using perl instead, because of that complexity you mentioned. Why use two languages (plus an additional utility to handle regexps) when you can just use one?

      Because quite often, what you start with is a shell script - from a vendor, from a predecessor, or from something simple you did a while back.
      Or it's an embedded or legacy system where you want to be frugal with CPU cycles and memory usage, while still using a scripting language to allow editing.

      But sure, often perl is the right tool for the job.

  13. C + Lua by Kensai7 · · Score: 2

    Since you already know C, you good get really fast Lua. Lua with C (and C-like) libraries will lead you fast to productivity.

    --
    "Sum Ergo Cogito"
    1. Re: C + Lua by Anonymous Coward · · Score: 0

      forget C and just use luajit

    2. Re:C + Lua by Anonymous Coward · · Score: 0

      Since you already know C, you good get really fast Lua. Lua with C (and C-like) libraries will lead you fast to productivity.

      Yoda-like accent a result of Lua this is?

  14. Re:Python - give reasons by rubycodez · · Score: 1

    A choice for a general purpose language for server scripting, web, client gui, non-web server apps,etc. should have mature set of libraries and frameworks for all those things. Most of the people here are posting their favorite or pet language rather than anything that has that property. Yes, Python has the libraries for all those uses, Perl 5 even moreso. Ruby does to lesser extent than those two.

  15. Java in an IDE by Sesostris+III · · Score: 1, Insightful

    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!)

    --
    You never know what is enough unless you know what is more than enough. - Blake
    1. Re:Java in an IDE by mrvan · · Score: 1

      Sure, if you like typing stuff such as


      Set s = new LinkedHashSet()

      Just because the compiler needs to know advance every method of everything you are ever going to put into your container...

      Java has its uses, and for certain hard-core back-end software it might be the most appropriate language; but for writing quick and dirty scripts to get stuff done, for prototyping, and for UI I would stay very far away from it.

      (but then I'm an ex-Java developer so probably biased ;-))

    2. Re:Java in an IDE by mrvan · · Score: 1

      (frigging slashdot ate my generics!)

      Sure, if you like typing stuff such as

      Set<? super TreeMap> s = new LinkedHashSet<TreeMap>()

      Just because the compiler needs to know advance every method of everything you are ever going to put into your container...

      Java has its uses, and for certain hard-core back-end software it might be the most appropriate language; but for writing quick and dirty scripts to get stuff done, for prototyping, and for UI I would stay very far away from it.

      (but then I'm an ex-Java developer so probably biased ;-))

    3. Re:Java in an IDE by Splab · · Score: 1

      If you are doing any serious Java programming, buy an IntelliJ license (or apply for a free OS license). It is miles ahead of Eclipse and NetBeans.

    4. Re:Java in an IDE by Z00L00K · · Score: 1

      For most cases Eclipse is sufficient.

      So unless you are prepared to put up money Eclipse is not a bad choice.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    5. Re:Java in an IDE by Sesostris+III · · Score: 1

      Actually, it's worse. Ideally it would be:

      Set<Object> s = new LinkedHashSet<Object>();

      Or, I believe in java 8 you can infer the type as follows:

      Set<Object> s = new LinkedHashSet<>();

      That's why I suggested in an IDE. It will generally help the coder. However, I take your point!

      --
      You never know what is enough unless you know what is more than enough. - Blake
    6. Re:Java in an IDE by Anonymous Coward · · Score: 0

      FYI, Java 7 lets you type:
      Set<? super TreeMap> s = new LinkedHashSet<>();

    7. Re:Java in an IDE by Sesostris+III · · Score: 1

      Ah well, you beat me to it! I should've refreshed before typing.

      --
      You never know what is enough unless you know what is more than enough. - Blake
    8. Re:Java in an IDE by itamihn · · Score: 1

      The diamond operator is available since Java 7.

    9. Re:Java in an IDE by Anonymous Coward · · Score: 0

      > So unless you are prepared to put up money Eclipse is not a bad choice.

      If you're doing any work that has value (other than learning for yourself), you should gleefully pay for increased productivity.

    10. Re:Java in an IDE by techfilz · · Score: 2

      Java is the new COBOL. Lots of developers use it a work but few use it at home because it is so tedious. You will spend most of your time learning how to drive frameworks and not coding.

    11. Re: Java in an IDE by Anonymous Coward · · Score: 0

      Set s = new LinkedHashSet();

      In python:

      s = []

      Any questions?

    12. Re: Java in an IDE by Anonymous Coward · · Score: 0

      In Python:

      s = set()

    13. Re:Java in an IDE by aminorex · · Score: 1

      it's not increased productivity if you can't use it. it's just a spurious external dependency.

      --
      -I like my women like I like my tea: green-
    14. Re:Java in an IDE by Wdomburg · · Score: 1

      I'll sort of second this. JRuby. Full access to the Java ecosystem, but better aligned with the goal of rapid development.

      The beauty part is that you can do your prototyping in a convenient, highly expressive language using the same frameworks you plan on using in production.

  16. I agree Python by Joe+Tennies · · Score: 5, Informative

    My vote is for Python. My reasons are that it'[s very good for the rapid part. There's also tons of libraries to do darn near everything under the sun (see pypi.python.org). Finally, one thing in their mantra is that readability counts. This means that you can pick up your project several months later and know what it does... maybe even someone else's! Try doing this with Perl or Ruby, and it's much harder.

    Python works quite well on the UNIX like systems, decently on Windows, has good command line helper libraries (argparse or optparse), and has several really good web frameworks. Heck, you can use IronPython or Jython and mix into your .NET or Java code!

    The biggest weak point is probably full GUIs. It's not that there's not any good ones, there's just not a good default one. TkInter is built-in, but it's based on Tcl/Tk, the interface isn't very Pythonic, and the end result isn't great. WxPython is good for a basic GUIs, but adding custom widgets is hard. PyQt and PySidehas a more complete collection of widgets, but it again is tough to add new widgets. PyGTK has the large collection of widgets, and widgets can be written in Python and become first class widgets even in other languages. The new kid on the block is Kivy, which is kind of like QML for Python. Kivy defines very low level functionality that builds up widgets, but it makes it easy to combine them together to make a complete widget. This sounds like a lot of work, but it turns out to not be as bad as you'd expect.

    Also, PyDev, PyCharm, and WingIDE are all pretty amazing IDEs for Python.

    Finally, there's a good amount of jobs asking for Python, especially in big cities.

    1. Re:I agree Python by Anonymous Coward · · Score: 2, Informative

      Like the OP, I also came up through university when everyone was learning Lisp (mostly Scheme) and C. Early in my career, I did a lot of distributed systems programming in C, and far too much scripting in SH for both multi-platform build systems and actual runtime systems (monitoring, data reformatting, etc.). I made a transition from developer to architecture/management roles and then eventually found my way back to a kind of mentoring and special projects role where I do a mix of rapid prototyping for new products and also one-off stuff where the outputs matter more than the resulting code. I reevaluated a lot of my background, skills, and biases throughout this period and have become pretty mercenary in how I choose tools.

      I can also endorse Python for the OP's needs. You don't need to, and shouldn't, use it where a bit of BASH would suffice. You also need to realize Python diverges from Lisp in quite a few regards, so be willing to learn and adapt to its quirks. But it serves a nice purpose for that step where you wish you could apply an obvious algorithm or data structuring method that is beyond a line-record data stream, yet you don't have an existing C framework nor the budget/priorities to develop one yourself. In Python, you can quickly import a few existing modules and evaluate their fit your problems, getting the value of scripted/dynamic prototyping that is hard to accomplish using C. An IDE or even just the basic read-eval-print loop is very useful here. Usually, the available Python bindings for different packages are well-designed enough to easily mix-and-match in ways that would require vast amounts of glue code or data restructuring in raw C.

      I've gotten a lot of mileage out of Python for cleaning and pre-processing CSV and JSON datasets, using the obviously named "csv" and "json" modules. I've more recently been using numpy and scipy modules to do numerical work and image processing experiments, where we needed some preliminary results to decide if and how to pursue more funding and launch a new project at work. In a few cases, I've shifted from CPython to pypy runtimes to execute a particular CSV or JSON data-processing step at scale, also mixing in bits of BASH to run parallel work on different data files, etc.

      However, if you are doing very much manipulation of tabular data, I'd recommend learning a bit of SQL too. It is very easy to use Python for pre-processing to load data into a temporary SQLlite or PostgreSQL database and then use SQL directly to do the heavy-lifiting of data analysis. If you have to do statistical work on large datasets like this, also take a look at MADlib, which is a very interesting integration of PostgreSQL, Python, and C libraries to do a range of standard methods on large tables within the database. For example, principal components analysis (PCA), k-means clustering, and other data-mining/statistical methods become simple SQL queries using stored procedures defined by the MADlib package. I've used these on tables with 100M to 1B rows to good effect.

      These things all give you the flexibility to compose new data pipelines, in the spirit of BASH/sed/grep/awk, but with more complex data formats and more intensive processing at each stage. You don't have to dump all your systems/architecture thought processes if you view them as a larger set of tools to integrate into a pipe. You just replace the basic Unix line-record stream with structured data files and/or database connections. However, you need to develop the ability to recognize and steer clear of the framework/stovepipe cults that seem to exist with all the newer programming languages. There seem to be a lot of people who want to build "pure" environments that disavow all methods from outside and suffer serious second-system effects, and this creates a lot of false leads when you are searching the web for tools and techniques.

    2. Re:I agree Python by theskipper · · Score: 1

      Excellent answer.

    3. Re:I agree Python by Coryoth · · Score: 3, Informative

      I've gotten a lot of mileage out of Python for cleaning and pre-processing CSV and JSON datasets, using the obviously named "csv" and "json" modules. ... However, if you are doing very much manipulation of tabular data, I'd recommend learning a bit of SQL too.

      You may want to look into pandas as a middle ground. It's great for sucking in tabular or csv data and then applying statistical analysis tools to it. It has a native "dataframe" object which is similar to database tables, and has efficient merge, join, and groupby semantics. If you have a ton of data then a database and SQL is the right answer, but for a decent range of use cases in between pandas is extremely powerful and effective.

    4. Re:I agree Python by BrianJohns · · Score: 1

      One thing that really makes a learning a new language much easier is if the language has an immediate mode front end. When you're learning the vocabulary and the syntax of a language its much quicker to see the effects of your statements immediately without the need for compilation much like old basic apps would function. If I remember correctly Python has such an immediate mode interface does it not? I seem to remember it having something like that. The languages feels a lot like a mish mash of VB and OP in some ways yet still retains the overall feel of a scripting language. I'm a Delphi man but Python has some pretty awesome features.

  17. Re:Why Slashdot, why!? by Anonymous Coward · · Score: 1

    Slashdot has had ads for a very long time. However, for long-time registered users the "Disable Ads" checkbox is broken and ads are still shown.

  18. Scala by bunratty · · Score: 4, Informative

    I've preferred Python for small projects and Java for larger projects. I like Java, but it's so verbose that it's annoying to write short programs in it. I've been learning Scala over the past few months, and it looks like it combines the best of both worlds. Programs are much terser than they are in Java, often looking more like what I would write in Python. But Scala is typechecked like Java is so you see errors at compile time rather than when conditions are right to trigger a problem as in Python. Scala also runs on the JVM, so it's fast as opposed to Python.

    --
    What a fool believes, he sees, no wise man has the power to reason away.
    1. Re:Scala by Phillip2 · · Score: 2

      "Scala also runs on the JVM, so it's fast as opposed to Python."

      This is so wide of the mark that I had to comment. The JVM is a fast virtual machine, but that is a poor benchmark. Java and Python run at roughly equitable speeds, but where Python wins out is that it has a much stronger interface to C or Fortran. For hard core number crunching, python wins because you can either call existing scientific or numerical libraries, or use tools like numpy which do the stuff that needs to be fast in C.

      Phil

    2. Re:Scala by bunratty · · Score: 1

      In my experience, Java is significantly faster than Python. You can see Peter Norvig's timings of those languages.

      --
      What a fool believes, he sees, no wise man has the power to reason away.
    3. Re:Scala by Anonymous Coward · · Score: 0

      The only catch with Java for scientific computing is it's JVM-dependent on whether memory is legitimately shared between the JVM and C or if it's invisibly duplicated. That's a big "if" for algorithms that are memory-limited or would be if memory consumption was 2x, but otherwise there's little effort to get C code working from Java.

    4. Re:Scala by Anonymous Coward · · Score: 0

      In other words, if you want fast use C otherwise use Python.

    5. Re:Scala by antifoidulus · · Score: 1

      There is a much better rule of thumb, if the language needs to link to C to do relatively mundane tasks(XML parsing, JSON etc) then it's a sure sign it's a slow language. I couldn't believe that nobody uses a pure Ruby implementation of a friggin' JSON library. That just screams "Ruby is dog slow". From what I gather Python is similar.

    6. Re:Scala by styrotech · · Score: 2

      Scala also runs on the JVM, so it's fast as opposed to Python.

      It's probably wan't your intention, but you make it sound like it is the running on the JVM part that makes Scala fast, rather than Scalas design and implementation eg static typing etc.

      By itself, just running on the JVM is not some magic fairy dust that's enough to make highly dynamic languages run like Scala. ie most of the time Jython is actually slower than CPython.

    7. Re:Scala by Anonymous Coward · · Score: 2, Interesting

      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).

    8. Re:Scala by epine · · Score: 2

      I'm presently reading Assholes: A Theory by Aaron James, a surfer-dude professor of philosophy from Harvard University trying to cash in on the On Bullshit surge, which sold surprisingly well for what it is. I don't totally agree with Mr James, but there are some great passages. We'll see after I finish the book.

      That just screams "Ruby is dog slow".

      Sorry, that screams asshole entitlement—but maybe just because I was reading that book yesterday evening, and having a shiny new book is a lot like having a shiny new toy.

      At least we have a new snowclone: Three-word-cliche The-Shit three-word-cliche. Interesting, both "just screams" and "dog slow" are high on the list of the asshole lexicon. We all know it when we hear it.

      Many scripting languages appear to be almost as fast as C not because it came easily (it never does with a scripting language) but because immense amounts of talent and clever optimizations were poured into the brew behind the scenes to perfect this illusion.

      This isn't so different that the story of x86 vs ARM. x86 is reviled for having one of the worst instruction sets of all time, and after thirty-five years it's still holding its own. How many technologies born in a gutter manage that? True, Intel has poured more ingenuity behind the scenes to enable this illusion than any sane person wishes to contemplate. If Borges were an engineer, he wouldn't have written El inmortal, he would have just killed himself.

      Nevertheless, bottom line, x86 is NOT dog slow. Aren't you happy they care? Is your little world complete now? I personally don't think the standard for inventing a useful scripting language ought to be Nelson Mandela's eighteen-year term breaking rocks in a rock quarry so that some entitled asshole enjoys the perfect crunch on the flower paths of his estate garden. Why should it be, when it's a simple matter to just call out to C or Boost when the need arises? No wait, that's what you hate most. That's the dog that cries slow in the night.

      Awwooooooooooooooooo.

      My how that sound chills the soul.

    9. Re:Scala by aminorex · · Score: 1

      in other words, if you want slow, use python

      --
      -I like my women like I like my tea: green-
    10. Re:Scala by Anonymous Coward · · Score: 0

      Essentially the parent's point was you wouldn't actually be using python to do time-intensive operations - you'd be using one of the numerous C or Fortran bindings. Things that sometimes, but not as commonly exist for Java.

    11. Re:Scala by antifoidulus · · Score: 1

      So basically you are insulting me and making shit up to compensate for the fact that you don't have a point? Why would they go through all the trouble of implementing such libraries in C if they didn't have to? If the languages are "Many scripting languages appear to be almost as fast as C"? Shits? Giggles? Get some real info and THEN you can act like a self-righteous prick. Until then, actually read and fucking try to grasp the information presented in a post before acting like a dickhead, k?

    12. Re:Scala by Daniel+Hoffmann · · Score: 1

      Java is faster because it has static typing, you can work around that by using scientific libraries to do things like matrices multiplications (which do the operations in a typed manner.)

      Really static vs dynamic typing is an order of magnitude of difference in performance, the internal optimizations of the VMs don't matter that much in comparisons like these.

    13. Re:Scala by Daniel+Hoffmann · · Score: 1

      Just copying my previous answer:
      "Java is faster because it has static typing, you can work around that by using scientific libraries to do things like matrices multiplications (which do the operations in a typed manner.)

      Really static vs dynamic typing is an order of magnitude of difference in performance, the internal optimizations of the VMs don't matter that much in comparisons like these."

      "if the language needs to link to C to do relatively mundane tasks(XML parsing, JSON etc) then it's a sure sign it's a slow language"
      No, it is just a sign that the language is not typed and will not handle well things that require static typing so it calls code that is static typed.

    14. Re:Scala by akubot · · Score: 1

      +1 for Scala

    15. Re:Scala by Anonymous Coward · · Score: 0

      Sorry, this is the Computer Science department. I think you were looking for Literature Deconstruction - they are down the hall.

  19. Javascript by BitcoinBenny · · Score: 1

    I'm not a huge fan of the language, but it is absolutely everywhere. Completely pervasive and very accessible.
    By learning javascript you can:

    Build cross platform web based front ends
    Do cross platform mobile development (Cordova/Phonegap/Titanium)
    Build backend systems, apis (Node.js)
    Interface with tons of third party systems and services which have exposed restful/json apis.

    So from a practical perspective it is definitely the way to go, most bang for your buck. Shallow learning curve, lots of use cases. If you are already programming in C and Lisp this will be a breeze.

    1. Re:Javascript by Z00L00K · · Score: 1

      JavaScript is good if you want portable web browser stuff, but otherwise it's not type safe and therefore tricky to debug.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    2. Re:Javascript by narcc · · Score: 1

      I keep hearing this, but it doesn't actually seem to be a problem in the real world -- either with javascript or any other language with dynamic typing.

    3. Re:Javascript by K.+S.+Kyosuke · · Score: 1

      Which is why Smalltalk and Lisp systems crash all the time! (Except, these languages actually happen to have superior (and useful) debuggers.)

      --
      Ezekiel 23:20
    4. Re:Javascript by angel'o'sphere · · Score: 1

      So?
      You really want to claim you ever saw a SmallTalk/Lisp "System" crash?
      What exactly do you mean with "System" or "crash"?

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    5. Re:Javascript by poemofatic · · Score: 1

      The primary way that this problem is manifest is via lack of a good tool chain, which makes it more difficult to debug. A strongly typed language is easier on both human and machine parsers. The consequences of this are manifold and painful for the developer even in the majority of cases where the actual bug is not a type error.

      --

      When in doubt, have a man come through a door with a gun in his hand.

    6. Re:Javascript by K.+S.+Kyosuke · · Score: 1

      I'm not sure you got my point. The first sentence was sarcasm, pointing to the fact that IRL, these systems seldom have problems with value types. The second conveyed the fact that whenever debugging is actually needed, the tooling makes it simpler and faster than in many other languages.

      --
      Ezekiel 23:20
    7. Re:Javascript by Anonymous Coward · · Score: 1

      >I keep hearing this, but it doesn't actually seem to be a problem in the real world -- either with javascript or any other language with dynamic typing.

      You need to get out more. It's a huge problem that is completely silent until it happens to stop working. Take a typical c++ program. How many type compile errors do you think one gets? Now, imagine if all of those were silently converted without warning. Imagine that it works 99.99% of the time. Various width numbers, things to arrays and back, anything to bool, pointers to instances, etc. It's not hard to see where magically converting and continuing to run without a diagnostic has the capability to hurt you. Hell, easiest one I know of hits people in matlab. 0 gets converted to a string: '0', which is later treated as a number again: 0x30. Oops.

    8. Re:Javascript by angel'o'sphere · · Score: 1

      You are right I did not get your point, my fault, my apologizes.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  20. Re:Seriously? by mrvan · · Score: 5, Insightful

    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.

  21. Global Interpreter Lock by tepples · · Score: 3, Informative

    CPython threads are made for nonblocking I/O. Its memory management model puts all of a process's reference counts behind a Global Interpreter Lock. To do multiple CPU-bound things, you have to shortcut the GIL by using multiple processes. Python provides tools for message-passing IPC, but there are limits as to what kinds of objects can be pickled into a message, and you have to mind the overhead of pickling and unpickling.

    1. Re:Global Interpreter Lock by rubycodez · · Score: 1

      you can use alternative (and faster) threading systems with python too, but have to custom compile the interpreter to disable some of Pythons mechanisms that won't be needed. Still, for some hypothetical high performance multi-threaded application that shouldn't be out of the question. No need to pickle objects for IPC if you are forking, pass simple strings of JSON or whatever.

    2. Re:Global Interpreter Lock by Daniel+Hoffmann · · Score: 1

      Some libraries release the GIL when you call their functions and allow your python threads to run in parallel. Also the multiple processes library works in a way that is designed to be very similar to the threads library, so your code does look too different from using threads.

      If you really, really need the performance you can drop down to C for that part of the code.

    3. Re:Global Interpreter Lock by tepples · · Score: 1

      Some libraries release the GIL when you call their functions and allow your python threads to run in parallel.

      I've found this to be somewhat inconsistent among third-party libraries. For example, because Python Imaging Library does not release the GIL, I had to import multiprocessing for a thumbnail tool.

  22. Avoid taking it in the backdoor by tepples · · Score: 1, Insightful

    [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.

    1. Re:Avoid taking it in the backdoor by Anonymous Coward · · Score: 0

      Grow up.

    2. Re:Avoid taking it in the backdoor by BasilBrush · · Score: 2

      It's in beta. It's likely to be open sourced once it's ready. Apple have far more to gain than to lose by doing so, and in such circumstances Apple does release source. Expect to find it here:

      http://opensource.apple.com/

      Of course it won't be GPL though. It'll be one of the truly free licenses, such as BSD.

    3. Re:Avoid taking it in the backdoor by Anonymous Coward · · Score: 0

      Meanwhile, developers in Apple's ecosystem are making money doing what they love.

  23. Stop Stalling. Use Python. by conoviator · · Score: 4, Interesting

    Tons of online books and tutorials. See https://wiki.python.org/moin/P... . 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.

  24. Golang by Anonymous Coward · · Score: 0

    It takes one week to become expert.

  25. Re:Seriously? by sillybilly · · Score: 1

    Maybe you should leave driving to people who actually know what they are doing. Or talking, leave it to the lawyers, and don't ever talk. Hey, some things you gotta do yourself in life, unless you were born as nobility, with special birth privileges, and then you don't even have to do the walking yourself, because some people, called slaves, will carry you around in a box, called a litter, http://en.wikipedia.org/wiki/L...

  26. From the left field... Haskell. by Anonymous Coward · · Score: 1

    It's one of the most concise and expressive languages out there, and this combined with the static typing makes it a fantastically maintainable languages.

    There are a tonne of brilliant libraries available on hackage, all of which are barely known outside the Haskell world. Many of them offer capabilities unavailable in any other open source software. For example:

    http://hackage.haskell.org/package/regexpr-symbolic

    As a drawback, you'll spend a lot of time fixing typing errors. But your software will be correct!

    And you'll be adding to the critical mass of functional programmers in the world, aiding more widespread adoption by PHBs around the world.
    Of course, my 'best' is more of a global/personal one than in your own interest. But perhaps you'd really enjoy it. It's nothing if not wonderfully exotic to anyone coming from an imperative/OOP programming background.

    1. Re:From the left field... Haskell. by mrvan · · Score: 0

      Yeah, if you want to have fun tinkering with computers, haskell (or prolog, lisp, erlang) are extremely fun to toy around with.

      If you want to get something done.... well let's say it ends on ython ;-)

  27. Pick a fruity language of the week by Anonymous Coward · · Score: 0

    Just pick one of the fruity languages and learn it for a few weeks and watch it go into obscurity in a few months. Develop lots of mission critical software in it and watch everything fall to pieces.

  28. Im stickng wth C and shell scripting by Anonymous Coward · · Score: 0

    Most Rapid dev languages don't have as broad capabilities as C does. Just about every library has a C/C++ API, not all libraries have ported APIs for other languages. Plus Rapid Dev Languages come and go. 10 years ago Perl with King, Today its Python. Who knows, in 10 Years Python will probably be replaced. Also C programs can usually run on any machine without having to install the RapidDev tools on the machine. If you want to run a Python app, you need to make sure that Python is installed along with any API libraries that you app needs. With Python there are also multiple versions and often the code isn't compatible. for instance some older python apps won't run on Python 3.3 and apps written for 3.3 won't always run on 2.7. If you upgrade/downgrade python on a production box you might break something that is already using that version.

      I also need to write code for both windows and Linux. On windows it can be a pain to install RapidDev languages, and I prefer not to load up windows machine with RapidDev tools, especially if it just for a one-time job. Also a lot of the code I write for Windows there is no RapidDev libraries, such as MAPI, VSS, COM, etc.
    For scripting I stuck with bash on Linux and cmd\cscript on windows (I never bothered to to switch to powershell).

    1. Re:Im stickng wth C and shell scripting by mrvan · · Score: 1

      For most* languages out there you can automatically create a binding to a C api, if 1:1 API use is what you want. It is true that C is the default goto language for libraries, but if you actually want to do something like parse plain text (or json/xml), communicate over a socket, use SCP, etc etc, it is by no means the easiest language to do something in.

      For the record: perl was king more like 20 years ago. I started around 1998 and it was all perl. 5 years later I had switched to python and I think most people started realizing that perl was not the future. If you look at e.g. tiobe, you'll see that python went mainstream around 2004 and has stayed more or less constant since.

    2. Re:Im stickng wth C and shell scripting by Anonymous Coward · · Score: 0

      If you wrote C programs 20 years ago, you can be absolutely sure they won't compile and won't run today. Mine don't.

  29. JavaScript is the only right answer by Qbertino · · Score: 0

    If you're looking for the most relevant RAD Language today and the one that's the strongest upcoming, that would be JavaScript. No two ways about it. Python is definitely the more interesting, simply because its syntax is more modern - JS is basically a member of the C + Java line of languages and a prime objective of Python was to do away with the clutter.

    But in terms of momentum, there's no single doubt about the rapidly increasing significance of JS. With Node.js it has gotten hold on the serverside again, as it used to have back when Netscape Webserver was the only webserver around, and since the dimishing importance of Flash and the parallel increase in importance of mobile web-centric devices it has become the got-to technology for client-side logic in the mobile space. It's cross-platform and there's an engine for it in every browser. It's that simple. The increasing fragmentation of end-user devices is driving battalions of developers to JS as we speak and with the second half of humanity to be connected to the intarweb via cheap mobile devices within the next few years I don't think JSs' momentum is going to dimish anytime soon.

    Bottom line:
    If you need or want to bet on a single RAD PL today, JavaScript it is. Frontend to backend. Strange but true.

    --
    We suffer more in our imagination than in reality. - Seneca
  30. Avoid taking it in the backdoor by Anonymous Coward · · Score: 0, Insightful

    [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...

  31. LiveCode by Anonymous Coward · · Score: 0

    You want powerful that works on all platforms with one code base..? Check out LiveCode.

  32. Re:Seriously? by Anonymous Coward · · Score: 0

    Dumbest comment of the day award. Congrats!!

  33. Filemaker Pro by Anonymous Coward · · Score: 0

    Filemaker meets all your requirements almost perfectly. I'm sure a bunch of coders will pile on and bash but considering what you asked for I strongly recommend you give it a serious look. I often find myself turning to it when I need to whip up a quick solution to a data problem and sometimes end up using my quick solution as a full on production platform. The fact that the same effort works damn near seamlessly in OSX, Windows, Web and iOS simultaneously with no extra coding makes it very slick for what you seem to be looking for. My only gripes are lack of android fat client and no built in rollback.

    1. Re:Filemaker Pro by Anonymous Coward · · Score: 0

      dBase strikes back. Big time!

  34. seems you missed the point of C by rewindustry · · Score: 4, Insightful

    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.

    1. Re: seems you missed the point of C by toopok4k3 · · Score: 1

      Wtf is a "git account"?

    2. Re:seems you missed the point of C by Anonymous Coward · · Score: 0

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

      and beneath your paycheck, your credit cards, the entire world economy, you'll find COBOL. Bow down.

    3. Re:seems you missed the point of C by Anonymous Coward · · Score: 0

      Lords of Kobol

    4. Re:seems you missed the point of C by david_thornley · · Score: 1

      C is not a good language for casual use. It has limited abstraction abilities, and programs in C will probably take longer to write than in other languages (assuming equally skilled programmers). It also has quite a few ways to make subtle mistakes. While it has a great many advantages in skilled hands, I'd recommend almost anything else for a non-professional programmer.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    5. Re:seems you missed the point of C by rewindustry · · Score: 1

      you seem to have missed my point - C is excellent for abstraction if you have taken the time - as i have - to build your own library of such.

      these are skilled hands - read the article - the man is a C professional already, looking for alternatives.

      what happens if everbody follows your advice?

      who will maintain the C code that *inevitably* lies beneath all "higher" level languages?

      i realise i'm soapboxing here, but as one on whom the burden of that maintenance has fallen, and surrounded as i am by script kids who take garbage collection for granted, eat memory like it was candy, and stuff buffers as if they were infinite, i am more than a little afraid of what the future will bring.

      there is no such thing as a free lunch, and this includes the highler level coding languages - robert a heinlein (not necessarily the heinlein)

    6. Re:seems you missed the point of C by david_thornley · · Score: 1

      C is far worse for abstraction than many other languages. A library will take you only so far.

      And if everybody follows my advice? Then the novices and the casual users use Python or something else, and don't write bad C code. The people who know what they're doing (and this does not include everybody who took a C course in college) write good C code.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  35. Ruby by Anonymous Coward · · Score: 0

    If the lack of braces on blocks drives you nuts, as it did for me, I'll recommend ruby instead of python. I also regularly use it for interfacing with java using jruby. I especially like the iterator feature in ruby once you get your head around it you can write some really clean, quick code. I've even started replacing some things I used to use bash scripts for, especially if it invovles working with json or regexes.

  36. already have the answer by Anonymous Coward · · Score: 0

    It sounds like you already have the answer. Since you already know lisp, just use common lisp. It's powerful, the development cycle is fast, Apache modules are available to support it, and is pretty good at data processing. Unless your goal is to learn a language for the sake of learning a language (or for changing jobs) and it doesn't sound like that is the goal, just go with the powerful language that you already have. There's really nothing wrong with lisp.

    1. Re:already have the answer by Anonymous Coward · · Score: 0

      Plus, there are several lisp -> javascript compilers so you get the benefit of access to coding in the frontend with the same language.

  37. Re:Why Slashdot, why!? by Arker · · Score: 0

    I never checked it anyway, but I still never see ads here, because they are apparently all ecmascript monstrosities.

    I would actually be fine with seeing ads but apparently the advertisers are not fine with being web-accessible.

    --
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-
    Friends don't let friends enable ecmascript.
  38. Java - Many Libraries To Source - Strong String .. by WolphFang · · Score: 1

    Java - Many Libraries To Leverage - Strong String Support - Can be compiled to Javascript (GWT) - Strong Community ... Where I work we recently have begun transitioning from PHP/Etc to Java/GWT for both web-based (GWT) and non web-based (CLI) utilties and sundries that we use "to get it done". We have found that we spend more time creating code that works and alot less time debugging type issue, undelcared variable issues, etc and the performance gain over PHP was also a nice improvement. An additional benefit is if you add GWT to the mix you get Java->Javascript compilation combined with simplified AJAX/RPC for any thing web-based you are needing to create. The Apache Commons, XOM, JSOUP, and other 3rd party packages greatly simply stuff like XHTML processing, data extraction, format conversions, looping through files, and directories, reading files line by line, etc. And for some of our more heavy data stream processing type stuff, the built in threading stuff can give a definate peformance benefit when designed for. While it is a compiled language, the development cycle for basic "get it done" stuff is extremely rapid because the applications we are creating are not large and the language is alot more flexible than basic Bash scripting, etc. Eclipse also goes along with with automatic code completion, etc, in greatly speeding things up. The core 'Java' syntax is similar enough to core 'C' syntax that you can spend your time actually learning the higher level stuff and alot less time learning where different punctuations go. A good a quick introduction to the language would be something like: "Linda Java Essential Training" - http://www.lynda.com/Java-tuto... (Not saying this one is better than any other quick introductions...) Whichever language(s) you choose ... best of luck. -Mike

    --
    leather-dog muksihs
    Blog: @muksihs
  39. AutoIt, Hands Down! by CAOgdin · · Score: 1

    While I started programming in '62, and have used more than 50 languages, I'm now semi-retired and don't write code for a living. While I'll dash off a CMD script on Windows for a "quicky" I write my final code in AutoIt (http://www.autoitscript.com/site/). It's free, and you can go from novice to Windows-innards programming in one tool. While it's a native interpreter (like LISP) you can compile it into an executable program (like C).

    You already know the four basic operations (Sequence, Condition, Iteration and Functions; see http://en.wikipedia.org/wiki/S...), and the comparable four basic data types (Value, List, Matrix and Linked), because you've used C...but Lots of Irritating Single Parentheses (LISP) is not much use as a utility program creator.

    Go download AutoIt's Quick Guide and "Learning to Script with AutoIt," and you'll have a practical tool that's easy to learn, but incredibly deep in the use of Functions (your LISP experience will help), and great on-line community who've shared lots of code and offer ready help as you're starting out.

    Enjoy!

    1. Re:AutoIt, Hands Down! by pnutjam · · Score: 1

      Great tool, but windows only...

  40. the best-designed choices, IMO by sribe · · Score: 1

    Python, Ruby, scsh--but the latter doesn't really have relevance to the web, while the first two have popular and well-designed web-app-serving frameworks built on them.

  41. Python can be quite fast and integrates beautifull by Anonymous Coward · · Score: 1

    I don't think there is a single language which really is an absolute panacea for everything the OP is asking for. Honestly, Javascript probably is the closest thing... but, even so, I think I'd recommend taking a look at Python first.

    A lot of folks are claiming that Python is slow. It is not slow if you write 'Pythonic' code and use the proper libraries. Most cross language performance benchmark studies I have seen use Python code that written like C++ or Java... AND, do not take advantage of any mainstream Python libraries. Once you compare 'best' python code against best Java code... any performance advantage of Java often entirely evaporates. It may take more libraries and more artful coding to get that speed out Python...

    A comment mentioned the Boost library, you can use Boost from Python directly. Twisted Python for networking and async IO provides all kinds of tools for getting around the GIL issue. Big Data type of operations can be done quite elegantly with Disco. Python can be compiled to JVM bytecode, can easily be compiled to C using Cython, and the Numba project is fast developing excellent capability to compile to well-optimized LLVM using simple function decorators to type cast and essentially nothing else. Python can be compiled to MFC CLI use most all of MS' .NET and windows forms capability.

    I second the Qt API recommendation which is useable with C++ and Python. Layouts can also be done using enaml, Qt-QML. Within Python, there are even more simple libraries for generating basic GUI's super quick: guidata and guiqwt. You can also use Python's own GUI libraries, wxpython, kivy, and others.

    Nothing against Java (and Scala,Clojure), JS, Lua...

    For the OP, Python is maybe the best compliment to C/C++ expertise and will be quite easy to pick up.

  42. Re:Why Slashdot, why!? by Anonymous Coward · · Score: 0

    Slashdot also multiplies it...

  43. Go back to Farmville by Anonymous Coward · · Score: 0

    LISP? Really?
    It seems to me that you want to do simplistic meta-programming with no attention paid to performance. Go VB if you are a Micro$lop-uber-alles "programmer". Yes, I DO understand dynamic language overhead (I'm a compiler developer) so don't waste your time promoting how wonderful things like Java[script] are. There is a good reason that Operating Systems are NOT implemented in languages with hidden dynamic memory allocation such as C--, C#Inept, Java*, etc.

    The point is that higher level languages can and do provide simplicity of programming for specific domains, but they are dependant upon the domain.

  44. C# for Q&D by WinstonWolfIT · · Score: 3

    The learning curve for a C programmer isn't bad, you can self pace into some elegance if you get painted into a corner, it's very easy to bang out a console application or service, deployments are pretty easy, and it's pretty well documented how to interface web services and web applications from the console. Given the OP's background and the objective, it seems the best fit for me.

  45. Seriously? (Yes, seriously.) by aussersterne · · Score: 4, Insightful

    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.

    --
    STOP . AMERICA . NOW
    1. Re:Seriously? (Yes, seriously.) by pjt33 · · Score: 2

      Don't you need to keep the original file and the code you used to transform it, so that you have an audit trail which shows how you got the current data?

    2. Re:Seriously? (Yes, seriously.) by johnjaydk · · Score: 2

      Don't you need to keep the original file and the code you used to transform it, so that you have an audit trail which shows how you got the current data?

      Only if it gets down to covering your ass and then you're fucked anyway. Nobody gives a shit how you contributed to a success.

      --
      TCAP-Abort
    3. Re:Seriously? (Yes, seriously.) by jwhitener · · Score: 1

      Ditto.

      9/10 tasks of my first tasks for the first 5 years of my career were cleaning data. You quickly learned that often a combination of tools worked best. Import into spreadsheet and cut off a column, export back out to text. Edit with VI and :s/^V//g to remove some stuff.. finally finish by writing a small script to loop through the file and do something.

      Since most systems all had perl, then later python, installed, that is what we used.

      Heck, even some years later when the web started becoming a bigger thing, I ended up using web languages to parse text files, just because that was what I had become most familiar with.

      I think there is a big split between coders that work in businesses whose primary goal is creating software, and coders who work in businesses whose primary task is something other than producing software (healthcare, education, etc..).

  46. Stick to PHP/HTML/CSS/JS by guruevi · · Score: 1

    Sure, all the rest of these languages are fancy and some startups are actually using them (when boiled down just ends up between node.js, Scala(Java) and a NoSQL database du jour).

    No company uses python outside of scientific use (where it can be very powerful). No company uses Ruby anymore besides the odd legacy app.

    Facebook, Google, Twitter, OkCupid ... Average startup - PHP, JS, C-variants, HTML, CSS, Java-flavor. It's powerful, plenty of established applications and COTS will generally be a good enough solution for most people. It's foolish to write from the ground up these days in an odd language given the existence of open source solutions for just about anything. And with PHP getting faster and more efficient it scales very well.

    I just implemented an open source CRM with a bunch of custom work on a 300MB VPS - Nginx, PHP 5.5 with OpCache, MariaDB, JS, CSS, HTML - can sustain 50MBps of traffic to the CRM without a single drop (3ms response); 2000 complex queries on the CMS per second under 100ms response, I can simply throw more hardware at it if I need more but for a 300-member club, that's plenty.

    --
    Custom electronics and digital signage for your business: www.evcircuits.com
    1. Re:Stick to PHP/HTML/CSS/JS by dbrueck · · Score: 1

      Oh c'mon, "No company uses python outside of scientific use" is wildly incorrect.

      I started using Python about 15 years ago and, at the time, Python was obscure and it took some convincing to get others to use it for any "real" (i.e. customer-facing) projects. But it's so widely used now that I haven't had to make that argument for at least a decade, and I've used it at many different (and successful) companies.

      I work for a Fortune 100 company currently and we primarily use Python for our whole sytem. Not by mandate - it's just a really great language in so many areas. Our whole web stack is written in Python and we handle hundreds of millions of transactions each month (yes, there are companies doing more, that's not my point, just trying to convey that it's not some toy web app or something).

      And for large scale web apps, pypy+gevent packs a nice one-two punch. We've even started using Python on Android (via Kivy) lately, but at this stage it /is/ just for toy apps - for now.

      No language is perfect for everything, but Python is really great in a lot of scenarios. Honestly, at this point PHP qualifies for the title of "odd language" than Python does. The fact that so many companies still use PHP is a historical artifact more than anything.

  47. LabVIEW by EngineeringStudent · · Score: 1

    LabVIEW has C# backbone, very fast develop and deploy and seems acceptable (or even ideal) for web-based applications. You might consider it.

  48. for what purpose? by akume325 · · Score: 1

    rapid development of what? websites? mobile? prototyping? try meteorjs if you want to do something in websites.

  49. Re:Python can be quite fast and integrates beautif by Anonymous Coward · · Score: 0

    If you are clever, there are ways to use python w/ffi C++ and get around limitations of the GIL. I had a colleague that worked in HFT--his company was responsible for 10% of Nasdaq--and so was their python/C++ hybrid code.

    For GUIs, Python + Qt is an amazing combination--very fast to develop with.

    As for speed, people bag on Javascript. However, they are probably ignorant of the fact that the most advanced compiler technology development is currently going into the javascript vms--they are already more advanced than anything java or lisp has ever had--standing on the shoulders of those giants and taking some further leaps forward.

  50. Scripting languages are overrated by Anonymous Coward · · Score: 0

    Use Ada *ducks*

  51. Python APL by Anonymous Coward · · Score: 0

    NumPy and SciPy are a superset of APL and J, so there really is no reason to use APL anymore.

  52. Have you tried lisp lately? by Anonymous Coward · · Score: 0

    Personally I don't care if the thing is "text based" -- it's what Unix is all about.* There's a reason greybeard Unix admins will use C for "scripting" if that fits the problem best. If not, well, you know there's shell and sed and awk and whatnot, and hey, for quickly whipping up something that works pretty well. There are even shops selling point of sale solutions customised and built out of (their own) components glued together with shell. Nothing wrong with that solution if it fits the problem well.

    Though I have no experience with it, a classic rapid prototyping thing for GUIs is Tcl/Tk. Remember that you were talking prototyping, not production-ready solution baking, so it only has to show what the production code should be doing. If that's not enough you're not rapidly prototyping.

    Beyond that there's the "best of breed best business practice" bullshit like javascript and all its derivatives or the vb-of-the-web, php. Vaguely usable for things that fit in about half a html page worth, everything else is taking it too far. If not hip enough, hey, ruby is pretty rad, and python is popular. Of course, there's many more options in computing land, these are but recently popular general ones. What are you really after?

    But if that's all not to your liking, you probably should leverage that old lisp learning. Modern lisps come with plenty things to do GUI and webpage things, good enough for prototyping if not production, then again that often enough too.

    * For proper shell scripting stick to posix / bourne shell, no bash. bash is typical gn00 fare that doesn't play well with others.

  53. The best? Still Smalltalk! by K.+S.+Kyosuke · · Score: 1

    Oh, wait...perhaps you meant most useful on the market? Well, that's where things get ugly!

    --
    Ezekiel 23:20
  54. Converting to "simple strings" itself takes time by tepples · · Score: 1

    there are limits as to what kinds of objects can be pickled into a message, and you have to mind the overhead of pickling and unpickling.

    No need to pickle objects for IPC if you are forking, pass simple strings of JSON or whatever.

    I was using pickling in a general sense of any serialization. (Different languages have different preferred names for this concept: Python has pickle, Java has serialize, etc.) So let me rephrase: There are limits as to what kinds of objects can be turned into "simple strings of JSON or whatever", and you have to mind the overhead of turning the object into a string and back into an object.

    Perhaps my point is that it's still purpose-defeating if the CPU-intensive thing is parsing a multi-megabyte XML or JSON or CSV feed returned from some service.

  55. Languages don't matter, environments do by patrick.vdhagen · · Score: 1

    Once you learned some basics like functions, loops, conditionals or classes, there are some huge families (object-oriented, functional, procedural,...) but inside a family there are little differences. Like "def" in python is "sub" in perl. You should care more about questions like tool-support (is there an IDE?) and libraries or frameworks. You should never start coding without wondering "am I the first person on this planet solving this particular problem or might there be libraries I could use instead of reinventing the wheel?" Since you are using bash/grep/sed/awk/bc/etc anyway, I believe you are pretty close to perl anyway. And perl has CPAN, a central repository where people can show off their code and find great libraries. Personally, I believe perls huge success wasn't caused by the language (which I consider to be quite annoying), but by CPAN. You need a perl-library? Go to CPAN. You need a C-library? Aehm, try google... But I often have the feeling that perl-coders don't really cooperate. Perhaps that's not their mindset, perhaps they just can't agree on a common coding style ("there is more than one way to do it" and you will understand what that means after reading some code from different programmers), but in the end they seem to be more likely to start a new module at CPAN instead of improving an existing one, so looking for a module can quickly result in evaluating five different modules done for the same purpose, just to find out that three of them have seen no updates for at least a year and another one is lacking documentation. Pythons CPAN is PIP and to me it seems like there are fewer modules, but it is easier to fond good ones. For example ,try finding a good library for logging and a good one for reading config-files in CPAN and PIP. tl;dr: try defining some aspects like "tool support" or "top 5 libraries I will need" and check perl, python and ruby. Then decide by those aspects. There is more to a car than simply the engine.

  56. Languages don't matter, environments do by patrick.vdhagen · · Score: 1

    Once you learned some basics like functions, loops, conditionals or classes, there are some huge families (object-oriented, functional, procedural,...) but inside a family there are little differences. Like "def" in python is "sub" in perl. You should care more about questions like tool-support (is there an IDE?) and libraries or frameworks.

    You should never start coding without wondering "am I the first person on this planet solving this particular problem or might there be libraries I could use instead of reinventing the wheel?" Since you are using bash/grep/sed/awk/bc/etc already, I believe you are pretty close to perl anyway. And perl has CPAN, a central repository where people can show off their code and find great libraries. Personally, I believe perls huge success wasn't caused by the language (which I consider to be quite annoying), but by CPAN. You need a perl-library? Go to CPAN. You need a C-library? Aehm, try google...

    But I often have the feeling that perl-coders don't really cooperate. Perhaps that's not their mindset, perhaps they just can't agree on a common coding style ("there is more than one way to do it" and you will understand what that means after reading some code from different programmers), but in the end they seem to be more likely to start a new module at CPAN instead of improving an existing one, so looking for a module can quickly result in evaluating five different modules done for the same purpose, just to find out that three of them have seen no updates for at least a year and another one is lacking documentation.

    Pythons CPAN is PIP and to me it seems like there are fewer modules, but it is easier to find good ones. For example, try finding a good library for logging and a good one for reading config-files in CPAN and PIP.

    tl;dr: try defining some aspects like "tool support" or "top 5 libraries I will need" and check perl, python and ruby. Then decide by those aspects. There is more to a car than simply the engine.

  57. Python Perl by Shompol · · Score: 1

    From someone who used Perl for over a decade: as soon as your project evolves beyond a couple of package files Perl degrades into a nightmare. I learned Python from scratch a few months ago and it is easier to code and manage by leaps and bounds. Character encoding and number of existing libraries also shines compared to Perl, even for Python 3

  58. Title was: Python .gt. Perl by Shompol · · Score: 1

    Slashdot ate my '>' sign

  59. Re:Converting to "simple strings" itself takes tim by rubycodez · · Score: 1

    in those extreme cases ofttimes the objects (or data structures) and messages are handled in libraries called by python (e.g. the popular science and engineering analysis packages)

  60. ELM by Anonymous Coward · · Score: 0

    Try ELM [elm-ang.org], which is FRP [wikipedia/FunctionalReactiveProgramming] in action.

    I never tried it but I want to as soon as possible - it looks really promising.

  61. Very difficult question by Anonymous Coward · · Score: 0

    The only language that is capable of all those specifications is Javascript. (Java could but requires more time, knowledge, and compilation)

    I would not limit myself to Javascript for data analysis though, because the environment is more important than the language here:
    - Excel for viewing, maniuplating, and simple forms (VBA)
    - Access for joining many tables together, instant forms/reports, can also do transactional forms (VBA)
    - Matlab for interactive statistics/engineering
    - Perl for quick scrubbing and regex
    - iPython

    So, if you want one language for everything, Javascript. If you add VBA to that, you can rapidly analyze and develop on a windows machine (Excel/Access/ASP/vbscript). You could even map a common set of functions from your RAD environment to your multi-platform environments.

  62. Too worried by DamianJPound · · Score: 1

    What can you really expect from a different language? Your code isn't going to look that much different in a different language unless you're taking advantage of something rather unique. There are going to be quirks in any language you learn, so just get used to them and don't worry about it. I'm only 22 and I have no problem using PHP, I don't understand what the big deal is with all these other languages. You mentioned C, I was actually intending on learning C++ (which is pretty much an extension of C) because I liked it more than the other ones I looked at... I just had no reason to make a native program and I wasn't too interested in helping out any OSS projects I saw.
    Maybe I'm really just an old geezer in some kid's body.

  63. This is not a troll... VB by Anonymous Coward · · Score: 0

    Really, think about it, especially if he's using windows. No other app language is as flexible as VB / VBScript. It does command line (.vbs), it does server side (ASP), it does client side HTML apps (.hta), builds macros (Vba) and full blown apps with only minor tweaks among the environments. It's also dead-simple to learn. The OP said he doesn't want to be a programmer, that he just wants to get stuff done. I am of a similar mind; when I just want to get some stuff done, I fire up notepad and do it.

    1. Re:This is not a troll... VB by Anonymous Coward · · Score: 0

      and if he's not, or for some reason later needs to be a bit cross platform...
      And when I have to use Windows Script Host I tend to use JScript. I dislike Javascript, but it's vaguely tolerable compared to VBScript.

  64. Tcl/Tk for rapidity by Anonymous Coward · · Score: 0

    Tcl/Tk is a rapid language to produce in. Its slightly slower to learn.
    Its platform independent, extensible, its even fast if you code properly.
    It sucks at number crunshing and graphics like 2D/3D engines, thou.

  65. Python is compelling and repulsive by Anonymous Coward · · Score: 0

    Python is compelling because you can use Jython and learn one syntax for systems programming and embedding a language in your Java code. With the bewildering number of languages which have similar but difficult syntax, which causes me cognitive problems when switching languages so much, I like to keep things simple. Python/Jython helps.

    Yet Python has committed language suicide by breaking itself between version 2 and 3. I used to use the fact that Jython was apparently frozen in version 2 as an excuse to ignore Python 3, but now Jython is catching up. This breakage is just as bad as switching languages. (Breaking your own print statement, really?)

    So there's JavaScript, which is widely used on the client in browsers, usable on the server as a scripting language (Node.js isn't just for web servers), and has a Java implementation as an embedded language.

  66. Voice of reason by ArhcAngel · · Score: 1

    REXX is what you want. I could make arguments why but this article does a decent job. I'll get lambasted for recommending such a dinosaur for recommendations to a modern language but if the tool works who cares how old it is? In fact the latest version of the Regina interpreter for REXX was released just last week. If nothing else read up on some of the ways REXX has been used to "GLUE" other systems/ programming languages together. It should be just what you need to tackle those tricky situations that nobody around you will care about but make your day a living nightmare.

    --
    "A person is smart. People are dumb, panicky dangerous animals and you know it." - K
    1. Re:Voice of reason by dargaud · · Score: 1

      Rexx has been around forever and yet nobody uses it. Honestly, why do you this is the reason ?

      --
      Non-Linux Penguins ?
    2. Re:Voice of reason by ArhcAngel · · Score: 1

      Rexx has been around forever and yet nobody uses it. Honestly, why do you this is the reason ?

      My guess is people are hard headed and continually insist on making that square peg fit in the round hole. That and we're obsessed with the new shiny.

      --
      "A person is smart. People are dumb, panicky dangerous animals and you know it." - K
    3. Re:Voice of reason by K.+S.+Kyosuke · · Score: 1

      Rexx has been around forever and yet nobody uses it.

      ...cue an Amiga computer suddenly appearing out of nowhere and hitting your head.

      --
      Ezekiel 23:20
  67. Lazarus/Freepascal by gafe · · Score: 1

    I really think it's something you should try. RAD with Linux/windows/mac support....generates single executables, good performance....and if you were a programmer years ago, i'm sure you touched pascal anyway. Also android support it's getting in shape.... Really dont know why it doesnt get more traction.... P.S. Sorry for my english...

    1. Re:Lazarus/Freepascal by FlyingGuy · · Score: 1

      Being from the Delphi camp for many years, I too recommend this, but they need to get the install worked out. Also they need to get LLDB worked out on the Mac because trying to load in another version of XCode to sit beside the latest for just the debugger is a royal pain in the ass.

      --
      Hey KID! Yeah you, get the fuck off my lawn!
  68. PHP on the command line by brausch · · Score: 1

    You said: "as web apps using PHP"

    How about just using PHP from the command line? It's dead simple and just extends all of the things you already know how to do: sed, grep, shell scripts and C. Just read from stdin and write to stdout and you have access to a lot of capability with very little new learning. You don't need web pages to write PHP. It can be used like any other scripting language (Perl, awk, etc.)

    --
    "Almost every wise saying has an opposite one, no less wise, to balance it." - George Santayana
  69. Re:Converting to "simple strings" itself takes tim by pthisis · · Score: 2

    If you have a CPU-intensive thing, you can use shared memory and binary structs to share it, no need to turn everything into a string.

    --
    rage, rage against the dying of the light
  70. C# and JQuery by Anonymous Coward · · Score: 2, Insightful

    *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.

    1. Re:C# and JQuery by Anonymous Coward · · Score: 0

      I'm also aiming for the heresy mod by suggesting F#, C# and powershell for GUI and data processing, and Javascript with your favourite enhancements, libraries and IDE for web and mobile. Prepare for a steep learning curve.

  71. Haskell by Anonymous Coward · · Score: 0

    I'm going to break with the others here and recommend Haskell. These days, Haskell can be used to write basically everything except desktop apps and mobile apps. And learning the important ideas of Haskell will prepare you for the new features in each version of languages like C# and C++.

  72. I'm a Ruby guy but... by MrBandersnatch · · Score: 4, Insightful

    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.

    1. Re:I'm a Ruby guy but... by Xyrus · · Score: 1

      JavaScript was developed by a Sith Lord.

      --
      ~X~
    2. Re:I'm a Ruby guy but... by Anonymous Coward · · Score: 0

      Agree most part. Except the mobile. For mobile I really recommend going to object-c (or swift) and java. Mobile is a very specific world, with very different GUI guide lines, etc. So I really recommend going native.

      And Ruby >>> Python ;-)

  73. Re:Seriously? by Anonymous Coward · · Score: 0

    The difference, of course, is that talking (or communication) and driving aren't special skills, and are essential. Even most programmers who program for a living suck at their jobs, and I don't expect someone who's not serious about it to be any better. It takes a special aptitude to program well, just like it takes a special aptitude to truly comprehend why more complex math works (Most people don't, and wouldn't even without our useless rote memorization system.).

  74. Livecode by Anonymous Coward · · Score: 1

    With it's roots in Apple Hypercard, Livecode by RunRev expands on the ease of Hypercard's English-like language with multi-platform support including mobile OS. I've never found anything quite as useful for little one-shot applications and tools, rapid prototyping, and eventual releasable products.

  75. Rapid rogramming language? Yes we can! by DanielOom · · Score: 1

    Visual Basic is nice for quickly making a prototype GUI.

    Then you can use C to build a working program.

    1. Re:Rapid rogramming language? Yes we can! by Anonymous Coward · · Score: 0

      Or you can use C# and get both the GUI prototyping and a programmer-friendly language in one language.

  76. C# by Anonymous Coward · · Score: 1

    Despite what the neck beards tell you.

  77. Meteor.js by Anonymous Coward · · Score: 0

    I've been using the Meteor framework for about a year, and it's fantastic for rapid prototyping, especially for multi-user apps where keeping data synchronized real-time is important. Its Javascript on front and back-end, provides a simple templating system, and a really cool feature called latency compensation, so that calls to the server are simulated on the client and respond immediately. www.meteor.com.

  78. No Answer by 1s44c · · Score: 1

    People will tell you that you absolutely must use this language or that language like there is no alternative. Ignore those people. There is no one correct answer to this question. It's a matter of taste and choosing the right language for the job.

    I get the impression you want quick shell script type programs. If so you might like Perl or Python. Perl has better regular expression support and lets you do more with less typing, Python is easier to master.

  79. Re:Forget it by Anonymous Coward · · Score: 0

    Much the same can be said of people who have failed to learn elementary courtesy.

  80. Practical Common Lisp by GODISNOWHERE · · Score: 1

    Practical Common Lisp by Peter Seibel is available online for free.

  81. It depends! by an_orphan · · Score: 1

    For me, having invested immensely more in Clojure than other languages (I think that's an anomaly), it's faster for me to write Clojure than anything else going forward. I've been having a lot of fun using the same knowledge on multiple platforms, be it JVM-Clojure or JS with Clojurescript. I've also used python and ruby (and PHP), but I'm finding that node.js is a lot of fun, and npm is a coherent package manager. If you're just starting out, I recommend doing Javascript + Node for max bang for your time-buck. You'll get your backend and frontend at the same time, and it's quite a fast runtime. Javascript itself has some thorny edges, but it's a relatively simple language compared to the others you're considering.

  82. I know!! by Anonymous Coward · · Score: 0

    Swift!

  83. Blah, blah, blah by Anonymous Coward · · Score: 0

    I am in the same boat as the poster. I would recommend Lua. My company "codemeisters" are all Python addicts. Lua is easy to learn, fast, and interfaces with C libraries easily. And it is embeds well.

  84. It's Ruby and here's why by MillerHighLife21 · · Score: 2

    There is no language that seems to have more web relevance these days. The community and available libraries are amazing. For rapid web dev you have Rails, pretty much "the" web framework.

    It's great for quick shell scripts. It's excellent as a DSL language (think Vagrant, Puppet, Chef, Capistrano, Rails).

    It's extremely flexible too. Just about every web start up that you've managed to hear of is a Rails shop. Rails programmers are in "write your own ticket" levels of demand too.

    JRuby is under extremely heavy and active development, giving you access to do everything you can do with Java as well. Thanks to jRuby you get access to native threading, best of breed garbage collection, the insane library of Java tools that are out there and Java's JIT compiler. You can deploy to servers anywhere Java can too which even makes it viable for many enterprise shops and means you'll have access to excellent database drivers for...anything.

    Lastly, thanks to RubyMotion you can write Ruby to code apps for iOS and more.

    People love to hate on Ruby, but it's everywhere for a reason.

    --
    "Don't teach a man to fish, feed yourself. He's a grown man. Fishing's not that hard." - Ron Swanson
    1. Re:It's Ruby and here's why by amaupin · · Score: 1

      There is no language that seems to have more web relevance these days.

      Yes, there is. It's Javascript.

    2. Re:It's Ruby and here's why by Anonymous Coward · · Score: 0

      "People love to hate on Ruby, but it's everywhere for a reason."

      If by everywhere you mean "basically nowhere" then yes, sure. Honestly, Ruby is still a niche by a longshot. Few places actually use it.

    3. Re:It's Ruby and here's why by MillerHighLife21 · · Score: 1

      If by basically nowhere you mean:

      Twitter, LinkedIn, Github, Yellow Pages, AirBnB, SlideShare, Shopify, Cruncbase, Groupon, Bloomberg, Indiegogo, SoundCloud, Square, The City, Heroku, Zendesk, Hulu, Pivotal Tracker, Basecamp (of course), Urban Spoon, Puppet, Chef, Vagrant, Foreman....

      That's just off the top of my head. But yea, basically nowhere....

      I put Rails on my LinkedIn profile after getting about a year of experience with it at a company after doing mostly Java, PHP and Perl for the prior 15 years. My phone started ringing off the hook with full relocation package offers to Austin, LA, San Fran, and NY. The demand is insane right now.

      --
      "Don't teach a man to fish, feed yourself. He's a grown man. Fishing's not that hard." - Ron Swanson
  85. Re:Seriously? by muridae · · Score: 3, Informative

    It takes special skills to program? Maybe if you are doing some rather complex operations, but in the same regard I wouldn't want to re-gear the transmission or rebuild the engine of a car while I'm perfectly capable of customizing other aspects of a vehicle. Programming is the same way, someone can be capable of doing something they want to do (run a website and manage the database; or script their everyday crap into a few lines of code) without being 'an uber hax0r' who understands OS theory at the assembly level and capable of dealing with the full range of network security threats.

    Mythologizing programming is what leads to the nephew who knows a little html being assigned as the head of IT; after all that little html takes all that programming knowledge!

    And since your opinion of other programmers is so low:

    Even most programmers who program for a living suck at their jobs, and I don't expect someone who's not serious about it to be any better.

    might I suggest that the D-K effect is in full show and, on behalf of all coders, hackers, code monkeys, keyboard jockies, and everyone who's ever touched a computer, may I ask, beg, and plead, that you to please never write another line of code again.

  86. test drive a simple problem... by Fubari · · Score: 2

    I encourage you to test drive the languages that sound interesting. Choose a small slice of a problem (parsing & reformatting a *.CSV file perhaps); something small enough that you solved it with < 1000 lines of C code. Then try coding up the same with Python and one or two more languages recommended here.

    One of the scripting things I look for is portability. While Java itself is pretty awful for rapid development (at least for me Java is painfully verbose), if you want to piggyback on Java's virtual machines you can go a long way with Groovy, Clojure, and maybe Python (here's an interesting review of JVM languages). It turns out for my day job there is always a JVM in the environments I need to work in, so I look for easier languages to work with in that regard.

    My current personal favorite is Clojure; great leverage, you get a lot of bang for your buck for a line of clojure vs. a line of Java or C.

    1. Re:test drive a simple problem... by bananaquackmoo · · Score: 1

      I'd mod you up if I could. This is the best way to try out new languages. If, for example, you're looking into web based languages, you could use a tool like todomvc.com. They have tutorials for solving the same problem using different languages.

  87. Bracing myself for the backlash... by Anonymous Coward · · Score: 0

    I've actually found Dart extremely easy to use for web projects lately. I only learned it a few months ago, but I am already creating web apps in half the time it used to take me in Javascript/PHP. It's a very familiar C++-ish/JS-ish syntax, but with types and more supporting libraries. The downsides are mostly that it is new (and so has less supporting frameworks and such), and has to be compiled to JavaScript to run outside of the dev environment. It's actually made writing web apps exciting for me again.

  88. The compiler needs to know SO IT CAN CHECK by Anonymous Coward · · Score: 0

    that the yahoos who have to maintain your code 5 years from
    now put the right thing in the container.

    Strong type checking is GOOD for large projects with lots of people that are developed and supported for a long time.

    One wonderful thing is if you need to change a method, you change it, clean and rebuild, fix the 200 error messages then it works.

    1. Re:The compiler needs to know SO IT CAN CHECK by geminidomino · · Score: 1

      that the yahoos who have to maintain your code 5 years from

      If you're maintaining code from a prototype in 5 years, I submit that your manager has you doing meaningless busy work to keep you away from the important stuff.

  89. Stupid question by Anonymous Coward · · Score: 0

    First, there is no best programming language. Depending on the type of program you want to create C can be a rapid development language. It would however suck very much if you want to write an web-service. If you need console tools you might use python or a JVM based langauge with an IDE, like Java (very verbose), Xtend, Scala or Clojure. You could use groovy if you want to develop web UIs quickly. There are so many options what you can do. In general iff you are a real programmer you can learn any language in two weeks plus some extra time for the APIS you have to learn too. You should not learn JavaScript, as it is one of the worst ever engineered languages, as it contains any number of concepts which allow you to shot yourself in the foot without knowing it. It might even shoot you in the back after working for some time. The other no-go is PHP. If did extensive coding with it back in the days, and it requires too much debugging time.

    As a LISP programmer, you might find a lot of concepts very familiar with Clojure, Scala or Xtend.

    If you actually just writing scripts with sed, awk, and bash you could use Perl. Even though Perl is a write only language.

    1. Re:Stupid question by Ostrich25 · · Score: 1

      Agreed - the question is poorly put and unrealistic. He wants a Swiss Army knife of languages, good at everything (web, mobile, desktop GUI), without a learning curve and not too "text based" (whatever that means)

  90. The correct answer is 'none'. by PJ6 · · Score: 1

    GUI for web, mobile and desktop. One language?

    Even if you could get away with that, the language itself is the most trivial part of learning a platform.

    Just don't bother. Seriously. If you don't have time, reign in your expectations.

  91. Your problem by AchilleTalon · · Score: 2, Insightful

    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.

    --
    Achille Talon
    Hop!
    1. Re:Your problem by BKeeneySW · · Score: 1

      I disagree. There are tools out there that can code for console, desktop, web, and mobile applications and for Mac, Windows, and Linux. Xojo is one such tool and a lot of 'occasional' and professional developers use it. It's not a tool that fits everyone's needs but it certainly fits many of them.

    2. Re:Your problem by david_thornley · · Score: 1

      A professional or dedicated amateur can learn several different languages for different purposes, and learn them well. Somebody who wants to do casual now-and-then programming isn't going to want to put that amount of prep work in, or spend the time to keep proficient in them. For such a person, one-size-fits-all is the way to go, even if the fit is pretty odd in some cases.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  92. Responsive CSS by ArcadeMan · · Score: 2

    Be very careful with the so-called "responsive CSS" that some people use. Sending a five megapixel JPEG to a cellphone and resize it via CSS is one of the stupidest thing I've ever seen.

    People with no technical background who only know Photoshop and print media have no idea of the requirements they're pushing onto the hardware.

    1. Re:Responsive CSS by Anonymous Coward · · Score: 0

      Wouldn't responsive CSS involve media queries rather than a single maximally sized image?

    2. Re:Responsive CSS by ArcadeMan · · Score: 1

      Responsive CSS does involve media queries, however nearly half of the responsive CSS tutorials I've seen do exactly what I've described above. There's no media queries for images yet, only background images.

  93. Knowing Lisp helps you learn JavaScript properly by Anonymous Coward · · Score: 0

    Of course, JavaScript has a C-like syntax, but its object structure is better understood in terms of good old Lists.
    If you know about lambda, defining methods or functions will not seem weird in JavaScript.
    (No one ever seems to mention this similarity, but there is no point having to discover it on your own.)

  94. Skip the known options, discover Gambas by webgang · · Score: 1

    If you skip all the answers with php (you already know), Python, javascript (you already mentioned), you might discover this: Gambas, a programming language + IDE. I use it for the cases you describe: - interpreted rather than compiled - web enabled select "CGI Web Application" and / or "network programming". - desktop solution (quick and dirty): select Graphical application. - command line code to start from a script (Gambas code without GUI: select new project, "Command line application"; reported to work on Raspberry Pi. - cvs dumps / log file processing (Regular expressions option) - database enabled (I use it mostly with MySQL) so you might go readonly to a database instead of making the tour via dumps; I use it a lot to generate management information straight from the database used by software used in the company. - I never used it for software development for software "products", but I wouldn't know why it wouldn't work. It is very nice for quick problem solving; from the IDE with syntax highlighting, you can choose to make a source code package as .tar.gz (what I use mostly together with a client-side shell script to download and unpack). You don't want to learn a new language but know the general concepts: gambas syntax is based on "visual basic like", but it started from principles close to java (object-orientation - but you can also just write traditional code). Easy application "local settings" storage, internationalisation (I mostly write the code in English and use the internationalisation to make the needed local strings for on screen use), Subversion repository, QT/GTK specific interface, SDL, etc. The Gambas IDE is programmed in Gambas itself, and a lot of examples are included in the IDE. No "check" for platform-independant; no windows version available, use on Mac I'm not sure, but I read you do most things now in Unix shell scripting, so might be Linux. Gambas is now at version 3, I use it since end of version 1/start of version 2. It is included in the most Linux distributions (in repositories you might have to switch on). They have a very active mailing list.

  95. Python makes Programming Fun by Anonymous Coward · · Score: 1

    For anything quick or small, Python is my first choice. It makes programming a pleasure.

    I'm a long-time C++ programmer and big enthusiast for the language and I often use Qt as a GUI. Big, powerful languages and big, powerful IDEs are fine for my day-job, but programming should be easy and fun.

    I've looked at a lot of other languages along the way, so hopefully that qualifies me to make a comparison; I regularly use Objective-C and GNU Unix tools like awk, sed and grep and have played around a decent amount with Perl, Java, LISP(s) and Javascript.

    Points in favour of Python:
    1) I still can't believe how often my Python code works first time
    2) Things that are common and ought to be easy, are easy: list processing, string slicing, parsing, formatting etc.
    3) The code is neat, readable and usually well structured
    4) It runs in a REPL, so it's simple to play with the code mid-program and quickly try things out
    5) The natural solution is usually easy in Python and sometimes Python offers an even better way (Python's generators are awesome)
    6) It has so many great libraries readily available for practically any job, usually you can find something simple (eg. EasyGUI and itertools) as well as brilliant powerful tools when you need them (eg. Qt and Numpy)
    7) There is no irritating nonsense: no boilerplate, no endless class creation, no impossible to remember formats
    8) It is incredibly easy to learn for anyone with a C background - you can often guess the command name and how it works
    9) Basic text processing and OS commands are easy and good. Almost as powerful as UNIX GNU tools such as awk for example, but much easier to learn and use
    10) It has a huge user base and great online support

    Compared to the obvious alternatives:
    Perl - I think it's fair to say that Python trumps Perl for basic system scripts and text mashing. It's just easier and more readable.
    Ruby - Python is as simple as Ruby, and almost as class-oriented, but with a bigger user base and better libraries.
    LISP/Haskell - Functional languages are fun, but many of the things that make them useful are in Python, except with out the mind-bending syntax.
    Javascript - Python is simpler, more capable and more rational.
    (I can't speak to PHP, but I don't know anyone who prefers PHP to Python.)

    The only things I would say against Python are:
    1) Simple web hacks are non-trivial (the one time I would recommend Javascript, which is otherwise not a particularly nice language to deal with)
    2) It's not a great language for low-level memory manipulation, typed data structures or fast, custom-built low-level algorithms (use C instead, in fact most Python libraries are written in C), but I would say that the Python libraries are great and I rarely have to turn to C, but it is not too hard to integrate C functions back into Python
    3) It doesn't have a built-in notification centre, or run-time class extension like Smalltalk/Objective-C, so some design patterns are not quite so simple to implement. But if you're doing a project big enough to be worried about these design patterns, you're probably asking a different question
    4) It you are a complete nut for hyper-terse syntax you might still want to torture yourself with Perl, or try to pick up something really painful like K

    IDEs: Some people have recommended using Python with an IDE like PyCharm. PyCharm is great, but I prefer to write simple Python programs with something much simpler like Code Runner or an iPython Notebook. For simple things there is no need for the overhead of a big IDE, and as I said, Python works first time so often and the REPL is so handy, that I rarely find myself needing a debugger. It's so nice to be able to just type and go.

  96. Don't discount Perl by Aleph_Zarro · · Score: 1
    Yeah, Perl is old (but... not really) and considered clunky (but... not really).

    And a novice can write some really ugly code in Perl... which gets stuff done and pronto.

    There are gazillion of Perl modules on CPAN so there's usually you can find that is similar to what you're trying to do, or can be easily tweaked what you want to do.

    And (GASP!!), you can write enterprise worthy code in Perl. (.. no, it's true, I've actually seen it, and currently do it).

    A decent code editor (aka Komodo) will make the job much easier but even the lowly notepad++, kate/gedit, vim/emacs, ultraedit/uex will yell at your syntax errors in a supportive yet loving way.

    1. Re:Don't discount Perl by Sobrique · · Score: 1

      I think Perl gets a bad reputation for letting people get away with 'ugly' code. I'd counter argue that writing bad code is possible in any language - part of what a developer should be doing is writing _good_ code, and Perl gives the tools you need to allow that. (and the 'ugly' code still generally works, which is good enough if you just need a 2 line one off). I still use it today, because I was starting to outgrow baseline shell scripting - back when you didn't have 'bash' available, on everything, and were stuck with ksh or sh. If one had to install an 'extra' then why not be Perl. It still has a very wide base of support - I'm rarely stuck for finding an interpreter to run code. (Although I do sometimes end up with some quite old perl versions). It has a lot of extra code available from CPAN, and it will support everything from a very simple shell script program, all the way to object oriented multithreaded code. Perhaps not the _best_ tool for a specific task, but a versatile one that's pretty good at anything. If I really need to eke out a fine slice of performance, it's time to whip out the C or machine code. For everything else, algorithms matter way more, and so Perl is plenty.

  97. Best RAD? by BlueScreenO'Life · · Score: 1

    Still Delphi!

    1. Re:Best RAD? by dccase · · Score: 1

      Sad but true.

    2. Re:Best RAD? by Anonymous Coward · · Score: 0

      Still Delphi!

      If you are fine to develop on Windows and run on Mac OSx, Windows, Android, iOS ... this is also my recommendation.

  98. Similar beginning, for sure try Python by JoeSilva · · Score: 1

    Back in the school days it was List and C for me too.

    They also taught some machine/assembly languages, Fortran, Cobol, Ada, and one functional programming language they called "FP".

    Since then I've been paid to work in C++ and then Java when that came along, plus a smidgen of perl and bash/csh scripts. Java cleaned up the syntax and brought us closer to pure OOP (hey there smalltak!). It also gave us a very nice class library. Others have built some very useful frameworks in Java. You might find Java interesting but for rapid development no.

    Last year I had the opportunity to learn and use Python (urgently!) on the job. That was a very rewarding experience and I think it makes for a great rapid development language. The syntax is clean. The semantics are powerful. Just like Perl and shell scripting it's interpreted so you can try things out very quickly.

    So do try Python but (and you know everyone has a big but), to really achieve rapid development you need to leverage good code libraries and frameworks. Start with the standard python stuff, a good way to go is "Dive Into Python" which is available free online.

    Javascript for rapid development? Not convinced, have not tried it beyond some very simple browser funness.

    If performance with Python will not meet your needs, maybe Java. And if that is not good enough (shiver) back to C++.
    There may be an interpreted language leveraging the JVM, dunno but it might be a good way to go too.

    Best and do enjoy the journey.

    1. Re:Similar beginning, for sure try Python by JoeSilva · · Score: 1

      Opps yeah I meant Lisp, not "List".

  99. JavaScript is the only right answer by Anonymous Coward · · Score: 0

    NO, it's not a member of the C+Java line of languages. Syntax looks similar on the surface, but it is nothing like those languages. People who believe this are also usually the ones who think it sucks because they fundamentally misunderstand the nature of JS. It's at minimum an interpreted hybrid of java syntax and LISP with an embedded asynch loop. This makes how you think about things (or should think about things) VERY VERY different from Java. I work on both constantly and while the syntax is similar, the real issues are nowhere near the same - for both good and ill.

    Otherwise I agree...
    I think JS is a fantastic language. Certainly worthy of future development. Most of it's warts are from being birthed in like... 10 days or something. But for raw productivity and prototyping and Getting Things Done it just can't be beaten if you know it well. Especially since it plays so happily on the web and you can use the DOM/Web as your GUI.

    It's also one of a very few languages which are truly cross platform - mobile, all desktop OSes, Node for the server, etc.

  100. Re:Seriously? by sillybilly · · Score: 1

    Amen to that, bro!

  101. Stick with Unix / Linux, Scripting or C by Murdoch5 · · Score: 1

    I'm an embedded system designer and honestly I find it horrible how no one can use or programming on Linux / Unix and how no one can program in C. C is a perfectly fine language for quick prototyping, you can design a reasonably large logging system with database integration in a hour or two, which is quicker then even PHP. If you use GTK, X or several of the other GUI toolkits, you can add a nice GUI to an application in a 1/2 hour. The fact is C is still quick and it can out preform the bulk of most language, don't give it up, stick with it! I might be 26 ( 4 days until 27 ) but honestly C and Linux or Unix is still the best way to go.

    1. Re:Stick with Unix / Linux, Scripting or C by Sobrique · · Score: 1

      I don't agree. C is great for hooking syscalls into the OS and does work extremely fast... however it's also incredibly unfriendly for the tasks that most people need to do. I'd start with something higher level, and drop down to C if you really need to squeeze the last little bit of performance out.

    2. Re:Stick with Unix / Linux, Scripting or C by Murdoch5 · · Score: 1

      however it's also incredibly unfriendly for the tasks that most people need to do

      What do you find unfriendly about it? C gives you the power to destroy pretty much any party of a computer if you want to and doesn't say sorry, this doesn't mean it's unfriendly, it just means it's for skilled programmers who understand how a computer works. To be very clear, I'm NOT saying you aren't a good programmer, I'm just saying in general that would be a fair assessment to make.

      I work in C every single day as well as generally bounce between a nice handful of other languages including PHP, C++, C#, Java, GTK#, Perl, Python and Ruby. ( Not including web based languages here ). If I was to draw a matrix of what each language offers as a set of pre-built features, overhead, ease of use, prototyping ability and architecture access, I think C would win. Generally when I hear people mention reason as to why they don't like C it's always something silly like "Pointers are dangerous" or "I can't use objects". The fact is C is a programming language for programmers who don't want to eat baby food and have someone wipe there ass. C will let you do anything you want and not hold you back, it only wants you to be skilled enough to use it correctly, unlike all of those mangled and gross object oriented piles that try ( and poorly) to do the work for you.

  102. Re:Seriously? by aminorex · · Score: 1

    you're the runner up

    --
    -I like my women like I like my tea: green-
  103. LiveCode by Anonymous Coward · · Score: 0

    Give LiveCode a look. Rapid prototyping, GUI, good support, etc.

    http://en.m.wikipedia.org/wiki/LiveCode

  104. Bash & PHP by Chuck+Messenger · · Score: 1

    Given everything you've said, I suggest you keep using bash and PHP. Invest your effort in mastering the tools you're using. You may be surprised at just how powerful bash can be, for example.

    The thing is, unless you really invest the time to master a new technology, it isn't likely to be of much use to you. So master the technologies you're using.

  105. Best RAD Tool by Anonymous Coward · · Score: 0

    FileMaker.

    Laugh all you want. If you are you know nothing about it and didn't read what this person needs.

    A subsidiary of Apple, been around longer than most of the people that read this site are old and actually does amazing things cross plat, mobile and Web.

    Doesn't scale, and you won't build the next FaceBook on it, that's a different tool set. But it will handle millions of records per easily, give you rich UI elegantly where you need it faster than almost anything else, and can easily access external SQL sources.

    I'd be amazed if anybody on this list will agree with this rather dismiss it out of hand. We'll see.

  106. Re:Happy Father's Day from The Golden Girls by jenningsthecat · · Score: 1

    That's not cosmonaut, it's confidant. None of the gals was Russian AFAIK, and probably none of them had been higher than a commercial airliner normally flies.

    --
    'The Economy' is a giant Ponzi scheme whose most pitiable suckers are the youngest among us and the yet-unborn.
  107. golang by Anonymous Coward · · Score: 0

    Go is worth mentioning. While not yet able to easily cope with GUI or iOS/android, it's quick to learn, readible, and pragmatic (geting things done, fast). It works best for servers and console based tools (big or small). As others have mentioned, compilation and static type checking are an advantage over a scripting languages like python, especially for a beginner.

  108. Commit heracy and give this a try... by Anonymous Coward · · Score: 0

    SmallBASIC - runs on Windows / Linux / Android / others

    Great for super quick and dirty hacks.

  109. I strongly vote PERL/CPAN by Wycliffe · · Score: 2

    That concept of multitude is completely foreign to a C programmer. It makes them fail every time. You simply cannot introduce a C programmer to Perl and expect them to have any kind of easy time with it. You might as well introduce a cyclist to a horse.

    I disagree with this. I learned applebasic as a kid and learned c++ in college. I've never had formal
    training in perl but I find it the quickest and easiest to pick up, use, and to teach others.
    CPAN can't be beat and Perl is very mature, very modern, and still being developed as well as being cross-platform.
    The OP stated he wanted to do quick and dirty and I don't think anything can beat PERL/CPAN for quick/dirty.
    You can't do native apps for iphone/android with it but you can't with anything other than objective C/java respectively.
    It is very capable for web apps though so building decent apps is also still possible.
    For what the OP is asking for Perl seems the closest to match his needs.

  110. Go Ruby And Javascript by gitfiddler · · Score: 1

    First I will address Python because that is what 80% of the comments are about. The reason I chose not to use it on a regular basis and used RUBY instead is because of the whitespace significance. Coming from a C background, I did not like it. Funny thing, after using HAML for a few years, I now think it one of the most awesome things about it.

    I have been thinking about this very thing for quite a while and here is where I am on it.

    1) Javascript. once upon a time, there was hope that frontend web work would have a choice. Those days are gone. If you work on web frontends, you are using javascript. Coffeescript can make it more convenient but if you don't understand the core concepts, you will be at a disadvantage.

    2) RUBY or PYTHON. I learned RUBY years before RAILS came out. The backend was slow and the libraries were not as fleshed out as Python but I liked the whole idea of programmer happiness. I just saw something there that that looked like the future. I think PYTHON would be just as good, both are portable and will get you a lot of milage.

    3) GO. If I could only learn one language, it would be this one. While not a perfect language, I think this will be the dominate language for systems and maybe scripting for years to come. I always had a dislike for the verbosity of C++. I like the pedigree of the founders. I love the idea of the cheap "threads" ( not really threads but even more useful I think ). It has most of the things I love about Erlang but in a more human readable form. I like the idea of a language that can be procedural , object oriented AND functional. I never minded the hiding of pointers in JAVA too much, I just hated that you could not get around it. Systems programming sometimes need to use real pointers. I think the parallel nature of chip designers makes this THE language or at least language type of the future.

    Just my 2 cents.

    --
    .sig
  111. R / PERL+TK by Anonymous Coward · · Score: 0

    I have almost the same background as you (considered by many a UNIX and C guru)

    Lot of people tend to go for Python which is a good choice but I prefer R and / or PERL + TK

  112. Functional Languages by tjb6 · · Score: 1

    I recommend Haskell.
    Just because it will take you a week to get your head around how a Functional Language works, the syntax is subtle and terse, and the whole programming model is different should be no reason to put you off. At least it's not Malbolge...
    I mean - pure functions, no side effects, infinite lists, lazy evaluation, indentation sensitive, the list goes on...
    A convenient 'out' that lets you handle that awful non-deterministic I/O, what's not to like?

    (note sarcasm)
    (note for the humour or intelligence deficient!)

    Seriously, I like Haskell, I just can't imagine working in it, and I'm not suggesting you should learn it in preference to (say) Python.

  113. Javascript by Anonymous Coward · · Score: 0

    Javascript underpins the web and is not going away soon. All UIs will be HTML given a few years. Enterprise Javascript with Node.JS has only just got started - it will rival Java and .net on the back end, and eventually relegate them to maintain status languages like C++.

    You could learn something that compiles to javascript, but best to understand it first. And given half a chance, Javascript turns out to be a nice language with some cute features. It's not perfect, but it has unstoppable momentum and they're fixing the 'broken' bits pretty quickly now.

  114. Re:Python Perl by Anonymous Coward · · Score: 0

    I've been writing perl since the camel was pink (~20 years?). I've done projects with 30K+ lines of perl code and 100+ classes. No nightmare.

    Maybe you're not doing it right?

    Now if you want to argue that more is happening with Python development than perl these days, I might go there. :-)

  115. The environment is key by Arkan · · Score: 1

    It greatly depends on the environment in which your data processing and glue scripts runs: if it's homogenous enough to go for an installer runtime like python or ruby, then so be it.
    As a matter of fact, Perl is often available, and the CPAN is a trove of readily available solutions.

    This kind of scripts is typically what I'm doing on frequent occasion, and I've always found that portable shell scripting has always trumped any other solution as long as your environment is unix driven - and then for this rare cases where Windows is the platform of choice, I package a few cygwin exes and dlls with the script. I'm working on a very controlled environment though, and expecting to have access to CPAN, much less to Python or Ruby runtimes is a recipe for a great deception.

    Shell scripts I say: it's a default on so many plaforms that it's worth keeping it fresh.

    As for the next step, I'd say Perl because of its pervasiveness - and the fact that it's a still alive and mightily kicking language - then Python as it's quite common on Linux distributions now.

    A closing word: don't dismiss a language because it feels old. If C is a bit overkill for glue and data manipulation code, shell scripting is not going away soon. IMO, the important part of doing our type of job is to know to use the pertinent tool to get a result quickly enough without compromising maintainability too much.

  116. A day at the library saves a month in the field by SpaghettiPattern · · Score: 1

    Sure, you can grasp stuff you google and simply repeat the trick over and over again. If you don't want to learn a new language then that's probably the way to go.
    However, if you invest a few hours here and there, you will start to master a language that suits your purpose. I myself learned Perl back when C and LISP were still taught. Any quick, one-time transformation I can do in Perl. There are a bunch of other languages out there that so similar stuff for you purpose (Python, Ruby, etc...)

    I also sense you'd be happy to graphically click your transformation together. I advocate against such practice as the solutions I've seen so far work well for Hello Worlds but start to stink at anything half complex.

    If you have a career you will understand that unless you invest (in yourself) you will remain at the mercy of others.

    --

    I hadn't the slightest objection to his spending his time planning massacres for the bourgeoisie... (P.G. Wodehouse)
  117. Typescript, Clojure, Dart by Anonymous Coward · · Score: 0

    Pyhton is dead as a dead snake! (just for the troll)

    try Typescript, Clojure or Dart !

  118. Give IOVAR a try? by lannocc · · Score: 1

    I would like to mention my pet project, IOVAR, hosted on Google Code. One of its goals is to aid in rapid development/prototyping as it bring shell scripting concepts to the web. IOVAR is currently in a usable state but lacks a "getting started" guide so I won't yet call it a beta release. I've licensed it with MIT license and would love some feedback or help!

  119. MATLAB by Anonymous Coward · · Score: 0

    You can do anything in MATLAB. Everyone knows this. And if you can't, you just pay $200 and then you can. Then if you find you can't do something, just pay another $200 and you can again.

    You can even have your MATLAB application converted in C, then compile it and distribute it standalone - for $200.

  120. And I want a pony by maccodemonkey · · Score: 1

    "Best Rapid Development Language To Learn Today?"

    Well sure, you could try using...

    "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"

    Ah, um, hmmmm.

    Look, I'm going to give you a protip about us "young folks": You seem to be under the assumption we are masochists. We are not.

    If there was such a language, we'd all be using it daily for our development. The reason we use the tools we do are because they are the easiest tools for the job we do. Do you want to learn the most relevant tool for mobile development that is also the easiest? It's likely the one everyone else is using. If there was some hidden shortcut to do highly relevant development very quickly for every single platform, we'd all be using it. I don't like writing more code than I have to for the fun of it.

    It sounds like you're trying to double dip here. You want a language that you can use for data modeling, but on the side you want it to be usable for about every single other arena for software development. Again, us young folks are already taking the easiest path. If you want to hit all those targets as well, learn the same languages that everyone else has already determined are the easiest paths, or keep focused on data modeling. The needs you're trying to specify for each language are totally different. Data modeling likes interpreted, but mobile strongly avoids the overhead of interpreted languages. All your requirements are exclusive, which is why there are a bunch of different languages and APIs to begin with.

    Matlab is one tool I see frequently used by engineers who are mostly data modeling focused. For each of the other focus areas you've mentioned, I could probably list off several languages, usually with no overlap to the other platforms. Java possibly comes close, but you're not going to cover all your platforms, and it's not interpreted.

    And to be honest, what you really haven't even scratched the surface of is that even if there was a language that covered all those platforms, you'd need to actually know all those platforms. Know the ins and outs of code signing on iOS or the Mac? Permissions on Android? 32 bit vs. 64 bit differences on Windows? The specifics of a bunch of different web browsers? If not, a language that covers all the platforms won't get you far anyway.

  121. Check out Servoy by Anonymous Coward · · Score: 0

    Have a look at Servoy. It is not a language, but rather an environment that encapsulates all the SQLs, Javascript, Java, XML, HTML, CSS etc. and allows the building of web, mobile and GUI apps that leverage data from easy to interact with back ends.

    One particularly useful feature is the ability to relate SQL databases from different vendors to one another (stock data in Postgres, web data in mysql, link the two.)

  122. not Swift by Anonymous Coward · · Score: 0

    Well, my household has three Macs, three iPhones and two iPads, and I don't think Swift is even close to being suited for OP's needs.

    Right now, you need to pay $99/year just to get access to a beta compiler and a beta IDE. It'll be free to Mac users after the beta period is over, but even then you have no hope of deploying it on non-Mac/iOS platforms anytime soon.

    I'm planning to start playing with Swift as soon as they release it officially, but I'm only interested in writing an OS X application. If I wanted to write something cross-platform, I'd be working on anything but Swift.

  123. if Mobile requirement == Android by Anonymous Coward · · Score: 0

    Then you could use SmallBASIC. Write your 2 minute hacky program in the desktop IDE, then export it directly to the running app in your device.

  124. Unity and C# by CNTOAGN · · Score: 2

    Probably not very popular here, but I've been having a lot of fun lately with Unity using c# as my scripting language. Writing a networked game, and the RPC hookups and message passing is all pretty cool. State machines are such a different animal than business event driven programs (my normal job).

  125. A "RAD" that targets EVERYTHING by Anonymous Coward · · Score: 0

    Embarcadero (Borland) Delphi XE2 & C++ Builder -> http://www.embarcadero.com/pro...

    * Look @ that featureset & you can target pretty much everything & anything widely used today in PC's & Servers (MacOS X & Windows), + Android & iPhones!

    (What more could you want?)

    APK

    P.S.=> It's LONG been my favorite tools for development (even moreso than Visual Studio) for a GOOD reason: Back in 1993-1997 I was primarily a Microsoft VB6 - MSVC++ developer on the job - then, of ALL PLACES in a competing industry trade journal, "Visual Basic Programmer's Journal" Sept./Oct. 1997 issue "Inside the VB5 compiler" (when VB got a watered-down C++ compiler that produced "stand-alone" executables) is what "turned the tide" for me!

    Especially when Delphi won 7/10 tests (ranging in all types of programming tasks) & even DOUBLED msvc++ in MATH & STRINGS WORK (almost tripling it in strings, & face it - EVERY PROGRAM WORKS WITH THOSE)...

    That tell you anything? It did me!

    Being a competing trade rage, they *tried* to downplay that fact, only noting it in 1 line of a 4 page article, but the charts & graphs "told the tale" & the truth: Delphi, rocks! & their C++ Builder "ain't too shabby" either!

    It's a combination of C++ & VB imo (very C++ OOP language, only REAL MAJOR diff.'s, pretty much, are instead of curly { } braces, you use BEGIN-END statements, each line ends in semi-colons, but pretty close to C++ in its Object Pascal 7.1 engines, + you can use "NESTED FUNCTIONS" inside procedures &/or other functions (which is GREAT for scope control, no other language I know of does it, & it makes hunting them down easier & faster too, without using object inspectors etc.) & yet you build in a VB form template easy paradigm for user screens in GUI apps... easy as it gets & FAST)

    Overall, it beats the hell out of old-school C/C++ SDK work that took ages to do the same on those forms, that is certain...

    Anyhow/anyways - there you go! It stole me away from MS stuff (though I use that @ work the most usually) for my personal projects & also employment paid ones too...

    ... apk

  126. Cat got my tongue indeed by amn108 · · Score: 1

    Javascript is great for prototyping - it even has a keyword/property thing called "prototype", and also another one called "__proto__" :)

  127. VBA in Excel by jehan60188 · · Score: 1

    I use Excel VBA, because it's installed on just about every computer there is.
    It also has tools for making data look pretty, which always impresses management.

  128. young hotshots don't pick up a language in 2 hrs by Anonymous Coward · · Score: 0

    one thing you wrote:
    "I don't think that I could pick up an entire language in a couple of hours with just a cursory reference work—"

    I'll offer that back then you probably _thought_ you were doing a good job in a new language after just a couple hours (if you did that).
    The fact is that you are now more experienced, and realize that only a couple hours and a reference tome available doesn't equal doing a good job in that new language. You're just hacking around and being cocky while doing so.

  129. What about rapid development in a GUI? by jimharris · · Score: 1

    Python is great for quick programs if you don't need a GUI and don't plan to give your programs away or sell them. But what about a rapid development language that is inherently GUI aware? Of course this ties you to an OS, but this guy sounds like he's asking for the modern version of Visual Basic. I'm not a Mac person, but it sounds like Swift might become VB on OS X. I'm not sure Visual Express is the modern version of Visual Basic for Windows anymore - so what is? And did Unix/Linux ever have something like VB?

    Without a GUI, programming is text based, and that can be cool if we don't mind writing programs that look like those of the 1980s.

    1. Re:What about rapid development in a GUI? by SuiteSisterMary · · Score: 1

      Visual Express for Desktop programming in vb.net, c# or whatever.

      --
      Vintage computer games and RPG books available. Email me if you're interested.
  130. Crunching Lots of Messy Data? Use R by manlygeek · · Score: 1

    R is made for cleaning and analyzing mounds of data (though R requires all that data to reside in memory so there are limits). Its interpreted, RStudio is an AWESOME free GUI, and there are libraries (AKA packages) for just about any data task you'd like to do. You can do sophisticated things quickly in the REPL and writing short analysis scripts is pretty easy. It is a functional language (mostly) and sort of OOP (not really) but it'll get the job done for data tasks.

    --
    Be More, Be Manly, The Manly Geek Ubergeek Extraordinaire Blogger: www.manlygeek.com/blog Podcaster: podcast.man
  131. TypeScript by Anonymous Coward · · Score: 0

    TypeScript has the best of both worlds in the JS space: the ubiquity of JavaScript (all browsers, everything else with Node) and also an optional static typing system to catch more errors faster.

  132. JavaScript by Anonymous Coward · · Score: 0

    I'd recommend JavaScript. Even though some people say it's "hell", it's actually not if you learn it *right*. And it's easy to get started with both client (browser) programming, and server-side programming (with node.js).

  133. Language? What Language? by AlanObject · · Score: 1

    My personal experience is I spend 10% of my learning curve learning whatever language and 90% of my learning curve learning the available libraries for that language.

    So I tend to want to use Java for everything not because the language is better than some other (it isn't, but arguing about it is pointless) but because I am proficient in a lot of class libraries that come with it. Also it has a defacto-standard project structure pretty much enforced by Apache Maven.

    Most recent case in point for me is learning Objective-C to do IOS applications. Learning the language itself is not that big a deal even if you do stumble a lot (at first) over the square-bracket syntax of its message statements. The only thing that makes it usable at all is Xcode's excellent IDE support for the library documentation always just a context-sensitive click or two away.

    That, to me is the biggest problem with Javascript. The language itself is pretty cool in some ways yet full of pitfalls and more prone to abuse and misuse than almost any other language I can think of. Netbeans does a decent job of making a debugging platform workable but the class libraries alway require web searches for examples and tutorials. Until you are proficient (months of coding maybe) it is really slow going.

    BTW, if you really want to go the Javascript route but still yearn for Python you should look into CoffeeScript.

  134. Go should be a contender by Ottibus · · Score: 1

    This is another (non-anonymous) vote for Go (golang). Here are some reasons:

    * Type Safety
    For any serious project type safety provides a massive boost to productivity and correctness. Go's type system is powerful but not too intrusive to more generic coding.

    * Fast compilation
    Although it is not interpreted the language and package design allow very fast compilation so that it can be treated as a scripting language and compiled at run time.

    * Good libraries
    There is a large and growing collecting of libraries, mainly focussed on web service applications but other areas are also supported. You can create a web server that handles multiple concurrent requests in a single page of code.

    * Good package (module) support
    Go provides the ability to create packages with a certain amount of encapsulation and data hiding without it being a burden on development time.

    * Built-in concurrency
    Language support for concurrent execution and synchronised communication makes it very easy to develop modular applications that support multiple activities.

    * Clean Syntax
    Go code is easy to read and missing lots of fluff from other languages. The gofmt command tidies up code and makes it consistent throughout a project

    * Built-in unit test framework
    Go makes it easy to check that you code does what it is supposed to

    * Good performance
    Not quite up to C++ standards but faster than interpreted solutions

    * Can generate JavaScript!
    There are at least two solutions for converting Go code to JavaScript, so you can can use one language for client and server code.

    I also like the type system (interfaces) and other language features, but these are more a matter of taste.

    1. Re:Go should be a contender by david_thornley · · Score: 1

      I'd suggest that concurrency support is one of the last things the OP needs. Concurrency is hard to do right, and I'd rather people left it to the professionals. It's also unnecessary, since anything that can be done simultaneously can be done sequentially. It's primarily to improve performance, and somebody looking at Python or Ruby probably doesn't care that much about raw execution speed.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  135. Haxe Language by Anonymous Coward · · Score: 0

    Haxe is all you need, supports everything you said, mobile, desktop, cli in one single language that compiles to different targets including native ones. http://haxe.org/

  136. How about Livecode? by Anonymous Coward · · Score: 0

    http://livecode.com

    It's a modern version of HyperTalk, and one that runs on Windows, Mac, Linux, iOS, Android.

    Though verbose compared to most other languages, it's *very* good with text manipulation, and is very quick to knock together a self-contained program.

    The problem, in my mind, with javascript/perl/python/ruby/etc is that you don't by default get a standalone install. If you want to run your program on a given computer, you need to also install all the support libraries required to perform your task.

    Then again, the support libraries for those languages are incredibly rich, so it really kinda depends on how broad your usage is going to be. If it's text manipulation, LiveCode could actually be pretty good for you. If you're trying to manipulate TCP/IP packets directly, LiveCode probably isn't for you.

    -Ken

  137. The Middle Way by Anonymous Coward · · Score: 0

    Since you already know C, Cython would seem to be an optimal choice. In learning Python first and then picking up Cython, you get the general language and a compilable C like subset -or as far as I understand right now, I am doing this right now- giving you most of the speed of C with the much higher level convenience of Python.

    Objective C should not be all that hard for someone that is already well versed in C to pick up but -again, still learning- it really isn't that much higher level a language than C. That being said, I love my Mac and I haven't had any headaches (yes, a UNIX refugee but it is one thing to know and another to have to; Macs give you the option to turn off your brain) since I left windoze behind. Consider that Microsoft developed Office in the protected environment of the Mac (way back when) and then slammed wordperfect out of the market seemingly instantaneously. So it is not without precedent to polish an app in a Mac and then translate to C++ and port to windows and unlike then, there is a significant amount of money to be made with OS X and iOS apps in the meantime.

    In summary, leverage the C you know well to pick up both Python and Objective C. Use Objective C for the GUI development (Tk isn't as bad as some make it sound but the tools in OS X are great) and use Python for the quick development of the program. Cython gives you the ability to compile your creation and give it most of the speed of C.

    Swift may well be as fast as Apple claims; however, as others have stated, it is very very new and it really is an incremental improvement on Objective C. Once it matures a bit more, it should not be all that hard to make the transition when the time comes.

    To learn Python, I recommend Learn Python The Hard Way by Zed Shaw.

    Hope this helps and for those that will come afterwards, be gentle with whatever criticisms might be warranted, we are all always learning.

  138. Try LiveCode by kailasnatha · · Score: 1

    Try LiveCode for real productivity and a lot of fun. (livecode.com) They went open source last year and the community version is free. As and xTalk language it has been around since the days of Hypercard. But it's not a "kids thing"... If Nasa can use it to monitor satellites, you know it works. You can code in one language and deploy desktop apps to Mac, Windows, Linux, iPhone and Android and use it on the back end as a server language for the web. It has it's limitations, but if you want to build stuff fast and efficiently, there is nothing like it out there.

  139. github.com by rewindustry · · Score: 1

    sorry, is the air i breathe, forgot the microsofties might not know about it.

  140. Come back on my lawn... by leedsj · · Score: 0

    Unix is still the go-to OS and is syntax has remained largely unchanged for decades. What's wrong with PHP and C? Most of the online/offline world so runs on these

  141. Powershell by Anonymous Coward · · Score: 0

    If you live in the Wintel world the best is powershell
    Gasp... I stopped using Python after using powershell (heresy!!!!)
    Please do not pitch fork me, I have a family

  142. Xojo by BKeeneySW · · Score: 1

    You are asking for a number things that are in the wheelhouse of Xojo (www.xojo.com). It creates compiled applications that run on Mac, Windows, Linux for console, desktop, and web apps (on the server), and soon iOS (in testing now). The IDE itself is the same on all three platforms and compiles apps into all three platforms regardless of host platform. So it doesn't matter if you are using Windows to create a Mac or Linux application and visa-versa. We generally develop on Mac OS X and use VMWare running various versions of Windows and Linux (and old versions of Mac OS X) to do testing. The same IDE creates console, desktop, and web apps. There are platform differences but the framework is mostly the same between all of them. This means that creating a rich UI on a desktop app is very similar to a rich UI on a web app and so on. File handling, database I/O, sockets, email, etc are the same on all platforms too so once you learn one you pretty much know the other platforms and targets too. Learning the language is very easy. It is a modern object oriented language that has a lot of stable and mature features. The Xojo IDE has a decent auto-complete so it is easy to figure out. The Xojo community is also very friendly and helpful and I highly recommend that you check out their forums when you have questions. So where do I fit in all this? I've been a Xojo developer for fourteen years and a Xojo consultant, trainer for twelve, and been blogging about Xojo (then Real Studio) since 2005. My firm has done commercial projects of all types all over the world for clients from big to small. We also offer training videos for people who like to learn via video and also offer one-on-one training. Three of our four Xojo developers have spoken at developers conferences.

  143. Delphi by Anonymous Coward · · Score: 0

    If money is not an issue then Delphi ticks all your boxes; it's compiled, targets Windows, Mac, iOS, and Android. The language is Pascal so it's easy to learn and understand. There is huge support for it, both historically and with live webinars, a youtube channel (with videos from the webinars). It is also a RAD tool with strong UI designing elements. It has all the most language features except it has strong typing (which makes it easier to debug and understand, but slows development compared to Python).

  144. Delphi, much like her namesake by BrianJohns · · Score: 1

    I`d have to say Delphi in my experience if you`re keen on developing Windows native code apps. Recently added support for native code android and iPhone which isn`t too shabby being able to work from the same code base and there`s even a cross platform framework like VCL for them so most code not specific to platform will compile seamlessly. Not to mention the visual designer and newly added support for theme based apps. A great system for mapping graphics widgets to actual controls that equates to UV mapping in a 3d app though I've not delved far into it. Not to mention the compiler is quick as can be even for large projects with most build times taking less than five to ten seconds. Microsoft build engine under the hood for ease of linking you object files from other languages. Options for managing multiple build configurations and the IDE helps you along the gui design process via great tools and the application framework itself. Integrated debugger with support for a lot of features, map files etc. If they have native android compilation with expanding support how long will it be before they add closely related linux targets into the loop. Object Pascal is very sweet too, now supporting similar functionality to C++ like multiple inheritance (without interfaces), friend classes and strict private class members and operator overloading and records types that operate with the same functionality and diversity as C++ structs. Delphi is nearly as beautiful as her namesake...

  145. Re:Python Perl by Shompol · · Score: 1

    Everything is relative. I admit that Perl is heaven compared to C or MASM. It is possible to write millions of lines of code in Perl. It is, however, a nightmare compared to Python: just the appearance of Perl code is an eyesore.

  146. Okay, so keep it. Either way, by aussersterne · · Score: 1

    maintainability and "correctness" from the CS class perspective aren't important. Are the data and data processing valid, and did the job get done as quickly and as cheaply as possible—that's all that matters.

    --
    STOP . AMERICA . NOW
  147. Rapid development language by Anonymous Coward · · Score: 0

    Coldfusion, is the rapid web development language, nothing i have seen is faster, so easy anyone with basic HTML can learn it. Also with a J2EE java back end it can do all sorts of other stuff outside its own strengths using JAVA. Unfortunately for people who love CFML (Coldfusion Markup Language) Adobe are a bunch of stupid fucks who have done their best to destroy it and kill it. Luckily for us there are alternatives, the best of which is Railo. Open source and faster than the CF server by Adobe. Supported by the open CFML foundation. I have a lot of hopes for it. Also Blue Dragon is a good CFML server

  148. INTERCAL! by Optali · · Score: 1

    PLEASE DO

    --
    -- 29A the number of the Beast
  149. Don't learn a single language by GuB-42 · · Score: 1

    Learning the basics of new language is easy. Or as least, easier than doing things with an inadequate language. And because you want "quick and dirty", you don't need to know all the subtilities of you language of choice before you start coding.

    You are talking about web dev, mobile dev, desktop GUIs and text file processing. These are very different use cases and I think that using the same language for all would be silly, especially for one-shot apps. I couldn't find something that beats Perl for text-file processing, PHP is really good for web pages, if you make GUIs for windows, don't forget about VB. I don't know much about the mobile world so I can't help you there.

    As for Python, it is certainly a very nice language but I wouldn't recommend it : too "clean". With one-shot dev, you can throw away readability, modularity, maintainability, etc... so you'll probably want a very permissive (ugly) language like Perl. Of course, it also depends on the available libraries. Both Perl and Python have a large catalog but if the ones you need are only available in one language, then use it.

  150. PHP/Java - What to Learn? by DaveStadnick · · Score: 1

    I've been in the software development world for a long time and now mostly work with web sites and the associated details - like importing a membership list into a database table. I think PHP and the associated web application frameworks are best for the smaller sites and Java for the larger ones - like Chase. This is because of the support structure that is available and resulting complexity. Frankly, I don't see much difference between C, C++, Java, PHP and Python (having coded in them all). The minor syntactical differences are the issue and mostly you just need to respond to the error indications (Duh – like typing a comma for a semi). I wonder if the question is more – how do you import/manipulate data in a web/database environment – I use TOAD. Does everything I might every want (along with some SQL) and I’m certainly not going to write a Python script if TOAD will handle it. Last – I signed up for the Microsoft partner program back when they released NT 4. I was impressed by the rapid development scenarios they presented for IIIS / ASP. Thing is, I could not modify the system beyond the basics and had to abandon that line of development. So – forgive me – but I’m not a fan of the rapid development craze. Give me a well structured language, superior library support and the best IDE and I’ll be most productive.