编程语言的组成
编程语言做为一种语言自然和英语这些自然语言有类似的地方.学英语时我们知道要先记26个字母,然后单词及其发音,接下来就是词组,句子.反正简单的说就是记单词,熟悉词法,句法.接下来就是应用了,听说读写.而使用相同语言的人大脑里都有个翻译器,可以把自己的想法翻译成语言然后用说或写表达出来,而听和读则把接收来的语言翻译成自己大脑能理解的思想.
那编程语言首先也是像英语一样会制定一些单词,然后词法,句法.像int ,char这样的类型关键字,或其他一些关键字就是单词.但这样的语言机器不认识的.所以就要个编译器来翻译成电脑能认识的01串.编译器就像大脑中的翻译器了.所以简单的说起来,一些语法规则加一个编译器就可以标志一门新的编程语言产生了.但语言内置的的都是些非常基本的操作,你要实现个啥复杂点的功能得写很多很多代码,于是有些人就先把很多常用的操作写好代码放那,你以后只管去调用.造好了很多轮子等着你用就行.这就是开发一些库(library)让你调用.在面向对象的语言中一般就叫类库,就是一堆堆的类嘛.如果类库足够强大,我们也可以叫作框架.反正我们可以简单的把框架理解为一些功能强大并且联系紧密的类库.
MFC和QT是C++中常见的GUI框架,而WinForm和WPF是C#中常用的框架,不过我们一般很少叫WinForm框架,可能直接叫图形控件类库更多点.反正只是个称呼罢了,爱咋叫就咋叫.另外WinForm与WPF(即Windows Form与Windows Presentation Foundation,用于windows的上的桌面应用开发)都只是提供了一堆GUI类库,而MFC与QT除了一堆GUI类库外还提供了其他很多类.功能更强大.
GUI的重要性
GUI即graphical user interface(图形用户界面).可能很多人觉得整那些页面是个没啥技术含量的活.但实际上很多时候用户可不知道你后台代码咋写,也不管你咋写.他们看到的只有UI,觉得页面看着舒服,用起来性能不是太差,用个专业点的词说就是用户体验很好,那这就是个好软件产品.像苹果公司的产品这么受欢迎其中很重要的一个原因就是UI做的漂亮,让人觉得很酷.我们开发一个软件产品时,如果站在开发者的角度(站其他角度可能不一样)一个软件无非就是保存数据,处理数据,数据间一些逻辑操作,然后通过一个好友的UI界面与用户交互(当然有少数后台软件是不需要UI界面的).
我们知道各种设计模式是满天飞,五花八门,但知名度最高的是MVC模式(model , view,controller).就很好的体现了这一点,model + controller是数据处理那一块,而view就是UI界面.实际上QT,MFC,WinForm,WPF都相当于简化的MVC模式,由三层变成两层.model +controller没做区分,弄成一层了.而view这一层则是单独弄出来,UI与与数据的逻辑处理代码的分离使得条理清晰,便于理解与维护.而且更重要的是很多UI控件都是做好了的,你直接拖来用不行.
另外你可能可能听说过STL(standard template library),标准模板库相当于把数据结构及对数据的操作(算法)这些常用的东东都做好给你调用,相当于把数据结构和算法那些思想实现成通用的代码供你调用.
为啥把这四个框架放一起来说呢,因为四者之前有类似的地方.相同语言之间的框架有相似那是毫无疑问,但实际上不同语言之间的类库也有类似的地方了.C++中的MFC和C#中的WinForm有点类似,而C++中的QT与C#中的WPF又有点类似
MFC与WinForm