西西河

主题:关于Linux的推广——普通用户篇 -- 万斤

共:💬381 🌺357
分页树展主题 · 全看首页 上页
/ 26
下页 末页
                          • 家园 简单地说,只要你不使用微软件提供的库,

                            一切 OK ,让人推荐的话,我推 GNU 的工具链,完善的文档和解决方案一应俱全,跟其它工具兼容的也很好,可以有各奇怪的搭配选择。

                            我要说的是,只要你遵循相关的规范,程序的移植没有你想的那么困难……

                          • 家园 移植没有想象中那么困难

                            也不一定要业界老大才能做。很多开源中小软件都是跨平台的。主要考虑就是如果一开始就打算跨平台,往往都选用一个跨平台的函数库作支持,比如楼下说的QT就是非常棒的一款。

                            即使一开始没有考虑跨平台,如果设计得当事后再做也不是很难。因为一般软件里不跨平台的部分多是界面部分还有一些底层支持,而大部分内部逻辑都是与平台无关的。软件设计的一个原则就是内部逻辑与外部界面分开。所以要移植只要把界面部分按要求重写就行了,内部可以原封不动。基本上就是个力气活。当然如果设计得不好,各部分代码混杂在一起自然就比较惨,但一般有点经验的都不会这样。

                            至于编译器等开发环境问题,只要你的代码不依赖某特定环境(比如MFC),不同平台下可以用不同编译环境来做。

                            • 家园 继续请教跨平台移植问题

                              1. 在windows和UNIX/Linux中,有什么通用的编译器和库吗?LS的QT大概算一个,还有什么其他比较有名的吗?(解释型的python,php之类除外)

                              2. 编译器和库可以混用吗?看起来QT也是CPP的,可以用MFC库吗?或者说VC可以用QT库吗?

                              3. 如果软件原先是用VC开发的,可以直接copy源代码到QT(或者VJ的copy到Linux下的java编译器什么的),然后换一下界面和底层的库调用函数就好了吗?还是语法结构什么的都得按QT的来?如果每句话都得重写,移植一个稍大的软件的体力劳动不比挖煤轻啊——或者有工具可以自动转换?

                              4. 虽然不喜欢做职业编程,但个人喜好编些小程序玩,有空请推荐一款容易上手,功能强大,支持平台多的free的编译器和库。QT?谢谢。

                              • 家园 个人观点

                                1. 在windows和UNIX/Linux中,有什么通用的编译器和库吗?LS的QT大概算一个,还有什么其他比较有名的吗?(解释型的python,php之类除外)

                                --------------------------------------

                                只要是兼容ANSI C/C++的编译器都可以用,常用的就是GNU C啦,当然Java也是通用的。

                                2. 编译器和库可以混用吗?看起来QT也是CPP的,可以用MFC库吗?或者说VC可以用QT库吗?

                                --------------------------------------

                                严格的说编译器和库没有必然联系,在windows下面只要符合PE结构,不管动态还是静态库都可以和编译器联合起来用。QT没有研究过,不好发表意见。

                                3. 如果软件原先是用VC开发的,可以直接copy源代码到QT(或者VJ的copy到Linux下的java编译器什么的),然后换一下界面和底层的库调用函数就好了吗?还是语法结构什么的都得按QT的来?如果每句话都得重写,移植一个稍大的软件的体力劳动不比挖煤轻啊——或者有工具可以自动转换?

                                --------------------------------------

                                不一定,如果你的source使用了plateform-related feature 都不可以直接移植。

                              • 家园 从基本的linux编程开始吧

                                编译器可以各用各的,不需要通用,因为语言是标准的。主要是调用的库不同。linux下的编译器主要是gnu系列(gcc,g++等)。跨平台库么除了QT外还有很多,gtk,wxWidgets什么的,但是QT我觉得是最好用的。

                                你这些问题,对于完全没有linux编程经验的人比较难解释,说详细了会很长,说简单了我恐怕你也仍然是一头雾水。我觉得你要是真有兴趣就学学在linux下编些小程序,等你积累了些linux/unix下的编程经验,到时候这些问题都自然明了。

                  • 家园 可移植性仅仅存在于像微软这样的系统,所谓

                    跨 OS 只是如何跨过微软的那个破门槛。

                    设计操作系统时不理会业界的规范,自成一体,再抱怨软件的可移植性差,那纯属自找。为什么我用 qt 写的程序,向 windoze 下移植就是换个编译环境的事?

                    另外, emacs/gvim 在 windoze 上的移植成不成功,你可以自己找个看看嘛。

                    • 家园 QT看起来是个好东西,但应用范围仍然很局限吧

                      我没玩过QT,不知道具体情况。但从wiki列出的使用QT开发的应用程序列表中,我熟悉的windows下的程序也就是google earth,opera,skype和virtualBox。其他的要么不能运行于Windows,要么少有人用。

                      为什么呢?我不知道,也许你可以告诉我

                      windows起家的时候,GNU刚刚被提出来,gate知不知道有这么个东西还是个问题,凭什么就支持这个“业界的规范”?再说,商业界从来就是胜者为王,gnu相比windows,你说应该windows迁就gnu,还是gnu迁就windows?

                      说到“业界的规范”,不知道在OS领域,这个规范是什么?有谁在遵循?

                      Linux抢不到客户,是其自身的问题。责怪windows不遵循Linux下提出的一个小小的基金会计划,似乎没有任何根据。再责怪软件(游戏)厂商不遵循这个计划,更是不靠谱了。。。。。

                      • 家园 GNU ,还有 Linux 遵循的都是 Unix 的规范

                        这个业界规范可是绝对元老级的……

                        所以说,用 windoze 的程序员真是可怜,饭碗都在盖子手里。

                        你先搞清楚 GNU 是什么东西再说做评价如何?关于软件的移植性 GNU 可是典范。简直牛头不对马嘴……

                        ======================================

                        补:

                        另外,操作系统的规范不止一个。

                        • 家园 UNIX体系结构是针对UNIX的,管不着Win和Mac

                          那我说从1985年的windows1.0到现在的2008也有规范,估计也没人会说错。

                          OK,我的记性不好,那么根据wiki和GNU官方网站:

                          GNU 项目创始于一九八四年,旨在开发一个类似 Unix ,且为 自由软件 的完整的操作系统: GNU 系统。

                          UNIX是一种广泛使用的商业操作系统的名称。

                          由于 GNU 将要实现 UNIX 系统的接口标准,因此 GNU 计划可以分别开发不同的操作系统部件。

                          1992年,Linux与其他GNU软件结合,完全自由的操作系统正式诞生。该操作系统往往被称为“GNU/Linux”或简称Linux。

                          GNU通用公共许可证(GNU General Public License)(英文通常以GNU GPL或是直接简短的以GPL表示),是一个广泛被使用的自由软件许可证

                          1. GNU设计的时候是根据UNIX的接口标准,与Windows何干?为什么Gates要理睬这个东西?

                          2. UNIX是一类OS的通用名称,不是规范。UNIX/Linux体系变种极多,也从来没有规范。你要说规范,甚至是“操作系统的规范”,请起码也得说ISO/IEC多少多少吧?

                          3. 系统移植性。正如依靠GNU,软件在UNIX/Linux体系内可以互通一样。在Windows家族内部,依靠“Windows规范”,软件的移植性也没有大问题。甚至在Windows家族内部,都不用重编译。这对商用软件绝对是大好事。

                          4. 再说一次,GNU只是个项目的名字,不是“规范”,更不是什么“系统组件”

    • 家园 在国内一个很大的障碍是

      Linux下面没有证券软件.

      不能看盘或者交易.如果有,我相信很多证券专业人士就是冲着安全这一点也要切换到Linux下面

    • 家园 Linux 对于不懂电脑的人来说简直就是噩梦

      用户体验太差了,看看现在的娱乐休闲,大众能用得到的软件有多少

分页树展主题 · 全看首页 上页
/ 26
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河