我发现大家存在一个误区,混淆了教具和生产力工具的区别。
教具追求的是让学习曲线变得平缓,降低门槛,同时帮助学习者快速了解原理,为以后的继续学习与自我强化建立基础。
生产力工具追求的是多快好省地产出。
二者目的不同,自然设计方向迥异,好的教具往往不是好的生产力工具,反之亦然。
现代IDE确实很强大,是良好的生产力工具,但是它存在过分隐藏内部原理,功能繁多,学习曲线陡峭的问题,对大一学生尤其如此。
大一学生,仅仅具有高中知识,其专业知识极其匮乏,你直接上一个VS,这么复杂的IDE,光是安装配置,就可能出很多问题,学生一旦遇到能力之外的问题无法解决,挫败感极强。
我曾经去日本交流过一段时间,当时还是学生的我,对日本老师的做法非常不理解,但是这么多年过去,我慢慢领悟到为什么老师要这么做。
日本大学生也学习C语言,老师会给学生一个虚拟机,里面已经配置好了实验要用的所有东西。
虚拟机的好处是,直接屏蔽了操作系统问题,管你是windows 10还是windows 7,管你是macOS还是Linux,只要你装个VMware,我就能保证你的作业环境是一致的,学生可以完全专心于课程本身。日本的大学居然买了VMware的正版,按学号去领取license,这点真的要点赞,我当年学校老师都让我们自己去下盗版。
令我吃惊的是,这门课没有IDE可用,就是记事本,所有的缩进、排版、代码都要自己手敲。
连工具链都是老师自己做的,没错,编译器、汇编器,全是老师自己做的。
IDE上点一下运行就能做到的事儿,现在你要自己搞,预处理器、编译器、汇编器、链接器,每一步的输入输出,明明白白。
编译器优化?不存在的,就算你有个没用的变量,我都会原原本本给你汇编出来。要的就是原汁原味,让学生理解这一步步到底在干什么。
如果你嫌挨个运行命令麻烦,那你可以参考老师给的讲义,自己写一个脚本,把这几个工具串起来。
如果你觉得记事本不好用,那你可以参考老师给的讲义,自己做一个基于前缀文本匹配的代码提示器。
如果你觉得老师的编译器效率底下,你可以尝试修改老师的代码,优化下。
这些都是你自己的兴趣爱好,做了,老师会给你更好的分数,不做,也没关系,核心考察点在于C的语法、了解从编程到编译到执行的过程,你能了解这些,就很好。
这么一个学期下来,学生很容易就能入门,学习到的知识也很多,未来他们再面对IDE的时候,上手会极其容易,即使遇到问题,也会很容易解决。
我们很多大学上来就是VC6.0吧,有多少人遇到LNK2001错误然后一脸懵逼?
回到本题:
Borland C++ 3.1发布于1992年,确实是老古董了,很多C语言的新特性,都不支持。
但也正因为它功能简单,因此门槛较低,易于学习,之前被很多学校选中。
虽然我觉得它依然不是合格的教具,因为还不够简单,纯粹。
不要把教学和实际工业生产混淆了,这是两个领域。
大学要学四年是有道理的,不要急功近利。
系统而全面的培养,可以让学生受用一生,尤其是自主学习和解决问题的能力。
也正是这种系统的培养,让大学生有了比培训机构学生更高的上限和后劲儿。
培训机构就是急功近利的典型,完全速成,只教工具和框架的使用,批量制造出一堆堆人力编码器,几乎没有自我学习和发展的能力。一旦行业趋冷,这帮人是最早被淘汰的。
让你不需要写大项目就得到十大好处:
1)明白号称多牛的编译器都是不完美的
2)发现标准之外还有很大的趣味世界
3)体会到内存得省着用
4)见证交换文件
5)操作系统入门
6)实时程序的简单实现
7)可怜人的抢占式多任务实时软件设计
8)从软件到硬件速成
9)字符界面窗口和控件的快速开发
10)放弃治疗,走进 emacs/vim/mc+autotools+gdb/ddd+git 的和谐世界
用其它IDE?
VisualStudio 类 -- 掉进去,从此只看到井口那一片天。
优点估计就是老师会用这个,别的不会。
不过。。用现在新出的电脑把BC31的运行环境搭起来,这个过程也能学到点东西吧。用不用得上另说。
ps. 推荐这个, 在网页上跑的古代pc模拟器。你只要找到bc31的安装盘就能用了,省得折腾qemu之类了。
不少人连问题都没看明白就洋洋洒洒一大堆。题主问的是此IDE相对其它IDE的优点而已,没让你评论强制使用Borland C++3.1到底对不对,利弊如何。
先说此IDE的优点,就拿差不多同时期流行的VC++6.0来比较:
1)界面开发容易,几乎无学习成本,让学生更加关注C++语言本身(反观VC++6.0, 那一套反人类的MFC, 绝对是初学者的噩梦)
2)对C++语法支持完善。VC++6.0的一个知名bug, for循环中的变量作用域是整个函数,曾经让不少人认为是自己对C++标准理解不透吧,然而BC++3.1就不会做这么误人子弟的事。还有你在VC++6.0中写模版类套模版函数,编译会报错,让你怀疑自己是不是对模版有什么误解?然而BC++3.1会告诉你你理解得没错,傻B的是VC++6.0
仅从这两个方面来说,选BC++3.1作为课件没错。
以下说说对强制使用BC++3.1的看法,我认为一点没错。学的是C语言本身,又不是学IDE的使用,不停地追IDE干什么?学IDE如何使用的学习成本应该是越低越好,这点BC++3.1做得不错。至于C++11/14/17, 是大一C语言课学的内容么?C++98的内容之于大一C语言课都嫌多。唱反调的,你们应该问“为什么大一C语言课不教C++”,而不是“为什么C语言课用的IDE不支持C++2020,以至于挡着我装B了”?
至于说反对的原因是因为现在业界没有用BC++3.1的就更加可笑了,学生毕业工作,还不是碰到什么IDE就用什么IDE,实操经验跟一门C语言课用的是什么课件有什么关系?学的是C语言本身,以后学生爱在什么环境下用C语言有谁拦着么?BC++3.1下写的C代码,在其它编译器下编译不通过么?就拿写Linux的大神来说,当年学操作系统用的minix, 是业界流行的系统么?就算学校课件跟你装机小王子的电脑一样几个月就更新一次,紧跟时代步伐,等学生毕业仍旧是业界流行?可以一直吃下去?相反要是计算机系的学生,更新个IDE都不会,那基本算是个废人了。为什么总有人用网管的眼光来看待大学教育?
想来学校里有很多过时的电脑。这些电脑放任何地方都是没用了,除了在学校里继续发挥余热。怎么,你以为学校里的电脑跟你家的一样,两三年就更新一批,装最新最流行的IDE,淘汰下来的全部砸了?
其实有个恰当的比喻解释这个,就好像问以前99平的房子是二房,为什么现在会有人把99平的房子做成三房,买大点不行吗?
答案:因为大了,比较费钱。