7

我很欣赏这个问题可能由于其开放式性质而被关闭,但我仍然很好奇。

如果我想使用静态类型语言开发一个跨平台的 Web 应用程序,我的选择是什么?我知道 Mono 和 Java,但还有什么?

(当我说跨平台时,我指的是 Windows 和至少一种常见的 Linux 风格)

4

5 回答 5

4

您可以对客户端和服务器部分使用单一语言:

  1. 爪哇
  2. C#
  3. 谷歌的围棋
  4. 斯卡拉
  5. GWT(Java 框架)
  6. Haskell 网络框架
于 2012-05-17T11:29:23.850 回答
3

有几个高性能的 Haskell Web 框架强调强大的静态正确性:

目标是依靠类型系统来提供高度优化的代码,并且运行时失败的可能性为零。

引用 Yesod 网站:

将运行时错误转化为编译时错误

Yesod 相信让编译器成为你的盟友而不是你的敌人的哲学。我们尽可能使用类型系统来强制执行,从生成正确的链接,到避免 XSS 攻击,再到处理字符编码问题。一般来说,如果您的代码编译,它的工作原理。而不是到处声明类型,而是让编译器通过类型推断为您找出它们。

于 2012-05-17T11:34:31.857 回答
2

如果您的意思是静态类型,那么不幸的是没有那么多选择。Google 的Go语言似乎开始向 Web 应用领域发展(Google 的 App Engine 和GoWeb等项目都支持 Go ),但这些努力可能还不是很成熟。

Scala可能是另一种可能的选择。虽然它也在 JVM 上运行,但由于语言的高级特性(参见例如Lift),它的 Web 框架非常不同,可能值得单独看一下。

于 2012-05-17T11:31:09.523 回答
2

除了 Java 和 C#(通过 mono),您还可以使用
Wt (C++ Web Toolkit)形式的(现代)C++ 。现在 C++ 的 C 向后兼容部分不是强类型的,但是 C++ 程序是类型安全的。

如果你想要真正强大的类型安全,你可以使用 Haskell 和Yesod。Yesod 的目标是使用强类型来防止 Web 应用程序编程中的常见错误。例如,URL 是经过类型检查的。如果不提供正确的参数,您将无法构建应用程序内链接。渲染网页时用户内容的转义是另一种情况,其中使用 Haskell 编译器确保字符串在包含在渲染页面中之前正确转义。

于 2012-05-17T11:36:38.467 回答
1

我相信Ruby是强类型的,所以Ruby on Rails是一个不错的选择。

于 2012-05-17T11:20:52.647 回答