Rethinking payment models for software development tools

jolon
15 min readSep 12, 2022

Most software development tools these days are free: Xcode, VS Code, Rust, Java, Swift, C/C++, Python, etc., which is great for getting into programming and also for trying out new technologies, but is free really the best for our software development tools?

There are some exceptions to the free trend, but they are few and far between. One thing that makes it difficult to charge for software development tools is that the world’s largest companies (Apple, Google, and Microsoft) provide their own very capable tools for free. This makes it difficult for paid for software to compete and also makes paid for software less attractive to developers.

Beyond for-profit corporations providing their tools for free, there is a strong tradition of open source in software development which leads to a vast landscape of free software on sites like GitHub and available through package managers.

Given how prolific free software development tools are and how few paid tools there are, is it possible that this may not be the correct approach and could the ecosystem benefit from paid tools?

In this article I explore the history of why so much development software is free, the downsides of that approach, the benefits of paid for software, and how a paid for approach might work.

The pre-internet era

In the 1980s and 1990s it wasn’t uncommon to have to spend upwards of $1,000 on an SDK to develop for a particular platform, perhaps it was for Apple’s MPW (Macintosh Programmers Workshop), or MetroWerks CodeWarrior, or Microsoft Visual Studio.

Even then it seemed unusual that companies whose main product being an operating system, would charge so highly for software development tools when they depended on third party developers to develop a rich app ecosystem to make their platform desirable for endusers. And over time their tools eventually became free.

It is worth mentioning in the 90s and earlier before high speed internet, programming tools were typically distributed on disks, and sometimes through retail stores, and may have included large heavy manuals. So the software couldn’t be free, but not only was it not free, it was quite expensive.

The cost of software

Today we pretty much assume development software is free. Download VS Code, brew install your favourite programming language and off you go. However, this is probably only true for software development.

Back in the 90s when desktop publishing was taking off it wasn’t unusual for software like QuarkXpress, Adobe Photoshop, and PageMaker to cost over $1,000. And it wasn’t uncommon to need to buy three of these packages, add in inflation and people were spending the equivalent of $6,000 just on software.

Even today Adobe Photoshop is $30/month or $360/year, for photo editing software! We aren’t talking something cutting edge like video editing software, no, photo editing software that has been around for 30 years and for which there are cheaper alternatives.

Why development software became free

As mentioned above it is in a platform’s best interests to lower the barrier to entry for software developers on their platform, and that includes the cost of the SDK.

But there are other reasons. The concept of “open source” is distinctly a software development concept. Open source was a burgeoning movement in the 90s when SDKs started to become free, largely spearheaded by organisations such as GNU.

So there already was a large amount of “free” software for software development in that era as a result of the open source movement: C/C++, emacs, vi, Make, Python, Java, etc.

However there were plenty of other companies making paid for development tools, like Borland, Symantic, and MetroWerks. These companies largely went out of business when the platforms started releasing their tools for free.

Paid vs Free SDKs

As mentioned most corporations, like Apple, Microsoft, and Google, provide free SDKs for their platforms. However, these aren’t exactly free.

Firstly, companies like Apple charge developers $99/year just to submit applications to the app store even if the application is free and doesn’t make the developer any money.

Secondly, these companies have done the calculus and determined that free is the right price for them to maximise their profits. These companies are in the profit maximising business. They aren’t giving software away for free out of the kindness of their hearts as a public service for the benefit of the community. No they are making big dollars, oh and look they are the world’s largest companies. You don’t become the world’s largest companies giving things away for free.

So lets look at each platform and see which programming language people are predominantly using for software development:

  • Apple: Swift or Objective-C
  • Microsoft: C# or Visual C++
  • Google: Java and now Kotlin

But wait, where is Python, PHP, Elixir, Scala, or Rust?

One exception to these is JavaScript, which I think is a special exception, but actually when investigated is not all that different (see the Addendum for a discussion on JavaScript).

So we can see that the best language to use to develop for a platform is the language that the company that builds the platform provides!

Why not all of the open source alternatives?

The problem with open source

