导航到Swift的光明未来

斯威夫特(Swift)于四年前首次向公众介绍。 宣布这一消息之后,可以说是自最初的iPhone推出以来,在苹果主题演讲中最大的室内反应。 如果Craig Federighi的宣布使整个房间充满震惊和困惑,那么Chris Lattner令人印象深刻的演示就贯穿了其中,激起了人们的兴奋和惊奇,并急于下载Xcode以测试新语言。

一年半后,Swift开源了,预示着跨平台的广泛采用,Swift通常在Apple生态系统之外用于开发各种软件。 除非那没有发生。 Swift是开源的,但是更广泛的开发社区对此大加赞赏,自此以后,Swift在Apple平台之外并未取得良好的进展。 实际上,根据TIOBE指数,Swift的受欢迎程度正在下降。 退后一步,这不足为奇。 在非Apple平台上安装Swift有点令人头疼,除非您使用的是受支持的Ubuntu版本,否则您需要从源代码编译Swift,这是一个长达数小时的过程,并非出于胆怯。 Windows和Android有非官方的端口,但是由于它们是非官方的,因此不能保证它们会保持稳定,甚至将来不会编译。

因此,很明显,为了使Swift成长并在与苹果无关的和与苹果无关的各个不同领域中得到广泛使用,需要进行一些更改。 必须认识到,Swift并不适合所有人。 一些开发人员从根本上不同意Swift的发展方向-没关系。 重要的是,不要追随每个开发人员不同意Swift的目标,而要继续构建社区所相信的Swift,并让该语言立于自己的优点,以其核心原则吸引用户的注意。 换句话说,Swift无需更改其目标,原理或基本设计即可获得更广泛的使用。 为了使Swift成为通用语言,跨平台语言,应该怎么做?

毫无疑问,Swift由于与Apple密切相关而对某些产品的吸引力降低了,并且确实,Swift作为通用语言的成功取决于在开发人员的脑海中将Swift与Apple分离,至少有一点。 但是,请不要忘记,苹果公司是一家规模巨大且盈利的公司,迄今为止从未见过成功。 在将Swift与Apple分开时,重要的是要理解,认可和重视Swift不只是起源于Apple的事实,Swift Apple。 您可能会问自己,“这是什么意思?” 好吧,让我列举一些苹果成功的公认原因:

–硬件和软件是一起设计的,从而促进了其产品各个领域的合作和集成。

–周到,精美的设计。

–用户友好的界面。

–围墙花园方法。

现在,让我们看一下Swift设计的一些元素:

–由一个团队开发,该团队包括Clang,LLVM和LLDB的创建者和主要贡献者。 近年来创建的许多语言都建立在这些基础之上。 迅捷团队的基础奠定了基础。

–现代,简洁,清晰,美观的语法。

–逐步披露复杂性。

–设计安全:没有指针,并且使用“可选”系统,在很大程度上不鼓励使用空值。

希望您领先于我,并且已经建立起一种联系,即我对Swift的描述仅仅是对苹果的描述,它被转换为另一个域。 Swift是Apple文化的产物,其核心具有相同的价值观和设计决策:Swift在其DNA中拥有Apple。 这是有价值的东西,而不是消费税。 因此,前进的道路必须是让Swift保持“敏捷”的一种方式-不惜一切代价保持其原理和文化,并且我们也不要太想把它与Apple分开,以免我们把孩子扔出去沐浴水。

尽管上述某些观点可以合理辩论,但我们重视Swift的人却看到并相信这些特征。

Swift将坚持自己的优点,而对它的原理有吸引力的开发人员将被它吸引。 您可能会想,“好吧,您已经谈论过Swift如何无法吸引非Apple生态系统开发人员,然后谈论了Swift如何出色并处于稳固的基础上,那么解决方案是什么?” 我想我有答案。 我认为很多人都有答案。 很明显。

Swift需要在更多平台上可用,它需要更易于安装,并且需要更好的工具支持。 除非有些公司想通过将开发人员分配给该项目在港口工作来直接投资Swift,否则要解决第一个问题并不容易。 从长远来看,我希望看到一个Swift基金会成立,并负责推动这类事情。 那是另一天的帖子。 更为紧迫的问题是,Swift目前在其支持的平台上并不容易使用。 是否想在受支持的Ubuntu版本上开发Swift应用程序? 希望您喜欢在文本编辑器中编码。 是的,确实有一些选择,例如安装了无数不同插件的Visual Studio Code,或者Clion及其对Swift的支持。 对于大多数开发人员来说,这些都不是不错的选择。 我们需要一个针对Swift(针对所有双关语)量身定制的IDE,该IDE与Swift Package Manager集成在一起,并且可以随时使用工作调试器,出色的代码完成以及快速,智能的编辑体验。 它需要用Swift编写,并且需要在可以运行Swift的所有平台上运行。 这些是目标,也是非Apple平台上Swift的前进方向。

这个项目正在进行中,尽管这是一项艰巨的任务,但是所有这些目标都不会一目了然,但是这是可以实现的,而且每周都在逐步接近。 在随后的文章中,我将解释该项目的工作方式,其组成部分,所处的状态以及何时可以使用它。 目前,我希望将该项目作为开源发布。 使其成为商业应用程序可能不是实现上述目标的最佳方法,但是由于这是一个晚上和周末的项目,因此,我对社区中有关如何使此方法更具可持续性的想法很感兴趣。长期。