{技术}{提醒}关于 [慎用MFC,慎用] 引发的,我该用什么样的类库的问题。

12 views
Skip to first unread message

Zhang Jiawei

unread,
May 12, 2009, 11:25:33 PM5/12/09
to pon...@googlegroups.com
我的第一篇博客会讨论大家的疑惑,从语言到库到整合开发环境来解答一系列的关于我该杂么开发desktop软件的问题。

我透露几点,不用歪曲你对C++的认识,因为C++从来都不是开发界面唯一的选择。基本上也是比较糟糕的选择。

库的选择,微软给非微软的外部程序员提供的库从来没有好用的,你知道他们内部用啥不 ?

整合开发环境的重要性,有了适合开发界面的语言和优秀的库,剩下的就是解决你的编译器,调试器,编辑器的问题了,包括代码浏览,跳转,重构,智能补全,所有这些都要考虑到你的整合开发环境中。而且基本上VS也是比较糟糕的IDE选择。知道非微软系的整合开发环境是咋样的不?

以上三点,语言,库,整合开发环境,三位一体。我的选择会颠覆你传统的编码认识,但最终会帮助你最高效率的写desktop。

详情先保密,期待我的第一篇博客,发表时间未定。

居振梁

unread,
May 13, 2009, 12:20:32 AM5/13/09
to pon...@googlegroups.com
我晕,好歹你也定了发博客的时间再发此宣言啊。
囧,最后来个“发表时间未定”

2009/5/13 Zhang Jiawei <gho...@gmail.com>



--
自学走了不少弯路,更浪费了太多的时间,寻找良师益友。
追求黑客精神和清心寡欲的心态。
http://wargrey.yo2.cn
http://wargrey.blogspot.com
主要兴趣:Unix/GNU Linux、人工智能、虚拟化
其他兴趣:心理学、自然科学、数学、武术、自然语言

SevenCat

unread,
May 13, 2009, 12:26:53 AM5/13/09
to TopLanguage
有的人喜欢做了再说,有的人喜欢说了再做。
我只是有点不太习惯以贬低别人来提高自己。
没人说c++是开发界面唯一的选择,但在很多项目中是最合适的选择。
颠覆大家传统的编码认识似乎口气也有点大了。

wing

unread,
May 13, 2009, 1:01:20 AM5/13/09
to pon...@googlegroups.com
先透露一下他们内部用啥吧,这个比较好奇。

--
wing
wing9...@gmail.com
Hope is a good thing, maybe the best of things.

Zhang Jiawei

unread,
May 13, 2009, 12:38:06 AM5/13/09
to pon...@googlegroups.com
广告贴只能这么发了。

否则杂么让你期待?

我也没说有人说c++是开发界面的唯一选择

2009/5/13 SevenCat <BastE...@gmail.com>:

Doyle

unread,
May 13, 2009, 1:20:52 AM5/13/09
to pon...@googlegroups.com
杂么是什么

2009/5/13 Zhang Jiawei <gho...@gmail.com>:

--

Charles Kuralt - "You can find your way across this country using
burger joints the way a navigator uses stars." -
http://www.brainyquote.com/quotes/authors/c/charles_kuralt.html

Linker

unread,
May 13, 2009, 2:01:24 AM5/13/09
to pon...@googlegroups.com
我主要是做服务器开发的。
平台也是Linux为主。
但是,界面库,也用过很多。主要是做工具用的。
包括 Tk, iuplua , wxPython,   wxWidgets/C++,  Qt,  .Net Form
综合各种需求来看:
Qt是最佳选择了。可惜学习曲线比较陡峭。
如果是从MFC过度来的,还是wx好一些。
如果熟python,推荐BOA,这个工具。(基于wxPython)
如果熟lua,推荐iuplua.
如果熟C#,推荐.Net Form.(通过Mono也可在Linux下运行)



2009/5/13 Zhang Jiawei <gho...@gmail.com>



--
Regards,
Linker Lin
linker...@gmail.com

Lee Duhem

unread,
May 13, 2009, 5:29:22 AM5/13/09
to pon...@googlegroups.com
2009/5/13 Zhang Jiawei <gho...@gmail.com>:
> 广告贴只能这么发了。
>

