C# and Java Weekday Languages, Python and Ruby For Weekends? 389
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."
What about Perl? (Score:5, Funny)
Re:What about Perl? (Score:5, Funny)
Of course. What exactly did you think
means?
Re:What about Perl? (Score:5, Funny)
Re: (Score:3, Interesting)
Re:What about Perl? (Score:4, Insightful)
Re: (Score:3, Informative)
Also, Perl has a few dedicated sites for language questions. PerlMonks comes to mind, for instance. It gets fairly high visibility in search results, so it's likely to attract more users, instead of them going to a general programming website.
Re: (Score:3, Informative)
Re: (Score:3, Insightful)
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.
Re:What about Perl? (Score:5, Funny)
Re: (Score:3, Funny)
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?
Having read Perl, I'm pretty sure Perl programmers simply keep typing regardless.
Re:What about Perl? (Score:5, 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.
Re:What about Perl? (Score:5, Funny)
Re:What about Perl? (Score:4, Funny)
What is wrong with the use his use of caps?
I think it is very readable as is.
I too see NOTHING wrong with HIS use of CAPITALIZATION.
Re: (Score:2)
Shouldn't that be POSTGRESQL, WINDOWS, MAC and LINUX? :P
I think you're doing it wrong.. (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.
Grails and Groovy (Score:4, Interesting)
Re: (Score:2)
Re: (Score:2, Interesting)
Groovy however i find not as amazing. Specially with all inconsistencies that \type annotation\ bring to the table.The humongous stacktraces are a sore in the eyes and complicate debug. The current IDE support is lacking but rapidly improving with SpringSource team efforts(STS2.1 has a pretty decent groovy&grails support).
There's a lot of roo
Re: (Score:2, Insightful)
Java may not be fun or sexy, but on the other hand it is intended to be strict to make it easy to maintain in the long run.
The problem is that Python & co are more like Basic than anything else (it's a lot like dressed-up classic Basic) and that the strictness is missing which in turn means that what one person has written is hard to maintain by another person. This is especially hard if dynamic typing is used.
The point behind statically and strongly typed languages is that you will catch a large number
Re:I think you're doing it wrong.. (Score:5, Insightful)
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?
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.
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.
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.
Re:I think you're doing it wrong.. (Score:5, Informative)
Re: (Score:3, Insightful)
Well, it depends on what definition you take. The Dragon book, which is pretty much the standard CS book on compilers, defines strongly typed as "a language where type errors cannot occur at runtime". With this definition, Python is certainly not strongly typed.
Re: (Score:3, Informative)
The Dragon book, which is pretty much the standard CS book on compilers, defines strongly typed as "a language where type errors cannot occur at runtime". With this definition, Python is certainly not strongly typed.
Neither is Java.
Re: (Score:3, Insightful)
And when a type check occurs at runtime it's a bomb in the code waiting to go off at the most inconvenient moment ever.
The cost of finding bugs in a solution is raising exponentially with each stage in the application process of compile-link-execution.
You may claim that those problems should be rectified when running tests, but that also means that you have to verify that you have covered every execution path leading to every case where there may be an error.
Re:I think you're doing it wrong.. (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).
Re: (Score:3, Insightful)
C++ is like a double edged sword. In the hands of an idiot, it will let you create catastrophic type safety failure.
Then again, in the hands of a true coding genius, multiple inheritance, polymorphism and dynamic casting can allow some truly ingenious coding.
Re:I think you're doing it wrong.. (Score:4, Interesting)
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.
Re: (Score:2)
Corrected that for you. And frankly, I do not know enough about Cobol, but you must have never seen Fortran real-life code.
Re: (Score:2)
Java may not be fun or sexy, but on the other hand it is intended to be strict to make it easy to maintain in the long run.
Most of Java's annoying verbosity is not due to its strictness. It could add closures, real method objects, collection literals, properties, and map/filter without giving up strong static typing.
Re:I think you're doing it wrong.. (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 [boost.org]. That comes at a cost of pretty steep learning curve which IMO is worth it.
Re: (Score:2)
Re:I think you're doing it wrong.. (Score:4, Funny)
I can write unmaintainable shitty Java code. The language doesn't prevent me from being a complete idiot.
Want to watch?
Re:I think you're doing it wrong.. (Score:4, Funny)
FAIL.
Re: (Score:2)
I find Java a lot of fun.
Re: (Score:2)
I find Java a lot of fun.
Ah, but how many other programming languages do you regularly use?
Re: (Score:2)
I find Javascript boring, PHP is fun too but it's ugly. Python is fun but I dislike the lack of braces and how it has to be formatted so I only it for small CLI stuff. But I think that comes down to how I learned programming as is the case with a lot of people. Their learning experiences will determine what they like.
Re: (Score:3, Interesting)
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
Re: (Score:2, Insightful)
... 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. ...
I think a good way of explaining this is to say that the Java way of doing things compartmentalizes the complexity of a system. This is great from a damage control perspective, but makes it very difficult for adding new features, because for that you need to be able to see the big picture.
Re: (Score:2)
I think a good way of explaining this is to say that the Java way of doing things compartmentalizes the complexity of a system.
Well, yes, but that wasn't quite what I was getting at. For instance, let's say I want to allow the user of my API to add a callback to an event like clicking a button. In Ruby, I could just use a block. In Java, I'd have to write an callback interface to mimic the functionality that is already built into Ruby.
Re: (Score:2)
Java is verbose, that is true. But in Java, the easy things and the hard things are equally verbose (which is great).
Comparing to Python: Maintaining Java is way easier because due to its strictness, great IDEs have been developed. Refactoring code, call hierarchies and so on are just not doable in Python.
I use both, but I understand why companies will stick to Java. I'd prefer a consistent Java repository over a pile of scripts any time.
Re: (Score:2)
But in Java, the easy things and the hard things are equally verbose (which is great).
I'd say that in Java, the easy things are verbose and the hard things are usually infeasible.
Comparing to Python: Maintaining Java is way easier because due to its strictness, great IDEs have been developed. Refactoring code, call hierarchies and so on are just not doable in Python.
There are refactoring tools for Python, but it's true that they are not as comprehensive as the ones for Java. However, refactoring in a dynamic language like Python or Ruby is, in my experience, less important than it is in Java. In Java, you're dealing with a lot of verbose source code with a rigid class structure spread across a number of files. In Python or Ruby, you're dealing with a small amount of concise sou
Re: (Score:2)
There are refactoring tools for Python, but it's true that they are not as comprehensive as the ones for Java. However, refactoring in a dynamic language like Python or Ruby is, in my experience, less important than it is in Java.
Well, I disagree with that. Its easy to write unmaintainable code in any language. Unfortunately, as the grandparent points out, in languages that aren't as rigid as Java, its more difficult to fix unmaintainable code, since so much about the program is inferred at runtime. This makes static analysis for bugs and common refactoring patterns almost impossible, since each file of the source code is much less independent of other files.
Of course, the easiest way to fix unmaintainable code is to not write it in
Re: (Score:2)
Java code is usually larger than code in other languages, true.
But currently Java has the best tools in existence. IntelliJ IDEA is the best IDE out there.
In fact, power of Java tools is so great, it can argued that Java+IDE is in fact a higher-level language. For example, C# has LINQ for statically-typed queries checked at compile time, Java has nothing of that sort in the core language. However, "edit-time" inspections in IDEA provide even better support for checking queries: http://files.rsdn.ru/37054/HQ [files.rsdn.ru]
Re: (Score:3, Insightful)
In fact, power of Java tools is so great, it can argued that Java+IDE is in fact a higher-level language.
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.
In the same way, I'd prefer a language with lambdas, macros, dynamic loading, immutable fast data structures and homoiconicity. Java's IDEs go a long way to making Java bearable, but it can't compare with better designed languages.
Re: (Score:3, Insightful)
Complexity is not really all that related to size. It's more about readability and predictability--hidden surprises, how long it takes you to figure out what a single line is doing, and how long it takes you to find out what a single method is doing.
So if you use those parameters, Java may actually come out as more readable since javadocs are so well used, the tools tend to bring up docs on over, there are no surprises in the syntax, etc.
I actually enjoy working in it as well. I'm pretty good at factoring
REFACTORING (Score:5, Insightful)
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.
Re: (Score:2)
Which is why, to my mind, C is still the best overall language. Yes, it doesn't give you the hand-holding that other languages do, and you can get yourself into a helluva lot of trouble if your sloppy or inexperienced, but at the end of the day, it, and a fair number of the other procedural languages, to my mind, are simply more malleable languages. I know that the OOP war is pretty much dead now, with the OOP languages seemingly having one the day, but not everything is a windowing event.
The thing I love
Re: (Score:2)
Which is why, to my mind, C is still the best overall language. Yes, it doesn't give you the hand-holding that other languages do
It also lacks a lot of the functionality other languages have.
Re:I think you're doing it wrong.. (Score:5, 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.
Re:I think you're doing it wrong.. (Score:4, Interesting)
It always seemed to me that both approaches have their place, and I would also argue that both are sometimes used inappropriately.
WWTBD? (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?
Re:WWTBD? (Score:5, Funny)
No, it clearly shows that shops using C# and Java employ lazy bastards that don't work on weekends ;)
Re:WWTBD? (Score:4, Funny)
Re: (Score:2, Funny)
I think it's that Java and C# make more sense when the drinking starts, but Python and Ruby make less.
Re: (Score:3, Insightful)
It is.
Dynamic languages are fast and fun, but writing maintainable code in Ruby or Python takes an absurd amount of time and discipline. Take the following real-world, not-at-all-uncommon example. Imagine you have the function "get_results", and you want to quickly determine what all the parameters do. So you have a look at the code:
Not all projects should be done in C# or Java (Score:3, Insightful)
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 str
Re: (Score:3, Interesting)
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) re
Re: (Score:2)
"Or the more obvious, professionals use what they are paid to use at work [...]"
Well, I didn't mean to imply that the boss would come to the right conclusion. I was merely speculating what conclusion the boss might come to.
Not necessarly "more fun to use' (Score:5, 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.
Programming lanugages - just like mullets (Score:4, Funny)
Re:Programming lanugages - just like mullets (Score:5, Funny)
The implications (Score:2)
If you are making a web page, it will once again depend what kind of web page you are making. Java real
Re: (Score:2, Informative)
Really? You think that's what it means? (Score:5, Insightful)
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?
Re: (Score:2)
Presumptuous, yes, but also probably more accurate.
Re: (Score:2)
Nothing, it you're sufficiently determined to think so.
Ghaaaaaa???? (Score:5, Insightful)
Re: (Score:2, Informative)
Fool! You have completely misinterpreted the data. Python/Ruby users are geniuses 5/7 of the time, only requiring help 2/7 of the time. C#/Java coders, on the other hand, have the reverse syndrome. Therefore, the intelligence of Python/Ruby coder : Java/C# coder is 5:2.
So switching from C# to Python intrinsically raises your intelligence 150%!
Bad Conclusion (Score:5, 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.
Re: (Score:2)
Perhaps this only indicates that Java and C# are used more by professionals and Python and Ruby are used more by amateurs.
BY JOVE! I think you nailed it!
"Fun" is not a criteria in my book (Score:3, Insightful)
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.
Re: (Score:2, Interesting)
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.
I have a different conclusion (Score:4, Funny)
Re:I have a different conclusion (Score:5, 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.
Re: (Score:2)
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.
So Java/C# people start drinking early in the morning, and proceed with harassing random women on the street?
Even if you were into booze & partying lifestyle, you could still get a lot of hacking done before the evening starts.
Re: (Score:2)
Whereas those of us who are married spend the weekends drinking and trying to get pussy.
(Just joking, dear)
Re:I have a different conclusion (Score:4)
Python and Ruby are the tools of choice when working on a strict deadline while getting a blowjob and having a gun pointed at my head. And yes, this kind of thing predominantly happens on weekends.
incorrect deduction (Score:3, Insightful)
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.
Re:Java and Eclipse are both Open Source (Score:2)
Java and Eclipse are free (Score:2)
Re: (Score:2)
automatically equating weekend work with fun is just poor science
People do all sorts of unfun things on the weekends: cleaning the gutters, upgrading Windows, scrambling to meet a work deadline because you picked the wrong language or environment for your project...
Sounds about right (Score:3, Insightful)
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.
Meow meow meow (Score:2)
Willie Sutton on why he robs banks. (Score:4, Interesting)
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
Re: (Score:3, Insightful)
Was this post meant to illustrate the problem with C#, or just how big of a cunt you are?
Re: (Score:3, Insightful)
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, en
Python Matlab (Score:5, 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
Re:Python Matlab (Score:4, Interesting)
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.
More work on weekends != more fun (Score:2)
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.
what?? (Score:2)
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.
Not exactly Sherlock Holmes (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.
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.
Bad math. (Score:2)
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.
bad summary... (Score:3, Interesting)
"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 use Python during the weekdays (Score:3, Insightful)
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.
i just don't fit in (Score:2)
for me, it's PHP during the week, and Objective C in the evenings and weekends...
Old rule: Right tool for the job! (Score:3, Insightful)
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.
No question about it. (Score:2)
Java at work but when I get home it is all about something enjoyable to code with, python!
Willie Sutton Redux (Score:3, Insightful)
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
what sanctimonious crap (Score:3, Interesting)
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.
Re: (Score:2)
I sure wouldn't be doing Python (gack, too verbose, might well be using C or Java) or Ruby (slow, slow, slow).
Lua less verbose than Python? Citation/code example needed.