是时候展现真(mai)正(xia)的实(fu)力(bi)了!
写在前面
今天的推文,属于广告文
开篇图,即今天推文的主题(之一)。
看得懂的,自然明白;不明白我想表达的说法的,可以看下文。
用户群体“深恶痛绝”的软件
近来,常常会听到,TBtools的更新速度超过学习速度。我需要声明的是,这并不是我的问题,我只是觉得有更新就推上去,是否更新我无法强迫任何人,只是旧版本的问题,我不会给予任何支持;也不是用户的问题,因为并不是每个人都需要使用最新版或者使用最新的特性(即使最新的特性必然是我觉得最好的东西)。
如果一定要怪,就怪这无情的社会,让我们不可能做一模一样的课题和有一模一样的进度。
TBtools本身是我赶课题的生产工具。只要有需要,我随时就会修改或完善。更多时候,我会增加新的功能(之所以如此,我是希望以后我再需要这些功能的时候,我就直接开了TBtools就用,不需要再写脚本。当然最好是拖拖拖就搞定了)。
每个人有自己的课题,所以不可能有一个人跟我做的东西一模一样。大家都在往前走,你在进步,我也在进步(而TBtools的方向跟我的方向一样),所以无解。
频繁的更新不让人反感
而事实上,用户之所以说TBtools更新太快,并不是不喜欢新的特性。而是如果想要用新的特性,那么就必须更新软件。最快的方式是,下载TBtools.jar文件(目前已经庞大到有4Mb,我木有时间去清理一些废弃的类)。在有限的网速和流量下,确实痛苦;尤其是一天之内更新好几次。
所以,在中午赶一个课题的时候,我想起了一些朋友不断的提醒我的事情,要有自动更新机制。
很多人都说,用R语言做生物信息数据,几乎是无所不能。正如R包,可以说无所不包。然而,只有少数人是真的是在用R语言做生物信息,更多人是事实上的调包侠(无贬义)。调包侠,总是最机智的,因为目标明确,关注的只有生物学问题,而不是掌握这一门语言。换句话说,对于这一个大群体而言,事实上只是把R当成一个无所不包的软件包,而这个软件包,无时不刻地增加新的R语言包(极其优秀的如大湿兄的ggtree,而存在原则性问题的也有不少,详细见大湿兄的biobable公众号推文)。那么,R包用户并没有反感新的R包增加,也没反感R包的更新。
究其原因,就是一个install.packages(...)几乎是要包治百病。该安装的给你安装,该更新的给你更新。所以还担心什么?用R啊,除了不能帮你生孩子之外,还有什么不能的?
捡起一年前放下的
有些知识,可能需要经验的积累和时间的沉淀,才能有领悟。
静态语言要得到动态拓展,需要的是反射。这本身是一件看起来确实是相对复杂的事情。
我最讨厌的是什么,就是调用外部软件(除非确实没办法...比如BLAST,除了调用他,我还能怎么办?)
而我自己写的东西,不应该让TBtools从外部调用(主要是看起来也不优雅....)。
于是我从来没有忘记过很久以前的想法,亦即
曾经尝试了一段时间的插件式开发。TBtools一直是一个jar文件,这就相当于一个程序要在运行时删除自己,在某些系统(尤其是在windows下面,是一件比较困难的事情)。无法删除自己就无法自动更新(除了借助外部程序,这需要用户另外打开别的程序, 不优雅)。
而插件式开发理想情况下,用户只需要点击一个Button或者说一旦打开TBtools,就自动从指定的地址下载最新的插件并load in。那么用户可能对更新了的程序,毫无感知。
总之呢,我试了一下。发现似乎可行。
那就期待吧。