Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

"Ruby (with Matz), Python (with GvR), Clojure (Rich Hickey), the Linux kernel all seem to be doing pretty well with someone nominally in charge to make hard decisions."

So many programming languages. So much confusing choice and wasted effort.

What we need is for someone to be put in charge and consolidate all those programming languages in to one language.



I think you are getting down voted because you voiced a very controversial opinion without much explanation to to back it. Still, I think there is some merit to it (although I wouldn't go as far as saying we're ready for the "one language to rule them all" yet).

The paradox of choice and duplication of effort are very real problems. Let's take web app development for example. We have PHP, Python, Ruby, Java, C#, etc. Each language has their own set of libraries/frameworks and it takes a lot of time and effort for a programmer to learn all of them. I've been developing web apps for 10 years and yet, I couldn't contribute to a web app written in Java. What if instead of having X libraries in Y languages, we had X*Y libraries for a single language or X libraries of Y higher quality for a single language?

Standardisation has lots of benefits.

The web standardised on HTTP/HTML/CSS/Javascript and it enabled the creation of a massive ecosystem of tools, libraries and pool of developers. Front-end developers can easily switch jobs and contribute to other projects. I personally dislike languages that compile to HTML/CSS/Javascript because I think standardisation trumps their benefits. C is a de facto standard in the embedded world.

In my opinion, sometimes the hammers are so similar (e.g. Python/Ruby) that we should just collectively agree to only use one.


I know a very good developer who does both Unix and Windows development. He knows both very well.

He points out that with Linux you officially have the ability to customize everything perfectly, but spend a lot of effort just deciding what your stack will be. And if you integrate 4 or 5 things together, you get a lot of redundant crap because they did things differently.

In the C# world, by contrast, Microsoft declares technology winners and everyone adopts them. Those winners may be in principle not ideal, but the fact that everyone actually uses them saves a lot of wasted duplication of effort.


That's a very idealised view of Microsoft's platform. In particular, they have a habit of periodically declaring new technology winners that aren't compatible with the old ones, which then become legacy. Remember Windows Forms and Windows Presentation Foundation, both of which were Microsoft's officially-sanctioned ways of developing GUI apps with C# and both of which are now legacy APIs in maintenance-only mode?


This is true.

However the cost is no worse than the cost in the open source world of jumping on technology decisions that then wind up fading away and dying. And the fragmentation in the open source world makes that more likely.

Yes, in principle you can support open source software yourself. But you'd be amazed at the long term costs of doing so when you are locked in to a platform with diminishing market share.


Perhaps a better example of the Microsoft strategy would be Windows itself. For many years and several major versions, they went to extraordinary lengths to ensure backward compatibility and stability, so software that ran on Windows from the mid-1990s would still have a reasonable chance of running acceptably on Windows in the late-2000s.

We had almost reached the point where, notwithstanding any commercial licensing barriers, you could either still run application software natively, or it was so old that you could host a virtual machine containing the old OS within the new one. That's a great situation to be in if you rely on the software, and it's also a very nice situation if you write software, because it basically means that once you've got software that works it works forever. A firm foundation keeps everyone safe.

It's regrettable that under Ballmer and now Nadella they seem to have been pushing hard in IMHO the wrong direction with increasingly rapid updates and more reliance on inherently unstable on-line services, instead of playing to those traditional strengths. This makes Windows just as unlikely a prospect for long term stability as anything from Apple or the Linux world these days.

Personally, all I want is a system that I can buy today to do useful work and reasonably expect to still be doing useful work more than a year or two later. It's disturbingly difficult to find software that meets that apparently simple requirement any more.


If you want backwards compatibility, you really should look at IBM.

Their mainframe family still runs most serious financial platforms around the world, and it is routine to run code written decades ago on the latest generation of hardware.

No, it is not cool. It is not sexy. It is not cheap.

But it is backwards compatible. With a vengeance.


Silverlight, anyone? Microsoft is excellent at leaving folks high and dry.


Parent's post sounds like sarcasm to me.


That's missing the forest for the trees.

There is a difference between being able to choose between 15 tools and being able to choose between 15 hammers. The point of the article is that we just don't need 15 hammers -- especially as 10 of those are obviously inferior -- and the existence of 15 hammers is incredibly unhelpful.


http://en.wikipedia.org/wiki/Hammer#Hand-powered_hammers

You're not going to need 15 hammers on a specific job (... for one person), but there are a lot of kinds of jobs in the world with particular needs.


That's kind of a poor metaphor, as there are at least a dozen distinct and useful types of hammer.


Didn't God put Larry Wall in charge of that decades ago? How did that work out?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: