liklstar
发表于 2016-06-06 16:06
lxyscls 发表于 2016-06-06 15:38 static/image/common/back.gif
sorry,我不是做游戏开发的,我只能说,除非你是只是做很low的项目(譬如政府的某些项目),性能 算法肯 ...
系统软件需要考虑性能和算法,这很重要,好理解。应用软件,当然需要考虑性能和算法,否则,一堆垃圾是没人要的。的的确确,我也同意。
但是,系统软件的性能考虑和算法设计,主要出发点是如何发挥硬件本身的能力,同时减少系统软件管理各种软硬件资源的时间,提高服务效率。而应用软件的算法设计,是不是主要依赖业务逻辑。在满足业务逻辑的基础上,考虑如何更快地运行自身,以提高效率。手段之一就是使用OS、Lib提供的更加快捷的API?
yshwuxian
发表于 2016-06-06 16:15
系统软件、应用软件,这本来是多少年前的老概念,那时候软件数量非常少,可以这样分
但是,现在这个年代,再这样分类就有点老学究的味道了,too young, sometimesnaive!
建议楼主自己选10个计算机应用领域(比如web服务器、GUI、大型单机游戏/网游、网页技术、分布式系统、虚拟化、办公应用、多媒体播放器、数据库。。。。。。)
每个领域找几个代表性软件/工具/库,分析一下,看看需要不需要效率、算法、 API,各自有什么特点,不同领域的技术怎样相互交叉,相互融合,他们和操作系统关系密切不密切
途径:互联网,百度/ 谷歌
自己动手,胜读十年书
liklstar
发表于 2016-06-06 16:24
yshwuxian 发表于 2016-06-06 16:15 static/image/common/back.gif
系统软件、应用软件,这本来是多少年前的老概念,那时候软件数量非常少,可以这样分
但是,现在这个年代 ...
非常感谢你的观点!对于我来说,它的确有新意、有帮助、有启发。谢谢!我马上就去查查这些内容,思考思考。
你能否挑选一、两个你了解些的领域,给予我更多的帮助呢?咱们在这里多讨论讨论,好吗?
windoze
发表于 2016-06-06 17:07
回复 5# liklstar
他的意思其实蛮简单的,如果你手头的工具搞不定了,你就得把C++请出来,然后你就进入系统开发的领域了 2333333333
引申一下,如果连C++都搞不定了,你也别相信汇编神马的能帮多大忙,你该进入硬件领域了 {:qq23:}{:qq23:}{:qq23:}{:qq23:}{:qq23:}
liklstar
发表于 2016-06-06 17:15
windoze 发表于 2016-06-06 17:07 static/image/common/back.gif
回复 5# liklstar
他的意思其实蛮简单的,如果你手头的工具搞不定了,你就得把C++请出来,然后你就进入 ...
噢,原来如此!
我估计我不光这辈子,就是下辈子,也不会碰到连C/C++都搞不定的问题了?
:mrgreen:
yshwuxian
发表于 2016-06-06 17:21
liklstar 发表于 2016-06-06 16:24 static/image/common/back.gif
非常感谢你的观点!对于我来说,它的确有新意、有帮助、有启发。谢谢!我马上就去查查这些内容,思考 ...
刚刚码了20分钟,提交他说我没权限发url,然后都没了。。。
懒得再写,不举例子了,我只说要点。。
几乎所有领域有影响力的软件,都会尽力追求他所在技术层面最高效的实现方式(执行效率和开发成本往往是一对矛盾,肯定要做个折中,但不妨碍尽力追求高效)
提升效率的手段,有绕过内核,直接操作设备功能的;有用缓存等方法尽量减少系统调用次数的;有用各种并行、无锁算法的;有研究领域内更高效算法的,比如图像处理,自然语言处理等;有在用户态重新实现操作系统部分功能的。。。。。。
所以你所列的应用软件的三个特点都反映不出其本质。纯的“系统软件”和“应用软件”之间的中间技术太多太多,早已不能这样 二元划分。
liklstar
发表于 2016-06-06 17:34
yshwuxian 发表于 2016-06-06 16:15 static/image/common/back.gif
系统软件、应用软件,这本来是多少年前的老概念,那时候软件数量非常少,可以这样分
但是,现在这个年代 ...
嗯,我同意你说的,“如果只把软件分成系统软件和软件,可能过于简单了”。但是,那又该怎么分呢?
你说的“Web服务器”、“GUI”程序,算系统还是应用?好像应该算作建立在系统上的服务器软件?
大型游戏,由于其规模庞大,尤其是基于Web,很可能具有独立的系统软件成分?
分布式系统和数据库仍然是传统的系统软件?
不过,要了解它们,简单的“baidu”、“Google”肯定是不够的?这里的每一项,都是一个专有领域!就算是办公软件,现在也有“移动办公”了?
回到咱们的题目,这里面的任何一项都不是仅仅简单地用“性能”、“算法”来描述的?那么,传统的系统软件、传统的应用软件和大型服务软件之间,它们的开发有什么不同与共同?咱们来畅所欲言,好吗?
liklstar
发表于 2016-06-06 17:43
yshwuxian 发表于 2016-06-06 17:21 static/image/common/back.gif
刚刚码了20分钟,提交他说我没权限发url,然后都没了。。。
懒得再写,不举例子了,我只说要点。。
...
噢,谢谢你的观点!放眼望去,海阔天空,似乎确实没有那么单纯的系统软件和应用软件?
但是,仅仅采用了上述一种、两种技术的应用软件,能算得上系统软件吗?
liklstar
发表于 2016-06-06 17:48
yshwuxian 发表于 2016-06-06 17:21 static/image/common/back.gif
刚刚码了20分钟,提交他说我没权限发url,然后都没了。。。
懒得再写,不举例子了,我只说要点。。
...
是否可以这样理解:大型应用软件正在逐渐添加入系统成分?一整套完备的系统,也正在涵盖重要的应用?
qianguozheng
发表于 2016-06-06 19:23
这个我认为没有分得那么清晰,软件工程师就是来解决软件问题的。