Let’s say you develop a software program for Windows in C#, then Joe Blow develops the same software program for Windows but instead codes it using C++.
If Joe Blow were to sell that software program, what would determine who would get more money for it given the different languages?
Assuming, both used the same licensing system and the only difference between the programs was the source code.
3
There are two things ordinary users care about:
- User experience¹,
- Features².
They don’t care about:
- The language used by an app,
- If it uses design patterns or not,
- Whether the code is readable,
- etc.
But…
… but a programming language can have a minor effect on user experience. An application which uses Java will require Java to be installed on the machine. This is not always an easy task for users with no technical background. The same applies for C# if it uses newer versions of .NET Framework on the versions of Windows which have older versions.
… but some users, such as:
- Geeks,
- Developers who want to create software products which are interoperable with your app³,
- System administrators who need to deploy your app in the shortest amount of time, in an automated way, on thousands of machines,
will all be concerned by the technology you use, and a choice of a language will become a feature.
Examples
-
OkCupid, a dating website, uses C++. Since it is a website, it really doesn’t matter which language is used behind for the end users. It would have been Ruby on Rails or JSP, nobody would see the difference, as soon as the user experience and the features stay the same.
-
Google Closure compiler requires to have both Java and Python installed. This impacts the user experience for a person like me who would like to install Google Closure compiler on a server and then create a service to use it from other machines on the local network, given that installing components like Java on the server is out of question in my case.
Side note: why do we care about languages?
If languages don’t matter from user’s point of view, the choice of a language is still important. Choosing the right language in a given context and given skills of your team means having less bugs, to be able to fix bugs faster, to improve creativity, to use a bunch of tools to enhance the quality of the application, etc.
One of the challenges of a project manager is to pick the right tools and languages to ensure that the product can be delivered on schedule within a given budget.
¹ Performance is not mentioned in the list, since it is already inside user experience. An application which responds fast enough provides a good user experience. An application which feels slow and unresponsive provides bad user experience. The choice of a language has small to no impact on the perceived performance. Any good interaction designer would tell that there are plenty of ways to enhance perceived performance without doing code profiling and optimization.
² Given that user experience counts much more than features, since there is no benefit from putting hundreds of features if no ordinary user can use or even find them. This also explains the actual trend to over-concentrate the efforts on user experience, while reducing the number of originally projected features.
³ Unless it’s a web app or an application which provides an API which can be used from nearly any language.
All else being equal, the language used to write the program shouldn’t affect the value or selling price.
The chances of all else being equal, however, are nearly nonexistent, so the question is almost completely theoretical, and the answer almost completely meaningless. In reality, language choice affects things like availability of libraries, documentation, tutorials, etc.
For example, consider just one small facet of development. A team writing a GUI in Java is much more likely to emphasize similar look and feel across platforms — you can move from Windows to MacOS to Linux, and hardly notice the difference. A similar program written using C++ and Qt would show much greater differences in look/feel between one platform and another.
Now, it’s certainly possible to use Qt from languages other than C++, so that particular point doesn’t affect ever possible pair of languages you could compare. Nonetheless, the pair of languages you choose to compare will only affect what differences you see, not the fact that there will be differences.
I doubt that it makes any difference either way.
If the program is a self-contained application that is targeted at end users, then they won’t care one way or the other what language it is coded in. It is not relevant to them … provided the application does what it is supposed to do, reliably, quickly enough, etcetera. The price they are willing to pay depends on the application’s utility and the market sector it is being sold into. The implementation language is not a consideration.
If the program is designed to be extended, tailored or embedded by the customer, then the programming language could be significant. The choice of language might affect the saleability and size of the target market, but I don’t see why it would affect the price.
@MainMa mentions that selling to geeks is different. I agree that technologically aware people are more likely to care about the implementation technology than the average customer. However, I think that language choice more is likely to affect the geek’s decision to buy or not buy rather than the amount of money they are prepared to pay.
1