zoukankan      html  css  js  c++  java
  • 网络化沟通及协作的人机交互编程语言-机器人语言

        最近受一些特别的语言启发,结合微薄,MD,以及有个任务管理的快速创建标记,加上量子最近正在做的任务管理软件,以及最近量子认识到的时间就是计算的本质,刚才突然灵感爆发,产生了发明一种人机交互语言,用于完成直接通过语言模式和机器交流这一重磅伟大思想。后来量子决定把这种语言命名为“机器人语言”,原因见机器人语言2.

        时间不早了,该到了计算运行到睡觉状态的时候了。先切入一下这个”机器人语言“进程,记录下来。

        大体上是这样的,比如Html,一种界面描述语言,MD,一种更简化的界面描述语言,JSON,Entity,一种对象描述语言,微博的@,#等符号,一种新型的标记语言。

        那么,量子从事了多年的“管理系统”软件研发,曾经写不过少的CRUD,差点思维给固化到,用户界面显示一些字段,然后代码:Task.Name = "发明时间编程语言";Task.Type = 1; Task.CreateTime = DateTime.Now; TaskManager.Create(Task);这样的状态了。这种糟糕的习惯思维,几乎让量子忘记了,这其实是一种很初级级别的编程方式。

        最近量子也在研究一些动态绑定技术,从底层代码上看,的确可以去掉赋值这种老土模式,但用户的录入界面,和工作模式,却没想过有更灵活的方式。

        这里,我们首先要问,为什么需要一个表单,才能和用户交互?量子认为,中文输入,最终只有三种方式,笔画(五笔),拼音,和语音输入,比如这一篇,就是用自然语言写我想写的东西。

        但是,如果我们需要做一些任务,工作,计划,和别人交互,为什么到了信息系统,却需要表单这种东西呢?为什么不能象老板安排工作一样,语言式的口头表达呢?比如:

        王秘书,给我定一张明天下午到上海的机票,下午前给我反馈,告诉我预定的航班及行程。

        看,语言表达的很清楚,自然,但如果用传统的管理软件,生生一个任务,那可能会是这个样子。

        创建人:王秘书

        任务名称:预定量总出差机票

        任务内容:给量总定一张明天下午到上海的机票,下午前给我反馈,告诉我预定的航班及行程。

        截止时间:当天下午3点

        任务类型:预定

        ...

        一个非常不直观,复杂的界面,死板,如果任务有变化,多些或少些字段,那么更难于适用,而且这样的东西需要培训。

        但是如果我们发明一种任务的DSL领域语言,让它尽可能接近自然语言,但是又标准化,是不是可行呢?完全可以。

        象微博,已经有了一些特定的表达方式,虽然很有限,但就这有限的一丁点语法,就能带来革命性的变革,如果能把工作任务,这种人类每天都要干的事情,计算机语言化,那带来的变化难于估量。

        我们试着把上面最简单的东西模式化一下看看:

        利用已有的微博语言#及@

        #表示关键字,@表示给谁

        那么对于工作任务,协作这样的东西,我们还需要更多语法,这里试着列下:

        时间:一般有三个时间,某时间激发, 开始时间,结束时间, 我们使用-来表示,时间放在括号里,

        比如(2012/1/1),(2012/1/1-), (2012/1/1-2012-2-2), (-2012/2/2),看,三种类型的时间都可以解析出来。

        超连接:比如这个任务连接到别的任务,可以这样@#其它任务#, @缺省是人,但如果@#任务#,那就是变成另一个调用。

        任务逻辑:比如A任务,需要接着B任务, 或者任务A,不能再有任务B,或者A,B或选,这里直接引入逻辑表达式, && , || , !

        任务优先级别:直接引入级别数量,1,2,3,4,5这样子,比如#1订票#, 或者#订票1#

        任务转移:使用Mail关键字:TO:及CC: To就把任务所有人转移,CC就是抄送。或者参与者

        任务回执自身,@我, @me,ToMe,To我, CC我,这样子。

        任务层级关系:比如这样的一个层次:

        A:Task任务研发

        A1:Task任务需求调研

        A2:Task设计

        A21:Task总体设计

        A22:UML建模

    。。。

        那么,可以通过#任务#这里面做拆分,比如这样的语法:#任务-需求调研#,#任务-设计-总体设计#,这样就可以表示层次结构

        把任务通过其它通讯工具分享或分发

        一样:@, 比如@QQ:12345, 那就是把任务发给QQ号为12345的。@WX:, @WB:, @Mail:abc@def.com等。

        扩展:

        所谓扩展,就是更多的操作,类似于编程调用库函数操作,比如JQuery这么干$('xxx').xxxx什么的。但是这种表达方式不太符合自然语法,我们增加一个命令:?

        ?开始的,就进行执行状态,比如可以这样:

        ?delete:#任务A#,  执行一个删除任务名为任务A的操作

        ?Complete:#任务A#, 完成任务A

    。。。

        这样就把很多操作命令化了,命令可以连接起来

        任务的通配符,我们引入标装的*和?,主要用于匹配关键字及人,比如@王??, #任务*#, 这样子。

        更多内容,回头再完善。

        

        

  • 相关阅读:
    C#操作REDIS例子
    A C# Framework for Interprocess Synchronization and Communication
    UTF8 GBK UTF8 GB2312 之间的区别和关系
    开源项目选型问题
    Mysql命令大全——入门经典
    RAM, SDRAM ,ROM, NAND FLASH, NOR FLASH 详解(引用)
    zabbix邮件报警通过脚本来发送邮件
    centos启动提示unexpected inconsistency RUN fsck MANUALLY
    rm 或者ls 报Argument list too long
    初遇Citymaker (六)
  • 原文地址:https://www.cnblogs.com/DSharp/p/3481335.html
Copyright © 2011-2022 走看看