Slashdot Mirror


GitHub Commits Reveal The Top 'Weekend Programming' Languages (medium.com)

An anonymous reader writes: Google "developer advocate" Felipe Hoffa has determined the top "weekend programming languages," those which see the biggest spike in commit activity on the weekends. "Clearly 2016 was a year dedicated to play with functional languages, up and coming paradigms, and scripting 3d worlds," he writes, revealing that the top weekend programming languages are:

Rust, Glsl, D, Haskell, Common Lisp, Kicad, Emacs Lisp, Lua, Scheme, Julia, Elm, Eagle, Racket, Dart, Nsis, Clojure, Kotlin, Elixir, F#, Ocaml

Earlier this week another data scientist calculated ended up with an entirely different list by counting the frequency of each language's tag in StackOverflow questions. But Hoffa's analysis was performed using Google's BigQuery web service, and he's also compiled a list of 2016's least popular weekend languages -- the ones people seem to prefer using at the office rather than in their own free time.

Nginx, Matlab, Processing, Vue, Fortran, Visual Basic, Objective-C++, Plsql, Plpgsql, Web Ontology Language, Smarty, Groovy, Batchfile, Objective-C, Powershell, Xslt, Cucumber, Hcl, Puppet, Gcc Machine Description

What's most interesting is the changes over time. In the last year Perl has become more popular than Java, PHP, and ASP as a weekend programming language. And Rust "used to be a weekday language," Hoffa writes, but it soon also grew more popular for Saturdays and Sunday. Meanwhile, "The more popular Go grows, the more it settles as a weekday language," while Puppet "is the champion of weekday coders." Ruby on the other hand, is "slowly leaving the week and embracing the weekend."

Hoffa is also a long-time Slashdot reader who analyzed one billion files on GitHub last summer to determine whether they'd been indented with spaces or tabs. But does this new list resonate with anybody? What languages are you using for your weekend coding projects?

