Mark Guzdial,受人尊敬的教授和 ACM 教育委员会副主席,表达了一些担忧,关于开源对计算机教育的影响。这些担忧是合理的吗?
他从一个非常戏剧性的立场开始
在我们试图扩大计算机领域的参与度之时,开源开发比商业软件开发更加封闭和更缺乏多样性。
指出开源项目的准入门槛通常比需要的要高,这当然是公平的,但称开源开发“比商业软件开发更加封闭”显然是、明显地、逻辑上、无可辩驳地错误的。
如果您想修改席德·梅尔的《文明》的源代码,您必须首先被席德·梅尔雇用。如果您想修改 Freeciv 的源代码,您只需去获取它即可。
当然,这不是 Mark 的意思。Mark 谈论的是开源开发的“文化”——获取代码是一回事,但对项目产生影响完全是另一回事。
在这方面,Mark 有道理。即使代码对任何人都是免费的,但成为开源项目的实际贡献者可能很困难且令人生畏。开源项目可以从降低这些障碍中获益匪浅,并且大多数项目在这方面还有很多工作要做。这是我每天都面临和抗争的问题。
然而,Mark 接下来提出的论点——商业开发经验为学生提供了本质上更好的入门体验——存在严重缺陷。
当学生发展成为专业专家时,他们经常参与教育工作者称之为合法外围参与 (LPP) 的过程。当您在一家公司开始捡垃圾(在外围做一些合法的事情),并在此过程中,听到正在发生的事情并弄清楚这家公司发生了什么时,这就是 LPP。学生可以通过执行与编写软件没有直接关系的任务,但与整个企业相关的任务,在公司开始软件开发。这些合法的外围任务充当进入该过程的垫脚石,例如编写文档或在可用性测试中运行受试者。
这是 Mark 论点的核心,令我着迷的是,他怎么能同时如此正确又如此错误,以及他如何误解了开源开发模型最明显的优势所在。
首先,让我们谈谈机会的广度。Mark 似乎假设每个学生开发者都有机会参与商业开发。这显然是不真实的。像佐治亚理工学院这样的精英学校可能为他们的大多数计算机专业学生提供这类机会——但其他地方呢?就此而言,对于佐治亚理工学院那些由于某种原因未能通过选拔的孩子们呢?除非你能保证地球上每个计算机专业的学生 100% 获得合作或实习机会(并且说实话,我们永远无法接近这个数字),否则总会有渴望成为学生开发者的学生根本没有机会看到商业代码库,或参与合法外围参与。
不过,他在 LPP 的重要性方面是完全正确的。
事实上:开源世界完全建立在合法外围参与之上,并且没有合法外围参与就无法存在。
让我们对 Mark 之前的声明进行快速的搜索和替换
当学生发展成为专业专家时,他们经常参与教育工作者称之为合法外围参与 (LPP) 的过程。当您在社区开始捡垃圾(在外围做一些合法的事情),并在此过程中,听到正在发生的事情并弄清楚这个社区发生了什么时,这就是 LPP。学生可以通过执行与编写软件没有直接关系的任务,但与整个项目相关的任务,在社区开始软件开发。这些合法的外围任务充当进入该过程的垫脚石,例如编写文档或在可用性测试中运行受试者或在论坛上帮助新手,或在邮件列表中提问,或提交或分类错误,或维护项目维基,或只是将软件投入使用以解决现实世界的问题。
嗯,这条信息看起来 可疑地让我感到熟悉。
如果我们采用 Mark 信息的内核——LPP 对于培养专业开发者至关重要——那么很自然地,我们通过尽可能多地为每个学生提供 LPP 的机会来获益,不是吗?
所有软件都有错误。所有软件都需要更好的文档。所有软件都可以从测试中获益。所有软件都提供了大量的 LPP 机会。
但只有开源软件提供了必要的访问权限,使 LPP 对每个学生都成为可能。
这正是我们在 人道主义 FOSS 项目(实际上在几个月前在 CACM 中专题报道过)或 UCOSP 项目等项目中看到的情况。这也是塞内卡学院对每个通过他们 CDOT 计划的学生所做的事情。在这里和那里,教授们开始弄清楚这个过程。
不幸的是,到目前为止,还没有很多教授有足够的信心深入开源开发的世界——这就是 Red Hat 启动 教授开源夏季体验 的原因,以便那些想冒险的教授获得一些支持。
当然,存在挑战。让学生深入参与开源并不容易——但它远没有大多数教授认为的那么困难,而且肯定不比让学生深入参与商业软件开发更困难。
Mark,您是否希望您的学生进行真正重要的可用性研究,并且可能改善全球数百万用户的生活?尽管您 相反的断言,但现在有开源项目 恳求 需要 您的 帮助。您只需与他们联系即可。
哦,还有,关于 这条推文
开源开发需要成长并变得对教育友好。
这是双向的,Mark。让我们一起合作,而不是各说各话。如果您在 SIGCSE 不太忙,也许您可以来 HFOSS 研讨会 并与那些非常关心解决这些问题的人亲自分享您的担忧。
40 条评论