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!

Why Do Programming Languages Succeed Or Fail?

timothy posted more than 2 years ago | from the larry-ellison-blesses-them dept.

Programming 201

magicmat writes "UC Berkeley EECS graduate researchers Leo Meyerovich and Ari Rabkin have compiled an interesting data set on the sociological aspects of programming language usage and adoption. 'Socio-PLT' is the result: compiling survey results from Berkeley's recent 'software engineering' massive online open course, SourceForge, and two years of The Hammer Principle online surveys, they have discovered some interesting phenomenon about what we, as programmers think about our languages, and why we use them. You can head over and explore the data yourself using cool interactive visualizations, and even fill out a survey yourself to have your say."

cancel ×

201 comments

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

Because programmers use them or they don't (4, Insightful)

rfioren (648635) | more than 2 years ago | (#40243447)

Because programmers use them or they don't.

Re:Because programmers use them or they don't (1, Redundant)

decipher_saint (72686) | more than 2 years ago | (#40243475)

If I had mod points today I would use 'em...

Sometimes things just catch on because people start using a language and it spreads from there.

Re:Because programmers use them or they don't (0)

Anonymous Coward | more than 2 years ago | (#40243503)

Anonymous Coward likes this.

Re:Because programmers use them or they don't (5, Funny)

Anonymous Coward | more than 2 years ago | (#40243605)

Ah but Lisp is a success even though no programmer actually uses it.

Re:Because programmers use them or they don't (5, Informative)

TheLink (130905) | more than 2 years ago | (#40244779)

Lisp is very powerful. So it is a good language for all the code that you write.

However I don't use Lisp. I actually prefer stuff like Perl. Why? Because Perl is good for all the code you don't have to write! aka CPAN.

All that code in CPAN that you don't write, is code that you don't have to document, and typically don't have to debug and fix.

Most programmers in the world aren't really writing code where most of the lines of code are "new", revolutionary or innovative. You might write a few innovative things here and there, but the rest? Don't reinvent the wheel - use good libraries/modules.

In areas where nobody else in the world has ever done what you are doing, then it makes sense to use stuff like Lisp or whatever super powerful language that some genius has come up with.

Otherwise if you need to parse and build DHCP packets, perl/CPAN has modules for that. If you need to parse and build a webpage and post a webform, perl/CPAN has modules for that. Talk to DB servers, handle SNMP, SMTP over TLS, ssh, write Excel files, create images, etc they're all on CPAN.

Re:Because programmers use them or they don't (2)

Bill, Shooter of Bul (629286) | more than 2 years ago | (#40245307)

I like CPAN. I really do. But, I have had to debug several modules. Its not always perfect. You do actually have to test them to see if they meet your usecase. Point in case: the excel module. XLS is pretty complex, it doesn't do everything correctly.

Re:Because programmers use them or they don't (4, Insightful)

slim (1652) | more than 2 years ago | (#40243635)

Because programmers use them or they don't.

Brilliant insight there, leading 4 people to moderate you "insightful"... You could have saved those researchers a whole lot of work.

Ever heard of "five whys"?

1. Why is a programming language successful? - Because programmers use it, or don't.
2. Why do programmers use it? - Because it does what they want.
3. What do programmers want from a language? - .....

Less than 3 why's in, we've already reached a question that you can't glibly answer. Or if you can, go ahead and release your perfect language.

Re:Because programmers use them or they don't (-1, Troll)

Anonymous Coward | more than 2 years ago | (#40243653)

Well aren't you just a snide little cocksucker? Ever heard of the five go fuck yourselves? Give them a try.

Re:Because programmers use them or they don't (0)

Anonymous Coward | more than 2 years ago | (#40243695)

4. PROFIT!!!

Re:Because programmers use them or they don't (5, Funny)

wcrowe (94389) | more than 2 years ago | (#40243755)

1. Why is a programming language successful? - Because programmers use it, or don't.
2. Why do programmers use it? - Because it does what they want.
3. What do programmers want from a language? - For it to do what is required, quickly and easily.
4. Why do programmers want to do things quickly and easily? - Because programmers are lazy.
5. Why are programmers lazy? - Because they want to get their work out of the way as quickly as possible so they can get back to doing things they really enjoy.

There are your five why's, answered succinctly and glibly.

Re:Because programmers use them or they don't (0)

Anonymous Coward | more than 2 years ago | (#40243985)

1. Why is a programming language successful? - Because programmers use it, or don't. 2. Why do programmers use it? - Because it does what they want. 3. What do programmers want from a language? - For it to do what is required, quickly and easily. 4. Why do programmers want to do things quickly and easily? - Because programmers are lazy. 5. Why are programmers lazy? - Because they want to get their work out of the way as quickly as possible so they can get back to doing things they really enjoy.

There are your five why's, answered succinctly and glibly.

Your answer to three wasn't all that helpful though, was it? Or if it was, it doesn't really usefully lead to number 4, does it

4. What is it required to do? (And remember, we're talking about generic, as yet undefined, tasks.

Re:Because programmers use them or they don't (1)

NotQuiteReal (608241) | more than 2 years ago | (#40244257)

1. Why is a programming language successful? - Because programmers use it.
2. Why do programmers use it? - Because it provides paying jobs.
3. Why does it provide paying jobs? - Because it is possible to economically do useful things.
4. Why makes a programming language economical? - Terse efficiency, not obtuse coolness.
5. Why do programmers choose a particular language? - They want to use a programming language that is successful.

ERROR: OUT OF MEMORY

Re:Because programmers use them or they don't (0)

Anonymous Coward | more than 2 years ago | (#40244597)

+++Divide By Cucumber Error. Please Reinstall Universe And Reboot +++

Re:Because programmers use them or they don't (1)

Eraesr (1629799) | more than 2 years ago | (#40243799)

Yeah but that is because the 3rd why is a what

Re:Because programmers use them or they don't (0)

Anonymous Coward | more than 2 years ago | (#40244023)

The 3rd why is a what? Says who?

Re:Because programmers use them or they don't (4, Insightful)

dkleinsc (563838) | more than 2 years ago | (#40243911)

That last one isn't that hard to explain though, because it usually comes down to a few factors:
A. Easy to learn.
B. Easy to write highly functional code.
C. Easy to understand what someone else has written.
D. Easy to integrate with components written in other languages (via libraries, compatibility layers, etc)

Getting all of those right is more art than science.

Re:Because programmers use them or they don't (2)

Schmorgluck (1293264) | more than 2 years ago | (#40244347)

PHP complies to none of these except A, and even that is arguable.

Re:Because programmers use them or they don't (2)

dkleinsc (563838) | more than 2 years ago | (#40244681)

In its heyday, PHP's advantages were: (A) It was easy to learn for those familiar with Javascript because it was kinda similar syntax, and (D) Extremely easy integration with HTML and Javascript, especially once mod_php got going. Basically, it meant that any damn fool web designer could throw a little bit of PHP into their pages.

Once people started writing more complicated stuff in it, its limitations became clear, which is a big part of why its popularity is waning in favor of Python, Ruby, etc for web development.

Re:Because programmers use them or they don't (2)

plopez (54068) | more than 2 years ago | (#40244521)

I think COBOL meets all those criteria.... or possibly Fortran (he said as he ran, ducked, and then hid).

Re:Because programmers use them or they don't (1)

jythie (914043) | more than 2 years ago | (#40245493)

(D) is probably the critical one. Languages, at this point, are all pretty similar in what they can do, how easy they are to learn, and readability really just depends on what you are used to.. The thing that tends to separate them is what other components exist for them to link into, i.e. how popular they are among the programmer's target community.

So it is probably more accurate to say 'programmers use languages because other programmers are using them'.

Re:Because programmers use them or they don't (1)

AngryDeuce (2205124) | more than 2 years ago | (#40244499)

Ever heard of "five whys"?
1. Why...
2. Why...
3.What...

What?!?!!? [youtube.com]

Re:Because programmers use them or they don't (0)

Anonymous Coward | more than 2 years ago | (#40244977)

3. What do programmers want from a language? - .....

What? I don't know that -
*aaaaaaahhhhhhh!* (falls into the chasm beneath the bridge of death)

Re:Because programmers use them or they don't (2)

JasterBobaMereel (1102861) | more than 2 years ago | (#40245431)

Look at the languages that have "succeeded" they all have the same things in common, availability and support

Perl, C, VB, Java, PHP, C++, C# ... all were/are highly available, and well supported, they often were not the best or even a good choice otherwise

Lisp is very powerful, but is not the language of choice for actually doing anything useful because it is not highly available and well supported on any system

On Windows C, C++, VB and C# are the languages of choice because they are well supported by Microsoft... no other reason

Re:Because programmers use them or they don't (1)

j00r0m4nc3r (959816) | more than 2 years ago | (#40245523)

On Windows C, C++, VB and C# are the languages of choice because they are well supported by Microsoft

Ok, but why were those chosen by MS as the ones they would support?

Re:Because programmers use them or they don't (1)

thereitis (2355426) | more than 2 years ago | (#40245503)

0. What does it mean for a programming language to be successful?

Re:Because programmers use them or they don't (2)

91degrees (207121) | more than 2 years ago | (#40243683)

That is about the size of it. I know a bit of perl because I wanted to do some web scripts, and at the time, perl was the best language. I know a bit of Java because I wanted to write some mobile phone apps and Java's the only properly supported language for Android.

I don't know Haskell because nobody uses it so I've had no need to learn.

Re:Because programmers use them or they don't (1)

mark-t (151149) | more than 2 years ago | (#40243861)

I don't know Haskell because nobody that I personally know uses it so I've had no need to learn

FTFY

Please say what you mean next time... unless you are genuinely meaning to infer that everyone who knows a particular language must be a "nobody", as in nobody who is important or worthwhile... which is a rather tactless thing to say, if you ask me.

Re:Because programmers use them or they don't (2)

91degrees (207121) | more than 2 years ago | (#40243945)

Nobody I personally know uses Java, or at least nobody did until I got a job in it.

What I mean is nobody uses Haskell for any area of software development, to a substantial degree that learning it makes any sense. There's essentially no community development support for it in any field.

I do mean nobody important or worthwhile. I apologise if this offends you.

Re:Because programmers use them or they don't (2, Insightful)

19thNervousBreakdown (768619) | more than 2 years ago | (#40243869)

Oh man.

I came in here to post that we can expect to see programming explosively progress relative to previous craft professions, because unlike other professions that disdain introspection, our field practically requires it, and teaches very early and very harshly that absolute intellectual honesty is the only way to move forward.

And then ... this. +5, Insightful. A post that is the equivalent of the middle-management meme that made the rounds a few years ago, "It is what it is." Absolutely meaningless, utterly unhelpful, not only devoid of thought but actively blocking it, a trite tautology is apparently the pinnacle of what the Slashdot community (which, according to a recent poll, is something like 40% developers) has to offer.

Well, at least it won't be too hard to leave you guys in the dust.

Re:Because programmers use them or they don't (1)

phodara (304301) | more than 2 years ago | (#40244235)

I don't how many of you are old enough to remember the now defunct BYTE magazine, probably one of the top three technical magazines of all time.
They would have fun with their April 1st issues. One year they had a featured article by the purported creator of Pascal a college professor explaining that he created Pascal as teaching tool in what NOT to do when creating a programming language. He went through step by step every design flaw in pascal. It was a brilliant joke and the magazine took a lot of flack from disgruntled Pascal programmers, and readers without a sense of humor.

Re:Because programmers use them or they don't (0)

Anonymous Coward | more than 2 years ago | (#40244857)

This has been covered here before (5, Funny)

llamalad (12917) | more than 2 years ago | (#40243501)

The main factor in determining whether or not a language succeeds is the quality of its creator's beard:
http://entertainment.slashdot.org/story/08/04/29/181249/facial-hair-and-computer-languages [slashdot.org]

Re:This has been covered here before (0)

Anonymous Coward | more than 2 years ago | (#40243691)

That would make it pretty hard for anyone from Japan or China to create a programming language.

Although Matz(creator of Ruby) does about as well a beard as he can, although its only 5-oclock shadow by western standards:
http://www.cit.cmu.edu/files/images/feature/2009/20091228.jpg

Re:This has been covered here before (1)

Anonymous Coward | more than 2 years ago | (#40244241)

That's just his playoff beard. Once the Stanley Cup Finals is over, Ruby is toast.

You have never seen Matz [microsoft.co.il] and Ilya Kovalchuk [amazonaws.com] in the same room together. Coincidence? I think not.

sometimes backwater is good (0)

goombah99 (560566) | more than 2 years ago | (#40244445)

Look at Objective-C. No pressure for years let this language mature and not have to be a stakced series of kludges. It's a language that hasn't gone off the rails like Java did and now python is about to. It kept to it's low level roots and didn't have to build in every gimmick of the day. I gave up on java after about 1.4 because every program I had written was using deprecated syntax and libraries within a year.

Python when I first started was brilliantly simple. I was one of those imbeciles that ridiculed the whites space, and the lack of multiple approaches to things. Then I noticed that I could read everyone elses python and they could read mine. White space is brilliant! And having single idioms for any major concept means everyone can read everyone elses program. Insanely great language. Or it was. Now it's got some much library bloat and idiom bloat that it's becoming a dark art and old code will wither as libraries go unsupported.

Interestingly things I wrote decades ago in perl still work just fine. that language just reached maturity and mostly stopped.

The way I compare languages now is I measure the thickness of the O Reily pocket guide. Perl is very slim-- even slimmer than C++. Yet perl without adding any external libraries has high level capabilities.

Girl Analogy (2, Insightful)

A10Mechanic (1056868) | more than 2 years ago | (#40243525)

Programming languages must have a certain elegance, a flow or symmetry that entices the mind. Pascal/Delhpi have always done that for me. She's not the hottest girl at the dance, a little older and not dressed to the 9's, but she's the one I'm taking home that night. It's entirely personal, and I could'nt care less what others use.

Re:Girl Analogy (5, Funny)

Anonymous Coward | more than 2 years ago | (#40243601)

Programming languages must have a certain elegance, a flow or symmetry that entices the mind. Pascal/Delhpi have always done that for me. She's not the hottest girl at the dance, a little older and not dressed to the 9's, but she's the one I'm taking home that night. It's entirely personal, and I could'nt care less what others use.

Much like Ruby is called "Perl's younger, much prettier sister".

Dear Perl,

Look, I know that we were an item for quite a few years.

You were my one and only. My true love.

But I've gotta admit, when I saw your younger sister Ruby a few years back... well, I thought she was hot. But of course, she was too young then so I stayed away from her.

Now, more recently I have to confess that I went out with Ruby for a few dates and believe me, she is plenty mature now!

Not only that but her library seems somehow more complete than yours and certainly better organized. And her object oriented features - OO la la! Look, you're a great gal, but you're certainly not anywhere near as well endowed in THAT department.

And now that Ruby's got transportation (ok, so she likes to ride the rails) we're really getting around.

So, dear Perl, I have to tell you that it's over between you and me. From now on it's me and Ruby.
Please don't take it too hard. Maybe you'll find someone else after you're makeover.

Re:Girl Analogy (5, Funny)

Anonymous Coward | more than 2 years ago | (#40243719)

Programming languages must have a certain elegance, a flow or symmetry that entices the mind. Pascal/Delhpi have always done that for me. She's not the hottest girl at the dance, a little older and not dressed to the 9's, but she's the one I'm taking home that night. It's entirely personal, and I could'nt care less what others use.

Much like Ruby is called "Perl's younger, much prettier sister".

Dear Perl,

Look, I know that we were an item for quite a few years.

You were my one and only. My true love.

But I've gotta admit, when I saw your younger sister Ruby a few years back... well, I thought she was hot. But of course, she was too young then so I stayed away from her.

Now, more recently I have to confess that I went out with Ruby for a few dates and believe me, she is plenty mature now!

Not only that but her library seems somehow more complete than yours and certainly better organized. And her object oriented features - OO la la! Look, you're a great gal, but you're certainly not anywhere near as well endowed in THAT department.

And now that Ruby's got transportation (ok, so she likes to ride the rails) we're really getting around.

So, dear Perl, I have to tell you that it's over between you and me. From now on it's me and Ruby.
Please don't take it too hard. Maybe you'll find someone else after you're makeover.

After a few go-rounds, you then discover she has 6 different STDs and is intellectually about as deep as a summer puddle in a Florida parking lot.

Yep. Sounds like Ruby.

Re:Girl Analogy (5, Funny)

NoNonAlphaCharsHere (2201864) | more than 2 years ago | (#40243725)

Sure, sure. But Perl will fuck you back. Big time.

Re:Girl Analogy (0)

Anonymous Coward | more than 2 years ago | (#40244317)

So Perl's packing a strap-on? Thanks for the warning!

Re:Girl Analogy (-1)

Anonymous Coward | more than 2 years ago | (#40243855)

I guess you are one of those fucktards that calls themselves a codeninja or a rockstar. Get the fuck out and blow your head off.

Re:Girl Analogy (2)

garrettg84 (1826802) | more than 2 years ago | (#40243981)

Ruby only dates hipsters and yuppies. Analogy fail.

Perl and breasts (0)

Anonymous Coward | more than 2 years ago | (#40244839)

OO la la! Look, you're a great gal, but you're certainly not anywhere near as well endowed in THAT department.

You might want to take another look. Perl got some serious implants. [iinteractive.com]

Re:Girl Analogy (0, Flamebait)

Anonymous Coward | more than 2 years ago | (#40243617)

Programming languages must have a certain elegance, a flow or symmetry that entices the mind. Pascal/Delhpi have always done that for me.

Pascal/Delphi is great if you are in to necrophilia.

Re:Girl Analogy (2)

RyuuzakiTetsuya (195424) | more than 2 years ago | (#40243623)

if that were true, python or ruby would rule the roost for web development jobs, not PHP(TBH, I love PHP because it's kind of batshit nutty).

I suspect it's a chicken/egg situation. Which comes first, developers using languages or projects using languages(not just jobs mind you)?

Re:Girl Analogy (1)

O('_')O_Bush (1162487) | more than 2 years ago | (#40243697)

I'm going to go with professors trying something and liking it, passing it on to their students, and the rest following from there. I realise this isn't a complete explanation, but I does help explain the momentum some languages have gained (looking at you, Python, Matlab, QT4/C++, VB).

Re:Girl Analogy (2, Informative)

Anonymous Coward | more than 2 years ago | (#40243659)

"Programming languages must have a certain elegance, a flow or symmetry that entices the mind. Pascal/Delhpi have always done that for me."

Try Scheme.

Re:Girl Analogy (5, Funny)

PolygamousRanchKid (1290638) | more than 2 years ago | (#40243693)

Unlike a girl, a good programming language is good for more than one thing.

If you have more than one girlfriend, then you run into the same problems as SMP and multi-threaded programming: resource contention, careful locking, semaphore signalling overhead, etc. Woe betides you if one finds cosmetics stuff from another on the wrong stack in the bathroom.

Spin locks are, quite literally, a bitch.

Re:Girl Analogy (1)

hedleyroos (817147) | more than 2 years ago | (#40243859)

They also need documentation and working examples.

Re:Girl Analogy (1)

tibit (1762298) | more than 2 years ago | (#40243995)

And then there's assembly, where everything depends on vintage. There are some seriously inspiring architectures like my fave XMOS XS-1 with its hardware resource management in old mainframe style, but all packaged in a limber teenage body.

Re:Girl Analogy (2)

idontgno (624372) | more than 2 years ago | (#40244193)

Programming languages must have a certain elegance, a flow or symmetry that entices the mind.

Your father's Delphi. This is the weapon of a Hacker Knight. Not as clumsy or random as C++; an elegant weapon for a more civilized age.

Re:Girl Analogy (1)

VGPowerlord (621254) | more than 2 years ago | (#40244491)

Since the primary reason to go to Delphi was to get advice from the Oracle [pbs.org] , what do you do if you consider the Oracle unreliable [groklaw.net] ?

Tautology (0)

Anonymous Coward | more than 2 years ago | (#40243533)

Languages succeed or not succeed == true.

results location (1)

O('_')O_Bush (1162487) | more than 2 years ago | (#40243549)

The results were a bit of a pain to find on my phone, and took a while to load, but if you are looking for them, you can mostly skip the methodology and go to the bottom of the page
  where there are a handful of not well separated links.

The results didnt seem too surprising, other than that under their questions, Visual Basic and Assembly ended up clustered together.

Re:results location (1)

michael_cain (66650) | more than 2 years ago | (#40244075)

The results didnt seem too surprising, other than that under their questions, Visual Basic and Assembly ended up clustered together.

Odd things seem to happen when you change the number of clusters. There seem to be too many cases where you start with N clusters and pick a pair of languages. Then go to N+1 clusters and the pair is split between two clusters. Then go to N+2 clusters and the pair is back in the same cluster. While k-means is often the first tool one grabs for clustering analysis, it isn't the only tool and there are data sets where k-means doesn't give reasonable results.

Déjà vu (3, Informative)

hcs_$reboot (1536101) | more than 2 years ago | (#40243585)

Re:Déjà vu (0)

Anonymous Coward | more than 2 years ago | (#40243747)

But did that one have cool visualisations?

99% marketting (1)

Anonymous Coward | more than 2 years ago | (#40243603)

Back in the days when Java was originally being developed at Stanford, my university was working on it's own language. It was actually pretty good, and once Java became big, few people understood what made Java so special.

The only answer that I've been able to come up with, is that it was Stanford, and not some Canadian school that nobody has heard of.

Re:99% marketting (0)

Anonymous Coward | more than 2 years ago | (#40243801)

Java was not created at Stanford. It was created by Gosling at Sun.

Re:99% marketting (1)

Skip1952 (122013) | more than 2 years ago | (#40244007)

... and not some Canadian school that nobody has heard of.

Maybe your school should of called it something like Java with WatJava and WatJive.

Re:99% marketting (0)

Anonymous Coward | more than 2 years ago | (#40244313)

Like UWaterloo grads, all of the techs to come out of UWaterloo since the 80s have been worthless.

Re:99% marketting (0)

Anonymous Coward | more than 2 years ago | (#40244401)

WinOOT is terrible.

Certianly has nothing to do with language quality (2, Insightful)

Anonymous Coward | more than 2 years ago | (#40243655)

Since PHP and Javascript stubbornly remain popular.

Designed to get a job done (4, Informative)

itsdapead (734413) | more than 2 years ago | (#40244739)

Since PHP and Javascript stubbornly remain popular.

One distinction is whether the language was designed to meet a practical need, or to prove an abstract point in computer science. Plus, these days, the API is probably more important than the language - its certainly more work to learn a new API than a new language.

PHP is a crap language, but it gets the job done, makes it easy to programatically generate HTML and comes with a humungous library of useful functions. Plus, its widely available on commercial web-hosting services. When I tried some Python (after forcing myself to stop worrying and get past the 'significant whitespace' thing) , I found I wanted an XML/XPath/DOM library but all I could find were several half-finished attempts and a lot of discussion about what would be a suitably "Pythonesque" XML API (the well-defined standard DOM API sounds good to me). Maybe I was unlucky (Python isn't exactly unsuccessful) but that would have been a no-brainer in PHP, Java or C.

Likewise, Javascript is the only game in town for scripting web pages and has become almost platform-independent. It also became joined at the hip with the HTML DOM.

Java also had the big practical plus of being almost platform independent - and again now has a huge array of APIs that programmers have spent time learning.

Or look at C vs Pascal. VAX Pascal, Turbo Pascal, Delphi et. al. were quite successful because they each extended the language in proprietary ways, but standard Pascal was useless for anything other than teaching algorithms because it didn't have any practical API to speak of (you couldn't even open a named file within a Pascal program - that had to be done externally). C, on the other hand, always had a "de facto" standard library consisting of the subset of the Unix API described in "The C Programming Language", full of really useful utility routines for strings, file handling, output formatting, searching etc. You could do a lot in standard C without tying yourself to a particular dialect or platform, and the pre-processor let you #ifdef your way out of any incompatibilities that you did encounter.

C++ - a can of worms which only a language lawyer could love - probably hit the big time because of MS Visual C++ and the MS Foundation Classes. That and the fact that C programmers didn't think they had to learn a whole new language (see earlier comment about cans of worms).

Basically, don't expect your mathematically elegant new language (with no variables, who's only operator is 'is a subset of' and which uses UNICODE accents and ligatures to increase its expressivity) to take off unless it has POSIX regexps, bindings to MS Access and a WIndows application framework.

Slashdot might not the right place for this, but.. (1)

goruka (1721094) | more than 2 years ago | (#40243687)

Despite fanatism for a lot of languages, I believe languages catch on when they are easy to understand by others and have an easy to understand syntax or interfaces. Plenty of times you see announcements of new languages which claim experimental or higher level syntax abstractions or constructions that allow the programmer to write less code, or claim to resemble human language more.
Yet in practice, I don't think programmers spend most of their time actually writing the code but thinking what to write, so making an algorithm or behavior as clear as possible should be preferred to writing unnecesarily shorter code that does the same.

Re:Slashdot might not the right place for this, bu (0)

Anonymous Coward | more than 2 years ago | (#40244559)

+1 this.

Re:Slashdot might not the right place for this, bu (1)

darkwing_bmf (178021) | more than 2 years ago | (#40245643)

Despite fanatism for a lot of languages, I believe languages catch on when they are easy to understand by others and have an easy to understand syntax or interfaces.

This is false on the surface. There are tons of popular languages that use a C like syntax but that doesn't mean it's the easiest language to understand if you've looking at the syntax of various languages without prejudice.

The reason C syntax is popular is because existing programmers learn it relatively early and they pass that on to new programmers. And most programmers are too lazy to want to learn a new syntax once they're comfortable with the one they're using.

Why Do Programming Languages Succeed Or Fail? (5, Funny)

Hatta (162192) | more than 2 years ago | (#40243777)

Because those are the only two options.

They succeed if their developers have beards (0)

Anonymous Coward | more than 2 years ago | (#40243791)

http://entertainment.slashdot.org/story/08/04/29/181249/facial-hair-and-computer-languages

If you can get useful results quickly, it succeeds (4, Insightful)

gestalt_n_pepper (991155) | more than 2 years ago | (#40243825)

Otherwise it fails. Two of the most popular languages in existence are Visual Basic and PHP. Math folks and programmers tormented by the hobgoblin of consistency hate both languages. Guess what? It doesn't matter.

Sure, they're inconsistent, oddly constructed and don't support polymorphism (which describes many programmers too, for that matter). Nevertheless, you can get something *done* in jig time and move on with your life. They are languages that are not about the language but the task. In that sense, they perfectly suit the human mind and so they get used again and again.

The big fail of programming languages generally is that nobody thought to combine ease of use with scalability. A programming language should make the most frequently done things trivially easy (e.g. file i/o) and less frequently done things (e.g. serializing and deserializing) possible.

My favorite example of a programming language fail is Powershell. The language is very consistent. It's a consistent pain in the ass. It's picky, prissy and everything has to be done "just so." I use it every day, and I'd like to condemn the developers to a hell where they had to do real system administration with it for eternity.

Re:If you can get useful results quickly, it succe (1)

VGPowerlord (621254) | more than 2 years ago | (#40244585)

Two of the most popular languages in existence are Visual Basic and PHP. Sure, they're inconsistent, oddly constructed and don't support polymorphism (which describes many programmers too, for that matter).

For classic VB, that's true. However, VB.NET introduced real object-oriented programming to VB.

Re:If you can get useful results quickly, it succe (1)

gestalt_n_pepper (991155) | more than 2 years ago | (#40244725)

True. I was referring to the old VB6. I don't know exactly how popular vb.net is.

Re:If you can get useful results quickly, it succe (1)

Dragonslicer (991472) | more than 2 years ago | (#40245037)

Two of the most popular languages in existence are Visual Basic and PHP. Sure, they're inconsistent, oddly constructed and don't support polymorphism (which describes many programmers too, for that matter).

For classic VB, that's true. However, VB.NET introduced real object-oriented programming to VB.

And PHP added a Java-esque OO system for PHP5, which I think was 7 years ago.

Re:If you can get useful results quickly, it succe (0)

Anonymous Coward | more than 2 years ago | (#40245717)

Sounds like your perspective on this is the "getting a quick task done", such as scripting system administration. I would suggest that that is a whole different ballgame from any software project of non-trivial size or complexity. Note that in the survey results, PHP and VisualBasic have very similarly abysmal scores for "Code written in this language tends to be reliable" and "This language is best for large projects".

Third option (0)

Anonymous Coward | more than 2 years ago | (#40243837)

"Why do programming languages succeed or fail?"

There isn't any other option for them, so they have to do one or the other I suppose.

Next question.

the curious case of ObjectiveC (2)

peter303 (12292) | more than 2 years ago | (#40243841)

In the beginning it sounded the "the Smalltalk for the rest of us", i.e. objective oriented programming for the UNIX/C crowd. But ObjectiveC was a proprietary language and did not catch with university types. Somewhat open C++ quickly eclipsed it. But the faithful at NeXT, then Apple held on. Now its considered on the most popular develop languages, mainly for iPhone apps.

Because of stupid names (4, Interesting)

dargaud (518470) | more than 2 years ago | (#40243907)

Some languages fail simply because the creators have chosen stupid names in the age of Internet searches: try searching for one liners or tutorials in 'R' or 'Go' or 'D' and you'll find tons of irrelevant links. I'll make an exception with C since there's simply more stuff out there about the language than about any other use of the letter. Now Brainfuck [wikipedia.org] , that's a perfect name for a language.

Re:Because of stupid names (0)

Surt (22457) | more than 2 years ago | (#40244773)

Surely that must suffer from a lot of exotic porn polluting the results?

Depends on the hardware, generation (2)

AHuxley (892839) | more than 2 years ago | (#40243979)

Did you have to go to work with a maths degree to programme your computer?
Did the language get .gov or .edu support e.g. Ada?
Can you do anything you like and zoom ahead or fail depending on your skills? e.g. C
Now you have you Lua, OCaml and MS efforts.
Everyday some gifted project person tries to impress their friends or make a tool just to see if they can in some obscure, free, fast language.
Why do they fail, ahead of their time like Ada or without the awesomer speed and freedoms for C.
Or its just not what all your BBC/Windows/ios using friends had and could help you will, i.e. the herd is fun.

Same way as real languages (5, Insightful)

Kjella (173770) | more than 2 years ago | (#40244035)

English isn't the world's most spoken language (when you include secondary speakers) for its elegance, consistency or expressiveness. It's a combination of history and politics and power and isolation and culture and grabbing concepts and words and pronunciation from other languages. Languages are the same, some exist practically by being first. Some exist only because they've had large companies like Sun or Java backing them. Others survive because they've been isolated cornering a specific need in finance or science or academia. I remember Java 1.0 and very early Javascript, that the world is now full of Android and AJAX apps is nothing short of a freak of history. Trying to analyze it from the language's qualities alone is never going to give meaningful results.

Wish I had mod points (4, Insightful)

Viol8 (599362) | more than 2 years ago | (#40244135)

You got it spot on. One thing you didn't mention was critical mass - once enough people are using a language others will come along and try it (or be forced to use it at work) no matter how good or bad it is and once they're comfortable with it they'll probably carry on using even if there are better alternatives because a learning curve is always more hassle than staying with what you know.

Re:Same way as real languages (1)

R3d Jack (1107235) | more than 2 years ago | (#40245531)

I'm just finishing "Outliers: The Story of Success", the book that discusses 10,000 hours to master something. I've always believed that "success" in anything requires a combination of skill and being in the right place at the right time, and the author presents quite a few examples that corroborate that. In terms of programming languages, I measure success over the long term. So: C, C++, Java, JavaScript, with Objective C and C# apparently emerging. Especially with Java and JavaScript (the languages I use), it was a matter of being good enough at what needed to be done at a point of major change. Now they are established, which causes them to be used even more. Strangely, what programmers like seems to matter little; it's business managers who choose what languages will be used.

Dupe -- or nearly so (1)

evenmoreconfused (451154) | more than 2 years ago | (#40244037)

Not even three months ago...

http://developers.slashdot.org/story/12/03/16/0240232/why-new-programming-languages-succeed-or-fail [slashdot.org]

Granted, the previous one is about new languages. But can't we assume every significant old language succeeded for at least some period of time (even if all some of them succeeded in is failing spectacularly -- remember Japan's push for "fifth generation languages" in the '90s)?

Because of Marketing... (1)

stretch0611 (603238) | more than 2 years ago | (#40244041)

This is somewhat sarcastic, but unfortunately true.

A language succeeds or fails because the company building the language and/or the tools put on a dog and pony show for your company executives. They buy into whatever crap is being sold and programmers wanting a job learn that language.

I wish it was based on merits and how a languages performs certain tasks, but unfortunately the above is true more often than not.

Re:Because of Marketing... (1)

serviscope_minor (664417) | more than 2 years ago | (#40244807)

This is somewhat sarcastic, but unfortunately true.

C++ never had a marketing division. Apparently AT&T tried to kill the C++ project several times. Each time they were surprised to find that there was no C++ project.

Many languages had no marketing, certainly at first.

For example C, PHP, Perl, Python, Ruby and Lua.

FORTRAN for instance offed a massive advance over what was available before and became very popular. After a very short time, it took off on its own with no one company backing it. It was certainly marketed by many vendors, but that's because it became the must-have thing on any computer.

Other languages simply succeed because they are in the right place at the right time. Like Javascript for instance.

But yeah, Java and .NET certainly succeeded due to a massive marketing campaign.

It's not all doom and gloom though.

Re:Because of Marketing... (0)

Anonymous Coward | more than 2 years ago | (#40245085)

Apparently AT&T tried to kill the C++ project several times. Each time they were surprised to find that there was no C++ project.

This is interesting. Do you have some reference to that?

Re:Because of Marketing... (2)

Xtifr (1323) | more than 2 years ago | (#40244969)

A language succeeds or fails because the company building the language and/or the tools put on a dog and pony show for your company executives.

If that were true, PL/1 would have been a huge success. It had the backing of IBM, which was at the time, the computer company, and was heavily promoted by them, but it was rejected by the market as being too complex and hard to understand. (Ironically, by the standards of today's languages, it was remarkably straightforward, clean and elegant, and if anything, too simple.)

Stupidest survey ever (1)

michaelmalak (91262) | more than 2 years ago | (#40244199)

A quick CTRL-F on "salary" and "money" turned up no matches at http://www.eecs.berkeley.edu/~lmeyerov/projects/socioplt/viz/rank.html [berkeley.edu] . And just to add a bit of flamebait. I guess that's what we can expect from an institution with the political and economic philosophy of Berkeley.

24 year C/C++ guy here (1)

Impy the Impiuos Imp (442658) | more than 2 years ago | (#40244473)

Doesn't include LISP, which is, of course, the correct answer for everything except serious number crunching.

And the serious number crunching could probably be faster piloted in LISP, at that.

I can't count the number of times the need for solutions to "intractable" problems comes up. Let's whip up a fuzzy blackboard system. Whuuuh?

Re:24 year C/C++ guy here (2)

serviscope_minor (664417) | more than 2 years ago | (#40245109)

Doesn't include LISP, which is, of course, the correct answer for everything except serious number crunching.

Not sure if serious...

If you are, then why hasn't lisp taken over?

And the serious number crunching could probably be faster piloted in LISP, at that.

I doubt that. Serious number crunching usually involves lots of simple for-loops which are easy to code in C and often even easier in C++. Infix notation really helps here because then the code looks like maths.

I think that the reason lisp never quite succeeds is because of the lack of syntactic support. Sure the syntax is super-uniform but that means everything looks the same, which means it is hard to read (and therefore write).

I find that built-in support for common structures is really nice in other languages and gives very strong visual cues, which my brain can process much more easily.

In fact many of the new features in C++11 (e.g. lambdas, auto, range based for, template typedfs^Wusing) don't actually provide new capabilities (unlike, e.g. decltype and &&). They just provide shorter, more succinct and more obvious ways of doing things. And it provides a languager supported way which means everyone does them the same way and it's easy to read.

In fact that's whay C++ did in the first place. It took a lot of the things people were hacking up in C and put them in the langage so use was consistent and easy to read. For example classes can be made with structs and function pointers. Generic programming can be bodged together with macros. Both tricks are in fact common in large C projects, but different in every one.

Word of mouth (1)

msobkow (48369) | more than 2 years ago | (#40244667)

Programming languages succeed or fail by word of mouth and their resulting popularity.

Contrary to what some say, most programmers don't pick a language because it's elegant or simple to use, but because it fits they way they think about programming. And there are as many different ways of thinking about programming as there are programmers.

Some languages like Ruby achieve a critical mass and become "mainstream" languages. Others are equally innovate and capable, but do not achieve that mass, like Erlang.

It's not really that one is "better" than the other. It's just that one achieved that magic mindshare of fanboy evangelism to cause it to spread far beyond what it's mere syntax or capabilities justify.

If the simplicity and capabilities of a language were what determined it's success, we'd all be using purpose-designed languages like Ada or Modula, and C/C++/Java would not be the most popular programming languages on the internet.

Personally my biggest beef is languages that are designed to implement a certain style of programming efficiently, while making other common styles of programming virtually impossible.

Key example: Try converting an array manipulation algorithm to efficient Erlang. It flat out can't be done: Erlang has no good syntax for indexed access of it's lists, forcing you to do a tail-recursive iteration counting through the list elements to get to the one you want. (This fundamental flaw killed the last project I worked on, so it's a pet peeve of an example.)

Then again, maybe it's limitations like that which prevent Erlang from achieving any kind of critical mass.

Re:Word of mouth (1)

slim (1652) | more than 2 years ago | (#40245045)

Key example: Try converting an array manipulation algorithm to efficient Erlang. It flat out can't be done: Erlang has no good syntax for indexed access of it's lists, forcing you to do a tail-recursive iteration counting through the list elements to get to the one you want. (This fundamental flaw killed the last project I worked on, so it's a pet peeve of an example.)

I have no Erlang experience, but I have experience in other functional languages. A quick Google suggests you should probably have used the 'array' module: http://www.erlang.org/doc/man/array.html [erlang.org]

It doesn't matter what language you're using, you can't make a linked list (for that is what an Erlang list is) have the same performance characteristics as an array. It's not a fundamental flaw. You just refused to adopt the language's core paradigm.

Re:Word of mouth (1)

msobkow (48369) | more than 2 years ago | (#40245573)

I believe the array module is still using lists internally because when I tried it, the performance was absolutely horrible compared to a language that supports arrays naturally.

The internal data types that all atoms and objects break down to in Erlang does not include native array types, hence it's use of array emulation using lists.

But whether Erlang supports them or not isn't really the key point. The key point is that some languages eliminate critical common facilities for the sake of "elegence" and "consistency", preventing them from being used as truly general purpose languages. After all these decades of programming, there is a pretty consistent list of features and facilities a language has to support in order to be useful, and one of the most basic is the array.

"Pure" dialects of LISP suffer the same problem. They're too idealistic in their zeal to drop features programmers need sometimes.

Re:Word of mouth (1)

msobkow (48369) | more than 2 years ago | (#40245595)

I did not "refuse" to adopt the language's core paradigm.

The algorithm to be implemented required arrays. I spent TWO MONTHS trying to re-write it in something more native to Erlang. It just flat out couldn't be done.

Not all algorithms can be adapted to arrayless syntax.

Go ahead and try to implement some of the bitmask arrays used by a compiler without an array, for example. Good luck.

simple: imperative, portable, objects, libraries (0)

Surt (22457) | more than 2 years ago | (#40244727)

C took off because it allowed imperative programming more easily (and portably) than assembler, and functional programming in C is ridiculously painful. Cobol had a briefly popular stint based on the strength of its libraries for business. C++ added objects, and by some miracle made functional programming even uglier. Java added a sane library (and made portability even less of an issue), and provided a pattern for functional programming so difficult to use everyone hates it instantly.

And that's the complete history of the really popular languages. Nothing else even comes close to having been used as much, and weaknesses in those four areas are what's to blame:

Lisp: functional by design
Python: functional too easy, poor library compared to established java
PHP: library too insane
Basic: never had the libraries to compete with C, objects too late to compete with c++, inconsistencies rendered code non-portable

etc.

Re:simple: imperative, portable, objects, librarie (3, Informative)

Xtifr (1323) | more than 2 years ago | (#40245195)

C took off because it allowed imperative programming more easily (and portably) than assembler

Also because its use in the development of Unix meant that it had a huge (by the standards of the time) body of existing code and libraries by the time it was sprung upon an unsuspecting world. The very fact that you could use this portable, (moderately) high-level language for writing a complete OS without abandoning performance was a revelation. And the fact that Unix began invading universities shortly thereafter helped as well.

Since the rise of C, some loose compatibility with C has been a major factor too. When it came to powerful scripting languages, we had Rexx and Perl--and which one had a more C-like syntax? That's right, the one that succeeded, Perl. And Java is notable for it's C(++)-ness too.

It's rarely one or two simple factors, but usually a whole mess of things.

(As for functional programming, I think that's pretty much been a non-issue the whole time.)

not a good sample population (0)

Anonymous Coward | more than 2 years ago | (#40244889)

"whom are working developers that already completed at least a bachelors in computer science. "

This is a fairly small fraction of the total people developing software, particularly, I suspect, among those who have substantive experience with more than one language. Lots of people wind up in the developer world without going through a CS curriculum. And, in fact, one can argue that Computer *Science*, per se, is not as good a background for a developer as, say, Software Engineering. Relatively little software development (in terms of hours spent, productivity, or pretty much any other measure) is focused on algorithm development.

Consider that in the 80s, CS departments were *just* getting started..

Low-Hanging Fruit (1)

eric02138 (1352435) | more than 2 years ago | (#40245059)

When I was an internet noob back in 1996, I had a vague recollection of Pascal from my CS 101 days. But for what I needed to do (interactive web pages), Javascript was the only way to go. Javascript was free, I didn't need to install anything to make it work, and it worked (sorta) on the platform everyone was using (internet browsers). Plus, there was plenty of demos and open-source code to steal.

Later, when I needed to do server-side programming, I learned PHP. Why? Because LAMP was free, easy to install (by that point the "AMP" part was bundled) and it worked on the platform everyone was using (internet browsers). Plus, there was plenty of demos and code to steal.

It was only much later that I realized how ugly Javascript and PHP code could be. But at the time, code elegance wasn't even on my radar screen. I just wanted to make things work. I suspect that my experience has been mirrored many time over.

Pedantic answer (0)

wonkey_monkey (2592601) | more than 2 years ago | (#40245157)

Because they have to do either one or the other, duh.
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?