Question

There's currently a huge growth in larger companies offering new languages and / or frameworks for us to use to create websites, apps or software and I'm interested to know for what reason do people think this is? There's always been a few big players (Java, C++, Perl Php, VB, C#, Ruby etc) but a chunk of those were created by enthusiasts whose reason for doing so is more obvious.

These days all the big tech giants are pushing their own Languages and Frameworks hard in a fight for our usage (I group Languages and Frameworks together as the growth seems pretty similar and will more than certainly be for similar reasons). For example, Apple is pushing and developing Swift at an astonishing speed, Google's Go has had amazing growth, although C# has been around for some time Microsoft has finalised (I think!) the official release of .Net Core and that shows a big shift in their goals towards multi platform and open-sourcing.

What do companies gain from this? Especially as the majority of them are now open-source, I'm interested to get an idea financially why they do it? With all the resources and man-time needed to create, fine tune and document them and offering, more often the not, the majority of the same features and performance of competitors - why do they seem so desperate for us as developers to jump ship and hop on board their boat/s?

Is it quite simply for marketing reasons to maintain an outer view of technological advancement, making the company seem like a leader of tech or do they get something else for developers creating tools using their Languages / Frameworks?

It's less obvious than it was in the days of Microsoft wanting you to develop .Net so that you would need Windows and use IIS to host and Visual Studio to develop - with .Net Core that's not the case. Apple working with IBM to make Swift an option for web programming again moves things away from locking you down like you used to have to do to use a Mac to create iOS apps.

Compile to Javascript languages and Javascript frameworks have been one of the biggest growth areas - How can Facebook profit over Google for getting more developers using React, GraphQL etc instead of Angular 2? And vice-versa? Both are free, with free resources and no tie-in as far as deployment is concerned, e,g you don't need to use Google Cloud Platform for Angular apps.

After listening to a number of Podcasts recently and reading plenty of articles I find it interesting how team members and fans of each are extolling the virtues of there Language / Framework above the others with subtle digs the other way - is this just like nerd evangelism or is there more to it?

Even with something like creating a strongly typed version of Javascript, Typescript and Flow get pushed in equal measure and seems from the outside like a mini war between Facebook and Microsoft for gorwth and traction.

I could go on with load of examples (eg Xamarin, React Native, Native etc) but have probably got the idea across - what's going on here?

Was it helpful?

Solution

Companies are doing this in order to make some product or platform (on which they earn a profit) more attractive. For example Apple is developing Swift in order to make iOS development more attractive for developers. The hope is of course more iOS developers means more apps which in turn makes the platform more attractive for consumers, which means Apple will sell more iOS devices and earn more money. Pretty simple.

In other cases the profit motive is more indirect. For example Sun developing Java. Sun had their own hardware, but Java was deliberately cross-platform. The reason was Windows at the time had a near-monopoly on desktop platforms which meant developers only developed software for Windows, which made other platforms like Suns less attractive for consumers. A vicious circle from the perspective of Sun. The hope was Java would encourage developers to write cross-platform software, thereby making the non-windows platforms more attractive for consumers.

.Net was developed as a counter-measure from Microsoft, since Java attracted many developers because it seemed more modern than Microsoft's offerings (VB and C++). Microsoft therefore tried to deliver a similar modern platform but still tied to the Windows platform.

If you look into other platforms and frameworks you can see the same forces at work again an again.

The change in the .Net strategy (from Windows-specific to cross-platform) is clearly because Windows have lost in the mobile platform market. .Net was created to solidify a virtual desktop monopoly, but now the goal is basically the opposite, to create a cross-platform environment to fight the lock-in by iOS and Android. So basically Microsoft has the role Sun had, and Apple has the role Microsoft had.

Google and Facebook have pushed HTML and JavaScript heavily. This has primarily been to make the web a stronger platform and to make it more attractive compared to platform-specific development which advantage the platform-owners like Microsoft and Apple. Microsoft used to fight the web and sabotage web standards, but after they lost the battle for the mobile platforms they (not surprisingly) have become great proponent for the platform-independent web, and even work together with Google on Typescript.

Licensed under: CC-BY-SA with attribution
scroll top