你写完了通知下不就完了,然后感兴趣的直接就可以去看。
提前广告似乎有些多余。

lee

千行代码

unread,
May 13, 2009, 8:55:27 AM5/13/09
to TopLanguage
炒作!!!!!!!!

不过很期待,快点啊

On 5月13日, 上午11时25分, Zhang Jiawei <ghos...@gmail.com> wrote:
> 我的第一篇博客会讨论大家的疑惑,从语言到库到整合开发环境来解答一系列的关于我该杂么开发desktop软件的问题。

> 详情先保密,期待我的第一篇博客,发表时间未定。

qiaojie

unread,
May 13, 2009, 9:00:49 AM5/13/09
to pon...@googlegroups.com
如果试一下WPF的话,我估计你对UI框架的认识会再次被颠覆。

2009/5/13 Zhang Jiawei <gho...@gmail.com>:

居振梁

unread,
May 13, 2009, 9:12:28 AM5/13/09
to pon...@googlegroups.com
2009/5/13 Zhang Jiawei <gho...@gmail.com>
语言,库,整合开发环境,三位一体。

提个建议,如果将“对开发者友好的操作系统”本身作为IDE会怎么样呢?期待能看到这方面的分析(既然很多重量级IDE都很“烂”的说)。

四不象

unread,
May 13, 2009, 9:25:24 AM5/13/09
to pon...@googlegroups.com
>“对开发者友好的操作系统”本身作为IDE会怎么样呢?
 
画好流程图,程序就自动生成了,全图形操作,不用写一行代码

Zhang Jiawei

unread,
May 13, 2009, 8:48:37 AM5/13/09
to pon...@googlegroups.com
我的博客不重要,我的思想纲要已经在这里了,能体会的人,自己做自己的选择,我到底用的是什么不重要。

2009/5/13 Lee Duhem <lee....@gmail.com>:

51isoft

unread,
May 13, 2009, 10:36:05 AM5/13/09
to pon...@googlegroups.com

想起了高中的能力风暴……

Zhang Jiawei

unread,
May 13, 2009, 11:29:44 AM5/13/09
to pon...@googlegroups.com
WPF 不会颠覆我,WPF 的理念早在 web 的 mvc 里被无数人用无数framework实现了无数遍。

何况,我一再提到,不管wpf 再如何先进,部署成本是他的致命缺点,5年内不会有质变。

2009/5/13 qiaojie <qia...@gmail.com>:

Zhang Jiawei

unread,
May 13, 2009, 11:35:07 AM5/13/09
to pon...@googlegroups.com
最适合程序员的操作系统自然是linux,所以即使在windows上,为了构建一个优秀的整合开发环境,大多数时候还是依靠跨平台的工具,例如,
cygwin, gvim, mingw-gcc, eclipse,
所以在哪个os上不是重点,重点是利用Linux理念和各种方法营造一个环境,有时,如果我发现没有,甚至需要自己开发。包括gvim
script, elcipse-plugin,目的就在于实现一个最优的整合开发环境。

2009/5/13 居振梁 <juzhe...@gmail.com>:

Zhang Jiawei

unread,
May 13, 2009, 11:36:37 AM5/13/09
to pon...@googlegroups.com
这方面的分析的确会有,不然显得我水平太低,严重不能满足大家的期待。

2009/5/13 Zhang Jiawei <gho...@gmail.com>:

qiaojie

unread,
May 13, 2009, 1:13:46 PM5/13/09
to pon...@googlegroups.com
当我看到WPF的时候,才让我知道以前的那些MVC framework是多么小儿科。

2009/5/13 Zhang Jiawei <gho...@gmail.com>:

missdeer

unread,
May 13, 2009, 2:45:52 PM5/13/09
to TopLanguage
这话说的,Linux上有的,现在Windows上哪个没有?

