易飞滔Todd | 次生进化

红嘴玉技术选型

前几个月开发了一个算法集成软件,一定程度上是weka的C#复刻,界面技术使用了WPF。最近想做一个开源版本的,首先要给这个项目起一个名字,考虑到致敬weka,需要找一个鸟的名字,最后决定使用湖南省省鸟——红嘴玉,学名红嘴相思鸟。

于是调研了一下C#的跨平台GUI库,有GTK#,xwt,eto等,决定选用xwt,因为它在各个平台可以分开编译,有较个性化的界面,而且开发很活跃,而且接下来要讨论的chart库也有xwt版本。

chart库使用oxyplot,替代我之前使用的zedgraph,oxyplot有xwt版本的。

数学计算库使用math.net,它能适配mono,其实accord.net也可以,但是它太庞大了,而我想插件式的自己添加机器学习算法,accord.net完全开箱即用,反而灵活性不够。

基于这些选型,软件应该能在windows、mac、linux三大平台分别编译,不需要写平台特定的代码。

接下来的工作安排:

  1. 完成一个xwt版本的算法流程编辑demo;
  2. 移植旧版程序到新的技术选型上,算法可以先移植几种;
  3. 先开发全英文版本;
  4. 接下来的计划,先等移植完成再说吧。