logo BT编程语言
首页 动态 关于 更新记录
开发BT语言的初衷和目的
2024-10-20
做为一名资深的程序员,我的大部分时间都在写底层代码,尤其是架构设计,在Web端的开发中,PHP是我用的最久的语言,对此,有着深刻的看法,例如函数调用以及嵌套问题,因为PHP的语法并不像Rust、JavaScript一样使用链式语法,例如PHP中: 简写就是: 你会发现第一段的代码虽然繁琐,却很好理解,但是,明明实现一个简单的字符串处理逻辑时,却要写很多代码才能实现,而我们简化代码时,由于语法的原因,只能嵌套使用,这时你会发现,代码需要从右向左去读,这种代码是十分费解的,你绝对不想这么实现。 所以我就有了开发一套能支持链式语法的脚本语言,这是我的初步定位。 经过一段时间的努力,BT语言实现了,支持链式语法,将上面的代码转成BT语言: 看起来简单易懂,因为从左到右的习惯,更能一目了然,所以,BT语言的语法借鉴了一些编程语言的语法优点,在开发上,这绝对让你无比的舒服。 一门编程语言的开发,必然要弥补其它编程语言所面临的缺陷和困窘,不然它将毫无意义,在编程中,Web上的开发占据了极大的比重,所以PHP能实现的,BT必然要实现。 Web端上的开发,PHP的巨大优势是基于脚本解释,所见即得,不需要编译,而像Java,Go,Rust等语言,任何的改动都需要编译运行,项目越大,编译时间越长,所以,我认为这是脚本语言的优势。 BT的第二项设定便是语言的interpretability,即解释性,这个设定是,我们希望BT语言能像Python、PHP、JavaScript一样,能直接运行,而不是像Rust、Go一样,需要编译成二进制文件,再运行。 如此,BT便弥补了PHP的不足,但紧紧如此还远远不够,PHP自身不支持定时任务,这是一大缺陷,只能通过其它命令工具来实现,比起Java和Rust来说,PHP的定时任务实现十分另类。 所以BT完全支持定时任务,因为BT在开启Web服务时,是持续运行的,我们只需要在BT中写定时任务即可,并且支持自由更改和关闭。 ‌PHP是单线程的,作为一种服务器端脚本语言,这意味着在同一时间,PHP只能处理一个请求‌,PHP的运行机制并不是完全的多线程,虽然PHP脚本的执行是单线程的,但服务器(如Apache、Nginx)是多线程的,每次对某个PHP文件的访问,服务器都会创建一个新的进程或线程来执行对应的PHP文件,因此,虽然单个请求的处理是单线程的,但服务器可以同时处理多个请求,从而实现并发处理‌。 不过,PHP依赖性太强,无法独立,所以,BT的设定必须是无任何依赖,并且支持多线程,经过一些时日的优化,BT做到了惊人的突破:
  • 多线程:BT语言的Web服务基于异步多线程,并且支持多核CPU,在多核CPU上BT可以同时处理多个请求,从而实现强大的并发处理。
  • 独立性:不依赖Apache、Nginx等任何Web服务,内核基于Hyper和Tokio构建,提供了HTTP1、HTTP2和HTTP3的支持,提供了强大的异步处理能力,使其能够处理高并发的请求,确保应用在高负载下的性能表现。
  • 简洁性:BT编译器相当的小巧,只是一个精小的可执行文件,不需要安装,不需要任何环境配置,也不需要依赖任何环境,这是所有编程语言所做不到的,自身包含了Web服务,可通过BT语言代码自由开启。
这是PHP所做不到的,也是我开发BT语言的一大动力,BT的设定就是保持高度的简洁性,一尘不染,小而巧练,让开发更简单,让代码更简洁。 开发者最头疼的一件事就是各种环境的搭建和配置,而BT精简到了极致,无需搭建环境,放到任何目录中都可执行并运行。 BT的第一版已经完结,做到了BT语言的解释,而本站就是基于BT驱动。 接下来就是BT语言的编译处理,这是BT语言的第二项重大的设定,BT语言即是一门解释型语言,也是编译型语言,意思是她可以当做脚本执行,就跟Python和PHP一样,当然也可以直接编译成二进制的可执行文件,也可以像Java一样,编译成jar,虚拟运行。 所以BT语言在众多开发领域中是具有巨大的优势的。 BT语言可以用来快速开发Web网站,因为其独特的纯洁性,她不依赖Apache、Nginx这些Web服务器,只需要编写几行简单的BT代码,就可以配置好域名、SSL证书以及项目目录的绑定。 BT语言不像PHP只服务于Web,BT可以开发桌面软件,如果做为BT脚本,那么她可以直接被运行,还可以嵌入常见的主流程序语言中被调用,就像Python一样,因为编译器只有一个简小的可执行文件,可直接通过命令行或外部执行函数调用她。 BT是跨平台的,可以运行在Windows、Linux、macOS等多个操作系统上运行,而不需要对代码进行大量修改。 目前BT语言刚刚问世,只实现了对脚本的解释运行,编译机制会在后面的版本逐渐完善。