达内广州C++学院|c++培训|广州达内科技C++/C#培训|.NET培训|IT培训|达内广州岗顶中心 达内广州C++学院|c++培训|广州达内科技C++/C#培训|.NET培训|IT培训|达内广州岗顶中心
媒体报道
 当前位置:主页 > 媒体报道 >

Swift编程开发语言的发展趋势分析

时间:2019-06-12  来源:未知  作者:广州达内培训

随着互联网的不断发展,总会有许多新的编程开发语言出现,而今天我们就一起来了解一下,在人工智能编程开发领域都有哪些新的编程语言得到程序员的关注。

Swift编程开发语言的发展趋势分析

Swift拥有强力的后援

Swift是由Chris Lattner在苹果工作时创建的。目前,Chris Lattner在Google Brain工作——这是世界上先进的人工智能研究团队之一。Swift语言的创始人如今在研究深度学习的实验室工作,这个事实说明这是一个重大的项目。

前段时间,Google意识到尽管Python是一种优秀的语言,但它仍有许多难以克服的局限性。TensorFlow需要一种新语言,经过长时间的考虑后,这个重任落到了Swift肩上。

Swift版的TensorFlow不仅仅是一个代码库

Swift版的TensorFlow不仅仅是另一种语言的TensorFlow。

从本质上来说,它是Swift语言的另一个分支(就像在git上创建branch一样)。这意味着Swift版的TensorFlow并不是一个代码库, 它本身就是一种语言,它内置的功能支持TensorFlow所需的所有功能。

例如,Swift版的TensorFlow拥有非常强大的自动微分系统,这是深度学习计算梯度所需的基础。相比之下,Python的自动微分系统不是语言的核心组成部分。有一些初为Swift版的TensorFlow开发的功能后来被集成到了Swift语言本身中。

Swift非常快

当一次得知Swift的运行速度与C代码一样快时,我感到非常惊讶。我知道C经过了高度优化,且可以实现非常高的速度,但这需要以微内存管理为代价,因此C不能保证内存的安全。此外,C不是一种非常容易学习的语言。

如今,Swift的数值计算速度与C一样快,还没有内存安全的问题,而且更容易学习。Swift背后的LLVM编译器功能非常强大,并且拥有非常高效的优化功能,可以确保代码快速地运行。

你可以在Swift中使用Python、C和C++代码

由于Swift的机器学习才刚刚开始,因此Swift的机器学习库并不多。然而,你无需担心,因为Swift可以很好地与Python语言结合。你只需在Swift中导入Python库,就可以放心使用了。

与此同时,你还可以将C和C++库导入到Swift中(对于C++,你需要确保头文件是用纯C编写的,没有C++的特性)。

总而言之,如果你需要的某个特定的功能尚未在Swift中实现,则可以导入相应的Python、C或C++包。这一点简直逆天了!

Swift还可以深入底层

如果你曾经使用过TensorFlow,那么很可能是通过Python包来实现的。在底层,Python版的TensorFlow是用C实现的。所以在TensorFlow中调用函数时,你一定会在某个层面上遇到一些C代码。这意味着在你查看源代码的时候,会遇到一些限制。例如,你想看看卷积的实现方式,却发现看不到Python代码,因为它是用C实现的。

然而,在Swift中情况有所不同。Chris Lattner称Swift是“LLVM [汇编语言]的语法糖”。这意味着从本质上讲,Swift非常靠近硬件,Swift与硬件之间没有其他用C写的附加层。这也意味着Swift代码非常快,如上所述。

因此,开发人员能够检查所有的代码,无论是高层的代码还是非常底层的代码,都无需深入C。

【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。




上一篇:运城职场经验分享程序员如何才能写好简历
下一篇:没有了

友情链接:
  • 为Khronos OpenGL Registry提出的GL
  • KDE Plasma 5.17 开发升温,5.16 功能冻结
  • LLVM增加对IBM MASS库的支持,支持POWER向量化
  • KDE Frameworks 5.59 发布,带来更多修复
  • Ubuntu Touch即将更新Unity 8 + Mir,但还没有完全实现
  • RPM 4.15将以更好的性能和新功能将进入Fedora 31
  • Git 2.22 发布,围绕合并处理的改进
  • iOS 13将使删除已安装的应用程序变得非常容易
  • Linux Kernel 5.2-rc4 发布,相当平静的版本
  • Ubuntu MATE 19.10将默认使用GNOME MPV替换VLC播放器
  • Canonical发布所有支持的Ubuntu版本的Linux内核安全更新 - 适用
  • Qt 5.13进入发布候选阶段
  • 十字绣设计软件 KXStitch 2.2.0 发布,Ubuntu下安装方法
  • 2019亚洲天然及营养保健品展/HNC将于上海开幕
  • 一个妹子的美团面试经历,已成功拿到Offer
  • 做到如下4点,让用户不再讨厌你的广告
  • 类图的6大关系详解
  • 中国奢侈品消费者调研的关键发现
  • LibreOffice 6.3 Beta测试版发布,不再支持32位Linux发行版
  • springMVC -
  • Android Q Beta 4完成了开发者API SDK的开发
  • 【TIDB】4、业界使用情况
  • 如何配置Spring Boot Tomcat
  • 坑爹的 Java 可变参数,把我整得够惨。。
  • 《大型网站系统与Java中间件》读书笔记(上)
  • 乐字节Java8核心特性之Optional类
  • Java IO 输入和输出流
  • Guava Cache
  • 经典营销理论和跨国公司面临中国式挑战
  • 力软未来产品发展方向
  • 在印度销售、购买或持有虚拟货币可能导致最高10年的监禁
  • Oracle Java SE 组件概念图
  • Google Chrome 75.0.3770.80 发布,修复了42个安全问题
  • 2019最新Java教程 免费赠送
  • Spring框架的AOP编程,最通俗的语言解释,易懂易学
  • Java开发桌面程序学习(八)——启动浏览器或者打开资源管理器操
  • 笔记-JavaWeb学习之旅10
  • SpringBoot2.0 基础案例(02):配置Log4j2,实现不同环境日志打印
  • JDK动态代理
  • 利用idea创建一个基本的smm项目(带增删改查)
  • SpringBoot2.0 基础案例(03):配置系统全局异常映射处理
  • Java常见设计模式学习(非原创)
  • Java 总结篇1
  • 单例模式
  • 基于IDEA实现SSM整合框架的搭建配置流程
  • RabbitMQ 从入门到精通(二)
  • 工信部发放5G牌照,中国正式迈入5G商用元年
  • Java开发桌面程序学习(五)——文件选择器和目录选择器的使用
  • 2018年送彩金网站大全
  • 斗牛秘籍
  • 捕鱼游戏
  • 天下娱乐网
  • 捕鱼大作战
  • 免费注册送59元体验金
  • 葡京网站