阅读更多

13顶
7踩

编程语言

翻译新闻 哪种编程语言更好?真的不重要

2013-01-21 16:20 by 副主编 wangguo 评论(32) 有18086人浏览
先来看个例子。两个工匠制作国际象棋,其中一个工匠使用传统的工具——各种规格的凿子、锉刀和锤子,首选的材料是石头。他仔细地雕刻细节,像他的父亲做的那样。另一种工匠使用更现代的技术去熔化金属、使用模具制作,他使用火以及可以承受极高温度和压力的模具和工具。最终,这两个工匠的作品同样精致、细腻、美丽。



谁的方法更好?

这两个工匠产生了同等价值的东西——美丽的国际象棋。你可能更喜欢经典样式的石质棋盘,或者更喜欢冰冷的沉甸甸的金属制品。你的选择与工匠们所使用的方法没有任何关系,你只关心最终产品。

同样,开发一个应用程序,选择什么语言真的不是很重要。自各种编程语言诞生以来,关于孰优孰劣的争论一直没有停止过,比如“Python更好,因为……”、“PHP是战斗力不足5的渣,Ruby才是王道”……此类话题如同一针鸡血,可以瞬间点燃码农们的斗志。


编程语言拥护者眼中的编程语言


选择编程语言和工匠选择材质是一样的,其中一个工匠之所以选择石头,可能他认为石头比金属好一些。争论这些毫无意义——因为两种方法创造了类似的结果和价值,而且这两种方法都是有用的。

其实,我们应该将时间花费在如何创造更有价值、更具创新的东西上,而不是在这些无关的讨论上。

我们几年前开发的一个产品中包含了一个Python后端和PHP前端,尽管我的很多同事都讨厌PHP,但一点都不妨碍该产品的开发和使用。去年,我们才迁移到一个新的基于Python的Web框架。这一决定并不是因为PHP不好用,而是出去其他方面的考虑,如开发者的技能、PHP框架老化(一些功能需要重写)等。尽管迁移到了Python框架,该产品中还是包含了基于其他语言的代码。

编程语言只是一个工具,重要的是使用这些工具做出的产品。每个开发者应该尽可能了解如何使用不同的语言和不同的方式来完成同样的事情。一旦开发者开始思考他们选择的语言是否优于另一种语言时,就应该回顾一下文章开头的工匠的故事。

最后要说的是,语言并不重要,重要的是你拿它做什么。所以,没有最好的,只有最合适、最顺手的。

原文:Languages Don’t Matter
  • 大小: 31.8 KB
  • 大小: 84.1 KB
  • 大小: 11.9 KB
13
7
评论 共 32 条 请登录后发表评论
12 楼 lancijk 2013-01-22 09:39
kidneyball 写道
貌似 "语言并不重要,重要的是你拿它做什么" 的逆否命题是 “当你决定了要做什么时,语言就很重要了”


兄 果断大才也.  这种文章看多了,也听多了. 很多地方其实也都可以反过来说.

"你可能更喜欢经典样式的石质棋盘,或者更喜欢冰冷的沉甸甸的金属制品。你的选择与工匠们所使用的方法没有任何关系,你只关心最终产品。"

就拿上面一句来说.  既然只关心最终产品. 我们何不用最实用的也最方便也最可靠的 语言来做?就这个产品来说. 我就觉得这个语言相对于其他重要.然后还有各种引申......

不多言.  java coder 飘过...
11 楼 kidneyball 2013-01-22 06:30
貌似 "语言并不重要,重要的是你拿它做什么" 的逆否命题是 “当你决定了要做什么时,语言就很重要了”
10 楼 kyfxbl 2013-01-22 04:45
哈哈,文章就不评论了。这个图真的有笑到
9 楼 at1943 2013-01-21 21:13
文章没看,但我赞同标题,真的不是那么重要。
8 楼 ray_linn 2013-01-21 18:19
而且 C 语言和 Ruby/PHP 使用范围也是完全不一样,C 一般是充当系统级的语言。
7 楼 bitray 2013-01-21 18:15
好,我想当爱因斯坦.哈
6 楼 qq413041153 2013-01-21 18:06
哎 但是人家用机械化生产一天100副国际象棋,那个手工雕刻的三天一副(算快的吧). 我觉得只要不是傻子都选择机械化的了!
5 楼 Aaronic 2013-01-21 18:04
虽然所有的例子都是蹩脚的,但楼主举的例子也太蹩脚了

