程序员会懂的冷笑话:各大编程语言的内心独白
作者 | Anupam Chugh
译者 | 弯月,责编 | 夕颜
出品 | CSDN(ID:CSDNnews)
软件工程领域鱼龙混杂。有些人乐不思蜀,而有些人则饱受打击。然而,构建软件的工作让每个人倍感压力,这点毋庸置疑。
在本文中,我为流行的各大编程语言杜撰了一份“内心独白”。我并无意冒犯任何编程语言,只希望能够博君一笑。
Java
我们一天天变老,且一如既往地罗嗦(Java语言的大量样板代码)。但是,如果你愿意出钱,我们仍然会为你提供长期的支持。
C
我最年长,但你仍然要给我保留一席之地(分配内存)。我最大的爱好就是指着别人(指针)。
C++
你可以恨我们,鄙视我们,但是你的框架总会用到我们。我们相信工作中的朋友(friend,友元)。
C#
我既不像我父亲(指C++),也不像音符(音符升C)。若要论跨平台GUI支持,我比Java更加犀利。
Lua
新手都很喜欢我们,因为我们的数组索引从1开始。然而,我们的数组不是数组,对象亦不是对象,我们视世间万物为表。
Javascript
我们发誓,我们不是Java脚本,也并非源自Java。顺便说一句,苹果的Safari引擎仍然在呼唤(回调)我们。
Python
我们能让你真正的代码看起来像伪代码一样。我们不用分号,也不用大括号,只需空格就足以引起混乱。
Go
Google实在懒得给我们起名字,而且他们还抢走了我们的泛型和lambdas。但是我们拥有最好的团歌。
PHP
无需付出太多努力即可学会使用我们,但是只需一个大括号就足以让你对我们粉转黑。我们不提供任何默认的命名约定或样式,你想要多丑都可以实现。
Swift
我们简洁明快,可以让你眼前一亮。我们不像Objective-C那样令人困惑,前提是你还没有耗尽内存。
Kotlin
每个Java开发人员都值得拥有我们。我们可以在原有的JVM中运行,还可以避免可怕的NPE和冗长的代码。然而,乐趣也从此无缘了(Kotlin中fun是定义函数的保留关键字,这里指你无法使用fun作为变量名)。
Rust
虽然我的名字是生锈,但我可没有真的生锈,我可以提供内存安全,避免竞争状况,而且我反对垃圾收集。我喜欢借东西(borrowing),只要你愿意花时间学习,我会比“C”还强。
COBOL
每隔几年我们就会复活一次,甚至如今整个失业福利系统都依赖我们。此外,我们还在招聘(指美国最近招聘COBOL程序员维护其失业福利系统)。
程序员的冷笑话一直源源不断,而且每种语言都乐此不疲。不同的语言处理不同的问题,这就是为什么世上有这么多编程语言的原因。人们喜欢划分语言的流行度,这是天性使然。最后,我想说上述各大编程语言的内心独白讲的都是实情,但请勿当真。每种语言都有独特的优点和缺点,我希望本文能让大家更加积极地探索各个语言。
感谢您的阅读!
原文链接:
https://medium.com/better-programming/if-programming-languages-had-honest-slogans-6fb6201a6e03
本文为CSDN翻译文章,转载请注明出处。
推荐阅读
那个分分钟处理 10 亿节点图计算的 Plato,现在怎么样了?
看似毫不相干,哲学与机器学习竟有如此大的交集
黑客用上机器学习你慌不慌?这 7 种窃取数据的新手段快来认识一下
“谷歌杀手”发明者,科学天才 Wolfram
数据库激荡 40 年,深入解析 PostgreSQL、NewSQL 演进历程
5分钟!就能学会以太坊 JSON API 基础知识
你点的每个“在看”,我都认真当成了AI
相关文章:

