对5种主流编程语言的吐槽


不可否认,想要成为一名优秀的程序员确实是需要掌握多种编程语言。通过这几年的自虐式学习,小编也慢慢的掌握了这些编程语言。接下来要为大家,介绍五款让人又爱又恨的编程语言!



1.C 语言

C 语言给人的感觉,就是一位神秘莫测而又高冷型的女生形象。这是因为 c 语言相比其他编程语言难度高一些,这也就多了一丝神秘,每当以为快要接近它时,它又狠心的推开!狠心的 C! 语!言!


无法拒绝 C 语言的原因:UNIX 由 C 编写而成,其运行在大部分手机与大多数云环境当中,这意味着必须有人继续使用星号与大括号进行开发,否则这一切都将无法为继。另外,还有设备驱动程序、嵌入式程序以及 Linux/Unix 代码库的维护工作——好了,这个忧伤的话题到此结束。



接下来轮到最开心的环节,要!开!始!吐!槽!


作为拥有「便携式汇编语言」头衔的 C 语言, 绝对充斥着各种问题!相信没有人会喜欢编写,大量独立的头文件,也更没有几个人能在使用预处理器的时候保持平和心态。


从理论上讲,我们应该能够利用指针的数学能力,完成无比睿智的壮举,但很少有人能超越已经存在的数据结构。事实上,鼓捣指针往往正是代码崩溃的起点。即使大 家自身水平能够轻松搞定指针,但也需要编写冗长的注释加以记录,这相当让人抓狂。


另外,我想问一下各位,有人几个人能记住编写 C 代码所应当遵循的全部最佳实践吗?例如避免一切潜在的安全漏洞,好吧,我个人不太行。


2.JavaScript



JavaScript 给人的感觉,就是一位悲观型的女生形象。为什么这样说呢,谁叫它们总是用小括号、中括号与大括号包裹着自己呢!


无法拒绝 JavaScript 的原因:互联网以及无数浏览器仍然坚持使用 JavaScript,而 Node.js 的出现甚至迫使我们在服务器端也要使用 JavaScript。至少在可预见的未来,JavaScript 还将不断折磨我们。



接下来轮到最开心的环节,要!开!始!吐!槽!


哈哈~JavaScript 的缔造者们希望打造一款现代化语言。遗憾的是,他们的成果逼迫我们不断使用小括号、中括号与大括号来完成正确的嵌套关系。而匿名函数、闭包与 JSON 数据结构则让我们的小指变得越来越发达。


另外,我们还需要关注很多奇怪的细节。如果 x 作为字符串包含字符 1,那么 x+1 将产生字符串 11,而 x-1 则会产生数字 0。


谁还会记得 false、 null、NaN 以及 undefined 之间的区别呢?它们听起来很像,但 JavaScript 为什么非要对此进行区分?为什么不能把它们合并起来?


3.PHP



PHP 给的感觉是一位单纯乖巧型女生,至于原因 PHP 相比其他语言更简单,PHP 性能足够好,热部署、易修改,我们也不用那么费心啦~



PHP 其实并不能算是真正的计算机语言,而更像是一款用于向静态 HTML 中添加智能机制的工具。大家可以将信息存储在数据库中并为其匹配静态标签。虽然还有更多功能,但总体来看 PHP 的基本作用就是对我们提取自数据库的字符串进行粘接。


但争议归争议,大多数 Web 仍然由 PHP 构建而成。在 WordPress、Joomla 以及 Drupal 中,大多数内容都通过 PHP 代码进行交付。另外,Facebook 也是由 PHP 编写而成。


幸运的是,Facebook 打造的 HipHop Virtual Machine 启发了 Zend,而 PHP 7.0 也是由此诞生。这些新型 PHP 引擎通常速度更快,但这同时意味着我们未来仍然得活在 PHP 的阴影当中。


4.Java



Java 给我的感觉是一位邋遢学霸型女生的形象。虚拟机与库概念可以追溯至上世纪九十年代,但语法则早在上世纪七十年代即与 C 语言一同出现。自动内存管理看起来很美,直到恶心的垃圾回收机制毁掉这一切。


Java 程序员们一直在抱怨这方面问题,而且其中一部分,也确实被甲骨文所解决。然而,解决的过程又带来了新问题。一部分新型代码及库无法在旧有虚拟机上运行。我就经历过这样的困扰,事实上 Java 1.4 之后的每个版本都像是一种完全不同的语言。



