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."
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.
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.
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.
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
but imo nothing comes close to Java in the maintainability department.
I disagree, for two reasons. First, as Java is a very restrictive and verbose language, projects written in Java tend to use more lines of code than projects written in, for instance, Python. I find that it's much easier maintaining a small amount of complex code than it is to maintain a large amount of simple code.
Second, you cannot reduce the complexity of a project by restricting the complexity of the programming language you write it in. By not supporting complex types or lambda expressions Java becomes a more straightforward language, but the cost is that Java APIs are generally more complicated than equivalent APIs in other languages. Take a look at almost any library written in Ruby and contrast the API to an equivalent library in Java; 9 times out of 10, the Java API will a large number of methods and classes that the Ruby version can sidestep through the use of blocks and dynamic classes.
In my experience, Java is one of the least maintainable languages in widespread use.
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
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.
I agree with the gist of your post that it's easier to find Java developers than Ruby developers. But I find your use of the word "productive" a strange choice in this case. Wouldn't "maintainable" or "well-known" be better? Java may be many things, but I'm not sure it's particularly productive.
It always seemed to me that both approaches have their place, and I would also argue that both are sometimes used inappropriately.
Ezekiel 23:20
"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.
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
Of course if you take this line of thought seriously then you realise that Java and C# are the light options that don't really force you to do enough. If you were serious about being forced to be more explicit for the sake of maintainable code you would be using Eiffel, or Spec#, or JML abd ESC/Java2 with your Java, or SPARK-Ada, or writing specifications in B or Z. I'm betting you don't do any of that though because you view it as "too much work", even though many of those options (such as Spec# of JML) really aren't that much more work if you really are serious about robust maintainable code.
Craft Beer Programming T-shirts
Brian Kernighan would retort,
"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it."
C++ seems to be language of choice for geniuses to hang themselves these days.
120 characters isn't enough to explain it.
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
This is ridiculous...just b/c people use languages on weekends doesn't mean they're "more fun" and it certainly doesn't justify using them at work. It only means that people are using their weekends experimenting around with something new. Perhaps it's because personal projects aren't that large so they don't need the robustness of an enterprise language. There's tons of reasons TFA is flawed...
but have you considered the following argument: shut up.