Nzym 简介:一份关于将彻底改变多媒体的编程语言的白皮书
Published on 12 Aug 2023
介绍
Nzym 语法
数字 myInteger = 10;
使用点符号来调用对象上的方法。例如,要调用 Number 类型对象的Add方法,请编写以下命令:
我的整数.添加 = 6;// 如果 myInteger 的值之前等于 10,那么现在将是 16
还需要注意的是,分号( ; )用于终止所有语句,注释是使用两个正斜杠(//)和后面的空格来创建的。
原始类型
- 数字- 将存储整数、浮点数或两者的混合
- 字符串——存储字符,可用于更复杂的表达式
- 布尔值– 存储真或假的二进制类型
- 组– 对象数组,用于创建和定义更复杂的元素
- 链接——一种可以为空或指向某个函数的唯一类型
类和方法
班级人;
字符串名称=无名称;
数字年龄=18;方法显示名称;
原始名称;
返回;
返回;
函数 GetPerson = String;
人 随机人;randomPerson.name = 陌生人;随机人.显示姓名;
返回;
上面的代码创建了一个名为 Person 的类,并实例化了 name 和 age 属性,并使用默认变量对其进行了设置。Person 中还有一个方法,它将打印出给定 Person 类的名称。函数 GetPerson 的返回类型为 String,它实际上会创建一个新的 Person,并根据 Person 类中的方法将其名称打印到屏幕上。
遗产
超级英雄类 = 人;
团体超能力=(激光眼、超强力量、飞行);
有效功率数量 = 1;方法 PowerInUse;
原始超级能力[activePower];
返回;
返回;
SuperHero 类也可以访问 Person 类的所有属性和方法。
Nzym 流行语
Nzym:一种简单、面向对象、解释型、命令式、多平台、高性能、多线程和动态的语言。
许多编程语言系统使用一组标准关键字来描述它们,这些关键字根据它们的范式、类型规则以及语言旨在解决的问题进行阐述。我们使用这些关键字(我们在这里称之为流行语)来描述 Nzym 并介绍其结构和生态系统的核心创始核心。
Nzym 的开发公司 Sadomba-Mahari Computers (Private) Limited(简称 SM)于 2010 年进入网络开发行业,当时他们注册仅几个月,并涉足津巴布韦当地电影业的专用软件制作。大约几年后,他们还开始在 Android、Windows Phone 和 iOS 平台上开发针对高端手机的移动应用程序。下面的斜体部分旨在叙述 SM 面临的问题,并举例说明 Nzym 的关键词。
简单的
类型名称类型 = 值;类型名称.类型方法 = 值2;类名OfClass = InheritFrom;函数名称OfFx = 返回类型;方法名称OfMethod = ReturnType;
通过删除 C++ 中很少使用、难以理解、令人困惑的功能以及 C 类型语法中有时令人困惑的方面(这些方面对于许多人来说造成了许多痛苦和悲伤),一种更简单的语言诞生了。
一开始,SM 只雇佣了三名全职程序员,其中两名是从大学招聘的实习生。他们面临的最大挑战是能够创建和复制静态网站,为不同类型的客户量身定制,但要缩短生产时间。显然,样式表会因项目而异,但有些元素会存在于每个项目中,并且会存在于所有项目中,尤其是导航、页脚小部件、主页、联系页面、关于页面以及用于突出显示产品和展示产品组合的页面。需要一种更简单的原型制作和生产方式……
简单的另一个方面是视觉上的可移植性。Nzym 的目标之一是能够创建可在任何平台上运行并保持其视觉外观和吸引力的媒体应用程序。使用级联样式表和 Web 技术元素来创建标准视觉显示已成为 Nzym 开发的核心目标功能。浏览器、移动应用程序和桌面应用程序中的屏幕显示方式将相同,或者至少在所有平台上的外观和感觉将一致。
面向对象
Nzym 的面向对象功能本质上与之前大多数 C 类语言的功能相同,但语法不同,规则也宽松得多。Nzym 脚本文件是 Nzym 项目的关键对象,在脚本文件中,它们可以包含同样被视为对象的类。
在开发网站时,SM 团队知道他们总是需要重新创建常用元素,例如联系表单或下拉菜单,但需要根据客户的要求进行一些修改。由于他们主要处理创建静态网站,因此,如果有一种方法可以将这些常用元素分组到单独的文件中,以便在需要时轻松导入项目,只需为客户进行少量修改,这似乎是个好主意。例如,更改颜色、在表单中添加或删除某些字段,或在菜单上添加图标。
解释
SM 团队会使用当时存在的 Bootstrap 或内部样板来重新创建和生成不同类型的网站。然而,这些代码块有很多缺点,尤其是在不同设备和旧版浏览器上显示时。
Nzym 解释过程的一个关键目标也是创造出适用于任何设备、任何平台的产品,不仅保持视觉可移植性,还保持相同的功能和性能。
至关重要的
SM 团队工作中的一个困难是必须确定在每个项目中重复使用的元素的放置位置。一个网站的菜单系统位于页面顶部的页眉上方,而另一个网站的菜单系统位于页眉下方。有时菜单会放在页眉中,与其他页眉元素放在一起,有时菜单会分开。知道将代码块和菜单放在何处是一项需要非常小心的任务,如果有人暂时离开他们的项目,那么恢复起来总是很困难。如果有人需要从另一个人手中接管正在进行的项目,而无法一目了然地知道项目的进展情况和已经完成的工作,这同样令人不安。
Nzym 的命令式编程使该语言易于学习,因为可以显示清晰的控制流,让用户更有能力更改、修改和优化程序。这也提高了效率,因为程序员可以准确地告诉计算机程序要做什么。在程序方面,模块化具有优势,因为程序可以分解为较小的可重复使用程序,这些程序也可以在其他程序中重复使用。由于命令式范式,调试也简单得多。
多平台
虽然网站工作是 SM 的主要收入来源,但 SM 还参与了另一个大型项目,即开发多媒体软件包 AVisPar(非洲视觉软件包)。AVisPar 是一套用于创建 3D 可视化、电影、游戏、游戏资产和视觉效果的软件程序和工具。AVisPar 的独特之处在于它能够利用显卡生成高质量的 3D 渲染并几乎实时地将其保存到磁盘。AVisPar 不仅可在最常见的商用桌面操作系统上运行,还可在某些 Linux 发行版上运行。
由于 Nzym 可以生成带有网络资产的网站,包括带有 JavaScript 和 CSS 的 HTML 页面,因此可以说它是多平台的。但是,如果 Nzym 生成 ctlyst 文件,则可以在任何具有 Nzym 控制台实现的平台上运行该文件。
高性能
Nzym 和 Nzym Console 的最新实现是使用 Rust 创建的,因此继承了该语言的其他高性能特性,因为 Rust 编译器能够优化代码以提高速度。此外,Rust 标准库提供了许多高效的算法和数据结构,这些算法和数据结构用于创建当前版本的 Nzym。简要概述一下这对 Nzym 程序意味着什么:
- 内存安全:Rust 的所有权系统确保内存始终得到正确管理,从而防止内存泄漏和崩溃。这可以显著提高性能,因为 Nzym 不必花时间手动管理内存。
- 效率:Rust 的编译器非常擅长优化代码以提高速度。这意味着 Nzym Console 即使在执行复杂任务时也能尽可能快地运行。
多线程
AVisPar 是 SM 团队开展的一个独特项目。它允许在如何创建相关解决方案方面进行大量实验,但团队面临一个巨大的问题,那就是处理同时发生的事件。AVisPar 的初始代码库是用 C++ 编写的,并附带了来自其他 3D 游戏引擎(如 Irrlicht)的一些库。特别是 3D 游戏引擎 Irrlicht 确实有一些多线程功能,这些功能易于使用并适用于在单台机器上运行各种进程。然而,在涉及各种 CPU 和图形处理单元的网络上运行多个线程时,线程变得非常难以处理且复杂。
C 和 C++ 通常是单线程的,使用一些库来实现多线程的创建会导致大多数程序员在使用 Java 或 Objective C 创建多线程应用程序时遇到的相同缺点。通常,问题来自于需要弄清楚线程如何交互的复杂性、由于设计不周而导致的操作系统在线程之间切换的性能问题以及最终更高的资源使用率。另一方面,Nzym 在创建 ctlyst 文件时使用 Rust 的 async/await 模型来处理并发代码。但是,Nzym 在使用 Web Workers 方面也有退路,与 JavaScript 非常相似,可以将多线程转换为 JavaScript 用于网站项目,然后从具有多线程的 JavaScript 应用程序所受益的改进的性能、响应能力和可扩展性中受益。
动态的
从 2011 年初到 2012 年年底,SM 的客户数量不断增加,要求其服务为他们开发移动应用程序。SM 使用 Java 为当时支持 Java 的智能手机创建应用程序,包括当时市场份额很大的 Android 手机。问题是,这些平台的代码虽然用同一种语言编写,但它们并不相同,也不可能相同。视觉呈现不可移植,功能差异很大,开发中使用的库也大不相同。
Java 曾是开发移动语言的首选语言,但近年来已被 Kotlin 和 Swift 等新语言取代。Java 的主要问题过去和现在都是
- 性能:Java 的性能不如某些较新的语言,这会导致应用程序运行速度变慢。
- 复杂性:Java 是一种复杂的语言,这使其难以学习和使用。
- 碎片化:Java 有许多不同的版本,这使得开发适用于所有设备的应用程序变得困难。
虽然 Java 仍然是开发移动应用程序的热门语言,因为它拥有丰富的库和工具,受到众多供应商的支持,并且成熟度高,但新语言正在逐渐普及。Nzym 计划遵循这一思路,以单一代码库为目标,让创建应用程序并将其移植到尽可能多的设备变得更轻松、更好、更快捷,Nzym 无疑是一种值得关注的语言,因为它正在朝着这个目标努力。
结论
目前的发展
未来发展
- 预构建库可更轻松、更快地创建应用程序
- 更强大的类和对象
- 更好的调试器
- 一个简单但更用户友好的 IDE