80 of 149 comments (clear)

  1. Java by Anonymous Coward · · Score: 2, Informative

    Java is the classic weekday language, taking COBOL's place.

    Not that it's poorly designed, but... getting the right things to happen is work that people need to get paid for.

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

      Cue everyone telling you that Java sucks and you should switch to one of the many fad languages.

    2. Re: Java by Anonymous Coward · · Score: 1

      I am no advocate of Java but occasionally a well-designed, low resource, application developed using the Java programming language comes along and impresses me.

      As for my weekend programming languages recently these include bash, python, R, and SQL (yeah I know it is technically not a programming language in the Turing Complete sense). LaTeX is not a programming language, right?

    3. Re: Java by david_thornley · · Score: 1

      LaTeX is not a programming language, right?

      It has been used to write some interesting applications, according to Stack Overflow. It is, apparently, a programming language, although one I'm not going to use for weekend projects not involving text formatting.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  2. No love for Delphi? by ELCouz · · Score: 1

    Pretty neat week-end language IMO... Not for a living though!

    1. Re:No love for Delphi? by TheRealMindChild · · Score: 1

      Delphi isn't free.

      --

      "When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
    2. Re:No love for Delphi? by ELCouz · · Score: 1

      Lazarus is! ...which is a Delphi compatible cross-platform IDE ;)

    3. Re:No love for Delphi? by CrashNBrn · · Score: 1

      Sure. Total Commander. But we all wish it was written in C/C++ and not a closed source program, by a single curmudgeon developer.

    4. Re:No love for Delphi? by ELCouz · · Score: 1

      Shill?!...no way! Just a die hard Delphi / Free Pascal fan ;)

  3. GitHub attempts to autodetect. by hackwrench · · Score: 1

    My repositories that contain QuickBASIC language code for compilation with QB64 are tagged Visual Basic by GitHub.

    1. Re:GitHub attempts to autodetect. by bhcompy · · Score: 1

      Mine are in DataBASIC...

  4. Weekend? As in fart with, not work with? by Snotnose · · Score: 4, Interesting

    Learned Java on my own a couple years ago, but have never used it in a professional environment. Do a lot of Python on my own. Do C/perl/bash/some C++ at work.

    Love Python, Java is OK.

    Then again, I've never used github neither personally nor professionally, I'm gonna guess these results are biased heavily towards github users, the rest of us (Perforce for me) are completely left out.

    / several years ago we were writing a new test suite
    // I wanted Python, most others wanted Perl
    /// Boss said "3,000 engineers here know Perl, you know Python. Wanna support 3,000 engineers?"
    //// bummer, but he had a damned valid point

  5. Re:What brand of hammer? by Jeremi · · Score: 4, Funny

    Programming languages do not matter. Any program can be written in any language. Programming languages are as interchangeable as hammers.

    Yes, that's why I write all of my software in Brainfuck, except for the performance-critical parts which I implement directly as a Turing Machine specification. My "hello world" app might not ship for another 18 months, but when it's finally done it's gonna be awesome.

    --


    I don't care if it's 90,000 hectares. That lake was not my doing.
  6. Re:What brand of hammer? by K.+S.+Kyosuke · · Score: 2

    Programming languages do not matter. Any program can be written in any language

    I wanted to write a non-deterministic term rewriting system in Lisp, but now that you've enlightened me, I'm going to write it in COBOL.

    --
    Ezekiel 23:20
  7. Re:What brand of hammer? by vux984 · · Score: 4, Insightful

    What brand of hammer do you use for your weekend carpentry projects?

    I think that's the point. We try out and play with new tools on the weekend.

    Programming languages do not matter.

    They are all tools for essentially the same thing - banging, but they are not identical, and it makes difference what you use. And that's WHY we try new ones, to see if they make our lives easier or not.

    Many of them are lousy, and many more are fine, but no better than what we already have, but some of them do make certain things easier in certain projects, and might transition to our regular toolboxes.

    Programming languages are as interchangeable as hammers.

    I have a regular old claw hammer from Sears for most things. I have a small finishing hammer for stuff like hanging pictures and building bird houses. My brother has a nailgun that I'd borrow if i were doing a big project like framing a basement. I've never had cause to use a ball peen hammer... but if i did any metalworking i'd probably quickly find my claw hammer ... inadequate. I don't have a rubber mallet either, but frequently find myself having to 'work around' not having one... enough that at some point I'll get one.

  8. Re: What brand of hammer? by Dixie_Flatline · · Score: 2

    Well, emacs lisp is the language that all the extensions and most of the editor is written in, so yes, it matters. The SDKs I'm provided to work on game consoles are all in C++, so we work in C++.

    The fact that all these languages are tiring complete doesn't do away with their advantages or disadvantages. In the real world, these choices have consequences.

  9. Elisp is a Friday afternoon language by Dixie_Flatline · · Score: 2

    So during the week, I get my normal work done, but on Friday afternoons, if I've been frustrated with some part of the build system I've written or I want to make something about my process better, I work on tinkering with emacs. Few people need elisp as their main language, but if they're using emacs, they're working in elisp on the weekends to make the rest of their week more liveable.

  10. 'Weekend Programming'? by sitarlo · · Score: 1

    Is that like when the CEO creates an unrealistic deadline out of thin air and I spend the weekend coding a hack to make it look like a feature kinda sorta works? Surely this study isn't suggesting that people are spending their weekends writing programs in obscure languages just for fun?!?!?

  11. Re:Weekend? As in fart with, not work with? by Anonymous Coward · · Score: 1

    Yes, sounds like awesome job security. You're a goddamn fool for saying no, now there's at least 3000 engineers that can do your job better than you.

  12. mhmhmh by Anonymous Coward · · Score: 2, Funny

    I write FORTRAN in every language!

  13. Re:Could not care less.. by Tablizer · · Score: 1

    Some languages may fit the way YOU think but not fit the way an average co-worker thinks.

    For personal projects you don't have to give a shit if and how others read your code. Work languages tend to discourage one from being overly clever to make it digestible to a wider audience. It can take the fun out of things, but at least some other coder won't turn grey trying to read your experiment, or vice versa.

  14. You mean hardly at all? by SuperKendall · · Score: 5, Insightful

    Programming languages are as interchangeable as hammers.

    You sound like someone who has never visited the majesty of the Hammer Museum.

    The comparison of programming languages to hammers in inadvertently apt; you conclusion not at all.

    Some programs are simply much better at some tasks than others. That is why it's good to be familiar with several, instead of just choosing one and claiming " Programming languages are as interchangeable as hammers.".

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:You mean hardly at all? by Hognoxious · · Score: 1

      It's "planishing", not "plenishing", unless you've run out and gone to get some more from the stores.

      There was a kid in my class who always used to call it a punishing hammer. I was rather surprised the teacher didn't hit him with one; it was allowed in those days, before the bloody Belgians stuck their noses into everything.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  15. Re: coding is for losers by Anonymous Coward · · Score: 1
  16. Re:Bullshit by thogard · · Score: 1

    Work has more than 2 decades of experience supporting software products. The maintenance costs of Perl are far less than C which is less than c++ which is far less than C# which is far less than Python which is far less than Zope.

    Zope has been the worst by far. We have hired 3 different people to rewrite a Zope app and import the data into a new system. The thing is the Zope app took about 2 weeks to write in the first place. 3 complete failures. The last time we needed a custom report for the system, it was a few minutes of work in SQL and Perl.

  17. Erlang the real Rockstar language!! by Billly+Gates · · Score: 1

    Come on. All the cool kids use Erlang Outlaw Techno Psychobitch

  18. Kicad? by jenningsthecat · · Score: 4, Insightful

    top weekend programming languages are: Rust, Glsl... Kicad...

    I use KiCad to create schematics and PCB designs. When, and how, did it become a programming language?

    --
    'The Economy' is a giant Ponzi scheme whose most pitiable suckers are the youngest among us and the yet-unborn.
    1. Re: Kicad? by BeaverCleaver · · Score: 3, Informative

      I came here to ask the same thing. Maybe because KiCad component footprints are hosted on GitHub, it got counted as a "language." And given the number of PCBs for hobby projects which get developed on weekends, this might account for its popularity.

    2. Re:Kicad? by Dragonslicer · · Score: 1

      I was thinking the same thing about Puppet. I haven't used it much, but I don't remember there being a programming language involved.

    3. Re:Kicad? by angel'o'sphere · · Score: 1

      Puppet has its own programming language do describe dependencies and deployments. I think it is Ruby based, not sure so, looked at it once and immediately hated it, it was to ugly.

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

      That and the people that use Puppet (that I have seen, e.g. Web Devs), aren't doing much more than a basic GREP and PIPE bash script. Tools for Fools.

    5. Re:Kicad? by angel'o'sphere · · Score: 1

      Well,
      I had no problem to use Puppet for what it does, and would likely use bash myself.
      I have a problem with the "reinvented" programming language however.

      I like programming languages ... if they do something NEW and do it BETTER or with a different PARADIGM than other/older languages. The Puppet language looked more like a missbreed of Ruby/Python/PERL to me though.

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

      Also, when did Nginx become a language?

  19. Re:coding is for losers by sitarlo · · Score: 2

    Somewhat true. I author software mostly in Unity these days using state machines and I am developing the deepest, most rich and robust applications of my 30+ year career in software development absolutely code free. If you are still churning out lines of application code I highly recommend learning about the excellent x-platform tools like Unity that are available today. If you are writing device drivers or native utilities in C or Assembly, then my hat is off to you for actually practicing programming. Scripting, no matter how sophisticated, is somewhat banal when you think about it. Applying endless standards and APIs to recreate what has already be done before. There just isn't enough risk in it for it to be actually innovative. I'm not pointing fingers, the game engine centric development I do these days is even higher abstraction from the machine, but there is a sense of freedom working in simulated space and time. It's not really programming, it's more like experience design. And for the grossly divisive posts below, imagine a world where people are not judged by the color of their skin or the country they came from. Isn't it a better place?

  20. Re:What brand of hammer? by phantomfive · · Score: 1

    Programming languages do not matter. Any program can be written in any language. Programming languages are as interchangeable as hammers.

    And yet no self-respecting programmer writes things in BASIC.

    --
    "First they came for the slanderers and i said nothing."
  21. Population of Github users by Tony+Isaac · · Score: 3, Insightful

    Github is especially popular with the Linux crowd. It was, after all, invented to improve development coordination of Linux.

    This population skews the results in three significant ways:
    1. Towards obscure and fad languages. This is linked to the extreme fracturing of Linux programmers, each group of which fiercely promotes its own favorite language and tools.
    2. Away from Windows. GitHub is especially popular with the open source crowd. This means that C# and .NET languages (favored by programmers who want to make money with their code) will be underrepresented in the statistics.
    3. Away from projects developed by less-than-genius developers. GitHub still has a steep learning curve for a lot of developers to master, especially those who have been raised on TFS and SubVersion. The obsession with cloning and branching is foreign to these programmers, and they often don't see the point. These types of programmers are typically creating relatively straightforward Web applications, and tend to write their code in C#.

    I suspect that the real numbers for weekend coding would feature Microsoft .NET languages much more prominently, if all types of repositories could be counted.

    1. Re:Population of Github users by Anonymous Coward · · Score: 1

      Hmm, I think that you are confusing git and github.

      By the way, I read recently about Microsoft creating a git-friendly file system, and that the Windows code base was managed with git.

    2. Re:Population of Github users by squiggleslash · · Score: 1

      He's not. While Visual Studio has git support, users are encouraged to use Microsoft's own free source code repository/management system.. With the exception of a few Mono holdouts, I'm guessing 90% of C# developers, professional or otherwise, use Visual Studio, where you're encouraged to use Team Services.

      --
      You are not alone. This is not normal. None of this is normal.
    3. Re:Population of Github users by squiggleslash · · Score: 2

      (Replying to myself):To clarify, Team Services is a Github rival, not a git rival. TS even offers git hosting as an option.

      --
      You are not alone. This is not normal. None of this is normal.
  22. uhm.. by superwiz · · Score: 2

    Counting the most commits is only a step above counting kloc's. Or is it just the new kloc? If a language is at the point where it finally has it together (good std library support, intuitive syntax, etc.) one might expect projects in that language to get to stable condition much faster with fewer commits. The more messy and error-inducing a language is, the more the projects in it need to be fixed. So it would see more commits (assuming enough people are conned into using it).

    --
    Any guest worker system is indistinguishable from indentured servitude.
    1. Re:uhm.. by superwiz · · Score: 1

      kloc is an acronym for "thousand lines of code". This was generally the way to describe complexity of code at some point (just as the number of transistors on a chip used to be a bragging point about its complexity).

      --
      Any guest worker system is indistinguishable from indentured servitude.
  23. Re:Weekend? As in fart with, not work with? by superwiz · · Score: 1

    There is no way that there is still 3000 people who wouldn't switch from Perl to Python in the entire world. Are you working with aliens.?

    --
    Any guest worker system is indistinguishable from indentured servitude.
  24. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  25. No c++ love? by Anonymous Coward · · Score: 1

    C++ always strict me as a great weekend language: obscure, featureful, fun to play with, but damned if I'd want to use it on a "professional" project.

    1. Re:No c++ love? by cpghost · · Score: 1

      To C++ aficionados, weekends are for reading and meditating through Stroustrup's and others' fine books, the ISO standard, Boost code, etc. to get a better grasp of the language and its modern features to then be used during the week days to create even more obscure, beautiful metaprograms that solve the Halting Problem at compile time by applying a policy meta-template instantiated with some magic traits. Do you think there's time to commit code like that on GitHub on the weekends and hoping those commits to still make sense on Monday?

      --
      cpghost at Cordula's Web.
    2. Re:No c++ love? by david_thornley · · Score: 1

      It takes skill, experience, and knowledge to do a good job with C++. If you've got all that, it's a really powerful and expressive language.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  26. Re:What brand of hammer? by phantomfive · · Score: 1

    That's really cool. Do you have source code?

    --
    "First they came for the slanderers and i said nothing."
  27. Re:What brand of hammer? by MillionthMonkey · · Score: 2

    Programming languages do not matter. Any program can be written in any language. Programming languages are as interchangeable as hammers.

    That's taking the concept of a Turing completeness a little too far. Malbolge is Turing complete and can theoretically do anything that Java can do. This is "Hello World" in Malbolge:

    (=<`#9]~6ZY32Vx/4Rs+0No-&Jk)"Fh}|Bcy?`=*z]Kw%oG4UUS0/@-ejc(:'8dc

    That string of code was not written by hand- it was generated by a beam search algorithm.

  28. Nginx ? by Anonymous Coward · · Score: 2, Insightful

    So Nginx is a programming language now ? I always thought it was an HTTP and proxy server, not a programming language.

    1. Re:Nginx ? by Anonymous Coward · · Score: 1

      That was what I was thinking. Unless the config language is now Turing complete and used by hipsters migrating from node and Go.

  29. Re:Weekend? As in fart with, not work with? by angel'o'sphere · · Score: 1

    When you have a large code base in language X and 3000 (competent) developers working on it: why the hell would you want to switch to a different language?

    Doing new stuff in a different language would be ok, but ditching the old code and rewriting it?

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  30. +1 Funny by CustomSolvers2 · · Score: 1

    Very funny! I also liked the one about NoSQL being web-scale referred in a comment some weeks ago.

    --
    Custom Solvers 2.0 = Alvaro Carballo Garcia = varocarbas.
  31. Objective-C++ ??? by gnasher719 · · Score: 1

    That's interesting. The only practical use for Objective-C++ is to write wrappers for C++ classes to be used from Objective-C code or vice versa. So people are writing wrappers for either their C++ code or their Objective-C code on the weekends?

  32. The Multi-Platform Livecode by Nonsanity · · Score: 2

    I've used Livecode for all my "I need a program to do X immediately" needs for years. It has since become open source and free for most usesâ"including all of mine. The paid additional features, like compiling for iOS, are always available if needed. One if the best parts if using Livecode is its integrated IDE. It is exceedingly simple to fire it up, create a New project, and drag a few text fields and buttons on to its window. I've been using the language, or one of its ancestors, since 1988 when I first started using HyperCard on Macs. But Livecode today runs equally well on all platforms. Being able to compile from any of those platforms to make a stand-alone executable for any other has also been invaluable. I always recommend Livecode to anyone that wants to learn a little bit of programming. It's quick and easy to learn and use.

  33. Re:perl is not surprising. by hughbar · · Score: 1

    In the last year Perl has become more popular than Java, PHP, and ASP as a weekend programming language

    To declare interest, I've done a great deal of contract programming in Perl, for 'big' shops, BBC and a bit of Amazon for example. I've been in the industry since 1976 and done a lot of COBOL, RPG2, Filetab, some PL/1 etc. and more recently some Java and Python. So I'm not a one language programmer, I've been messing with Erland recently too.

    Perl takes a lot of shit, and, I agree @ [ % $ (for example) makes things very mysterious, starting out. However, it's a very productive language with a huge set of library assets on CPAN (yes, too many perhaps and some are flaky as hell) and a lot of mature tools like Catalyst and mod_perl. You have to be defensive because of weak typing, but that becomes a habit, good to be defensive, anyway.

    Lastly, the community is good, funny and pretty welcoming. As I'm a Londoner, I got to: http://act.yapc.eu/lpw2016/ every year, learn some stuff, meet some friends too. Lastly, lastly (I lied about the previous 'lastly') it's not in anyone's hands, like Java and Go, for example.

    Try it and see. You may be surprised.

    --
    On y va, qui mal y pense!
  34. AHK on the weekend by CrashNBrn · · Score: 1

    AutoHotkey... which is basically C with optional curly braces... Did you hear that Python? optional curly braces... imagine that.

  35. Re:What brand of hammer? by CrashNBrn · · Score: 1

    I prefer my Pick-Axe. Plus the Zombie Apocalypse is coming.

  36. Lack Of Python Shows Result Is Invalid by Anonymous Coward · · Score: 1

    Python is very heavily used both in commercial day jobs and by neophyte/weekend coders. The fact Python appears on none of these lists and that the likes of Nginx - a web server - is suggested to be a programming language, clearly indicates that this "analysis" is utterly worthless.

    GIGO. This whole story is garbage.

  37. Re:Bullshit by fluffernutter · · Score: 1

    Perl is the only language that comes usually out of the box with every linux and unix. You write a script in bash, it won't work some places. Java, you need to install the JVM and probably some sort of framework before you're really up and running, which often feels bloated. Python is personally my favorite language, and while it comes on most linux distributions you won't find it on most enterprise unix. Yet perl is there. Write a script in perl and you're good. Not even hard to make work on windows.

    --
    Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
  38. Re:What brand of hammer? by ath1901 · · Score: 1

    Programming languages are as interchangeable as toolboxes.

    If you've ever tried to repair something at a friends house, you know what I'm talking about. You say "That's easy to fix, just get me some tools" and they bring you a shoe box with twine, paper clips and a flat screwdriver. Sure, it's possible to remove phillips screws with a flat screwdriver but it's annoying as hell. Mending stuff with twine and paperclips is better than nothing but if you know of glue guns and rope, it can be a very frustrating experience.

    I had exactly the same feeling when writing numerical code in C#. Everything had to be improvised or created from scratch since there were no relevant libraries and the existing ones could not be applied (sure, there was a binary search but it threw an exception if the element wasn't found. I needed something like upper_bound in C++). Anyway, this was 10 years ago. Maybe things have changed but back then it was definitely the wrong toolbox for the job.

    By, the way, I counted the hammers in my toolbox at home: 5. Very small, small, regular, small sledgehammer and rubber mallet.

  39. Re: What brand of hammer? by Darinbob · · Score: 1

    Emacs Lisp is something you do on the weekend too. During the week you can't make the excuse that you're changing how your editor works so the project is on hold. Instead you fix up the editor to your liking when not at work.

  40. Re:Weekend? As in fart with, not work with? by superwiz · · Score: 1

    Doing new stuff in a different language would be ok, but ditching the old code and rewriting it?

    Well, rewriting old Perl code... Yeah, I guess. Of course, if it were old Python code, it wouldn't be an issue. Perl, as the saying goes, is a write-only language.

    --
    Any guest worker system is indistinguishable from indentured servitude.
  41. Re:Weekend? As in fart with, not work with? by superwiz · · Score: 1

    Learn more about what 'yield' keyword does in it. And then learn what the 'with' keyword does in it (deterministic RAII within a gc-based language). Then read and fully understand what is a 'namedtuple'. And then you'll realize that it is pretty far from a standard OO language. Just as a function is a generalization of the concept of a stack, yield-based generators (closures) are a generalization of the concept of a queue. 'namedtuple' makes visitor pattern obsolete. So a lot of the hoops which people are forced to jump through in OO languages are naturally swept away by Python's native constructs. And because the white spaces are used for scope delineation, it is imminently readable.

    --
    Any guest worker system is indistinguishable from indentured servitude.
  42. Re:Weekend? As in fart with, not work with? by superwiz · · Score: 1

    Oh, and I guess I forgot to mention that it has all the constructs one would expect in a mature functional language (map, filter, lambda, reduce). But I forgot about it because they were so obviously there from the beginning.

    --
    Any guest worker system is indistinguishable from indentured servitude.
  43. Go as in golang by Walter+White · · Score: 1

    Go and some python on weekends.

    Should I try Rust next?

    During the week it is mostly C, some C# and for scripting, Python.

  44. Re:Weekend? As in fart with, not work with? by doom · · Score: 1

    There is no way that there is still 3000 people who wouldn't switch from Perl to Python

    Ah, would that there were only 3000 mindless trolls left on the internet.

  45. Re:Weekend? As in fart with, not work with? by doom · · Score: 1

    Lame piss.

  46. Re:Weekend? As in fart with, not work with? by superwiz · · Score: 1

    Seriously? It really gets you going that someone you don't even know would suggest that Perl is much easier to write than to read? I have never heard in my life anyone say that they saw a project which was written in Perl and the code was beautiful. I've heard it about C and Python... and, yes, about Java. I've even heard it about Bash scripting framework. But never about Perl. I guess your experience may be different, but if it is, I assure you that it is fairly unique.

    --
    Any guest worker system is indistinguishable from indentured servitude.
  47. Re:What brand of hammer? by Big+Hairy+Ian · · Score: 1

    Any program can be written in any language

    Seriously? Try writing a Web Server in Logo

    --

    Build a Man a Fire, and He'll Be Warm for a Day. Set a Man on Fire, and He'll Be Warm for the Rest of His Life.

  48. Re:Rusted away by SJWs by david_thornley · · Score: 1

    Actually, that's the nail on his thumb that he hit. You don't have nails on your head.

    --
    "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  49. Re: What brand of hammer? by david_thornley · · Score: 1

    Donald, go back to Twitter.

    --
    "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  50. Re:What brand of hammer? by david_thornley · · Score: 1

    One of these years I'm going to write a Microsoft 6-bit BASIC interpreter in C++ and write me some BASIC programs. (Yes, I could get one, but that's not the fun way.)

    --
    "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  51. Re:What brand of hammer? by phantomfive · · Score: 1

    Bet you could make it more efficient, too

    --
    "First they came for the slanderers and i said nothing."
  52. Re:What brand of hammer? by santiago · · Score: 1

    Programming languages do not matter. Any program can be written in any language. Programming languages are as interchangeable as hammers.

    Yup, that's why I use a plain old claw hammer for everything. Who needs jeweler's hammers, rubber mallets, ball peen hammers, sledgehammers, and jackhammers!?

  53. Re:Weekend? As in fart with, not work with? by david_thornley · · Score: 1

    Sounds like you don't know any good Perl programmers.

    --
    "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  54. Re:What brand of hammer? by K.+S.+Kyosuke · · Score: 1

    I had exactly the same feeling when writing numerical code in C#. Everything had to be improvised or created from scratch since there were no relevant libraries and the existing ones could not be applied (sure, there was a binary search but it threw an exception if the element wasn't found. I needed something like upper_bound in C++). Anyway, this was 10 years ago. Maybe things have changed but back then it was definitely the wrong toolbox for the job.

    And all despite the fact that (higher-level) C++ and C# are almost identical languages. Now compare them to APL, Forth or Prolog.

    --
    Ezekiel 23:20
  55. Re:Weekend? As in fart with, not work with? by superwiz · · Score: 1

    Callback function with a closure, I think?

    As long as you understand what closures are, you get it. But you mentioned that you thought it was run-of-the-mill OO language. Closures are not OO concepts. They allow function-like constructs to keep state in a reentrant function without binding it to any one object. It's not a conceptual step above or below OO development. It's a lateral addition to the (let's call it) concept pool. The fact that it is a 1st class citizen in Python (with its own keyword rather than hacked together from other language constructs) makes queue's effectively unnecessary. You just write generators which pump out data as you need it. In OO languages, you'd have to create an object and methods to have this behavior. In Python, you it's succinct and easy-to-read callables. Syntactically, it doesn't make the code set things up as callbacks (which are hard to debug), but as functions calling other functions (so it's much more intuitive and easier to debug).

    Lexical file handles close themselves when they go out of scope in Perl too. Other objects have the DESTROY method.

    Not quite. Destroy gets called when the object garbage collected. Context manager's __exit__ is called when the "with" scope is exited. So it's deterministic. Like a dtor of a C++'s object created on stack. You can use it to manage connections, locks and there is a well-known idiom combining closures (yielding functions) and context managers to produce cascading contexts. Mind you, this is still readable at a glance.

    An immutable array with custom index names? Kind of like a hash?

    No, it has dictionaries. Those are like hashes. Or, if hashes keep the order in which elements were added, then ordereddict. namedtuple is like an array which can be called by either positional attribute (attribute 3) or named attribute (attribute .something). This trivializes db bindings. At the same time, it allows to have the function run on all elements of a tuple (iterating by positional attribute). Mind you that you can do it without any extra hoops to jump. 'namedtuple' itself creates a factory method which can be used to create instances of a tuple, rather than creating instances of a tuple itself. So instead of doing $inst['something'], you can do inst[3] or inst.something (depending on how you are using it).

    visitors are the main reason the book of 4 was so widely read. They allow for double dispatch (demarshalling based on arguments) in languages which only support single dispatch (polymorphism). And, as I mentioned, because of namedtuple, it's largely unnecessary in Python. Even though people coming to Python from Java do overuse it out of ignorance.

    map, grep, sub, List::Util::reduce (the module is in core)

    Well, map, filter, lambda, reduce are functional-language concepts. I didn't say that Perl didn't have them. I just said that they are 1st class citizens in Python. So to call it just an OO language is to ignore some of its best and most widely-used features.

    In fact, writing Python code in a completely object-oriented fashion is something which almost immediately gives you away as a Java programmer. C++ programmers learn about 'with' fairly quickly because they want RAII guarantees which cannot be provided by loop-detecting garbage collector. Context managers, by the way, need not be objects. They are more often closures (so the closure ends when the context in which the context manager exists ends). Although this explanation sounds more complicated than the much clearer code which implements it.

    --
    Any guest worker system is indistinguishable from indentured servitude.
  56. Re:What brand of hammer? by david_thornley · · Score: 1

    For GOTO targets, should I use the original technique of checking line by line to see if it has the right line number, or just keep track of them? Decisions, decisions.

    --
    "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  57. Re:Weekend? As in fart with, not work with? by SoTuA · · Score: 1

    Well, now you can't say that anymore. I have seen beautiful Perl with my own two eyes. It was awesome.
    / I had been writing Perl regularly for a decade at that point. I did feel like I had found an unicorn.

  58. Re:What brand of hammer? by phantomfive · · Score: 1

    Back when I was writing basic, the thing I wanted most of all was a tool to renumber the lines. I kept on running out of line numbers, it drove me crazy.

    --
    "First they came for the slanderers and i said nothing."