Beta
×

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!

What Makes a Programming Language Successful?

timothy posted more than 6 years ago | from the users-programs-books-community dept.

Programming 1119

danielstoner writes "The article '13 reasons why Ruby, Python and the gang will push Java to die... of old age' makes an interesting analysis of the programming languages battling for a place in programmers' minds. What really makes a language popular? What really makes a language 'good'? What is success for a programming language? Can we say COBOL is a successful language? What about Ruby, Python, etc?"

cancel ×

1119 comments

Sorry! There are no comments related to the filter you selected.

The "un-success" of a language (3, Funny)

Slashdot Suxxors (1207082) | more than 6 years ago | (#23587607)

Is directly proportionate to the amount of /. posts talking down on it.

Fact.

Beards (5, Funny)

AioKits (1235070) | more than 6 years ago | (#23587621)

I thought it was the beards on the creator(s) of the language that determines the success?

Re:Beards (1)

AchilleTalon (540925) | more than 6 years ago | (#23587739)

Hum, you forgot the sandals colors which may contribute to the beard's effect.

Re:Beards (0)

Anonymous Coward | more than 6 years ago | (#23588173)

Berks all the way baby

Re:Beards (0)

Anonymous Coward | more than 6 years ago | (#23588059)

No No its the mustache [mongueurs.net] .

Off the top of my head? (4, Insightful)

steeljaw (65872) | more than 6 years ago | (#23587623)

Portability and scalability are what win it for me, I like to write my code once and it's got to be powerful enough to deliver a complex solution.

Re:Off the top of my head? (4, Interesting)

OrangeTide (124937) | more than 6 years ago | (#23587873)

I'm mainly a C hacker, but I don't get why people would prefer Python over Java. Dynamic typing where you can create new identifiers implicitly is pretty scary to me. I'm not even sure what Python offers over the dozens of other languages that preceded it.

Re:Off the top of my head? (5, Insightful)

SatanicPuppy (611928) | more than 6 years ago | (#23587971)

Well, it's got a better object model than Java, and it's a lot faster to code with. Java just isn't appropriate in every situation.

Python also plays well with C [python.org] , so it's often used in concert with C for interfaces, etc.

Re:Off the top of my head? (5, Insightful)

Tim99 (984437) | more than 6 years ago | (#23588125)

Er, the ability to do quickly knock off a project that can do heavy lifting with wrapped C Code - Without needing to incorporate a gazillion bytes of bloat?

Re:Off the top of my head? (5, Insightful)

amccaf1 (813772) | more than 6 years ago | (#23588133)

I'm mainly a C hacker, but I don't get why people would prefer Python over Java.
I'm having similar questions, only wondering why people would prefer Ruby over Java. I've had to start learning Ruby for a variety of reasons so I've been reading Ruby tutorials off and on for a week or so.

I don't think that Ruby is bad, not by a long shot. It's seems fairly decent and it doesn't seem to be lacking anything necessary. I'm just curious as to why someone would pick Ruby over some other language. I'm not quite understanding what the "killer app" of Ruby is. I'm not sure why this language had to be created.

My understanding is that the main reason for choosing Ruby is to use it with Rails (which I have not looked at yet). And yet it's rare for me to read a good word about Ruby on Rails.

Does anyone else get the impression that a lot of these newer languages are simply solutions that are looking for problems?

Re:Off the top of my head? (5, Insightful)

agrounds (227704) | more than 6 years ago | (#23587967)

Portability and development speed are what drive it for me. Most of what I code is for log parsing, network device configuration, and reporting. To that end, I have never seen a need to look too far beyond Perl. It does everything I need with very minimal effort and development time, even for reasonably complex projects. Still, when Perl code becomes too large to work with effectively even after breaking down individual tasks, I change languages.

I think the point is "which tool fits the current need best." Far too many people seem to want to use a hammer when a screwdriver would work better out of potentially misguided allegiances. Languages are no different than any other tool.

I suspect TFA is more 'overrated' than 'insightful' since it makes some gross generalizations, cites search results as indicators of popularity, and completely neglects some of the nicer features of the popular scripting languages.

I don't really get the Java hate around here (5, Insightful)

JohnnyBGod (1088549) | more than 6 years ago | (#23587633)

Java's well organized, has a great standard library and is (mostly) consistent with itself. Its only problems, as far as I can see, was that it was initially slow and that it marketed itself as a web language, when there were better choices for that.

Disclaimer: I've only coded in Java since 1.5.

Re:I don't really get the Java hate around here (2, Insightful)

Z00L00K (682162) | more than 6 years ago | (#23587691)

Which is when Java started to be really good.

Before 1.5 it was harder to avoid those dreaded ClassCastException:s that you could get from Lists and Maps.

But it's still the NullPointerExceptions left to take care of.

Re:I don't really get the Java hate around here (4, Insightful)

Chabil Ha' (875116) | more than 6 years ago | (#23587913)

ClassCastException and NPE are the easiest to avoid. With adequate unit testing, those are the easiest problems to find.

While Generics add a lot of protection by making your List strongly typed, using instanceof checks will protect your code when using a List.

Re:I don't really get the Java hate around here (1)

Z00L00K (682162) | more than 6 years ago | (#23588005)

What I really was after was the ability to catch the potential NPE:s already at compile-time.

Eclipse has some support for that, but it only works within a method, and not when returning a value or using a returned value, which means that there are probably a lot of code around with unnecessary null checks, which just adds overhead to applications.

But of course - testing will help, unfortunately that's not always applied.

Re:I don't really get the Java hate around here (1)

tepples (727027) | more than 6 years ago | (#23588163)

ClassCastException and NPE are the easiest to avoid. With adequate unit testing, those are the easiest problems to find.
So how do I make my compiler write (some of) the unit tests for me, in the same way that it writes the bytecode for me?

Re:I don't really get the Java hate around here (0)

hesiod (111176) | more than 6 years ago | (#23587723)

> is (mostly) consistent with itself

Are you serious? Where I work, we regularly use at least three Java applications, and each one requires a particular version of Java, none of which are the same. One of them requires Java 1.5, while another one will break completely if Java 1.5 is installed. It's a nightmare! And while yes, the version requirements may be the fault of the developers, the fact that it can happen at all is unacceptable.

Re:I don't really get the Java hate around here (1, Interesting)

Anonymous Coward | more than 6 years ago | (#23587823)

Heh, your story reminds me of how we had to abandon a specific Java application. It would only run on Java 1.4.2_04 (or something) and that version had some buffer overflow bug with image files. (You know that thing that Java is supposed to prevent? Ha!)

So the network security guys require all computers to be scanned for insecure software. This specific JRE gets tagged as insecure, and the machine gets dropped off the net until we "upgrade" Java.

Except that upgrading Java causes the application to crash. It will ONLY work with that one specific patch level of Java. (Yes, I tried.)

Since we were still in the trial phases, we just dropped the application and replaced it with another one that DIDN'T require Java. Problem solved.

Of course, I doubt the specific security flaw was actually an issue because this was a web service or something that shouldn't do anything with graphics. But arguing that is a losing battle, especially because it did have a Swing-based GUI somewhere.

So now I'm always wary about using Java applications, since they can easily get tied to a specific JRE and if that JRE has security flaws, you're SOL.

Re:I don't really get the Java hate around here (2, Insightful)

Anonymous Coward | more than 6 years ago | (#23587839)

Are you saying that dealing with different versions of C libraries is somehow easier?

Re:I don't really get the Java hate around here (3, Insightful)

hesiod (111176) | more than 6 years ago | (#23588109)

Dealing with specific libraries that usually only matter while creating the program itself (on the developer side) is completely different than requiring the end user of professional software to install one specific version of the client-side environment.

And the point of software is the usage, not the creation. So dealing with issues during creation is the developer's problem. It needs to be usable by the client.

Re:I don't really get the Java hate around here (4, Insightful)

Jack9 (11421) | more than 6 years ago | (#23587905)

the fact that it can happen at all is unacceptable.

Same with any interpreted language. PHP, Python, same problem if you are using deprecated accessors. Heck, even the MySQL connector worked differently in PHP3

Are you really suggesting that every time there's a new version they change the name of the language? What about changing the name of every program you write just because you altered the API? Why would you say it's unacceptable?

Re:I don't really get the Java hate around here (3, Interesting)

hesiod (111176) | more than 6 years ago | (#23588171)

> Why would you say it's unacceptable?

I am talking about the client here. Having a minimum JRE version is fine, but did the Java developers remove features from the language and not leave and backwards-compatibility hooks in it? That's the only reason I can see why a Java software package would require a version LOWER than "current."

If you write a new version of a programming language you created, and old programs do not work AT ALL, then you have done something wrong. Adding features, improving efficiency, etc is fine (great). Removing functionality does not make sense.

Re:I don't really get the Java hate around here (1, Informative)

Anonymous Coward | more than 6 years ago | (#23588017)

is (mostly) consistent with itself
With itself. As in, the language is (mostly) consistent with itself. If you're coding with it, (mostly) everything Just Works(tm) the way you expect it to once you've learned how a few areas work. Want to declare an internal class? Works the same as a normal class. Want to reference it elsewhere? OuterClass.InnerClass (so long as it's public). Want to extend that class? class Bingo extends OuterClass.InnerClass. Want to output it as a string? toString() is part of the base Object class, and once you see that, you realize everything has it. (mostly) Consistent with itself. That's not even getting into event handling (which is more the standard library and not the language, but still the same concept).

Yes, of course applications (which are not Java itself) may act strangely or crash entirely when jumping a major version of Java*, but what are you expecting? Win 3.1 apps can act a bit strangely under XP, XP apps may show some issues with Vista, gcc 3.2-made binaries can get all urpy over gcc 4.0-made libraries, and OS 9 apps need an entire emulation layer to run under OS X. Upgrades can break things. That is not news.

*: Well, okay, that's a bit of confusion from Sun's end. To most people, "Java 1.5" to "Java 1.6" implies a minor upgrade, when in fact it was a considerable amount of change involved.

Re:I don't really get the Java hate around here (4, Insightful)

CastrTroy (595695) | more than 6 years ago | (#23587789)

PHP is badly organized, has a long history of importing third party components for what should be included in the base, and is completely inconsistent with itself in many ways. Hasn't caused any problems in popularity for them. I would say by virtue of PHP and all the other popular languagues, that it should be easy to get started (free compilers and runtimes), that it should run on multiple platforms, and that it should be easy to install. Nothing gets you more popularity than millions of newbies trying your tool and being able to get it working that they continue to use it even when they get good, simply because it is what they are used to.

Re:I don't really get the Java hate around here (2, Insightful)

bjourne (1034822) | more than 6 years ago | (#23587999)

Disclaimer: I've only coded in Java since 1.5.
... Which suggests that you haven't coded for very long. It is not that Java is bad per se, it just that the competition beats it. Try Python, PHP, Ruby, Erlang, Bash, Lisp or any other really-high level language. You'll be pleasantly surprised and maybe you will also see why people dislike Java.

Re:I don't really get the Java hate around here (0)

Jack9 (11421) | more than 6 years ago | (#23588185)

Disclaimer: I 3 Erlang, it's the only functional language I "get" and as a side effect of learning it, I can read most LISP.

Erlang is pretty bad choice right now, which is partly why it's been relatively unsuccessful. Have you tried writing an application that uses a Database connection other than flatfile or mnesia (also terrible)? I am unable to access hardware (like an audio device) without using assembly, essentially writing my own driver, IN ERLANG. The term, "pulling teeth" comes to mind. Perhaps I'm a little rusty on my Erlang but I'm pretty sure nothing has changed in the last 2 years.

Java's not going to die (5, Insightful)

vivin (671928) | more than 6 years ago | (#23588047)

I just started at a new job at the beginning of this year after quitting from my last job where I barely got to do any programming. The place where I work now is a Java shop. I was getting back to Java programming after a hiatus of a few years. For the last few years I mostly doing Perl with a smattering of C (PHP and Javascript on occasion). My experience with Java was mainly from college and a few odd projects I did here and there. The language had changed quite a bit over the last few years and to be honest, I surprised myself by being happy to get back to it (I had some sort of vague dislike for it for a period of time).

The company sponsored a trip to JavaOne at San Francisco earlier this month, for the Dev Team. I also got to go. This was my first time at JavaOne. It was amazing, exciting, and I learnt a LOT of new stuff. The main thing I got from there was that Java, far from being a programming language, is also a platform. There are a lot of new things being built on TOP of Java. For example, Groovy [codehaus.org] , and JavaFX [javafx.com] . Java now has excellent support and frameworks to roll your OWN domain-specific languages.

Python and Ruby are not going to push Java out of the way. For example, you have mergers of Java with these languages (Jython and JRuby). Essentially you have Python and Ruby using Java resources and libraries. I think instead of "dying", Java is just going to evolve into a stable platform that lets you build stuff on top of it.

Re:I don't really get the Java hate around here (2, Informative)

hackstraw (262471) | more than 6 years ago | (#23588113)

I have some java hate, but java today is not the java of 1997. Its core class libraries are complete and I would assume consistant.

My first experiences with java were the stuff that ran like crap as the so called end-all-be all write once run anywhere GUI language. That is not true today. Java is now a middleware language. Its become glue, and more behind the scenes than it was back in the day.

So, what makes a programming language successful? Well, of course, its success!

No, seriously, today, a programming language becomes and _stays_ succesful if it meets these criteria. 1) Does it have a good user community and is is still used for new projects and not just "legacy" ones? 2) Does it have extensibility and interoperability? That is a BIG one. CPAN, libraries, JARs, APIs, all of those additional features determine a successful programming language.

Today, the most successful programming languages are FORTRAN (its a science and engineering thing, and its not going away tomorrow), C/C++, JavaScript, Java, python, .NET, perl, (does SQL fit in here?), and I guess some ruby, I have little exposure to ruby, and its the newest kid on the block I listed, so the jury is still out on that one.

Programming languages come and go. The way I see it, the real question, is how are we going to get any/all of the above languages take advantage of the trend towards distributed and SMP systems?

_NONE_ of the languages listed there do this particularly well, and there have been TONS of new languages to fix these problems, but to date, we are left with threads, OpenMP, and MPI, and some lesser known languages like Erlang, Titanium, High Performance FORTRAN (or did they give up on that one?), and the like.

I see programming going through a needed paridigm shift "Real Soon" (TM) to address these issues. Along with the development tools as well. Computers are bigger and more complex than they were yesterday, and the languages have not yet caught up to this complexity.

Maybe Ada will come back to life and fix all of this? I don't think so.

Re:I don't really get the Java hate around here (2, Interesting)

visible.frylock (965768) | more than 6 years ago | (#23588203)

Dont get the hate? It's the unnecessary complexity [slashdot.org]

Maybe this has gotten better since the time I was trying to get into Java (~3-4 years ago). But, for better or worse, first impressions are really important. And this kind of code is exactly what I think of when I think Java. I have some really bad memories related to Java (Swing, AWT, type conversion exceptions, Gui layouts (looking at you gridbox)). Some will leave and never come back. Some will try to come back and see if things have improved. Of those, some will return and some won't find anything to persuade them to change. Related to the topic at hand, the life cycle of a language and how it's managed can have a huge impact on the size, scope, and makeup of its userbase.

Oh, and I tried to blockquote that code here but the lameness filter stopped it ;)

grmbl. (4, Funny)

thhamm (764787) | more than 6 years ago | (#23587635)

What Makes a Programming Language Successful?

those who don't know how to use it.

facial hair (1, Redundant)

fpgaprogrammer (1086859) | more than 6 years ago | (#23587637)

the answer is facial hair [slashdot.org]

Re:facial hair (1)

Eli Gottlieb (917758) | more than 6 years ago | (#23588179)

But of course! I'm trying to design an advanced systems-programming language that will let me kernel hack with an advanced type system and functional features, so of course I'm growing out my facial hair. I'm going for a sort of "Kobi Shimoni" look -- a beard with the elegance of a great programming language.

Back to Basic (3, Interesting)

Z00L00K (682162) | more than 6 years ago | (#23587649)

Python et.al. are all languages that we who were there in the 80's remember with a combined horror/amusement when we had to write programs in Basic.

The lack of type-safe variables, the possibility to write unreadable code, hunt for bugs that are caused because two files are incompatible. Interpreting languages has been tried before, and they are never working for large projects that shall live for a long time and has to be maintained by a lot of different programmers.

Java may be a bastard of Ada, but at least it has some type checks built in. However, it's a bit weak on the side where the user can't control memory management in a good way. Another weakness is that methods can't be declared to allow/disallow the return of 'null' values to be detected at compile-time.

Re:Back to Basic (4, Interesting)

SatanicPuppy (611928) | more than 6 years ago | (#23587849)

I think you've got Python confused with Perl. Python was first released in 1991, and one of its core tenets is a formatting structure that makes it a lot more difficult to write illegible code. So I'm just going to assume you were talking about Perl, and I'm going to assume that you're not as ill-informed as it appears.

Perl is what it is: A quick and dirty language for generating practical programs. It's ugly, it's hard to maintain, and it makes a lot of peoples lives a lot easier by making operations that are extremely complicated in other languages quite trivial to code. Comparing it to C is not an apples to apples comparison. Comparing it to BASIC is like comparing a Pineapple to a Raisin.

Re:Back to Basic (0)

Anonymous Coward | more than 6 years ago | (#23588045)

Comparing Python to BASIC is like comparing a Pineapple to a Raisin.
Fuck [xkcd.com] pineapple [xkcd.com] .

Re:Back to Basic (1)

Z00L00K (682162) | more than 6 years ago | (#23588071)

I have seen Python, and it's still a flashback to original Basic code. You can easily read the statements, but the type safety is really a pain since that can cause headaches for ages to come when doing maintenance.

OK, you won't need line numbers, but that's about it... Line numbers were abolished by Basic already in the late 80's, and the similarities are too many...

Essentially this means that Python isn't really feasible to write any larger system and expect it to hold water over several years, or even decades.

Re:Back to Basic (1)

ardor (673957) | more than 6 years ago | (#23588121)

Then you didn't understand Python.

Just look at pythonic code, and compare it with Basic. These two don't share anything.

Re:Back to Basic (0)

Anonymous Coward | more than 6 years ago | (#23588189)

I am fairly certain python is strongly typed.

It's dynamically typed though..?

Re:Back to Basic (0)

Anonymous Coward | more than 6 years ago | (#23588119)

Python is type safe.

Do not mistake static typing with type safety.

Apart from this error, the rest of the argument against dynamic languages is pretty weak at best...

I can write unreadable code in C++, and file compatibility has nothing to do programming languages.

You're also criticizing Java because it doesn't let user control memory... in other words you're criticizing Java because it is type safe...

Re:Back to Basic (5, Funny)

D Ninja (825055) | more than 6 years ago | (#23588155)

the possibility to write unreadable code
Hate to break it to you, but that's a possibility in any language.

... Evolution... (1, Troll)

Manip (656104) | more than 6 years ago | (#23587659)

Either evolve or die.

Java hasn't changed all that much in the last few years and younger languages are pushing programming further.

Although oddly enough the languages for which I speak are things like C# and not "I wish it would die but it likely won't" languages like Python.

Re:... Evolution... (1)

Mongoose Disciple (722373) | more than 6 years ago | (#23587983)

To be fair, Java is finally evolving again in response to some of that pressure, e.g., adding generics.

Re:... Evolution... (1)

ardor (673957) | more than 6 years ago | (#23588143)

Extremely weak generics that do not really offer much. After using generic programming in other languages, Java/C# generics look like a sad joke.

Re:... Evolution... (1)

chthon (580889) | more than 6 years ago | (#23588145)

How long will it take before Java evolves into Common Lisp ?

Re:... Evolution... (2, Interesting)

netsavior (627338) | more than 6 years ago | (#23588245)

Although oddly enough the languages for which I speak are things like C#


Have you seen the new 3.0 libraries?? MS Application blocks look a lot like J2EE when it first came out + the best of Jakarta that we have all been using for almost a decade. Don't get me wrong C# does a lot of "good" stuff... but a lot of its most "innovative" stuff is just finally bringing it up to snuff with the way we have all been using J2EE since the dot com bust.

Easy. (4, Insightful)

SatanicPuppy (611928) | more than 6 years ago | (#23587673)

Power: What can it do?
Performance: How fast can it do it?
Ease of Development: How fast can quality code be turned out by regular programmers?

Most modern languages fail on a couple of these. C is first class in Power and Performance, but it's not Easy. Ruby is okay in Power, and its very Easy, but it's slow. Java is Powerful, but doesn't match C for Performance, and it's not the quickest for development.

I'm sure many fanboys will disagree with my analysis. They'll say "Regular programmers don't matter (C)" or "It's NOT SLOW (Ruby)" or "Development is too quick! (Java)".

Really though, that's what it comes down to. The problem is, that there are unfortunate tradeoffs that have to be made. Most languages have a strength, but they all make sacrifices to be strong.

Aging Engineers (4, Insightful)

avandesande (143899) | more than 6 years ago | (#23587689)

I think many people fail to recognize that the average age of software engineers has gotten higher and that many have realized that most of the pitfalls in software development have little to do with the language chosen. I would rather concentrate on good engineering practices and refining familiar modules I have developed than learn a new language.

Re:Aging Engineers (0)

Anonymous Coward | more than 6 years ago | (#23587859)

I'm one of them. And as the years go by I'm less and less interested in learning the newest language, and more interested in honing my Java skills, and there's a lot of room for that.

Lack of multiple inheritance still bites me once in a while.

Re:Aging Engineers (1)

Manip (656104) | more than 6 years ago | (#23587897)

I'd agree we can't hold a language entirely responsible for programming mistakes but a lot of languages make coding easier and more secure by design.

I mean 1,000 lines of C++ and C# compared... I'd expect to see fewer errors in the C# and less severe errors when I find them.

If we are comparing Java and other managed languages then I entirely agree the differences are smaller but any language that allows you to manage your own memory is an old dog and needs to be taken out and shot.

ASM, C, and C++ should be reserved for Operating Systems, Compilers/Assemblers, and high end software where speed is of huge importance (e.g. 3D Games, Database Engines).

Re:Aging Engineers (4, Informative)

ardor (673957) | more than 6 years ago | (#23588243)

I mean 1,000 lines of C++ and C# compared... I'd expect to see fewer errors in the C# and less severe errors when I find them.

Depends on your skills. C# is a safer environment, but C++ has immensely more expressive power. With modern and well-coded C++, these 1,000 lines may equal to 10-20,000 lines of C#/Java. Unfortunately, the ugly C++ syntax and its C cruft make unlocking the true advantages of C++ a black art.

A trivial example is the STL. Java/C# containers don't come even close to the STL's power. Go further and look at Boost.MPL/Fusion/Proto, and you'll see stuff you simply cannot do with Java/C#.

Well. If it were by me, Lisp would be king. But its not a perfect world :)

Languages are Social/Cultural and Technology (1)

StCredZero (169093) | more than 6 years ago | (#23587957)

Languages are a Social/Cultural phenomenon as much as a Technology. A big part of a language's power is how good and complete its libraries are. And these are built by a community of programmers.

Re:Aging Engineers (5, Insightful)

sheldon (2322) | more than 6 years ago | (#23588081)

My father, just before he retired, got into a big argument with the kids. They had an embedded system, 32K onboard memory, everything was written in straight C.

The kids wanted to do OOP. My father felt there wasn't enough memory to do this effectively and it was foolish.

The reality was, that the kids just wanted to pretend they were doing OOP. They still used straight C, they just created structs and organized functions in files as if they were classes. It was actually rather clever and made it easier to maintain.

It's hard as you get older, I think, you hear about some new idea as the silver bullet and your immediate reaction is negative because you've heard this so many times before. But you have to have an open mind, and watch and see what is happening.

Otherwise you'll end up as a COBOL developer.

Re:Aging Engineers (0)

Anonymous Coward | more than 6 years ago | (#23588157)

You sir hit the nail on the head, thank you.

Re:Aging Engineers (1)

chthon (580889) | more than 6 years ago | (#23588199)

If you talk about good engineering practices : it seems that Java was developed in order to make the developers think before they code. However, why was Java invented then ? They could have built upon what Ada was already.

From whose point of view? (5, Insightful)

mr_mischief (456295) | more than 6 years ago | (#23587747)

Not to sound too much like Obi Wan, but many of the truths we cling to depend a great deal on our own point of view and all that.

If I was working for O'Reilly, Manning, APress, Wiley, et al I'd say a successful programming language was one which sold lots of books.

If I was a hiring manager for a large software company, I'd look closely at what language allowed the most cheap new grads to work together an produce something resembling quality code.

If I was teaching intro to computer science, I'd worry about what was preparing my students for the rest of their education.

If I was teaching a certificate-level course to people looking to get into the job market quickly, I'd look for the language with the highest placement rate.

If I was a person of little clue, I'd go largely by the hype. Some would go with the mainstream hype, and some go with the counter cultural "that's the big hype, but our language is better" underdog hype.

As a programmer, I prefer the language that helps me turn customer requirements into working programs that fastest with the least fuss on my part, and allows decent maintenance and customization later.

As the owner of a small boutique programming shop, I want my expressive, powerful language to give me an advantage over others using less expressive languages. I'd like to find others who can use it, but a few is alright as I don't need a huge team to work on programs.

Re:From whose point of view? (0)

Anonymous Coward | more than 6 years ago | (#23588051)

If I was working for O'Reilly, Manning, APress, Wiley, et al I'd say a successful programming language was one which sold lots of books.

What language is that? Amazon.net?

Python's Success.. (2, Funny)

neoform (551705) | more than 6 years ago | (#23587751)

Python's success is based on how much python coders bash PHP. The more they attack PHP the better the language gets.

Re:Python's Success.. (1)

OrangeTide (124937) | more than 6 years ago | (#23587829)

The language stays the same, only the perception changes.

Re:Python's Success.. (1)

Krisbee (644227) | more than 6 years ago | (#23587911)

However, it's perception that counts...

Re:Python's Success.. (2, Funny)

missing000 (602285) | more than 6 years ago | (#23587949)

Nope it gets better. PHP sucks!

Quck! (4, Insightful)

Anonymous Coward | more than 6 years ago | (#23587769)

Every program on your screen and your OS was written in C/C++

Re:Quck! (0)

Anonymous Coward | more than 6 years ago | (#23588035)

You missed a few: Objective-C, Ruby, and about a dozen other languages.

SOME Answers: (2, Interesting)

Jack9 (11421) | more than 6 years ago | (#23587797)

The less cryptic the better. This generally means, be C-like in your operators and be easily readable at a loop level.

Having multiple abstractions available. Multiple ways to do the same complex task efficiently, not just for() or while(). Regex plz.

Being able to access hardware directly. This includes RAM allocation.

Few unexpected side effects. Documentation is important for both adoption and maintenance of programs written in the language.

That's all I got.

Article is slashdotted, can someone post a copy? (1)

KPexEA (1030982) | more than 6 years ago | (#23587801)

Slashdotted already, that was quick!

Re:Article is slashdotted, can someone post a copy (1)

nickos (91443) | more than 6 years ago | (#23587825)

No wonder:

Maximum concurrency limit of 10 exceeded.

Re:Article is slashdotted, can someone post a copy (1, Informative)

Anonymous Coward | more than 6 years ago | (#23588177)

Good old google. It has a cached copy, here: http://tinyurl.com/6qo4nh

Ruby and Python are ex-parrots, not Java (4, Interesting)

ajv (4061) | more than 6 years ago | (#23587805)

I review code for security flaws for a living. I am a pioneer in this field and have literally written the book on it (the OWASP Guide and the OWASP Top 10 2007). I've been doing secure code reviews for the last 10 years.

I've reviewed 400-500 applications (it's unclear to the total number, but I usually do a review every other week, some shorter, some longer).

I've never reviewed a Ruby application or been asked to review code written in that language. I have been asked to review a Haskell application.

I have reviewed:

* 85-90% Java, usually with shell and ant scripts and occasionally some Perl. Some *years*, this is the only language I am asked to review.
* 5-10% .NET. I haven't reviewed a .NET application this year.
* 5% COBOL. Primarily as a side line - there's a lot of old code to review, but most folks never do.

I've reviewed three PHP applications professionally, all in the last year, even though this is my preferred language to write stuff.

Java is overwhelmingly used in large commercial settings for high value applications, with .NET a very distant second.

I don't get to review that many COBOL or other mainframe apps. I've been doing ground breaking research in this area as there's no advice today. There is a false belief that this code is somehow "safe" as it resides on the mainframe. Nothing could be more wrong.

Ruby and Python, although interesting langauges, has zero commercial penetration, even for worthless brochureware or community apps.

What they do have is an extremely loud fan base. These languages will not kill COBOL or Java any time in the next forty years or so as the fan base is fickle and will move on to the next big thing when it comes along.

Re:Ruby and Python are ex-parrots, not Java (0, Insightful)

Anonymous Coward | more than 6 years ago | (#23587901)

Maybe it just means people using Python and Ruby have enough confidence in their code (rightly or wrongly) that they don't feel they should pay someone to review it.

Or, if you make the above information publicly known that you haven't reviewed Ruby or Python code that's a pretty good reason for someone to choose somebody else to review their code. Why would they pick a guy with little experience in that language?

Re:Ruby and Python are ex-parrots, not Java (0)

Anonymous Coward | more than 6 years ago | (#23588063)

bla bla bla bla bla bla bla.....

Re:Ruby and Python are ex-parrots, not Java (5, Insightful)

Jaeph (710098) | more than 6 years ago | (#23588095)

You didn't review any C either, yet we all know that the language is out there and being used. Same with perl.

I think your field of work is too narrow to be completely explanatory.

Btw, I do agree with your general point - I don't see python or ruby bumping aside java. But your personal experience, extensive as it appears, is not enough to derive that conclusion

-Jeff

P.S. I really wish java would go. I hate the upper/lower case thing in all the names.

Re:Ruby and Python are ex-parrots, not Java (1)

D Ninja (825055) | more than 6 years ago | (#23588249)

P.S. I really wish java would go. I hate the upper/lower case thing in all the names.
Do you mean Camel Case [wikipedia.org] ? You mean that thing that makes it easy to type quickly, but still be able to read what you've typed in code?

hardtoread
hard_to_type
EasyToReadAndEasyToType

What's the issue?

Re:Ruby and Python are ex-parrots, not Java (0)

Anonymous Coward | more than 6 years ago | (#23588165)

I have no mod points, so I will say +1 insightful and also mention the immense power of inertia.
If your employer has a number of big Cobol / Java / xxx applications, you will have learned xxx and the next project you work on will probably be xxx. Your next job will be wotking in xxx, probably not the fashionable and interesting yyy.

Management approval needed (1)

ebunga (95613) | more than 6 years ago | (#23587809)

To make a language successful, it must be "good enough" for its purpose to attract developers, and promoted enough so that management types will actually allow the language to be used.

Script kiddies and professionals (1)

klubar (591384) | more than 6 years ago | (#23587811)

There is a huge difference between languages that work well for one- (or maybe two-) person teams and ones that scale to large projects. Many of the scripting languages (PHP-like) are great for quick results and small projects. Strong type checking, documentation, enforcing good coding practises don't matter if the project size is small enough that one person can keep it all in his or her head.

As you get into large projects all of this starts to matter.

The quality of the IDE also starts to matter--you'll find better/professional IDEs at the top end languages.

10+ concurrent users (0)

Anonymous Coward | more than 6 years ago | (#23587815)

Websites built with Java can support more than 10 users concurrently!

Yes, sure, it is the evil gang... (2, Funny)

JamesP (688957) | more than 6 years ago | (#23587827)

that is going to kill poor Java

It is not the fact that it is overly verbose, too rigid, and is bloated as as a puffer fish on helium.

The "scripting" vs "compiled" canard again??? (3, Interesting)

tyler.willard (944724) | more than 6 years ago | (#23587833)

Jesu effing Christo.

One thing ain't got nothing to do with the other.

I can't decide which is worse, this particular bit of idiocy or the all-to-common: "dynamic vs strong typing" arguments.

Actually, maybe I'm being to hasty.

The conflation of runtime implementation details with language capabilites, or the above-mentioned typing confusion, does provide a quick and easy way to tell that someone doesn't know what the hell they're talking about.

Languages and technology stacks (0)

Anonymous Coward | more than 6 years ago | (#23587861)

There are only two people in the world that should be allowed to create languages: Brian Kernighan and Dennis Ritchie. Everybody else should just f**k off.

Seriously now, I've been working lately on a full-fledge distributed application using the latest of typical Java products (Spring, Hibernate, Apache CXF etc) and I feel the Java platform offers great portability and good standard libraries, but integration between components is hard, not all features work the way you want them to, refactoring is costly because the language is too strict, and there are still pitfalls like the need to use DTOs to marshall objects back and forth. However, I don't have decent experience with alternative stacks (.NET or Ruby on Rails) and I don't know how they compare with the current Java stack. Perhaps Slashdotters could shed some light on the issue from their own experiences (not just say "I like this because of that," but real experience.)

"Maximum concurrency limit of 10 exceeded." (1)

arjay-tea (471877) | more than 6 years ago | (#23587863)

If the "13 reasons" site is written in one of Ruby, Python or the gang, I'm not too impressed.

Perhaps a better measurement than /. popularity (5, Interesting)

klubar (591384) | more than 6 years ago | (#23587871)

Don't count out the "dead" languages... IBM estimates that more than 30 billion transactions occur within Cobol programs every day. By contrast, Google averages about 150 million searches each day, or about .5% of Cobol's daily workload.

Rather than a "gee I need a cool website for my mom" choice, perhaps the number of transactions or dollar value would be a better count.

Cobol would probably win, followed by java and the Microsoft languages (C++, C#).

Good article (0)

Foofoobar (318279) | more than 6 years ago | (#23587881)

Really points out some solid arguments about syntax and others things that alot of people have been saying for awhile.

Maybe some programmers should get pushed too (1)

renau (123225) | more than 6 years ago | (#23587883)

I just got.

Maximum concurrency limit of 10 exceeded.Currently serving the following requests:
/2008/05/28/13-reasons-java-die-old-age/
/2008/05/28/13-reasons-java-die-old-age/
...

Not sure what language they used, but it should be dead too.

Re:Maybe some programmers should get pushed too (1)

Hoi Polloi (522990) | more than 6 years ago | (#23587941)

If you are the owner of this website, you may need to upgrade to a more advanced plan.

Maybe they just need to dust off their credit card.

Yahoo Cache/Mirror (0)

Anonymous Coward | more than 6 years ago | (#23587891)

Right here [akadns.net] .

Free market economy (1, Insightful)

confu2000 (245635) | more than 6 years ago | (#23587893)

I can think of two ways to judge the success of a language.

1) If people use it.
2) If you can find people who will pay you to use it. And assorted corollaries: if people will hire you because you know how to use it, etc...

Given that programmers need to eat, I'd tend to go with the second though the two are basically related anyways.

Slashdotted - Google Cache (0)

Anonymous Coward | more than 6 years ago | (#23587943)

Google Cache [209.85.207.104]

Here we go again... (1, Interesting)

Savage-Rabbit (308260) | more than 6 years ago | (#23588023)

'13 reasons why Ruby, Python and the gang will push Java to die... of old age'
People will continue to postulate that Java is dying just as they have done for years with C/C++ but I'm still willing to bet that in 15 years Java will still be a major player. When a language has achieved the kind of presence in both businesses and the FOSS community world wide that Java and C/C++ have, it is going to be a lot easier to confidently claim that Python & Co. will kill these languages off than it will be to actually do the deed. I'm sure that a number of developers will go over to Python, Ruby & Co. and thus erode the market share of Java but to say that Java will 'die of old' age is stupid. Hell we are still trying to squeeze the life out of COBOL.... with limited success I might add. I know a number of people who get paid good money to write COBOL code.

Ruby and Python making Java die? Ha! (1, Interesting)

Cyberax (705495) | more than 6 years ago | (#23588043)

Sorry, but this article presumes too much.

Python and Ruby are not going to push Java away. For one thing, they are SLOW which automatically disqualifies them in a lot of areas (like high-performance computing). Also, Python interpreter is STILL single-threaded.

Besides, JVM can serve as a platform for many languages. My favorite one is Scala (which is now often deemed as a 'Java killer').

Re:Ruby and Python making Java die? Ha! (2, Insightful)

amccaf1 (813772) | more than 6 years ago | (#23588239)

Sorry, but this article presumes too much.

Python and Ruby are not going to push Java away.
I think you are actually agreeing with the article.

TFA:

Lately I seem to find everywhere lots of articles about the imminent dismissal of Java and its replacement with the scripting language of the day or sometimes with other compiled languages.
No, that is not gonna happen.

A language is good if it's useful. (1)

Richard Steiner (1585) | more than 6 years ago | (#23588065)

None of the new languages are useful in legacy environments unless someone ports compilers for those languages, so programmers in those environments tend to have a different definition of "useful" than Linux developers. :-)

However, it all comes down to the same things: Will the language do what I want? Do I already know it or can I easily learn it? If I end up leaving, is it supportable by someone else? Etc.

Expert@work ... (3, Funny)

foobsr (693224) | more than 6 years ago | (#23588075)

TFA: "Some languages made strange mistakes. For example Python is a great language but the idea of using indentation as block demarcation really is a cannon ball chained to its feet. While most of the pythonistas defend this idea with a lot of energy, the truth is this feature makes it really a dangerous tool in big, world wide distributed projects - and most important enterprise projects are big and distributed."

Elsewhere [oreillynet.com] : "Python Creator Guido van Rossum now working at Google"

Well. Now I finally know how Google is dangerous.

CC.

the school (1)

hugortega (721079) | more than 6 years ago | (#23588077)

there are many colleges with microsoft oriented stuff (I do not want to imagine the reason) ... ergo, many people is educated with a short range of options and ideas such as ".net is the only and true way"

What makes a programming language successful? (3, Insightful)

pokeyburro (472024) | more than 6 years ago | (#23588089)

What makes a programming language successful?

Same thing that makes a religion successful. Adherents.

Another one bites the dust... (1, Offtopic)

Smith55js (1206108) | more than 6 years ago | (#23588137)

Every time Slashdot posts a link to an article on another website, that site gets hammered and (usually) goes down due to bandwidth being exceeded. Maybe Slashdot should adopt a policy of copying the article or at least, informing the webhost of the site you're about to shut down that a link will be posted.

I'm looking for a serious answer to this topic (1)

SendBot (29932) | more than 6 years ago | (#23588191)

seriously, what specifically are strong features for a language? ANY language, not just php,perl,c,java,python,ruby,prolog, etc, etc, ad nauseum.

I find php interesting for being interpreted and therefore having the ability to call functions by name at runtime. Is this actually useful? Not to me, but maybe I don't know a good application for that feature.

Semaphore constructs, useful base libraries, concise solutions to common problems...

I'm really curious to know, slashdot audience, what FEATURES make languages good or useful, and in what languages do you find these features?

Brilliant (1)

Alistair Hutton (889794) | more than 6 years ago | (#23588205)

A language analysis that slams Python for using indentation to delimit blocks. Oooooh, how 20th century.

All Programming Languages Suck (0)

Anonymous Coward | more than 6 years ago | (#23588209)

No exception. If any of them were any good, there wouldn't be so many. They suck primarily because the computer itself is fundamentally flawed [blogspot.com] . Computer science has shot itself in the foot and now that parallel programming is all the rage, the computer industry is paying the consequences. It's time for all of you old computer geeks to retire. You messed up big time. There is better way to design and program computers.

Its partly the API... (3, Interesting)

itsdapead (734413) | more than 6 years ago | (#23588217)

Obviously there's more than one factor to a language's success, but the breadth and quality of the libraries and application frameworks is a huge factor - if you "know a bit" about programming then I'd say that learning your way around a new API is just as much work as learning a new language.

A big plus for C was that it always came with a substantial standard ("de-facto" to start with, then ISO) library based on the Unix API so it was great for writing portable programs - c.f. Pascal where ISTR the core language couldn't even open a named file. C++ was largely popularized by application frameworks like MFC and OWL, and Delphi did the same for Pascal.

PHP is pretty fugly as a language but comes with a huge library of functions and add-ons that are just what the doctor ordered for web scripting - and when people talk about Ruby, do they really mean Ruby or do they mean Rails?

I don't know about Python - it seems to be a secret society rather than a language and you can't join unless you pass this initiation test where someone tells you a corny joke (stolen from an ancient email circular about Unix and Makefiles) about a language which uses leading whitespace to delineate blocks. I always laugh and fail the test, so I've no idea what the real language is like. :-)

Java won't die. (1)

willisbueller (856041) | more than 6 years ago | (#23588251)

It took me till halfway through my soft eng. degree to realize, but java is an engineer's language. It implements MIS consisely. Other languages have their place as have been covered a million times (Except for PHP. God won't someone somehow kill PHP), but java is just excellent for the engineering process.
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?

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>