大数据开发编程语言
如果学大数据,最好学习哪种编程语言?是java还是python或者c++?
实际上,Java本来就是从C++衍生出来的, 而且J***a语言的对象模型几乎就是C++对象模型的简化版。然而,C++和J***a之间仍存在一些显著的差异。
j***a语言另辟蹊径,充分考虑程序员们为了应对复杂多变的应用开发,降低开发成本,提高代码复用,选择了编程效率优先这条路。j***a语言的设计者希望语言可以做到跨平台(write once,run anywhere)。那么如何做到跨平台呢,j***a的解决方案是:在操作系统和应用程序间加入一层虚拟机,虚拟机负责屏蔽平台差异,而应用程序编译后生成的是字节码(bytecode),虚拟机通过加载字节码执行,这样就能够满足一份程序在不同平台都生成相同规范的字节码从而做到跨平台,此外各大商业公司、开源社区提供了功能强大的库供j***a程序员使用,效率能不高吗? 为了消除内存分配和内存回收工作量,虚拟机还需要负责内存的分配和回收。
J***a是一种优秀的程序设计语言,相对而言,J***a更容易学习,并且编程环境更为简单。
1.J***a为纯面向对象的语言,能够直接反应现实生活中的对象,容易理解,编程更容易。
2.跨平台,j***a是解释性语言,编译器会把j***a代码变成中间代码,然后在JVM上解释执行,由于中间代码和平台无关因此,j***a语言可以跨平台执行,具有很好的移植性。
3.J***a提供了很多内置的类库,简化了开发人员的程序设计工作,缩短了项目的开发时间。例如,J***a语言提供了对多线程的支持,提供了对网络通信的支持,最重要的是提供了垃圾回收器,这使得开发人员从对内存的管理中解脱出来。
4.去除了C++语言中难以理解、容易混淆的特性,例如头文件、指针、结构、单元、运算符重载、虚拟基础类、多重继承等,使得程序更加严谨、简洁。
J***a 是纯粹的面向对象语言,它因统一的字节码文件和差异化的 JDK 而具有平台无关的特性。
我的感觉是大数据用j***a,人工智能用Python。但是编程语言选择不是很重要,性能或许有点不同。语言自身的性能常常是我们在开发复杂架构时决定到底使用哪种语言的一个关键因素,而且这一因素常常被过度夸大。实际上真正重要的是我们如何使用一种语言,正如Linus Torvalds所说,“低水平的程序员总在关心代码,而高水平的程序员则关注数据结构及其关系。”
想一想Hadoop MapReduce,它最早用J***a编写。HDFS呢?也用J***a来编写。连Storm、Kafka和Spark都可以在JVM上运行(使用Clojure和Scala),这意味着J***a是这些项目中的“一等公民”。另外还有像Google Cloud Dataflow(现在是Apache Beam)这些新技术,直到最近它们还只支持J***a。
使用J***a让你可以访问一个庞大的[_a***_]系统(包括分析器、调试器、监控工具以及确保企业安全和互操作性的库),以及除此之外的更多内容,大多数内容在过去二十年已久经考验(很遗憾,J***a今年迎来21岁,我们都老矣)。
当然现在支持其他语言包的API都有,但是从历史沿革的角度看,我觉得是bigdata用j***a,AI用python。
欢迎讨论学习路线。
学习大数据需要具备怎样的编程能力?
做大数据开发需要具备一定的编程能力,这个编程能力主要体现在以下三个方面:
第一,对编程语言的语法要比较清晰。大数据开发可以使用的编程语言比较多,包括J***a语言、Python语言、Scala语言等。一般情况下在Hadoop平台下使用J***a和Python比较多,在Spark平台下使用Scala语言比较多。以J***a语言为例,作为大数据开发程序员来说,要掌握J***a面向对象的编程过程,J***a多线程开发、J***a网络开发、J***a数据库开发等基础部分内容,当然如果要做落地应用,还需要掌握J***a Web开发的相关内容(我在头条上写了关于学习J***a和Python的系列文章,感兴趣的朋友可以关注我的头条号并查看)。
第二,掌握常见算法的实现。大数据开发大部分情况下都是对数据进行各种操作(排序、分析)等,而操作这些数据就需要使用各种常见的大数据算法,比如最常见的排序算法等。算法设计与实现是大数据开发的重点内容,所以这部分能力的要求比较高。不同语言的实现过程还是稍微有一些区别的,Python语言在做算法实现方面要比J***a语言简单一些。
第三,掌握平台知识。大数据编程是基于大数据平台的,所以掌握大数据平台的知识是做大数据开发的重要基础。比如Hadoop平台本身是***用J***a语言开发的,所以与J***a语言的整合还是比较好的,当然使用Python编程也可以。不管使用什么语言,都需要了解平台对开发的各种支撑。
总的来说,大数据开发需要学习的内容还是比较多的,除了编程语言自身的内容以外,还需要学习算法的设计与实现。另外,大数据平台有一系列功能模块和组件,要想合理利用这些模块同样需要一个学习的过程。
大数据开发不建议在脱离项目的情况下进行,建议在实际项目中一边学习一边使用,这样的效果会比较好。
大数据是我的主要研究方向之一,目前我也在带大数据方向的研究生,我会陆续在头条上写一些关于大数据方面的文章,感兴趣的朋友可以关注我的头条号,相信一定会有所收获。
如果有大数据方面的问题,也可以咨询我,谢谢!
[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。转载请注明出处:http://www.wnpsw.com/post/18761.html