Wikifunctions:关于

From Wikifunctions
This page is a translated version of the page Wikifunctions:About and the translation is 57% complete.
Outdated translations are marked like this.
Wikifunctions的首要目标是支持维基媒体项目,但它会支持更远的目标,就像维基数据一样。这是关于Wikifunctions的超越维基百科的描述。
使命宣言
一个维基媒体项目,供所有人协作创建和维护代码函数库以支持维基媒体项目及其他项目,供所有人调用和复用全世界的自然语言和编程语言。

Wikifunctions是一个开放的代码库,任何人都可以使用和贡献。

Wikifunctions由函数组成。函数具有描述、参数列表、测试用例、不同编程语言的实现的列表,以及更多其他的元数据。这些实现可以在其他软件项目(私有应用程序或脚本)中在线的中重复使用、可以在在线环境中调用和执行(可以是仅在浏览器中或在云环境或Jupyter[1]或PAWS[2]笔记本中),可以组合以实现更复杂的功能,可以签名、分析或验证等等。

Wikifunctions是一个秉承维基百科、维基数据、维基词典等精神的项目,它允许来自世界各地的贡献者创建和维护一个函数库,任何人都可以出于任何目的使用该库。每个函数都可以由不同编程语言的多个实现、测试用例、前置和后置条件、文档、运行时预估的元数据和不同实现的复杂性保证等支持。用户可以直接在网站上调用函数,也可以从他们自己的代码或应用程序、命令行界面或本地应用程序中调用。函数可以在浏览器中本地执行,也可以在云端执行,或者本地嵌入到用户的应用程序中执行。

Wikifunctions旨在创建一个定义明确、可广泛复用的通用函数目录,并提供一个可以快速组合并即时执行函数的环境。Wikifunctions旨在让开发人员的生活更轻松,他们可以像使用任何外部库一样依赖这个代码库,同时也方便终端用户根据需要调用函数,这种便利目前仅通过特定网站实现,但覆盖范围非常不均匀,这些网站常常采用1990年代网站的形式,配合Java小程序编写。

所有函数都是纯函数,以便能够实现在安全的沙箱执行。此外,每个实现都可以使用元数据进行注释并进行加密签名。终端用户可以根据他们可用的硬件资源和信任网络设置,选择并审计每个功能的哪个实现版本。

Wikifunctions将允许轻松访问大型知识库,例如维基数据,以及二进制输入和输出文件。完全可以上传一张图片作为输入文件并返回分析结果,比如图片上描绘的是什么,或者图片有多少种不同的颜色——或者是不同的二进制文件,例如不同的格式。这将可供维基共享资源上的工作流程使用。

Wikifunctions延续了将更多计算转移到网络的传统,这通常发生在命令行或更多计算机用户使用的应用程序上,并使对以前不可用的功能的访问民主化。同时,它将提高各地开发人员的生产效率,因为他们可以简单地使用大型代码库,而不是依赖于正确复制和粘贴来自StackOverflow的答案。

与维基百科不同,贡献者通常会为一个函数创建新的实现,而不是更新现有的函数。这些实现可以通过给定的测试自动进行测试,互相对比,进而进行深入分析。

实现可以用多种不同的编程语言编写,并且还能够调用以其他编程语言实现的函数。执行引擎可以流畅地(尽管不一定具有最高的性能)以不同的语言运行。尽管在大多数情况下,使用单一编程语言编写函数可以显著提升性能,但没有必要这样做。在许多情况下,开发速度和开发人员的时间将比在执行引擎中花费的额外电脑计算周期更有价值。

参见

  1. m:WikiCite 2017/Jupyter notebooks on Wikimedia sites
  2. PAWS