When I talk about open source here, I specifically mean a software development environment without a paying business model, the classic example would be GNU. Obviously there are various ways to fund open source projects, but most, if not all, of them do not have the goal of profit maximising like the aforementioned companies.

It is possible for companies like Apple to adopt an open source philosophy, in the same way that they give their SDKs away for free (but aren’t really), they can open source parts of the their SDKs for the sole purpose of maximising profits. A company like Apple generates large amounts of profits, invests it in a new endeavour like Swift, and then partly open sources it later so it can benefit from the open source community. This is the opposite of an open source project which is built on someone’s free time out of the goodness of their heart, and later maybe some consideration is given to how the project could be sponsored to keep it alive as it grows.

Are there still any paid SDKs?

Not from large companies whose primary purpose is to increase the market share of their platforms.

But there are paid development environments:

JetBrains

JetBrains is a great example of a company successfully charging for a development environment in a sea of free alternatives.

JetBrains charges per user $499/year for their IntelliJ product for organisations. That’s impressive. Note that JetBrains didn’t create any of the languages, compilers, frameworks, or platforms, yet are still charging premium pricing. Imagine if they were also creating these things?

Interestingly they did.

Kotlin

Kotlin is probably one of the fastest growing programming languages at the moment. It is primarily designed as a modern replacement for Java for Android development. You could say it is roughly the equivalent of Swift replacing Objective-C.

Kotlin was developed by JetBrains and is now promoted by Google for developing Android. Also related is that Google has used JetBrains’ IDE for Android Studio and give it away for free.

So here we have two examples where, in a sea of alternatives, it is the company that charges a premium for its products (JetBrains) which is picked up by Google to firstly provide their default platform IDE and secondly their new default programming language.

Advantages of charging for development software

It is quite clear that when charging for development software, either directly (e.g. JetBrains), or indirectly (e.g. Apple), that the end result is far better than open source alternatives. “Better” may not be the right word, but more impactful, more complete, more usable.

Disadvantages of charging for development software

One downside at the moment is that the main companies that have the profits to develop and give away their own software for free are large bureaucratic companies that aren’t the most innovative.

Google is the classic example where they have literally used an IDE and language from a completely different company, the innovation didn’t (and maybe couldn’t?) come from within.

You could argue that Swift was innovative from Apple, but Swift was the brainchild of one man, Chris Lattner, and initially it was a side project. If Lattner had never worked for Apple there would be no Swift. And Swift seems to have floundered after his departure and under its new community process.

Large companies aren’t great at innovating. Smaller companies and individuals are, but the trend for decades now is that if you are a small company or individual working on a new language or framework you should just give it a way for free.

A contrarian view on investing in software development

I’m not deeply involved in the investment industry but I can’t imagine investors getting excited about someone pitching a new programming language or framework.

So how are we going to make money from that?

Also, I think most investors are just not going to get the significance of a new language.

This is quite the opposite to the 1980s and early 1990s. Perhaps not so much in new languages but in new platforms. In fact in that era that’s where much of the investment was flowing. After all companies like Apple and Microsoft were founded in the 1970s specifically as hardware and software platform companies. When was the last time we saw a new platform company?

Apple created Object Pascal, NeXT Objective-C, Microsoft popularised C++. New platforms needed new languages, this was understood.

If no investor wants to invest in a programming language, yet programming languages are critical for software development, isn’t this a potentially massive blind spot, a contrarian indicator?

As Steve Jobs would say, computers are bicycles for the mind, this applies to nothing more so than programming languages. Programming languages are the representations of our minds concepts to build software. We can build software better, faster, more reliable, more complex, with better languages. And with that better software our users become more empowered. It seems like software development environments should be the number one thing we invest in. But it isn’t. Not outside of the large organisations anyway.

How this might work

I’m not aware of any significant investment in a new programming language in decades (outside of the aforementioned companies). One challenge with new programming languages is that they take a long time to become stable and usable, there is a lot to be built out. Chris Lattner is arguably the world’s foremost compiler designer, yet it took 4 years before Swift’s initial release and even then it changed significantly in the first few years.

