我应该使用哪种语言?

我即将生产出样机,我刚刚参加了一个技术启动时,我试图来决定使用哪种语言。 这将是一个简单的网络工具,在后台MySQL数据库和人工智能的一些东西在的事情。 我用Ruby和PHP的合理数量的过去,但不知道我是否可能会更好与Python甚至Perl去。 我的主要编程经验是用C / C ++ / Java的,但我觉得我想要去的东西,这将使我的生​​活变得尽可能容易,因为我只是开发一个原型。

我想我要找的是:

  • 发展速度
  • 现有的AI库(例如支持向量机,神经网络,贝叶斯分类器)
  • 缓和与一个Web界面进行交互

任何人对此有什么想法?

--------------解决方案-------------

原型与否,如果你正在捣鼓巨额数字,您可能需要为AI部分的Java或C / C ++,至少速度。 我真的不知道到底你在做什么,但很多AI的东西是计算密集型的。 你可能会发现的Python对C使从10分钟的差几乎为2小时以上(或从一个天到一个月)。

可能是你最好的选择是一种混合的方法。 的Java / C ++或东西的AI(我只能说Java的,因为它有一吨的库中,我甚至有一本书上的数据挖掘,其中讨论了几个库在Java中,可免费获得,并执行一些技巧)。 和Python / Ruby的/ Perl的其他一切(如Web部件)。

我很犹豫推荐PHP,因为你永远不知道你会做的事情。 PHP似乎真的照在网络和网络有关的东西,但一旦你需要非网络使用它似乎比什么更麻烦(虽然我已经看到了参考PHP使用像一个Perl / Python的/等。作为一个正常的被一些人脚本语言)。

的Python / Ruby的/ Perl的之间的选择是味道差不多的问题。 除Perl有CPAN这是超出了Python和Ruby现在所拥有的。 既然你是在启动时,多种选择的CPAN模块,你可以只拼凑可以把事情做得越早提供价值给您。 我个人喜欢的Python对Perl(我发现Perl的对象系统构建自己的对象时是丑,有时需要我一点要弄清楚我如何代码前写了几个月的工作)。 但我不能否认CPAN的价值。

因此,在短期,你可能需要一些AI的东西,一个脚本语言开发的易用性和速度的一切性能的语言,因为启动时的所有关于把产品尽快完成,并击败你的竞争对手市场。 我很想推荐Python的,但基于我所知道的初创公司,你需要评估CPAN您的决策过程。 只要能拍一组模块组合在一起是你想要快速什么可以在启动了庞大的价值。

我还要补充一点,Perl和Python(我不知道关于Ruby,但我认为要)可以调用C代码相当容易。 所以,你可以通过创建一组绑定到语言的使用C或C ++库。 您也可以尝试写了整个事情在Perl / Python的/ Ruby的,如果实在是太慢了重写的部分用C或C ++和脚本语言调用它。 随着整个启动这样的事重写可以在得到的东西做的方面是非常昂贵的。 此外,由于你是最舒服C或C ++或Java它可能是值得只是去那里从一开始。

所有这三个红宝石,Python和Perl的是良好的快速发展,原型和Web应用程序。 我从你的问题,这个项目的最实质性的部分是AI一块猜测。 Perl中确实有相当多的关于CPAN AI相关的库。 退房AI命名空间采样。 还有模块其它名称空间,以便确保搜索像“贝叶斯”或“SVM”具体的事情。

我不知道很多有关Python或Ruby艾库选项。 我的建议是采取一两天,做对库每个Perl中,Python和Ruby的一些认真的研究。 既然你已经使用过的Ruby,如果有你需要的库,这是一个没有脑子,和Ruby肯定是网络友好。

至于网侧变,对于Python,我听说过很多好东西Django的。 对于Perl中,我建议考虑看看的催化剂。

你会注意到我忽略了PHP。 这件事情我尝试做尽可能多的;)

您可以选择一种语言,因为它是正确的工具的工作,但你还没有告诉我们的工作是什么呢。 我们不知道什么样的库你需要什么,其他人同样的工作在行业的使用,等等。 大多数人似乎被推荐的东西与你真正需要做的,这意味着他们真的不知道怎么帮你完全不知道。

正如你已经指出:

  • 如果你是唯一的人在做语言X你的任务,你将有一个艰难的时间从别人得到帮助。 找出其他人已经用来做类似的任务。
  • 如果所有的任务好的库是用另一种语言,你将不得不重新塑造了很多轮。 而不是你的问题,请教一下该库做你的工作的重要组成部分,然后研究这些。 “大赦国际”是太大了一个话题来推荐什么。
  • 如果没有人在工作中知道你想用的,即使它是一个快速原型语言的语言,你将失去的快速性,因为他们有学习语言。 学习一门语言更比知道它的语法; 它知道它的成语,库,文档,以及更多。 是什么人在工作中已经知道了? 他们会容忍?
  • 你真的想使您的生活更轻松,或使其更容易为你的客户? 这些东西有时不一致,所以你应该考虑,如果你真的交付价值客户的需求。 原型似乎经常变成产品代码,所以一旦你开始,你往往坚持了下来。

