在该领域工作了几年的开发人员已经看到了几种编程语言和工具的兴衰。软件开发是一个动态的领域,工作需求在不断变化,因此密切关注可能有助于这一过程的未来趋势和技术是关键。
以下是对10年后编程的五个预测。
1.编程会更抽象
Forrester副总裁兼首席分析师Jeff Hammond表示,无服务器技术、容器和低代码平台等趋势表明,许多开发人员将来可能会在更高的抽象级别工作,从较低级别的编码细节中移除。
“从理论上讲,我们应该少关心云原生应用程序的构建方式,”哈蒙德说。
哈蒙德预测,我们将在前端看到更多的增强现实(AR)和虚拟现实(VR),这意味着开发人员将需要获得构建这些应用程序的技能,以及内置的语音和自然语言处理功能。“我们将不得不习惯于使用我们今天习惯于构建Web应用程序和移动应用程序的框架来做基于像素的开发之外的事情,”Hammond说。
2.AI将成为每个开发人员工具包的一部分,但不会取代它们
哈蒙德说,人工智能今天开始融入开发人员工具中。例如,Microsoft在其Windows 10更新中添加了一个AI平台,以便每个在操作系统上构建应用程序的开发人员都能够使用预先训练的机器学习模型。莱斯大学的研究人员创建了一个名为BAYOU的应用程序,该应用程序使用深度学习作为编码的搜索引擎,允许开发人员输入一些关键字并查看有助于完成任务的Java代码。
“我认为我们将看到更多的例子,其中开发工具将尝试预测开发人员的意图,并使他们更快地表达这种意图,最终成为另一种形式的抽象,”哈蒙德说。
这些技术不太可能取代开发人员,哈蒙德说。
“我认为这将使他们能够比现在更快地开发解决方案,这很好,因为似乎不乏想要在这些服务和新软件中增加应用程序的人,”哈蒙德说。“我非常看好这些技术成为开发人员的帮助而不是开发人员的替代品的想法。总是有足够的低级事情要做,而没有足够的时间做高级的事情。也许这会让我们有更多的时间来测试我们的代码。
3. 通用编程语言将出现
为了获得人工智能等新兴技术的好处,编程必须易于学习和构建,IEEE研究员兼塔夫茨大学研究生工程学院院长Karen Panetta说。
“Python可能被认为是未来语言的曾曾祖母,在引擎盖下可能看起来像英语,但更容易使用,”帕内塔说。“程序将使用编码块构建,就像我们小时候使用的木制字母块一样。开发人员将能够连接这些块来实现他们需要的任何功能,甚至可能不需要以文本形式编写这些块。
未来的语言可能包括数据转换的视觉图像,例如日历的图像,说“这个块允许用户选择和设置日期,”Panetta预测。她补充说,它们还可能涉及能够包括触觉感官设备的块,以便即使是有视力障碍的人也能够开发程序。
Panetta说,未来占主导地位的编程语言也将是通用的,因为它将支持所有开发人员,无论他们的口语如何。
4. 每个开发人员都需要处理数据
未来的开发人员将需要学习更多的技能,特别是在数据分析方面,纽约大学伦纳德·N·斯特恩商学院信息、运营和管理科学临床副教授、《数据可视化变得简单》一书的作者克里斯汀·索苏尔斯基(Kristen Sosulski)说。
“从统计数据分析到非线性和线性数据分析,再到机器学习甚至人工智能,”Sosulski说。“这不仅仅是学习如何编码,它还学习如何分析数据和销售不同的模型。
5. 编程将是教育系统的核心原则
帕内塔说,对于学生来说,编程将结合阅读、写作和算术,成为教育的原则。“未来的每个职业生涯都需要熟练地为大型数据集提供数据分析、机器学习以及使用仿真来降低测试和制造成本。
Sosulski建议那些有兴趣成为开发人员的人从像Python这样的面向对象的编程语言开始,为自己打下基础。
Hammond说,对于现在进入或在该领域工作的开发人员来说,了解你用来为未来做好准备的工具和框架背后的架构是很重要的。
“我在过去近30年中发现,语言在变化,框架在变化,供应商在变化,但这些实现模式往往会在每个时代重复出现,”哈蒙德说。“如果你理解了这一点,你就可以开始看到新技术出现时的差异,并将你已经知道的东西应用到这些新环境中。