但这一切都不重要。Java 是 Web 与移动手机的基石,它也是高校当中教授的第一门语言。相关代码库愈发庞大,其价值也远远超过其它语言。我们能怎么办?忍着吧。


5.Python


Python 给我的感觉是一位萌萌的萝莉型女生的形象。这是一种适合年轻人学习的现代语言。其很少用到标点符号,因此代码看起来更加简洁。


问题在哪?首先,Python 2.7 与 3.0 之间存在巨大差异。虽然发展是必要的,但步子迈得太大无疑容易扯着蛋。我们永远需要关注当前设备上使用的到底是哪个 Python 版本,同时 认真数清一切代码缩进、大括号以及空格等等。


同样的,这些抱怨毫无意义。Python 拥有大批受众,特别是「软科学家」群体。生物学家与经济学家将 Python 视为最强语言,有些人甚至建议在股票与债 券的说明文件中添加 Python 代码,这样银行家们就能够通过 Python 看懂其中真正的含义——而不被那帮律师骗子所蒙蔽。



好消息是,阅读 Python 代码确实要比阅读法律文件更容易。这是种进步,而且是种我们无法抗拒的进步~


来源:程序人生


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/305006.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python自动化测试脚本怎么编写_编写自动化测试脚本心得---菜鸟入门篇

编写自动化测试脚本心得 -------- 菜鸟入门篇 本文中将不会讲解 ISEE 的测试原理、不说明 Python 的常用语法、不介绍 OTP 测试平 台的架构, 自动化测试组的牛人们已经为我们编写了很多这些方面的资料, 而且我也怕学艺 不精说的不对, 因为 ……

c语言修改windows系统时间,c语言实现系统时间校正工具代码分享

//*******************************************************************//Time Protocol是一种非常简单的应用层协议。它返回一个未格式化的32位二进制数字,//这个数字描述了从1900年1月1日午夜到现在的秒数。服务器在端口37监听协议请求,以//TCP/IP或者UDP/IP格式…

WM中的OutLook开发和操作

昨天闲来无视,学习了一下WM的基本开发。看WM有约的那套教程心里痒痒,于是下载了SDK,看看DEMO,在Sample中的示例进行加工。小有一点心得。其实总的来说难度也不是很大,以前没有做过FORM的程序,都是WEB上面的…

苹果手机运行python_iPhone是卖的最好的手机?用Python照样把他玩弄鼓掌之间!

关于 iOS 的技术解读有很多,但是却鲜有设备可视化同步的介绍文章。本文一起了解下这个酷炫的 iOS 黑科技。我们的任务很简单——如上图所示,实时获取设备的当前方向。 UIDevice.current.orientation 首先,需要调用 beginGeneratingDeviceOrie…

这几个动图告诉你科学的神奇,看完瞬间觉得智商都提高了

生活中简单平常的事物和现象背后,往往有着奇妙的原理,赶快跟着一起来看看涨点知识吧! 夹心雪糕的制作原理 ▼ 难怪雪糕大小,厚度都一模一样 原来都是从一个模子里出来的 ▼ 煎饼可以统一翻面 再也不用担心烤焦了 ▼ 冰淇淋蛋筒的制…

自定义 ocelot 中间件输出自定义错误信息

自定义 ocelot 中间件输出自定义错误信息Introocelot 中默认的 Response 中间件在出错的时候只会设置 StatusCode 没有具体的信息,想要展示自己定义的错误信息的时候就需要做一些自定义了,对 ocelot 中的 Response 中间件做了一些小改动,实现…

shapenet网络_GRNet网络:3D网格进行点云卷积,实现点云补全

Date:2020-11-23作者:三弟来源:GRNet网络:3D网格进行点云卷积,实现点云补全Gridding Residual Network for Dense Point Cloud Completion在点云分割方面,有一些方法尝试通过更通用的卷积操作来捕捉点云的空…

c语言随机数循环延迟,C语言生成随机数的函数、延时函数

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼下面C语言代码使用了生成随机数的函数、延时函数。请大家仔细观察其显示效果。从以下代码,我们可以得出一个重要的结论:当上述两类函数被放入循环时,应作出一定修改。同时还应关注其参数的定义位…

