“语言文化史”在平台中扮演什么样的角色?


15

我最近偶然发现了这个几年前的文章。它认为,围绕VB和C#的文化存在显着差异,而不是语言的实际差异,导致C#编码人员通常比VB编码人员更有才华。显然,这引起了很多火焰大战,而C#ers或VBers是哑巴的问题将永远无法回答。话虽如此,作者声称围绕特定平台的文化对团队的质量仍然有帮助。例如,即使目前Java开发应用程序的效率更高,但Google Go开发人员团队的平均水平似乎比Java开发人员团队更高,因为要学习Go,开发人员可能已经成为一个超级早期的采用者和一个前沿的黑客天才。简而言之,围绕一个平台或另一个平台的文化如何影响该平台上普通开发人员的质量(如果有的话)?


是C#和VB.NET的一天吗?

@ DeveloperArt-这不是我的意图。实际上,我的问题很有趣,因为这篇文章在今天看来已经过时了,但是这个概念可能是可理解的。该文章使C#开发人员似乎都是天才。我是一个人,所以我第一手知道,当情绪高涨时,我们所有人都会变得草率。
Morgan Herlocker 2011年

1
@Developer Art:我昨天才读过这篇文章,我敢肯定,这是我在此处的答案中张贴的链接。也许这就是Plum教授也是如何做到的-一个C#与VB.NET问题导致另一个问题。:-)
Carson63000

Answers:


8

有趣的问题。我个人的观点是,这个问题被问得太多了,实际上一点也没有。

脚本小子(以及雇用它们的公司)让选择的语言在“程序员”梯队中决定了他们的地位。优秀的工程师不会关心选择的语言,而是专注于以最优化的方式解决给定的问题(显然,最优是一般性的陈述,可以应用于许多不同的因素)。无论是C#,VB,C ++,Python还是手写汇编,都没有关系,因为使用该技术解决问题有明显的好处。

简而言之,我认为,定期解决一个问题的复杂性,而不是解决问题所用的语言,具有更大的价值。

在这个问题上我只花了两分钱:)


2
+1:此外,以某种方式超越公司界限的VB文化的想法是荒谬的。这种文化将如何保存自己?在工作以外的VB程序员之间进行秘密会议?VB程序员的“联盟”或“行会”强制执行这种“文化”?我花了30年的时间在100多家IT商店中反弹,我可以说我所见过的唯一文化纯粹是本地化的。语言选择不会产生问题中提到的这种“其他”文化。
S.Lott

1
有趣。如果您+1了,想知道谁拒绝投票,以及为什么:P
Demian Brecht

1
@ S.Lott:那我就纠正了(得爱假设的副产品;)。很多时候,我在诸如此类的主题上都收到过否决票而实际上没有得到任何反馈,这有时可能是有价值的,并为我提供了我以前遗忘的信息:)
Demian Brecht

1
@prof:自动化是否真的会使自己劣等,还是您会认为优越是因为他们了解可以采取哪些捷径来实现相同的输出,但效率更高?:)当然,这过于笼统,几乎不可能准确回答。我对围棋编码人员更加热情充满了怀疑。您仍然可以找到对Fortran充满热情的人。但是,这会让我相信Go程序员对技术和实践更加热情,这是一件好事,恕我直言:)
Demian Brecht

1
@Prof Plum:“平台/语言选择与开发人员的平均素质无关”。正确。怎么会这样呢?最重要的是,组织的文化至关重要。Google Go编码人员–本身–就是人。该组织限制人们使用VB或鼓励他们使用Go。人都是人。
S.Lott,

4

这些语言中的每一种开发的代码质量都是基于这些基本原理,而不是单个开发人员

每种语言的确具有其周围的文化,因为每种语言都是出于某种原因而开发的,因此有人具有议程和基本哲学,即为什么他们的语言在某些方面要比当时的语言更好。

像宗教一样,程序设计语言倾向于吸引那些已经对语言创建者的核心原理和哲学具有相同倾向的人。

解决方案质量感知示例

在一个Microsoft阵营中,您可以:

C#的哲学是,它更纯粹地面向对象,促进了更多现代习语,并且需要更多的知识来正确地执行它,因此应提供更高质量的解决方案。这就是通过VB吸引人们的原因。

在另一个Microsoft阵营中:

VB的哲学是,我可以快速且几乎不需知识或任何努力就能构建某种东西,使某人单击一个按钮并做出有用和具有商业价值的事情,它的作用并不那么重要。这就是通过C#吸引人们的原因。

以下是有关语言及其哲学的一些话语和脸颊:

Perl人们倾向于关心Python人们关心的恰恰相反的事情。

