问:“Software engineering, of course, presents itself as another worthy cause, but that is eyewash: if you carefully read its literature and analyse what its devotees actually do, you will discover that software engineering has accepted as its charter 'How to program if you cannot.'” 软件工程是不是教会不怎么会写程序的人开发软件?你的观点?
答:这句话出自Edsger Dijkstra——一位著名的计算机科学家,对计算机科学领域有深远的影响。这句话反映了他对软件工程领域的某些实践的批评。Dijkstra认为,软件工程的某些方面可能被误解为一种“如果一个人不会编程,那么他该如何编程”的指南,这可能意味着它在某种程度上降低了编程的门槛,而不是提升编程的质量和艺术性。
这种说法可能存在一定的争议,因为软件工程是一个广泛的领域,它涉及到许多不同的方面和技能,包括编程、项目管理、需求分析、测试等等。因此,不能简单地将软件工程的使命定义为教会不擅长编程的人如何开发软件。
我认为这种观点是有失偏颇的。虽然软件工程确实为那些不太会写程序的人提供了一些帮助和指导,但这并不是它的全部目标和意义。事实上,软件工程是一门涵盖广泛、深入的学科,旨在探究如何构建高质量、高可靠性的软件系统。它包括了一系列的方法、技术和实践,旨在帮助开发人员更好地管理复杂性、提高生产效率、减少错误和缺陷,并确保软件系统的可持续性和可维护性。
因此,我认为软件工程的目标并不是仅仅教会不会写程序的人如何开发软件,而是为所有开发人员提供一种全面、系统的方法论和框架,帮助他们更好地应对软件开发过程中的各种挑战。当然,对于初学者或不擅长编程的人来说,软件工程的一些基本原则和实践可以帮助他们更好地理解编程的本质和思想,从而更好地掌握编程技能。但这并不意味着软件工程的全部意义和价值就在于这一点。