It's the language, stupid. Or is it?

In a forum dedicated to programming languages is it is easy to get carried away, and forget that choosing a programming language for a project is not just about finding the best or most expressive language possible, but often very much dependent on the platform for which the software is developed.

An interesting blog post about web applications, AlphaBlox and Oddpost should help drive this point home.

It describes the struggle it took to develop applications with rich user interfaces for web browsers, especially early versions of IE. Javascript was the programming language used.

Along the line browsers evolved (as well as the browser-language interface called the DOM), the language matured, and programming techniques were discovered.

So, yes, it is the language. But it is good to keep in mind that things are not always a simple as they may seem on first sight.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

People

It also depends on the skills and personalities of the people involved, and on the market for people with skills in the desired language.

But it's much worse if you sometimes sell the source code for your product. Then you have to convince all your customers that Language X (not Java or C#) is so great that the hard facts that they've never heard of it, and that there are few people who know the language, are of little consequence. Sigh. Sometimes I wish for compilers that would output Java or C# that looks hand-written, so I could write in the language I want, and deliver code in the language that they want.

linj

linj (mentioned here before, I think) is a step in the right direction.

Network Externalities

It's about network externalities. Finding people to work on systems, finding libraries, tools, books and so on is important. To get people to move away from that safe fold (VB, Java, C, etc...) you had better have a pretty compelling reason. They aren't just being sheep (well, all of them at least) - network effects represent real value.

Something else worth thinking about is, if you are using something that isn't very popular, how do you find jobs to do that don't require selling the language? It probabaly means you have to sell a complete solution that doesn't need a lot of intervention.

Networks

It's about network externalities. Finding people to work on systems, finding libraries, tools, books and so on is important. To get people to move away from that safe fold (VB, Java, C, etc...) you had better have a pretty compelling reason. They aren't just being sheep (well, all of them at least) - network effects represent real value.

No doubt these things are valuable. My point was that the value of these things may be different based on who you are and how you sell your software. If you can use a language like Nice, then you've still got access to all the network effects of Java libraries, JVM tuning & improvements, and all the Java tools that are based on parsing source code. Then there's still the question of people, books, training courses and so on, which may be irrelevant to the right team.

I'm just pointing out that if you sell your source code, you have to consider this tradeoff not just for your own team, but for all your customers as well. I might well want to use a more advanced language because I feel it could give me a competitive advantage, but not be able to because the clients just want Java source code.

So when your source code is part of your product, you're automatically deprived of the choice to use a better language. That's why I was wishing for human-style source code as a compiler target, so I could write in the language I choose, but still deliver the Java source code that the client wants.

WWW Browser User Interface is Well-Accepted

The problem with rich web apps is ultimately their variety of interface: they become increasingly arcane, so much so that the user requires training. In contrast, navigation in a well-designed web application is apparent to a knowledgeable browser user. So in the end it's time and money spent on training and learning that will keep rich web apps out of the marketplace and that will propel the use of simple web apps.

Mozilla XUL

...offers the NetSheet sample, among others.

Speaking of Mozilla programming

The How to write Firefox extensions looks interesting for those that want to tack on extras.

Stand-alone apps too

The Mozilla XUL code can also create stand-alone apps like Nvu.

Re: Mozilla XUL

Actually, Mozilla is teaming up with third parties to define next-generation application development converging the desktop and the web. What may be of most interest to LtU is the Mozilla 2.0 VM.

Andy Hertzfeld is doing related work, while others think Microsoft defines the whole game.

Re: Mozilla XUL

MozillaZine reports the launch of new websites, one documenting the Mozilla Application Object Model.