首先,请记住,以上声明的作者正在谈论网站开发。因此,他担心演示文稿的开发,因此他认为Scala并不是一个不错的选择。
话虽如此,我在Web开发方面确实有很好的经验。我已经使用它至少工作了8年,其中5年是在数字代理机构中。
而且,是的,以我的经验,在表示层使用静态类型的编译语言可能会成为一个很大的障碍。内容需要不断更改,而不是业务需求。通常,这需要由不同的团队(“前端”开发人员)完成。他们通常对HTML,JavaScript,Web标准,CSS了解很多,但是对服务器端语言(如Java和C#)了解不多。他们还假设可以立即使用模板中的任何更改。它们不用于编译和键入错误。它们是正确的:静态类型的语言非常适合于苛刻,复杂的需求,例如数据访问和业务规则,但不适用于接口开发。
实际上,这就是使用特殊的和解释性的模板语言(例如Velocity)的主要好处之一。它的易用性,功能和灵活性足以满足表示层开发人员的需求。然后服务器端人员可以在其他地方自由使用严肃的,静态类型的语言...
但是,我也同意Scala有所不同。同时,它比Java的冗长得多,表达能力更强,我认为它可以用于表示开发-因此也许可以成功地用作模板语言。而且,如果还可以将其组合到Play之类的框架(每次更改后都会自动编译该网站),那么它可能就是IMHO的赢家。尽管如此,甚至Play都选择了Groovy式(动态)模板语言,但这并不是一个好兆头。
综上所述:Scala的问题与它被编译的事实更为相关。实际上,它的类型推断机制使您几乎忘记了它也是静态类型的。
(对我的英语感到抱歉。如果有什么不清楚的地方,请告诉我,我会设法解决。)
Button
when,它WebControl
包含您需要的所有信息以及所有控件都源自该控件。