Slashdot Mirror


C# and Java Weekday Languages, Python and Ruby For Weekends?

Dan Lorenc writes "Using the StackOverflow.com data dump, I measured the activity of various programming languages throughout the week. The results: Ruby and Python saw a rise in questions asked on the weekend while C# and Java saw a dropoff in activity on the weekend. This means that more programmers are using Python and Ruby on the weekend for their personal projects, showing that these languages are more fun to use. Show this experiment to your boss the next time you are selecting a programming language for a project at work."

26 of 389 comments (clear)

  1. What about Perl? by Mordok-DestroyerOfWo · · Score: 5, Funny

    Where does Perl fit into all of this? Is that at night when the leather and chains come out?

    --
    "Never let your sense of morals prevent you from doing what is right" - Salvor Hardin
    1. Re:What about Perl? by schmidt349 · · Score: 5, Funny

      Of course. What exactly did you think

      use strict;

      means?

    2. Re:What about Perl? by ducomputergeek · · Score: 4, Interesting

      Depends on what world you're living in. If you're an Unix Systems admin, there is an aweful lot of perl around. Especially if you are doing any type of log analysis. We've used PERL to generate billing reports and other tasks on the backend for years and the same goes for a lot of systems tasks. But recently we've found ourselves going back to PERL for a lot of our web work.

      We've just started porting our web-based apps from PHP to PERL because we're moving from PostgreSQL to an Enterprise class database system that has 2 PERL modules that support it and PHP has nothing but ODBC. And our tests show that MOD_PERL with the database DBI module is much faster than PHP/ODBC. Script execution time is slower, but database access time is an order of magnitude better in PERL.

      That being said, all of our Desktop GUI interfaces are written in JAVA. We looked at Python and C#, but the local university teaches 4 - 6 semesters of JAVA in their CS department. We can always find someone local to maintain Java based code. Not so much with Python. C# is nice, but JAVA is still write once, run on any desktop. So we don't have to worry if our clients are running Windows, Mac, or Linux. It just works.

      --
      "The problem with socialism is eventually you run out of other people's money" - Thatcher.
    3. Re:What about Perl? by K.+S.+Kyosuke · · Score: 4, Funny

      And judging from your gratuitous use of capital letters, I guess you're writing all your code on punch cards.

      --
      Ezekiel 23:20
    4. Re:What about Perl? by Presto+Vivace · · Score: 5, Funny

      Perl is for formal occassions, like when you wear hat and gloves.

    5. Re:What about Perl? by fractoid · · Score: 4, Funny

      I see someone rolled a natural 20 on their smug check.

      --
      Rampant carbon sequestration destroyed the Dinosaurs' tropical paradise. I'm here to help repair the damage.
  2. I think you're doing it wrong.. by Anrego · · Score: 5, Insightful

    Show this experiment to your boss the next time you are selecting a programming language for a project at work.

    I totally agree that Java isn't fun. It's very restrictive and almost forces even the simplest task to be forced into a complex object oriented structure. It is definently not a language to just play around and hack stuff together.

    And this isn't ground breaking news either.. most people who use java at work are well aware that it isn't much fun to code.

    The reason it's chosen is that all that extra code and restrictiveness makes for some very maintainable code. Everyone (or almost everyone) adheres to a strict coding convention and general approach that makes code across projects very consistant. The fact that there is a massive standard library, in addition to a set of mature defacto 3'rd party tools also contribute to this.

    And I know there are gonna be all kinds of comments and success stories about how ruby and python are _more_ maintainable and faster and more efficiant and can walk on water and will give you a BJ if you import the right library.. but imo nothing comes close to Java in the maintainability department.

    The short story is a coder playing around in his spare time has a different set of priorities than a developer at work. When you're playing.. use what's fun.. when your working.. use what works.

    1. Re:I think you're doing it wrong.. by Anonymous Coward · · Score: 4, Funny

      > You are and idiot!

      FAIL.

    2. Re:I think you're doing it wrong.. by K.+S.+Kyosuke · · Score: 5, Insightful

      The problem is that Python & co are more like Basic than anything else (it's a lot like dressed-up classic Basic)

      Yes, because classic Basic had functions with named arguments, lexical scoping, call stack... Would you mind to share your insight into this with us? The line of reasoning that equates the so-called "classic Basic" with Python?

      and that the strictness is missing which in turn means that what one person has written is hard to maintain by another person

      There are various kind of strictness and I can't think of any that a) would ensure that one person understands another person's code and b) could not be broken in Java while being easily broken in Python, e.g.

      The point behind statically and strongly typed languages is that you will catch a large number of bugs during compilation, but if the type is assigned during runtime you get a lot of hidden bombs that are just waiting to go off.

      Java is hardly an example of a statically and strongly typed language. Most Java value types are actually object classes, and these are heap-allocated objects checked at runtime. Combine this with the fact that you can cast an expression to another type and you end up with runtime exceptions. Now if you were talking about ML or Haskell, that would be something different, but you haven't actually mentioned any good statically and strongly typed language in your post.

      There are of course problems with Java too, but they are hardly solved with a script language.

      Python, e.g, was not designed to be a scripting language. It can be used in that role with great success, but that does not make it one.

      --
      Ezekiel 23:20
    3. Re:I think you're doing it wrong.. by Frequency+Domain · · Score: 4, Informative

      You're confusing two orthogonal concepts - static typing and strong typing. Python, Ruby, Smalltalk, and lisp are all strongly typed, but the type enforcement occurs at runtime rather than compile time. C and C++ require that variables have compile time type definitions, but then can do all sorts of implicit conversions so they are statically but weakly typed.

    4. Re:I think you're doing it wrong.. by ultrabot · · Score: 5, Informative

      C/C++ aren't good either, but for small solutions C can be useful while C++ has the disadvantages of both C and object-orienting combined.

      This betrays utter lack of understanding of C++. C++, when done properly, has very little of the problems of C (type unsafety and tedious manual memory management come to mind first).

      --
      Save your wrists today - switch to Dvorak
    5. Re:I think you're doing it wrong.. by loonycyborg · · Score: 4, Insightful

      C++ has the disadvantages of both C and object-orienting combined.

      Wrong. C++ has advantages of both C and object-orienting combined. And some really nice libraries such as boost. That comes at a cost of pretty steep learning curve which IMO is worth it.

    6. Re:I think you're doing it wrong.. by StormReaver · · Score: 4, Insightful

      I totally agree that Java isn't fun.

      I have to disagree with everything you said. If you're creating complex object structures for even simple tasks, then you're using Java very poorly, and doing object oriented programming very badly. Java, when used competently, is an efficient, flexible language. It is extremely well suited for hacking things together and playing around, as well as serious development. Getting a simple GUI program up and running is a matter of about 10 lines of sparse code. Getting a simple console program running is about half that. As programs get large, Java's facilities for organization and object decoupling make maintenance much easier than it would be without those facilities.

      I've used more programming languages than I can remember in the last 25 years of software development (I don't think I have enough fingers and toes to count them), and Java is one of my all time favorites (especially since version 6). It's simple, efficient, effective, powerful, maintainable, and lets me get a lot done quickly. As far as programming goes, those are key components of fun. Throw in Netbeans, and it's the closest thing to programming bliss I've ever seen.

      As far as maintainability goes, that has more to do with the quality of the object structures than anything inherent in the language itself. Well designed C++ object structures are just as maintainable as well designed Java structures, just as poor object structures are difficult to maintain in any language.

  3. WWTBD? by migla · · Score: 5, Insightful

    "Show this experiment to your boss the next time you are selecting a programming language for a project at work."J

    What would the boss do? Maybe he'd come to the conclusion that Java and C# are for professionals while Python and Ruby are for hobbyists?

    --
    Some of my favourite people are from th US; Vonnegut, Chomsky, Bill Hicks.
    1. Re:WWTBD? by lukas84 · · Score: 5, Funny

      No, it clearly shows that shops using C# and Java employ lazy bastards that don't work on weekends ;)

  4. Not necessarly "more fun to use' by Shados · · Score: 4, Insightful

    While its probably one of the factors... Java and C# are very heavily used in business environments. So if you're trying to expand your horizon by learning something new, you're not going to be looking at stuff you do day to day.

    So I'd assume anything people would do during business hours would take a drop on weekends, in favor of things they -don't- do at work, regardless of what it is... It just makes sense.

  5. Programming lanugages - just like mullets by boguslinks · · Score: 4, Funny

    Java in the front, Python in the back

    1. Re:Programming lanugages - just like mullets by slarrg · · Score: 5, Funny

      You seem to be built wrong, my python is in the front.

  6. Really? You think that's what it means? by bonch · · Score: 5, Insightful

    This means that more programmers are using Python and Ruby on the weekend for their personal projects, showing that these languages are more fun to use.

    What's to stop me from coming to a different conclusion, such as that Python and Ruby are toy languages not meant for serious projects? It would be just as presumptuous, wouldn't it?

  7. Ghaaaaaa???? by TiggertheMad · · Score: 5, Insightful

    ...showing that these languages are more fun to use.

    ...And in other news, older people seem to die more often than younger people, showing that being dead is much more fun as you get older.

    --

    HA! I just wasted some of your bandwidth with a frivolous sig!
  8. Bad Conclusion by malevolentjelly · · Score: 4, Interesting

    Perhaps this only indicates that Java and C# are used more by professionals and Python and Ruby are used more by amateurs. No matter where they work (whether or not they're using Java or C# or even programming at work), it merely indicates that people who use Python and Ruby are active during the weekend.

    Perhaps this simply means that Python and Ruby are more popular with amateur F/OSS and web developers, something that is so obvious it doesn't even necessitate an article.

  9. I have a different conclusion by larry+bagina · · Score: 4, Funny

    I spend my weekends drinking and getting pussy (There's a vapid slut still passed out in my bed right now). Python and ruby are for guys who have no social life and/or can't get laid.

    --
    Do you even lift?

    These aren't the 'roids you're looking for.

    1. Re:I have a different conclusion by NewbieProgrammerMan · · Score: 4, Funny

      Python and ruby are for guys who have no social life and/or can't get laid.

      You've got it all wrong; obviously those languages are used by porn stars that are so tired after getting laid all week that they'd rather code on the weekend.

      --
      [b.belong('us') for b in bases if b.owner() == 'you']
  10. Python Matlab by stokessd · · Score: 4, Interesting

    I've been making inroads at the (unnamed) aerospace company where I work in getting people to use Python and the pylab and numpy libraries in place of MATLAB. Not only is it free vs. several thousand dollars, but it's faster, more flexible, and makes your teeth whiter. I've been much happier and more productive since I switched.

    We also use "R" for a lot of analysis rather than MATLAB.

    Sheldon

  11. Not exactly Sherlock Holmes by 93+Escort+Wagon · · Score: 4, Insightful

    This means that more programmers are using Python and Ruby on the weekend for their personal projects, showing that these languages are more fun to use.

    That's a breathtakingly poorly-drawn conclusion, although the thought processes involved behind some Slashdot submissions rarely surprises me anymore.

    The more obvious conclusion is that using a scripting language is easier than using a compiled language.

    A secondary conclusion I've drawn from this is more people should consider developing hobbies that differ from their day jobs. Me, I like gardening.

    --
    #DeleteChrome
  12. REFACTORING by TwinkieStix · · Score: 5, Insightful

    Statically typed languages allow for some very aggressive refactoring tools. Modern software engineers that work all day in a programming environment can easily move code around as if it were paint on a canvas using good modern refactoring tools. Pushing methods in, out, and across interfaces, changing the type of a method return, or it's name, and altering the design of a complex inheritance hierarchy are all done with simple keyboard shortcuts in Eclipse when programming in Java. While I've not used it, I understand that C# developers have access to some similarly complex tools.

    And, the compiler can act as a first line of defense, alerting the user of bugs before an executable is even created. All of these refactoring tools work to refactor the unit tests as well, so code written using TDD isn't harmed by all of these changes.

    This kind of stuff I just haven't been able to replicate using Dynamic languages, which is why I choose them for my small personal project, and am glad I use a statically typed language that scales to hundreds of developers and millions of lines of code at work.