Java人关心赚钱。

JVM语言(Groovy,Scala)关心JMV,而不关心Java语言。

所有Microsoft特定语言(VB,C#,F#,托管C ++)都倾向于在Windows上赚钱。

Erlang人关心其他人不需要关心的东西,也不欣赏他们不知道的东西。

口齿不清的人不在乎别人认为他们在乎什么。

这些群体关心的是语言,语言的发展和社区。

哲学随着经验和需求而变化

我采用了ASM和BASIC,因为在1983年,您已经拥有了全部。我想写游戏和演示,那是做这些的工具。主要是用于演示的ASM。

我采用C语言,然后采用C ++语言,当时这是编写3D渲染之类的东西以及几乎所有其他对时间和空间至关重要的东西的唯一方法。不是ASM,所以我才学到的。

我采用VB来赚钱,这是我在Amiga上最熟悉的Scala,Director和CanDo开发环境。我同意快速发展的理念

我很早就采用Java来赚钱。我使用VB赚钱直到1999年,当Java 1.2变得稳定和成熟并且网络完全投入使用时,我就把它抛在了后面。当人们真正开始认真对待Java时,我有4年的Java经验。我同意一次编写,可以在任何地方运行,因为我的代码运行的位置越多,出售它就越容易。哲学。

我在2005年晚些时候采用了Python,因为它带来了Java所没有的痒。我需要快速编写代码以使用一些仅在C中可用的库,而且我需要进行快速的 Web服务原型设计,Python在Java中执行相同操作的速度更快,代码更少。Java留存了一些东西,Python留了下来,许多东西从未投入生产。我同意它所包含的电池,单个成语哲学以及其他哲学。

当我需要在C ++和Java程序中添加轻量级脚本引擎时,我采用了Lua。这是在Java中支持JSR233之前的方式。我同意嵌入易于使用的全功能脚本语言应该是简单的Lua哲学。

我在2006年采用Erlang时,当时我开始需要大规模的可伸缩性和针对高度并行问题的相对轻松的多核执行,并且需要跨平台执行。**我同意其无共享状态,消息传递,不变的状态哲学。* 8

当我开始需要构建OSX和iOS应用程序时,我采用了Objective-C。我同意在C语言中添加对象定向的权利,以使其成为更好的哲学。也为了赚钱。

我于2009年正式采用JavaScript,因为我同意CouchDB的哲学,并且使用JavaScript。当我不得不处理DOM时,仍然不喜欢JavaScript。

我仍然没有正式采用Lisp,但是我最终还是要!我同意它的观点。不懂Lisp的人被谴责重新发明它的哲学。


0

确实是一个有趣的问题。它是您在潜意识水平上理解答案但努力将其写成文字的人之一。

最好将其视为因果循环。

这种文化负责吸引被平台吸引的开发人员的“种族”组成。这种组合反过来定义了“普通”程序员的素质。现在使用平台的开发人员的素质会影响其外部的文化或感知,从而影响开发人员进入或离开平台。结果,“质量”的值改变。

我一直在尝试提出特定的规则,但是我发现很难一概而论。我们需要分别调查每个平台。我所做的一些观察:

  • 开发,扩展,改进特定平台的速度与开发人员的素质直接相关。新的闪亮功能和工具的不断涌入吸引了热情的开发人员(平均而言,他们更有能力进行高质量的工作),并排斥那些因不断学习而烦恼的保守思想。

  • 平台提供的限制越少,甚至以冒脚的风险就越高,同样吸引了热情的实验头脑

  • 为了使用该平台,人们需要理解和掌握的事物更加复杂,这吸引了有决心的人,并吓跑了懒惰的开发人员


这种文化如何超越公司界限?
S.Lott

1
@Lott Technology几乎总是超越文化界限。不同的OS用户之间存在巨大的文化鸿沟。我知道许多图形设计师和音频工程师会认为,去一家使用Mac以外的公司的公司是很划算的。Mac特别是围绕这两个群体培育了一种完全切实的文化。编程语言是与Photoshop和GIMP一样的工具,因此不必惊讶于它们周围具有文化。如果他们不这样做,那么我们就不会发火焰。
Morgan Herlocker 2011年

@Prof Plum:您的示例未映射到基于工具的“文化”。您的示例正好相反。实际的文化(音频工程师)选择通用工具。并不是说Logic Pro的所有用户都被迫成为音频工程师,因为Logic Pro以某种方式创建了一种文化。我认为您评论中的示例(相同的工作->类似的工具)很好地证明了没有“语言文化史”。而是存在通用的用例文化或通用的最终用户工作文化。
S.Lott,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.