版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
拜语言的语法结构与JAVA、C#、Javascript的对比
应广大拜语言(By语言)用户的要求,团队尝试用更简洁的文字
整理一些概念性的内容,以供读者,帮助用户更好的理解拜语言(By
语言)的设计理念。工具已经可以实现日常开发所需。文案、视频和
案例的不足之处,团队后续会继续努力,为大家提供更易懂的内容和
更优质的工具。
一、拜语言的语法结构
拜语言(By语言)的语法结构是基于支持面向身份编程技术、数
据化编程和配置化编程的特性而设计的。它旨在简化编程模型,提高
开发效率,提供更广更深的阶梯,让史多的人包括泛实施人员参与到
软件的设计中来。以下是拜语言(By语言)的一些核心语法结构特点
解析:
1.身份(identity):拜语言(By语言)中的身份是一种数据类
型,其包括或支持面向对象的功能或特性,如:方法、属性、事件;
也包括身份的特性:skill“技能”、component"构件”。在编程过程
中,可以把身份当成对象来考量,只是身份不同于对象,具有更复合
的内容。主要区别如下:
对象是经由newobject。来产生新实例:身份是由配置产生新实
例。配置是把当前的身份的“依赖项”一一指定,明确地告诉该身份
当前的“依赖项”对应类型“是谁、在哪里"。身份成员构件中的
“依赖项”也一一明确“是谁,在哪里”。身份的“依赖项”一一指
定之后,相应身份的新实例就完成了。接下来就可以参照传统的对象
使用这个身份了。传统的面向对象编程采用明确编程,不存在“配
置”的过程。
举例说明:
例一:开发了一个数据字典的管理界面,用到了一张的字典表
“die”身份。在新项目中开发学校的系统,有两个字典表:一个是学
生表student,还有一个是老师表teacher。
学生表如下:
createtablestudent
(
IDintprimarykey,一学生编号
name峻出四(32),一学生姓名
性别、体重、年龄.....
)
老师表如下:
createtabicteacher
(
IDintprimarykey,一老师编号
name败黑功短(32),一老师姓名
教龄、入职日期、代课名称.....
)
传统的开发方式是在这两张表之上构件一对一的ORM类型体系,
然后在这些ORM上构建代码逻辑。这种开发方式对于代码的复用是影
响很人的。因为只要用到了ORM,代码就没有多少豆用性可言。
拜语言(By语言)的解决方案是:流程上与传统环节一致:先定
义一个表级的“die”字典身份,定义两个字段级构件“ilD、iName”
编号与名称,写出代码逻辑。写完之后,身份的特点和复用特性开始
呈现。通过刚刚定义的这个身份进行两次新实例及个性化配置。第一
次配置,把身份指向到student这张表,把第一个“ilD”的编号构件
指向到student表的ID字段上,把“iName”名称构件指向到student
表的name字段上,再配置数据源即可(拜语言IDE可以一键自动生
成).第二次配置,把身份指向到teacher这张表.把第一个“ilD”
的编号构件指向到teacher表的ID字段上,把“iName”名称构件指
向到teacher表的name字段上,再配置一下数据源即可(拜语言IDE
可以一键自动生成)。直到项目中所有的数据表完成第N次配置。
不用ORM可否?可以,拜语言提供了双类型,通过双类型,可以
实现比传统的ORM更强大功能,而且语法更简洁,也更好用。双类型
是全局性,与传统SQL结合最紧密。如下图所示,这是By特有的数
据类型之一。希望开发者会喜欢例二的双类型示洌。
例二:
List<Rotn~dic>tmpList«(selecta.afrom:ne”identity:.studenta).rows;
tinpList[e]._______________________________________________________
:server:旅务考
X:"g:》问谷奖型的男仿'出力
©cells兼取当前行所有组元格,兼取的结果独立,修改...
®clone()创建一个新行并将当助行所有身份、字殿、数...
©equals(O83ECTcbj)判断当的行与另一个实例是否相同
©equals(RowtargetRow)判断当前行与指定行内向位置...
IilD编号
目iNane姓名
stringdicJName
isReference(Tablef_table)检查当前身份闲置表与...
姓名
©table获取当前行对应的表,可能为null
场悬client,server,web
List<Ro..~dic>tmpList»(selecta.*fro<r:nenidentity:.teachera).rows;
tapList[9].
:server:限务现
X:fro«n:访问双类型的身份部分
©cells获取当前疔所有单元格,获取的皓果独立,修改...
Oclone。创逑一个新行并将当前行所有身份、字威、蚁...
®equals(OBJECTobj)判断当前行与另一个实例是否相同
®equals(RowtargetRow)判断当前行与指定行内向位置...
目ilD两号
intdic.ilD
日iNane姓名
检查当动身份配置表与...
6i$Reference(Tablef_table)15S:client,server,web
©table兼取当前矛对应的表,可稣为null
通过这种方式,拜语言(By语言)用一份逻缉解决一类问题。设
计“身份”的初衷是为了实现面向对象所不能实现的代码的高度复
用,从而使得开发者能够更好的解决类型性问题和复用性需求。
1.数据化编程:拜语言(By语言)使用“库与表”的概念来描述数
据类型,其中“库”用于组织不同类型的数据结构、数据表,可以是
一类数据结构、数据表的结合,也可以是一系列数据结构、数据表的
组合。“表”用于定义具体的数据项,是一份份的数据表,包含了表
名称、表结构和数据等内容,可以按需直接修改。
2.共性和个性:拜语言(By语言)在语法规范层面做了规范,在
设计和功能层面实现了共性和个性的概念。共性是指软件系统通用的
部分,个性是指软件系统个性化的部分。比对任意软件与软件之间的
共性部分,占比1-99%不等,其余为差异化的个性部分。举个浅显的
例子说明:UI有些类似,log。不同;登录模块大多相同;业务逻辑不
同,但依然会有出库入库逻辑、有基本信息表等等。不同行业之间,
逻辑内容不是100%可以复用的,但是,一些基础性的、结构性的,是
可以复用的,比如要用到数据库的内容,是可以跨行业的。常用的数
据结构,如主表身份、明细表身份,字典表身份、中间表身份等,这
些是各个行业都要用到的内容,根据这些结构写的内容都可以在拜语
言(By语言)实现跨行业、跨项目。所以,拜语言(By语言)通用
性高的部分可以直接配置复用,不需要再重复做。
3.效率:效率的本质是生产力。不同的业务逻辑和编程逻辑,实
现不同的软件系统。开发者的价值是编程逻辑与业务逻辑的实现,也
都知道共性部分其实是属于重复劳动。全球数千万程序员在使用不同
的工具开发不同的软件。很多开发者有很多积累,也可以找到很多前
人开发的基础设施和功能,也可以在Github上找到很多开源的项目。
面向对象编程技术是将代码分享给开发者,通过一段代码能够实现什
么功能。参考既有代码,再回到开发工具,整体修改和调试。开源代
码是无偿贡献,闭源代码拿不到。而掌握代码数据的厂商,可以做AI
生成代码,类似标注的数据,需要问题触发生成。如今的copilot等产
品给开发者提供代码片段,就是此类产品,这是生产力的表现之一。
拜语言(By语言)的差异又在哪里呢?进一步分析:拜语言(By
语言)本身是数据化编程技术,具有AI底座,共性部分做一次就可以
复用。开发者可以直接配置,甚至AI生成。差异化的内容需要自行稍
微修改一下模块化的内容,比如:修改表名称等。这部分内容也可以
成为该类型软件产品的共性内容。当开发者在拜涪言(By语言)的库
与表、编程逻辑、业务逻辑积累到达一定程度,开发者就可以用拜语
言(By语言)配置出开发过的任意系统组合,只做差异化部分就可以
交付了。随着积累的越多,开发者可以配置的内容越多,不需要重复
做的比例就越高,就可以更多的复用内容,生产力和效率也会越来越
高。这是拜语言的重要价值之一。
4.配置化编程:拜语言(By语言)允许通过配置共性部分和个性
部分,而非传统的代码编写来实现功能、复用和灵活性。共性部分代
表通用性内容,个性部分也可以细化到颗粒化的数据单元子集和数据
表。这意味着开发者可以通过设置名称、参数和属性来定义行为,而
不是编写大量的重复性代码逻辑。
5.转译:拜语言(By语言)支持将其代码转译成其他主流编程语
言,转译代码山目标语言的编译器保障。如Java、C#、JS等。这使
得拜语言(By语言)编写的代码可以跨平台、跨语言。开发者不需要
担心编译器的性能和稳定性,更放心使用。
6.跨端一体化:拜语言(By语言)支持多端一体化开发、部署和
运维。因为拜语言(By语言)实现了数据化的开发,一体化的开发,
库与表成为逻辑关联的单元,逻辑实现库与表的关系,有经验的开发
大致能了解到这层关系实质上是反映了业务逻辑和编程逻辑的层面。
大多数情况下,库与表中的名称一致,用编程逻辑关联即可,反而更
容易避免bug。特别是共性部分,拜语言(By语言)支持全网共性部
分检索,最优算法推荐。因此,用拜语言(By语言)编程掘金基础设
施,也能够获利。
7.跨语言:拜语言(By语言)支持跨语言,未来会根据客户需
求,支持更多语言。
8.跨应用场景:拜语言(By语言)支持跨应用场景,共性部分是
可以直接根据不同应用场景复用,比如:制造业的进销存共性部分,
电商的进销存共性部分,医院的进销存共性部分等。
9.跨项目:拜语言(By语言)支持跨项目,共性部分是可以直接
根据不同的项目复用,比如:A制造公司的CRM共性部分,B制造公
司的CRM共性部分可以直接服用。
二、拜语言与JAVA对比
与Java相比,拜语言(以下内容部分简称By)的语法结构和编程
范式有以下不同之处:
1.面向对象vs面向身份:Java是一种传统的面向对象编程语
言,它使用类(对象)的概念来组织代码。而By使用身份和配置的概
念,提供了一种新的组织代码和数据的方式。
2.语法简洁性:By的设计注重简洁性,旨在减少程序员编写代码
的工作量。相比之下,Java的语法更加复杂,包含了更多的关键字和
语法结构。
3.数据类型表示:在Java中,数据类型通常是通过类和接口来定
义的。而在拜语言中,数据类型是通过“库与表”的概念来表示的,这使
得数据类型的表示更加直观和易于理解,尤其是对新手程序员,拜语
言的每个格子都有详细的提示,可按CTRL+J提示。
4.举例说明:
例三:在Java中,定义一个类并创建对象的代码可能如下所示:
publicclassPerson{
privateStringname;
privateintage;
publicPerson(Stringname,intage){
this,name-nane;
thi^age=age;
)
publicString股1麴雇){
returnname;
)
publicvoidsetN^e(Stringname){
this,name=nane;
)
PublicintgeXAgfiX){
returnage;
)
publicvoidgetAgelintage){
IhL..—生=age;
)
)
publicclassMain(
publicstaticvoidmain(StringTIar^s){
Personperson=newPerson("Alice”.30);
SxftggkQUt工RJUILIRtName());
)
)
在By中,会使用身份和配置的方式来定义和使用类似的数据结
构,除了表头之外,代码更加简洁直观,而且可以完成面向对象中不
能完成的功能。比如:面向对象中的对象类,在其他语言中也就是仅
仅是一个对象而己,但By写出来的内容不同,表面上看代码块是多一
点,但是,实际内容反而是更少的,而且这是一写多份。如下示例代
码:
例四:表结构都是相似的,开发者真正需要关注最核心的那一行记
录即可。By开发时,每一个字符通过快捷键CTRL+J都会有提示,
选择所需即可.
{
systembj煦identity”身份类型表"(
stringname'名称”
,string[]scenes"场景"
,string[]modifiers”修饰符"
,stringkind"类型类别”
,stringinheritance”继承项"
,stringf]implementations”实现接II”
,string[]constraints"约束”)
(
{Person"表身份",{£11£乩].§生3片心理奥卜),{}.identity,
工abl勖{},{}}
)
)
例五:
回贬孤?
(
system运题isl典1U的怒触9.瞧瞧“身份构件表”(
stringbelong”所属类型"
,stringname"名称"
,string[]scenes"场景”
,stringtype"类型"
,string口constraints"约束”)
(
{Person,狈"编号",{},by.identity.ID,(}}
{Person,必城呢”名称,{},切(Jtak以及艘,{}}
)
)
例六:
kuNewKu
(
newbl触identity”身份实例衣”(
stringname"名称"
,stringtype"身份类型"
,stringto”标记项”)
{person"表身份二颇救上颜山以殷C融,person)
)
5.重点解析编程实现的过程差异:
传统面向对象编程(OOP)实例的属性是自动跟随对象,不需要
开发者另行创建新实例属性。面向身份编程(IOP)的实例(即身份)
是通过配置实现,包括了库、表、身份(实例)、类型、构件等。IOP
的特点就在于:开发者可以根据需求任意配置身,分(实例),通过配
置实现编程,身份(实例)的内容就是库、表、方法、构件等内容,
配置的内容就是开发者创建的每一份实例和编程至辑。这个特点是面
向身份的核心内容之一,其在编程逻辑中支持了:从表结构可以创建
身份(实例),可以用已有的数据库创建身份(实例),支持配置开
发,支持一键导入表结构生成系统,而不用另行写代码。对于个性化
或没有的身份(实例)和编程逻辑内容,需要开发者自行创建。
传统面向对象编程中的语法结构没有此种功能和语法规范的内容,
这是由编程语言语法本身决定。但是,面向对象几十年的积累,拥有
了大量的框架和基础设施,这是优势。在实际项目开发中,开发者接
到新客户的开发需求,首先评估客户需求与现有巳开发的内容匹配
度,再评估客户差异化需求的工作量,包括但不限于各行各业的差异
化而需要一次开发和二次开发内容,其中涉及到各类表单的一次开发
和二次开发的编程实现,业务逻辑的编程实现等。如今的解决方案
是:原生开发、框架开发、购买标准件,低代码实现等等。但是,每
个开发者和开发团队经验积累创建的内容中,其中又因为很多内容不
符合新客户需求,大多数非标准软件系统的需求都是差异化的内容,
需要大量的调整工作。依然可能产生大量的重复性工作。评估完成
后,安排出项目实施的计划,安排重构代码开发,每一个端逐步开发
或分组开发,拿出成品后,测试,修改,上线等等流程。开发者最烦
闷的是需求变更导致的架构变化。这种需求变化是有可能导致大幅度
修改,甚至有可能产生推倒重来的情况。开发者要就需求沟通、需求
建模、需求开发和修改等等事情,惶惶不可终日的反复加班了。
拜语言(By语言)的解决方案是:将开发过的库与表作为整体,
允许对库与表进行直接的调用,跨端一体化、跨溶言、跨应用场景、
跨项目调用,转译成目标语言运行。开发过程中,遵循拜语言(By语
言)的语法规范,库与表名称统一,即可直接调用和复用。调用和复
用的内容包括By库中的所有既有库和表(不允许自行修改),开发者
自行开发的库和表,也允许对开发者自行开发的库与表的内容直接增
删改查。这是拜语言(By语言)与其他语言最重要的差异性之一。这
也直接决定了拜语言(By语言)一次开发和二次开发的效率提升。开
发身份(实例)积累越多,效率越高。如下示例,代码中的构件就是
针对个性化需求用户而定制的语法规范。身份(实例)的实际内容名
可以为按需设定,按需增删改查任一表单,而旦可以根据用户的需求
直接修改调整而不影响架构,多端一体化开发、部署和运维。在拜语
言的语法中,库与表作为整体,就像是OOP中的指针对象,修改己有
库与表的名称调用即可。由此,开发者可以将更多精力放在架构和需
求实现设计方面,节约大量写代码的时间。开发积累越多,可调用越
多,时间转化价值越大。而且此类调用的代码相对简单,实施人员或
业务人员也可以独立自行完成。如下示例。
例七:
kuHewKu
(
new旧融、蜘贩2砥联”身份实例构件表“(
stringbelong”所属身份实例”
,stringname"名称"
,stringto"标记项")
(
{person,亚迪}〃该构件对就数据表中的辿字段
{person,心如叫name}//黑副蛾构件对就数据衣中的name字段
)
)
三、拜语言与C#的不同:
By与C#的不同主要体现在它们的设计理念、语法结构、应用领域
和目标用户等方面。
1.设计理念:C#是一种面向对象的编程语言,设计用于.NET框
架。By提出了面向身份编程的概念和理论,强调数据和状态的管理以
及身份之间的关系。
2.语法结构:C#的语法结构遵循传统的面向对象编程模式,包括
类、接口、继承、多态等概念。By采用更简洁的语法结构,减少重复
性代码,并通过配置化编程来提高开发效率。
3.应用领域:C#广泛应用于企业级应用、桌面应用、游戏开发
(使用Unity引擎)等领域。By更专注于数据处理和云服务,特别是
在需要处理大规模数据和快速适应变化的场景中。
4.目标用户:C#由于其强大的类型系统和丰富的库支持,适合专
业的软件开发人员。By在于提供更广更深的编程扩展和纵深,使得专
业和入门各司其职,使得非技术人员也能参与到软件开发中来。
5.面向身份编程:C#是一种面向对象的编程语言,使用类和对象作
为基本构建块。By引入了面向身份的概念,强调个体的唯一性和状态
管理。
6.数据化编程:C#通过类定义数据结构。By使用“库与表”的概
念来描述数据类型,这使得数据类型的表示更加直观和易于理解。
7.配置化编程:By支持通过配置而非传统的代码编写来实现功能
的复用和灵活性。C#中配置不是核心概念。
四、拜语言与JavaScript的不同:
By和JavaScript(JS)的不同也反映在设计理念、语法结构、应
用领域和目标用户等维度。
1.设计理念:JavaScript是一种动态类型的脚本语言,广泛用于
Web前端开发以及服务器端(Node.js)编程。By提出了面向身份编
程的概念,在数据处理和云服务方面有其独特的优势。
2.语法结构:JavaScript以其灵活的语法和异步编程模型而知
名。By采用不同的语法结构,更注重于数据模型的配置和身份之间的
关系定义。
[1].静态类型vs动态类型:JavaScript是一种动态类型的语言,By更注
重静态强类型检查,以提高代码的稳定性和性能。
[2].语法简洁性:JavaScript以其灵活的语法和异步编程模型而知名。By
采用更简洁的语法结构,减少程序员编写代码的工作量。
[3].编程范式:JavaScript广泛用于Web前端开发以及服务器端(Node.js)
编程,By更专•注于数据处理和云服务,特别是在需要处理大规模数据和
快速适应变化的场景中。
3.应用领域:JavaScript在Web
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北省宜昌市外国语初级中学2025-2026学年初三下学期英语试题9月开学考试卷含解析
- 湖南省长沙广益中学2026届中考一模语文试题分类汇编:集合与常用逻辑用语含解析
- 江苏省东海县2026年初三月考(5)语文试题含解析
- 广西南宁市江南区三十四中2026届初三下学期开学考试语文试题文试题含解析
- 浙江省温州市瑞安市2025-2026学年初三下学期5月质量检查英语试题试卷含解析
- 浙江省杭州萧山回澜重点中学2026届初三下学期第三次月考语文试题(理A)试题含解析
- 湖北省襄阳市南漳县市级名校2026届初三3月教学情况调研(一)英语试题含解析
- (正式版)DB37∕T 1507-2010 《绿色食品 塑料大棚西瓜生产技术规程》
- 托管班合作合同
- 病房常见应急预案(3篇)
- 外墙蜘蛛人吊绳施工方案
- 工业机器人维护和保养课件
- 医院放射科竞聘演讲
- 2026版高中汉水丑生生物-第一章第一节分离定律
- 废品回收处置投标方案(3篇)
- GB/T 18268.1-2025测量、控制和实验室用的电设备电磁兼容性要求第1部分:通用要求
- 2025年辽宁中考英语试题及答案
- 【高考真题】 2025年浙江6月高考地理真题(含答案)
- GPS地壳形变监测分析-洞察及研究
- T/IESB 002-2020景观照明设施运行维护费用估算
- 蓝莓大棚买卖合同协议书
评论
0/150
提交评论