00 | Why under an open source project may be only one interface

We are likely to see more open interfaces and metaframeworks emerge, but they have their drawbacks.

We may see more open interfaces and original frame appears, but they have their own drawbacks.

 

What do deep learning, serverless functions, and stream processing all have in common? Outside of being big trends in computing, the open source projects backing these movements are being built in a new, and perhaps unique, way. In each domain, an API-only open source interface has emerged that must be used alongside one of many supported separate back ends. The pattern may be a boon to the industry by promising less rewrite, easy adoption, performance improvements, and profitable companies. I’ll describe this pattern, offer first-hand accounts of how it emerged, discuss what it means for open source, and explore how we should nurture it.

Depth study, no server functionality and streaming have in common? In addition they become a major trend in computing addition, they support open source projects are also being constructed in a new or unique way. In each of these areas, as a way of open source API supports only the interface appears, it must be accompanied by one of the many independent back-end supported for use. This model could give the industry benefit because it promised less rewriting, easy to adopt, improve performance and company profitability. I will describe this model, providing first-hand information on how it appears, it is for the discussion of how open source has a meaning, and we explore how to nurture it.

 

Typically, a new open source project provides both a new execution technology and an API that users program against. API definition is, in part, a creative activity, which has historically drawn on analogies (like Storm’s spouts and bolts or Kubernetes’ pods) to help users quickly understand how to wield the new thing. The API is specific to a project’s execution engine; together they make a single stand-alone whole. Users read the project’s documentation to install the software, interact with the interface, and benefit from the execution engine.

Typically, a new open source project not only provides a new implementation of technology, but also provides the user programming API used. API is defined in part is a creative activity, which draws on a similar concept in history (like pods Storm of spouts, bolts and Kubernetes's) to help users quickly understand how to use new things. For a project execution engine, API is specified; together they constitute a single whole. Read the user documentation project to install software to interact with the interface, and benefit from the execution engine. [Against here, I do not know how to translate it? ]

 

Several important new projects are structured differently. They don’t have an execution engine; instead, they are metaframeworks that provide a common interface to several different execution engines. Keras, the second-most popular deep learning framework, is an example of this trend. As creator François Chollet recently tried to explain, “Keras is meant as an interface rather than as an end-to-end framework.” Similarly, Apache Beam, a large-scale data processing framework, is a self-described “programming model.” What does this mean? What can you do with a programing model on its own? Nothing really. Both of these projects require external back ends. In the case of Beam, users write pipelines that can execute on eight different “runners,” including six open source systems (five from Apache), and three proprietary vender systems. Similarly, Keras touts support for TensorFlowMicrosoft’s Cognitive Toolkit (CNTK)TheanoApache MxNet, and others. Chollet provides a succinct description of this approach in a recent exchange on GitHub: “In fact, we will even expand the multi-back-end aspect of Keras in the future. ... Keras is a front end for deep learning, not a front end for TensorFlow.”

Some important new project structure is different. They do not perform the engine, replaced by a framework yuan, yuan frame number of different execution engine provides a common interface for. Keras, second most popular deep learning framework, is an example of this trend. As its creator François Chollet as recent attempts to explain, "Keras is an interface rather than the end of the frame." Is similar to this, Apache Beam, a large-scale data processing framework, self-described as "programming model." What does it mean? What you do with it own programming model it? In fact what can not be done. All of these items must be required to have an external back-end. Apache Beam, user-written conduit may be performed on eight different runs, comprising six open systems (5 from Apache) and three proprietary provider system. Similar, Keras also supports TensorFlow, Microsoft's cognitive toolkit (Microsoft's Cognitive Toolkit, CNTK), Theano, Apache MxNet and so on. Chollet on GitHub recent exchange a brief description of this approach: "In fact, we will expand in the future even more than the back-end aspects of ... Keras Keras is the front end of the depth of learning, rather than the front end TensorFlow.."

 

 

The similarities don’t end there. Both Beam and Keras were originally created by Googlers at the same time (2015) and in related fields (data processing and machine learning). Yet, it appears the two groups arrived at this model independently. How did this happen, and what does that mean for this model?

 The similarities stop there. Beam and Keras originally by Google employees at the same time (2015) and related fields (data processing and machine learning) created. However, the two groups appear to have been the model independently. This is exactly how it happened? What does this mean for this model it?

 

Attached description link:

Why your next open source project may only be an interface

https://www.scalevp.com/blog/why-your-next-open-source-project-may-only-be-an-interface

InfoQ translation attached link:

https://www.infoq.cn/article/WRpx0w-clwPg6DEtvjyZ

Guess you like

Origin www.cnblogs.com/jeshy/p/10928315.html