维基函数:维基函数不是什么

From Wikifunctions
This page is a translated version of the page Wikifunctions:What Wikifunctions is not and the translation is 26% complete.

据我们所知,维基函数是一种新型网站,旨在建立一个新的社群。我们非常希望与现有的许多工具、网站、社群和各种系统合作:我们希望与IDE、云计算平台、应用程序开发网站等等合作。

但我们也致力于成为一个新颖的事物,我们希望为我们塑造一个新的独特空间:一个维基媒体项目,让每个人协作创建和维护一个代码函数库来支持维基媒体项目及其他项目,供每个人调用和重用世界上的自然语言和编程语言。

因此,言归正传,让我们也探索一下维基函数不是什么

维基函数不是算法百科全书

这意味着我们将不会有著名和不太著名算法的页面,例如 欧几里得算法牛顿法Dijkstra算法,旨在忠实地在其历史背景下代表所有现有算法。

是的,我们期望有一个计算两个整数的最大公约数 (GCD) 的函数。并且可能有也可能没有一种或多种基于欧几里得算法来计算GCD的实现。但如果没有的话,维基函数也不会是不完整的,相反,我们可能会有替代算法来计算最大公约数。如果你在寻找这方面的信息,许多维基百科条目实际上都是很棒的资源

Unlike an encyclopedic overview of existing algorithms, Wikifunctions will also invite original work. We will not be restricted to functions that have been published elsewhere first, and we do not require for every function and implementation to be based on previously published work. Wikifunctions, much like Wikibooks and very unlike Wikipedia, will be open to novel contributions. The main criteria for implementations will be: under which conditions can we run a given implementation, and what resources is it expected to take?

Wikifunctions is not an app development site

We do not expect to make it possible to create full-fledged, stand-alone apps within Wikifunctions — there will be no place to store state, we don't aim to allow calling external APIs or directly cause changes to other sites, and we don't aim to package up apps with icons and UX, etc.

We absolutely expect Wikifunctions to be a very useful resource for app developers, and can very much imagine apps that are basically wrappers around one or more functions from Wikifunctions, but these would still need code and other assets which wouldn't be part of Wikifunctions. We are not competing in the area of no-code or low-code development sites.

Wikifunctions is not a code hosting service

Wikifunctions will host code — but not for whole projects, merely for individual functions. There won't be libraries, apps, or services developed on Wikifunctions with bug-trackers, forums, etc. There won't be a Web-based version control system such as Mercurial or Git running against Wikifunctions.

Again, we hope that there will be libraries, apps, and services that will rely on functions available in Wikifunctions, but they would be developed on a different site, such as Gerrit, GitHub, or GitLab.

Wikifunctions is not a programming language, nor is trying to evangelise a particular language

Wikifunctions will allow for functions to be implemented in a multitude of programming languages. The possibility to compose functions together to create higher level functions may look a little bit like a new programming language, but it will be extremely limited compared to most other programming languages, since we only allow for nested function calls and that's it.

Wikifunctions is not an Integrated Development Environment (IDE)

We won't provide you with an interface for creating and developing software projects, interfacing with build, testing, and source control systems.

Wikifunctions is not a question-and-answer website

We are not competing with Stack Overflow and similar websites, where a developer would ask how to achieve a certain task and have community members discuss and answer the question. We won't contain code snippets to help answer the question, but we will organize code within our website to enable the evaluation of functions within a library of functions.

Wikifunctions is not a cloud computing platform

We do not provide computing resources and access to services and APIs so that you can run your computational needs on our platform, either for money or for free. Use of Wikifunctions's evaluation platform is to improve access to knowledge for everyone.

Wikifunctions is not a code snippet website

We are not competing with code snippet sites such as GitHub Gists, rosettacode.org, esolangs.org, or helloworldcollection.de.

Wikifunctions differs in that it allows running code and composing existing functions together to create new ones. As well, Wikifunctions is for useful and meaningful code, not temporary, arbitrary snippets that other platforms may accept.

Wikifunctions is not a code education platform

We are not focused on teaching people how to code, the material in Wikifunctions will not be laid out in a pedagogical order, and we also won't make sure to comprehensively cover all topics important for coding. In fact, we aim for Wikifunctions to be usable for people who don't know how to code and who don't need to learn how to code to use most of Wikifunctions effectively. Though the Wikifunctions community may well help each other in sharing best practices, style guides, and tips on how to use the site in different languages, these will be aimed at the purpose of serving the world's knowledge.