我的工程实践选题是:物联网组网智能分析引擎。项目的主要目的是,通过爬取现有的物联网设备组网的数据,使用数据挖掘方法对这些数据进行分析,为开发新型物联网设备提供参考和依据。
老实说,一开始选择这个题目的时候我是拒绝的,因为此前我对于物联网这三个字背后的含义实在了解甚少,但选题形势激烈的外在压力和心底尚存的一丝挑战欲的内在动力,两者结合促使我最后选择了这个题目。然而本篇博客的主要目的,是分析关于实践选题领域的同类软件产品,但据我了解,此类软件出名的还真是一个都没有。那么,换个角度,项目的前后端开发是必不可少的一个步骤,那么这里我就以典型的IDE作为对象进行论述,所选取的软件有:VSCode,Eclipse,Idea。
下面以问题-回答的形式,来谈谈我对于这些软件产品的理解。
问题1
问:这些软件的开发者是怎么说服你(陌生人)成为他们的用户的?他们的目标都是盈利么?他们的目标都是赚取用户的现金么?还是别的?
答:(1)首先,一个软件要说服我成为他们的用户甚至为之付费,无非这样几个原因:或是产品的本身质量过硬,在业界堪称“一哥一姐”,让我用起来顺畅无比无法自拔;或者是软件的UI设计极其前卫,让我使用起来体验很好,使用之余又能够提升前端设计的“审美感”。看起来我的要求也不算高,然而,这几年我用过的IDE虽赶不上我走过的桥,但也为数不少了,最后让我沿用至今的还是耐看扩展性极强的VSCode、普通但功能齐全的Eclipse以及“美貌才华集于一身”的Idea。
(2)那么,这些软件的最终目标都是为了盈利吗?答案肯定的,世界级软件研发的背后少不了资本的推动,虽然软件是为了盈利,但盈利绝不是他们的唯一目的!就VSCode和Eclipse而言,下载和使用完全免费,Idea稍贵:一年149美元。他们的价格相对于我们的工资而言不算多,但最大的盈利在于赢得了消费者的依赖和心。
问题2
问:这些软件是如何到你手里的?(邮购,下载,互相拷贝、在线使用……)
答:目前网络如此发达,另外这三款软件又不像360那样附带全家桶属性,所以我都是通过官网下载使用的。
问题3
问:这些软件有Bug 么?又是如何更新新版本的?
答:1)任何软件,只要是人设计、人编写的,都不可避免会出现bug,就比如以前用Eclipse开发项目的时候,当时我用maven来管理包的依赖关系,但有时候需要使用到新的包,而这时候你引入的时候会发现,在左侧的树形目录中就会出现错误提示,而这个问题只有重启才能解决。当然,您会觉得这不过是一个小问题,是的,但是当你的项目结构够大够复杂的时候,你为解决这么一个错误所耗费的时间成本是巨大的。
(2)那么,像我这样的初级程序员都能遇到一些bug,软件开发商自然也不能忽视这样的问题,这也是为什么软件一两个月发布一个小版本改动,每年发布一个大版本,其目的就在于不断改进bug、提升用户体验。对于我在上面提到的这三款软件来说,很容易在官网下载到最新的版本,而且版本下方会说明相对于上一个版本而言解决了什么问题。
问题4
问:此类软件是什么时候开始出现的,同⼀类型的软件之间是如何竞争的?发展趋势如何?
答:这里比较一下Java程序员常用的两款IDE——Eclipse和Idea。2003年,Eclipse 3.0选择OSGi服务平台规范为运行时架构,2007年6月,稳定版3.3发布;2001年1月发布IntelliJ IDEA 1.0版本,同年七月发布2.0,接下来基本每年发布一个版本。显然,Idea走在Eclipse之前,但是事实是Eclipse所占的份额要高于Idea,原因无他:免费,Eclipse完全免费开放,对没有经济担当的学生来说实在是天上掉馅饼——张口咽就完事了,而Idea则主要在公司中深受欢迎,因为使用费用由公司而并非职员掏钱。
但要说发展趋势,我不是经济学家,无法从供求关系给出一个理性的结果。在我看来,Idea使用起来确实要比Eclipse顺滑很多,记得我从Eclipse转到Idea的时候,四个字形容——鸟枪换炮,虽然不可否认Eclipse也很优秀,但没钱就是没动力,版本更新那和Idea实在无法相提并论,所以我相信越来越多的程序员会扑向Idea的怀抱。
问题5
问:列举你在使用上述软件时观察到的“特殊”现象,它们和硬件有什么不同?这些能说明软件的某些本质特性么?
答:(1)就特殊现象而言,我认为三款软件共有的特征是,提高了我的工作效率,也一定程度上增加了我对于学习和编码的热情,而这是在硬件上我没法体验到的。记得以前做组元的时候,为了了解冯诺依曼机底层的工作原理,我们学习使用汇编,只为了验证小学生算法!虽然我承认了解底层原理对于我们的编程和日后成长都有不可忽视的帮助,但相对于使用软件而言,那体验可差的不是一点,我可以连续用软件3小时,但你要让我对着电路板,恐怕30分钟我都呆不下去。
(2)那么这些能说明软件的本质特性吗?我觉得是可以的,软件的本质就是把硬件的复杂逻辑隐藏起来,然后能够让用户傻瓜式地点击就行了,操作系统地初衷不就是这样吗,不是每个人都对底层逻辑感兴趣,那么Windows这样的世纪巨作实现了计算机的大众化。今天所讨论的三款软件,很大程度上让我增加了编码速度,都说大牛与普通程序员的区别是一个用记事本编码、一个用IDE,但我觉得很扯淡,不信你让两个人比一下敲HelloWorld,大牛之所以为大牛是因为他们的思维逻辑以及单身30年的手速,再说真正的大牛用的都是自己写的IDE。
问题6
问:个⼈第⼀次用此类软件是什么时候,你当时是几年级,班主任叫什么?在哪里,什么状态,当时的软件是如何得到的(买的正版,盗版,下载?)
答:我是上大学以后才接触到的编程,学习了一段时间之后,老师让我们用IDE来编程。当时还是大一的时候,还在被C语言的指针折磨的苦不堪言,特别是当我还没弄懂指针是何原理的时候,突然又来了一个指针的指针——彻底懵逼。我本科是在陕西的西北农林科技大学就读的,当时的班主任叫王淑珍,她人很好,很关心我们的学习和生活,还经常给我们发福利,然而大二的时候学院转手就给我们换了一个班主任,至于与王老师相比较,这么说吧,后一个班主任我本科期间就见过她三面,这还看在我是班干部的份上。扯远了,我们当时软件是统一在教辅平台上发布的,也算是另一个角度的盗版吧。
问题7
问:你是如何精通这类软件的?它给你什么好处,坏处?
答:想要精通编程,首先你得会用IDE,而方法无他:手熟尔。好处自不多提:提高编码效率、增加学习兴趣,另外还有装13。至于坏处,我想最大的坏处就是产生依赖,记得之前使用Eclipse最常用的快捷键就是代码提示“ALT + /”,到了Idea变了啊,按了半天没有反应,这才恍然我对IDE已经依赖到这种程度了。
问题8
答:你现在还用它么,或者是同类软件的不同品牌,为何?
问:当然,已经走上了程序员这条路想再另辟蹊径实在有点难度,再说不能让过去掉过的头发白掉啊。作为一名普通的程序员,优秀的IDE就如同剑客手上的倚天剑,我想,在我没有成长到独孤求败晚年时折枝为剑的程度之前,我仍然要用这些软件来剑斩bug。
问题9
问:这种软件再过10年,20年还会存在么,为什么?
答:长远的我猜不到,但我想,20年后它们是不会被淘汰的。首先,程序员这个职业被人工智能替代的难度相当之大,就说需求分析这一个方面AI就撑不住;其次,程序员的群体正在不断扩大,而且也会持续扩大下去,那么,有新的菜鸟加入进来,软件就有人使用,不过换一代人用罢了;最后,这些IDE自身也在不断成长,就Idea来说,基本上每年一个大版本改动,每次带来的新功能都要消耗好长时间才能消化。所以,20年时间消磨不了这些软件,甚至20年后再看,他们可能如同今天的Windows一般成为网络日常的必需品。