在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

P5.js 为人们带来了富有创造性的编码方式

  • 2014-09-02
  • 本文字数:1518 字

    阅读完需:约 5 分钟

Lauren McCarthy 发布了 P5.js 的第一个公开测试版,它是一个使艺术家、设计师、教育工作者和初学者等都能够进行编码的 JavaScript 库。

P5.js 由 McCarthy 和纽约大学 ITP 以及其他贡献者共同合作开发,它是一个能够处理可视化编程语言的分支,它使非程序开发人员能够编写JavaScript 代码和创建可视化项目。

McCarthy 在 GitHub 的 P5.js 的概述中描述了该库,他说到:

P5.js 有完整的一套画图功能,既可当作画图软件使用,也包括支持与各类页面元素交互的库。然而,开发者没有被限制自己的画布上,他们可以把整个浏览器页面作为自己的素描区域。正因为如此,P5.js 有一个插件库能够使得开发者非常容易地与其它 HTML5 对象(包括文本、输入、视频、网络摄像头和声音)进行交互。

虽然 P5.js 在某些方面有点和 Processing 相似,不过也有一些主要的不同点。McCarthy 在将程序从 Processing 迁移为 P5.js 的说明中列举了他们之间的主要不同点:

  • 因为你可能把你的素描不单单当作绘图的画布,故 size() 方法已经被 createcanvas() 方法取代,以此说明还可以创建其他元素。
  • frameRate(num) 方法用来设置帧速率,但是帧速率变量参数已经废弃,要想获得当前的帧的速率,请在调用 frameRate() 方法不传入参数。
  • JavaScript 并不总是需要同步加载所需文件,有以下几个选项可以处理这样的需求:
    • 所有的加载方法接收一个可选的回调参数,即一个文件被完全加载后被 调用的函数。
    • 或者,开发者可以把加载的调用处理放在预加载方法 preload() 方法中, 该方法会在 setup() 执行前生效。如果预加载方法已经存在,setup 方法 将会等到所有文件被完全加载才执行,请参考这个图片掩盖的实例。

在 Hacker News 上有一个关于 P5.js 的讨论,主题是“ P5.js:当代 Web 的 Processing ”,Scrimmage 的 UI 总工程师 Brad Greenwald 在公告中评论到:

我非常好奇,是什么使得 P5.js 能够比得上甚至优于 D3.js、EaselJS、Three.js、 Raphaël、 KineticJS、Paper.js、Famo.us,或者是 Impact 等类库?我理解它们的特性集并不完全相同,但是我并不明白它有什么可以称得上创新或是令人兴奋的地方。

Wunderman 的市场营销和技术创新部门的高级副总裁 Gui Ambros 回应到:

读 Dan Shiffman 编写的《自然法典》,你就会立刻明白 Processing(和 P5.js)与其他语言或者框架之间的不同。

正如 Arduino 为大家带来了 IoT 和 hardware hacking,同样的,Processing 也以创造性的代码达到了同样的影响力。有很多没有经验的核心开发者正在使用 Processing 创建数据可视化应用、交互装置、游戏和混合声音、视觉、图形的多媒体应用。

P5.js 通过将画布从一个单一的桌面应用扩展到浏览器的方式,开启了 Processing 的强大能力。这是一个很大的进步,此外,Lauren 围绕该项目创建了一个社区,并且做得非常出色。

P5.js 的官网这样描述该库,它是一个保持活跃开发的项目,并表明它是“一个新的解释器、而不是一个模拟器或者接口”,在即将到来的多项新特性中,其中一项是提供“一个正式的编辑环境”。

P5.js 遵循 GNU GPL 协议发布,因为它是一个开源、协作开发的项目,在此期待着 InfoQ 读者以各种方式参与到P5.js 项目中来,包括开发、文档编写或者培训。同时,P5.js 项目也欢迎设计师、艺术家、作家、组织者和其他任何你可以想象到的角色参与到项目中来。在此,期待着任何想为P5.js 做贡献或者想要合作的人发送邮件到 mailto:hello@p5js.orghello@p5js.org

查 **** 看英文原文 P5.js Brings Creative Coding to the Masses


感谢邵思华对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-09-02 10:0810988
用户头像

发布了 92 篇内容, 共 52.1 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

架构师第一期作业(第四周)

Cheer

课程作业

2020国庆我花了 7 天给大家撸了一篇云南旅游攻略

程序猿石头

美食 旅行

系统架构第四周总结「架构师训练营第 1 期」

天天向善

来碗小面

葱小白

美食 旅行

《我想进大厂》之Redis夺命连环11问

艾小仙

Java redis 面试 程序语言

实用威胁建模指南(二)

亚伦碎语

敏捷 安全 系统安全架构 系统安全 威胁建模

某Java程序员在外包公司每天读写删改几年后,发现跳不出来了

Java架构之路

Java 程序员 面试 算法 编程语言

区块链赋能医疗产业报告

CECBC

区块链 大数据 医疗

建议将区块链产业纳入国家“十四五规划”

CECBC

区块链 新基建

手写SpringIOC

彭阿三

spring源码 sping springioc

阿里巴巴内部“Java成长笔记”,看完才发现自己和阿里大牛的差距真的太远了!

Java架构之路

Java 阿里巴巴 程序员 面试 编程语言

Java并发编程-线程基础

程序员 并发编程 java 14 架构师训练

系统架构第四周作业「架构师训练营第 1 期」

天天向善

浅析 Java 内存模型 一

朱华

Java JMM

创新者谈

善宝橘

创新

程序员在中国是青春饭?扯!看看阿里资深架构师是怎么说的!

Java架构师迁哥

Java 程序员 面试

反射API

彭阿三

反射

延迟满足

时间是一个人最好的证明

延迟满足感 成功

Redis-技术专题-Jedis实战入门

码界西柚

一文搞懂PV、UV、VV、IP及其关系与计算

冰河

多线程 高并发 流量 并发流量

论软件工程师的自我修养:角色、重构与质量

华为云开发者联盟

软件 开发 工程师

MySQL-技术专题-连接查询和子查询

码界西柚

开源监控系统open-falcon搭建笔记

卓丁

监控 监控管理平台 Open-Falcon 监控告警

TensorFlow安装

菜鸟小sailor 🐕

学习

七千字的线性回归模型指南,建议收藏!

计算机与AI

数据挖掘 学习 线性回归

MySql领域经典之作,“不敢自诩为MySql专家,岂敢错过这本神书”

Java架构之路

Java MySQL 程序员 面试 编程语言

【硬件篇之功耗测试】

良知犹存

硬件

云服务时代,未来怎么样保障自己的核心竞争力?

boshi

个人成长 职业规划 云服务

诺奖以上,真相未满:追捕黑洞二百年

脑极体

手把手教你AspNetCore WebApi:数据验证

AI代笔

ASP.NET Core web api 数据验证

能够让机器狗学会灭火, ModelArts3.0让AI离我们又近一步

华为云开发者联盟

人工智能 AI 机器狗

P5.js为人们带来了富有创造性的编码方式_开源_James Chesters_InfoQ精选文章