当您早期采用编程语言或技术时,您考虑的标准或事项是什么?
我听过的两个最常见的解释是:
那你的是什么?
答案 0 :(得分:3)
我在各个公司的职业生涯中多次做出这种改变,从C到Java再到Ruby,再到Haskell,我的大部分软件开发。
在所有情况下,我一直在寻找更具表现力和更好的抽象。这总是由业务需求驱动:如何更便宜地开发更好的软件?对我来说,这个问题的挑战是“有趣”,所以很有趣,而且很自然地随之而来。然而,为经理人证明商业价值是很困难的;他们通常没有技术技能来理解为什么一种编程语言比另一种编程语言更好,并且担心转向他们理解的技术甚至比现在的技术更低。 (我通过接管经理的工作解决了这个问题:我创办了一家公司。)
很难说出一种新语言究竟要找什么。你显然没有详细掌握这门语言,或者你已经在使用它或者知道你为什么不这样做。丰富的经验将带来一种本能,使某些语言比其他语言“闻起来”更好,但是 - 这可能使说服其他人查看新语言变得特别困难 - 你不会确切知道哪些功能给你带来了很大的好处。一个例子是模式匹配:它是一种在相对较少的语言中找到的功能,虽然我知道它,但我不知道何时开始使用Haskell,这将是提高生产力的关键因素。
虽然建议是消极的(“避免这种”)建议而不是积极的(“做这个”)建议,但一个相当简单的规则是避免花费大量时间在与您已经熟悉的语言非常相似的语言上。如果你已经了解Ruby,那么学习Python不太可能教你很多新东西; C#和Java将是另一个例子。 (虽然C#开始获得Java没有的一些有趣功能。)
观察学术界用语言做什么可能会有所帮助。如果它是学术研究的一个肥沃的研究领域,那里几乎肯定会有一些有趣的东西,而如果不是,那么很可能没有什么有趣的东西需要学习。
答案 1 :(得分:1)
我的标准很简单:
答案 2 :(得分:1)
我希望它能够轻松地做一些我习惯使用的工具很难做到的事情。因此,我转而使用Python,然后是Ruby,因为我可以逐步构建程序,轻松添加函数,更简洁地表达程序(特别是使用Ruby,我可以传递块/ Proc并具有干净的闭包,以及能力定义利用块和产量的漂亮DSL。)
我接受了Erlang,因为它很好地表达了基于Actor的并发性;这使得网络程序更容易。
我接受了Haskell,因为它适合我想要试验的一些正式的方法工具。
答案 3 :(得分:1)
答案 4 :(得分:1)
如果这是为了我个人的乐趣,我需要很少的借口,因为我喜欢学习新事物,最好的学习方法就是做。如果它是针对雇主,客户或客户,那么标准要高得多 - 我必须确信“新东西”,即使在考虑了加速效应和出血后的成本之后优势,可以更好地为客户(或客户或雇主)提供价值。这是一个专业态度的问题:我的工作是为客户提供最高价值 - 这样做很有趣,辅助和辅助。因此,在实践中,我在专业环境中引入的“新”技术(包括语言)通常是我以前在自己的业余时间里变得舒适和自信的。
答案 5 :(得分:1)
有人曾经说了些什么:
“如果学习编程语言并没有改变你对编程的看法,就不值得学习。”
这是判断学习新语言(或其他技术)的价值的一个指标(在众多中)。使用此功能,可能会建议学习以下语言:
wisdom bestowed forth learned implies
。...但这并不能解释为什么我学习python或shell脚本。我认为你应该用一粒盐和一堆实用主义来接受启蒙:)
答案 6 :(得分:0)
答案 7 :(得分:0)
语言应该是:
答案 8 :(得分:0)
语言应具备的标准:
1.新想法 - 如果语言只是另一种Scheme变体,如果你知道一种,我觉得不需要学习这种新的。如果我想我会学到新东西,我会学习它
2.与另一种语言相似,但更好。例如,虽然Java和C ++有许多相同的想法,但Java的自动垃圾收集使它在许多情况下成为更好的选择。
答案 9 :(得分:0)
答案 10 :(得分:0)
这取决于我为什么学习新语言。如果我正在学习它的乐趣,那么它必须符合这些标准:
如果我正在学习它的工作,标准是不同的: