数码控科技猎奇Iphone动漫星座游戏电竞lolcosplay王者荣耀攻略allcnewsBLOGNEWSBLOGASKBLOGBLOGZSK全部技术问答问答技术问答it问答代码软件新闻开发博客电脑/网络手机/数码笔记本电脑互联网操作系统软件硬件编程开发360产品资源分享电脑知识文档中心IT全部全部分类全部分类技术牛文全部分类教程最新网页制作cms教程平面设计媒体动画操作系统网站运营网络安全服务器教程数据库工具网络安全软件教学vbscript正则表达式javascript批处理更多»编程更新教程更新游戏更新allitnewsJava新闻网络医疗信息化安全创业站长电商科技访谈域名会议专栏创业动态融资创投创业学院 / 产品经理创业公司人物访谈营销开发数据库服务器系统虚拟化云计算嵌入式移动开发作业作业1常见软件all电脑网络手机数码生活游戏体育运动明星影音休闲爱好文化艺术社会民生教育科学医疗健康金融管理情感社交地区其他电脑互联网软件硬件编程开发360相关产品手机平板其他电子产品摄影器材360硬件通讯智能设备购物时尚生活常识美容塑身服装服饰出行旅游交通汽车购房置业家居装修美食烹饪单机电脑游戏网页游戏电视游戏桌游棋牌游戏手机游戏小游戏掌机游戏客户端游戏集体游戏其他游戏体育赛事篮球足球其他运动球类运动赛车健身运动运动用品影视娱乐人物音乐动漫摄影摄像收藏宠物幽默搞笑起名花鸟鱼虫茶艺彩票星座占卜书画美术舞蹈小说图书器乐声乐小品相声戏剧戏曲手工艺品历史话题时事政治就业职场军事国防节日风俗法律法规宗教礼仪礼节自然灾害360维权社会人物升学入学人文社科外语资格考试公务员留学出国家庭教育学习方法语文物理生物工程学农业数学化学健康知识心理健康孕育早教内科外科妇产科儿科皮肤科五官科男科整形中医药品传染科其他疾病医院两性肿瘤科创业投资企业管理财务税务银行股票金融理财基金债券保险贸易商务文书国民经济爱情婚姻家庭烦恼北京上海重庆天津黑龙江吉林辽宁河北内蒙古山西陕西宁夏甘肃青海新疆西藏四川贵州云南河南湖北湖南山东江苏浙江安徽江西福建广东广西海南香港澳门台湾海外地区

机器学习新星:Scala优于Java的五大理由!

来源:CNBLOGS  责任编辑:小易  

机器学习新星:Scala 优于 Java 的五大理由!

  Java 在程序猿江湖的霸主地位已经很多年没有受到挑战了。

  作为一门主流编程语言,在所有领域的普及率、职业选择、业界倾向榜单中,Java 即使不在榜首,也位于前列。即便是 Python 为王的机器学习领域,Java 的普及程度也稳居第二、三位,仅有 R 语言可与之相比。Java 能有如此巨大的成功,跟它的灵活多功能,以及处理复杂任务的能力是分不开的。但有没有比 Java 更好的选择呢?

  就雷锋网所知,在资深程序猿眼中,能替代 Java、并且能做得比它更好的只有 Scala。这篇文章并不是对 Scala 平白无故的吹捧文,而是基于:

  • 大家知道 Scala 在业内的口碑不错;

  • 作为一个后起之秀,它解决了 Java 普遍存在的许多问题;

  • 另一方面, Scala 的性能比 Java 更加强大;

  • 上期盘点中,我们还发现,在机器学习领域,2014 年后 Scala 在美国的招聘需求出现井喷,是发展最快的机器学习开发语言(详见 Python、R、Java、 C++ 等:从业界反馈看机器学习语言趋势)。

  但是,作为一门新兴语言,国内对于 Scala 的认识较少。下面,来看看国外移动游戏开发商 Nimblechapps 的创始人兼 CEO Keval Padia,总结的 Scala 优于 Java 的五大理由:

