当前位置: 首页 > news >正文

堕落Java vs 新贵 Python,2018 年最应该学习哪一门编程语言?

2017 年,编程语言领域发生了巨大的变化,一方面,Java、Kotlin 等语言在企业和移动开发方面吸引了很多开发者的关注;另一方面,对 Web 开发至关重要的 JavaScript 生态系统也在不断扩大;TypeScript 、C ++ 等编程语言的特性都迎来了较大的更新。

接下来,我们就与大家共同回顾一下 2017 年编程语言所发生的大事件并剖析其未来的发展趋势。

Java 的曲折之路

千呼万唤始出来,在经历了多次跳票的 JDK 9 最终于 2017 年 9 月正式发布了,作为 Java 标准的最新实现,曾因为其模块化技术引起争议。尽管模块化系统旨在提供可伸缩性,性能和安全性方面的优势,但包括 Red Hat 和 IBM 在内的关键参与者却不同意 Oracle 实施它。他们对应用的兼容性表示担忧,并对最初的建议投了反对票。直到最后的再次修改,才让反对方感到满意,通过了复审提案,为迟迟不能发布的版本扫清了道路。

下一个版本 JDK 10 计划将在 2018 年 3 月迅速推出,具有局部变量的类型推导和垃圾收集器接口等特性。

而 Java EE ,甲骨文已将其交由 Eclipse 基金会管理。同时,Oracle 在发布 Java 9 的同时也发布了 Java EE 8 。 Java EE 8 包含云、HTML5 和 HTTP / 2 等特性。

未来趋势

过去一年中,因 Google 开始拥抱 Kotlin、Python 因人工智能而兴起,由此不少开发者开始认为 Java 霸主地位即将被取代。

相比往年的 TIOBE 排行榜来看,Java 使用率确实有所下降,但是依旧稳居首位。同时根据去年 11 月 RebelLabs 发布的《 2017 年开发者生产力报告》分析得出,开发者主要使用的编程语言中,Java 8 高达 72%。最后综合 StackOverFlow 调查报告、IEEE Spectrum 排行榜的数据,虽然这些榜单的评分标准和涉及人群虽然有所差异,但在任何一个榜单中, Java 都占据编程语言前三的位置,无疑是最大的赢家。

从整体互联网开发的大环境来看,Java 语言的应用方向主要体现在三个方面:

  • 大中型的企业应用中,如复杂的大企业的软件系统、各种类型的网站;

  • 桌面应用,即 C/S应用,主要用来开发运行于不同的操作系统上的桌面应用程序;

  • 移动开发应用,如 Android 开发、Java 游戏开发等。

基于以上稳定的排行榜以及数十亿设备都是 Java 开发的应用领域来看,未来一年中,不能说其他语言的兴起对这个老牌语言没有任何影响,但是想要短期之内想要撼动 Java 的位置也绝非易事。

推荐阅读


《Java核心技术 卷II》

   高级特性(原书第10版)

ISBN:978-7-111-57331-9

作者:[美] 凯 S. 霍斯特曼

译者:陈昊鹏 译

定价:139.00

出版时间:2017/10

内容简介:

(1)Java领域最有影响力和价值的著作之一,与《Java编程思想》齐名,10余年全球畅销不衰,广受好评。

(2)根据Java SE 8全面更新,系统全面讲解Java语言的核心概念、语法、重要特性和开发方法,包含大量案例,实践性强。

    《Effective Python》

编写高质量Python代码的59个有效方法

ISBN:978-7-111-52355-0

作 者:(美)布雷特·斯拉特金

译 者:爱飞翔 译

定 价:59.00元

出版时间:2016/01

内容简介:

(1)Google高级软件工程师Brett Slatkin融合自己多年Python开发实战经验,深入探讨编写高质量Python代码的技巧、禁忌和最佳实践.

(2)涵盖Python 3.x和Python 2.x主要应用领域,汇聚59条优秀实践原则、开发技巧和便捷方案,包含大量实用范例代码.

相关文章:

  • 为什么2018年将是混合云的元年?
  • 开源软件贡献者Top 10!第一名当之无愧!
  • TIOBE 年度榜单揭晓:C 语言夺冠,Python 紧随其后
  • 微服务高可用架构-基于支付场景的实战
  • 福利丨好书申请免费送【1.12】
  • 张小龙现场约战跳一跳,曾最高6000分!
  • 借鉴德国工业4.0推动中国制造业转型升级
  • 区块链的本质是什么?看完这篇秒懂!
  • 信号与系统课程知识的扩展
  • “抖音”式的酷炫短视频开发进阶
  • 2018 编程语言流行度趋势:Java 很稳,Python 潜力股
  • 程序员和用户
  • 程序员必定会爱上的10款软件
  • 福利丨好书申请免费送【1.26】
  • 线程的基本概念 / 计算机程序的思维逻辑
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • ECS应用管理最佳实践
  • E-HPC支持多队列管理和自动伸缩
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • Java应用性能调优
  • k个最大的数及变种小结
  • mockjs让前端开发独立于后端
  • mysql 数据库四种事务隔离级别
  • nfs客户端进程变D,延伸linux的lock
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • 关于for循环的简单归纳
  • 每天一个设计模式之命令模式
  • 批量截取pdf文件
  • 前嗅ForeSpider采集配置界面介绍
  • 使用parted解决大于2T的磁盘分区
  • 微信小程序:实现悬浮返回和分享按钮
  • 在weex里面使用chart图表
  • #AngularJS#$sce.trustAsResourceUrl
  • (06)Hive——正则表达式
  • (1)(1.9) MSP (version 4.2)
  • (arch)linux 转换文件编码格式
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (五)c52学习之旅-静态数码管
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)EOS中账户、钱包和密钥的关系
  • (转)jQuery 基础
  • (转)负载均衡,回话保持,cookie
  • .“空心村”成因分析及解决对策122344
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .NET Remoting学习笔记(三)信道
  • .NET 设计模式初探
  • .NET上SQLite的连接
  • /boot 内存空间不够
  • ::before和::after 常见的用法
  • ;号自动换行