我唯一​​能真正评论是这样的:PHP是bascially一个DSL的网络,而其他三个(Perl中,红宝石,Python)的更通用的语言有没有具体的领域,但都是绝对的网络能力。

在你的第二个项目符号的角度来讲,我认为PHP的将可能是最坏的选择你的列表中。

AI? 绝对LISP

我认为Java将会使您的生活简单。

  • 发展速度 - 你说你已经熟悉它。
  • 现有的AI库 - 退房JOONE
  • 缓和与网络界面交互 - 的Servlet,JSP,太多的Web框架列出。

Java也使用JDBC MySQL的轻松集成。

我同意这个建议Java的,尤其是当你需要它的速度在AI代码中的其他的答案,并为可用的库等。

爪哇(小服务程序)和JSP的结合可能会很好地工作。

然而,对于写这个答案的原因是最强烈建议:

和你一起去了解。

新的语言或那些你“之类的”知识是伟大的有趣的东西,甚至对于一些开发项目和原型。 但是,如果你需要的东西,将在长期内为你工作,使用你已经知道了任务的最佳语言。 在这种情况下,我认为(从您的帖子),这将是Java语言。

此外 - 这是一个原型,但我几乎可以保证,如果它的工作原理,它将成为实际应用的默认启动。 我真怀疑你将有充裕的时间重写了另一种语言的应用程序,如此反复 - 使用的是什么,你现在知道会当他们“时间紧迫”你,你必须提供更高回报。

干杯,

-R

我认为,Perl的将是一段路要走。 退房麋为Perl OOP,并作为您要搜索的其他库,我敢肯定,你会发现其中的一些CPAN(可能像贝叶斯模块)

如果你习惯了UNIX堆栈/环境,我会去为Python - 好和容易。

编辑:您可以实现用C或C ++的数字运算部分,使之在你的Python代码中使用的模块。 这样一来,你会得到快速的数字运算代码,并易于程序胶水。

Lisp中已经提到,但我认为计划(尤其是PLT-方案)是在某些方面也是很好的选择像Ruby / Python的/的Perl / PHP。 它并没有那么多好的库,其中的一些,这是一个负的,但大多数方案具有出色的FFI(外部函数接口),这使得它琐碎整合外部(C代码)库。 方案的另一个优势是它的性能配置; 你经常可以得到接近C-码型性能的数字运算的东西。

你可能想看看玻璃:Smalltalk中,海滨和宝石对象数据库。 更好的网络比红宝石,没有ORM,而最好的建模语言。

我想第二个采取看看Grails的。 这肯定是容易成立,并得到一个小时内的工作,你仍然对Java的威力之下。

我也同意那些谁说,要确保你所想的道路。 我一直受益人方式的谁没有太多的时间。

如果是我,我会写了整个事情的蟒蛇,那配置文件,并写入瓶颈耐热玻璃。 当你开发复杂的AI型algoritms,这是(1)用在高级语言来开发,因此您可以快速地尝试许多不同的方法和(2)有助于在一个高层次的语言参考实现测试C / C ++实现打击。 我使用Python /耐热玻璃这样所有的时间和它很适合我。

如果你正在掀起一个快速和肮脏的原型,那么它可能在你的兴趣坚持的东西你已经知道,特别是如果原型是炫耀一些其他的一件花哨的功能; 性能的许多不会在这里一个巨大的关注。

尝试使用Python的mod_python的。 作为一种语言,它有很多伟大的机器学习和自然语言处理模块,它真的很容易阅读,学习和使用。

由于它不是一个简单的CRUD应用程序,Java的可能是一个不错的选择。 看看Grails的(http://grails.org/)它提供了很多的脚手架和代码生成,像轨道的框架做的,但提供与任何其他的Java库或框架在那里的无缝集成。

PHP甚至SSI将是我的选择。在这种情况下原型。 我的理由是:我不担心模板系统,因为它们都是模板系统。 无感浪费时间决定模板系统为一个单纯的原型。 SSI尤其是一个引人注目的选择,你仍然有您所选择的语言的CGI处理,并作为返回非原子数据,可以使用Javascript发出JSON,然后让UI遍历返回的数据结构。

东西为你管理内存。 他们声称这是技术的变化,让生产效率最大提升。 我觉得磅磅C#是非常难打。

关于Python的:

如果您需要计算密集型的东西表现,看数字的Python http://numpy.scipy.org/和耐热http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/。 数字Python是一个Python的扩展,提供了很多老派的数字设备一样快的C代码 - 矢量数学(为安工作的必备工具)等耐热玻璃是一种工具,基本上可以让你下来编译Python代码到本机的可执行文件。

随着耐热你需要小心使用反射,因为它不能完全编译使用某些反射构造(尤其是当地人()和全局())的代码。 我提到这一点限制,不仅是因为这两个AI和探索性的编码(由你的“原型”此话暗示)往往需要更多的反射比其他类型的应用领域做的优势。

如果你是一个Mac用户看一看的WebObjects做所有的框架的东西,你可以专注于Java编写的有意义的神经代码。

分类:人工智能 时间:2015-03-16 人气:9
本文关键词: 人工智能,原型
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.249 (s). 10 q(s)