今天来讲讲我最喜欢的一个网页框架——shiny。
大约在6年前,使用R语言有一定经验的我,接触了shiny——这个网页开发工具。然后义无反顾的走上了用R语言进行开发的道路:写网页, 写接口——这些原本应该是java(最起码也是python和js)干的活,我用R语言在玩,并且乐此不彼。
但是3年后,我毅然决然的放弃了R,放弃了shiny。现在偶尔也会用R语言代替excel做报表或者拉数据。但是已经没有当初的热情了。
shiny这个框架的确有很多优点:因为前后端不分离,所以开发速度快,经常是一个作品一天搞定;代码只需要会R语言就行了,不需要诸如html等其他知识;还有就是代码量少,往往一个复杂功能,几行代码就搞定了,适合R语言资深玩家。但是这些优点,同时也是缺点。
1.前后端不分离导致了代码管理上的混乱首先要继承或者管理你的脚本,需要精通R语言;其次拓展模块或者与其他系统兼容,需要改参数,改代码。而现在的很多网页开发,前后端分离的话,只要在后端或者前端加模块就行了,不需要重写。
2.代码不反扒R语言的代码会自动打包生成js。但是不会使用js的一些反扒技能:比如js混淆,懒加载之类的。这些R都没有。
3.令牌功能缺失这个功能我百度了很久,几乎没有R语言玩家使用这个。登录令牌是对于系统开发最底层最基础的需求。如果没有登录令牌,那你做的东西永远只能称作网页,而不能叫系统,不能叫网站。对于js而言,登录令牌(token)是最基础最简单的一个功能。然而对于R语言,几乎没有这样的例子,也没有人会用令牌。当然也有解决办法,就是使用收费版shiny(一年年费上万美金)。
所以由于以上的三个缺点,shiny难以推广给企业。当然还有一些其他的缺点(比如R语言不分布式,网页访问量太大会卡死)。所以这个框架以后也只会给人写着玩,商用基本上是死路一条。
大家还用过哪些好玩的R语言框架,可以评论区留言告诉我。