## The Wooyri of Coder (码物语/woo语言/喔) 的由来: *作者:李焱曦&李夜,修订与2020-12-01* ***** ### **PS:woo语言已经开发完毕,[woo官网](https://woolang.net/) ### **PS:大家喜欢玩游戏的可以到 [wo的B站主页](https://space.bilibili.com/28592193)** > 一款国产`动态脚本` `面向对象`的编程语言,致敬php、python,拥有和nodejs媲美的包管理器 > woo的愿景:让天下人无需在忍受烦人的编译失败... > ***PS:Wooyri=物语=“故事,事件”,wooyri这个词是杜撰的,当用的人多了,那么这个词就自然成立了,如同google The Wooyri of Coder=码人的故事,献给所有有故事的码人*** **woo语言:写命令行比shell简单,写web比php快** **woo语言:不用编译,下载即安装** ***** ## *.)hello world! ```lua|woo -- 一个简单的http webserver例子,监听8000端口,然后访问:http://127.0.0.1:8000 输出hello world! woo.exe -r "woo.http:new():listen(':8000','_out(\'hello world!\')')" ``` **1.下方 使用socket模拟http请求百度首页获取body中内容,在使用正则获取百度首页title中的文本** >下方代码中的_str_byte()已修改为 _bytes(),_byte_str()已修改为_strs() ![](https://img.kancloud.cn/a6/7c/a67c53566811a24fcbc03c25885a089d_2048x1360.png) >**上方代码运行后,网络正常情况下输出:百度一下,你就知道** **2.下方模拟控制台中的进度条** ~~~woo local cls = {} function cls:new() return self end function cls:progress(curr, total, txt) local p = curr / total * 50 local h = _str_repeat("█", p) .. _str_repeat(" ", 50 - p) _out(_format("\r[%s]%.0f%% %s", h, (curr) / total * 100, txt)) end local p = cls:new() local total = 100 * 1000 * 100 for i = 0, total, 1024 * 50 do _sleep(100) p:progress(i, total, math.ceil(1024 *_rand()) .. "kb/s|wpm.zip") end ~~~ ![](https://img.kancloud.cn/93/9d/939d83b232664f7222b02b5c34ce65fc_560x134.gif) **3.woo命令行参数:** ![](https://img.kancloud.cn/3c/0f/3c0f57a287fde3e2ddcdb412ea0c3721_1906x1096.jpg) **3.5 woo启动websocket服务监听程序:** ~~~lua woo -- 客户端通信超时超过86400秒(一天)后断开ws链接,需要客户端重新链接 local timeout = 86400 local webs = woo.ws:new():listen('0.0.0.0:1288', function(wsHandler) while true do -- true表示返回文本,忽略或false表示返回字节集 local clientHandler, strMessage, err = wsHandler:read(true)-- true表示返回文本,忽略或false表示返回字节集 if err ~= nil then break end _out(clientHandler, '=', strMessage, '\n') if strMessage then -- 回复客户端收到数据 wsHandler:write(clientHandler, '收到消息:' .. strMessage) end end end, timeout) ~~~ ***** ## **4.woo语言可以在树莓派等有gpio接口的机器中使用gpio接口控制外部硬件设备 传感器等:** 是的就是这么任性,视频有待录制 ## **5.woo语言支持加密woo脚本,并且执行加密脚本,防止有些不能泄露的代码被恶意使用:** 是的就是这么任性 [去B站看详细加密视频教程](https://www.bilibili.com/video/bv1n64y197DA) ## 一.woo语言支持平台 > 1.)**全平台支持**:`arm32 arm64,armhf,x86, amd64/x86_64` > 2.)**全系统支持**:`windows/linux(ubuntu/centos/debain/deepin...)/macos` > *PS:树莓派类似的arm平台也支持运行(支持gpio引脚通信)* ## 二.为什么开发woo语言 >**作为 易语言 程序员出道(期间做过流水线一线工、也骑过电动车跑几十公里给人修电脑装系统修打印机、给人装监控干工程、当然桌面运维也做过、服务器运维也做过),编程语言也玩过很多,比如:java c# aardio gamemarker lua go python php vbs nodejs c++ elec...,也做过游戏开发([去B站主页看看](https://space.bilibili.com/28592193)),当然也不是每个都很精通;其中最痛苦的莫过于开发过程中安装一大堆依赖包,编译编译...,一次成功,那绝对上天眷顾,为了让广大码人不用在忍受这样的过程,那么本人开发的脚本编程语言woo(The wooyri of coder) 解决了这一痛点,一个可执行文件到处运行,无需下载编译其他依赖** ***** ## 三.和其他语言的区别 >1).woo码物语编程语言是为广大[码人]创建的一款不用编译的动态解释型脚本语言,一个解释器,安装及其简单。 2).编码方式类似php,很多全局函数;例如:_json_encode({1,2}),不同的是全局函数前面都有下划线,一是防止和用户局部变量重名,二是用编辑器使用更加方便,输入下划线就弹出所有全局函数,方便输入 查找。 3).woo语言是`多线程`模式的,相对与php的多进程模式占用内存更小,且支持多线程,使用_run('file.woo',params...)来开启一个线程。 4).woo语言的包管理器是wpm(code wooyri package mamager)和python的pip,php的conposer一个用途,`wpm install oshine/bitmap`即可安装对于的包和插件。 5.)语法兼容lua脚本90%,会简单的lua脚本就可以编写。 6.)面试go程序员的时候,应该被问到chan(通道),装逼必须得了解的,当然了,woo语言也集成了这类装B的功能: ```woo|lua -- test.woo中的内容为: _chan_put(false,{1,2,3,4,5,6,_ARGS[1]}) -- main.woo中的内容为: _run('test.woo', "线程1") _out('主线程loop,取线程提交值', _chan_get(true), "\n") -- 执行:woo main.woo ``` 7.)集成了许多好用的库(开源) >[woo_proxy | sockets5代理 ](https://gitee.com/oshine/woo_proxy) (下面的在开发中。。。) >[Murphy web框架](https://gitee.com/oshine/murphy) [Excel库](https://gitee.com/oshine/cw_excel) [悟空分词插件库,高速分词搜索](https://gitee.com/oshine/cw_wukong) [英文翻译库](https://gitee.com/oshine/cw_translate) 还有更多不一一列举... 开发插件不限制语言,官方提供了插件开发的go语言库:[插件开发库](https://gitee.com/oshine/go_cw_plugs_dev),当然了其他语言也可以开发woo插件,和插件通信使用udp和tcp均可 8.)支持sockets(udp/tcp)/websockets/http服务 ***** > # WOO 官方权威QQ群 > WOO交流讨论群1:465181993 > 1.喜爱撸啊撸可进,喜爱游戏的可进(但是都需要是码人哟) > 2.go语言大佬 php大佬 lua大佬 java大佬 C#大佬 都可以来,这里各种语言大佬一起聊天撩妹,禁止因编程语言问题吵架(比如php是最好的语言) > 3.此群只能妹子和大佬进入,大佬进来聊天撩妹,妹子进来被撩(被骚扰请告知管理),和享有程序媛最高礼遇(有问题一群大佬抢着给解决) > ... ![](https://img.kancloud.cn/14/9f/149f71026fabc2cfda3f2634258b3137_2452x2146.jpg) > ## *.) 仅以此献给所有有故事的开发者/码人 # 捐赠我们 >**WOO语言目前就我一人(李焱曦/oshine : liyanxi_rhett@foxmail.com)在开发,目前注册了上海曦夜科技有限公司来营运,盼着有大公司来收购,希望渺茫,如果想参与项目的,给我买杯咖啡,买包辣条就是对项目的支持了,感谢支持!** ![](https://img.kancloud.cn/80/b2/80b26db73037a13818fd61fd55682564_247x329.png) # 特别赞助商: | 赞助人 | 金额 |相关产品 | | --- | --- |--- | | Alan (荟存小程序创始人)<br/> ![](https://img.kancloud.cn/7a/a8/7aa847052e53513a9468e124bafd5105_60x60.png)|1000¥ | ![](https://img.kancloud.cn/65/77/657721c7fe5fa46a1906b7769ef84546_258x258.png)<br/> (荟存小程序) 随时随地寄存行李| | 跑步爱好者 (导油图小程序创始人)<br/>![](https://img.kancloud.cn/90/26/9026f877993e8d2b72d7de014e4c2144_60x60.png)|1000¥ | ![](https://img.kancloud.cn/1d/57/1d5729acec6afbe1c9c76fe0e6bc6a7a_430x430.png)<br/> (导油图小程序)买油卖油找导油 |