我知道很多人不喜欢2016年的情况,尤其是美国人,但是对我来说,这是反思和更新的一年。

随着用户界面框架的最新发展围绕着硬件加速图形,我一直为Eclipse的未来而担忧。这个年龄确实开始显示,并且越来越难以找到想要使用它的工具开发人员。随着JavaFX和Java作为桌面应用程序技术的光明前景,是时候开始在桌面IDE框架中寻找新东西了。

我还花了很多年的时间来学习有关嵌入式软件工程师的工作的更多信息。我已经为它们构建工具很多年了,但是我自己没有机会使用它们。随着Arduino和Raspberry Pi成为便宜而功能强大且易于访问的设备,我购买了其中的一些设备,并开始看到对这些设备进行编程以与现实世界进行交互的乐趣。

在2017年,我将在几个领域集中精力。以下是一些重点摘要。我绝对有一个新年决议,那就是写更多的文章,以便在这一年进展时添加更多细节。

月食二

那些在Twitter上关注我的人会注意到我正在从事一个新项目,该项目源于我对 电子。 电子是Chromium和node.js在桌面应用程序框架中的结合。这是Visual Studio Code与许多新的和即将推出的桌面应用程序(例如Slack)一起编写的。这给了我一个很好的机会来真正学习HTML,CSS和JavaScript,并思考如何用它构建IDE。我有几件事正在运行, 您可以在我的github帐户上按照此处进行操作。

当然,人们会问为什么不为我所需要的而扩展许多文本编辑器框架之一,例如VIsual Studio Code。文本编辑器和IDE之间有很大的区别。文本编辑器似乎疯狂地只专注于文本编辑器。 IDE添加了不同类型的可视化效果和图形编辑器,这些抽象化了系统开发中一些更复杂的方面。 Web开发人员可能还没有非常欣赏它,但是嵌入式软件开发人员确实需要这些抽象提供的帮助。

我希望与基于Electron的IDE一起工作能够结出硕果,并吸引对相同想法感到兴奋的IDE开发人员。我将其称为Eclipse Two(不是e2,顺便说一句,而是两个),因为我完全打算如果Eclipse社区感兴趣,我们会把它带到那里。与2001年Eclipse One和2002年CDT引入的时代一样,我们不能自己构建它。只有以Eclipse闻名的强大社区和强大的架构领导才能成功。

CDT和语言服务协议

语言服务协议(LSP)迅速成为公认的体系结构,它使IDE可以获取用户期望的语言知识,并允许我们尝试使用新的IDE前端,例如Eclipse Two。由于新的桌面IDE进入黄金时代还需要几年的时间,因此我们需要保持Eclipse和CDT的活力和蓬勃发展。

感谢Peter Sommerlad博士和C ++语言委员会的朋友,我们开始看到的一件事是C ++语言不断发展和现代化,每三年引入一种新的语言结构。小型CDT团队很难跟上步伐。

我们需要寻找替代语言提供者并与其他IDE一起工作,可能利用LLVM项目的libclang或其他我们可以连接到LSP的解析器。由于我们依赖CDT的解析器来获得LSP当前不支持的许多功能,因此这可能需要做很多工作,但我认为这是我们需要研究的长期方向,而且许多CDT提交者也有同感。

Arduino和电子爱好者

我仍然完全致力于为CDT构建的Arduino插件,并将随着Arduino社区和主流Arduino IDE的发展而继续增强它们。我仍然希望社区成员将为代码及其出色的错误报告提供帮助。反馈很高兴看到,我很高兴这些插件很有用。

我越看重嵌入式软件工程师的工作,以及他们所使用的系统的惊人复杂性,我就越放心,这些开发人员确实确实需要一个好的IDE可以为他们提供帮助。当然,它必须是 我和IDE继续努力理解这意味着什么并帮助实现它。

顺便说一句,我开始使用一些插件来编程我在2016年的演示中使用的ESP8266。从那时起,我一直在与ESP32社区进行对话,很高兴看到他们已经在采用Eclipse和CDT。 如果您有兴趣,请在此处进行说明。 对我来说,好消息是,这将使我有机会停止使用自己的插件,并给我更多时间专注于此列表中的其他内容:)。

将RTOS用于您的实时系统

对ESP8266进行编程给了我一些FreeRTOS的经验。在演示中,我有一个超声波传感器,可用来触发我也已连接到芯片的NeoPixels中的不同颜色。所有这些都是非常实时的。我需要测量两个中断之间的时间来计算与传感器的距离,NeoPixel通讯依赖于以非常敏感的时钟速率发送串行数据流。实时很重要。

作为演示的一部分,我向我展示了CMake和启动栏,以及从构建和启动一个系统切换到另一个系统有多么容易。我使用了ESP8266的实时代码,并像运行QNX Neutrino RTOS的BeagleBone一样运行了它,包括中断处理程序和NeoPixel代码。我无法想象在Linux上这样做。我知道我在该公司工作,但这确实帮助我欣赏了Neutrino微内核体系结构,以及使用我们提供的工具和API构建嵌入式系统有多么容易。

问题是,人们对Neutrino以及良好的RTOS所能提供的知识了解不足。在实时系统中使用Linux的人太多,因为它更容易入门,因为这是他们所知道的,而不是因为它是正确的体系结构。我希望做的一件事是帮助事业,传播信息,使社区更容易尝试。这意味着什么,我们将在接下来的几个月中看到。

超越IDE

我已经成为工具开发人员,致力于尽我所能帮助其他软件开发人员构建系统。但是仅靠工具是不够的。工具需要通过演示和教程以及其他类型的指导与教育相结合。现在,将两者结合起来,您可以在网络上访问该教程,从而在学习时驱动桌面IDE。

随之而来的是我们的全面发展,这是我希望可以通过Eclipse Two实现的用例之一!一个IDE不仅可以帮助您编写和测试代码以及​​构建系统,还可以教您如何做到这一点。

新年快乐,祝2017年一切顺利!

对于Eclipse社区和技术来说,这将是丰收的一年,我期待在可能的地方提供帮助。