Shiny和FastRWeb哪个好?

因为最近两个框架都用了用,实际运用比较了一下,有点心得。虽然网络上很多文章分别介绍了Shiny和FastRWeb,但还没有文章比较过二者,很多初学者可能也有这样的疑问,故简单叙述一二,不对的地方请海涵并请教。

相同点:二者都可以响应TCP/IP请求,给R安上Server的翅膀。

不同点:Shiny是RStudio公司开发的一个包包,定位于交互式呈现数据,更加动态,Shiny包内建了Shiny-server,所以在本机运行没有问题,如果你想发布shiny Rscript(也叫Shiny App)到个人网站的话,需要安装shiny-server。

免费的shiny-server不支持用户认证和ssl,意味着你只能用来部署个人小型项目,如果是商业性的项目,必须且不得不购买shiny-server pro了,因为商业项目必然涉及到用户注册和分组策略。

以下截图是shiny-server免费版(也叫Open Source版),RStudio Connect和Shinyapp.io(RStudio公司推出的云服务)的功能比较:
Shiny-server免费和商业版的比较

有很多SCI文章的数据库是用shiny展示的,实际效果不佳,反应缓慢,如果仅仅是展示数据或简单的R脚本,可以用FastRWeb。

FastRWeb也是一个框架,原理是调用R脚本生成图片后用base64回传,适合展示没有很强交互需求的图像,比较适合数据挖掘相关的图表。

当然,简单的交互通过传参也是可以实现的,但毕竟免费,缺少维护力量,颜值不如shiny那样高,如果要做到Shiny那样,那需要继续开发更多的控件,还有更灵活的交互和缓存机制,二次开发成本不小,对于有能力的开发团队还是建议直接把Shiny开源包拿过来二次开发比较划算。

有人肯定还会问,既然FastRWeb可以解释R脚本,那用FastRWeb解释shiny脚本行不行?

答案是不行。刚才说了,FastRWeb也是一个框架,shiny也是框架,两个框架封装的类和函数都是不一样,所以没法通用。

如果你是个人应用,需要交互性比较强,比较炫酷,比较fashion,用shiny吧。如果是展示一些来源于固定数据的图形(比如数据挖掘),不需要交互特性,可选FastRWeb,再说了,人家FastRWeb本来名字就叫Fast Interactive Web Framework for Data Mining Using R,侧重的就是用R数据挖掘。

但颜值即正义,Shiny比FastRWeb火太多了,一个证据是,FastRWeb最近两次的小更新居然间隔了5年:

2020/03/10 FastRWeb 1.1-3 released. Mostly bugfixes and support for Windows, with a few small new features.

2015/07/27 FastRWeb 1.1-1 released. Graphics use dataURI instead of temporary files, small bugfixes.

最后一句话,FastRWeb能做的,shiny都能做,但二者的高并发性能,还有待进一步比较。不管是FastRWeb还是shiny,处理静态html页面的能力都不如apache和nginx。如果你打算go bigger,且不打算每年花1万美元购买授权的话,还是趁早放弃shiny吧。

参考网址:
FastRWeb:http://www.rforge.net/FastRWeb/
Shiny-Server:https://rstudio.com/products/shiny/shiny-server/

发布了6 篇原创文章 · 获赞 0 · 访问量 601

猜你喜欢

转载自blog.csdn.net/weixin_42205230/article/details/104857894