宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

作为SweetHome3D的开发者,Emmanuel Puybaret从未想过他的开源Java项目会像它那样受欢迎,但随着时代的发展,浏览器中的Java变得多余,给他留下了一个庞大的用户社区,没有可依赖的技术。在这次采访中,他描述了接下来的进化步骤,以及对所有Java开发人员来说至关重要的一课。

请描述一下启动Sweet Home 3D的背景</我叫伊曼纽尔·普巴雷特。多年前,我的教育是航空和计算机科学。我在90年代开始从事开发工作。几年后,我决定创办一家自己的公司,因为我对我想开发的小型软件有一些想法。

I在21年前开始开发eTeks,从那时起,我一直在开发三个开源软件。除此之外,我还是一名教师。我的专业是Java语言,尤其是。我有机会选择了当时非常流行的语言,因此我可以找到更多的工作和培训,最后我写了两本关于Java的书。

如果我说这些书,那是因为目前的主要故事是Sweet Home 3D,这是我开发的最后一款开源软件。这是我2005年写的一本书中的一个案例研究,我用这本书来解释这项技术。

这个小软件帮助人们设计他们的房子。我认为这是一个好主意,因为它是可视化的,屏幕上可以显示各种各样的Java组件,可以很有趣地解释。

这本书是关于Swing的,Swing是Java技术的一部分,它允许人们管理程序的用户界面,即屏幕、图形以及他们想向用户展示的任何东西。

写这本书花了我大约一年的时间,取得了相当大的成功,但它旁边的应用程序吸引了更多的关注,所以我继续开发并添加了更多的功能。

由于它是开源的,Linux世界中的一些人对它感兴趣,因为那里没有这种应用程序。越来越多的人对此感兴趣,并要求提供更多我认为值得投资的功能。几年后,我越来越多地为这个应用程序工作,不再像以前那样经常在外面工作。有时候并不容易,但我真的很开心。我可以与所有偶尔帮助我沟通、设计新对象、帮助论坛用户、改进软件并将其翻译成28种语言的人合作。
Sweet Home 3D每天下载10000次。它被用于学校和其他各种情况,其中一些记录在Sweet Home 3D博客中。警察用它来模拟犯罪现场。当然,我们的大多数用户都使用它来设计他们的家,我希望他们最终能得到一个好的结果。

你是如何从一个小型开源软件转变为一个自我维持、货币化的企业的

在开源中,许多人试图通过销售服务来谋生。有时候,你建议的服务有点复杂,你需要一些帮助来适应自己的需求。如果你想全天候提供这些服务,就需要大量资源。

由于我经营一家非常小的公司,我不确定它会变成多大。Sweet Home 3D发布所依据的GNU GPL许可证要求人们在同一许可证下发布他们在软件中所做的修改。那些希望保留专有修改的人可以在特殊许可下进行。

那是我试图在网上赚钱,并在软件方面赢得一些工作,但这还不足以养活我,所以我试图在安装过程中添加一些广告,但人们一点也不喜欢。我很快就把它拿走了。

最后,我决定在Mac app Store和Microsoft Store等应用商店上销售该软件。那些在那里获得该软件的人享受了一个特殊版本,其中包含了更多的物品和图像,他们可以在设计房子时使用这些物品和图像来装饰房子。

现在有足够的销售额,我不仅可以靠它谋生,还可以满足用户的一些服务要求。我现在有一个合作伙伴,他正在帮助我开发一项新服务,帮助一些公司将Sweet Home 3D嵌入他们的网站。我们收到了来自不同方向的很多请求。

一个很好的用例可以是房地产经纪人、家居设计师和家具零售商之间的合作。使用虚拟化技术,他们可以向客户展示房产,同时让他们能够尝试不同的风格和物品,看看它们如何与彼此以及现有家具相匹配。这将帮助客户想象他们的房子会是什么样子,并使整个过程更加令人兴奋。

作为用户,您可以在桌面上安装Sweet Home 3D,也可以在Web上使用它。后者是一个巨大的挑战,因为最初,Sweet Home 3D是用Java编程的,考虑到过去几年的一些重大变化,Java小程序在web浏览器中不再受支持。现在已经没有办法在web浏览器中显示Java小程序了,所以现在最好的选择是使用JavaScript和HTML5。

