ILBC  见 《ILBC 规范》  https://www.cnblogs.com/KSongKing/p/10354824.html

今天装了个 VsCode , 听说 VsCode 是 用 Javascript 写的,

突然觉得, 跨平台 的 主角 应该是 Javascript 嘛 ~!

所以, 就想 ILBC 是不是也要支持  Javascript ,,,  当然, 从技术上, ILBC 完全没有问题 。

Javascript  确实 很容易 跨平台,  比如, 脚步语言 不需要复杂的 开发环境 和 运行环境, 普及率高, 没有 复杂的 基础库, 等等 。

不过 有 网友 说 Js 是 单线程 模型, 对 并发 和 并行计算 不友好, 也有网友说, Js 适用于 IO 密集型 , 不适用于 计算密集型 。

还有一个 缺点 是, 弱类型, 这样在 开发时 对于 类型 的 方法提示 以及 错误提示 不太方便 。

所以, 我就想 ILBC 也可以提供一种 语言, 可以容易的使用, 来像 Js 一样可以容易的 跨平台 和 快速开发 。

这种 语言 命名为  EScript  。

EScript  跟  D#  差不多,  就是 把  D#  值类型  的 部分 完全采用 对象的方式 来 处理  就 可以 了 。

另外, EScript 不提供 D# 的 一些 底层特性, 比如 指针 。

值类型 完全采用 对象, 比如 int 类型, 实际上一个  Int32 结构体 ,  并且 结构体 也 用 引用 的 方式 访问 。

O  了  。

ILBC  对  这个 架构 完全支持,  比 支持  D#  还简单 。

EScript  基础库 提供  String, 集合, 简单 IO, HttpClient ,

提供  illock  关键字 实现  IL Lock ,   以此 实现 并发编程 的 同步 / 互斥  通信  。

后来想了一下, 不应该提供 IL Lock, 因为 提供 IL Lock 意味着 提供 线程 。

对于  EScript, 不需要 提供 线程 ,  提供  Task 库  就可以,

Task 之间可以通过  Task.Lock( obj )  来 锁定对象 来 同步 / 互斥 通信 ,

也可以用  Task.Wait( ) ,  Task.Join( )  等 方法 来 实现 Task 之间 的 通信协作 。

EScript  把 数值类型(int long float double char bool  等) 都 作为 结构体(比如  Int32), 并且用 引用 访问, 这会 降低 执行效率 。

最 呵呵 的 是 连 bool 也 用  结构体 + 引用  表示,,,

不过没办法,

EScript  可以用于 对 执行效率 要求 不严格 的 场合  。

转载于:https://www.cnblogs.com/KSongKing/p/10462249.html

我发起了一个 ILBC 的 子项目 EScript相关推荐

  1. 我发起了一个 用 物理服务器 和 .Net 平台 构建云平台 的 .Net 开源项目

    大家好 , 我发起了一个 用 物理服务器 和 .Net 平台 构建云平台 的 .Net 开源项目 . 对 , 用 物理服务器 和 .Net 平台 构建 云平台 . 通过 .Net 构建 分布式 计算集 ...

  2. 我发起了一个 .Net Core 平台上的 分布式缓存 开源项目 ShareMemory 用于 取代 Redis...

    Redis 的 安装 是 复杂 的, 使用 是 复杂 的, Redis 的 功能 是 重型 的, Redis 本身的 技术实现 是 复杂 的 . Redis 是用 C 写的, C 语言 编写的代码需要 ...

  3. 开源项目的演进会遇到哪些“坑”?KubeVela 从发起到晋级 CNCF 孵化的全程回顾

    作者:孙健波.曾庆国 点击查看:「开源人说」第五期<KubeVela:一场向应用交付标准的冲锋> 2023 年 2 月,**KubeVela [ 1] ** 经过全体 ToC 投票成功进入 ...

  4. 老板要我开发一个简单的工作流引擎

    点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 第1关 一天,老板找到我,说要做个简单的工作流引擎. 我查了 ...

  5. 惊了,老板要我开发一个工作流引擎!

    来源:https://www.cnblogs.com/duck-and-duck/p/14436373.html 第1关 一天,老板找到我,说要做个简单的工作流引擎. 我查了一天啥是工作流,然后做出了 ...

  6. linux access函数_构建一个即时消息应用(九):Conversation 页面 | Linux 中国

    导读:在这篇文章中,我们将对对话页面进行编码. 本文字数:5504,阅读时长大约:6分钟https://linux.cn/article-12723-1.html作者:Nicolás Parada译者 ...

  7. 运行第一个Docker容器-Docker for Web Developers(1)

    1. Docker介绍 Docker由dotCloud公司发起的一个内部项目,后来Docker火了,dotCloud公司改名为Docker了: Docker使用了Go语言开发,基于 Linux 内核的 ...

  8. 先定一个小目标,自己封装个ajax

    你是否发现项目中有很多页面只用到了框架不到十分之一的内容,还引了压缩后还有70多kb的jquery库 你是否发现项目中就用了两三个underscore提供的方法,其他大部分的你方法你甚至从来没有看过 ...

  9. springcloud 子项目怎么导入_Spring Cloud基础面试题大集合

    整理自:ThinkWon  链接:blog.csdn.net/ThinkWon/article/details/104397367 本文知识点目录 为什么需要学习Spring Cloud 什么是Spr ...

最新文章

  1. C# 定义了 7 种变量类别:静态变量、实例变量、数组元素、值参数、引用参数、输出参数和局部变量
  2. 容器编排技术 -- Kubernetes kubectl patch 命令详解
  3. 3D Vision公开课精华 | 深度三维感知:数据、学习架构与应用
  4. R7-9 红色警报 (25 分)
  5. java线程交替执行_Java synchronized线程交替运行实现过程详解
  6. 怎么用python爬图片_如何用Python来制作简单的爬虫,爬取到你想要的图片
  7. centos 6上安装使用saltstack以及基础管理
  8. 汉印扫描器设置软件_汉印HPRTK180打印机驱动
  9. linux ubantu最新版本,过去十年最佳的Ubuntu版本
  10. 读取jpeg图像数据
  11. 关闭计算机安全模式,怎么关闭安全模式,bios安全启动模式
  12. 苹果公司发展史_苹果公司的发展历史
  13. virtualbox与windows共享文件夹
  14. 《小石潭记》古文鉴赏
  15. MYSQL查询优化一
  16. java使用poi操作world生成饼图,柱状图,折线图,组合图:一
  17. 背包DP FOJ 2214
  18. eclipse安装red5插件
  19. python搜索关键词的公众号文章标题和路径_按关键字搜索并爬去微信公众号文章...
  20. .net framework、.net standard、 .net core .net 5/6 区别

热门文章

  1. SpringCloud Ribbon负载均衡介绍及使用
  2. Dubbo(八)使用配置类方式实现服务提供者消费者dubbo配置
  3. 6 追前沿,领略SET化架构衍化与设计
  4. encoding/json 方法Marshal的说明
  5. Session 实现、配置与使用详解
  6. 彻底理解SESSION
  7. RocketMQ事务消息及消息索引设计原理
  8. vuex mysql_Vue插件---Vuex(仓库,数据库)
  9. 贴吧粉丝怎么全部移除_教程:高达模型贴大面积的水贴纸张要如何操作
  10. Redis数据结构——跳跃表-skiplist