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

10 of 389 comments (clear)

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

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

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

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

  5. 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!
  6. 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
  7. 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.