盘点小坏蛋的礼物

我们家小坏蛋一天天长大了,妈妈从觉得很辛苦过渡到习惯了很辛苦,苦中作乐的妈妈终于抽出空来写博客啦! 为什么叫他小坏蛋呢?因为他吃饭不乖。没满月的时候蛮乖的,每顿奶都吃的很香,咕咚咕咚的喝下去&#x…

《笨办法学python》6_笨办法学Python 习题 25: 更多更多的练习

我们将做一些关于函数和变量的练习,以确认你真正掌握了这些知识。这节练习对你来说可以说是一本道:写程序,逐行研究,弄懂它。 不过这节练习还是有些不同,你不需要运行它,取而代之,你需要将它导入到 python …

为什么对gRPC做负载均衡会很棘手?

在过去的几年中,随着微服务的增长,gRPC在这些较小的服务之间的相互通信中获得了很大的普及,在后台,gRPC使用http/2在同一连接和双工流中复用许多请求。使用具有结构化数据的快速,轻便的二进制协议作为服务之间的通信介质确实很有吸…

给新手程序猿的16个必备小妙招

写在前面: 这个文章核心并不是程序优化的具体技巧,而是拿到一个问题如何思考和利用工具的通用方法。比如即使我们不知道 profiler 这个东西,通过搜索"代码 每一行 时间"也可以很快知道有这样的工具叫做 profiler,并且学…

openkruise 缩容_Linus 本尊也来了!为什么 KubeCon 越来越火了?

原标题:Linus 本尊也来了!为什么 KubeCon 越来越火了?2015年11月,第一届 KubeCon 在美国旧金山开始的时候,还只是个200人的小会议,2019年的7月,KubeCon 第二次在中国举办,就有 3500 …

你可能不知道的C#语言特性

关键字 yield 通常用于迭代器中,向IEnumerable对象提供值或者结束迭代。 如: yield return expression; yield break; var 用于定义隐式类型的变量。 var i 5; var s "Hello"; 注意隐式类型(Implicitly typed)并不是…

c语言中文件如何插入数据,急求如何将下列C语言程序数据存储到文件中?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼求如何改动才能将下列程序的存储输入或输出数据(或两者一起)到指定的文件(或运行时直接创立一个文件)如Arrangement中。#include int n0;int rest[7][7]; //全局声明,以供全局调用int main(){void perm(int list[],int ,int );int …

python字符串设置字体_python怎么更改字符串后几位

python更改字符串后几位的方法:可以利用replace()函数来实现。replace()函数可以把字符串中的旧字符串替换成新字符串,并返回替换后的新字符串。具体使用方法如:【str.replace("is", "was")】。可以利用replace()函数来修…

使用 Tye 辅助开发 k8s 应用竟如此简单(二)

续上篇,这篇我们来进一步探索 Tye 更多的使用方法。本篇我们来了解一下如何在 Tye 中使用服务发现。服务发现 - 微服务开发不可缺少的部件 服务发现,就是新注册的这个服务模块能够及时的被其他调用者发现。不管是服务新增和服务删减都能实现自动发现。《…

程序猿的双十一最佳攻略

讲个恐怖故事 一年一度虐汪“光棍节”又来了 小天拍拍(不存在的)胸脯告诉大家 这个节日 我陪你们 买买买! 限时特惠专场 1 welcome 7天教你学会数学建模及Matlab编程 数学建模涉及的内容比较广泛,比如碎纸片问题中所涉及的图像识…

傅里叶变换音频可视化_HTML5如何实现音频可视化频谱跳动

本篇教程探讨了HTML5如何实现音频可视化频谱跳动&#xff0c;希望阅读本篇文章以后大家有所收获&#xff0c;帮助大家HTML5CSS3从入门到精通 。<html>HTML5音频可视化频谱跳动代码* {margin: 0;padding: 0;}#canvas {display: block;background: linear-gradient(135deg,…

android websocket封装,Android WebSocket 方案选型OkHttp

目前Android WebSocket 框架 主要包括:SocketIOJava-WebSocketOkHttp WebSocket一开始我首选的是采用SocketIO方案&#xff0c;因为考虑该方案封装接口好&#xff0c;提供异步回调机制&#xff0c;但和后端同事沟通发现目前客户端的SocketIO不支持ws wss协议, 所以无奈只能放弃…