我想使用我最喜欢的编程语言 Golang 编写一个 3D 应用程序。但是,我不希望直接使用原生 OpenGL 作为图形前端,因为这将需要比我愿意容忍的更大的学习曲线。此外,我真的不想使用像 go:ngine 这样的 Golang 游戏引擎。

在做了一些研究之后,我发现了令人惊叹的 WebGL Javascript 库three.js,我非常感兴趣,以至于我在几个小时内完成了介绍性的 Javascript 课程。我根本不是真正的 Web 开发人员,所以我想知道主要用 Go 编写应用程序但使用three.js 前端对我来说有多实用。

一些具体问题:

  • 像这样使用 Javascript/three.js 作为 Golang 服务器的前端是否值得/实用?

  • 如果值得,我在哪里可以学习如何干净地整合两者?

  • 如果它真的不值得,我有哪些选择?

谢谢,任何回应表示赞赏。

您是否计划在 Go 中对几何进行操作,可能是实时的,并使用 Websockets 与您的 Javascript 层进行通信?

是的,这就是我现在的想法。我打算让我的(Golang)程序根据用户的一些参数生成顶点和三角形流。每个“结构”都是在用户提供参数后立即生成的(我将其视为 Javascript 前端的滑块 + 输入框)。

这是 Go 程序可能生成的示例,绘制在 GNUPlot 中:

http://img3.mukewang.com/611242000001ad3c06750669.jpg

如果是这种情况,您就有点低估了 Javascript。您应该使用 Javascript 编写大部分应用程序,并将 Go 用作经典的后端服务层,例如用户帐户、持久化状态等。

我可以这样做,除了以下原因:

  • 核心生成过程从根本上依赖于 Goroutines 和 Channels

  • 我对 Web 开发几乎一无所知,包括前端和后端

所以我想我是在询问这三种可能性之一的实现细节:

  • 使用 JS 编写大部分程序,包括生成器,并使用 Go 编写最小后端

  • 用 Go 编写大部分程序并将 JS 用作图形前端

  • 还有什么?