作为前端资深码农,各种代码提示工具肯定是少不了的。本篇文章将针对自己使用过的VsCode中各前端代码提示工具进行对比,涉及 TabNine,aiXcoder Code Completer和Sophon Code IIntellisense等。为方便描述,aiXcoder Code Completer简称 aiXcoder,Sophon Code Intellisense 简称 Sophon。 与传统代码推荐方式不同的是,三种工具都采用智能算法进行推荐 让我们看看他们的效果吧。
服务&模型对比
这里我们都选择直接从VsCode 插件市场中进行安装,这里要注意一下,aiXcoder在windows环境下载本地服务之后安装会报错,需要手动处理下 ,见Issue。
先看下各个工具提供服务的方式吧:
- TabNine 默认为本地服务,可收费升级为专业版,提供GPU加速的云端服务,以及定制化部署的企业版。本地版支持多系统多平台,其中单个服务文件大小为10M左右。后续TabNine会自行下载具备深度学习的模型,大小大概在800M左右。
- aiXCoder 默认为远程服务方式(需注册登陆),自行下载本地服务,大小为220M左右,之后可自主进行切换服务方式。
- Sophon 也基于本地化服务,模型大小大概在40M左右。
可以看到总模型大小 Sophon < aiXcoder < TabNine。
远程服务 VS 本地服务
至于远程服务和本地化服务有什么区别呢?
首先,远程服务无可避免的需要依赖于网络通信,断网或者网络慢会尤其影响远程服务的体验;其次,远程服务无可避免的需要将本地的当前代码上下文上传至远程服务器,其中代码安全问题会尤其重要和敏感。但远程服务也有其不可替代的优点,首先,智能模型可随时更新;其次,模型部署在云端,不会占用机器内存,并可以选择更高的配置和GPU进行加速。相比之下,如果服务部署在本地端的话,模型太大会占用较大的存储空间,并且运行时需要占用内存,很容影响到本机的性能。
总结对比一下:
远程服务
优点:
- 模型可随时更新
- 模型大小不限,不需要占用本机存储和内存
- 可进行高性能的GPU加速
缺点:
- 依赖于网络环境
- 代码安全问题
本地服务
优点
- 离线可用
- 无需上传代码
- 响应速度相对较快
缺点
- 需要占用本机存储和内存,容易产生性能问题
- 模型需自动/手动进行更新
- 基本没有GPU加速
使用体验对比
只有使用体验好才是真的好,下面我们就对比一下各自的功能以及强大之处吧。
Sophon
- 支持单词、整行的持续推荐,任何输入都可触发,甚至是中文也可以产生相应推荐
- 具备实时学习的能力,可根据上下文进行推测
- 模型轻量化
来体验一下吧。
TabNine
TabNine总共有是两个版本,
基础版
- 支持基于上下文的推荐
- 具备实时学习的能力
- 毫秒级别的推荐
深度学习版
- 支持智能推导
让我们一起欣赏下TabNine强大的推导能力吧。
aiXCoder
- 支持基于语法和上下文的推荐,
- 支持代码片段形式的整行推荐
- 具备模型学习的能力
下面是效果
以上就是三个插件的具体对比了,可以看出,支持基于语法、上下文的推荐已是最基础的能力,而谁能做到更加智能化,更能理解coder所思所想,则更受大家喜爱。
欢迎大家下载使用我们的 Sophon智能插件,享受更强大,更快捷的代码推荐。
我们致力于前端代码智能化,欢迎一起交流。