There is no best programming language nor best framework. Even using the most common now will end up being obsolete in a few years. So why not rely on a agnostic approach? An infrastructure approach build for change and multiple languages.
There are lots of programming languages and frameworks out right now. And each developer has own preferences on language and frameworks regardless of skills. In fact all programming languages are base upon the same methodology and a skilled programmer will be a good programmer in an alien language as well.
But think of a programmer as a translator for foreign language. To learn a new language it will take you years to gain superiority. The same applies to programming languages or frameworks: Superiority will take years. But superiority is needed to fulfill tasks modern businesses require.
Most superior programmers therefor won’t apply to offers made regarding foreign languages or frameworks. They want to stay in their scope; which makes them inaccessible to rigid companies. (Rigid requirements regarding language and framework will prevent >96% from applying)
The microservice approach allows superiority from the whole spectrum of development by using common interfaces and tooling.
Software-quality largely depends on programming skills combined with the underlaying infrastructure/frameworks. This infrastructure is often mission-critical and should be safeguarded from single individual actions, bad judgement or commercial/political interest.
[document work in progress]
Open-source prevent developers from reinventing the wheel.
It’s better even for competing companies to have their developers work together.
Published Open-Source software is cleaner and better documented. Many dangerous quick-n-dirty solutions found in private repositories can’t be done in open-source environments at all. Secure open-source measures will most probably have positive backlash to internal projects.
Efforts in writing community grade documentation will improve internal documentation as well.
Lots of developers program as a hobby, too. Why not let them have and eventually improve the same infrastructure.
Developers might not want to stay their whole life in one company. Open-Source can help to stay in touch and benefit from new experiences in exotic projects.
It’s not only about the license. You’ll need development resources (github, giblab), build- and testing resources, marketing. Maintainers must be found to coordinate development, approval of pull-requests and for full resource access.
Enterprises won’t allow development on projects their competitors gain all credits for. In particular because it might be withdrawed with a single management decision if its owned and financed by a company.
Developers won’t attempt to publish great work if they don’t take credit for it.
Infracamp provides an administrational Team of elected Maintainers. This team maintains Projects as github/gitglab/bitbucket owner.
We provide server resources and maintenance for background webservices.
Software is no competitive edge - skills are.
The difficulty in software is to master a task the first time. After you showed the world that it can be done, it will be done faster and better by your competitors. The competitive advantage enterprises really have is the skillset of their personnel. These skills must be kept up to date.
To keep developer skills up to date developers need feedback and discussion with other developers. Participating in Open-Source is the best way for developers to improve skills and write software that need not to hide from the community.
Why does an enterprise need a third-party organisation to maintain open-source projects?
Excellent software is developed by ambitious individuals, not by enterprises. Ambitious developers invest brain and hard work into software, so they should take personal credit for their work in the developer community.
Enterprises exist to sell products. They can’t take care for community concerns, discuss rules for cooperation and they won’t promote products they can’t sell.