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."
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
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.
"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.
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.
Java in the front, Python in the back
I suspect this rather reflects what the various languages are being used for, more than how fun they are. For example, if you are trying to make a stand alone program for windows, your best option is probably C#. On the other hand, if you want to build a web app, you are probably not going to use C#, because you won't be able to deploy your web app without paying a ton of cash for the asp dev license.
If you are making a web page, it will once again depend what kind of web page you are making. Java really shines in large enterprise systems with lots of repetition. It isn't so great for small projects, that is where Ruby is best. So I think what this guy has found is what languages are best for weekend type projects.
Qxe4
Correlation does not imply causation. Additionally, stating that a language is "more fun" to use because of the day of the week people ask questions is completely asinine. You, sir, are and idiot.
I'm rediscovering the fun of Java with Grails and Groovy. Groovy takes the best of PHP, Python and Ruby and integrates it into Java and Grails finally creates a framework without a million XML configs. It has made web dev in Java easy and pleasurable.
This is my sig. There are many like it but this one is mine.
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?
...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!
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.
When I start a new professional project, I pick the most productive language for the job, according to the circumstances. Usually it's Java because this is the language that everyone in my industry is going to know. In another industry, I guess that I would have to use C, C# or Fortran.
Now, Java is a reasonably efficient language and I like programming in it. Some of my colleagues cringe and prefer to use obscure languages instead, such as OCaml or (Deity forbid), a language they defined themselves. And the moment they quit you are stuck with thousands and thousands of line of code that no one else can understand.
The gist is simple: Python and Ruby are fine languages, but when you're programming for a living, "fun" is usually trumped by more important considerations, such as being able to find another programmer to maintain the code.
Nobox: Only simple products.
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.
Presumptuous, yes, but also probably more accurate.
Hunt your preferred prey at Aliens vs Predator MUD. Join the war at avpmud.com port 4000
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
Or it could be that Python and Ruby are inherently easier to learn or use; or that they are easier to learn or use by an individual as opposed to the groups usually found in a corporate environment; or that they don't require expensive proprietary compilers or IDE's to make use of; or that they can be used on systems that are slower or have less memory than those often found in corporate environments; or any of a dozen other reasons.
Irrespective of the actual reasons, automatically equating weekend work with fun is just poor science. And it may not be rocket science, but it is computer science and should be examined as such.
My "real" work is in C, where it's very easy to get certain things done but very inconvenient to do most other things. My fun programming is in Python because it makes quickly knocking together something that works as straightforward as possible. The C stuff is fun too, actually - it's just not the kind of hacking I'd want to do in my leisure time. Spare time hacking is often done alone or collaborating with a small group of programmers; Python's structuring (or lack thereof, depending on your point of view) actually works quite well if there's just you working informally on the code. And the very rapid development and flexibility mean I can get a lot more functionality out for a given expenditure of leisure time.
Actually, though, my default in a professional environment would probably be Python if it was applicable and I was given the choice. I'd only use C if it's really necessary for the job.
Without wanting to download the data and repeat the process to check how it was carried out, if you (or the blog) is going to describe the results to the level of detail of "early monday" and similar, you really need to know the timezone of the questioner, rather than the timezone of the server.
Many times at work I prototype with Python or Ruby. When working on weekend projects sometimes just proving something can be done is good enough for me. I write in Java and C++ when things need to be fast, deployable, bug tested, other people will need to work on it, etc, etc. I've noticed a lot of programmers and engineers just like to solve the problems and stop when it comes to their personal projects. It's a puzzle. However, in the commercial world you have to do all the mundane boring additionally that Java, C, C++ do well. If I'm writing facial recognition software at home, usually just getting matches for static images is good enough to prove out my algorithms. In the business world I'll probably have to do this with real time video. Python and Ruby wouldn't be able to handle that.
If an officer ever threatens to taze you, say you have a pacemaker.
Willie Sutton, a famous bank robber from the early twentieth century, when asked why he robs banks said, "Because that is where the money is."
.Net C# programmer and the vast majority of jobs available right now are C# and Java. Unfortunately the corporate world follows the mantra, "You can't go wrong with .Net C# or Java".
I'm a contract
The same was said of IBM pretty much throughout the seventies and eighties. Hopefully Ruby and Python will start to make some corporate inroads but I don't see it happening any time soon. wdhowellsr
This just tells be that people code in C#/Java because they HAVE to, but code in Ruby/Python because theyhttp://tech.slashdot.org/comments.pl?sid=1337483# WANT to.
The conclusion I reach is that most blowhard managers choose C#/Java without consulting the people who actually do the coding.
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
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.
It could just a plausibly mean that Ruby and Python means more overtime or weekend shifts, or that coders are doing a 2nd job for more income and it is focused in the normal work weeks downtime. Of course it is /. and I do not expect unbiased summaries by any means but sometimes they are downright silly in the conclusions drawn.
Bad Panda! No Bamboo for you! In matters of importance ACs will not be responded to. Want to say something critical,OK
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.
You forgot the word "could". None of your conclusions follow from this analysis.
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
That chart shows the percentage of total questions, NOT the number of questions asked.
In other words, it could be that Ruby and Python developers tend to have odd work-weeks that aren't the standard Mon-Fri boring crap. So maybe on the weekend, C++ and Java workers stop asking questions, but Ruby and Python don't.
I hate it when people misuse statistics to 'prove' something and don't even know what their own numbers mean.
"If you make people think they're thinking, they'll love you; But if you really make them think, they'll hate you." - DM
"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."
Aren't we jumping to conclusions here? Is there no other possible reason for a "spike" in questions like these on the weekend? Maybe Python and Ruby are used by hobbyists who code on the weekend. There could be countless reasons for an increase in the number of questions asked and "more fun to use" is pure conjecture.
In addition the chart in the linked blog provides no useful information. The units are not labeled on the chart or addressed anywhere within the article. A previous post seems to suggest the Y axis indicates the number of questions asked per hour. If that's the case, Python saw an increase of 1/4 of a question asked on the weekend. All this using a sample size of 1 week? With such a small sample size and an insignificant deviation in the data, it is ludicrous to try to draw any conclusions from this so called "experiment."
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.
Neither Sun's Java SDK (as of version 6) nor Eclipse, the most popular development environment for Java applications, are propritary or expensive. Both are free as in speech and beer.
"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."
this is specious reasoning, just because they're using them on the weekend doesn't mean that the languages are "more fun to use". I tend to drive my car on the weekend but it's definitely not as fun as when I'm walking on the weekdays.
I'm not arguing with the conclusion I just think the presumption is bogus.
Nothing, it you're sufficiently determined to think so.
Ezekiel 23:20
Python is very easy to refactor too thanks to duck typing. You get to concentrate that much more on the problem and that much less on the mechanics of types. Java and C++ send you off on the path of creating some complex class hierarchy and trying to get it right first time. In Python you do what's good enough for your current understanding and keep refactoring as you understand better it's easy to develop as you learn. Your programs change more but end up being less warped and overcomplicated.
I also write a little C and some fairly complicated GNU Make macros to be fair.
I will not go back to Java or C++ because I think they are the worst of all worlds - compromises that give you part of what you want instead of opposites that you can combine.
This is all just my personal opinion.
for me, it's PHP during the week, and Objective C in the evenings and weekends...
Don't call me back. Give me a call back. Bye. So yeah. But bye our, well, but alright we are on a shirt this chill.
I hope that Java and C# ASP.NET programmers take this to heart - rewriting their sites in Ruby after the first implementation went way overbudget and looked like shit is a very profitable business...
Ok, the data are far from conclusive that C#/Java are less fun to use. First you have to prove that programming is fun, then you have to prove that professionals who don't program at all on the weekends don't count as much as the haxors who do program all weekend.
This is just a ridiculous statement about the data.
This article is just an aspect of using the right tool for the right job. And Python and Ruby happen to be a very nice languages for quickly hacking new ideas together. Later you can work out the details and all on Java (no C# love here, and not sorry for it! :), Haskell, or even C/C++, depending on what fits best.
Any sufficiently advanced intelligence is indistinguishable from stupidity.
I sure wouldn't be doing Python (gack, too verbose, might well be using C or Java) or Ruby (slow, slow, slow).
Use Lua.
Sun's JDK 6 and later are all Open Source as is Eclipse. Those combined are the primary environment for Java developers. They are both free as in speech and free as in beer. There isn't anything proprietary or expensive about them.
Java at work but when I get home it is all about something enjoyable to code with, python!
Got Code?
I've been preaching the same exact path. Python + numpy + scipy + matplotlib is pretty damn powerful. It would be preferable if matplotlib included 3D visualization, but Mayavi is very good.
My group used to rely heavily on Excel and VBA. When Microsoft dropped VBA support on the OS X version of Office, we were left in a lurch. I'm hesitant to develop a similar dependency on MATLAB.
C and Fortran for anything requiring speed, Python for everything else.
"Open the pod by doors, Hal" > "I'm afraid I can't do that, Dave" sudo "Open the pod bay doors, Hal" > alright
Sure, using Eclipse is free.
Slamming my head against a cement wall is too.
I'm equally likely to do either on the weekend when I'm not paid to. My weekend time is too valuable to put up with such a painful programming environment.
Responsive UI, attention to detail, ease of use—these things help make programming comfortable and fun, and Ruby development has that in spades.
We also use "R" for a lot of analysis rather than MATLAB.
I was overjoyed when I didn't have to spend $85 on SPSS for my statistics class, but now that I'm graduated what the hell am I doing with R? Nothing. I found the same thing with LaTeX. Using those technologies is great and, really, I don't mind having spent the time learning, but if I were to turn in a pdf of my LaTeX compiled work, I believe my boss just might shoot me.
It does however show the following things:
1) Most home users run BeOS and so are forced to program in Python and Ruby instead of C# and Java during the weekends.
2) Python and Ruby are only used by children. On the weekdays, those children have homework to do and so ask fewer questions.
3) Home users don't own Visual Studio and so program in Python and Ruby instead of C# on the weekends. Users that would be programming in Java are too busy trying to get Eclipse working.
4) Python and Ruby are harder to use so during the weekends when people are working on their own projects, they ask more questions.
5) No one writes code in Perl. Ever.
There ought to have been a comma after the word "compilers" in my original post. My apologies.
albeit i agree with the statment specifically relating to Python...
horrid logic in getting there. a freshman college student writes more carefully than this. wow.
... if I were to turn in a pdf of my LaTeX compiled work, I believe my boss just might shoot me.
Why is that? If the document isn't meant to be collaboratively edited but is technical enough or complex enough that LaTeX is the best way to prepare it, then a PDF should be fine. If, on the other hand, the document is meant to be edited frequently by many people, somebody should explain to your boss that Word isn't really very good for that, either. The only common circumstance I can think of where your boss would really have cause to shoot you is if you obfuscate even the simplest document in LaTeX.
This doesn't mean that those languages are more fun to use; just that they're better suited to whatever projects programmers are doing on weekends. The projects themselves may be more fun, but the languages themselves may not be.
Um, I don't really know how this "study" was conducted and I'm far too lazy to read the article on the weekend but if the summary is accurate this is ridiculously bad logic. Why don't we just start deciding that our data means whatever we want it to mean...oh wait we do that already...nevermind carry on.
To deploy an ASP.NET solution you would need Windows Server 2008 Web edition. List price: $469.
Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
BTW, my subject was supposed to be: Python greater than Matlab, but the open bracket got eaten.
It really depends on your field how useful your school tools will be. I still use LaTeX, but not like I used to. Sadly, it's a Microsoft Office world out in business. Even the highly technical folks (5 PhD's in my group) get beaten into using word. It's just too painful not to, and why fight that battle when there are budget battles, and staffing battles, and schedule battles, and why the "F" is the lunchroom not open now battles.
"R" is the same way. I still use MATLAB when collaborating with others, so I'm not the odd duck. I'm odd enough without working at it. I've been fortunate enough to have enough computing projects where I have control of all the analysis, and thus the world opens up for me language wise.
Sheldon
I guess I'm lucky. I do Python on weekdays, with the occasional foray into Java and rarely C#, and on evenings and weekends I do Obj-C and Haskell.
I was orginally going to respond to Kodak man but am comfortable just providing this link of their amazing success. http://quote.morningstar.com/stock/s.aspx?t=EK&culture=en-US®ion=USA&r=469272&byrefresh=yes
Whoa Nellie! I've always wanted to send this reply but never found a sufficiently relevant post of which to respond.
All corporate IT departments worldwide are basically Johns looking for the cheapest but most satisfying solution to their current needs.
So imagine you are a CTO driving down the street and you see on your right a woman who, while attractive, also seems to provide a significant amount of additional services. However when you roll down your window you find out that in exchange for her services you have to marry her and hire her twenty children from a previous marriage in addition to signing a pre-nuptial agreement that pretty much sucks for you. (IBM)
You continue down the road and see the most beautiful woman in the world and she is guaranteed to be free of any viruses and diseases. Unfortunately she tells you that once you use her services you will be physically incapable of even looking at another women and if you try they will sue both you and the other women in court. Plus she is even more expensive than IBM. (Apple)
After deciding to keep looking you see a girl who looks less than a biscuit over fifteen but claims to be twenty-five. She is very enthusiastic and actually offers to do anything you want absolutely free. When you ask for specifics she excuses herself and walks over to a group of people who are feverously checking their computers for the most recent, coolest and insane method of satisfying your needs. When she returns she absolutely insures that she can do everything that you want but makes you sign an agreement that you have to share everything that you do with her with everyone else on the planet and she cannot completely guarantee that you will be satisfied. Just before you leave the attractive woman from IBM shows up and offers to throw in the fifteen year old for free as long as you still marry her, hire her children and sign the pre-nuptial agreement. (OpenSource)
You continue down the road and see a woman so ugly that you can't tell whether she has makeup on or not. She can provide all of the services of all the other girls and cheaper than everyone but the fifteen year old. She cannot guarantee you won't get any viruses or other diseases but promises to provide as many vaccines and cures necessary to keep you from dying. She seems to have a lot of customers and very few of them have died of anything serious so you are very interested in using her services. (Microsoft)
Before you make a final decision you pull over and roll your windows down to get some air. Suddenly you see a women that looks like nothing you have ever seen but different. She is clearly beautiful but has a strange glow of experience. You actually get out of the car and walk up to her wondering how she would compare to all the other girls. She does not speak English very well but within a very short time you realize that she has as much if not more experience that everyone else. When you ask how much she charges she provides a printout of over a thousand different services at half of what any of the other women are charging, save of course for the fifteen year old, and provides SLAs that put all of the other girls to shame. (Offshore)
You have finally made up your mind. You are going with the offshore service and invite her to join you in you car. She apologizes and mentions that she is just the representative for the team and if you stop at the next light you can pick up the other ten girls.
Because I'm no Ron Jeremy I will leave the end of the story, but suffice to say they separated into five groups of two and he fell asleep before they had decided on a
The answer is simple to me. Weekday languages are for people who do it for a job. Weekend languages are dominated by people who use it for fun.
"No matter where you go, there you are." -- Buckaroo Banzai
I use Python on the weekend as it lacks a lot of the "pain in the ass" features of popular "mother hen" languages.
I look forward to the grass roots weekend programmers sticking their pythons to the establishment.
This only shows that more questions about Ruby and Python get asked on the week-ends. Nothing more. Nothing less.
Can't this mean hobbyist Java programmers don't need to post much questions to programing forums and find can find solutions for their problems themself?
Python is free while Microsoft's C# compiler (which is the only one most C# programmers will ever have heard of) costs money. At work people use C# because the company has paid for the compiler, but at home they use Python rather than shell out for C#.
-deane
Verbosity? It's called code completion, folks. Which you can do that with any good IDE (Eclipse, Netbeans, and my personal fave, IntelliJ).
Need to change code around? Java refactoring is a cinch!
Don't want to reinvent the wheel? Millions of open source libraries out there, and 'cause it's Java, it's actually easy to read and understand.
And any good language that accesses a database had better have a damned good ORM. That means Java and C#, and I'm allergic to Microsoft.
So, in the immortal words of Eddie Murphy...
My code wants to
Java all the time
Java all the time
Java all the time...
So, Python is just a toy language, eh? One unsuited to use for any heavy lifting or by large programming teams? Funny, someone should tell Google so they can replace all of their code. Same goes for Pixar, too, I suppose.
Look, you're making a classic mistake in assuming that your experience is the sum total of all programming tasks. The truth is that we have lots of programming languages because no single language or class of language can do all things equally well. There's a time and a place for a strongly typed, dynamic language. You simply haven't been exposed to the kinds of jobs where that's common, that's all.
Java is used for some of the most heavyweight web applications. My first experience with this was when I set up a Broadvision Java application server in 1997 which acted as an e-commerce portal, and I've been working with Java application servers since then, some on massively complex and trafficked sites. So we know Java application servers can handle the biggest and most complex of web projects, or at least, aside from C# (also mentioned) not much else comes close to being able to. So what about the small scale? Well, for someone like me who has a $10-20 a month web hosting account with one of the major vendors for such things like Bluehost, Dreamhost etc., they do not support any Java application servers, not even free and well-tested ones like Tomcat. If I could throw a Tomcat application server up on my Dreamhost account I'd do it in a second. Can you use Ruby on Rails for Dreamhost or Bluehost? Yes. Python via Django on Dreamhost? Yes. Python/Django on Bluehost? It's a convoluted process I've heard, but yes. Due to this, my sites right now are mostly PHP-based, and sometimes PERL-based. I personally would have more fun doing stuff in Java than PHP, but they don't offer Java Tomcat so I wind up doing stuff in PERL and PHP. I use them instead of Java because of that limitation, not because one is more fun than another.
As a matter of fact, I don't bother with all of those inner classes, anonymous or otherwise, to attach event handlers to menus, buttons, and mouse actions. I use java.beans.EventHandler to establish these connections. EventHandler uses Reflection under the hood to pull this off. So you can get duck typing and dynamic dispatch without using the ugly Reflection API syntax.
Java tools are useful in the same way as a wooden stump is useful. It's better than nothing, but I'd rather keep my actual leg.
That's only half true, for some aspects of the language tools and frameworks improve things that are made syntactically easier in other languages. As this quote indicates:
"There are only two hard problems in Computer Science: cache invalidation and naming things."
-Phil Karlton
Naming things is very important... and so great refactoring tools are also useful. More dynamic programming languages make some algorithmic tasks simpler, but refactoring tools makes naming the things you are working with simpler and there is great value in that too. Especially when working with many other people on a project.
That's what he really speaks of when he talks about a language plus a great IDE... from his point of view, your inability to use really advanced refactoring tools is every bit of much a wooden leg. You just have one on the other stump.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
If you use one of these two languages you'll very quickly find that when a question occurs to you at this point in time you can usually go to StackOverflow, begin typing your question, and find an answer without completing the submission process. I would like to suggest that this is because these are two of the most widely-used languages in the world, but I wouldn't want to be accused of being a corporate whore again. Weekend or no, very few unanswered questions exist about a widely used language after a while.
I generally do smaller projects (say, 4-5 man month projects, done in 90 periods... so I do a lot of the coding, bringing in db or web guys as needed.)
I have the luxury of doing things any way I want, but I don't have the luxury of doing anything I want.
So, if it is something that needs to be on a Windows platform, I pick C#. This is because I can get the most done the fastest. Ok, so it won't run on a non-windows platform well. Meh.
At the other extreme, hand-coded assembly language was the only choice. When you have perform FFTs as fast as possible, to the point where you have to prevent a cache flush, and need to keep the multi-stage floating point pipeline full... Ok, so it won't run on another CPU well, if at all. Meh.
Aside from the assembly coding, I tend to find that my personal projects are usually most productively done in the same high-level language that I am using professionally at the moment.
This issue is a bit more complicated than you think.
Perl at work, Common Lisp for hobby projects.
And I can, and do, work with vi and Emacs!
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.
Maybe, or it shows that C# and Java are languages used by professionals in the real world whereas Python and Ruby are only suitable for small amateur projects.
Some "Gian" answered that in the _first_ comment [1] to said blog post so I will just quote him/her in full:
(I already posted this on the thread on HackerNews, but I decided to add it here as well for the purposes of discussion):
This seems to assume a fixed number of programmers, all of whom program during the week and at the weekend.
My guess would be that it's much more likely to be two largely disjoint sets:
Professional programmers at work during the week, and amateur programmers who have other day jobs (e.g. school or non-programming jobs) who are more likely to be programming during the weekends.
If we assume that this is the case, then the data simply suggests that professional programmers are more likely to use C# and Java, whereas hobbyist/amateur programmers are more likely to use Python or Ruby.
This is just a hypothesis, but it is equally well supported by the data as the article's hypothesis:
"programmers choose to use languages like Python and Ruby for their personal projects, despite their weaknesses, because these languages are more fun to program in"
Which assumes that all professional programmers are also hobbyist programmers in the weekends, and that the numbers of amateur programmers are not significant enough to make an impact on search statistics.
[1] http://danlorenc.blogspot.com/2009/08/stackoverflow-experiment-results.html?showComment=1250369874824#c5965860415709029932
Why is only work "real"? I use OSS every day that's vital for my job and that's done by people in their spare time. BTW, I use Python at work and not Java or C# because they would be rubbish for what I need to do.
This is all just my personal opinion.
In my experience trying to do the same at our university, Matlab's performance is a fair bit better than Python's, except on the stuff that's handled by LAPACK, when the performance is about the same. Newer versions of Matlab also have pretty good support for multicore/parallel programming that's easy to set up. I've never heard of anyone experiencing a speedup when moving to Python, although I agree it's a really nice language.
As an aside, when you really want some good performance bits, f2py is really good and newer Fortran is almost exactly like Matlab, just compiled with really efficient compilers (this is how I solve my performance problems in Python).
Languages aren't inherently fast -- implementations are efficient
It is as it always has been: the right tool for the job.
The kinds of at home projects someone does are the kind for which Ruby and Python (and PHP) are optimized for. Why? Because they themselves evolved to the directions of the userbase who were already doing those kinds of projects. They have requirements, these languages meet them.
These languages do NOT quite meet the requirements of the projects that happen in the professional workplace, just like a $100 power-tool from Home Depot won't quite be the right thing involved when building a 10 story office. Integration with existing tools and already written software (a BIG, HUGE, DON'T EVER TRY TO REWRITE THE WORLD FROM SCRATCH AGAIN requirement), a history of professional support, perhaps a corporate name to back it up (and while /.'ers don't give Microsoft any respect, the rest of the world does, so deal). These are the requirements for professional software development.
"fun" never enters into it.
Ease of use, yes, but that ease of use is driven by what you intend to do with it. If you use the tool for the types of tasks for which it was designed, it is easy to use. If I try to get all transactional and cross-app integrated with PHP, it's a pain, unless I use a higher-level webservice abstraction. If I try to write a simple tiny blog-like webpage in Java, it's far too stressful because there are so many pieces involved that are necessary for more "mission-critical" work that I have to implement even though I don't care.
Right tool for the right job.
As it always has been.
"But remember, most lynch mobs aren't this nice." (H.Simpson)
-- Joe
Iwho has an unfilled python opening for more than 1 year?
If you delay pleasure infinitely, the pleasure will be infinite. (YM)
...that Java programmers have actual jobs, unlike Ruby programmers.
It might be that Python and Ruby are less used in business because of different strengths of those languages - and maybe in business companies don't want to adopt yet another programming language.
Apart from that I did intensive evaluation about 1-2 years ago and I found Java being the best overall option for most common development. Sure, such a conclusion may depend on the branch you are working - I am an allround developer and not a driver programmer or pure web developer.
And as I wrote in other places also - I think just looking at the core language features is barely enough when thinking of what language to use for your next project. There are 3rd party libraries, IDE (features), ntegration options, other development tools and so on that should be taken into consideration also.
Furthermore I think companies will not switch to different languages just because it seems to be more fun. The requirements for a home or private (mostly smaller) project are different than for business projects. Nowadays in IT you get so easily a mess of "legacy systems" to maintain that I guess companies don't like the adoption of many different programming languages also. - Talking of Python and Ruby I think there will be a rising of Scala then also soon. This somehow leads me to http://www.ddj.com/architect/184413224 and I recall a lot of times when me, friends or others thought of another programming languages being THE new language that can be used to solve even the hunger in the third world.
It seems that more people give Python and Ruby a try which is interesting to know but does not necessarily means that those languages are the languages of the future.
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.
This isn't necessarily true. How many of you choose your language based on how fun it is? I choose mine on practicality. I'm working and I just got out of college. All of my weekend projects are written in languages I do not know, as I'm trying to get a little bit of experience with them all. Since I haven't encountered Python or Ruby at work, they would be good choices. All of my work projects are in older languages- and I don't really have time to program my weekend projects on the weekdays.
Showing that these languages are used more frequently on weekends doesn't indicate fun. Its a reasonable speculation, but nothing conclusive.
BTW, I hope time zones were taken into account. For example, if the weekend questions were posted from a timezone in which the weekend had not begun. In other words, make sure that no geographic/regional preference skewed that data.
It's quite a stretch to make such an assumption, and I'm disappointed that it's /. front page worthy.
As a professional programmer, my weekend computing time is usually spent catching up on articles. I try to avoid thinking about work as much as possible, unless I get an "aha" moment, or a major issue comes up (which thankfully is rare).
I would imagine other possible explanations of this behavior to be:
1) People who are not professional programmers (e.g. sysadmins, tinkerers, etc...) prefer the languages that forgo things like compile steps, strict typing, etc...
2) People who are rapid prototyping ideas use scripting languages
3) People who are trying to get "home server open source projects" like photo apps, forums, etc... running or enhanced are asking the questions.
Not to say the scripting languages are bad, they definitely have a place, but IMO the maintainability and quality of languages like Java are far more important when your risking more than personal time.
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?
You can also conclude that Python and Ruby are great for rapid prototyping.
No, I will not work for your startup
I hope that Java and C# ASP.NET programmers take this to heart - rewriting their sites in Ruby after the first implementation went way overbudget and looked like shit is a very profitable business...
C# and Java are great languages, as long as they aren't used for generating web sites. I love C#, but I took a few looks at ASP and ran as fast as I could. All it does is take a simple thing (HTTP) and make it very complicated.
IMO, once you understand how the web works, ASP just gets in the way.
No, I will not work for your startup