Elon Musk says that building physical things is hard, and he is no doubt right. But I would argue building a new operating system and programming language may be just as hard or harder. When was the last time there was a new operating system? (It might’ve been Windows NT almost 30 years ago?)

So investors must be prepared that there may not be any usable product for at least 5 years and not really stable for 10 years. This might seem unappealing to investors, yet investors will happily invest in biotech companies with similar ROI times, why not tech?

Secondly, I think we need to consider a paid for platform. As a software developer I love downloading my VS Code and getting all the free updates and extensions and being able to grab anything I want off GitHub. It’s great. But when it comes time to build an app, it’s Xcode and SwiftUI.

Unless you are creating a hardware platform and operating system and aiming for maximum market share where it makes sense to give the development environment away for free, then I think the alternative is to charge for the software tools.

Keep in mind that before Kotlin, JetBrains did not develop hardware, an OS, a programming language, or a framework, yet have been able to charge premium prices just for an IDE.

There is evidence that a paid for model worked. Hypothetically, let’s say you have a quirky somewhat academic language like Haskell, but give it some syntactic twists, build out extensive API support for clients and servers, develop a full featured IDE, why not charge $499/year like JetBrains does?

Also if the language was so good that it dominated everything: browser, phone apps, server, and was good for low level performance tasks like Rust to high level scripting like JavaScript, that would be a fairly large market. How many people in the world today are doing some kind of coding? And if you could make the experience even better could that market be expanded?

Could we make a compelling investment argument for paid for development software?

A software development tool company vs a platform company with software development tools

If we look at recent history we can see that most new languages were created by innovators either at companies or subsequently adopted by companies. Whether it is NeXT adopting Objective-C, or James Gosling developing Java at Sun, or Chris Lattner Swift at Apple, there has been innovation but it has either happened at large companies or been fostered by them. If these innovations have happened in large corporations why go down the independent path? Why not pitch it to a large company and let them nurture it?

One argument for going independent, is that these corporations’ main goal is not necessarily a great software development experience. Certainly the software development experience will have downstream effects but it’s not the number one factor.

Take Apple as an example. They have set very high usability standards. As a result customers are very loyal to their products and are happy to pay a premium. But to achieve the high usability standards it can be a pain in the neck for developers to comply with these standards. However, developers are willing to comply because it provides them access to a high margin target market. So there is an example where the priority is not the software development experience but the consumer. In this case I think it is fare to say that is the right choice for Apple, but it does highlight the fact that Apple’s priority is fostering its target market, not necessarily its developers. For example, let’s say Apple has a strong high margin target market like no other company, then who really cares about the developer experience because no other company is providing access to that market.

By taking an independent approach to developing software tools, the focus will always be on providing the best tools, the developers are your customers. Apple, Google, and Microsoft, the developers are not their primary customers.

So it seems reasonable to think that the developer experience would be better if a company was dedicated to just providing tools for developers and we can see that has been the case where Google is now literally using JetBrains for their Android Studio IDE and JetBrain’s own developed Kotlin language.

Investor appetite for programming languages?

Is there investor appetite for programming languages? I don’t know, I would say no.

I would see investing in a new paid for programming language as a bit like starting SpaceX or Tesla. We are at a point now where Tesla is the fifth largest company in the S&P500. I’m not sure how many investors thought that was possible when Elon was first pitching Tesla, and likewise for SpaceX.

I think the same is true of programming languages. It seems not only like a long shot, but it’s not something that’s actually been done before. A successful private rocket company? A new US automaker that only sells EVs?

To me this isn’t the typical pitch where you walk into a startup accelerator and say well it’s going to take 10 years, no one has done this before, investors don’t get it and aren’t interested, and we aren’t even sure of the business model.

Like SpaceX and Tesla, there is a goodwill element to creating a new programming language. In fact by default most programming languages are somewhat non-profit. I’m not sure how much James Gosling has profited directly from Java or Chris Lattner Swift, or Brendan Eich JavaScript. I would say very little, although I’m sure they have done well through related pursuits. And these are the paid for examples. What about Python, PHP, Objective-C, Rust, etc.? People aren’t creating new languages for profit, it’s for the love of it. And it isn’t just the original creators, there are entire communities of people that gather around and freely give their time with no expectation of any reward. It’s a wonderful thing about the open source community.

