上个学期我们上“Windows程序设计”这门课程,主要讲的是MFC,当然也包括GDI/GDI+绘图,同时普及了C++历史和STL使用等知识。我当时是比较反对讲MFC的,任课老师以前曾经教过VC6和VB6,现在为什么选择VC2005而不选择VB.NET呢?如果觉得VB.NET显得“幼稚”,那么可以选择C#。现在MFC已经是过时的技术,易用性比不上WinForm,等Windows Vista出来又有WPF了。
我反对讲MFC的理由是,培养一个熟练的MFC程序员和一个熟练的WPF程序员同样需要5年,然而从现在算起5年之后MFC肯定已经在收缩而对WPF程序员的需求将会增加。任课老师反对讲WPF的理由是不能够将Beta阶段的技术拿到课堂上来讲。
现在我反思过这个问题,对于还有2年就毕业的学生来说,他们是否拥有“成为熟练WPF程序员所需要的5年”是不确定的,因为2年后别人对他们的选择会在一定程度上决定了他之后的3年怎么过。对比一个不太熟练的MFC程序员和一个不太熟练的WPF程序员,显然2年后前者会比较受欢迎,或者称之为“更容易被接受和选择”。
站在学生的角度,一些人会希望学习MFC而另一些人则会希望学习WPF,这时候学校应该视乎学生的需求程度而开课,任何一门课程只要学生的需求相当学校都应该尽力去开。而“Windows程序设计”这是一门选修课,所以老师是完全有权自己选择讲授内容的,况且MFC的学习需求也不低。至于为什么不开WPF相关课程,就只能解释为需求不足或者学校无法满足此需求了。