In the 1970s, a man called Bill Gates developed an interpreter for BASIC: the Altair BASIC. Per my understanding, he was able to persuade the guy in charge of a microcomputer company to include the interpreter program on every microcomputer he sold, which I assume brought Gates and his crew some royalties. Apparently this made Gates a fortune. What I don't understand is why programing languages aren't as profitable today. What factors in the past made them profitable, but not today ?
I don't think Bill Gates made a lot of money off of the Alttair (did anyone?). A bigger break was buying a DOS from someone else, fixing it up and selling licenses to IBM for their PC. IBM along with a lot of other makers of PC's had few choices of operating systems so they stuck with MS-DOS. This did include BASIC, which was a big benefit at the time because there was little software on the market. Users were more of the "hobbyist" type who were willing to write their own software.
How many people do you know today that own a computer, tablet, smartphone etc. that want to program them so much, they're willing to pay for the programming language? Not many. There are few devices where you can't get some type of IDE for free. Even Microsoft has several free versions of Visual Studio.
The more people who have access to development tools for your hardware and/or operating system, the more software that is going to get created on your stack. The more people who will buy it. It's sort of a give them the razor but sell them the blades.
Sorry, I'm running on personal memory here and didn't research any of the profitability claims. I know this isn't exact, but if I'm way off, please advise.
He got there early.
Since then the internet has revolutionised the way we share and create sofware. No longer do you need to source a floppy disk with the specific software you need, it is all a mere download away.
The market is saturated and the development community has embraced open-source and free software, the competition is rife and we are late to the party.
Secondly now there is this much competition it is in a language creator's interests to release and distribute tools for working in that language for free. There are a ton of fantastic languages already, if you want adoption then you have to make it easy.
There is just no need for me to buy a compiler/interpreter when I could sooner switch to an open-source, community driven and in my personal opinion, safer option.
The first significant difference is that when Gates wrote his version of BASIC, computer hardware was expected to ship with one or more development languages. Today, people are expected to get languages separately.
The second significant difference is that today, the Open Source community develops robust, free compilers/interpreters for popular languages. That community did not exist then.
Finally, there is a misconception in the question in that Gates wasn't the inventor of the BASIC language. He was the author of a particular implementation of it. It's not clear to me that the inventors of the language made a particularly large amount of money on it. Also consider that today, Microsoft makes a lot of money on their implementation of C++. (And again, the designer of that language didn't become particularly rich on it.) So in that sense, the same sorts of people are making money on languages as in the seventies.
Also think how programs are compiled/distributed has changed. Remember, before DOS, most computing was on mainframe-esque systems. Compilers were delivered as part of the hardware because you rarely got off-the-shelf software. If you were lucky, you got source and compiled for that machine. Even today, in many Unix-environments, you still have to compile for platforms because the binaries are not portable. This was the norm back then, not the standard.
So the assumption that there needed to be a compiler was more a reflection on what people thought they needed from a computer to be productive. These days, because so much from a hardware and/or operating system has been standardized, it's possible to compile an application and deliver it to another machine and it will run just fine, thank you.
The money is in the commercialization of compiled binaries because that's how people use computers these days (how many applications do you use that you have not compiled... if you're like me, most of them, if not all). In the time of DOS, the money was in the language / compiler because that's how people used computers back then (the people using the applications either compiled them, or sat down the hall from the people who did).
Short answer: the internet.
Longer answer: The internet provides a cheap, fast, international, searchable, well-known method of communication. The internet technically existed in the 70's, it wasn't until the 90's that it became really well-known.
It is difficult for a bunch of people who want to get together and write a high quality, free compiler (or interpreter) to communicate via printed program listings or floppies sent by snail mail. It's also more difficult for people who are interested in doing things like that to find each other using common communication techniques of the 70's: sure, you can post things like want ads in the paper, but if I put an ad in the paper in California somewhere, and you read your paper in Florida, you remain unaware of my existence.
Even with a bad search engine, typing "free compiler" or "programming language" is likely to get results that might lead people like that to find each other. Searchability makes a huge difference -- I've found a number of interesting things online that I probably would never have even heard of without the internet, and I doubt I'm unusual in that way.
So when people started writing programming tools online, and distributing them for free to all comers, people started using them, and some of them also helped make them better. Programming languages are also something that many programmers find interesting, so this effect would be stronger for programming languages than for some other kinds of software.
Basic economics: you can demand a higher price for something people want if it's harder to find. After the internet took off, programming languages were easier to get from someone other than a company, and free is a pretty low price.
When PCs were first available, there were few programs available. Without a programming language, the computer would be pretty well useless. BASIC as implemented then was a simple small language which could be run in very little memory.
Microsoft got its start selling MS-DOS to IBM. The availability of programming language is reported to have made the deal. The profit was in selling the operating system, not the programming language.
Legend has it that Bill Gates claimed that he had a Basic interpreter which the competing operating did not. He then wrote the Basic quickly after striking the deal and before demoing the operating system. I don't know if this is true or not.
In those days there were few available languages, and fewer still suitable for the limited memory available on a PC. Memory at that time was measured in Kilobytes, and it was believed a PC would never require a Megabyte.
These days we have a wide variety of languages, most of which are available as open source. The capabilities we have on the simplest cell phones would have been consider wild fantasies in the early days of computing.