On May 13, 11:35 pm, Zhang Jiawei <ghos...@gmail.com> wrote:
> 最适合程序员的操作系统自然是linux,所以即使在windows上,为了构建一个优秀的整合开发环境,大多数时候还是依靠跨平台的工具,例如,
> cygwin, gvim, mingw-gcc, eclipse,
> 所以在哪个os上不是重点,重点是利用Linux理念和各种方法营造一个环境,有时,如果我发现没有,甚至需要自己开发。包括gvim
> script, elcipse-plugin,目的就在于实现一个最优的整合开发环境。
>

> 2009/5/13 居振梁 <juzhenli...@gmail.com>:
>
> > 2009/5/13 Zhang Jiawei <ghos...@gmail.com>

Doyle

unread,
May 13, 2009, 8:23:32 PM5/13/09
to pon...@googlegroups.com
楼主别再回复我们这些凡夫俗子的怀疑了
要打消我们的怀疑,就请快点把文章写出来
不然不过是个信口开河的大话者

2009/5/14 missdeer <miss...@gmail.com>:

--

Jay Leno - "Don't forget Mother's Day. Or as they call it in Beverly
Hills, Dad's Third Wife Day." -
http://www.brainyquote.com/quotes/authors/j/jay_leno.html

居振梁

unread,
May 13, 2009, 8:43:46 PM5/13/09
to pon...@googlegroups.com
澄清一下吧。看来误会的人很多,首先我不是要提起OS的口水战。我只说“开发者友好的操作系统”,并没有说一定就是Linux。
其次建议:用发展的眼光看问题,不要用老是用旧思想来思考问题,不是只有*inx才能称得上“开发者友好”。
我主要想表达的思想,在我刚来toplanguage,还是“战斗暴龙”的时候就提到过。
考虑到我的学习习惯,任何一个IDE都不能满足我所有的需求,同样任何一个IDE对我而言都有功能冗余,更要命的是,这些ide正越来越大(相信这点是很多人不能舒服的接受的)。于是我就在想,为何一定要去寻找适合的IDE,事实上也是,我们经常会使用其他工具来辅助ide,既然操作系统本身提供了让这些工具生存的环境,又何必一定要让它们整合到一个应用里去(直接以桌面作为“主窗口”),直接以独立形式运行就是了,编辑器是编辑器,编译器是编译器,调试器是调试器,负责各类测试的各斯其则,协同开发、版本控制等等等等,假设它们对项目的规范(比如目录结构、配置文件等)都有同样的理解。相信也有很多朋友喜欢混合编程,那被迫使用不同的ide时,你怎么想?

好吧,这只是我的构想,而且我自己就是这么做的,但是期待lz的文章里能从这个角度来分析,而变是拘泥于那个系统才是开发者友好的。谢谢!

2009/5/13 Zhang Jiawei <gho...@gmail.com>

最适合程序员的操作系统自然是linux,所以即使在windows上,为了构建一个优秀的整合开发环境,大多数时候还是依靠跨平台的工具,例如,
cygwin, gvim, mingw-gcc, eclipse,
所以在哪个os上不是重点,重点是利用Linux理念和各种方法营造一个环境,有时,如果我发现没有,甚至需要自己开发。包括gvim
script, elcipse-plugin,目的就在于实现一个最优的整合开发环境。

居振梁

unread,
May 13, 2009, 8:52:30 PM5/13/09
to pon...@googlegroups.com
补充一点,也无意引发CLI派和GUI派的口水战,只是就事论事,直接把操作系统作为IDE,K.I.S.S一下。

2009/5/14 居振梁 <juzhe...@gmail.com>

澄清一下吧。看来误会的人很多,首先我不是要提起OS的口水战。我只说“开发者友好的操作系统”,并没有说一定就是Linux。
其次建议:用发展的眼光看问题,不要用老是用旧思想来思考问题,不是只有*inx才能称得上“开发者友好”。
我主要想表达的思想,在我刚来toplanguage,还是“战斗暴龙”的时候就提到过。
考虑到我的学习习惯,任何一个IDE都不能满足我所有的需求,同样任何一个IDE对我而言都有功能冗余,更要命的是,这些ide正越来越大(相信这点是很多人不能舒服的接受的)。于是我就在想,为何一定要去寻找适合的IDE,事实上也是,我们经常会使用其他工具来辅助ide,既然操作系统本身提供了让这些工具生存的环境,又何必一定要让它们整合到一个应用里去(直接以桌面作为“主窗口”),直接以独立形式运行就是了,编辑器是编辑器,编译器是编译器,调试器是调试器,负责各类测试的各斯其则,协同开发、版本控制等等等等,假设它们对项目的规范(比如目录结构、配置文件等)都有同样的理解。相信也有很多朋友喜欢混合编程,那被迫使用不同的ide时,你怎么想?

