在好学好教少儿编程教学平台上,同时存在两个C++编辑器,这是为什么呢?它们各自的应用场景是什么?本文主要来谈谈这个问题。
浏览器版本C++编辑器
首先要跟大家介绍的是好学好教平台上首先使用的C++编辑器,这是从一开始就有的编辑器,它的编译和运行都在客户端的浏览器上进行的,几乎不占用服务器资源。这也是好学好教平台在刚开始起步的时候采用的策略:能在客户端执行的操作,都放到客户端去,主要是为了节省服务器的资源(创业维艰,服务器资源就是金钱,能节省点就节省点)。那它具体是怎么做到在浏览器上进行C++程序的编译和运行的呢?其实它是通过在浏览器端运行一个简化版的Linux虚拟机来实现的。
因为它本质上是一个简化版Linux,所以除了可以在这个环境中编译运行C++程序外,还可以在这里使用一些常用的Linux命令,比如:ls/cd/mkdir/rm,甚至可以使用vi编辑器!
对于C++编程来说,它还有一个明显的好处就是,因为它运行了一个Linux操作系统,所以可以完整地在这个环境中执行编译、运行指令,并且可以使用命令行参数或者标准读写操作(scanf()/cin以及printf()/cout等),这是它的优势所在。所以它可以用于给学生讲解C++中的输入输出(scanf/cin/printf/cout)、文件操作(读写文件)、编译和运行C++程序的细节、Linux基本指令的使用等教学场景中。
但它的缺点在于,因为需要在浏览器上运行一个简化版Linux,所以对客户端机器的硬件配置要求比较高,当Linux启动的时候,电脑的风扇也基本就开始疯狂旋转,另外还有一个问题就是,因为浏览器的机制,它所占用的系统资源很有限,所以在编译的时候比较缓慢。
下面是浏览器版本的Linux环境的一些截图,可以看到除了可以让学员完整体验编写、编译和运行C++程序的过程外,还可以学习一些基本的Linux指令。
服务器版本C++编辑器(C++编辑器Pro)
随着客户的增加,很多客户在使用中也对浏览器版本的C++编辑器提出了一些意见,主要是速度问题,我们的开发团队将服务器端版本的C++编辑器提上了开发日程,经过近一个月的开发,在近日将新版的C++编辑器发布到好学好教少儿编程教学平台,为与原来浏览器版本的C++编辑器相区分,将新版的C++编辑器命名为“C++编辑器 Pro”,这个名字也寄托了开发团队对新版编辑器的厚望,希望它能够提供更加专业的编辑环境以及更好的用户体验。新版编辑器(C++编辑器Pro版)将C++程序的编译和运行过程,放到了服务器上,这样,客户浏览器就无需再承受较大的压力。它的好处是速度很快,并且可以支持更多的C++类库、更新的编译器等。而且通过新版编辑器,可以更好地支持自动评分(自动阅卷)的功能,方便老师在布置作业的时候,通过预设的测试用例,自动对学生作业进行评分,节省时间和精力。后续我们将持续对新版C++编辑器进行优化,进一步增强其功能,提升其速度。
服务器版本的C++编辑器适用于平时的不涉及文件读写、不需要详细讲解C++的输入输出等场合。它将输入数据和程序一起提交给服务器,服务器编译之后,自动将输入数据交给程序运行,并且将结果返回给客户端。它将编译、运行、数据输入等细节都隐藏起来了,好处是用户可以快速地进行编译和运行,快速得到结果,当然缺点也在此,可能让初学者对C++文件操作、输入输出等无法较好掌握,所以需要旧版的基于浏览器的C++编辑器进行补充。
关于自动判分功能,请参考这篇文章。