摘要维基百科/概览
抽象维基百科 |
---|
(讨论) |
一般 |
开发计划 |
附註、草稿、讨论 |
实例与實物模型 |
数据工具 |
历史上的 |
- 使命宣言
- 一个维基媒体项目,供所有人协作创建和维护代码函数库以支持维基媒体项目及其他项目,供所有人调用和重用世界自然语言和编程语言。
Wikifunctions是一个开放的代码库,任何人都可以使用和贡献。
Wikifunctions中的每一页都代表一个函数。函数具有描述、参数列表、测试用例、不同编程语言的实现列表以及更多元数据。这些实现可以在其他软件项目(私有应用程序或脚本)中重用,在线调用和执行(仅在浏览器或云环境或Jupyter[1]或PAWS[2]笔记本中),组合以实现更复杂的功能、签名、分析或验证等。
Wikifunctions是一个本着维基百科、维基数据、维基词典等精神的项目,它允许来自世界各地的贡献者创建和维护一个函数库,任何人都可以将其用于任何目的。每个函数都可以由不同编程语言的多个实现、测试用例、前置和后置条件、文档、运行时估计形式的元数据和不同实现的复杂性保证等支持。用户可以直接在网站上调用函数,或来自他们自己的代码或应用程序、命令行界面或本地应用程序。该功能可以在浏览器中、在云中本地执行,或者在本地执行并嵌入到用户的应用程序中。
Wikifunctions旨在创建一个定义明确、可广泛重用的通用函数目录,以及一个可以快速组合和动态执行函数的环境。Wikifunctions旨在让开发人员的生活更轻松,他们可以像依赖任何外部库一样依赖这个存储库,以及可以根据需要调用函数的最终用户,这种方式目前只能通过特定网站以非常不均匀的覆盖范围提供。他们通常以20世纪90年代网站带有Java小程序的形式编写。
所有函数都是纯函数,以实现安全的沙盒执行。此外,每个实现都可以使用元数据进行注释并进行加密签名。最终用户可以根据他们可用的硬件资源和信任网络设置来选择和审核要使用的每个功能的实现。
Wikifunctions将允许轻松访问大型知识库,例如Wikidata,以及二进制输入和输出文件。完全可以将图像作为输入文件上传并返回分析结果,例如图像上描绘的内容,或图像具有多少种不同的颜色——或不同的二进制文件,例如以不同的格式。这将提供给维基共享资源上的工作流。
Wikifunctions延续了将更多计算转移到Web上的传统,这通常发生在命令行或更多计算机用户使用的应用程序上,并使对以前不可用的功能的访问民主化。同时,它将提高各地开发人员的生产力,因为他们可以只使用大型代码库,而不是依赖于正确复制和粘贴来自StackOverflow的答案。
与维基百科不同,贡献者主要是为一个函数创建新的实现,而不是更新现有的函数。这些实现可以针对给定的测试、相互之间自动进行测试,并进一步分析。
实现可以用多种不同的编程语言编写,但仍然能够调用以其他编程语言实现的函数。执行引擎可以流畅地(尽管不一定具有尽可能高的性能)以不同的语言运行。尽管在大多数情况下,通过在单一编程语言中组合函数可以显着提高性能,但没有必要这样做。在许多情况下,开发速度和开发人员的时间将比在执行引擎中花费的额外计算机周期更有价值。