“Sun是太阳,Java是月亮。”这句话在新世纪的第一个年头传遍了我国大江南北,Java培训市场红红火火。然而,就在Java这一面向对象最为优秀的杰作被国内过程化宣传后,人们普遍简单的甚至错误的认为:“它不就是网络里的C++吗?编写一次,到处运行吗?它还不是由C++衍生而来吗?!”乃至人们在还不太熟悉但可能马上就要临近的C#面前显得如此的局促。中国人是不是又要陷入到学习计算机语言的“黑洞”中去呀?!
本人对Sun公司的Java编程基础一课在国内讲述过上百次,和许多IT界朋友和编程人员交流中发现:过程的思想,或过程化使用对象式技术是束缚我国IT界软件人员开阔思路的主要障碍,最终导致软件业落后。以往过程式编程思想的教科书不亚于文革时期主席语录的印刷发行量充斥了大学生的头脑,更有面向过程时期所产生的一些软件成就,挡住青年人熟悉上的路途。有些专家学者隐诲自己的真实意图,而提出旨在搅混思维方式的观点:面向过程和面向对象是解决问题的两种平等的途径,是条条大路通罗马。事实上,我们在授课中发现,Java编程思想是如此的轻易被人们所理解和熟悉,并和人类思维方式是极轻易沟通。我曾经在中学生中教他们Java技术语言,让他们来编制小型软件。我发现他们对该语言的理解要比原来过程式编程语言的理解快的多。可是对那些使用过“打着面向对象幌子,而干着面向过程勾当”的C++编程高手的朋友们就不是那么轻易了。对这些编程“高手”、软件“巫师”们好象只有用高额的培训费把他们集中起来争个面红耳赤、高低上下,才罢休。可是,随后更可怕的担心是他们会不加以分析把C++抛弃和简单的破坏其声誉。
由于本文篇幅所限,我在培训中的案例数不胜数,在此只能归纳以下几点拙见:首先,面向对象与面向过程不是平等解决问题的途径,过程蕴涵于对象之中,是物质的主流,但不是物质只集中在这一方面。面向对象才是辨证唯物观在计算机技术中真正的体现。各大应该为中国IT界培养高品质面向对象人才,就当前而言只有Java课程是最佳首选课件。从来没有面向对象的编程(OOP)字面上的直接翻译概念,而只有面向对象的编类、建包。OOP一词是衍生而来的,字面本质的含义是不存在的。第二,面向对象分析设计建模后,编码是和语言选择有关的,不是无关的。过程式语言仅仅想通过简单改良的手段,实现表面对象化是无法真正克服软件危机更深层次问题的。事物分为可计算和不可计算的观点约束了计算机的应用和发展。人脑对客观事物是可意识的,事实上,电脑也是如此,软件硬件交替互补的促进和发展已经证实这一点。各行各业只有依靠和计算机专业编程人员直接交流才能有软件的出台的时代一去不复返了。这种需求、计算、开发专业软件离不开忙得四脚朝天的计算机专业人士,甚至制约了人类意识对物质反作用。Java或类似Java技术思想会不断的深入各个领域,迫使一些计算机人士从操正业,专心研究计算机技术而不是计算机“照猫画虎”般的应用,从而计算机能更好地服务和应用于各行各业。这是我们社会现在最需要软件硬件互补的发展和促进方式。最后,我们揭开计算机科学神秘的棉纱,恢复它本来所应体现科学真理朴素面貌,它是最简单的科学,就是0、1的科学,有人说它是最复杂的科学,它是无数个0、1堆积在一起,一切有生有息的人类个体认知力都将在它的不断发展中被打倒,过程思维方式的人们会这样以为。而我认为计算机就是0、1最简单的科学,并不复杂,只要不要复杂地去看它。没有复杂的事物,只有复杂思维方式。但是,计算机学科和其它学科一样是布满聪明的,这是无可质疑的。线程是计算机里比较难以理解的概念,它不只是Java里才提到。但没有什么课程里能象Java课程那样把它如此清楚地展现给大家,线程在Java课程里是最为华彩篇章。
培训Java几个年头,种种感受难以一一言表,仅此抛砖引玉,以供各界有识之士共析共赏。最要紧的是对国外思想技术的了解和消化,之后我们来以批判的继续方式去宣传它。