1. Dart和TypeScript來了,讓我怎麼學習javascript
我覺得你想多了,最直觀的來說如果你現在已經掌握了Dart或者TypeScript,請問你怎麼找工作?
作為相同類型的語言,Dart, TypeScript 和 Javascript必然大同小異,所以日後需要的時候轉化過度幾乎是沒有門檻的。
不用人雲亦雲,咱們都是看熱鬧的,咱們都是語言的使用者而不是研發方,就如同js有多種框架一樣,會用jQuery的人學Mootools會吃力嗎?
2. JavaScript 會被諸如 Go,Dart 等其他語言替代嗎
Go剛出那幾年一直在用它,我很確定不可能替代js。目前所有編程語言中,只有c/c++與js分別在OS/Browser領域成為「標准」,連Python在cg領域都被c#、js入侵,這種路徑效應,是幾十年都很難改變的。
但是,如果使用Node做伺服器端開發則要小心,除非是採用typescript或者可以良好的應用函數式編程,否則得不償失。伺服器端,就應該跑設計良好的靜態語言,或者是函數式的動態語言(因為函數式天生更健壯),anders說過(c#作者):你告訴編譯器的越多,它為你做的越多;以前的瀏覽器端只能跑腳本語言是沒辦法,因為代碼是客戶端過來,必須解釋執行。
以前c++、java開發效率不夠,所以才導致Python,Ruby、PHP等動態語言的流行,現在靜態語言及其框架的開發效率已經接近動態語言。像F#這樣支持自動泛化的語言,可以擁有動態語言同等水平的簡潔性,卻仍可確保類型安全。
3. Dart 語言失敗了嗎
Dart語言沒有失敗。
1、學習過 Java 、Scala或者 Kotlin 的開發者,再學習Dart 幾乎沒什麼難度。Dart 語言本身的上手難度也不高,它綜合了動態語言和靜態語言的一些特性,屬於偽動態語言。
2、Dart雖然是一種面向對象的語言,但是也支持函數式編程。Dart的語法特性讓代碼實現十分簡潔,很多用戶非常喜歡。
3、Dart語言可以開發的跨平台移動UI框架。Dart 是一種易於學習、易於擴展、並且可以部署到任何地方的應用編程語言。
dart語言一些注意點
1、const是編譯時就要確定值,所以不能這樣寫:
const datetime tim=datetime(); //因為datetime()的值只有運行時才能確定。
2.類大括弧外面沒有分號,如:
Class p{
Pass….
}
4、typedef Fly = void Function(int value);//Fly是定義了一個方法,該方法只有一個int形參,Fly不是特定的函數,而是一個類型,可以用來定義變數。Fly類型的變數都是特定的具體函數。
5、函數位置參數使用方括弧[]括起來: int f(int x, int y,[int z]){}//z是可選的形參
函數命名參數用大括弧{}括起來:int f({String name,String Sex}){},可以這樣調用:
f(name:』wangziyou』,Sex:』Male』);但二者不能同時使用。
4. javascript會被其他語言代替嗎
首先排除掉Go,這個東西是做服務端的,定位也是系統編程。主要說說dart:
dart這個語言最關鍵的地方其實是兩個:1.相似性;2.dart2JS。
相似性:
google搞的這個dart你會發現如果有java,c#,javascript背景的開發人員,那麼這個語言幾乎是0學習負擔,直接拿來就能用,做項目。裡面有很多好的特性都是你非常熟悉的,語法難度(目前)介於java和c#之間,可選類型的動態語言,彌補動態語言tooling,靜態分析上的短板(盡管這個可選類型爭議很大,尤其是純粹從設計語言上的角度上去看)。
dart2JS:
dart vm將來會內置到chrome中,但其他瀏覽器可能不會支持它,所以dart2JS就顯得很重要,這樣dart寫的程序可以在所有瀏覽器上執行,至於性能和體積等等問題這個變成了編譯器優化的部分了,純粹的技術上問題,沒有什麼不可逾越的障礙了(例如讓其他瀏覽器接受dart vm這種非技術性障礙,這個很難逾越),只需要時間去完善。最終有點類似於手寫匯編和編譯器生成的匯編哪個效率高的問題。
有了語法上的高度相似性和dart2JS,那麼dart失敗與成功其實不是那麼重要了,因為google最終的目的不是讓大家都一定要去使用它的語言,而是要讓web進化的更快一些,或者說有一個比現在更好的javascript快點的到來,這才是它最想要的結果,類似於它的什麼高速光纖等等,都是這個套路,讓你更加依賴web,因為web是它盈利的關鍵入口。
2011年google內部有郵件說明過為啥要做這個語言?他們有2套方案會一直並行的去做下去:
1.v8團隊繼續優化js引擎,一起參與進化javascript語言;
2.發明一個新的語言(dart),最終替代JS。
方案1風險小但進展太慢它等不及,方案2風險大但回報也大。最終他們決定同時執行兩套方案。
而dart的開發者大部分就是v8,chromium的團隊人馬,dart中很多新東西都和v8有關聯,dart一些新的特性未來可能也會被ecmascript 接受成為未來js的新標准,所以最終無非就是兩個結果:要麼dart失敗了,但dart里很多好的東西都被js吸收了,js煥然一新;要麼dart成功了,代替掉了js。無論是哪種結果,web的進化進程都被加快了,這個就是google的真正目的(有點像它做android但卻不直接通過這個系統本身來賺錢)。
所以說:這個語言在設計中【保持相似性】和【dart2js】是很關鍵的兩個方面。那麼你覺得它能否代替掉JS對你影響大么?也不會出現什麼你學了很久的東西未來某天發現沒用武之地了這種情況,所以該用js的繼續接著用,想嘗試dart的也別擔心別的瀏覽器跑不了,也不用擔心要從頭開始學一門新的語言的負擔,因為它裡面大部分東西都是你早都掌握了的。
5. dart語言的dart語言
谷歌發布網路開發語言Dart早期預覽版
谷歌於2011年10月10日發布了網路編程語言Dart的「早期預覽版」 。谷歌希望利用這款語言,幫助程序開發者克服JavaScript語言的缺點。
Dart開發團隊主管拉爾斯·巴克(Lars Bak)在谷歌官方博客中詳細介紹了這款語言。 巴克稱,Dart支持所有項目,從小型鬆散的項目到Gmail和谷歌文檔這種大型復雜的項目。在今天的一次采訪中巴克稱,如果想讓互聯網變得更美好,那就必須創新,其中就包括開發新的編程語言。
另外,谷歌的Dart語言網站也在今天上線,其中包括編寫Dart程序的開源工具、代碼範例和教程、支持軟體的支持函數庫、Dart語言規范和討論論壇。 上個月爆出的一份谷歌2010年內部備忘錄顯示,Dart的目標就是要代替JavaScript網路開發通用語言的地位,但此次巴克在采訪中表示,Dart不會替代JavaScript。JavaScript是當今網路的基石,它還將在很長一段時間內保持這種地位。
巴克表示,目前的當務之急是獲得外界對Dart的看法,並吸引他們參與Dart程序的開發。Dart目前是公司關注的編程語言,谷歌希望Dart能獲得正面評價。 Web 編程吸引人的特性之一便是迅速的開發周期:源碼改動後生效所需的時間不到一秒。Google 希望為 Dart 語言的開發者提供相同的體驗,於是將 Dart 虛擬機整合進 Chromium 瀏覽器,並在今天發布了適用於 Mac 與 Linux 平台的 Dartium。
該技術預覽版本允許用戶通過 Chromium 中所整合的虛擬機(Dart VM)直接運行 Dart 語言編寫的程序,免去了單獨編譯的步驟。以後這些程序將從 Dart VM 更快的性能與較低的啟動延遲中受益。
Dart 從設計之初就為配合現代 web 整體運作而考慮,開發團隊也同時在持續改進 Dart 向 JavaScript 轉換的快速編譯器。Dart VM 以及現代 JavaScript 引擎(V8 等)都是 Dart 語言的首選目標平台。
這次發布的整合 Dart VM 的 Chromium 只是技術預覽版,不應該用於日常瀏覽。待更多測試與開發者反饋後,開發團隊計劃最終將 Dart VM 整合到 Chrome 分支中。 開發人員應該有一個快速迭代、即時反饋以及 Zero-Install Tools 的環境來研究語言和API。為了幫助新手和經驗豐富的Dart開發人員,Google發布了DartPad 1.0,以嘗試在瀏覽器中用無摩擦方式(無任何中間環節)來研究Dart代碼和API。
DartPad支持完整的Dart語言、核心鏈接庫,甚至是HTML/CSS。同時,支持代碼提示,即時錯誤信息提示,實時API等功能,有經驗的Dart開發者會發現,DartPad是一種最簡單的使用Dart語言的方法,並且可以學習新的模式和習慣。
6. 微軟的 TypeScript 怎麼樣,有用過的嗎和 Dart 比有什麼優勢嗎
TypeScript是一種由微軟開發的自由和開源的編程語言。它是JavaScript的一個超集,而且本質上向這個語言添加了可選的靜態類型和基於類的面向對象編程。安德斯·海爾斯伯格,C#的首席架構師,已工作於TypeScript的開發。
TypeScript擴展了JavaScript的語法,所以任何現有的JavaScript程序可以不加改變的在TypeScript下工作。TypeScript是為大型應用之開發而設計,而編譯時它產生 JavaScript 以確保兼容性
TypeScript 支持為已存在的 JavaScript 庫添加類型信息的頭文件,擴展了它對於流行的庫如 jQuery,MongoDB,Node.js和 D3.js 的好處。
7. it前沿技術
在這個科技不斷更新換代的21世紀,網路傳真正受到越來越多企業的青睞。
網路傳真是基於PSTN(電話交換網)和互聯網路的傳真存儲轉發,也稱電子傳真。網路傳真和傳統的傳真機區別在於,它無需任何軟硬體的支持,只要你能上網就能完成收發傳真。但這還是要依託一個可靠穩定的平台。
SoftTown軟建堂為您解決這一難題。SoftTown網路傳真無需任何軟硬體、發送接收也不用紙張(傳真直接進入電腦),因此它的投入成本和運行成本是十分廉價的。收發網路傳真的時候就像發郵件,只要登錄到SoftTown賬戶上,就可以直接發送接收傳真了。SoftTown網路傳真是通過SoftTown平台的電子傳真收發功能,將企業用戶的產品及服務信息直接傳送到目標客戶的傳真機終端。SoftTown傳真實現了傳統傳真與互聯網的有效嫁接,使用傳真就像Email收發郵件一樣收發傳真方便快捷,無論您身處何處,均可自由收發傳真。有了SoftTown網路傳真的群發功能,您再也不需要在傳真機前一個號碼接一個號碼的撥號、等待發送,只需花一分鍾提交傳真任務給SoftTown傳真系統,所有的費心事SowtTown為您輕松搞定。
8. Google的飛鏢有多犀利
當今IT業界,三足鼎立。三巨頭中,Google還如同赤壁後的劉備,正處於全面出擊時期,生態系統還未成型。Apple有OC,Microsoft有.NET,Google只能用最普通的C++和JavaScript,還有個Java,整天被人討著要專利費。這種借荊州的日子怎麼能忍,Google先推出了Go語言,欲取代C++和Java;去年底又推出了Dart語言,目的想取代JavaScript,不僅是自己用,而且想徹底打破Web開發僵局。互聯網時代開啟以來,互聯網這么多年來總體是以超高速發展。然而根據辯證法還是什麼法則,事物發展往往是螺旋上升的。互聯網這么多年來也經歷了兩次低潮,一次是2000年泡沫破裂,另一次就是現在這次,這一次不像2000年那麼大起大落,卻是Web高速發展多年後瓶頸矛盾的交織,加上金融危機後餘波未散的影響,恐怕互聯網未來數年內將處於一個整合期。如今各種勢力明爭暗鬥,業界形勢錯綜復雜,如霧里看花。Dart(飛鏢)就是Google逐鹿互聯網天下的利器。現在還處於待而未發的狀態,至於會不像小李飛刀,例無虛發,我認為可以期待Go。期待的第一個理由是Google很重視Dart,雖然是半成品,至少不是像Go語言那樣的試驗品。Go語言,連個IDE也沒有,官方網站簡潔到土,土到掉渣,好像連CSS都沒用似的,一看官網,學的慾望就下去了一大半。Dart的官網看上去就又簡潔又詳盡,從API到FAQ,該有的都有了。要體驗Dart很簡單,如果裝了Java SDK,只要下載個集成環境(只有145M),解壓縮,運行DartEditor即可。作為初代IDE,界面很不錯了,我覺得相當於VS2003的程度吧,也支持調試。第二個期待的理由是Dart的語言特性,官網上文章介紹說Java程序員可以一小時熟悉Dart語法,那C#程序員半小時就夠了。看那句 list.sort((a, b) => a.compareTo(b)),是不是倍感親切?當然Dart剛剛起步,語言特性沒有C#那麼豐富,比如沒有特性、反射之類的支持,不過能看出其該有的總歸會有的。第三個理由,Dart從一開始就是開源項目,我們都可以參與其中,如果有一個Dart也成為像C一樣不朽的語言,我們還可以名留青史呢。第四個理由,是Google推廣Dart的資本,不只是出錢出人,而是靠對互聯網的話語權。Chrome瀏覽器份額穩步攀升(Chrome超越IE的意義),Dart 1.0正式發布後,Chrome就將支持。第五個理由,Google把Dart的定位擺得很正。Dart目標是取代JavaScript,而Google的目標卻是讓Web變得更好。雖然其他勢力,如微軟不出所料地不待見它(谷歌Dart語言遭微軟潑冷水)。為推廣Dart而排斥Javascript,那樣的極端路線會碰得頭破血流,Google決不會干。多一種選擇有什麼不好呢?正如FAQ回答的第二個問題,這門語言是Web開發需要解決的問題的方案嗎 (Is the language really what needs to be fixed in web development?)我翻譯水平不高,回答大體意思是:我們想解決所有這些問題。於是有了Dart語言,又有了整個Dart項目。Dart項目押注在語言(JS)需要一些改變,但我們也想改進DOM和其他的庫,並改進我們用的工具。與此同時,Google也對JavaScript能進化以適應需要下注,並作出貢獻。Google想讓Web開發更棒,如果JavaScript能夠做到,我們也很高興。Dart如果取代JS,也將是十分平穩流暢。Dart與JavaScript編譯器密不可分,Dart測試環境Dartium(和Chrome差不多), 就是將Dart編譯成JS執行。DartEditor中也可以直接把Dart代碼編譯成JS文件,即使現在就用來做Html5開發,效率也比寫JS要高,相當於另一門haXe般的「上帝玩偶」。 希望採納
9. DART Karaoke Studio 怎麼用
一、抓音軌
也就是把你想演唱的歌曲從CD轉換為.wav文件。我們打開DART Karaoke Author,點擊上方DART CD-Recorder按鈕就打開了DART CD-Recorder的工作窗口。現在把要轉換的歌曲CD放入CD-ROM里,點擊抓音軌按鈕,這時會彈出一個對話框,這是問你是否想通過網上的CDDB資料庫來搜索CD的歌名,這個搜索當然需要你在線,點擊「NO」就進入抓音軌的界面。下面選擇需要的第6首歌,點擊「Add」,這首歌就被選中了。你可以點擊選擇窗口下面的按鈕來試聽歌曲,Change按鈕是讓你設置抓好的歌曲存放位置和名稱。一切搞定後點擊「OK」就開始抓音軌了,抓完以後我們可以在列表裡看見Track06.wav這個文件。DART CD-Recorder還具有很強的音頻處理功能,如果你的歌曲音質不太好(例如是從磁帶錄制來的),還可以對它進行修整。點擊上方的音頻處理按鈕,在左邊彈出的音頻處理窗口裡我們可以看到有5種修整手段,它們從上到下分別是:Declick——去除錄音過程中產生的咔嚓聲;Dehiss——去除寬頻段的噪音; Equalizer——EQ調節,也就是我們通常說的均衡器;Fade——淡入淡出,它可以使音樂的音量慢慢變大或者變小;Normalize——調整音頻信號的動態范圍,使聲音不至於忽大忽小。按下每一個效果按鈕後右邊有相應的參數可以調節,你可以都調整試試,非常有意思。下面的Play Source是試聽沒有處理的效果,而Play Result是處理後的效果,一邊試聽一邊調整,直到完全滿意後點擊
「Process」按鈕就可以了。如果你覺得DART CD-Recorder提供的效果器太簡單不夠專業,你想使用其它DirectX音頻效果器插件,只要點擊「DirectX」按鈕,在彈出的窗口裡你就可以選擇其它效果器插件了,當然,前提是你要裝有這些效果器插件。
二、去除主唱聲
現在回到DART Karaoke Author窗口,我們來把錄制的歌曲中的人聲去除。點擊「Open Soundtrack」圖標,在文件選擇窗口裡打開剛才抓下的文件Track06.wav,點擊「DeVocalizer」圖標,在DeVocalizer窗口)里有3個參數,它們是指:Attenuation——使聲音變薄,參數越大演唱聲消除得越明顯,但伴奏聲音也會變得很飄,所以你通過調整它來找到一個合適的位置;Bass retrieval——聲音變薄後音樂的低音會被衰減得很厲害,所以你可以通過這個參數來恢復任意頻段的低音;Output——輸出電平調節,旁邊的燈是過載顯示,應該盡量不要使過載燈常亮。Play Source和Play Result也是試聽按鈕,Change可以設置處理後的文件存放位置,調整滿意後點擊Process進行處理,完成以後你就可以聽到你希望已久的伴奏音樂了。這里要指出的是,DART Karaoke Author也支持直接打開MP3文件進行處理,不過效果就沒有CD的好啦。
三、輸入歌詞
首先你要把歌詞打成一個標準的.txt文本文件,格式非常簡單,每句歌詞佔一行,如果一句太長的話,也可以分成幾行。然後點擊「Import Lyrics」按鈕,在文件選擇框里選中你的歌詞文件就完成了,你會在歌詞窗口裡看到一句一句排列好的歌詞。這里也要非常遺憾地指出,DART Karaoke Author不支持中文的雙位元組,所以我們只有在輸入英文歌詞的時候才能用這個功能了。
四、使歌詞和音樂同步
1.把剛才的伴奏音樂和歌詞在窗口都打開;
2.按句子位置來設置歌詞顯示位置。非常簡單,點擊「All」將從頭開始播放歌曲,在需要顯示歌詞的位置你只要點擊「Set Flag」按鈕或者空格鍵就會在這個位置上做一個標記,顯示第一句歌詞。依此類推,你只要看好下面的歌詞,在需要的時候按一下「Set Flag」按鈕,直到整首歌曲完成。當然你也可以隨時停止(按「Stop」),或者從游標的位置開始播放(按「From Cursor」),非常方便。
3.全部完成以後,為了使顯示更准確,我們還要在細處調整一下標記的位置。這也非常簡單,你只要把滑鼠放到紅線上就可以左右拖動它,把那些位置不準的都弄好就可以了。
4.下面再更精確地按每個詞來設置顯示位置,點擊下面的「Word」按鈕,你會發現所有的句子標記都變成了詞標記。和上面的方法一樣,你只要拖動每一個單詞到准確的位置就可以了。
五、錄制你的演唱
首先要把話筒插在你音效卡的MIC IN插口上,然後在混音器里把話筒打開,同時也把錄音源選為話筒。好,現在按下「Recorder/Player」按鈕,在Recorder/Player窗口裡選擇用哪種音樂作伴奏:Original File——原WAV文件,也就是從CD直接抓下來的WAV文件,沒有經過原唱消除處理的;Devocalized File——經過原唱消除處理的WAV文件;Other——其它WAV文件。如果你對歌曲還不很熟,可以使用原文件來跟著歌手演唱,這樣節奏會准一些。Change可以設置錄制的文件存放位置,還要把Open Procer When Finished的復選框選中。設置好後點擊「Run」就彈出卡拉OK的播放和錄音窗口,怎麼樣?很COOL吧:)。好啦,來,咳嗽兩聲,點擊右下角的紅色錄音按鈕,聽著音樂,看著歌詞開始唱吧!在翻雲覆雨的演唱結束後,點擊「Quit」按鈕,你會看到DART Karaoke Procer窗口,它允許你把剛才製作好的伴奏音樂和你的演唱進行混音。Input欄的兩項分別是伴奏音樂和你的演唱所對應的WAV文件;Balance可以分別調節兩個文件輸出電平的大小,也就是音量大小;Preview可以分別預聽兩個文件以及混合後的效果(Play Result);Output可以設置混音後文件的位置。都搞定後點擊Process就完全做好了,千萬別忘了存檔,它將被存為.dka為後綴的文件。
六、欣賞
錄制好了以後我們怎麼欣賞呢?有一點復雜,每次都需打開要欣賞的.dka文件,然後點擊「Recorder/Player」按鈕,在Other處選擇你混音後的文件名,然後點擊「Run」就可以在Recorder/Player窗口裡欣賞了。如果你只是想跟著演唱,只要選擇經過原唱消除處理的文件名就可以對著歌詞卡拉OK了。
七、總結
DART Karaoke Studio是一個很有意思的軟體,它不是一個專業的音頻處理軟體,但是它所有的功能都圍繞著卡拉OK這個目的展開,沒有任何多餘而花哨的功能,並且把在專業音頻軟體里需要復雜處理才能達到的功能變得簡單易用,我想這就是它的魅力所在吧。如果你覺得它能給你帶來方便和娛樂,那就足夠了。它的官方地址是:www.dartpro.com
10. 如何評價Google推出的基於dart的sky
先看一則新聞:
谷歌推出全新Android開發語言Sky:讓App更流暢
除游戲之外的Android應用通常使用Java語言來開發,而谷歌內部的一個團隊正在探索全新的應用開發方式。他們利用了谷歌自主的網頁開發語言Dart來開發Android應用。這幫助他們專注於速度,並可以與網頁進行深度整合。
Dart由Chrome V8引擎的團隊成員發明。該團隊近期舉行了Dart開發者峰會,展示了在Android項目中使用的Dart。在Android項目中使用的Dart並未被稱作「Android版Dart」,而是有了一個新名字「Sky」。目前,Sky只是一次開源的嘗試。但相對於傳統的Android應用開發方式,Sky有著多方面優勢。
Sky的最主要目的包括提高運行速度和響應速度。在大部分設備上,應用流暢的標准都是實現60FPS的幀率。不過,Dart團隊希望實現高達120FPS的幀率。目前在Android平台上,許多應用連標準的60FPS幀率都難以達到,更不用說120FPS。60FPS的幀率要求每16毫秒繪制一幀,當畫面繪制速度達不到這一水平時,應用就會出現卡頓。
Dart團隊展示了一款演示應用,每幀的繪制速度僅為1.2毫秒。盡管這只是一次簡單的展示,但這意味著,對於開發流暢而復雜的應用來說,Sky有著很大的空間,這也使120FPS的幀率成為了可能。該團隊表示,Sky的應用程序介面(API)不會影響界面的主線程,這意味著即使應用運行速度變慢,用戶界面仍將保持流暢的響應速度。
Sky並不依賴於平台,其代碼可以運行在Android、iOS,以及任何集成了Dart虛擬機的平台上。這類應用的運行類似於網站。應用的很大一部分基於HTTP,這意味著開發者可以進行持續的開發,並確保所有用戶一直使用最新版本。這款演示應用的弱點在於無法離線運行,而啟動應用則需要1到2秒鍾時間,因為應用需要下載數據。不過,這兩方面的問題可以通過緩存機制來解決。
基於HTTP的模式使開發變得很簡單。開發者不必編輯代碼、編譯並打包,這些代碼可以在HTTP伺服器上編輯。而用戶只需關閉並重新打開應用,即可完成應用的「升級」。這就像是一款網頁瀏覽器。Android開發者可以使用Sky Framework,這提供了一整套Material Design小工具,幫助開發者方便地增加操作欄、觸控效果、導航面板,以及Android應用中所需的一切元素。
與普通應用類似,Sky應用可以獲得Android的全部許可權和API,但結合來自網頁伺服器的自動升級功能,這將帶來信息安全問題。不過目前,Sky僅僅只是一個試驗項目。在Sky成為一種主流的Android應用解決方案之前,Sky團隊需要解決這些問題。該團隊的GitHub頁面顯示:「我們仍在對Sky進行頻繁地迭代,這意味著框架和底層引擎有可能以不兼容的方式出現改變。」