机器学习新星:Scala 优于 Java 的五大理由!

Nimblechapps 的 logo

  1. 更快地投放市场

  如果你是一个业余开发者,不存在项目市场、成本方面的考虑,对这一条 Scala 的优点或许你并不感冒。但对于所有领工资的开发者,必须要在规定时间内把产品投放市场。这是一个没有争议的、Scala 优于 Java 的领域。对于 Scala,OO(面向对象)模式在执行代码时的限制并不存在。在这一模式之外,还能为算法加入函数式编程。这使得原本两个世界——面向对象语言和函数式语言的优点能被结合起来。这产生的结果是具有非凡表达力的细节和简洁明了的代码——经常只有几行。更少的代码行数在所有方面都提高了速度,不管是测试还是开发。

  2. 避免死锁(deadlock)

  作为一名码农,你也许经常在编程中遇到出现死锁的情况。最可怕的空指针异常(null pointer exception)以及其它变种,就是很好的例子

  Scala 能提供一个直截了当的解决方案吗?不能。但它提供了一些能事先避免死锁的、十分有效的选择。当你开始用 Scala 写代码,你一定会注意到空指针异常出现的次数比 Java 大幅减少。

  3. 更好的写代码输出

  首先,函数式编程能帮助你的 app 提高稳定性,并且带走很多本无意产生的副产品。当你从可变数据结构( mutable data structures)转移至所谓的函数式模式,你会保证更高的安全性、稳定性。

  第二点,没有标点的代码会变成更强。Scala 的代码支持混合能力和多种继承(inheritanCES)这会帮助你找出代码中的漏洞、缺陷。更干净、强大的代码帮助开发者提升终端应用的安全和表现。

  4. 第三方 API 储备

  所有开发者都需要为 app 加入功能。如今,这有两种方式:白手起家从头写代码,或者从第三方应用中移植过来。现在程序架构师都需要走过这个关键路口——决定到底是自己开发整个功能,还是直接拿来一个插件。

  但其实还有第三种方式:Scala 提供了一个更强大的解决方案:它搭载了多种宝贵的内置功能。由于这一点,你对自己的应用有远远更好的控制力。Scala 简单、直接的代码也能够提升载入速度。

  5. 异步处理

  不同于 Java,Scala 为传递异步行为(asynchronous behavior)而设计。未来就绪(future readiness)在 Java 的缺失,导致了一系列限制了应用功能的妥协。但就像其他网络开发框架一样,Scala 中的异步行为提供了非常舒服、自然的代码。

机器学习新星:Scala 优于 Java 的五大理由!

  看了这五大优点,你是否已经准备拿 Scala 试试手了呢?但雷锋网要提醒读者们,不要期望太高。比如说,它在国内的大环境并不理想,使用 Scala 的人太少,工作机会比国外少得多。对于个体而言,它也并不适合每个人。大牛 David Pollak 曾经表示:“对于 50% 的 Java 开发者,学习 Scala 的难度高于它带来的便捷。”在早年的博客中,他反复强调 Scala 是一个面向聪明人的语言,是一个给热爱写代码的人充分发挥自己才能的平台。

  换句话说,Scala 难以在大众开发者群体之间推广。但近两三年来,全世界已经目睹美国掀起的 Scala 风潮。虽然作为游戏公司的 CEO,Keval PadiaScala 只是从手机端 app 开发的角度看待 Scala;但在机器学习领域,Scala 也已获得相当多自认天赋不凡的极客作为拥趸。

  至于在将来,Scala 能否在国内高端开发者社区对 Java 形成冲击,雷锋网(公众号:雷锋网)将拭目以待。

  via jaxenter


  • 本文相关:
  • Java EE重命名进入最后阶段,为新名字投票
  • Oracle决定延长对Java 8的免费支持时间
  • Eclipse成立EE.next组,欲重塑 Java EE 品牌
  • Oracle加快Java迭代速度,功能性版本只维护六个月
  • Oracle公开回应:EE4J不会沿用Java EE的命名
  • Java领域的五大发展预测,新的发布计划将推动创新
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved