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."
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.
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!
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.
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.
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
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.
Maybe Perl programmers don't post questions on a web site, they just write code and read the docs when they don't know something?
I am TheRaven on Soylent News
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.
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.
So, I guess the take-home lesson from this is that C#, Java, Python and Ruby attract the kind of person who doesn't look in the right place for a solution to a problem. In hindsight, I could probably have worked that out...
I am TheRaven on Soylent News
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
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.
While a perl user will get almost all answers answered by "man perl" (and the numerous other man pages which the main perl man page will tell you about) or "perldoc", and the few remaining ones by reading the camel.
I could also be mentality. If you have a personality type making it common to ask others for assistance, you might not be the type who would pick perl.
But really, William of Ockham tells me that those doing this "study" were monitoring the forums they themselves were familiar with.
Wonderful. In other words, you will turn down any experienced Linux guy if he just happens to say that Windows doesn't really suck that much, and admits to having used it once in the last 3 years?
Sounds like your business is less about earning money, and more about proving some point.
Not that anyone with .NET or generally Windows experience would be bothered at all, though - there are more than enough well-paid jobs for them anyway. But so long as it helps you feel like the Guy Sticking It To The System, enjoy it, and have fun.
Was this post meant to illustrate the problem with C#, or just how big of a cunt you are?
Anyone can "stand up for what they believe", but it takes a very brave individual to change what they believe. - Loundry