好吧,这只是我的构想,而且我自己就是这么做的,但是期待lz的文章里能从这个角度来分析,而变是拘泥于那个系统才是开发者友好的。谢谢!

Zhang Jiawei

unread,
May 13, 2009, 8:38:39 PM5/13/09
to pon...@googlegroups.com
小儿科的东西遍地在跑,大儿科的东西只能供在那里拜拜。

何况, WPF 的 Application = Code + Markup 在 GTK 库里古已有之,也没啥好拜的。

扪心自问,让你写一个app, 你会用WPF吗,没有肯定回答前,不用这么拜。

2009/5/14 qiaojie <qia...@gmail.com>:

Zhang Jiawei

unread,
May 13, 2009, 8:58:18 PM5/13/09
to pon...@googlegroups.com
这么说吧,对于三位一体来说,语言是跨平台的,类库是跨平台的,整合开发环境也是系统无关的,我在windows下部署的一套开发环境,同样可以再mac,
linux上部署,所以也是OS无关。

不是只有*inx才称得上开发者友好,没错,因为OS无关。

2009/5/14 居振梁 <juzhe...@gmail.com>:

wing

unread,
May 13, 2009, 9:25:48 PM5/13/09
to pon...@googlegroups.com
是,这个部署成本,让我10秒钟就ban掉wpf了,而且如果仅仅就理念来说,flex+air也挺不错,web上的ui开发都挺不错的,WPF的飞跃还是对现有c++的ui而言,对于其他开发者,并不是什么新东西。

2009/5/13 Zhang Jiawei <gho...@gmail.com>:

--

qiaojie

unread,
May 13, 2009, 11:32:34 PM5/13/09
to pon...@googlegroups.com
WPF的设计绝对不是code+markup这么简单的,WPF把MVC提升到了一个新的高度,只需要定义data
bind就可以实现View和model的自动同步,template的引入让可以视觉元素相对于model完全独立的变化,还有很多新特性,不一一表述了。WPF的功能是非常强大,当然强大也不一定是好事,我们目前也处在探索和评估阶段,逐步的把WPF引入到项目工程中去。至于部署的话,因为我们的系统是专用系统,不存在这个问题。

2009/5/14 Zhang Jiawei <gho...@gmail.com>:

up duan

unread,
May 13, 2009, 11:43:52 PM5/13/09
to pon...@googlegroups.com


2009/5/14 qiaojie <qia...@gmail.com>

WPF的设计绝对不是code+markup这么简单的,WPF把MVC提升到了一个新的高度,只需要定义data
bind就可以实现View和model的自动同步,template的引入让可以视觉元素相对于model完全独立的变化,还有很多新特性,不一一表述了。WPF的功能是非常强大,当然强大也不一定是好事,我们目前也处在探索和评估阶段,逐步的把WPF引入到项目工程中去。至于部署的话,因为我们的系统是专用系统,不存在这个问题。

WPF的markup【xaml】个人感觉不够好,我还是觉得XForms+CSS【或者XSL-FO】会更灵活和可扩展一些,你说的template是指什么?

其中DataBind确实是亮点,但是这儿也有很多别的问题,很难一一描述,如果有兴趣,可以单独跟我谈谈。

WPF不是太强大,而是不够强大,其表现引擎和业务逻辑必须部署在同一个地方,虽然在开发的时候是分开的。但是现在的WebApp早都把表现和业务逻辑干净利落的分开了。你可以说WPF+WCF也可以把业务逻辑分开部署,但是那毕竟不是WPF关心的事情了。 

而且现在WebApp的开发都是基于开放的和实现极广的工业标准,WPF的开发呢?绑定在MS虽然不一定就是劣势,但总不能说是优势吧。能不绑定岂不是更好?

