当前位置: 技术问答>linux和unix
Unix编程和Windows编程的主要区别在哪里?
来源: 互联网 发布时间:2015-11-23
本文导语: 偶想知道Unix编程和Windows编程的主要区别在哪里?以及对未来的影响。 请各位大侠畅所欲言 | Windows,VC ... 你会越搞越讨厌, Linux,Unix 你会越搞越有趣。 呵呵,想不到我这两句话那么多人...
偶想知道Unix编程和Windows编程的主要区别在哪里?以及对未来的影响。
请各位大侠畅所欲言
请各位大侠畅所欲言
|
Windows,VC ... 你会越搞越讨厌,
Linux,Unix 你会越搞越有趣。
呵呵,想不到我这两句话那么多人引用,看来真的是大家的真实感受!说点我在其他方面的感受吧,
一、开发本质上的不同
绝大部分的情况下,Windows 下的开发只是对常见的、标准的和规范的技术应用的堆叠和调整。
比如你要搞个电子商务的 Web 应用。那么将有一大堆的早就为这个应用准备好的东西能着你,
包括现成的库、控件、中间件、方案、范例、专门的开发工具...数不胜数
甚至有专门为这些应用而设计的语言,比如 C#, Java 。
但是 Linux / Unix 下的开发,这样的情况几乎是不可能出现的,你要自己动手。
所以,很多的开源的项目甚至是纯 C 代码。
我看过一个大型的自动化工厂的德国西门子的生产控制系统,
运行于惠普 OpenVMS Unix 系统上,两百多万行的 C 代码,除了操作数据库的代码外,
其他的基本只是对系统内核和C库的调用。
二、应用的场合不同
正如上面所说,在标准的,规范的应用下,在Windows下开发,也许真的是便捷和“易用”的。
但是如果是非标准的技术项目,那么用 Windows 开发的难度就会陡然增加。
试试设想这样的一种情况,如果我们要为专门生产某种产品的车间开发一个自动化生产系统。
除了部署在服务器上的生产控制逻辑,以及标准的PLC之外,
极有可能还需要开发特殊的传感器和驱动器,以及他们的驱动程序。
这些东西可能是我们自己做的电路板,甚至连适用的芯片也找不到,
是我们用 PLD / FPGA 来实现的硬逻辑,
你的软件可能时时刻刻需要和你自己定义的硬件时序逻辑打交道...等等
凡此种种情况,如果用 Windows , 他在中间就成了个很麻烦的黑箱子!!!
无异于等同自杀,也许这样说有点过分:)但是我的感受就是这样。
这也是为什么很多嵌入式系统都采用 Linux 和开源系统的重要原因。
三、开发手段、模式和对开发者的素质要求不同
我记得我是九十年代中期的时候弄到一张国外的二手Linux光盘,
别见笑,那时候光盘可是很少很贵的哦!!!又没有资料,又没有上网。
费了九牛二虎之力,终于在我的奔腾100的机器上装好了 Linux, 呵呵。
那时候,可比现在难多了!!!
那么多年来,我听说过的试图将 Linux / Unix 的使用和开发变得“易用”的种种项目和尝试,
基本都以失败告终。大家不见这个论坛上问得最多的贴可能是类似
“ Linux 上有什么好用的 IDE 开发环境”这样的帖子。
但是这么多年来,Emacs / Vim 、GCC,GDB、Make ...仍然是唯一的开发模式。
为什么呢?就是这些工具链提供了可能是IDE工具无法提供的简捷,强大,灵活功能,
以及几乎是无限的伸缩性。
譬如,gas, gld 可通过 LinkerScript 定义 Memory Layout, Sections 等手段来精确控制内存布局,
甚至每一条机器指令的地址,只要你愿意这样做就行。这当你的 CPU 还是一片裸片的时候,
或者是你要精确控制其驱动行为的时候很重要。
我还不知道“好用”的 Visual Studio 能不能这样做,至少是我还没学会。
(那位兄弟知道的,在楼下指教一下。)
当然了,Visual Studio, ADS 之类的 IDE 环境会有一大堆的模板,预案,预设项给你选择。
但是这些以模板,预案为基础的“知识”,
一旦离开了那个预案和模板指向的平台和环境,立即作废!!!
强大、灵活又“易用”的工具,这个世界上是没有的。
四、文化的不同
我经常看到的另外一种帖子就是“做 Linux 开发是否可以月薪过万?”
也经常看到类似的培训广告。其实只要心理成熟的人都知道,
一个人的收入高低,和他的技术水平和技术方向并无多大的关系。
Linuz 和 Stallman 也没几个钱,但你敢说他们比 Bill.Gates 和 Sergey. Brin 的能力差?
我目前使用的发行版是 Gentoo Linux, Gentoo 的创始人甚至还开过募捐会,募集捐助,以维持家用。
所以,如果有谁打算将功利的目的放在 Linux 上,那么从现在开始就放弃吧。
Linux 是人类世界大同理想的一个最好实现,它的价值在于她的自由和民主的精神!!!
只要他愿意,谁都可以“发行”他自己的思想,确实是好的,就会被大家接纳。
他解决问题的思想和算法就可以留存万世,无须任何人的签字批准。
我之所以喜欢 Linux ,除了我的开发工作需要之外,
重要的是我喜欢它的无政府主义状态,呵呵。
以上仅是我个人的经历的一些感受,应该是很不全面的,楼下的兄弟接着补充吧。
Linux,Unix 你会越搞越有趣。
呵呵,想不到我这两句话那么多人引用,看来真的是大家的真实感受!说点我在其他方面的感受吧,
一、开发本质上的不同
绝大部分的情况下,Windows 下的开发只是对常见的、标准的和规范的技术应用的堆叠和调整。
比如你要搞个电子商务的 Web 应用。那么将有一大堆的早就为这个应用准备好的东西能着你,
包括现成的库、控件、中间件、方案、范例、专门的开发工具...数不胜数
甚至有专门为这些应用而设计的语言,比如 C#, Java 。
但是 Linux / Unix 下的开发,这样的情况几乎是不可能出现的,你要自己动手。
所以,很多的开源的项目甚至是纯 C 代码。
我看过一个大型的自动化工厂的德国西门子的生产控制系统,
运行于惠普 OpenVMS Unix 系统上,两百多万行的 C 代码,除了操作数据库的代码外,
其他的基本只是对系统内核和C库的调用。
二、应用的场合不同
正如上面所说,在标准的,规范的应用下,在Windows下开发,也许真的是便捷和“易用”的。
但是如果是非标准的技术项目,那么用 Windows 开发的难度就会陡然增加。
试试设想这样的一种情况,如果我们要为专门生产某种产品的车间开发一个自动化生产系统。
除了部署在服务器上的生产控制逻辑,以及标准的PLC之外,
极有可能还需要开发特殊的传感器和驱动器,以及他们的驱动程序。
这些东西可能是我们自己做的电路板,甚至连适用的芯片也找不到,
是我们用 PLD / FPGA 来实现的硬逻辑,
你的软件可能时时刻刻需要和你自己定义的硬件时序逻辑打交道...等等
凡此种种情况,如果用 Windows , 他在中间就成了个很麻烦的黑箱子!!!
无异于等同自杀,也许这样说有点过分:)但是我的感受就是这样。
这也是为什么很多嵌入式系统都采用 Linux 和开源系统的重要原因。
三、开发手段、模式和对开发者的素质要求不同
我记得我是九十年代中期的时候弄到一张国外的二手Linux光盘,
别见笑,那时候光盘可是很少很贵的哦!!!又没有资料,又没有上网。
费了九牛二虎之力,终于在我的奔腾100的机器上装好了 Linux, 呵呵。
那时候,可比现在难多了!!!
那么多年来,我听说过的试图将 Linux / Unix 的使用和开发变得“易用”的种种项目和尝试,
基本都以失败告终。大家不见这个论坛上问得最多的贴可能是类似
“ Linux 上有什么好用的 IDE 开发环境”这样的帖子。
但是这么多年来,Emacs / Vim 、GCC,GDB、Make ...仍然是唯一的开发模式。
为什么呢?就是这些工具链提供了可能是IDE工具无法提供的简捷,强大,灵活功能,
以及几乎是无限的伸缩性。
譬如,gas, gld 可通过 LinkerScript 定义 Memory Layout, Sections 等手段来精确控制内存布局,
甚至每一条机器指令的地址,只要你愿意这样做就行。这当你的 CPU 还是一片裸片的时候,
或者是你要精确控制其驱动行为的时候很重要。
我还不知道“好用”的 Visual Studio 能不能这样做,至少是我还没学会。
(那位兄弟知道的,在楼下指教一下。)
当然了,Visual Studio, ADS 之类的 IDE 环境会有一大堆的模板,预案,预设项给你选择。
但是这些以模板,预案为基础的“知识”,
一旦离开了那个预案和模板指向的平台和环境,立即作废!!!
强大、灵活又“易用”的工具,这个世界上是没有的。
四、文化的不同
我经常看到的另外一种帖子就是“做 Linux 开发是否可以月薪过万?”
也经常看到类似的培训广告。其实只要心理成熟的人都知道,
一个人的收入高低,和他的技术水平和技术方向并无多大的关系。
Linuz 和 Stallman 也没几个钱,但你敢说他们比 Bill.Gates 和 Sergey. Brin 的能力差?
我目前使用的发行版是 Gentoo Linux, Gentoo 的创始人甚至还开过募捐会,募集捐助,以维持家用。
所以,如果有谁打算将功利的目的放在 Linux 上,那么从现在开始就放弃吧。
Linux 是人类世界大同理想的一个最好实现,它的价值在于她的自由和民主的精神!!!
只要他愿意,谁都可以“发行”他自己的思想,确实是好的,就会被大家接纳。
他解决问题的思想和算法就可以留存万世,无须任何人的签字批准。
我之所以喜欢 Linux ,除了我的开发工作需要之外,
重要的是我喜欢它的无政府主义状态,呵呵。
以上仅是我个人的经历的一些感受,应该是很不全面的,楼下的兄弟接着补充吧。
|
Windows,VC ... 你会越搞越讨厌,
Linux,Unix 你会越搞越有趣。
Windows感觉设计的很臃肿
而LINUX则运行的很快,它下面的软件也是!
而且很多软件你可以直接拿过来看源代码,在WIN下面可能不行
这就是开源的力量,让你快速进步!
Linux,Unix从一开始就设计的很高效!
Linux编界面应用程序也非常方便的
可以使用Glade或Qt Designer来设计,很简单高效
编译程序时GCC更是比其他编译器高效至少20~30%
为什么不用Linux来开发呢?
|
Windows,VC ... 你会越搞越讨厌,
Linux,Unix 你会越搞越有趣。
由于不开源和商业炒作的需要,
其实很多东西是几行 C 代码的问题,
但是 Windows 就要杜撰出很多的新技术,新概念让你去学习,
你就得拼命的去理解和“学习”这些所谓的信技术,
像你中学物理常做的电路黑箱题,
实际上学习的难度要会比开源的大得多。
举个例子,
我曾经想在一个项目中引用微软的正则表达式库去检查用户的输入,
但是当一有非英文字符的时候就有问题,浪费了我很多时间。
只好发 email 到微软新闻组,得到的答复是:
“这是一个已知的大 bug , 并且不打算再改进,
你应该将应用迁移至 .Net 平台。”
Linux,Unix 你会越搞越有趣。
由于不开源和商业炒作的需要,
其实很多东西是几行 C 代码的问题,
但是 Windows 就要杜撰出很多的新技术,新概念让你去学习,
你就得拼命的去理解和“学习”这些所谓的信技术,
像你中学物理常做的电路黑箱题,
实际上学习的难度要会比开源的大得多。
举个例子,
我曾经想在一个项目中引用微软的正则表达式库去检查用户的输入,
但是当一有非英文字符的时候就有问题,浪费了我很多时间。
只好发 email 到微软新闻组,得到的答复是:
“这是一个已知的大 bug , 并且不打算再改进,
你应该将应用迁移至 .Net 平台。”
|
Windows,VC ... 你会越搞越讨厌,
Linux,Unix 你会越搞越有趣。
同意。
我觉得是windows太多的界面因素造成的,让人觉得很烦。
而linux可以让你专注在算法和系统,这些东西都很有趣,如果让你在linux下做界面,我想你也很快会讨厌的,呵呵
Linux,Unix 你会越搞越有趣。
同意。
我觉得是windows太多的界面因素造成的,让人觉得很烦。
而linux可以让你专注在算法和系统,这些东西都很有趣,如果让你在linux下做界面,我想你也很快会讨厌的,呵呵
|
UNIX用于生产环境居多,此系统占据大多数企业级服务,并以稳定和高性能著称;windows积极攻打Unix的天下,但性能跟unix还是有一定差距。
两者的程序开发过程基本一致,但支持的标准有一定差异。
Unix开发多在字符界面下完成,而windows开发是在图形界面下完成(一般情况)。
两者的程序开发过程基本一致,但支持的标准有一定差异。
Unix开发多在字符界面下完成,而windows开发是在图形界面下完成(一般情况)。
|
Windows,VC ... 你会越搞越讨厌,
Linux,Unix 你会越搞越有趣。
说的好!!!俺现在也是在搞Unix编程,发觉越来越有意思了!!!
Linux,Unix 你会越搞越有趣。
说的好!!!俺现在也是在搞Unix编程,发觉越来越有意思了!!!
|
好贴~