swift集成alamofire的简单封装
import UIKit import Alamofire enum MethodType{ case GET case POST } class NetworkTool: NSObject { class func request(type : MethodType ,urlString : String , paramters: [String :Any]? nil,finishedCallback : escaping (_ result : Any) -> ()) { //判断是什…
Go后台项目架构思考与重构 | 深度长文
作者 | 腾讯云后台工程师黄雷编辑 | 唐小引来源 | CSDN(ID:CSDNnews)引言本文首先介绍了架构的重要性,随后从一个实际项目的重构过程作为主线,逐步引出主流的架构设计思想以及其所解决的实际问题是什么。通过阅读本文&…

前途到底是网络工程还是程序设计
本人89年年底生的,现在快满21了,大二的时候过的国家网络工程师考试,并不是cisco的网络支持工程师,大三也就是现在,在学校花销太大,想自己赚点钱,于是在学校招聘会上应聘了一家通信公司ÿ…

FAIL - Deployed application at context path / but context failed to start
IDE报错:FAIL - Deployed application at context path / but context failed to start 编译通过,这个错误原因是很多地方被误用,导致Spring运行时不能解析某些Class导致, 例如:ModelAndView用错 public ModelAndView…

项目ITP(五) spring4.0 整合 Quartz 实现任务调度
2014-05-16 22:51 by Jeff Li 前言 系列文章:[传送门] 项目需求: 二维码推送到一体机上,给学生签到扫描用。然后须要的是 上课前20分钟 。幸好在帮带我的学长做 p2p 的时候。接触过。自然 quartz 是首选。所以我就配置了下,搞了个…
Spring security防止跨站请求伪造(CSRF防护)
因为使用了spring security 安全性框架 所以spring security 会自动拦截站点所有状态变化的请求(非GET,HEAD,OPTIONS和TRACE的请求),防止跨站请求伪造(CSRF防护),即防止其他网站或是程序POST等请求本站点。…
从Ops到NoOps,阿里文娱智能运维的关键:自动化应用容量管理
作者| 阿里文娱高级开发工程师 金呈编辑 | 夕颜来源 | CSDN(ID:CSDNnews)概述1. 背景随着业务形态发展,更多的生产力集中到业务创新,这背后要求研发能力的不断升级。阿里文娱持续倾向用更加高效、稳定、低成本的方式支…

JAVA目录树(全功能),Java+ajax实现
我自己要的功能全实现了 一:双击选中项进行编辑 二:右键菜单功能(新增,删除,修改,自定义颜色什么的) 三:选中项进行拖动事件 四:输入项进入搜索(并自动选中结果项) 2011.03.14更新功能 …

SiteMesh介绍
1. SiteMesh简介 SiteMesh是由一个基于Web页面布局、装饰以及与现存Web应用整合的框架。它能帮助我们在由大量页面构成的项目中创建一致的页面布局和外观,如一致的导航条,一致的banner,一致的版权等等。它不仅仅能处理动态的内容,…
商汤提基于贪心超网络的One-Shot NAS,达到最新SOTA | CVPR 2020
出品 | AI科技大本营(ID:rgznai100)导读:在CVPR 2020上,商汤移动智能事业群-3DAR-身份认证与视频感知组提出了基于贪心超网络的One-Shot NAS方法,显著提升了超网络直接在大规模数据集上的搜索训练效率,并在…

多样化实现Windows phone 7本地数据访问5——深入Rapid Repository
上一篇多样化实现Windows Phone 7本地数据访问<4>——Rapid Repository 中初步的介绍Repid Repository作为Windows phone 7数据库存储原理Repid具有特点以及数据CRUD基本操作.Rapid Repository 是一个基于WP7开源的数据库. 上周联系Rapid 数据库的作者Sean McAlinden.有…
调试Tomcat源码
需要调试Tomcat源码其实很简单, 1.保持你的Tomcat安装文件和源码是版本一致 http://tomcat.apache.org/download-80.cgi 下载安装版和源码2个版本 2.建立Java自由格式项目 先在IDE里配置好Tomcat,这个不复杂。 然后新建一个项目,这个需要…

开源 免费 java CMS - FreeCMS1.9 全文检索
项目地址:http://code.google.com/p/freecms/ 全文检索 从FreeCMS 1.7開始支持 仅仅有创建过索引的对象才干被lucene类标签查询到。 信息类数据会在信息更新、审核、删除、还原操作时自己主动进行全文检索处理。1. 创建索引 从左側管理菜单点击创建索引进入。 您能够…

Spring Mock单元测试
针对post和get import org.junit.Before; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.…

tar、gzip、gunzip、bzip2、zip、unzip
tar [参数] 文件或目录名 •参数: -c: 建立新的备份档文件。 -f: 对普通文件进行操作。这个参数通常是必选的。 -r: 向备份档文件追加文件。 -x: 从备份档文件中解出文件。 -t: …
港科大谢丹阳教授问诊未来,预测长远趋势与转折点
阳春三月,万象更新,2020年注定是不平凡的一年!有激荡就会遇见变革,有挑战就会迎来机遇。今天总会过去,未来将会怎样?香港科大商学院内地办事处重磅推出全新升级的《袁老师访谈录》全新系列【问诊未来院长系…

数字签名与数字证书
先看一下百度百科对数字签名和数字证书的解释: 数字签名: 将报文按双方约定的HASH算法计算得到一个固定位数的报文摘要。在数学上保证:只要改动报文中任何一位,重新计算出的报文摘要值就会与原先的值不相符。这样就保证了报文的不…
Spring源码分析【3】-SpingWebInitializer的加载
SpingWebInitializer的加载 Spring基于注解的配置代码: public class SpingWebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {Overrideprotected Class<?>[] getRootConfigClasses() {return new Class<?>[]{RootCon…
PyTorch 1.5发布,与AWS联手推出TorchServe
导读:近日 PyTorch 发布了 1.5 版本的更新,作为越来越受欢迎的机器学习框架,PyTorch 本次也带来了大的功能升级。此外, Facebook 和 AWS 还合作推出了两个重要的 PyTorch 库。作者 | 神经星星来源 | HyperAI超神经(ID:…

更改时区,时间
整更改ubuntu时区,时间,localePublished by 笨二十一 at 11:56 上午 under Linux/Unix,服务器更改时区,时间执行tzselect按照提示进行选择时区sudo cp /usr/share/zoneinfo/Asia/ShangHai /etc/localtime执行sudo ntpdate cn.pool.ntp.orgcn.pool.ntp.org是位于中国…
throttle与debounce的区别
前几天看到一篇文章,我的公众号里也分享了《一次发现underscore源码bug的经历以及对学术界拿来主义的思考》具体文章详见,微信公众号:文中讲了大家对throttle和debounce存在误解,同时提到了《高程3》中实现节流方法存在一些问题&a…
Spring源码分析【0】-框架的基础:继承和接口调用链
Spring源码大量的使用继承和接口调用,现举个例子,不搞清楚这个无法看代码。 public class A extends B{public void f1() {System.out.println("f1 in a");} }public abstract class B extends C {protected abstract void f1();protected Str…
华人计算机视觉科学家黄煦涛逝世,众多AI大牛发文缅怀
当地时间2020年4月25日,华人计算机科学家黄煦涛教授在美国印第安纳州逝世,享年84岁。黄煦涛教授主要从事教学与图像处理、模式识别、计算机视觉和人机交互等方面的研究工作,一生出版了 14 本书,发表了 400 多篇学术论文。在学术研…

七年之痒,再见理想
不确定“再见理想”是“再见了,理想”还是“再次燃起理想”,稀里糊涂地对这句话有感觉。作为程序员,总会有自己的技术价值观和技术理想。工作七年多,开始痒了。 程序员的生活总是喜忧参半,出入体面的写字楼,…

HTML5学习笔记二 HTML基础
一、HTML 标题 HTML 标题(Heading)是通过<h1> - <h6> 标签来定义的. <h1>标题一</h1> <h2>标题二</h2> <h3>标题三</h3> 二、HTML 段落 HTML 段落是通过标签 <p> 来定义的. <p>亲吻你的手还…
程序员感叹一年只能存下15万太少了……网友:潸然泪下
最近有程序员网友晒出自己的年终奖,税后高达15.7万!看到这个情形,很多网友表示自己“被打鸡血了”。他强调学习的重要性,学习仍然是在这个时代下,普通人能够逆袭,给家人更好生活的一把利器!今天…
Spring源码分析【2】-Tomcat和Sping的连接点
Tomcat是怎么调用上Spring的呢?需要找到这个连接点。 答案就在org.apache.catalina.startup.ContextConfig的processServletContainerInitializers方法 new WebappServiceLoader() 回到processServletContainerInitializers 进入org.apache.catalina.startup.Weba…

优化数据库的方法及SQL语句优化的原则
优化数据库的方法: 1、关键字段建立索引。 2、使用存储过程,它使SQL变得更加灵活和高效。 3、备份数据库和清除垃圾数据。 4、SQL语句语法的优化。(可以用Sybase的SQL Expert,可惜我没找到unexpired的序列号) 5、清理删…

各大浏览器 CSS3 和 HTML5 兼容速查表
2019独角兽企业重金招聘Python工程师标准>>> 不知不觉中,支持 CSS3 和 HTML5 的浏览器变得越来越多,甚至包括最新版的 IE,当然,所谓支持仅仅是部分支持,因为 CSS3 和 HTML5 的W3C 规范都尚未形成。如果你现…
Spring源码分析【1】-Tomcat的初始化
org.apache.catalina.startup.ContextConfig.configureStart() org.apache.catalina.startup.ContextConfig.webConfig() 进入org.apache.catalina.startup.ContextConfig.processServletContainerInitializers processServletContainerInitializers参考:Spring源…