What Is The Role Of Frameworks In Programming Language?

By Jyoti Nigania |Email | Feb 8, 2019 | 10563 Views

Importance of framework in programming languages is best and that's the one and only one reason that our phone's operating system doesn't come pre-installed with all the applications on the app store.

Frameworks are built with different dependencies. Some frameworks require very specific versions of other libraries, which may be incompatible with the library versions used by another framework. Some frameworks even require specific versions of the language (e.g., Python 2.7 vs Python 3.5).

Frameworks are developed by different people. In order to consolidate all these projects into a single unified whole, you'd need to turn them into a single organization reporting in at different levels. That's a lot of added management overhead; too much for what are often open source and personal projects to most contributors.

Frameworks develop at a different pace. If the core language wants to release every six months, but some framework wants to release every two weeks, it wouldn't be reasonable to force them to align to a single release schedule. Maybe the language releases more slowly because it takes longer to test, so if you release every two weeks, you're possibly shipping unstable code. But if you release every six months, you could be needlessly preventing users from making use of new features of that framework.

Frameworks can be mutually exclusive. If two frameworks both solve the same problem and are both popular with different people (TensorFlow vs PyTorch, React vs Angular, etc.), how do you decide which to include in your language? Do you include both and confuse your users about how they should go about performing some task? What if one ends up completely replacing the other, or a new framework comes along and pushes them both out? Do you drop the other framework from your language and include the new one? What does that mean for backward compatibility in your language?

Frameworks can be bloated. They can pull into tons of dependencies, drivers, applications, and end up costing you many gigabytes of disk space. If all that needs to be packaged into every application, your users will complain. For example, what if every app in the app store had to be an extra 5 gigabytes? How would you fit them all on your device? How long would it take to download one of them? How much memory would be required to run these apps?

Decentralizing framework development is a good thing. It means anyone with a great new idea to improve the language can do so without needing to go through a highly bureaucratic committee and get official buy-in first. It means frameworks can compete, and the ones that aren't very good can go away quietly without affecting the long term development of the language. It means learning the language doesn't require learning hundreds of components you're probably not interested in.
And as long as installing a new framework is as easy as pip install whatever, there isn't any good reason to bundle them together, to begin with.

Source: HOB