前一段时间, 我写了一篇短文, 大概就是说nim语言的jester 网站开发框架像坨屎, 原因我也写了一点. 最近我自己想用nim语言写个像django那样的框架, 有了一些想法和思考, 这里记录一下.
1. nim语言的web框架, 目前就是jester, 号称是最好的, 说是仿照ruby on rails的. 但是nim本身就不是很好用, jester 更是不怎么受我喜欢, 用过python的django之后, 或者flask, 或者tornado, 都觉得nim语言的jester真的不够优雅和简洁.
2. 想法:
1. 能不能实现异步响应?
2. 能不能很好的调用数据库, 或者说有没有一个ORM(定义几个model, 映射到数据库)
3. 有没有一个template框架, 类似django, 或者jinja2的?
4. 内存占用的问题.
想法1. 异步的问题.
nim应该可以实现异步, 不过我编程的时候, 最开始的想法就是先实现一个同步的web框架, 这个我水平不够, 以后再说.
想法2. ORM的问题
实际上不用ORM, 也可以使用sql语言来访问数据库, 可能还会更快. 或许是python那边有一切皆对象, 有大量的面向对象的代码, 而且面向对象很符合人类解决问题的思路, 所以, 有时候从python转过来, 就想有个ORM可以用. 可能nim语言的原生开发者, 就是喜欢sql语句加nim代码吧. 我在网上找到了一个orm, 很简单, 技巧用的很多, macros我研究了几个月, 有几个还没搞懂, 可能至上有限, 或者macros实在是太难搞了.
nim的难点就是, 你只要想开发一个功能稍强的软件, 你就会深入研究macros, templates, AST改写等等已经接近底层的代码技术了, 你想开发一个功能复杂点的软件, 或者你想法太深, 你就必须先做一个nim语言资深专家, 或者你要懂编译原理, 并开始自己写一个编译器.
orm问题, 不是那么容易解决, nim语言最近一直在更新升级, orm代码换个nim版本就不能用了.</