Open source is not about cheaper tools or easier to use tools. Open source makes projects possible which might be impossible with propriety tools.
LinkedIn found out that commercial switching equipment manufacturers did not provide what they needed. They found that:
- Bugs in software that could not be addressed in a timely manner
- Software features on switches that were not needed in our data center environment. Exacerbating the problem was that we also had to deal with any bugs related to those features.
- Lack of Linux based platform for automation tools, e.g. Chef/Puppet/CFEngine
- Out-of-date monitoring and logging software, i.e. less reliance on SNMP
- High cost of scaling the software license and support.
What they wanted was:
- Run our merchant silicon of choice on any hardware platform
- Run some of the same infrastructure software and tools we use on our application servers on the switching platform, for example, telemetry, alerting, Kafka, logging, and security
- Respond quickly to requirements and change
- Advance DevOps operations such that switches are run like servers and share a single automation and operational platform
- Limitless programmability options
- Feature velocity
- Faster, better innovation cycle
- Greater control of hardware and software costs
This could not be provided by any propriety vendor.
So they had to build their switches themself. This was only possible because they could reuse on freely available open source software. In the future they might even use FPGAs and program them with open source FPGA tools .
If you have a project which was done a 100 times before you, then there is a high probability that this use case is very will supported by propriety tools. There might even be a wizards to implement the functionality you need to implement. But at the same time, this feature will not be the functionality that will differentiate your product from all the other products. So the feature you implemented will not add to the differentiation value of the product.
On the other hand, if the feature you are implementing is
the essential differentiation because is solves a problem
up to now no one was able to solve (maybe because it was
too hard to solve), it is very likely that you propriety
tool does not very well support you in designing the
solution. It might be that it was even impossible to
realize a solution because of the limitation of the
propriety tools. Therefore researchers in the past had to
build their own tools (like Gallileo the first
With open source, you can extend the tool to your needs. This is especially usefull when you start your project and you do not yet have a clear understanding what features you will need from your tools.
You dont get stuck. If you find out half way into the
project that your propriety tool is not up to the task,
you need to start over again.
To be competitive in the market requires that you offer
products which are different from the products of your
competitor. Your offering can be cheaper, can be easlier
avaliable, or can have features others do not
An open source FPGA toolchain can help you in all three
When you decide to design a product, you define a feature set your product will offer so that people are willing to pay for it. Then you need to implement this feature set with the tools available to to. With FPGAs this are the tools provided by the manufacturer of the chips.
You might not want to outcompete your competitor to be cheaper by just accepting a lower salary. You need to be able to design faster than your competitor, who is using the same tools as you. Which means that you need to be smarter or more experienced to gain an competitive advantage. Which might not alyways be the case.
You might want to outcompete your competitor by offering
a innovative featureset in your product. As you are the
first designer using the FPGa toolsset for this new kind
of feature, you will probably discover a lot of bugs in
the FPGA tool as noone else before you did use the tool
in this new way. But this gives you the possibility to
outcompete your competitor by inventing "tool-bug
workarounds" and finishing your innovative product.
Finding those bugs in the tools and inventing workaround
takes a lot of time and cost a lot of money.
Your experience gained in this process will become obsolete with the next version of the tools because the toolmaker will fix many of those bugs.
If you use an opensource toolchain, you are not bound by the featureset the commerical toolvendor is offering. you can break away from your competitor by extending the open soure toolchain in a new creative way. This way you can design products which differ from your competitors products as you use different tools.
For sure, opensource toolchain do not support all the features commercial tools offer today. for for designing a intriguingproducts, it might be that you dont need all those features, but only the alrady avialbalbe once in the opens source tools and you add one really important feature to design the compelling product your clients are willing to pay for.
Google could have used Windows NT or Solaris to build its search clusters, but decided to use the inferiour Linux, as it was a good enough fit, and offered the possibility to adapt it to the specific needs of google to build a large search cluster.
If you can use the open source FPGA toolchain with its limited featureset to build the product you imagine, but you would need to push the limits of the commercial toolchain to realise your innovative product, you are very likely better off using the open source toolchain, because you will not need to work around teh bugs in the toolchain, but can hire a toolchain developer to fix and adopt the toolchain to your specific needs, which saves you a lot of time and money.
Therefore, if using a open source FPGA toolchain can
result in a cheaper, earlier and more usefull