SpaceX and Tesla are kind of similar. You would be crazy to start SpaceX if you thought it was a good business idea, it really wasn’t. The motivation for SpaceX is clear, it is to make life multi-planetary. Tesla is similar although a little more planted on earth.

So who invested in these companies? It wasn’t investors who thought, yes this is a sound deal, I should get a good return in 5 years. No it was investors who had conviction, who thought this is a good idea, it may not be a great business idea, but this is something I should invest in. And invest in it they did and funnily enough they have now been handsomely rewarded.

I think the same is true for programming languages (and operating systems). Except they aren’t sexy like rockets and fast cars. And the broader public and investors don’t seem to get enthusiastic about it like they do biotech. But this is literally the technology the world is running on, this is the limiting factor. Everything you do, everything you build is written in some programming language or uses software written in a programming language.

Elon Musk has said Tesla isn’t really a company that builds cars, it’s a company that builds the machine that builds the machine. And a critical factor of that machine is the software which is written in a programming language. If computers are bicycles for the mind, what would a Lamborghini do for your mind?

I think programming languages (and by extension their operating environment, i.e. the OS) are severely underrated in modern society. If anyone does capitalise on this in the coming decades, I think people will look back and not believe how we could’ve missed it.

Who would lead such an effort?

Programming language development is quite frankly a pretty nerdy enterprise. But leading a company also requires talents in organising a large number of people and dealing with external entities. It’s a rare mix of talents. Someone who can get right into the weeds but be comfortable with the big picture as well. Two notable people come to mind: Steve Jobs and Elon Musk.

Interestingly I don’t think there has ever been anyone like this who has primarily developed a programming language.

From Steve Jobs’ Think Different Campaign:

Here’s to the crazy ones.
The misfits.
The rebels.
The troublemakers.
The round pegs in the square holes.

The ones who see things differently.

They’re not fond of rules.
And they have no respect for the status quo.

You can quote them, disagree with them,
glorify or vilify them.
About the only thing you can’t do is ignore them.

Because they change things.

They push the human race forward.

While some may see them as the crazy ones,
we see genius.

Because the people who are crazy enough to think
they can change the world, are the ones who do.

In conclusion

Today if a new programming language originates outside of a large corporation, it is generally started as an open source project on GitHub, provided for free, by someone in their spare time, with no real expectation that they will be significantly financially rewarded for their efforts. And there doesn’t seem to be any alternative to this approach today.

What I’m proposing is that there is investor appetite to see programming languages and their surrounding tools as products that can be sold at premium prices to a relatively large market. The world should be investing billions or even trillions into software development tools, everything else builds on top of these.

People with ideas for programming languages should be able to pitch to investors, propose a reasonable 5+ year time frame and receive significant investment to establish a decent sized company and develop quality products. With the intention that this company could end up being one of the world’s largest companies and in turn handsomely reward the investors.

Addendum: JavaScript

I briefly mentioned JavaScript above, I will elaborate here on how even though JavaScript appears to be free and open source and not owned by a particular corporation that it does still largely fit into that model, although is still somewhat unique.

Firstly, JavaScript was developed at a large corporation (Netscape) in the heady days of the dotcom era with all the money you could throw at it. It wasn’t the best language, it was the support of the parent company that ensured its success.

However, JavaScript in the early days wasn’t designed as a full featured language for building applications (or servers!), it was a basic scripting language to perform basic validation on input fields or show an alert.

With Web 2.0, websites relied more heavily on JavaScript to provide more of an application-like experience. Initially this worked, but was very clunky. However, given how much the web had taken off and how much people used the web, the browser wars continued, because who controlled the browser controlled the world and likewise the browser with the best JavaScript support would control the world. As a result there may have never been so many resources thrown at a programming language to get something kind of basic running as fast as C.

We see parallels here of very large companies: Apple, Google, and Microsoft, using their immense profits to fund “free” projects. So even though JavaScript wasn’t unique to one company it still very much parallels the languages and platforms produced by these companies.

--

--