整个IT产业和一个大型软件一样,都是分层的。底层是硬件,CPU,内存,硬盘,网络。上面一层是OS,他负责管理各种硬件资源,需要和CPU打交道,充分利用CPU提供的能力,再管理好各个外部设备,为再上层的应用软件提供编程接口。OS能够提供的其实都是标准接口:进程管理,文件读写,内存分配,网络处理,中断处理,基本上是这些了。在OS只上,有一些软件相对底层,比如DB,Cache,WebServer,浏览器等。所谓底层有两个含义,一是他处理业务比较有共性,从业务角度看更加抽象,比如说DB保存一条记录,可以是任何业务,比如可以是订单,可以是用户数据,可以是文章,可以是流水log。但是他并不关心这些,他只需要关心,高性能,可靠性。另外底层的软件都会有一些比较复杂的算法,因为他更多在处理数据本身,数据处理要求高效的算法。所以底层软件的算法是比较复杂的。
那么再上一层就是应用软件,无论是ios, android, web,其实大部分会处理CRUD的问题。只是看谁能更好的维护代码,谁能有更好的交互体验。也可以说是,谁长得漂亮,谁就有优势。当然长得好看是一方面,另外就是能否有好的功能,好的内容。因为应用软件在业务处理上比较类似,而且实现方法比较多,所以除了开发语言很多,还有很多开发框架,这些开发框架也带来了很多学习成本。