I'm wary about on-premise solutions. It appears to me that the client has access to the source code
No. They have access to an executable that is semantically equivalent to the source code, but it doesn't have to be the source code.
and can easily steal it.
Yes, they can.
Is this software business model safe for the vendor?
Stealing is illegal. This business model is exactly as safe as selling cars, which can also be stolen.
If you don't want your software to be stolen, don't do business with criminals.
There are also some other things you can do to discourage stealing your code:
- Make the software so good that people want to pay for it to reward you.
- Make the software so cheap that nobody needs to steal it.
- Offer additional services that are so valuable that people who haven't officially bought the software are at a serious disadvantage.
Also, there is a very important aspect for a lot of enterprises: buying software gives you a contract, and a contract gives you somebody to sue. They don't actually spend the money for the software, they spend the money for the right to sue you if your software screws up their business.
And even if people still steal your software, you can view that as free advertising. That's what Microsoft did for a long time. They knew that lots of students were pirating Windows, Office, and Visual Studio. However, they knew that once those people got into the workforce, they were all trained Windows, Office, and VS users, and so the companies bought those products.
Are there any successful companies that are based on on-premise solutions?
Yes. From the 1960s until about 10 years ago, every software company. Since 10 years ago, almost every software company.
Some companies that you may have heard of that made their success using on-premise software:
- Microsoft
- Oracle
- Pretty much every game company, whether that be console games, PC games, or phone games
- Every company selling apps on any of the app stores
- Pretty much every Linux company (they even sell source code that they don't even own and that you could also get for free somewhere else and are allowed and even encouraged to freely copy)
Stack Exchange also used to sell an on-premise version of their software. All the clones, however, were written from scratch, nobody copied the code.
I just saw GitHub's on-premise solution. It appears they give the GitHub source code to the client. It seems that the client can easily steal the code.
So? What can they do with that?
You cannot clone GitHub without the massive server infrastructure. And if you can afford that infrastructure, then you can also afford to negotiate a proper license deal. Also, even if you clone GitHub, you haven't cloned its community.
Also, GitHub has open-sourced many of the building blocks of their site anyway.
And again, the kinds of companies who buy GitHub Enterprise, they do that out of legal considerations, because they feel uneasy about hosting their source code somewhere else. Now, how likely is it that somebody who is so concerned about legal aspects has at the same time the criminal energy to steal your source code?
Enterprises don't steal software. They in fact pay overpriced in exchange for safety.
The Microsoft Windows 2000 source code was leaked. Just recently, parts of the Windows 10 source code were leaked. Under the Shared Source Initiative, you can buy a license for the Windows source code. Governments and researchers get access to the source code. You could, and still can, easily steal it; you just have to download it. Did that hurt Microsoft? How many competitors started selling their own variants of Windows? How many Microsoft customers canceled their support contracts and started maintaining their own versions of Windows and fixing their own bugs?
In the very, very, very early beginnings on computing, computers filled an entire floor, cost as much as the GDP of a small country, and were one-of-a-kind, so the very idea of "selling software" didn't make much sense. Software was purpose-written for one customer for one computer and all access to that computer was via remote terminals.
However, that changed in the 1960s, and ever since then, on-premise software has been the default, and in fact the only way to deliver software. Only in the last few years has network bandwidth and latency made it possible to even have something like web apps or SaaS. So, from the 1960s until the 2000s, there was nothing but on-premise software, and even now a significant portion of software is on-premise. For example, I haven an account for Office Online, but I still have 4 copies of Excel installed on-premise, one on each of my devices, and I very much prefer using those.
On-premise software has been the norm for decades, it is still the norm today, and it will probably be significant for quite a long time.