所以WPF并没有提供强劲的动力让人们迁移。

qiaojie

unread,
May 13, 2009, 11:53:51 PM5/13/09
to pon...@googlegroups.com
啊,你在跟我说WebApp,但是我们的系统是Client端的系统,应用领域不同,说不到一块去。
我可没说过WPF适合WebApp,WPF的设计目标也不只是为了WebApp,你拿WebApp来谈WPF不够强,
这个有什么意义?至少你也得拿silverlight出来比较吧?当然了,silverlight是不是适合WebApp这个不是
我关心的事情。


2009/5/14 up duan <fix...@gmail.com>:

up duan

unread,
May 14, 2009, 12:00:51 AM5/14/09
to pon...@googlegroups.com


2009/5/14 qiaojie <qia...@gmail.com>

啊,你在跟我说WebApp,但是我们的系统是Client端的系统,应用领域不同,说不到一块去。
我可没说过WPF适合WebApp,WPF的设计目标也不只是为了WebApp,你拿WebApp来谈WPF不够强,
这个有什么意义?至少你也得拿silverlight出来比较吧?当然了,silverlight是不是适合WebApp这个不是
我关心的事情。

我上面说的那些话,似乎没有明示或者暗示WPF应该去干WebApp吧。

你说WPF强悍,我说它不够强悍,举得例子是现在非常流行和普及的WebApp,这能引起什么误解呢?

你说WPF强悍没有前提和领域,所以我举出WebApp,不算过分吧。如果你说WPF在桌面应用中很强悍,那我可能也只能承认了呢是不是。

牵扯出silverlight确实有一点有意为之,但却是以我没有想到的方式出现的:) 

qiaojie

unread,
May 14, 2009, 12:13:42 AM5/14/09
to pon...@googlegroups.com
faint,你这纯粹是为了辩论而辩论,这样说下去就没意思了。

2009/5/14 up duan <fix...@gmail.com>:

Zhang Jiawei

unread,
May 14, 2009, 1:14:19 AM5/14/09
to pon...@googlegroups.com
你也承认你的系统是专用系统了,那我们就不用讨论了。基本可以忽略WPF这个选项.

2009/5/14 qiaojie <qia...@gmail.com>:

up duan

unread,
May 14, 2009, 2:41:24 AM5/14/09
to pon...@googlegroups.com


2009/5/14 qiaojie <qia...@gmail.com>
faint,你这纯粹是为了辩论而辩论,这样说下去就没意思了。

这你都看出来了?不简单啊。不过按照规则,你似乎犯了一个猜测别人意图的错误啊!

那我给你的实际说法呢?你怎么不答复?

>WPF的markup【xaml】个人感觉不够好,我还是觉得XForms+CSS【或者XSL-FO】会更灵活和可扩展一些,你说的template是指什么?

你觉得xaml比XForms+CSS好么?为什么?如果不好,那至少WPF的一部分不如现存的技术好了吧。WPF整体上的强悍也因此值得怀疑吧。

qiaojie

unread,
May 14, 2009, 2:50:43 AM5/14/09
to pon...@googlegroups.com
2009/5/14 up duan <fix...@gmail.com>:

坦白的说,我对XForms+CSS技术不了解,无法比较两者的优劣。

up duan

unread,
May 14, 2009, 3:00:46 AM5/14/09
to pon...@googlegroups.com
正好,我也不太清楚template是什么,你详细的描述一下这个。我们对比一下两者。

XForms是一个控制【控件】、事件、数据绑定的规范。它用来规定用户交互可能出现的各种控制。比如:Trigger【触发器,大多数用户交互术语中都把它叫做Button】、Select、Group等等。它们是抽象的,并不规定她们的外观,但是规定了它们在交互中的功能和作用。CSS是一个专业用来描述外观和展现的语言,现阶段描述的是控制的可视外观和可听外观。

举个例子吧。写一个XForms文件,规定出用户交互的元素和组合关系,规定出这些控制绑定的数据,你就可以提供不同的CSS文件来建立不同设备上的真正的交互界面了。一个CSS文件应用于拥有大屏幕的PC上,另一个用于只有极小分辨率的手持式设备商,再一个用于根本没有屏幕的声音设备上……。如此。