虽然结论是正确的,但例子的漏洞像筛子一样多
4 楼 harryxu 2013-01-21 17:33
效率不一样
3 楼 FireIce 2013-01-21 17:09
同样是割麦子,用手一根根拔是一种方法,用镰刀是一种方法,用收割机也是一种方法,结果都一样割完,但是效率是大大的差异
2 楼 rimoer 2013-01-21 17:00
不认同你的观点。例子太粗糙了。软件产品和棋盘能比吗?软件产品是一个多人合作,不段改进的。在现在这个时代,时间和效率是非常重要的。
1 楼 ITboss 2013-01-21 16:39

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 网页FLASH播放器代码

    //根据 Flash 的播放进度设置 id 为 bar 的表格的宽度 bar.style.width=Math.round(N*100/total)+"%" //在 id 为 frameCount 的对象中显示当前帧数和总帧数 frameCount.innerText=N+"/"+total } function ...

  • html5 audio js控制进度,HTML5多媒体的之audio和video。JavaScript控制进度条播放进度

    使用HTML5多媒体,audio和video两个元素可以让用户不必借助flash player插件即可播放音频和视频。小知识:视频文件包含了音频轨道,视频轨道和其他一些元数据。当我们播放视频的时候,音频轨道和和视频轨道是绑定在...

  • 如何在浏览器 console 控制台中播放视频?

    如何在浏览器 console 控制台中播放视频? 要实现这个目标,主要涉及到这几个点: 如何获取和解析视频流? 如何在 console 里播放动态内容? 如何在 console 里播放彩色内容? 如何连接视频流和 console? 事实上...

  • 在vue项目中使用video.js实现视频播放和视频进度条打点

    markerStyle配置的是各个打点的默认颜色,如果要每个打点都有自己各自的颜色,可以在markers里给每个打点添加class名字,然后在css里单独设置颜色。Video.js表示用户通过"vjs-user-active"和"vjs-user-inactive"类...

  • 浏览器不支持flash插件之后,h5播放rtmp直播流的解决方案

    浏览器不支持flash插件之后,h5播放rtmp直播流的解决方案背景几种视频流比较http-flv搭配flv.js播放方案rtmp与http-flv地址格式直播在线测试地址: JavaCV转封装rtsp到rtmp(无需转码,低资源消耗) 海康sdk捕获码...

  • js控制swf播放

    <... <head> <...用js代码控制flash的播放</title> <meta charset="utf-8" /> </head> <body> <input type="button" value="播放" onclick="myflash.Pl...

  • FLASH 加载进度 JS代码

    <divid="d1">...embedtype="application/x-shockwave-flash"pluginspage="http://www.adobe.com/go/getflashplayer"id="mgame"name="mgame"width="640px"height="480px"src="http://www.kfc123.com/...

  • Android 通过WebView来播放flash在线视频流

    首先,Android 自带的WebView控件是不支持flash播放的在Android4.0以上的版本中,所以需要keh

  • videojs 播放视频

    背景:动态更换播放的视频源时,需要先用dispose()销毁,再重新创建,dispose方法会连同dom一同删除,故需要创建dom (如果直接创建video元素,注意生成的object不能在video标签下面,否则页面不报错但不能播放,...

  • java flash 播放器_视频播放插件Video.js

    插件描述:Video.js 是一个通用的在网页上嵌入视频播放器的 JS ...(要支持ie低版本请下载5.4.3版 )Video.js最新v7.5.5版 2019-7-4最新Bug修复liveui:在自动播放直播时的一些问题(#6062)(8777c89)Video.js最新v7.4....

  • html video标签播放直播视频,HTML5 Video 标签播放及控制视频

    Video 是 HTML5 中新增的标签,使用 Video 标签可以播放 ogg、mp4、webm 等格式的视频,Video 标签的引入,减少前端页面对 Flash 动画的依赖。0x0 预备知识不同的浏览器支持的视频格式可能不同,以下是摘自 W3School...

  • Video 标签播放及控制视频

    Video 是 HTML5 中新增的标签,使用 Video 标签可以播放 ogg、mp4 、webm 等格式的视频,Video 标签的引入,减少前端页面对 Flash 动画的依赖。 不同的浏览器支持的视频格式可能不同,以下是摘自 W3School 各个...

  • 记录下js控制网页WMP播放的属性

    还是觉得使用Flash音乐播放器的好,兼容各个浏览器。不过,工作内容不是由自己决定的。。。郁闷   来源:   http://www.jb51.net/article/16402.htm     http://www.jb51.net/article/11075.htm   ...

  • Android播放flash

    所以本文的思路是使用WebView播放flash,通过java代码控制WebView中的javascript代码来控制flash的播放和进度显示操作。由于android 2.2以下的系统不能安装flash插件,所以不能使用此方法播放flash。 首先

  • videoJs实现手机视频播放功能

    我们项目中用的是angular开发的手机H5的app,今天有一个需求是js播放视频功能,就上网搜索了一下,找到了videoJs,Video.js是一款web视频播放器,支持html5和flash两种播放方式。 二、videojs初始化 video.js有两...

  • 人脸识别_深度学习_CNN_表情分析系统_1741778057.zip

    人脸识别项目实战

  • Hono框架下基于TypeScript的Web应用构建指南:从项目初始化到模块全面实现(可复现,有问题请联系博主)

    内容概要:本文详细描述了一个完整的Web应用程序的开发过程。该项目主要采用了Hono作为服务器框架,Prisma作为ORM工具,JWT用于认证鉴权,以及一系列现代化的最佳实践确保系统的健壮性和安全性。项目初期构建了基础架构,并设置了必要的依赖和工具。在后端方面涵盖了公共API接口的设计、CRUD增删改查逻辑、用户认证和授权等功能。此外还特别关注到了API的安全保护,如输入输出的校验,跨站请求伪造CSRF的防范,XSS防御等措施;为确保代码的质量引入了代码检测(比如ESLint搭配Prettier),并建立了完善的测试框架以保障后续开发阶段的功能正确。对于可能出现的问题预先定义了一组规范化的异常响应,并提供OpenAPI文档以方便开发者理解和调用。数据存储层面上利用了关系型与非关系型数据库各自的特性,实现了数据的有效组织,最后提供了实用的脚本,可用于种子数据插入以及执行必要的初始化工作。 适合人群:面向具有一定JavaScript/TypeScript开发经验,尤其是Node.js后台服务搭建经验的中级程序员和技术团队。 使用场景及目标:这份材料非常适合那些需要快速建立安全高效的RES

  • 掌静脉识别算法源码(门禁).zip

    【资源介绍】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,也可以作为小白实战演练和初期项目立项演示的重要参考借鉴资料。 3、本资源作为“学习资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研和多多调试实践。 掌静脉识别算法源码(门禁).zip掌静脉识别算法源码(门禁).zip掌静脉识别算法源码(门禁).zip掌静脉识别算法源码(门禁).zip掌静脉识别算法源码(门禁).zip掌静脉识别算法源码(门禁).zip掌静脉识别算法源码(门禁).zip掌静脉识别算法源码(门禁).zip掌静脉识别算法源码(门禁).zip掌静脉识别算法源码(门禁).zip掌静脉识别算法源码(门禁).zip掌静脉识别算法源码(门禁).zip掌静脉识别算法源码(门禁).zip掌静脉识别算法源码(门禁).zip

  • 计算机视觉_手势识别_色域转换_控制应用_1741857836.zip

    手势识别项目实战

  • (参考GUI)MATLAB BP的交通标志系统.zip

    (参考GUI)MATLAB BP的交通标志系统.zip

Global site tag (gtag.js) - Google Analytics