搜索

详解编程语言之发展趋势


发布时间: 2022-11-24 18:09:07    浏览次数:20 次

近十年来,互联网发生了翻天覆地的变化。新的联网方式、新的通讯方式,乃至新的支付、交易方式深刻地影响了人们的生活,在浪潮的冲击之下,传统编程语言经受住了考验,并焕发了新的生机,同时也涌现出了很多优秀的新型编程语言。

这是近十年来各编程语言的发展趋势图(数据源自 IEEE-spectrum 和 Stack Overflow),中间一栏是语言的应用领域,如 Web、移动端、企业应用、嵌入式等,右侧是语言相关的新项目数量趋势图。

可以看到 C++、C#、Java 等传统语言已经覆盖了各个领域,仿佛一门语言什么都可以做,Javascript 也早已走出了浏览器,Python 也正式步入嵌入式领域。如果十年前有人说要用 PHP 搞 AI 是不可思议的,但现在各种由 PHP 实现的更亲合 Web 环境的深度学习平台也进一步推进了人工智能的发展。

随着软件系统越来越复杂,为了有效控制从业人员的学习成本,编程语言全栈化将是一个大的趋势。而企业的营收突破了信息传播、交易方式等业务模式的限制后,软件技术的发展会更偏向算法、硬件乃至基础理论的研究,既可满足 CPU 密集型程序的开发又可使产品快速落地的编程语言将会胜出。

回顾以往的变革,从电脑到手机,从传统硬件到智能家居,从互联网到物联网,可以看到当今互联网的显著特征:

  • 设备智能化
  • 软件服务化
  • 多领域协作密切化

而各种丰富的软件服务之间又是紧密相关的,对产品的质量和安全性也提出了更高的要求。Rust 等新兴语言将安全性提升到了一个新的高度,同时又保证多种编程范式的灵活应用,这是新兴语言生命力旺盛的根本原因之一。

而对于传统语言,在当前的历史契机之下,有必要集结、整合各领域的安全编写规则,形成综合规范体系,以实现:

  • 企业对产品代码质量进行统一管控
  • 使从业人员形成完善的安全知识体系和严谨的工作态度

同一门语言在不同的领域有不同的侧重,嵌入式系统更注重在有限资源下的专用性和实时性,由于专有硬件更加多样化,所以嵌入式软件也更注重可移植性。对于桌面软件来说,其环境是灵活多变的,还需要防止其他程序的恶意干扰,所以桌面软件往往更强调健壮性。在通用架构下桌面与服务端的本质区别实际上并不是特别明显,但在桌面的基础之上,服务端软件更注重稳定性以及其专有的网络安全措施。

举个例子,在资源管理上,嵌入式系统和服务端系统有较大差异,“动态内存分配”这种资源管理方式在服务端可能完全不是问题,但在嵌入式等环境中可能就是需要规避的原则性问题了。

再比如进程崩溃这种问题,在服务端会造成“拒绝服务”这种安全漏洞,造成业务瘫痪,在桌面端除了给用户造成不好的体验外,还可能会遭到恶意调试,导致隐私泄露等安全问题,在嵌入式环境中甚至会导致设备的损毁,总之,产品的健壮性和安全性是紧密相关的。

360 质量工程部集结整合了 C 和 C++ 语言在各领域的注意事项,总结成《360 安全规则集合》,已在 Github 上开源,也为其他语言的相关工作提供参考模式。

项目地址:

 
其特点有:
  • 严格遵循编程语言的 ISO 标准
  • 融汇多种权威规范体系,符合国家审计标准
  • 适用于桌面、服务端及嵌入式等多种应用场景
  • 满足规范、审计、培训等多方面需求
  • 注重自动化代码审计的实现方法

保障软件安全、提升产品质量是宏大的主题,需要多方面地学习、探索与实践,欢迎提供修订意见和扩展建议。

 

免责声明 详解编程语言之发展趋势,资源类别:文本, 浏览次数:20 次, 文件大小:-- , 由本站蜘蛛搜索收录2022-11-24 06:09:07。此页面由程序自动采集,只作交流和学习使用,本站不储存任何资源文件,如有侵权内容请联系我们举报删除, 感谢您对本站的支持。 原文链接:https://www.cnblogs.com/safe-rules/p/16814387.html