很高兴苑伟民老师邀请我为他的新书作序。作为MATLAB的铁杆粉丝,使用MATLAB编程来解决科研中的实际问题早已是家常便饭。编程的目的在于化繁为简,用户往往并不关心如何编写代码,而是关心程序所能实现的功能。实现脚本功能封装的最佳途径就是图形化用户界面开发(即GUI开发)。MATLAB GUI开发作为MATLAB编程的重要组成部分,是联系用户与MATLAB代码的桥梁。了解MATLAB GUI开发的读者应该知道,GUIDE是MATLAB的GUI开发的基石,通过它可以搭建出各式各样的应用程序框架,再通过回调函数实现整个应用功能。当然,除了GUIDE外,也可使用uicontrol等UI系列函数实现纯代码的GUI开发。不过随着MATLAB 2016a的发布,全新的应用开发工具App Designer正式面世,同时也宣告了属于GUIDE的时代即将终结!

相较于GUIDE,App Designer有着本质的不同:前者属于面向过程编程,而后者属于面向对象编程;前者基于Java Swing开发,后者则是基于更为开放的Web应用技术开发,如JavaScript、HTML和CSS等,这也使得用App Designer开发的应用更易于Web部署。此外,GUIDE所提供的组件相对单一,功能有限,若要实现高级应用需要较扎实的Java Swing编程功底,而App Designer所提供的组件各式各样,且随着MATLAB的迭代更新,App Designer组件的内容和功能也必将日新月异。

虽然市面上介绍MATLAB编程的书籍琳琅满目,但专注于MATLAB GUI开发的书籍屈指可数,且多半侧重于使用GUIDE来做GUI开发。App Designer作为新版MATLAB应用开发的首推工具,将逐步取代GUIDE。因此,对于想要学习MATLAB应用开发的读者,建议直接学习App Designer。尽管App Designer已面市几年,但系统介绍App Designer开发的专业书籍少之又少,而渴望系统学习App Designer开发的读者与日俱增。为了满足大家的求知欲,让大家能够轻松愉快地搞定App Designer开发,苑伟民老师结合自身多年的MATLAB编程经验及丰富的App Designer实战开发经验汇著成本书。

即便对App Designer有所了解,但从头到尾看完本书后,我顿然有种醍醐灌顶、茅塞顿开的感觉。从MATLAB基础编程到App Designer组件应用,再到专题讨论,案例详实、图文并茂,即便是从未学过MATLAB编程的读者学习本书也不会感到吃力。不过,正如前面所讲,App Designer是面向对象编程,可惜的是书中缺乏MATLAB面向对象编程的相关知识介绍,如果添加,那将是锦上添花的事。

巴山(“matlab爱好者”公众号创始人)

2022年1月1日 于重庆