热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

人群的智慧

如果您使用的是“最佳编程语言”,那么您会发现许多博客列出了他们的最佳建议。但是,他们的“最佳”总是等同于“最受欢迎”。人气并不是达到最佳效果的唯一指标。

如果您使用的是“最佳编程语言”,那么您会发现许多博客列出了他们的最佳建议。 但是,他们的“最佳”总是等同于“最受欢迎”。 人气并不是达到最佳效果的唯一指标。 语言设计的质量如何? 程序员的生产率如何? 那有趣的因素呢? 如何适合教学或教学目的?

受欢迎程度意味着获得这些语言的工作变得更容易。 但是,这种重商主义的态度剥夺了您使用Elixir,Haskell,Julia,Rust和Smalltalk等高级技术的所有好处。 而且,在某些情况下,流行程度会使您感到不愉快或更令人沮丧的编程体验,例如PHP,Javascript和C ++ 。 保持流行是阻碍编程技术进步的未来。

Slant是产品推荐社区,其目标是不费吹灰之力为您找到最佳产品,应用或游戏。 使用充满论坛和评论的选项卡,无需再花费大量时间进行产品研究。

在选择一个好的开发工具时, Slant可能非常有用。 我在Slant发现了两个有趣的问题,它们提供了惊人的答案。 首先 ,

什么是“最佳”(提高生产力,精心设计和简洁,而不仅仅是受欢迎或久经考验的)编程语言?

其次 ,

首先学习的最佳编程语言是什么?

对于第一个问题,排名前十的结果是(于2017年10月23日更新):

  1. 短暂聊天
  2. 蟒蛇
  3. 尼姆
  4. 长生不老药
  5. 球拍
  6. 方案
  7. 普通口齿不清
  8. 哈斯克尔
  9. 榆树

对于第二个问题,排名前十的结果是:

  1. 蟒蛇
  2. 短暂聊天
  3. 球拍
  4. 方案
  5. C
  6. 红宝石
  7. a
  8. 榆树
  9. 的Javascript
  10. 高朗

Smalltalk在两者中都表现出色,应有的表现。 Smalltalk是一种非常好的编程语言。 这是一种极其高效,优美的语言。 尽管目前尚不流行,但它肯定经过了时间的考验,因为Smalltalk已经被全球范围内的企业商业使用了三十多年,其中包括摩根大通,Desjardins,UBS,佛罗里达电力与照明,德克萨斯州等仪器公司,阿根廷电信公司, 东方海外集装箱运输公司 ,西门子公司, ALLSTOCKER等。 在我的祖国,Smalltalk被加拿大国家加密机构Communications Security Establishment(CSE)使用。

实际上,在2000年代初期,Smalltalk被美国联合军方用来编写名为JWARS的百万行作战模拟程序。 它实际上胜过了美国空军用C ++编写的称为STORM的类似模拟。 这本身就是对语言功能的惊人证明。

Smalltalk在教授编程方面也很出色。 它是由Alan Kay和他在Xerox PARC的团队设计的 , 旨在教年轻人。 它的语法非常简单,可以在明信片的背面进行总结! 而且由于Smalltalk是最高级的面向对象语言,所以没有更好的方法来学习这一非常重要的编程范例。

人群确实是明智的。 最新的StackOverflow调查也显示了这种智慧。 在“最受欢迎的语言”下,Smalltalk排名第二(在Rust之后,TypeScript,Swift,Go,Python,Elixir和C#之前)。 这表明使用Smalltalk的人喜欢这种语言,并且忠于这种语言。

通过推断,它还表明编程社区并不了解Smalltalk有多好。 社区中的大多数人对此一无所知。 如果他们尝试Smalltalk编程,那么该语言很可能会变得流行。

我认为这是一个非常合理的假设。

但是,我发现有些人群智慧值得怀疑。 为什么推荐使用C(#5)作为初学者的语言? 我无法想象为什么。 这是一种源于过去的古老语言。 它使用头文件进行模块化,因此非常基于文件归档; 头文件带来了各种各样的依赖问题。 它对手动内存管理的依赖与现代编程实践不符。 其他每种主要语言都使用垃圾回收或引用计数。 对于初学者来说,使用内存指针是有问题的。 指针很危险。 它的预处理器和宏系统简直令人难以置信。 它完全缺乏对面向对象编程或函数式编程的支持,这是当今业界最重要的两个范例。 C纯粹是一种过程编程语言; 您再也不会过时了。

是的,C可以教您有关底层计算机体系结构的知识。 汇编语言也可以。 此主题最好留作以后的高级主题。

不要误会我的意思:我爱C。在我的职业生涯中,这为我的早退休付出了代价! 但是我很肯定不会推荐它作为初学者的母语。

为什么建议将Javascript(#9)用作初学者的语言??? 对于初学者来说,Javascript是一种可怕的第一语言。 它会教各种不良习惯。 语言有很多方面的缺陷。 我需要指出的众多WAT S和WTF S代表其Javascript的已对接的行业 笑话 ? Javascript充满内部不一致和陷阱( Jeff Walker称之为“雷区” )。

尽管ECMA TC39对语言进行了所有“改进”,但它们仍未修复从根本上破坏了的语义。 而且他们不能,除非没有中断网络。 ES5.1,ES6,ES7,ES8…都只是在猪上涂上了口红。

看,我明白了。 如果必须进行Web编程,则必须学习一些 Javascript。 (而且我强调“一些”;我进行Web开发,但是我很少使用Javascript。)但是,这并不能使Javascript成为一种好的教学语言。

最后,我对Common Lisp(#7)的建议感到困惑,因为它是一种提高生产率,精心设计且简洁的编程语言。 许多著名的程序员会强烈反对。 如果您喜欢Lisp,我强烈建议您使用Scheme或Racket,而不是Common Lisp。

人群中可以找到智慧,但人群并非万无一失。

From: https://hackernoon.com/the-wisdom-of-the-crowd-c7aff954bd5f



推荐阅读
  • C++程序员视角下的Rust语言
    自上世纪80年代初问世以来,C就是一门非常重要的系统级编程语言。到目前为止,仍然在很多注重性能、实时性、偏硬件等领域发挥着重要的作用。C和C一样&#x ... [详细]
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
  • 于2012年3月份开始接触OpenStack项目,刚开始之处主要是与同事合作共同部署公司内部的云平台,使得公司内部服务器能更好的得到资源利用。在部署的过程中遇到各种从未遇到过的问题 ... [详细]
  • rust编程这篇文章是关于我通过解决Twitch上尚未解决的所有CtCI问题来学习Rust的经验。英国科学博物馆集团AdaLovelace的肖像Rust徽标,由Moz ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • 【技术分享】一个 ELF 蠕虫分析
    【技术分享】一个 ELF 蠕虫分析 ... [详细]
  • 1、DashAPI文档Dash是一个API文档浏览器,使用户可以使用离线功能即时搜索无数API。程序员使用Dash可访问iOS,MacOS, ... [详细]
  • angular2/4 使用[innerHTML]时样式不生效
    首先默认情况下,innerHTML会被认为是不安全的,因此屏蔽掉了样式。不生效场景我们通过innerHTML引入一段html格式的文本, ... [详细]
  • 区块链技术的应用案例展示
    按照行业主流观点,区块链技术应用将经历数字货币(1.0)、合约(2.0)和社会治理(3.0)阶段,当前正逐渐迈入合约阶段。一、区块链1.0:数字货币区块链技术伴随比特币应用而生,比 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了Mycat水平分表相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 前言小伙伴们大家好。从今天开始我们将从 ... [详细]
author-avatar
爱rain宝520
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有