我们不想重写所有内容,所以我们正在自动翻译程序的某些部分,但这仍然是一项巨大的工作,因为它们是使用不同UI技术的完全不同的语言。我们一直在做这个过程,但还没有完全完成,但它开始工作得很好。

经历了这个过程后,您对其他Java开发人员有什么建议

任何创建过Java小程序的人现在都必须找到另一种解决方案。他们必须放弃Java,如果他们想继续使用的话,可能需要将软件的某些部分翻译成JavaScript。

这个解决方案并不总是那么容易实现,因为你必须翻译用户界面。HTML5和Swing组件不一样,所以你必须转换和重写所有这些。

另一件事是,仍然有许多非商业的Java桌面应用程序在组织内部用于不同的目的。但这在用户中并不流行,所以从这个意义上说,Sweet Home 3D非常独特。

不管怎样,大多数人都不关心它的编程语言,即使对于程序员来说,这是非常重要的。

特别是对我的应用程序来说,3D部分是另一个挑战,因为总有一些人没有最新的驱动程序,或者可能有其他一些软件阻止它运行,并且不能正常工作。

当我开始使用Sweet Home 3D时,我从没想过3D问题会在我们的支持查询中占这么大的比例。幸运的是,由于Sweet Home 3D是一个免费的开源解决方案,许多人都在使用它,其中一些人正在分享为他们工作的解决方案,以便其他人在遇到同样的问题时也可以使用它们。

这个3D部分是用Java 3D编程的,它工作得很好,但只被一小部分程序员使用,我不确定这是目前制作3D的最佳方式。话虽如此,它还是有效的,所以这才是最重要的。

听起来你的社区是企业不可分割的一部分。你能再解释一下你的商业模式吗</我的公司很小。我的办公室在客厅里。我甚至没有单独的房间,因为我更喜欢那样工作。

P社区是我的首要任务之一,因为尽管我从未见过这些人,但他们是我的朋友。我有一些长期用户,我很高兴有他们在我旁边的论坛上,并收到他们的请求。

至于翻译人员,他们来自不同的国家,因为一个好的翻译是由一个母语为他们翻译的语言的人完成的。

有些人联系我只是为了得到一些快速的帮助,一般来说,他们都很友善。在某种程度上,这就像有同事,但这是不同的,因为他们是我开发的一个软件的用户。

I通过主持对Sweet Home 3D用户的采访,展示他们使用该平台的原始方式,保持社区的活力。这使得社区繁荣,因为人们渴望讲述自己的故事。但是,即使我们每天有10000次下载,许多人根本不与我们沟通。我们在论坛中有几百名用户,他们已经加入我们很多年了,每年都有新的用户加入我们。很高兴有那么多人在我身边,帮助我了解他们如何使用它,并改进他们的反馈。

这些天,你觉得哪些趋势或技术特别有趣

HTML5不是新的或原创的,但是,随着我们在网络上使用的所有技术,比如JavaScript和WebGL,我认为这是一个巨大的趋势,不会很快消失。

I发现JavaScript对Java程序员有很多缺点。这是一种解释性编程语言。当你编写程序时,几乎没有检查,如果你想提供一个适用于所有人的服务,你必须在不同的浏览器上测试所有东西。

确实有一些非常好的特性,我相信调试过程对程序员来说非常方便。在浏览器中直接进行测试,而无需重新编程和编译每个小测试,这是非常令人愉快的。这可能不是最新的技术,但它发展得非常好。

I也已经用JavaScript编程很多年了。在过去,你必须为每个浏览器编写不同的程序,但现在它通常适用于任何浏览器。

所以我们有一个适用于所有浏览器和操作系统的web程序,它可以使用CSS和WebGL做一些非常好的事情,这比Java 3D好得多。你未来的计划是什么

正如我提到的,我们计划推出一项新服务,让人们使用Rest API在自己的网站上嵌入Sweet Home 3D。我们希望许多企业会发现它有用,并且