创业项目该如何选择技术? 已翻译 100%

Wyatt 投递于 2013/09/12 16:11 (共 24 段, 翻译完成于 09-16)
阅读 10057
收藏 147
11
加载中

这些年,许多人问过我下面相同的问题:

我开始了一个新项目,你认为我该使用什么技术呢?

通常,这些人属于下面两类中的一类:

  • 已经做出决定的技术人员
  • 需要鼓励支持的非技术人员

在一天结束的时候,我怀疑这些人是否真正关心我的答案。或许他们只是想知道我们是否面对相同的问题或只是需要鼓励支持。

Garfielt
翻译于 2013/09/14 13:12
1

坦白的说,作为一名工程师,我信奉这个说法:伟大的想法可由几乎任何技术构建。它们都有自己的优点和缺点。无论你选择什么技术,你都要为它带来的风险买单。但真的,你项目的成功与否更多的取决于愿景、领导团队、执行和市场,而并非技术的选择。

现在,我是一个负责人,我每天做技术上的决断。当我选择了一个特定技术时,我要能够证明这个决定,向我自己、我的合合伙人/员工和潜在的投资者。我根据项目及公司愿景做技术选择。

Garfielt
翻译于 2013/09/14 13:22
1

项目要成功你必须有一个坚定的愿景。如果你能将你的愿景转化成一组衡量你每个决定的值,你的前进道路会更清晰,也更容易找到合适的加入你的人。

除了愿景,许多初创公司专注于文化。人们都说文化是由创始人、最初的几个员工及产品本身确立的,然而,技术抉择对公司文化有直接影响这个说法却没怎么被提到。

你的项目初创可能基于J2EE、Oracle、Perl、PHP、Rails、Node.js或.NET,随之而来你的团队工程师将有不同的期望,不同的价值观,和不同的关注点。这些技术没有本质上是坏的。伟大的事情都有各自不凡的所在。它们伴随而来的是一种文化。

Garfielt
翻译于 2013/09/14 13:36
1

几年前,我遇到一位负责人选择使用Node.js来搭建自己的应用。出于好奇,我问他为什么选择Node。他的回答很简单:基础的工程师对Node.js很兴奋,所以我可以更容易招募到愿意免费贡献的人,因为他们希望积累相关经验。

这个决定显式地定义了工程师文化和团队成员——那些能够在这个项目中工作或感兴趣这个项目上工作的人。

Garfielt
翻译于 2013/09/14 13:45
1

问一个不一样的问题

那么我们不应该问什么技术是我们需要使用的, 我们应该问我们自己:

这个技术符合我们公司的核心价值观吗?

这显然是个更为之困然的问题,因为你需要切切实实地了解你公司的核心价值观。这将是创建一个成功项目的关键。

你不能盲目地套用技术就像你不用套用别人的商业计划那样。这是公司身份的一部分,你的核心价值观,你的目标,你的团队,你的期望都是跟别人不一样的。

关于“这技术在某某公司用得适合啊”这样的论据是很少有效的。例如Facebook使用PHP,它“在Facebook公司用得很适合”,但是这意味着我们选都应该使用PHP吗?

dasunsy
翻译于 2013/09/15 10:51
1

技术文化联盟

要具体描述这些技术社区的特性是很困难的,但我会个你分享我在不同选择上的观点与看法。请自由在评论里分享自己的看法,也可以包括关于其他技术社区的。

古典学校: 

这里有些是“经典“的语言:他们已经被使用很长的一段时间,并且被证明他们的价值。他们的使用范围已经很广泛,但却引不起别人更大的激情。

注意:我在这没有提及Perl,因为我并不知道有哪个创业项目是以Perl作为核心技术来创建的(6?)。

dasunsy
翻译于 2013/09/15 11:20
1

PHP

理念:

  • 功能都实现出来,这非常重要
  • 就像互联网的基础一般
  • 只要有一个方法去实现它,那么就不会被破坏
  • 只要它运行起来并且速度很快,那么其他东西都是没有意义的
  • 不要太理论化了,我们的语言是非常通熟易懂的,任何人一眨眼的功夫就能上手了。你可以用Java做同样的事情看看!
  • 面向对象是种落后的想法

常见的使用例子: (在2013年中期)

  • 你的第一个web app
  • Wordpress/Drupal的扩展

个人观点:

PHP拥有它光荣的日子。它真的让web开发更加简单,容易上手. 但是, 大概因为大量新的程序员开始使用PHP并且它拥有个不是那么地坚持自己观点的社区,所以只有少数人能写出漂亮的PHP代码。

良好的拥有规范的代码例子是很难找到的,并且我甚至不敢肯定PHP拥有自身的规范。这导致了PHP社区以糟糕的代码质量,缺乏测试,安全问题如同梦魇和像在2000年代初期般的落后品味而著名。

拥有良好规范约定,开发流程和指南的强大的PHP团队,是可以完成伟大的事情的,但这样团队很稀少。

dasunsy
翻译于 2013/09/15 12:12
1

Java

