我应该在Ruby on Rails或Node.js(meteor)上创建我的下一个应用程序吗?

Geo*_*rge 4 ruby ruby-on-rails node.js meteor

我很矛盾.我以前没有在rails或node.js(meteor.js/express.js)上使用ruby,但主要使用php.我逐渐远离它,但不知道我是否应该专注于使用节点或红宝石.任何想法/意见,如果我开始使用哪种语言将是未来或更长时间,更容易有效地发展?如果我有点匆忙,我很抱歉,但我希望制作可以部署到移动设备的一般网络应用程序.我看到meteor.js内置了这个功能......但我显然愿意重新编译ruby on rails app以便在ios/android上工作.请不要批评我,我刚刚开始这两个!

谢谢!

Aks*_*hat 5

我会把它归结为你想要达到的目标.

如果你的优先权是SEO坚持RoR.流星仍然年轻,在SEO方面不可靠.有一个选项可以使用PhantomJS来渲染网页,但它不太可靠,因为PhantomJS会经常崩溃.另一种方法是服务器端渲染,尚未得到官方支持.

也就是说,如果您的目标是创建公司网络应用程序,或移动应用程序或任何其他真正的Meteor是肯定的方式.

您可以使用稍微好一点的UX来实现与RoR相同的应用程序,因为所有内容都基于一个页面.Npm包可用于Meteor以及atmospherejs存储库,它可以解决您可能寻求完成的大多数限制.

它还说它可以快速制作RoR上的应用程序.对Meteor来说也是如此,因为它更快(我用过两者).由于以下原因,开发经验也更加顺畅

  • 更改文件时,热代码会重新加载
  • 反应性数据源(不干涉ajax/get请求或套接字)
  • 同构代码 - 帮助您使用一个文件而不是ruby服务器文件和js客户端文件创建服务器和客户端数据模型.可以在客户端和服务器上共享同一文件
  • 同构的扩展:更容易处理客户端和服务器之间的数据,因为双方都是javascript.不来回串行化或反序列化数据.特别是日期非常有用(与其他数据类型一样)
  • 由于大气包装,易于用户登录系统.
  • 由于官方的cordova支持,可以轻松地将Meteor应用程序转换为适用于Android或iOS的移动应用程序.
  • 在开发阶段设置数据库没有问题,因为它与每个app的meteor开发环境一起运行
  • 由于免费的meteor deploy基础设施,可以更容易在协作环境中进行测试(可能会认为Heroku在这个问题上对RoR也是如此 - 但它确实需要使用SSH密钥进行一些设置,而流星之一甚至不需要您访问网站设置)
  • 适用于Windows,Linux和OS X.如果您有团队项目,则可以轻松共享代码.Meteor还会自动自动安装(不gem install)软件包及其依赖项(是的,没有像某些gem标题那样查找libiconv).大多数二进制文件都是在大气中预先构建的.
  • 由于使用光纤,Meteor在服务器端没有'回调 - 地狱'.因此,您可以拥有异步或同步代码.
  • 基于NodeJS构建,因此您可以从Meteor应用程序中的Stackoverflow等答案中使用NodeJS代码/社区支持.两全其美.

Ruby当然很好,干净,易于编写.但是流星也是如此.RoR有点成熟,因此更多的IDE支持自动完成.