你觉得Template有这么强悍的能力么?你觉得WPF强悍的地方在哪儿?

2009/5/14 qiaojie <qia...@gmail.com>

qiaojie

unread,
May 14, 2009, 3:18:42 AM5/14/09
to pon...@googlegroups.com
哦,好吧,这些在WPF也都是有的。
Template是用来定义控件外观的,跟你说的CSS是一回事。在WPF你也可以抽象出控件的事件,
Trigger和对应的数据模型,然后用template来替换控件的外观,WPF里也可以定义Data
Bind,自动完成View和Model的同步(这里甚至不需要写一行代码),另外对事件的处理也是相当灵活的。在一些大的概念上我想2者是一致的,主要是看一些细节方面了。


2009/5/14 up duan <fix...@gmail.com>:

up duan

unread,
May 14, 2009, 3:46:33 AM5/14/09
to pon...@googlegroups.com


2009/5/14 qiaojie <qia...@gmail.com>

哦,好吧,这些在WPF也都是有的。
Template是用来定义控件外观的,跟你说的CSS是一回事。在WPF你也可以抽象出控件的事件,
Trigger和对应的数据模型,然后用template来替换控件的外观,WPF里也可以定义Data
Bind,自动完成View和Model的同步(这里甚至不需要写一行代码),另外对事件的处理也是相当灵活的。在一些大的概念上我想2者是一致的,主要是看一些细节方面了。 
 
我认为WPF的控件抽象级别比XForms低。可适应性差。
因为XAML自己直接描述了位置和外观,Template约略有CSS的意味,但是它【似乎】是普通的template机制,定义一个布局然后用具体的控件填充【或者控件都是固定的,只是绑定不同的数据】。

up duan

unread,
May 14, 2009, 3:46:58 AM5/14/09
to pon...@googlegroups.com
XAML不能用于可听的设备上吧。

2009/5/14 up duan <fix...@gmail.com>

Jack.Chu

unread,
May 14, 2009, 11:34:44 AM5/14/09
to TopLanguage
哎,还真有人捧,这楼主明显是属于“汉奥OS”那一类的人。

Zhang Jiawei

unread,
May 15, 2009, 1:25:35 AM5/15/09
to pon...@googlegroups.com
行行行,再不写,估计连爹娘都要骂出来了,周末上檄文。

2009/5/14 Jack.Chu <worki...@gmail.com>:

Atry

unread,
May 19, 2009, 6:47:34 AM5/19/09
to pon...@googlegroups.com
桌面的窗口管理和 IDE 中的 View 布局有相似之处,我们这里一个同事用的窗口管理器 awesome 就颇有 IDE 风格

2009/5/14 居振梁 <juzhe...@gmail.com>

邵帅

unread,
May 20, 2009, 12:14:34 AM5/20/09
to pon...@googlegroups.com
IDE存在的另一个意义是为了团队开发效率,统一的开发环境有利于沟通和诸多问题的解决。作为低层次开发人员来说IDE是很实用的。而且软件开发越来越流水线,这种统一便于廉价程序员的批量生产。

在 09-5-19,Atry<pop....@gmail.com> 写道:


> 桌面的窗口管理和 IDE 中的 View 布局有相似之处,我们这里一个同事用的窗口管理器

> awesome<http://awesome.naquadah.org/>就颇有 IDE 风格

techabc

unread,
Jun 10, 2009, 10:12:28 PM6/10/09
to pon...@googlegroups.com
正好在为GUI选型而苦恼,传说中的神作,可惜尚未得以拜读…… 

wing

unread,
Jun 10, 2009, 10:25:00 PM6/10/09
to pon...@googlegroups.com
这东西没有啥银弹,选型还是要自己去做对比,前期我们一个project也折腾很久,最终选定了,现在看前期折腾的时间还是值得,
因为开发效率很高,而且很适合我们的project,gui没有通吃的,要量体裁衣。。。

2009/6/11 techabc <tec...@gmail.com>:

--

Reply all
Reply to author
Forward
0 new messages