TypeScript与Haxe:两种截然不同的JS转译工具横向对比
转自:TypeScript与Haxe:两种截然不同的JS转译工具横向对比
JavaScript无疑是当今最火爆的编程语言之一,它的崛起要归功于AJAX、Node.js的出现以及时下各种MVC框架的流行。但作为一门在十天之内创建出来的语言,JS本身存在着一些不完善之处、以及容易令人疑惑的地方,例如不支持强类型以及new关键字的用法。尤其与当前主流的面向对象语言以及动态语言相比,其不足之处显得尤为突出。
为了克服JS语言中的缺陷,让更多的人能够编写出优秀的代码,市面上出现了大量能够将其它编程语言转译为JS的工具。其中较知名的有CoffeeScript、Dart、GWT、Script#,以及本文的主角TypeScript与Haxe。
TypeScript是这一领域中的新贵,由微软于2012年发布。近期发布到1.5版,加入了大量ES6的特性。TypeScript被设计为JS的一个超集,因此现有的JS都是合法的TypeScript代码。这门语言也得到了Angular团队以及Telerik的支持。
作为这一领域中的老前辈,Haxe从2006年起就提供了转译为JS的功能。与TypeScript类似,Haxe也提供了一套类似于JS的语法、静态类型系统以及模块。除了JS之外,Haxe还能够提供编译为Flash、PHP、C++等语言的功能。
来自Haxe的员工Andy Li最近在博客中对TypeScript与Haxe进行了一次全面的比较,包括语法、底层语义、类型系统、以及组织和生成代码的方式。为开发者如何在这两种工具间进行选择提供了一个不错的参考。
在文章的最后,Andy对他的观点进行了一番总结。他认为这两门语言具有一定的相似性,但在设计思想上有许多不同之处。TypeScript总体更接近原生的JS,对于JS开发者来说更容易上手。而非JS开发者或许会喜欢Haxe,它更接近于现代的静态语言,同时引入了许多函数式编程的概念,进一步加强了它的语法特性。
Andy个人更偏向于使用Haxe,除了因为他本身就是Haxe Foundation的一员之外,还因为Haxe能够提供编译为其它语言的功能,而这一点是TypeScript所不具备的,因为后者设计时就是为了编译为JS这个目的而生。
TypeScript与Haxe:两种截然不同的JS转译工具横向对比相关推荐
- 固定编辑框输入上限和下限_两种截然不同的汉字输入场景
汉字输入法有两种截然不同的应用场景,一种是大众应用,另一种是专业应用.所谓大众应用,是指一般的人使用汉字输入法来满足日常的工作和生活需要,比如写作.聊天等.所谓专业应用,是指打字员.参与打字比赛的人等 ...
- NanShan HTML 5与Flex是两种截然不同的技术解决方案
原文:NanShan HTML 5与Flex是两种截然不同的技术解决方案 2015年即时通讯领域,NanShan HTML 5与Flex是两种截然不同的技术解决方案.HTML 5的出现让Flex更加专 ...
- 防止email被抓取的两种方法(js和css)
现在很多无聊人士都用自己的spider在网上到处抓取email, 如果你的页面上写了自己的email,那么不多久就会收到很多垃圾邮件. 有很多方法可以避免被抓取,现在很多人都把@换成#,不过估计很多蜘 ...
- 股市和期市是两种截然不同的市场机制 ——兼与徐小明先生商榷
陈培雄:股市和期市是两种市场机制 陈培雄 偶然机会朋友推荐我拜读了徐小明先生<探寻股市下跌的真正原因>系列文章. 以下几个原因让我写下这篇文章, 一是为徐小明先生精神和勇气感动: 二是本人 ...
- 两种方式实现js, ajax跨域
2019独角兽企业重金招聘Python工程师标准>>> 做客户端软件或手机应用,没有域,所以要解决跨域通信. 第一种方式就是jsonp 这个大家可以查一下,这里直接贴实例 html代 ...
- 看两种截然不同的设计理念:分布式文件系统支持大和小文件的思考
为何Google GFS设计成对大文件友好,而像腾讯的TFS(Tencent File System)和淘宝的TFS(Taobao File System)却设计成对小文件友好了? 这一点非常好理解, ...
- 域名解析、域名空间绑定,两种截然不同概念
动态域名为何需要解析?其实,域名解析是网站维护的基本环节.对于非互联网专业人士来说,动态域名解析是难题.那么,到底动态域名如何解析成功呢?这里我们就来了解一下域名解析知识. 首先要注册域名,购买虚拟主 ...
- 两种常用的js数组转字符串方法
一.toString() js中的toStrig()方法能把数组转换为字符串,并且元素之间用 ',' 隔开 例如: let arr =['喵喵','火花','水蓝蓝']let str=arr.toSt ...
- Mybatis的批量插入数据库的两种方法及代码自动生成工具的使用方法
文章目录 常规批量插入.(通过foreach,生成很长的SQL) ExecutorType.BATCH方式执行批量操作 在这里简单介绍一下,自动生成工具的使用方法 常规批量插入.(通过foreach, ...
最新文章
- Docker网络详解——原理篇
- Zookeeper分布式一致性原理(七):Curator客户端
- [architecture]-AXI/APB/AHB/ACE的介绍
- 目前最全的存储形式总结
- Netflix CEO:入华谈判进展顺利 或很快获牌照
- 2018/7/9-纪中某B组题【jzoj1503,jzoj1158,jzoj1161】
- php 导出txt 缩进,indent - 缩进文本
- python 爬取贝壳网小区名称_Python爬虫实战:爬取贝壳网二手房40000条数据
- sed mysql配置文件_shell解析my.cnf配置文件
- 人大提出新模型,将Two Stage的Video Paragraph Captioning变成One Stage,性能却没下降...
- div iframe html5,深入理解iframe
- 基于VMware vSphere的虚拟化平台,内存分配是如何实现的?
- 通过MVC模式将Web视图和逻辑代码分离
- html的下拉刷新页面,html下拉刷新上拉加载Refresher3.0
- c语言burg算法,用Burg算法提升空间调制傅里叶光谱仪分辨率与定阶方法
- Python被誉为神奇的“胶水语言”,到底神奇在哪?
- 数仓知识05:事实表和维度表的概念
- python制作圆形按钮_圆形按钮tkinter python
- 图表框架html,推荐14个实用的JavaScript图表(JS图表)图形绘制工具
- 世界名牌CD机解码芯片大全
热门文章
- NOI 国家集训队论文集
- 中国煤炭机械行业十四五需求规模与竞争形势分析报告2022版
- Eclipse java 字体的设置(最佳字体推荐)
- python同时运行多个程序_如何同时运行两个python循环?
- Linux安装telnet服务、telnet 命令用法
- 湛蓝代码自动生成工具有感
- STM32F103 基本定时器 (P2MDA-KM4)
- el-table 树形表格 自定义展开图标_Icon Slate for mac(图标制作工具) v4.5.0
- JavaWeb 项目 --- 博客系统(基于模板引擎)
- windows pipe