5 ms·
I really wonder how Pascal and the Pascal family of languages, including modula/oberon and ada, how they became niche and how java and c++ took over the world?
by froh 6y ago
I really wonder how Pascal and the Pascal family of languages, including modula/oberon and ada, how they became niche and how java and c++ took over the world?
- cable2600 6y agoFree and Open Source languages cost less than commercial languages. I remember that Janus Ada for DOS cost thousands for a license. Java and GNU C++ were free. Now Microsoft has the Community edition of Visual Studio for free C#, Visual BASIC.Net, C++ and other languages.
- pjmlp 6y agoEasy answer, UNIX mass adoption. Long answer, UNIX spread like fire, because Bell Labs/AT&T initially weren't allowed to sell it. So the code was given to university, and while they needed to pay for a UNIX license to use it, the price was symbolic versus paying for something like VMS. Which naturally made UNIX the number one choice for the startups trying to get into the Workstation market during the 90's. So C started to spread into the 8 and 16 bit computers in some form. When those 8 and 16 bit home computers, written in Assembly, started to be replaced by more powerful systems, the OS vendors were adopting C as the language. Most won't be aware of this today, but Microsoft did sell Xenix and MS-DOS at the same time, they sold Xenix as they decided to focus on MS-DOS instead. In fact, MS-DOS 4 failure was an attempt to make it more UNIX like. At the same time, maybe to reduce costs, the OS vendors started to reduce the amount of compilers they were selling it for their platforms, selling only the same ones as they were using themselves for the OS, which by then naturally meant C. Any other language started to be available only from third parties, and most of the time without bindings to all OS APIs. So given the choice of buying the language programming tools from the OS vendor, with everything ready to code, or paying even more (you would need the OS SDK anyway) and having to code bindings, the majority stayed with OS SDK only. As C++ is a C sibling, coming from UNIX birthplace, it quickly found a place among C compiler vendors tooling. Java, well it was pushing by Sun, quickly adopted by Microsoft, IBM and Oracle on their platforms. So enjoyed a bit that extra love from platform owners. Having lived through this evolution, I have learned only to bet on platform languages, or those that eventually get blessed by platform owners on their official SDKs.
- Animats 6y agoIt also didn't help that Berkeley Pascal for BSD was terrible. Made a subroutine call for every subscripting operation. This discouraged using Pascal on UNIX.
- pjmlp 6y agoReally? Yeah Pascal UNIX compilers were quite bad. When I got into university, I had my first set of Pascal classes on UNIX. Coming from a background of multiple Turbo Pascal versions, I was on TPW for Windows 3.x by then, I was dismayed having to do university assignments in P2C, using original ISO Pascal (it wasn't even capable of the ISO Extended version). So no wonder that Pascal on UNIX hardly got any love. I think only HP-UX and VMS Pascal variants were actually relatively good.
- tannhaeuser 6y agoInteresting that you would say that. I've taken the opposite approach to prefer languages that have multiple implementations, platform-independent specs, and a focus on portability, like C, JavaScript and very few others. Also Java/JVM, which at least fulfills this criterion on paper (and pays the bills). Guess it's a matter of whether you're working primarily on the server or client side.
- pjmlp 6y agoBeing platform languages doesn't mean they lack multiple implementations, platform-independent specs. All the ones I currently use in some form, Java, .NET languages, C++, JS, SQL, fulfill the above via ISO, ECMA, or official reference docs managed by multiple vendors. And to be honest, even those that don't I really don't care any longer, because most of the code I write isn't mine to own rather the employer, so as long as it fulfil what the customer is after, I am good, when the project is done I move to the next challenge. If project requires cross platform capabilities, then usually something along the lines of what is available across all platform SDKs gets chosen.
- TacticalCoder 6y ago
- fmxexpress 6y agoMy theory is that programmers love complexity and gravitate to more and more complex things over time. If something is complex and never complete your job is assured to be there tomorrow. C++ has a performance advantage but Java and C# do not.
- danielscrubs 6y agoAll the languages that are “strangely popular” have had major backing from a global/multinational company. It’s not a meritocracy driven development, it’s marketing 101. Go is to Google what Java is to Sun/Oracle. History is repeating but we can’t really fight it because it would be a wasted effort.
- outside1234 6y agoBoth UNIX and Windows used it for their operating system APIs. If you wanted to play in those ecosystems, you had to learn C at the beginning. People wanted to play in those ecosystems. :)
- analog31 6y agoJust an amusing anecdote, I learned Pascal in 1982, but also some limited exposure to C. At the time, I was absolutely dead certain that Pascal would win out over C. While I understood what was happening under the hood, the business of programming by doing math on pointers seemed like such a bug factory that I dismissed it out of hand. Today when I program in C (thanks to embedded work), it seems like many of the modern improvements to the language consist of making it more Pascal-like.