理念:

  • 可移植性
  • 像C/C++般的能力和表现,但却能够自动管理内存
  • 更多地关注面向对象
  • IDE是必须有得
  • 我们要消耗所有的内存,因为它们是一文不值的
  • 线程处理是个好方法!
  • 不要提起Java applets
  • 看看我可爱的JVM!
  • 开源(但拥有者为Oracle)
  • 缓慢但更为安全的开发流程

个人观点:

Java是非常有趣的。在几年前很多开发者已经厌倦了Java,他们找到了其他新大陆。他们开始转向一些脚本语言,像PHP,Pyhton,Ruby或者一些更加难懂小众的语言像Erlang。

尽管如此,Google通过Android展示了Java并不像我们脑海里的那么糟糕(只要你并不是使用J2EE或者Swing)。现在有一种”赶时髦“的趋势视乎暗示着Java再次变得酷起来了。这些大多建立在两件事情上:

  • JVM
  • 让人难以置信高质量的代码库
dasunsy
翻译于 2013/09/15 12:30
1

即便如此,对于我们来说,花一整天来编写Java程序看起来并不是一件吸引人的事。如果你打算依靠Java的堆栈,那么有一系列的其他JVM语言供你选择,他们成熟而且兼容Java扩展的库(例如:Scala, Groovy, JRuby, Clojure),你总是可以混搭使用它们。

自从大量毕业生学习Java后,聘请Java程序员并非一件难事,但是要找那些前期创业公司,高水准的工程师并且对写Java程序感兴趣是一件极具挑战性的事情。

另外注意:如果你的目标是Android,那么不用想得太复杂,即使你认为其他JVM语言更好,你也要坚持使用官方的堆栈。

我们仍然有许多的原因在你的创业项目里使用Java技术,但你可能会想同时使用一些的”更快,更灵活“的解决方案(Ruby, Python, Node…)。对于公司跟工程师来说,一个多语言环境带来了大量的价值,这就是为什么Java社区看起来节奏很慢,但却肯定是活跃的。

Java绝大部分是吸引了那些受到了传统的训练的工程师,他们向往舒适,有重复性,总所周知的编程模式。他们习惯关于使用这种语言,这种工具,这种自然的节奏。或许他们并不是最具有求知欲的开发者,但是他们却是很可靠的(当然,你要挑选了正确的人)。

dasunsy
翻译于 2013/09/15 20:17
1

C#/.NET

理念:

  • 是更加好的Java
  • 最初是为了桌面与嵌入式软件设计的
  • 我们比开发Java的小伙伴们拥有更好的IDE
  • 虽然是企业级般的重量了,但是我们提供了大部分Rails很酷的特性
  • 我们有矛盾的开源版本
  • 缓慢但更为安全的开发流程

个人观点:

当我回顾C#在发布C#5的时候,我不得不惊叹,我真的对该语言新的特性留下了深刻的印象。单从纯粹的语言设计角度来看,C#是有一丁点的领先于Java。在Visual Studio里写Javascript时的欣悦感让我感到很惊喜(自从我用VS主要为了C++后,我真的再也没有期待过什么了)。

dasunsy
翻译于 2013/09/15 20:35
1
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
加载中

评论(50)

Newthing
Newthing
nice...
易木夕林
表示很不理解,楼主表示是以上的语言你都用过啊。Javaer,phper,C#er 飘过
黎开宇
黎开宇

引用来自“JavaGG”的评论

一句话,,自己会什么,选 什么

正解,不会的话,没得选
黑狗
黑狗

引用来自“YeaWind”的评论

引用来自“阳光灿烂的日子”的评论

最后提到go 是一篇软文

什么是软文,很软的文章吗?

看了这篇文章你就软了 这叫软文
trueBreak
trueBreak
自己会什么选什么,没必要为了一个项目去耗更多的时间学习其他语言,尤其是资料、人员都少的语言,你会哭的...
开源中国匿名会员
开源中国匿名会员

引用来自“台俊峰”的评论

我非常赞同面向对象是一种落后的想法,很多java的项目都是因为太刻意的去面对对象而变的复杂,难以修改和维护。

落后的人不管用什么都落后。
我见过C写得很OO很简明的,我也见过C#写得很糟践智商的。
不是方法,是用这种方法的人。
peak-tai
peak-tai
我非常赞同面向对象是一种落后的想法,很多java的项目都是因为太刻意的去面对对象而变的复杂,难以修改和维护。
w
wismgal
不管做什么,做好最重要,难度借鉴他的经验了!!!
开发的难度。 that‘s good!
轮胎修补
轮胎修补

引用来自“开源中国匿名会员”的评论

引用来自“院子”的评论

引用来自“开源中国匿名会员”的评论

*我们是企业级级般的中了,但是我们提供了大部分Rails很酷的特性
*我们有矛盾的开源版本

我还是看不懂是啥意思啊。

mono版本

我知道》net有mono。但是我看不明白什么叫做

级般的中了
以及
有矛盾的开源版本

这是机翻的文章?

这个mono主要不确定性太多了。不过最近好多开源程序都有有了mono版本,是不是稳定了。
crossmix
crossmix
开发项目,我们选择什么样的技术
返回顶部
顶部