最懒的程序员

时间:2023-02-12 10:34:15
首先下个定义,程序员是一群“懒人”。 看到此的定义,不要骂我啊,听我娓娓道来!

      曾经我在一个Python技术群,他们在吼哪个语言好,各说各有理,简直是火拼。最后我也吼了一句:一门语言或者工具的出现是有其背景的,它解决了一些问题(对程序员透明),同时也有一些问题没有解决。

      从程序语言的发展上来看这个问题,汇编->C/delphi->Java->Lisp,语言在发展着,我们可以看到在项目中用到的最多的是Java和一大堆脚本,当然在系统编程中还离不开C。在很多函数试编程语言中,将我们在编程中用到的最多的数据结构(表,映射等)写入了语言本身,在Python中我们不必去实现一个链表不用去管理那纠结的C语言指针问题。虽然STL为C++的快速开发奠定的基础,我们可以使用现成的那些类库,但其掌握和使用远不及Python快捷。这就是为什么有大牛去研发新语言的原因了,Go语言作为一个系统级编程语言也没有抛弃Java中的那些优良特性(GC),构程的出现让我们从繁琐的线程中解脱出来……所有的一切,单从语言上来看,它已经解决了很多问题,我们做开发是越来越简单,选择一门好语言往往事倍功半。

      在最初学编程的时候,我们最兴奋的就是实现了一种数据结构,实现了某一功能。从软件设计角度来说,这只是简单的算法层面的东西。在实际的软件设计过程中,软件的框架才是灵魂,良好的软件框架是将程序员解脱出来的法宝。每次看Java代码,特别是开源项目中的,都会神清气爽,我觉得它是把面向对象思想发挥的非常好的语言之一,以至于热爱C语言编程的我也开始享受面向接口编程的快感,编码过程行云流水的顺畅。在回头看看SSH框架,留给我们要做的并不是很多,简单实现几个接口就能实现非常复杂的功能,而作为企业级应用,我们则需要深入了解每个框架的实现原理,性能优势和瓶颈等等,并且针对其没有解决的问题,定制优化方案,而编码甚少。架构师总是能从模式中找出模式出来,使我们的设计变得简单明了。

      现在很少有人会用Windows SDK编程了,VC/.NET使用MVC模式让我们体验了控件直接拖的便捷,做深入开发我们当然要了解MFC的实现机制,使我们在编程中尽量的减少BUG,但实际编码过程确是简单明了的,MFC框架为我们做了太多的事情。编程中,在允许的情况下,什么好用用什么,在windows下.net做界面明显具有优势,干嘛还死死的爱着VC6.0不放;现成的库函数不用干嘛要自己写(现有的库足够你使用的时候[功能、性能],不要尝试自己去做,重复创造车轮的意义不大)。当然在实际项目中,需要考虑编码人员的学习成本,代码版本的融合等。

       现在写程序时,最先考虑的是是否有现成的,于是在liinux下最先想到的就是shell脚本和Python编程,几乎碰到的所有典型问题都能在Python中找到对应的库来解决,以至于百来行就能搞定一个程序,而最大的工作量却放在了对库函数的理解上。C语言的套接字编程太繁琐,而Python确只要两三行代码,其完备的封装让我们从复杂的API中解脱。喜欢Python的人都是爱上了它那丰富的库,网络编程、图像影音、文本解析、科学计算……比起用C语言完成的那臃肿的代码,Python更加的简单易于维护。很多同学做课程设计,都有一种考虑,“我是程序员,所以所有的代码要自己来写”,于是它们使用了更少的库,完全由自己去实现。比如一个下载程序,需要自己去解读HTTP/HTTPS/FTP协议,最后实现了一个小库,然后拿着和开源的wget一对比,Cookies好像不支持,断点续传好像又没做,于是乎这个设计还真变成了一个毕业设计了(公司里面称之为毕设水平)……我们要做的是对现有的东西进行改进,而不是设计出一个比现有的东西更烂的版本。

       知其然且知其所以然,是我们能好好利用工具的必备条件,知道原理后你将从中获益。使用一种语言,就要了解它的优势和劣势,就要明白它的实现机制,这样用起来才得心应手。有很多大牛设计出了优秀的框架、语言、库,使我们的开发变得容易,站在巨人的肩膀上,并且能够去解读巨人,那样会使我们更加强大。我是一个懒程序员,喜欢用别人的代码,喜欢拼凑别人的代码,但是在运用每一个模块的时候都去认真解读其原理。也许有一天你会成为大牛,可一步步走过来你不知道“偷懒”了多少次。我们可以创造,但不要抛弃那些已有的方法和思想,Hadoop中文件传输用的是SSH,没有任何理由让我们放弃使用它。

       在漫长的“偷懒”的岁月中,你认识的很多语言、框架、库、方法,似乎对他们都了如指掌。于是在设计的时候你对使用现成的东西会有更加深刻的认识,碰到问题的时候你可以大胆是说可以怎样怎样做,因为在某某框架中它就是这么做的,厚积而薄发,看得多了自然触类旁通。站在巨人的肩膀上学习,也要站在巨人的肩膀上创造。

        程序设计在一开始就是给懒人用的。现在的Oracle SQL引擎已经强大到优化的和非优化的查询能达到相同的效果,易语言让编程变得就想写作文……我相信编码会变得越来越简单,会有那么一天,仅需我们要在主函数中Load一个XML配置然后RUN一下就完成了我们这个设计。

        程序员是群“懒人”,无论是做事的目的还是做事的方法,可是你究竟“懒”到家了没呢?

       此文仅发表自己的愚见,有不妥之处请提出宝贵意见。