×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

C# and Java Weekday Languages, Python and Ruby For Weekends?

timothy posted more than 4 years ago | from the like-a-commercial-for-light-beer dept.

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

cancel ×
This is a preview of your comment

No Comment Title Entered

Anonymous Coward 1 minute ago

No Comment Entered

389 comments

What about Perl? (5, Funny)

Mordok-DestroyerOfWo (1000167) | more than 4 years ago | (#29077797)

Where does Perl fit into all of this? Is that at night when the leather and chains come out?

Re:What about Perl? (0)

skwirl42 (262355) | more than 4 years ago | (#29077919)

Maybe Perl is dead. Or people like generating line noise throughout the week.

Re:What about Perl? (4, Interesting)

ducomputergeek (595742) | more than 4 years ago | (#29077977)

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? (4, Funny)

K. S. Kyosuke (729550) | more than 4 years ago | (#29078117)

And judging from your gratuitous use of capital letters, I guess you're writing all your code on punch cards.

Re:What about Perl? (0)

Anonymous Coward | more than 4 years ago | (#29078385)

And judging from your gratuitous use of capital letters, I guess you're writing all your code on punch cards.

What is wrong with the use his use of caps?
I think it is very readable as is.

Re:What about Perl? (3, Funny)

arevos (659374) | more than 4 years ago | (#29078423)

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:What about Perl? (3, Insightful)

TheRaven64 (641858) | more than 4 years ago | (#29078167)

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 think you're doing it wrong.. (5, Insightful)

Anrego (830717) | more than 4 years ago | (#29077809)

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 (3, Interesting)

Foofoobar (318279) | more than 4 years ago | (#29077857)

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.

Re:Grails and Groovy (1)

mgkimsal2 (200677) | more than 4 years ago | (#29078129)

FWIW, there's still a load of XML config files (you probably already knew that!) it's just that following the convention of Grails they're automatically handled for you. There's probably fewer than an equivalently functional straight Java app, but there's still quite a few XML files - more than I care to see. Still your point about discovering fun with Groovy and Grails is well taken. They were fun enough to inspire http://groovymag.com/ [groovymag.com] (shameless plug!) :)

Re:Grails and Groovy (0)

Anonymous Coward | more than 4 years ago | (#29078469)

What load of xmls? I've put into producting 3 mid-sized grails apps and the only xml I've seen is from the legacy WS intefaces exposed by with my clients current apps.

 

Re:I think you're doing it wrong.. (2, Insightful)

Z00L00K (682162) | more than 4 years ago | (#29077935)

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 of bugs during compilation, but if the type is assigned during runtime you get a lot of hidden bombs that are just waiting to go off.

That may be fine for a hobby project with only a few programmers, but if you insert a lot of programmers into a solution then you need all the support you can find from the language itself.

There are of course problems with Java too, but they are hardly solved with a script language. No language is perfect, but view it from the perspective of large systems. 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.

There is a reason why really old systems around have their code written even in Cobol, Fortran or Pascal. Languages that don't allow the user to write code that can contain too many unexpected bombs compared to C.

Re:I think you're doing it wrong.. (-1, Flamebait)

omb (759389) | more than 4 years ago | (#29078023)

You are and idiot!

Re:I think you're doing it wrong.. (4, Funny)

Anonymous Coward | more than 4 years ago | (#29078065)

> You are and idiot!

FAIL.

Re:I think you're doing it wrong.. (5, Insightful)

K. S. Kyosuke (729550) | more than 4 years ago | (#29078087)

The problem is that Python & co are more like Basic than anything else (it's a lot like dressed-up classic Basic)

Yes, because classic Basic had functions with named arguments, lexical scoping, call stack... Would you mind to share your insight into this with us? The line of reasoning that equates the so-called "classic Basic" with Python?

and that the strictness is missing which in turn means that what one person has written is hard to maintain by another person

There are various kind of strictness and I can't think of any that a) would ensure that one person understands another person's code and b) could not be broken in Java while being easily broken in Python, e.g.

The point behind statically and strongly typed languages is that you will catch a large number of bugs during compilation, but if the type is assigned during runtime you get a lot of hidden bombs that are just waiting to go off.

Java is hardly an example of a statically and strongly typed language. Most Java value types are actually object classes, and these are heap-allocated objects checked at runtime. Combine this with the fact that you can cast an expression to another type and you end up with runtime exceptions. Now if you were talking about ML or Haskell, that would be something different, but you haven't actually mentioned any good statically and strongly typed language in your post.

There are of course problems with Java too, but they are hardly solved with a script language.

Python, e.g, was not designed to be a scripting language. It can be used in that role with great success, but that does not make it one.

Re:I think you're doing it wrong.. (4, Informative)

Frequency Domain (601421) | more than 4 years ago | (#29078145)

You're confusing two orthogonal concepts - static typing and strong typing. Python, Ruby, Smalltalk, and lisp are all strongly typed, but the type enforcement occurs at runtime rather than compile time. C and C++ require that variables have compile time type definitions, but then can do all sorts of implicit conversions so they are statically but weakly typed.

Re:I think you're doing it wrong.. (2, Insightful)

gomoX (618462) | more than 4 years ago | (#29078237)

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:I think you're doing it wrong.. (1)

644bd346996 (1012333) | more than 4 years ago | (#29078421)

Which edition of the Dragon book are you referring to? The original one is just a compilers book from the 1980's, and it probably not a good reference for a discussion of modern dynamic languages, as non-static typing and weakly typed languages were beyond the scope of a traditional compilers course back then. If the new edition of the Dragon book (which covers JIT, garbage collection, and other concepts that have reached the mainstream since the 80's) still conflates static typing and strong typing, then you might have a case.

Re:I think you're doing it wrong.. (5, Informative)

ultrabot (200914) | more than 4 years ago | (#29078151)

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:I think you're doing it wrong.. (1)

orzetto (545509) | more than 4 years ago | (#29078181)

There is a reason why really old systems around have their code written even in Cobol, Fortran or Pascal. Languages for which you cannot find a decent programmer any more, and that companies are stuck with.

Corrected that for you. And frankly, I do not know enough about Cobol, but you must have never seen Fortran real-life code.

Re:I think you're doing it wrong.. (1)

bnenning (58349) | more than 4 years ago | (#29078189)

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.. (1)

644bd346996 (1012333) | more than 4 years ago | (#29078259)

Most of those are beyond the comprehension of the typical Java programmer, or at least, they can't see why they would be particularly useful. Hence why Java has gone so long without them. It is only in that past few years, with the JVM being clearly established as an important platform independent of the Java language, that there's been demand for support for things like that in the JVM and by extension in the lingua franca of the JVM.

Re:I think you're doing it wrong.. (4, Insightful)

loonycyborg (1262242) | more than 4 years ago | (#29078245)

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:I think you're doing it wrong.. (1)

Bralkein (685733) | more than 4 years ago | (#29078409)

Well I've been told that in languages like Ruby and Python, you are supposed to religiously write lots of unit tests. In doing this it is supposed that a lot of those "hidden bombs" as you put it can be caught and eliminated. It's certainly a nice idea, and that way of course a lot of the "checking code" would be moved away from the "doing stuff code" if you see what I mean. Of course, theory and practice are two different things, and it is for that reason that I have been considering untertaking a significant Ruby project to see if the application of thorough unit testing will allow me to produce code that is robust as the equivalent Java and more elegant and pretty to boot.

Re:I think you're doing it wrong.. (3, Funny)

digitalunity (19107) | more than 4 years ago | (#29078461)

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.. (2, Interesting)

arevos (659374) | more than 4 years ago | (#29078035)

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.

Re:I think you're doing it wrong.. (2, Insightful)

644bd346996 (1012333) | more than 4 years ago | (#29078163)

... 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:I think you're doing it wrong.. (1)

arevos (659374) | more than 4 years ago | (#29078269)

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:I think you're doing it wrong.. (1)

buchner.johannes (1139593) | more than 4 years ago | (#29078241)

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:I think you're doing it wrong.. (1)

arevos (659374) | more than 4 years ago | (#29078373)

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 source code with a flexible class structure that's only spread across a few files.

The very things that make Java easy to refactor, such as its restrictive syntax and static classes, tend to be the same things that increase the need for refactoring in the first place.

Re:I think you're doing it wrong.. (1)

Cyberax (705495) | more than 4 years ago | (#29078455)

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/HQLBug.png [files.rsdn.ru] (here a non-existing field and incorrect placeholders are highlighted).

Another example, Java doesn't have closures, but the can be effectively added by IDE: http://blogs.jetbrains.com/idea/2009/03/closure-folding-in-intellij-idea-9-maia/ [jetbrains.com]

So writing Java in a good IDE for me is better than writing code in a great language in a plain text-editor (i.e. ViM, Emacs, TextMate).

Re:I think you're doing it wrong.. (1)

644bd346996 (1012333) | more than 4 years ago | (#29078073)

Ideas that are "forced into a complex object oriented structure" don't produce maintainable code. It produces a codebase with a very good self-defense mechanism: there's so much to grok about how those ideas are being awkwardly expressed that you really have to sit down and study the code before you know where to begin modifying it. That tends to prevent coders inexperienced with that codebase from making major changes that don't break things in really obvious ways. Thus, code maintenance all but ceases to be a misnomer, as it is reduced to a fairly systematic process. This is in contrast to more dynamic languages, where code can often be written concisely enough that you can understand what a file does by reading just that file, and you can implement dramatic changes in behavior without correspondingly large changes to a large number of files.

I do agree with you that Java's standard library is very good, very massive, and very mature, and it's the centerpiece of a large, stable software ecosystem. This formula works for a lot of applications, but not nearly as many as it gets applied to. There's definitely something to be said for spending a bit more money to hire programmers smart enough to use a dynamic language well, because your development team will then tend to be faster and more flexible, and thus able to fix bugs or implement new features faster than the competition.

Note that the above is not intended to disparage Java itself so much as the typical way it is used in large projects conducted by large companies. A brilliant programmer can still do amazing things with Java, though as another poster has alluded to: why do it in plain Java when you can use a more dynamic, expressive JVM language and still get the benefits of all those third party libraries?

Re:I think you're doing it wrong.. (3, Interesting)

K. S. Kyosuke (729550) | more than 4 years ago | (#29078179)

I like the view expressed in the preface to Simply Scheme.

There are two schools of thought about teaching computer science. We might caricature the two views this way:

* The conservative view: Computer programs have become too large and complex to encompass in a human mind. Therefore, the job of computer science education is to teach people how to discipline their work in such a way that 500 mediocre programmers can join together and produce a program that correctly meets its specification.

* The radical view: Computer programs have become too large and complex to encompass in a human mind. Therefore, the job of computer science education is to teach people how to expand their minds so that the programs can fit, by learning to think in a vocabulary of larger, more powerful, more flexible ideas than the obvious ones. Each unit of programming thought must have a big payoff in the capabilities of the program.

It always seemed to me that both approaches have their place, and I would also argue that both are sometimes used inappropriately.

REFACTORING (5, Insightful)

TwinkieStix (571736) | more than 4 years ago | (#29078161)

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.

Re:I think you're doing it wrong.. (1)

MightyMartian (840721) | more than 4 years ago | (#29078165)

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 best about Unix are those C-like mini-interpreters like awk. I've rarely met a better tool than awk. I once used gawk to convert a 100,000 item mainframe-style inventory file over to comma-delimited files for import into a DOS-based point-of-sale system. The whole thing was done in may 12-20 lines of awk code. It ran damn fast, the resulting file only required a couple of lines to be further massaged, and bang, it was in there.

Re:I think you're doing it wrong.. (1)

arevos (659374) | more than 4 years ago | (#29078427)

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.. (4, Insightful)

StormReaver (59959) | more than 4 years ago | (#29078281)

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.. (0)

Anonymous Coward | more than 4 years ago | (#29078297)

The reason it's chosen is that all that extra code and restrictiveness makes for some very maintainable code.

This is complete and utter bullshit.

With the complexity of system we're building nowadays, Java is the ASM of our time. There is a truly insane amount of boilerplate in Java and it just adds to the mental overhead reading the code of any remotely non-trivial system.

Even worse, there is very little support for adding new levels of abstraction in Java.

(Yeah, I work in Java in my day job. No, I'm not bitter...)

WWTBD? (5, Insightful)

migla (1099771) | more than 4 years ago | (#29077817)

"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? (5, Funny)

lukas84 (912874) | more than 4 years ago | (#29077863)

No, it clearly shows that shops using C# and Java employ lazy bastards that don't work on weekends ;)

Re:WWTBD? (1, Informative)

Anonymous Coward | more than 4 years ago | (#29077877)

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?

Or the more obvious, professionals use what they are paid to use at work, and use alternatives on their own time. Which tells management a completely different tale.

Re:WWTBD? (1)

migla (1099771) | more than 4 years ago | (#29077925)

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

Re:WWTBD? (2, Funny)

LaissezFaire (582924) | more than 4 years ago | (#29077943)

<quote><p>"Show this experiment to your boss the next time you are selecting a programming language for a project at work."J</p><p>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?</p></quote>

I think it's that Java and C# make more sense when the drinking starts, but Python and Ruby make less.

Not necessarly "more fun to use' (4, Insightful)

Shados (741919) | more than 4 years ago | (#29077833)

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 (4, Funny)

boguslinks (1117203) | more than 4 years ago | (#29077835)

Java in the front, Python in the back

Re:Programming lanugages - just like mullets (5, Funny)

slarrg (931336) | more than 4 years ago | (#29077865)

You seem to be built wrong, my python is in the front.

Re:Programming lanugages - just like mullets (0)

Anonymous Coward | more than 4 years ago | (#29078475)

is that the Kate Goslin reverse mullet?

The implications (1)

phantomfive (622387) | more than 4 years ago | (#29077845)

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.

Re:The implications (2, Informative)

larry bagina (561269) | more than 4 years ago | (#29077905)

"ton of cash" == $0.00

Re:The implications (0)

phantomfive (622387) | more than 4 years ago | (#29078009)

By your comment, I'm guessing you've never actually made a website using aspx. In order to publish the website so it can be deployed by IIS, you must purchase the full version of Visual Studio. While it is true there is also an express version of visual studio which is free, the option to publish the website has been disabled.

On the other hand, if you know a free way to do it, I'd be interested in hearing it. To my knowledge there is none.

Re:The implications (1, Informative)

Anonymous Coward | more than 4 years ago | (#29078131)

XCOPY, anyone? http://www.15seconds.com/Issue/030806.htm

Re:The implications (1, Informative)

Anonymous Coward | more than 4 years ago | (#29078147)

Try Apache + mod_mono (Mono). There caveats therein is really how you write the application but
you don't need IIS. See: http://www.mono-project.com/ASP.NET

Re:The implications (0)

Anonymous Coward | more than 4 years ago | (#29078043)

Java really shines in large enterprise systems with lots of repetition.

Java is the CAUSE of most of that repetition - I wince for all the poor saps stuck in Java-land every time I read a Java example that's 75% get_something and set_something (along with 'import foobar' and java.blah.blah.blah.omfgThisVariableNameIsWayTooLongGetMeOuttaHere). It seems like Java's growth has been dictated over the last 10 years or so by the IDE makers, to further justify the need for their tools by making a language so unwieldy that only other programs can write it.

And let's not even discuss the (ab)use of XML for absolutely everything. For crying out loud, Java-ish thinking gets you things like HTTP via SOAP via HTTP!

Houston, we have a problem... (0)

Anonymous Coward | more than 4 years ago | (#29077855)

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.

Really? You think that's what it means? (5, Insightful)

bonch (38532) | more than 4 years ago | (#29077897)

This means that more programmers are using Python and Ruby on the weekend for their personal projects, showing that these languages are more fun to use.

What's to stop me from coming to a different conclusion, such as that Python and Ruby are toy languages not meant for serious projects? It would be just as presumptuous, wouldn't it?

Re:Really? You think that's what it means? (1)

K. S. Kyosuke (729550) | more than 4 years ago | (#29078193)

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?

Nothing, it you're sufficiently determined to think so.

Re:Really? You think that's what it means? (0)

Anonymous Coward | more than 4 years ago | (#29078221)

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

Ghaaaaaa???? (5, Insightful)

TiggertheMad (556308) | more than 4 years ago | (#29077907)

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

Re:Ghaaaaaa???? (2, Informative)

Anonymous Coward | more than 4 years ago | (#29078223)

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 (4, Interesting)

malevolentjelly (1057140) | more than 4 years ago | (#29077929)

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:Bad Conclusion (1)

Frosty Piss (770223) | more than 4 years ago | (#29078033)

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!

Re:Bad Conclusion (0)

Anonymous Coward | more than 4 years ago | (#29078239)

Besides students and school kids, are there really a significant number of "amateur" developers out there who aren't actually, y'know, professionals?

I use Python for my personal projects, and C++ by (real, technical) necessity at work. But working on personal stuff doesn't magically transform me from professional to amateur developer.

Re:Bad Conclusion (0)

Anonymous Coward | more than 4 years ago | (#29078287)

But working on personal stuff doesn't magically transform me from professional to amateur developer.

No, but using Python does.

"Fun" is not a criteria in my book (2, Insightful)

AdamInParadise (257888) | more than 4 years ago | (#29077933)

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:"Fun" is not a criteria in my book (1, Interesting)

arevos (659374) | more than 4 years ago | (#29078093)

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.

Re:"Fun" is not a criteria in my book (0)

Anonymous Coward | more than 4 years ago | (#29078291)

Why do we have such low expectations of software developers? Anyone with a CS degree and some intelligence and interest should be able to achieve competence with a totally new language in a matter of months. There are plenty of developers out there who may not be Google-level geniuses, but they sure as hell aren't just Java code monkeys. Python is big these days, and it's not a remotely difficult language to learn.

I have a different conclusion (4, Funny)

larry bagina (561269) | more than 4 years ago | (#29077965)

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.

Re:I have a different conclusion (4, Funny)

NewbieProgrammerMan (558327) | more than 4 years ago | (#29078177)

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:I have a different conclusion (1)

ultrabot (200914) | more than 4 years ago | (#29078361)

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:I have a different conclusion (1)

jimicus (737525) | more than 4 years ago | (#29078405)

Whereas those of us who are married spend the weekends drinking and trying to get pussy.

(Just joking, dear)

incorrect deduction (2, Insightful)

prgrmr (568806) | more than 4 years ago | (#29077975)

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.

Re:Java and Eclipse are both Open Source (1)

TwinkieStix (571736) | more than 4 years ago | (#29078175)

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.

Re:Java and Eclipse are both Open Source (1)

RCanine (847446) | more than 4 years ago | (#29078473)

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.

Java and Eclipse are free (1)

TwinkieStix (571736) | more than 4 years ago | (#29078311)

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.

Re:incorrect deduction (1)

Flwyd (607088) | more than 4 years ago | (#29078321)

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 (2, Insightful)

Lemming Mark (849014) | more than 4 years ago | (#29077991)

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.

Level of detail (1)

thoughtfulbloke (1091595) | more than 4 years ago | (#29078005)

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.

Meow meow meow (1)

porkThreeWays (895269) | more than 4 years ago | (#29078011)

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.

Willie Sutton on why he robs banks. (3, Interesting)

wdhowellsr (530924) | more than 4 years ago | (#29078029)

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

I'm a contract .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".

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

Blame it on management (0)

Anonymous Coward | more than 4 years ago | (#29078039)

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.

Python Matlab (4, Interesting)

stokessd (89903) | more than 4 years ago | (#29078045)

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 (3, Interesting)

Manhigh (148034) | more than 4 years ago | (#29078431)

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 (1)

Hungus (585181) | more than 4 years ago | (#29078049)

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?? (1)

flynt (248848) | more than 4 years ago | (#29078107)

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 (4, Insightful)

93 Escort Wagon (326346) | more than 4 years ago | (#29078137)

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. (1)

Aladrin (926209) | more than 4 years ago | (#29078157)

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.

Can we say correlation does not imply causation? (1)

Nohbdy001 (265019) | more than 4 years ago | (#29078159)

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

bad summary... (2, Interesting)

jgarra23 (1109651) | more than 4 years ago | (#29078185)

"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 (2, Insightful)

thaig (415462) | more than 4 years ago | (#29078199)

...because the non-programming parts of the job take a lot of effort and I'm not going to waste time on Java's overdesigned class system.

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.

Ridiculous (0)

Anonymous Coward | more than 4 years ago | (#29078267)

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.

Old rule: Right tool for the job! (2, Insightful)

Hurricane78 (562437) | more than 4 years ago | (#29078283)

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.

You want fun? (0)

Anonymous Coward | more than 4 years ago | (#29078285)

I sure wouldn't be doing Python (gack, too verbose, might well be using C or Java) or Ruby (slow, slow, slow).

Use Lua [lua.org].

Re:You want fun? (1)

ultrabot (200914) | more than 4 years ago | (#29078329)

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.

No question about it. (1)

codepunk (167897) | more than 4 years ago | (#29078359)

Java at work but when I get home it is all about something enjoyable to code with, python!

Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Sign up for Slashdot Newsletters
Create a Slashdot Account

Loading...