×

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 New Programming Languages Succeed Or Fail

samzenpus posted more than 2 years ago | from the failure-to-thrive dept.

Programming 274

snydeq writes "Fatal Exception's Neil McAllister discusses the proliferation of programming languages and what separates the successful ones from obscurity. 'Some people say we don't need any more programming languages at all. I disagree. But it seems clear that the mainstream won't accept just any language. To be successful, a new language has to be both familiar and innovative — and it shouldn't try to bite off more than it can chew. ... At least part of the formula for success seems to be pure luck, like a band getting its big break. But it also seems much easier for a language to shoot itself in the foot than to skyrocket to stardom.'"

cancel ×
This is a preview of your comment

No Comment Title Entered

Anonymous Coward 1 minute ago

No Comment Entered

274 comments

Nah! It's Facial hair... (5, Funny)

jawtheshark (198669) | more than 2 years ago | (#39375679)

Everyone knows it's the Amount of Facial hair [microsoft.co.il]

Re:Nah! It's Facial hair... (3, Funny)

wilfie (622159) | more than 2 years ago | (#39375807)

I dread to think what Grace Hopper looked like.

Re:Nah! It's Facial hair... (3, Funny)

red_dragon (1761) | more than 2 years ago | (#39375899)

I dread to think what Grace Hopper looked like.

Clams may have beards too, y'know.

Re:Nah! It's Facial hair... (1)

OeLeWaPpErKe (412765) | more than 2 years ago | (#39376177)

There's plenty of women in the history of science, and in computer science. They're all ... well they're not beauty queens. In fact there's very few beautiful women in science at all, and of course very few beautiful men (or so I hear from ...).

And this is good. It means that they actually did something important, were actually capable of doing interesting things.

Re:Nah! It's Facial hair... (1)

jejones (115979) | more than 2 years ago | (#39376499)

Ada Lovelace, judging by portraits, was no slouch for looks. I vaguely recall reading secondary sources, but I can't cite them. Ditto for Sonja Kovalevsky (for her, there's photographic evidence).

That said, you're right. Beauty doesn't matter in this context.

Re:Nah! It's Facial hair... (1)

mcgrew (92797) | more than 2 years ago | (#39376369)

Actually, she wasn't that bad lookijng, but I'm having a hard time finding photos of her when she was young. This photo [computerhistory.org] looks like she's maybe 50 or so.

Re:Nah! It's Facial hair... (1)

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

2 minutes with Google [st-and.ac.uk]. Rather plain, neither a beauty nor ugly (80 years old admiral photo is best, anyways).

Re:Nah! It's Facial hair... (1)

Sponge Bath (413667) | more than 2 years ago | (#39376387)

I dread to think what Grace Hopper looked like.

Grace: When will professional women be treated with respect?

Master Po: Patience Grace Hopper. If a man dwells on the past, then he robs the present. But if a man ignores the past, he may rob the future. The seeds of our destiny are nurtured by the roots of our past.

Grace: Whatever.

Re:Nah! It's Facial hair... (0)

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

Facial hair is so 1980s. Skin Conditions are where it's at today.

Re:Nah! It's Facial hair... (0)

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

By cracky!

Why New Programming Languages Succeed Or Fail (-1)

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

Hmm, let's see...New programming languages succeed or fail because programmers either adopt them or they don't.

Re:Why New Programming Languages Succeed Or Fail (4, Insightful)

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

Succeed == Adopt. So the question may be rephrased as "Why programmers adopt a language?", and this time you can post a constructive answer.

Re:Why New Programming Languages Succeed Or Fail (4, Insightful)

TheRaven64 (641858) | more than 2 years ago | (#39376029)

Judging by languages that have succeeded over the past 20 years, I would say that the main factor in success is a large company pushing the language. It seems that the average programmer is swayed by marketing just as much as much as anyone else. Then, beyond a certain threshold, network effects kick in. If you want to interoperate with another project, life is easier if you use the same programming language.

Re:Why New Programming Languages Succeed Or Fail (4, Insightful)

Lennie (16154) | more than 2 years ago | (#39376063)

I would say 'killer application' applies to programmers as much as does to consumers, so 'killer platform' might be the iPhone/iPad and the language in this case might be Objective C ?

Re:Why New Programming Languages Succeed Or Fail (4, Insightful)

Oswald McWeany (2428506) | more than 2 years ago | (#39376121)

The average programmer doesn't get much say in the matter- it is the company that hires him that does.

However, yes, it comes down to marketing. Big companies like Microsoft have a much better chance of convincing a CIO that they need to be using their language.

Let's assume a theoretical company, Megasoft, produced a language Db - D Flat is much better than C Sharp - it is easier to learn- faster to compile- produces smaller .exes, runs much faster. It even puts the kettle on and makes you a cup of tea whilst you program (coffee if you prefer).

Which company do you think the CIO is going to go with- Microsoft with their flashy brochures- or Megasoft that no-one has heard of with their awesome product.

Right, the CIO will insist that all coding be done with Microsoft. Microsoft will no doubt have given him a t-shirt at the last trade booth. Thus, they are the obvious choice.

Re:Why New Programming Languages Succeed Or Fail (4, Insightful)

Sique (173459) | more than 2 years ago | (#39376187)

So who was pushing Perl, PHP or Ruby?

Re:Why New Programming Languages Succeed Or Fail (0)

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

Me

Re:Why New Programming Languages Succeed Or Fail (0)

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

What large company jump-started PHP or Ruby?

Re:Why New Programming Languages Succeed Or Fail (1)

Nursie (632944) | more than 2 years ago | (#39376819)

Am I just being ignorant or was there no large company behind python either?

Re:Why New Programming Languages Succeed Or Fail (4, Insightful)

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

Judging by languages that have succeeded over the past 20 years, I would say that the main factor in success is a large company pushing the language.

I'm having trouble thinking of any such languages other than Java and C#. I don't recall C (if you go back a bit more than 20 years), Perl, PHP, Python, or JavaScript becoming widely adopted because they were pushed by large companies (though I admit that JavaScript is debatable).

Re:Why New Programming Languages Succeed Or Fail (1)

Hognoxious (631665) | more than 2 years ago | (#39376209)

Adopt is transitive, succeed isn't.

Type mismatch near line 0. Bailing...

Compatibility or conversion (2, Insightful)

sunderland56 (621843) | more than 2 years ago | (#39375719)

Don't expect me to port existing code to your new language. Either make it compatible - i.e. an old language with new features - or provide me with an automated conversion tool.

c++ would have died within months if it didn't accept existing c code.

So why the fuck do we have Python, Java, and C#? (3, Insightful)

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

What you say is utter bupkis and bullshit. There are many relatively modern languages that have become very popular without having any sort of real compatibility with C, C++, or any other programming language.

Just look at Perl, Python, Ruby, Java and C# for some examples. Those have all arisen in the last 20 to 25 years, well after C was extremely well established. While they can call out to external C code with varying degrees of difficulty, they aren't code-compatible with C in any way. SO HOW IN THE FUCK DID THEY MANAGE TO SUCCEED AND BECOME WILDLY POPULAR IF COMPATIBILITY WITH C IS SO DAMN "MANDATORY"?

Re:So why the fuck do we have Python, Java, and C# (1)

Sique (173459) | more than 2 years ago | (#39376225)

Because for instance, Perl can interface with C libraries? (just write the right lib.xs for your C lib.)

Re:So why the fuck do we have Python, Java, and C# (1)

Brian Feldman (350) | more than 2 years ago | (#39376477)

Yeah, him saying "call out to external C code with varying degrees of difficulty" is purely disingenuous. There is NO difficulty; it may be slightly tedious, but really, no, it's not a big deal. It's quite easy to get a Java/Ruby/v8 (node.js) application bound to an existing C/C++ code-base.

Re:Compatibility or conversion (0)

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

I'm not sure automated conversion tools would actually be enough. Fixed form Fortran while listed as obsolescent hasn't been deleted from the languages. Yet, there are automated tools to convert fixed form into free form.

Re:Compatibility or conversion (4, Insightful)

betterunixthanunix (980855) | more than 2 years ago | (#39375779)

Don't expect me to port existing code to your new language

Who says you need to port anything? If the language has a foreign function interface, you can just maintain the old code and build on top of it.

Re:Compatibility or conversion (2)

buchner.johannes (1139593) | more than 2 years ago | (#39375907)

That's the great thing about the JVM ... you can try out different paradigms, but you can always reuse the code, no matter if it is written in Java, Jython, JRuby, or any of the more experimental languages I don't even know about.

Re:Compatibility or conversion (1)

rubycodez (864176) | more than 2 years ago | (#39376011)

sorry, real java doesn't work that way. old java has problems running under newer jvm, old j2ee running under new j2ee. write once, run anywhere, for a while until it doesn't

Re:Compatibility or conversion (2)

UnknowingFool (672806) | more than 2 years ago | (#39376357)

First of all, "Write once, run anywhere" never meant to apply to all versions. It meant to apply to different platforms. By your logic, no language could every grow as backwards and forwards compatibility must be maintained at all times. Second for the most part, java is fairly backwards compatible. I don't know what kind of code you are writing but programs I wrote 10 years ago still compile and run.

Re:Compatibility or conversion (1)

rubycodez (864176) | more than 2 years ago | (#39376489)

I am in fact testing legacy java code for migration to newer j2ee platforms for a very large corporation, it's a sordid mess. Plenty of other languages have far less issues for ten year old code.

Re:Compatibility or conversion (1)

UnknowingFool (672806) | more than 2 years ago | (#39376687)

So it has nothing to do with the quality/purpose of code someone else wrote. It's all Java's fault. It's the same story for every language.

Re:Compatibility or conversion (-1)

Migala77 (1179151) | more than 2 years ago | (#39375787)

+1. This is exactly why Java failed.

Re:Compatibility or conversion (2)

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

Easier to find a Java job in the northeast than any other language. C# is the closest and it isn't that close. C and C++ jobs are still here, but far, far less than 10 years ago.

Java failed in the browser but not because of compatibility - it was because it was a slow and awful experience, Javascript succeeded wildly in the browser and it is far less C-compatible.

Re:Compatibility or conversion (3, Interesting)

haystor (102186) | more than 2 years ago | (#39375889)

I suspect that the "Java failed" post was a sarcastic counter example of a language that stood on its own.

Java is unusual because it had a billion dollar marketing push explaining how it would change everything. Managers were taking Java classes to learn how it would change everything. None of this was aimed at the enterprise. It failed to be adopted most places it was aimed and somehow backed into the enterprise area due to lack of competition among Microsoft alternatives.

So the answer as to why Java didn't fail is probably that Sun bought it a place at the table. On its own merits, I don't think it would have gotten anywhere.

Re:Compatibility or conversion (4, Insightful)

shadowrat (1069614) | more than 2 years ago | (#39375827)

java failed? are you confusing a platform with a language? java seems pretty healthy on servers and mobile.

Re:Compatibility or conversion (0)

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

>java failed? [...] java seems pretty healthy on servers and mobile.

I can understand people wan't to play Minecraft on mobile...

But why should someone want to play Minecraft on a headless system? Or did you mean a Minecraft server?

Re:Compatibility or conversion (2)

GreatBunzinni (642500) | more than 2 years ago | (#39376091)

It sounds like sarcasm to me. After all, Java is, in any measure, a successful language and platform. A considerable number of respectable higher education institutions have adopted java as the programming language for both OO courses and intro to programming, and any job search returns a high number of jobs which explicitly require proficiency in java programming.

If that wasn't enough, there's android developing. Nowadays, if you want to develop software for a smartphone you are basically forced to write it in either java or objective-C.

So, it sounds like sarcasm to me. Either that or someone has been hidden in bunker for the past 20 years.

Re:Compatibility or conversion (1)

maz2331 (1104901) | more than 2 years ago | (#39376593)

Let's face it - Java is basically just C with objects, a huge library, without pointers, and compiles to universal format that runs on a VM.

Are you confusing sarcasm (1)

jbov (2202938) | more than 2 years ago | (#39376613)

Are you confusing sarcasm with ignorance? For the OP's sake, I hope so.

Re:Compatibility or conversion (1)

jbolden (176878) | more than 2 years ago | (#39375873)

I'm hoping you are being sarcastic with Java failed? Java went quickly to becoming the most popular language. I can accuse Java of lots of bad stuff. Failing to win market share ain't one of them.

Re:Compatibility or conversion (1)

MisterMidi (1119653) | more than 2 years ago | (#39375999)

He specifically said in the browser. How many java apps do you see on web pages nowadays?

Re:Compatibility or conversion (1)

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

Don't expect me to port existing code to your new language. Either make it compatible - i.e. an old language with new features - or provide me with an automated conversion tool.

c++ would have died within months if it didn't accept existing c code.

+1. This is exactly why Java failed.

I'm hoping you are being sarcastic with Java failed? Java went quickly to becoming the most popular language. I can accuse Java of lots of bad stuff. Failing to win market share ain't one of them.

He specifically said in the browser. How many java apps do you see on web pages nowadays?

I just quoted every parent post. Not one of them mentions browser or anything remotely related... until yours.

Re:Compatibility or conversion (1)

jbolden (176878) | more than 2 years ago | (#39376725)

No he didn't as VGPowerlord mentioned.

But even if he had, Java failures in the browser had nothing to do with conversion tools. There were no browser based apps to convert.

Re:Compatibility or conversion (1)

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

Yes, or at the very least, make it very easy to link to and call other languages. Mathlab/Mathematica can call C libs rather easily. C can call Fortran and Pascal. But some won't mix and that's a big show stopper. Another issue I think is with languages that give you too much leeway. If you can redefine the syntax, the operators, how they work, etc, then another programmer, even familiar with the language, will have no idea what you wrote. Case in point, C++ where you can overload '+' to operate 30 different ways. And they all look innocuous like C=A+B, obfuscating the readability under a cloak of invisibility. It seems nice when you first read about it but ends up a maintenance nightmare.

Re:Compatibility or conversion (1)

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

One would hope that a particular library/framework that is being used would be familiar to the people who maintain the code. If that's the case, then I don't see how operator overloading would be considered a drawback. Alas, IMHO C++ operator overloading is, to an extent, a crutch needed because the language is not very expressive. For example, in C++ the most concise way of setting up a constant type-safe matrix might be like this (this syntax is from eigen):
Matrix m;
m 1, 2, 3,
  4, 5, 6,
  7, 8, 9;

This required overloading both and , just to allow for minimum verbosity. Compare this to LISP, where the matrix constant constructor could be a macro, and you wouldn't need to overload anything at all -- the matrix constant would use competely standard syntax, and it could look somewhat like:
(setq m (matrix :rows 3 :cols 3
  1 2 3
  4 5 6
  7 8 9))
Note that if matrix were a macro, it'd run some code at compile time to take the numbers in the argument list and produce a matrix constant.

Re:Compatibility or conversion (2)

DarkOx (621550) | more than 2 years ago | (#39375795)

The limits that would impose on syntax and underlying data models would essentially stop all real evolution in this space. Thank your lucky stars this attitude is not pervasive or we'd all be working with slightly improved BASIC, FORTRAN, COBOL, and Ada environments today. The lucky ones would be maintaining code bases comprised of horrible COBOL to C conversions. If you have been in the retail or finance industries you have encountered some CBOL at some point.

No if anything new languages should provide some bindings to call methods and code written in other common languages. That way you can continue to leverage your large complex objects or procedures developed over years, without the constraints of the old environment. Sure you might have to deal with some messy type conversions multiple paradigm ugliness but you can most likely solve that once and wrap so it at least does not 'look' especially nasty.

Re:Compatibility or conversion (2)

lightknight (213164) | more than 2 years ago | (#39375839)

Nonsense. One of a programmer's favorite past-times is to rewrite a program in a new language.

Why? Because it gives us a chance to ditch some of the *shudder* old hackish code. A clean break, with an explanation that "what once was, is no longer."

All of this, of course, while being paid. ;-)

Re:Compatibility or conversion (4, Interesting)

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

Which is why COBOL is still alive, too much legacy code and too many libraries to re-implement. That doesn't really say much about new languages though, C to C++ is more the exception to the rule here in that it was an extension to C but C itself kept living its own life. Most other languages just grow and grow with one new feature here and one there and a few things deprecated but never really gone. And that's really why most new languages appear, to get rid of all the crud. To get rid of all the legacy code. To get rid of unsafe methods, stupid interfaces, stupid syntax, stupid keywords, inheritance systems, constructors/initialization and whatnot. I program in Qt/C++... but I'd just love to redo it without all the C-isms and take the best from Java and C#, it'd just be a helluva job. Many of the popular languages have had a huge corporation backing them - Sun for Java (now Oracle), Microsoft for C#, it's not just a language but today I'd also expect a fairly complete standard library (which is why I said Qt/C++, I'd not do plain C++) and that's a lot of work.

Re:Compatibility or conversion (1)

dskzero (960168) | more than 2 years ago | (#39376119)

Don't expect me to port existing code to your new language.

This part made me laugh so much.

Re:Compatibility or conversion (1)

Hentes (2461350) | more than 2 years ago | (#39376449)

Most new languages have some sort of foreign function interface so compatibility not that important.

Redundancy vs needed features (0)

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

There comes a point also when a new language does something an existing language already does, and does well. I dont need another language to learn that has no innovative and useful features.

Objective-C (4, Insightful)

cerberusss (660701) | more than 2 years ago | (#39375805)

What you can also do, is promise great riches, as in the case of Apple/iOS/Objective-C.

Re:Objective-C (3, Funny)

AdrianKemp (1988748) | more than 2 years ago | (#39375849)

I assume you mean aside from Objective-C being one of the best languages available?

Re:Objective-C (0)

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

I assume you mean aside from Objective-C being one of the best languages available?

What?! Apple BASIC no longer exists?!? Because if it still does, then that proves you wrong!

:-P

There is no magic formula. (5, Insightful)

ledow (319597) | more than 2 years ago | (#39375815)

There is no magic formula. But there are some simple things that I find help me that have NOTHING to do with the language itself, or it's technical advantages/disadvantages. Strangely, they correlate in no way to popularity of the languages

You need a single document to sell me your new language. If you can't explain the concepts, basically, to a programmer in a page or two (enough that if you try to sell EVERYTHING I get bored reading the document as a whole), then it won't wash. If I can't understand why I should use your language, I won't. (Spreading it across a Wiki doesn't count, unless that Wiki has a complete copy available as a PDF or something readable.)

Your documentation should also help when I have a "how the hell do I do X?" question.

You shouldn't just assume that your way is the best. Ever. Just don't. It'll annoy me.

You shouldn't just assume that I'm happy to spend a year learning the quirks of your language.

I should be able to knock up a quick sample program, that uses one of your new features, and understand it in a matter of minutes. Literally. Minutes. Including downloading and installing your compiler / interpreter and getting it running.

Google sort of understood this with Go: http://golang.org/ [golang.org] They have all of the above, and even an online "compiler". They fail a tiny bit with "what's new" and selling the language, really, which is a bit of a shame, but they do a good job.

Ruby does okay too.

But PHP, one of the most popular languages, has a web-site that doubles as a bomb-site. It's hideous and has always put me off, even if they do have some of this information hidden away. It's not selling the language at all(presumably because they're "big enough" for everyone to just know about it). It's like reading a security/release-mailing blog sometimes.

C# doesn't sell the language at all, anywhere, online as far as I can tell. The first hit is Wikipedia. The next few are resource sites.

As far as I can see, C# succeeded because it was backed by a big company. By contrast, Go is still pretty obscure (which shows you there is no magic formula - Go aces a lot of the checklists but still lingers in the background). PHP succeeded because it was quick, simple, powerful and "came first" in terms of web scripting. It also created one of the web's largest security nightmares, which was something it was supposed to replace (Perl CGI).

C was popular because it was unique at the time, and powerful. C++ was popular basically because C was (that doesn't mean it didn't have advantages too, but it got popular by riding along - not by it's own merit at first, but that's what HAS kept it in place ever since).

There's no way to predict a success. Ruby / Rails came out of nowhere as far as I'm concerned and Ruby's been around since the 90's (Has it? Really? Bloody hell! Where was that hiding?). But things like Haskell were around too in that time and have never really caught on.

It seems the criteria are "ready - while being in the right place and right time", and almost the inverse of what you'd expect given a look at how much they want to ease programmers in. It seems that if you want to stand a good chance of being the next-big-thing, make an awful website, don't put up examples, make the simplest thing complicated or impossible, make an horrendous security mess, and then put it online. Then find the next fad, say your language is perfect for it, and push it everywhere you can.

Re:There is no magic formula. (4, Insightful)

jbolden (176878) | more than 2 years ago | (#39375941)

But things like Haskell were around too in that time and have never really caught on.

Huh? When Haskell came out it was a replacement to Gopher, a language not even terribly popular with the functional community. Haskell is now by far the #2 most popular functional language, passing even languages like Mathematica. Haskell has become the primary language of compiler design with ideas from Haskell leaking into most compilers including most importantly the Visual Studio compilers. Ideas from Haskell have led to whole new classes of languages like Scala and Clojure. Ideas like lazy data structures are become standard approaches in many languages.

Further Haskell has completely altered the entire way people think of functional programming. Monadic methods are now standard in most functional languages.

In what sense is Haskell not a huge success? Sure it isn't the mainstream language of choice, but then again a language that isn't good with interactive I/O is going to be unsuited for most day to day programming problems.

Re:There is no magic formula. (1, Insightful)

buchner.johannes (1139593) | more than 2 years ago | (#39375951)

I was making a similar point here [slashdot.org] in a similar recent discussion [slashdot.org], saying that syntax isn't enough to capture the success of a language. You need to look at how accessible it is.

For me, there are three important points to discuss programming languages:

    1. Syntax
    2. Access
    3. Community

ad 1) We know all about and can analyse the syntax. Fine. All the discussion happens here.
ad 2) But what does the finest Haskell help me if I can't access a CD, Bluetooth or a XMPP server, and whether it makes a difference where I want to run the code (web server, mobile phone, mainframe, laptop). In principle, all languages are Turing-complete and equivalent, and I can write wrappers between languages, but as long as I can't *practically* do all the things I need, I'm stuck. The available libraries/access methods draw a picture of what is possible. Here C due to its age, Java with it's tendency to make package that are reusable and Python are among the best (from my experience). As an aside, .NET lacks here, and massively because there is no spirit to make libraries available to others for free causing a non-availability of free libraries.
ad 3) A language is also dominated by its users. This is most noticable with PHP. The background of users dominates what a language should do. Also, this determines the amount of help and easy-to-access documentation. Which again makes a language popular or not.

One individual is not capable of addressing (2). Also, whether a language is picked up by the masses (3), or whether you can build and hold this community, is not a rational, predictable process. When designing a language, you don't have full control over success.

When comparing two languages, don't just look at (1), also look at (2) and (3).

Someone added tools/IDEs as a 4th point.

Re:There is no magic formula. (1)

AdrianKemp (1988748) | more than 2 years ago | (#39375959)

To be honest, I think C# was a big success partly as you say because Microsoft rammed it down everyone's throat with .net, and partly because it made Java programmers not wet themselves with fear.

I'd personally say it's 50/50 between those two. I know a lot of people who learned Java first that are absolutely petrified of ever having to actually understand how a computer works. C# appeals to that in a big way.

Re:There is no magic formula. (0)

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

Somehow you've reduced the field to a battle between shiny well-marketed languages and languages that exist simply because they are useful. Worse, you've come out on the side of shininess. Nice work accepting modern consumerism without question and applying it to the tools of abstract thought.

Gosh, I think the complete opposite (2, Insightful)

SmallFurryCreature (593017) | more than 2 years ago | (#39376425)

I HATE language selling sites. Many a new language or framework has a VERY nice presentation site telling you that THIS is the answer to your problems, this language will screw your gf, kill your dog and set your house on fire, letting you concentrate on the essentials of life. Coding.

PHP is totally different, it doesn't sell itself, it has no slick presentation, just every function described in clear plain English (and many heathen tongues like Dutch for those who were not blessed by god to be born in the US of A) with informative user comments with zero SPAM!!! That is what a not so good developer like me needs. Not so good? No. Really good programmers can pull a six figure income with ease, wallstreet pays the top close to a million, top game developers drive in Ferrari's. If you are coding web pages for less then 100k per year and have a bus pass, you are just not at the top. Accept it, the world needs average people too. You don't have to be the fastest runner in the world to escape the lion of unemployment, you just have to be faster then the guy next to you. Or have a gun... and shoot the guy next to you.

What I have noticed is that there are a LOT of elitist among coders who fail at being lazy. A good coder writes NOW what he needs NOW. Coding for the future is nice but you even end writing for the past instead because by the time you have written your future proof code, the future has become the past and you missed the present. Sure for some projects, the best is needed and that is great for those who operate at such lofty levels us mere degenerate mud dwellers can not even dream off. But down in the mud, a lot of code gets written that solves a problem NOW and makes money NOW.

ID spent a fortune on the Rage engine and the Angry Birds team did not. Which game was the greater success? Not that I think ID was wrong... but I know my limitations. Do you?

Ubuntu, PHP etc are typically vilified for their common populalatiry. Meanwhile the Debian and Ruby people never quite understand why their own products just don't get to be as popular. They rail about lack of structure or security problems (note that Rails had a far bigger security hole at its core greater then PHP ever had and no Rail fans ever apologized for their slurs against PHP) and don't understand that real users simply need clear documentation.

Sometimes a coder thinks that HE has the next framework... sometimes they even ask for advice on it. My advice? Forget the code. I believe you it is good. SHOW ME THE GODDAMNS DOCS to use your new baby. And in those docs. NEVER assume that I can read your mind. I need EVERYTHING explained because what seems obvious to you is not going to be obvious to anyone else.

It is part of the reason Javascript is such a dog. The language is pretty damn good in my opinion. But there is no documentation for the average coders. php.net is the gold standard for functional documentation of a programming language. Learn from it or die in obscurity. Unless your audience enjoys coding in the dark. Some do... but I don't.

It's all about the tools (3, Insightful)

CastrTroy (595695) | more than 2 years ago | (#39375825)

Whether or not a programming language succeeds has a lot to do with how available the tools are. The language must have a good IDE, quality debugger and profilers. If it doesn't have these tools, it's not much use to serious projects. Nobody wants to write a serious application without the use of a modern debugger. If the tools aren't available, are difficult to set up, or cost too much, people won't start using your language. There's plenty of free and really good languages with great tooling out there that you'd have to come up with something pretty extraordinary to succeed without a proper toolset around you language to succeed. Oh that and a big API that does a lot of the work for you. Nobody wants to write all their own libraries for doing things that should be included in the API.

Re:It's all about the tools (3, Insightful)

jbolden (176878) | more than 2 years ago | (#39375865)

I don't see any evidence that's the case. The whole debugger / IDE culture was built around a small subset of languages; essentially Algol syntax with static typing like C++, C#, Objective-C Java and Visual Basic.

On the other hand the major languages that have become popular in the last 15 years are often dynamically typed: Perl, Python, Ruby, PHP, Java Script. They don't have good debugger / IDE's as the technology doesn't exist yet.

Certainly the wealth of wonderful debuggers has helped the static languages. But they aren't a necessary condition.

Re:It's all about the tools (1)

CastrTroy (595695) | more than 2 years ago | (#39375933)

Lack of proper debuggers are what keep me away from languages. Javascript without a debugger is fine if you want to write simple event handlers, but if you want to do a fully javascript driven site like GMail, then you're going to need the use of debuggers. Also, I'm pretty sure debuggers exist for all the languages you mentioned, so I'm not even sure what your exact point is.

Re:It's all about the tools (1)

jbolden (176878) | more than 2 years ago | (#39376017)

Some level of debugging exists and there are semi-GUIs. But the kind of integrated syntax checking, debugging, IDE that exists for static languages don't exist for any dynamic languages. No one has figured out how to make them.

Re:It's all about the tools (1)

dkf (304284) | more than 2 years ago | (#39376139)

No one has figured out how to make them.

The concept might not even make sense. OTOH, the dynamic languages are much better at supporting an interactive model of development: try some things out at an interactive prompt, and cut-n-paste the stuff that works into a script file. Dress it up a little and you're good to go. It's a fast way to make something that works.

Re:It's all about the tools (1)

jbolden (176878) | more than 2 years ago | (#39376569)

That's part of the problem. No one is quite sure what the proper analogies are. Komodo (Perl GUI) about a decade ago started in the right direction. I wish it had been more popular.

Smalltalk? (2, Informative)

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

No debugging/syntax checking IDE for dynamic languages? Not if you count Smalltalk as dynamic. Smalltalk works arguably better for debugging, syntax checking, and more than static languages because of the VM concept.There can be a slight delay, especially if connecting to a VM remotely (Gemstone for instance), but Smalltalk's IDE even lets you program in the debugger. You haven't seen real TDD unless you've seen someone writing an entire app in the Smalltalk of choice's debugger. It also supports things like real-time unit tests that run as you type, direct debugging from web pages, runtime code changes, etc. The idea is that is always runtime.

Unfortunately, Smalltalk is too "weird" for some people, while others don't get it (example: power via simplicity). And then of course there was the vendor greed factor, incompatible dialects, etc.

I for one love working in Smalltalk and think files are a stupid concept, particularly for software development. OO source control? Yes please. People are just too set in their ways, and that's why many things that were good middle grounds have picked up momentum. I think a lot of people really do want something like Smalltalk and do not realize it.

I work with C, C++, Objective-C F#, C#, Java, Scala, Ruby, Python, Smalltalk, and a few others. I find it really funny that people are so excited over Ruby for example when it just feels like a crippled, inconsistent, buggy Smalltalk. I do like Ruby, but it feels like a toy in so many ways and I just end up using Scala or gasp, Java, Objective-C, or C# instead for anything real. I am happy to see newer projects like Pharo, but without a large war chest backing it, I am sure Smalltalk will remain a dirty secret and unheralded language. At least overall the ideas from Smalltalk have made computing as a whole so much better. It took too long though and we're still not caught up.

Re:Smalltalk? (1)

jbolden (176878) | more than 2 years ago | (#39376525)

Point well taken about Smalltalk,. I'd agree that Smalltalk was a huge innovator on IDE/Debuggers. In general too many things resolve runtime for debugging in the classic sense to work well. So I give the static languages the credit for GUI/Debugger.

That being said there is no static language (except possibly Haskell) I'd rather write in that Smalltalk.

Re:It's all about the tools (1)

w_dragon (1802458) | more than 2 years ago | (#39376681)

PHP has a built-in debugger, which NetBeans integrates with fine. Firebug has a debugger for javascript that works quite well, although you need to understand how functional languages work to really use it well. Syntax checking works as well as it does for any language. Can you actually point out something specific that Eclipse C++ does that Eclipse Javascript doesn't do? Or something that NetBeans Java does that NetBeans PHP doesn't do?

Re:It's all about the tools (0)

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

Firebug (+ addons) is a decent debugger for Javascript. Browsers have begun implementing native developer panes that are not so bad either.

Re:It's all about the tools (1)

w_dragon (1802458) | more than 2 years ago | (#39376085)

Javascript and PHP both have decent debuggers, not outstanding but they work. PHP has about a dozen IDEs ranging from ok to great. Dynamic typing doesn't really impact a debugger, all variables still have a type, it just isn't determined until the variable is set and it can change during execution. No different than a base pointer in C++ or a variable of type Object in Java.

Also never write Javascript as Java Script. It confuses people who may think that Javascript is related to Java, and shows your ignorance of the topic.

Re:It's all about the tools (1)

gtall (79522) | more than 2 years ago | (#39375927)

Bingo! And for those reasons you state, Haskell fails. Haskell is a wonderful language until you attempt to do anything. The problem with Haskell is that it is essentially an academic's language with no support environment save some silly command line crap.

Re:It's all about the tools (0)

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

If I saw a post that said "silly command line crap", I'd assume it was someone with an 8-digit user id. Did you buy your 5-digit account?

Heretic - we'll use emacs whatever the language! (2)

pr100 (653298) | more than 2 years ago | (#39376363)

Seriously tho' - python, for example, is successful without having a good IDE. There are some IDEs that some people would argue are good - but most of the people writing python are using emacs or vi.

I'm also rather sceptical about the need for a good debugger. Most of the time I find writing a couple of simple unit tests and a putting in a couple of diagnostic prints is fine for figuring out what's going on (and you have the tests forever, which means that changes are less likely to introduce bugs in existing functionality).

Recursive blogging (1)

b0nj0m0n (899670) | more than 2 years ago | (#39375877)

At some point in the very near future, Neil McAllister will be able to craft a post entirely from links to his own posts. There will still be an advertisment on each page with links to 3-5 of his own posts. Fans of Neil's opinion will rejoice.

Advice (2)

icebraining (1313345) | more than 2 years ago | (#39375921)

People posting hypothesis of what makes a language successful: if it predicts that Modula is extremely popular and PHP is essentially unknown, maybe you should revise it instead of blindingly post it just because you'd like that to be true.

A combination of things (1)

DrXym (126579) | more than 2 years ago | (#39375981)

A language will succeed if it is pragmatic, scratches an itch, is more productive than what exists already, is well supported preferably by multiple vendors, is cross platform, is simple to learn and offers familiarity with what has gone before. The further away from these ideals a language is the less likely it will be to succeed.

the only things that matter... (1)

hackula (2596247) | more than 2 years ago | (#39375983)

I love to mess around with wacky new programming languages in my spare time, but when it comes to business there are only two things that matter:

1) Documentation
2) IDE quality

Re:the only things that matter... (1)

betterunixthanunix (980855) | more than 2 years ago | (#39376113)

3) What they teach in school

Really, had Lisp been more widely taught, we would be talking about (incf Lisp) rather than C++ when we argue about programming languages. What is taught in school affects programmers' choices about languages and designs more than anything else. Most schools today teach C++ and Java; is it any surprise that these languages or very similar languages are commonly chosen for new projects, even where there are other equally valid choices (say, Clojure instead of Java or OCaml instead of C++)? We are seeing a similar trend with the rise of Python: more schools are teaching it, and it is simultaneously becoming more popular out in industry.

There are certainly exceptions to this, languages that became popular without any schools having taught them, but I think it is hard to argue that what schools teach does not have a major impact on what languages are used.

Re:the only things that matter... (1)

CastrTroy (595695) | more than 2 years ago | (#39376355)

It works both ways though. Many schools try to teach what's relevant in the workplace. Although there are some more "academic" institutions that will focus a lot on things like scala, lisp, haskell, and others, many schools will try to through in a few courses where you're using "industry" languages because they want their students to be able to get jobs afterwards.

Needs to fill a need (4, Interesting)

tomhath (637240) | more than 2 years ago | (#39376001)

Lopes observes that few successful modern languages have roots in academia. An academic herself, she's naturally dismayed....Successful languages have a niche

That's really the heart of it. No matter how "good" a language might be from an academic's perspective, it has to be actually useful to be used.

C was (and still is) a great alternative to Assembly

Java succeeded mostly because it was Not Microsoft, but in part because C++ is a miserable language and the world was ready to replace COBOL, ALGOL/JOVIAL, and FORTRAN.

Ada failed for many reasons, but mostly because it was just glorified Pascal and had all the limitations that made Pascal a good student language but lousy for real work.

Lisp, Perl, Javascript, Python, etc. all fill niches; some niches bigger than others.

Ada did not fail at all. (5, Informative)

master_p (608214) | more than 2 years ago | (#39376303)

Ada did not fail at all. It is used for exactly what it was designed for: mission critical defense applications.

Ada was not designed for intranet or web or mobile or desktop applications, although it can do those things really well.

You only need one language and that is.. (1)

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

C++.

There is no need for anything else.

Re:You only need one language and that is.. (0)

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

C++.

There is no need for anything else.

The low level stuff you do in C++, I do in assembler.
The high level stuff you do in C++, I do in Prolog.

Standard library (1)

jgfenix (2584513) | more than 2 years ago | (#39376301)

It must have a big standard library which covers most common needs. In Java you can develop almost any kind of application without the need for third-party libraries.

Does It Have A Platform? (1)

assertation (1255714) | more than 2 years ago | (#39376323)

Popularity is all about making it EASIER.....and FASTER, to produce stable, fast, and reasonable footprint applications.

If a new language doesn't do that on its own, then it needs a platform or set of tools to make that happen.

If a new language just lets you do the same things, but in a different way, with maybe 1 or 2 things being better then there is no motivation to learn it, use it or make things for it.

Why use a new language if it's not new? (0)

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

That means new languages should probably be at least a little C-like [... it should use] curly braces and cryptic operators [...] Furthermore, new languages should support familiar programming styles

What's the point of using a new language then? I found it liberating to get rid of the (function(){...})() cruft with the switch from Javascript to Coffeescript. According to TFA's philosophy, Coffee does it wrong because it alienates Javascript users. What would be the point of using it if it only offered "baby step" enhancements, at the expense of needing a Javascript interpreter/crosscompiler?

Or to say it with Alan Perlis:

19. A language that doesn't affect the way you think about programming, is not worth knowing. (Epigrams on programming [uni-tuebingen.de] -- original page [yale.edu] seems down)

Oblig... (1)

alex67500 (1609333) | more than 2 years ago | (#39376469)

There are only 2 different types of programming languages: those everybody continuously bitch about, and those nobody uses.

Existing code - but not what you think (0)

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

What makes a language successful, is people using it. Again, also not what you think.

What it takes is for a 'killer-app' to be written in the language first. People want to use and improve that app, so they learn the language.

Sometimes these apps are business apps, and wanting to use and improve means getting a job.

Sometimes these apps are hobby apps, and wanting to use and improve means personal satisfaction.

I've never learned a language for the sake of learning the language. I've always learned a language so I can work with projects already using it.

Of course we need more languages... (0)

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

Scala and Clojure (on the JVM side) are very new and Haskell (relatively new) are showing that there are many things to be learned by creating new languages. And there are lots of other cases.

I find Clojure particularly interesting because adding vectors and maps (in addition to lists) to a "Lisp one dialect" is nothing short amazing. Of course it's not "the one ultimate Lisp". But it shows that even in the Lisp world there are still interesting things that can be done.

We're not anywhere near what we should aim for: software and languages are decades behind hardware.

Anyone who thinks is current language is "good" is a knee-jerking fool with a myopic vision. Modern languages aren't good. Modern VMs aren't good. They do s*ck.

Linus Thorvalds (you know, he made that little thing that powers hundreds of millions of cellphones, routers, servers, etc.) recently said in a filmed interview that Java s*cked and that the JVM was lame.

And I think he's right on spot. Yet for a lot of "Real-World" [TM] application it's the "best" we have today. But it doesn't make the JVM great at all. It simply makes it "the best VM so far"... And there's still a long way to go.

In my own stupidity I used to think that "Java the language" sucked (don't get me started on the non-portable C#) but that "Java the virtual machine" was good. Now I realize they're both gigantic kludges.

At least the JVM offers a good starting point for someone wanting to create a new language: Rich Hickey who created Clojure nicely explains that.

But still: the JVM is certainly not the be-all end-all of VMs (tail call optimization for a start ; )

I both pitty and envy the comfort of those thinking that their language is a good language...

So trivial (0)

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

All the languages that have succeeded, did so for just one simple reason:

they solved a problem many people had.

That's it. Marketing does help, yes. Documentation too, of course. But the key is helping people solve their problems.

COBOL, Fortran, LISP and C where among the first. COBOL appealed to the business people, Fortran made it easy for scientists, LISP for early AI and list heavy processing, and C for the performance savvy (just anybody else).

C++ was there when C people wanted to grow, and go into the business niche. Then came Java, just when a COBOL was overdue.

Visual Basic helped stuff enterprises with kids coming from 8 bit computers, very little formation and low income expectations. C# is just the replacement of Visual Basic.

PHP was there when people started crafting complex web sites. It was simple and got the job done.

Perl was the choice for many years when a Unix Shell hack starts to do a little too much. Currently Python is taking this place.

And so on, and so forth. No great mystery, really.

Its not the languare only per se (1)

McLoud (92118) | more than 2 years ago | (#39376697)

It's not really just the language. It's the entire programming environment: the language, the library, what system features it allows you to get your hands into and failing that last one, how much the language has "build in" and with how much quality, how much trouble-less it is to run in your target system, how much easy is to build a program around it
The major PITA's I have found with "alternative" languages is when building beyond hello-world/clickety demos. Many languages with their respective build environments fail to provide a good desktop infrastructure to build rich apps. Some fail at the web side of it. Some ain't much good at any of it. For windows desktop apps, if you don't provide support for system widgets, you better have a alternative to the build in rich editor with printing support that can just copy/paste to/from office-like software without much trouble. Many focus too much into the "programming" side of it and relegate the integration with everything else to second plan.

All maintream languages are a "fail" (0)

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

Because they let programmer do whatever they want. Coding style - anything goes. Documentation - not needed. Unit Tests - huh, why? Patterns - Never heard of that? It is this cherished freedom that is killing reusability and security and causing folks to reinvent the bugs over and over again. So unless we get a language that is a like a code nazi from the dark side of the moon, no progress will be made.

Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

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

Submission Text Formatting Tips

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

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

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

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

Loading...