Reason介绍

Reason是在Ocaml语言的基础上修改而来,专门提供给前端开发者使用。

Reason是函数式编程语言,使用Bucklescript编译器编译成javascript语言。

在我看来,至少有两大优点:

1.编译后的javascript优化得非常好,让我们能够高性能地使用函数式编程。

2.强类型和类型推导,让我们既不用向Typescript那样定义很多类型(Reason会帮我们推导类型),又可以享受强类型约束的好处(编译时能检查更多的错误)。

我们Wonder已经使用Reason两年的时间了,所有产品,包括前端后端,都用Reason语言写,非常好用。

下面是一些链接资料:

Reason官网

如何评价 reasonml ? -> Wonder的回答

如何在VSCode中搭建Reason的开发环境

建议使用VSCode编辑器来开发Reason,因为它的插件支持得最好。

具体搭建Reason开发环境的步骤如下:

1.执行“yarn global add bs-platform”

这一步是为了安装Reason的相关工具,如格式化工具bsrefmt等

2.安装VSCode

3.安装VSCode->Extensions->reason-vscode插件

4.设置reason-vscode,显示函数的类型签名

在VSCode->“设置”中,搜索到reason的设置,选中 “Show the type for each top-level value in a codelens”。

或者在setting.json中,加上:

  "reason_language_server.per_value_codelens": true

5.克隆Reason-Example项目,学习如何开始开发:

git clone https://github.com/Wonder-Technology/Reason-Example.git

1)执行"yarn install"

2)执行"yarn watch"

这样在写Reason的时候,会自动编译为js。

3)执行"yarn start",在浏览器地址中输入 http://127.0.0.1:8080 , 运行index.html页面

打开控制台,看到输出“1”

应用案例

案例就是我们Wonder的产品哈,详见:

Wonder.js-基于WebGL的3D引擎

Wonder-Editor-基于Wonder.js的3D编辑器

我写的“从0开发3D引擎”系列博文也使用了Reason语言,详见:

从0开发3D引擎

Reason的介绍和搭建Reason开发环境的更多相关文章

  1. JAVA学习(一):Java介绍及其平台、开发环境的配置与搭建

    Java介绍及其平台.开发环境的配置与搭建 1.Java的介绍 Java是一种面向对象的编程语言,具有跨平台.可移植.分布式.简单.可扩展等诸多特性.Java能够进行桌面应用.Web应用.分布式系统及 ...

  2. 基于C/S架构的3D对战网络游戏C++框架 _05搭建系统开发环境与Boost智能指针、内存池初步了解

    本系列博客主要是以对战游戏为背景介绍3D对战网络游戏常用的开发技术以及C++高级编程技巧,有了这些知识,就可以开发出中小型游戏项目或3D工业仿真项目. 笔者将分为以下三个部分向大家介绍(每日更新): ...

  3. 搭建Cordova开发环境

    Cordova是什么 Apache Cordova是一套设备API,允许移动应用的开发者使用JavaScript来访问本地设备的功能,比如摄像头.加速计.它可以与UI框架(如jQuery Mobile ...

  4. 在Eclipse下搭建Android开发环境教程

    我们昨天向各位介绍了<在NetBeans上搭建Android SDK环境>,前不久也介绍过<在MyEclipse 8.6上搭建Android开发环境>, 都受到了读者的欢迎.但 ...

  5. visual studio 2015 搭建python开发环境,python入门到精通[三]

    在上一篇博客Windows搭建python开发环境,python入门到精通[一]很多园友提到希望使用visual studio 2013/visual studio 2015 python做demo, ...

  6. Windows搭建python开发环境,python入门到精通[一]

    从大学开始玩python到现在参加工作,已经有5年了,现在的公司是一家.net的公司用到python的比较少,最近公司有新项目需要用到python,领导希望我来跟其他同事training,就有了这篇博 ...

  7. 单机搭建Android开发环境(二)

    前文介绍了如何优化SSD和内存,以发挥开发主机的最佳性能,同时提到在SSD上创建虚拟机.为什么不装双系统呢?双系统性能应该会更好!采用Windows+虚拟机的方式,主要是考虑到安卓开发和日常办公两方面 ...

  8. 单机搭建Android开发环境(五)

    前文介绍了Android系统开发环境的搭建,本文将简单介绍Android应用开发环境的搭建. 基于Android Studio搭建应用开发环境,相比使用Eclipse简单得多.Android Stud ...

  9. 单机搭建Android开发环境(四)

    单机搭建安卓开发环境,前三篇主要是磨刀霍霍,这一篇将重点介绍JDK.REPO.GIT及编译工具的安装,下载项目代码并编译.特别说明,以下操作基于64位12.04 Server版Ubuntu.若采用其他 ...

随机推荐

  1. 群晖NAS再折腾

    端口转发 两年前我买了一台双盘位的群晖NAS,配置两个4T的硬盘,这玩意儿一度改变了我使用电脑的模式,真是爽爆了!最最主要的功能就是我能用它规整我所有的资料,并且不管何时何地,只要有网就能访问.为了能 ...

  2. spark 机器学习基础 数据类型

    spark的机器学习库,包含常见的学习算法和工具如分类.回归.聚类.协同过滤.降维等使用算法时都需要指定相应的数据集,下面为大家介绍常用的spark ml 数据类型.1.本地向量(Local Vect ...

  3. Ubuntu 安装php+mysql+nginx

    0x01 安装PHP https://blog.csdn.net/Msmile_my/article/details/73647809   1.添加php的仓库 sudo apt-get instal ...

  4. 如何加速golang写业务的开发速度

    如何加速golang写业务的开发速度 不要忌讳panic golang写业务代码经常会被吐槽,写业务太慢了,其中最大的吐槽点就是,处理各种error太麻烦了.一个项目中,会有30%或者更多的是在处理e ...

  5. 全文检索-Elasticsearch (三) DSL

    DSL:elasticsearch查询语言elasticsearch对json 的语法有严格的要求,每个json串不能换行,同时一个json串和一个json串之间,必须有一个换行 DSL(介绍查询语言 ...

  6. Python:鲜为人知的功能特性(下)

    GitHub 上有一个名为<What the f*ck Python!>的项目,这个有趣的项目意在收集 Python 中那些难以理解和反人类直觉的例子以及鲜为人知的功能特性,并尝试讨论这些 ...

  7. Asp.Net Core 轻松学-玩转配置文件

    前言     在 .NET Core 项目中,配置文件有着举足轻重的地位:与.NetFramework 不同的是,.NET Core 的配置文件都以 .json 结尾,这表示一个标准的 json 格式 ...

  8. 博主新建Linux学习交流群,欢迎广大大神入驻~

    一转眼2018已经过去,博主在博客园辛勤耕耘了1年多,也结识了很多志同道合的道友: 收获了“基”情满满的友谊的同时,也大大拓宽了自己的眼界~ 深深感到在漫漫的学习之路,需要有道友一同共勉和相互激励! ...

  9. DSAPI 图形图像篇(上)

    彩色文字对象 基于一些特殊需求,本人开发了彩色文字对象,该功能通过类似html代码的方式指示文本,并输出图像. 我们还是先来看一张图像. 这不是文本,是通过指定文本代码输出的图像.我们来看一下实现代码 ...

  10. MySQL 笔记整理(14) --count(*)这么慢,我该怎么办?

    笔记记录自林晓斌(丁奇)老师的<MySQL实战45讲> (本篇内图片均来自丁奇老师的讲解,如有侵权,请联系我删除) 14) --count(*)这么慢,我该怎么办? 有时你会发现,随着系统 ...