初中函數(shù)入門 大數(shù)據(jù)中的Scala好掌握嗎,自學(xué)可以嗎?
大數(shù)據(jù)中的Scala好掌握嗎,自學(xué)可以嗎?學(xué)習(xí)大數(shù)據(jù)技術(shù)需要掌握Scala。但是,在學(xué)習(xí)Scala之前,您最好在一定程度上了解java和任何函數(shù)式語言(Haskell、SML等),特別是在您可以在編程
大數(shù)據(jù)中的Scala好掌握嗎,自學(xué)可以嗎?
學(xué)習(xí)大數(shù)據(jù)技術(shù)需要掌握Scala。
但是,在學(xué)習(xí)Scala之前,您最好在一定程度上了解java和任何函數(shù)式語言(Haskell、SML等),特別是在您可以在編程范式之間自由切換之后。
Scala不偏向大數(shù)據(jù)方向的科學(xué)研究。它被用于許多地方,如火花。
1,JVM基礎(chǔ),與Java完全兼容。對(duì)于堅(jiān)實(shí)的java基礎(chǔ)的學(xué)生,學(xué)習(xí)斯卡拉非常友好!2!在普通工具中,水槽和Hadoop是用java編寫的,Scale和卡夫卡是Scala編寫的。
所以對(duì)于想學(xué)習(xí)大數(shù)據(jù)的學(xué)生來說,Scala確實(shí)是最受推薦的。
作為一種相對(duì)較新的語言,Scala有一個(gè)混亂的社區(qū)。在scala社區(qū)中有許多不同的嘗試,主要是Java和Haskell,以及actor和reactive編程。如果你還沒有掌握一個(gè)成熟的編程范例,我認(rèn)為你很可能買不起Scala。!當(dāng)java編程基礎(chǔ)很好的時(shí)候,學(xué)習(xí)Hadoop系統(tǒng),然后安排學(xué)習(xí)Scala,然后學(xué)習(xí)Scale,卡夫卡等等。這個(gè)順序更科學(xué)合理,更容易讓大家掌握。
推薦書籍:Scala編程,Scala函數(shù)編程https://www.toutiao.com/i6543924910664712718/
函數(shù)式編程(Functional Programming)相比面向?qū)ο缶幊蹋∣bject-oriented Programming)有哪些優(yōu)缺點(diǎn)?
面向?qū)ο筇貏e符合人類認(rèn)識(shí)世界的思維方式。OOP的興起源于大規(guī)模軟件系統(tǒng)開發(fā)中對(duì)代碼管理、重用和擴(kuò)展的需求。OOP為代碼結(jié)構(gòu)的合理性提供了更多的設(shè)計(jì)可能性和空間。面向?qū)ο蟮娜齻€(gè)特性,封裝、繼承和多態(tài),都是表面的特性。OOP的真正靈魂是抽象。這個(gè)概念貫穿于OOP語言的各個(gè)層次和開發(fā)的各個(gè)環(huán)節(jié)。只有深刻理解抽象,才能深刻理解OOP,充分發(fā)揮其優(yōu)勢(shì)。
函數(shù)式編程是一個(gè)非常古老的東西,這就是為什么它今天可以重用的原因。由于數(shù)據(jù)量的激增和硬件的高速發(fā)展,需要多核處理。functional最重要的特性是無狀態(tài)的,它沒有變量,因此它本身是線程安全的,這決定了它特別適合于高并發(fā)、大數(shù)據(jù)量的處理。
Face object和function都是從語言特性方面支持的編程思想,它們并不矛盾或?qū)α?。因此,我們可以利用他們的?yōu)勢(shì)來發(fā)展。這也是開發(fā)語言未來發(fā)展的一個(gè)方向,即支持人臉對(duì)象和函數(shù)表達(dá)式的多范式編程?,F(xiàn)在最典型的代表是Scala。