当前位置:  开发笔记 > 编程语言 > 正文

我应该使用哪种语言?

如何解决《我应该使用哪种语言?》经验,为你挑选了5个好方法。

我即将为刚刚加入的技术创业公司制作原型,我正在尝试决定使用哪种语言.它将是一个简单的Web工具,后台有一个MySQL数据库,其间还有一些AI内容.我过去曾经使用过Ruby和PHP一个合理的数量,但是想知道我是否会更好地使用Python甚至是Perl.我的主要编程经验是使用C/C++/Java,但我觉得我想要的东西会让我的生活尽可能简单,因为我只是在开发原型.

我猜我正在寻找的是:

发展速度

现有的AI库(例如SVM,神经网络,贝叶斯分类器)

易于与Web界面交互

有没有人对此有任何想法?



1> Cervo..:

原型与否,如果您正在处理大量数字,至少对于AI部分,您可能需要Java或C/C++的速度.我真的不知道你在做什么,但很多AI的东西都是计算密集型的.您可能会发现Python VS C的差异从10分钟到近2个小时或更长时间(或从一天到一个月).

可能你最好的选择是混合方法.Java/C++或AI的东西(我只说Java,因为它有大量的库,我甚至有一本关于数据挖掘的书,它讨论了Java中的几个免费提供并执行某些技术的库).而Python/Ruby/Perl则用于其他一切(如Web部件).

我对推荐PHP犹豫不决,因为你永远不知道你在做什么.PHP似乎真正在网络上和网络相关的东西上闪耀,但是一旦你需要非web使用它似乎比任何东西都更麻烦(虽然我已经看到PHP的引用像Perl/Python /等一样正常使用一些人的脚本语言).

Python/Ruby/Perl之间的选择几乎是品味的问题.除了Perl有CPAN,它超越了Python和Ruby现在所拥有的任何东西.由于您处于启动状态,因此您可以在CPAN上选择的各种模块可以为您提供更快完成工作的价值.我个人喜欢Perl上的Python(我发现Perl的对象系统在构建你自己的对象时很丑陋,有时我需要花一点时间来弄清楚我几个月前编写的代码是如何工作的).但我不能否认CPAN的价值.

简而言之,您可能需要一些性能语言来处理某些AI内容以及为其他所有内容开发脚本语言的简便性和速度,因为启动是为了尽快完成产品并击败竞争对手市场.我很乐意推荐Python,但根据我对初创企业的了解,您需要在决策过程中评估CPAN.只需将一堆模块拼凑在一起就可以快速完成所需的操作,这在启动时非常有价值.

我还应该补充一点,Perl和Python(我不确定Ruby,但我认为)可以很容易地调用C代码.因此,您可以通过创建一组语言绑定来使用C或C++库.你也可以尝试用Perl/Python/Ruby编写整个东西,如果用C或C++重写那个部分并用脚本语言调用它那么太慢了.对于整个启动而言,重写这样的事情在完成任务方面可能非常昂贵.此外,由于您最熟悉C或C++或Java,因此从一开始就可能值得去那里.



2> Dave Rolsky..:

Ruby,Python和Perl三者都适用于快速开发,原型和Web应用程序.我猜你的问题是这个项目最重要的部分是人工智能.Perl在CPAN上确实有很多与AI相关的库.查看AI名称空间以获取样本.其他名称空间中也有模块,因此请务必搜索"贝叶斯"或"SVM"等特定内容.

我对Python或Ruby的AI库选项知之甚少.我的建议是花一两天的时间对Perl,Python和Ruby中的每个库进行一些认真的研究.既然你之前已经使用过Ruby,那么如果它拥有你需要的库,那就很简单了,Ruby肯定是web友好的.

就网络方面而言,对于Python,我听说过很多关于Django的好东西.对于Perl,我建议看一下Catalyst.

你会注意到我忽略了PHP.这是我尽可能多做的事情;)



3> brian d foy..:

你选择一种语言是因为它是适合这项工作的工具,但你还没有告诉我们这份工作是什么.我们不知道您需要哪种类型的库,业内其他人员用于同一工作,等等.大多数人似乎都在推荐一些完全不了解你真正需要做的事情,这意味着他们真的不知道如何帮助你.

正如你已经指出的那样:

如果你是唯一一个用X语言完成任务的人,那么你将很难获得其他任何人的帮助.找出其他人已经习惯做类似任务的内容.

如果您的任务的所有好库都使用另一种语言,那么您将不得不重新发明许多轮子.而不是你的问题,询问哪些图书馆完成你的任务的重要部分,然后研究这些."AI"是一个太大的话题,无法推荐任何东西.

如果工作中没有人知道你想要使用的语言,即使它是一种快速的原型语言,你也必须学习语言,因此会失去速度.学习一门语言不仅仅是了解它的语法; 它知道它的成语,库,文档等等.工作中的人已经知道了什么?他们会忍受什么?

您真的想让您的生活更轻松,还是让您的客户更轻松?这些事情有时是不一致的,所以你应该考虑一下你是否真正提供了客户所需的价值.原型似乎经常变成生产代码,所以一旦你开始,你经常坚持它.



4> Peter Bailey..:

我唯一可以评论的是:PHP基本上是用于网络的DSL,而其他三种(Perl,Ruby,Python)是更通用的语言,没有特定的域,尽管所有这些都是具有网络能力的.

就你的第二个要点而言,我认为PHP可能是你列表中最糟糕的选择.



5> Aaron Palmer..:

AI?绝对是LISP

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有