2009-09-06 118 views
142

對於那些使用Haxe的人,是什麼使它對你有用?閱讀網站看起來非常有前途。它是否提供重要的便攜性?Haxe值得學習嗎?

什麼是一些現實世界,也許正在被讚賞的優勢?

什麼是陷阱或陷阱?

+0

從來沒有聽說過這個看起來有趣。 – JoshBerke 2009-09-06 01:39:26

+0

我也沒有,約什。這使我認爲社區的規模(和/或質量)可能存在嚴重問題,這會在嘗試開發某些內容時導致更大的風險。 – 2009-09-06 10:45:43

+9

爲什麼社區應該存在嚴重的問題?社區不是很大,但它非常支持,只要看看郵件列表的活動。 – 2009-09-06 11:44:42

回答

121

Haxe值得學習嗎?

簡而言之:絕對是!

對於那些使用Haxe的人,是什麼使它對你有用?

如果你是一個Web開發人員,你知道你不能用單一技術堅持太久。遲早你必須處理環境或目標的變化(你爲.NET開發,但重要的客戶需要PHP,或者該小部件應該在Flash而不是Javascript),這是最好的情況。在最糟糕的情況下,你必須經常在同一個工作日多次切換。

這些開關可能會浪費你大量的時間,因爲你需要改變你的編程範例太多次,也可能是因爲你在爲特定目標編寫庫時會有很多重疊。 Haxe試圖通過只有一種源語言(Haxe語言)和許多輸出(通過Haxe編譯器)來緩解過渡的痛苦。這門語言非常友好,很容易學習,不管你的背景如何。

閱讀網站看起來非常有前途。它是否提供重要的便攜性?

無論您部署到何種平臺,語言都是相同的。因此,您可以用JS,Flash,C++等相同的方式定義類/接口/枚舉/類型定義。如果您定義的類型不依賴於特定的平臺API,則可以從平臺重用到平臺而無需任何努力。所有平臺還共享通用的API,如XML訪問,HTTP連接和反射。擁有共同點的平臺(即Neko和PHP)共享相同的API,用於文件訪問或Web服務器開發等。

什麼是一些現實世界,也許正在讚賞的優勢?

  • 如果您正在使用的Flash/Flex的經歷,你知道編譯器如何工作減慢(唯一的優點是可以採取在等待一個茶歇;))。 Haxe編譯器速度快很多,速度很快,大部分時間你甚至都沒有注意到它的工作。
  • 生成的字節碼比Adobe工具生成的字節碼快得多。
  • 同樣在Flash領域,Haxe可以「內聯」功能或訪問僅在其他地方通過使用Alchemy才能使用的內存功能。
  • 如果你需要它,你也可以決定從哪個版本的目標Flash,從6到10; API已經改變了很多,但Haxe語言完全一樣。

談到服務器端,我們都知道PHP是如何無處不在的。如果您的Web應用程序增長,您可以使用Haxe開發一個應用程序並將其擴展到Neko或甚至C++。

什麼是陷阱或陷阱?

下面是常見的誤解名單:

  • Haxe is young and immature不是真的,HAXE現在幾乎是4歲,已經看到25點正式發佈(未建立)+ 13周的阿爾法和貝塔,它被更新不斷有一個非常敬業的社區。它在很多發展領域被很多人專業使用;看看mailing list archive找出人們如何使用Haxe。

  • Haxe is complicated因爲Haxe的主要目標是沒有任何問題的AS3,人們期望它必須有嚮導或GUI。如前所述,Haxe是一種語言和編譯器,它使它適合程序員,但對設計人員來說不是很好。

  • There aren't any IDEs真正的部分是IDE可以在許多方面得到改進,以更好地與Haxe集成,但已經有很多valid options

  • The only book published is already outdated有一定的道理也在這裏,可惜之前發生(從V1到V2)主要版本該書出版短短几個月的時間。該主要版本並沒有太大變化,但確實增加了一些不兼容性。這本書仍然是一個有效的資源(我不只是說,因爲我寫的;))

+1

感謝Franco的迴應。和IDE的列表。我對HaXe的Xcode插件很感興趣。這看起來超級甜美! UI框架包和Haxe的故事是什麼?例如,是否有可能將可可用HaXe作爲目標,並獲得OS X的本地小部件?基本上使用界面生成器並與HaXe源代碼鏈接在一起? – 2009-09-06 12:28:25

+0

如果C++足夠本地化,那麼這是可能的。你應該打包Cocoa調用,以便它們可以從haXe生成的代碼「可到達」。你可能已經知道當前的haXe版本可以開發iPhone應用程序;當然它仍然是非常實驗性的。考慮到C++目標僅在最新版本中引入。 – 2009-09-06 12:37:58

+2

你走了,編輯,以便閱讀! – RCIX 2010-08-27 06:15:31

1

自從Haxe開始以來,我已經把Haxe放在了雷達上。我同意這看起來很有希望,但我注意到開發人員並沒有像預期的那樣快速採用它(與RoR甚至Flex相比)。

無論Haxe現在對您有多好,您仍然會成爲早期使用者,您一定會遇到早期採用者通常面臨的問題。

雖然有一個非常活躍的郵件列表和非常有幫助的成員,但我仍然會等到更多人加入,並且會有更多書籍和資源被寫入。最後,Haxe幫助您使用單一語言編寫代碼,並針對不同的平臺(主要是JS和Flash,現在是NekoVM,PHP和C++),您真的需要這樣嗎?!

+1

我不確定這是採用率的公平比較。 使用Flex,它是來自Adobe的贊助語言。這自動給它「街頭信用」;) Ruby是圍繞着什麼的,當Rails出來時有10年的歷史。從我所看到的情況來看,似乎有更多的人轉而使用RoR,然後轉而使用普通的Ruby。相比之下,Haxe的年齡只有它的一半,雖然Haxe有許多框架正在開發中,但是沒有一個像軌道一樣具有病毒性。 – tylermac 2009-09-06 12:08:28

+0

認真?? RoR出來之前使用Ruby的RoR開發者的百分比是多少?如果一個開發平臺是由一家大公司贊助的,對我(作爲開發者)無關緊要? HaXe IMO的適應速度非常緩慢,這是我主要關心的問題 – Ammar 2009-09-06 22:58:10

+0

新方法對於每個人來說並不總是很明顯,我記得RoR和papervision這兩個近年來擴大了的項目對我很感興趣,我不得不說haXe的真正證明了它的潛力,我相信它會大於這兩種.. 2-3yrs會告訴;) – JLM 2009-09-06 23:18:25

4

我HAXE的主要用途仍僅限於Flash開發。我只是慢慢升溫到可以用於其他目標的想法。我仍然沒有看到這方面的優勢,並直接在PHP和JS中執行我的PHP和JS。

即使我沒有爲ネ後端發展是很大的支持有,因爲這意味着我可以編寫測試用例代碼並將它們集成到構建腳本,而不是隻能夠在運行它們一個Flash播放器。這是一個很好的優勢。

的代碼和開發的開放性也是一個很好的優勢。我真的需要一個預處理等的#line支持加入HAXE。我不認爲Adobe要永遠把我的要求當回事。

我發現作爲一種打字的語言比許多新的現代語言具有巨大的優勢。

在語言一致性和後端透明度方面存在幾個缺陷。我保留一個影響我的列表here。在這方面,當然沒有語言是完美的,但我對一種新語言有這麼多的話感到失望。

+1

您對「這裏」鏈接已經過期...刪除或更新,請(http://wiki.disemia.com/HaXe%5FLanguage%5FNuances) – djot 2013-09-30 12:33:44

2

是的,完全

,但它需要一個更好的IDE和文件,缺乏一個偉大的IDE(如基於一個日蝕),對我來說,就完全改觀了,我不能達到的生產率我做的水平在其他語言由於這個。

語言=偉大的 - 由最好英里發展 環境=差(此時恕我直言)

5

HAXE是一個非常寶貴的語言。它的許多加分常常被忽略。例如,它具有夢幻般的內置庫,使應用程序開發變得更加簡單,比如簡單但非常強大的ORM(Neko/PHP),完整的跨平臺遠程處理(Flash/JS/PHP/C++/Neko)支持的平臺可以與任何其他平臺無縫溝通,可靠的正則表達式庫(除Flash以外的所有支持)以及更多其他平臺。作爲一個說明,我最近編寫了一個使用Haxe for PHP/JS/Flash的應用程序,並發現開發速度呈指數級增長。當然,Haxe可能並不是以設計師爲中心的,但它也不是硬核。 Haxe非常容易學習和重用,隨着目標平臺數量的增加,Haxe開發人員也可以針對這些目標,而無需學習任何新東西。

25

「對於那些使用Haxe的人,是什麼使它對你有用?」

作爲一個創造性的閃光器,我真的沒有看到AS3的重點了!因此,從Flash用戶編碼器/藝術家這裏是我的看法:

在我目前的項目中,我有一個19歲的孩子,在我的指導下,他主要從時間線AS2/AS3移動到Haxe類,同時移植了AS2和AS3代碼。所以我不認爲Haxe比AS3更難使用或者在Flash中使用時明顯不同。就穩定性而言,我目前主要的抱怨是當前Flash播放器的各個方面,Haxe在開發Flash時確實比AS3穩定或更穩定。如果Flash變化(它可能是他們需要每年出售軟件!?),並且組件一直是我需要的東西,但大小是愚蠢的,所以我不願意像羊一樣進入Flex,甚至不願意轉向另一種XAML。

HAXE的主要優點是,你可以開始認真考慮創建一個從平臺離婚,將主要使用從現在5年類的,我懷疑這是你創建的任何AS3的真實,HAXE少綁定,可能我可以將代碼編譯爲JavaScript,Silverlight或Google隨後提供的任何內容。

我與Haxe的主要問題是,大多數的開發並沒有在Mac上,所以編譯C++和Haxe新功能的方面有時會跟蹤Windows用戶,但我沒有像Flash編譯這樣的核心Haxe問題。在設計師方面:我在運行時使用Flash IDE電影加載我的視覺資產,並在AS3中開發時也是如此,所以我的工作流程不依賴於AS3/Haxe,我喜歡簡單的生活,所以我使用Text3 for AS3或Haxe。我對Flash IDE及其強大的功能感興趣,但絕不會將其用於代碼,我的大部分Flash工作主要是代碼,所以我不是Linux的核心,Haxe不會阻止您使用Flash IDE,但如果您想要使用swfmill或薩姆你可以。

問題是:爲什麼浪費你的時間在商業語言AS3可能會改變只是爲了銷售未來的版本,並限於Flash播放器?

它沒有花我很長時間才能到達一個階段,我可以在javascript中創建遊戲或複雜的ide,而不需要jQuery等開箱即用Haxe ...它可以跨瀏覽器等... Haxe讓我們我將Flash編程技巧和界面開發理解帶到Flash之外(以前從未真正使用過JavaScript),如果我要學習純JavaScript,那麼我可能不會覺得如此啓用,更像是有人把我的手臂剪掉,我會寫很特定於平臺的代碼,現在我可以使用FEffects進行補間,然後添加一些編譯器開關並編譯到其他一些平臺並使用一些neash/nme。

我其實很喜歡編譯器對類型很聰明的方面,使我的代碼變得更清晰。而typedef很棒。

我看了一下PHP,覺得這是一種混亂的愚蠢的語言,對JavaScript來說也是一樣,我很高興我可以用Haxe來瞄準他們,而不必花費太多時間在黑客魔法上。

如果你喜歡爲視覺創造力的快速開發創建代碼,我認爲Haxe是理想的語言,甚至作爲一個自由職業者我正在商業上使用它。

17

我HAXE來看,

警告下面的段落是很有哲理的(實踐的基礎上進一步下降):

正如有人誰一直開到很多編程語言在我的時間短節目和別人誰當我感覺有些東西不適合我時,簡單地繼續前進;我發現哈克斯是我無法取得進步的東西,我不能'更好'。

我在過去發現,我花在一種特定語言上的時間花費與兩個關鍵因素有關,我需要多少語言才能得到結果,以及我覺得這種語言很容易掌握。但是對於Haxe來說,抓握時間要短得多,我把這歸因於我用各種語言編寫的小知識。直到哈克斯,我從未發現一個真正適合我的人,而且他覺得正確,他們要麼難以理解,要麼就是毫無用處;從我的角度來看至少是無用的。

Haxe讓我對自己的寫作有了更多的表達,我不是說每個人談論語言的質量都是「表現力」,我的意思是能夠有一個想法並且運行它,嘗試一些我覺得是對的。無論是成功還是完全失敗。

對於我來說,Haxe一直是一個非常簡單的學習曲線,我的c風格語言和AS2/3的一般背景,我沒有真正遇到任何麻煩。有一件事情總是阻礙我用新語言發展,這是理解特定語法/框架背後的概念,但即使我通過了這個障礙,我也會經常發現語言本身不是有限的,就是有限的,或者兩者兼而有之。對於Haxe,我既不受限制,也不會發現語言本身來限制我。隨着HAXE沒有玻璃天花板,但是是落地玻璃,在沒有限制,你可以做什麼,但你可以清楚地看到你如何到達那裏

拿起HAXE是不喜歡撿些樹枝並開火,但也不喜歡出去買氧乙炔套,並開始着火。從這個意義上說,Haxe更接近比賽,你可以重複使用。它幾乎涵蓋了您習慣的所有轉換,但增加了有用的新功能。但要做到這一點,它不會完全重新發明輪子,它只是修復爛點。 (在下一段OK較少的類比)

實事:

的語言是簡單方便和標準化,同時仍允許程序員只要他們喜歡去。

您可以編寫代碼非常高的水平件或去撥弄的小點點滴滴(至嚴重程度在某些平臺上)

HAXE沒有規定你可以和不能做什麼在任何一個平臺上,它都會給(或計劃給你)所有的東西,但它在哪裏可以增加一種標準化的做事方式。

郵件列表是非常有幫助和響應,論壇現在甚至正在加快步伐。

語言不斷被改變(以較小的方式),每個版本都添加了新的東西。

對於主API來說,實際的錯誤很少,編譯器的錯誤更少。

每一個公開談論他們建議對HAXE語言的方向和方向(和或課程爲什麼要採取的方向)

最後HAXE是不是一個大的一些大的民營企業(或即使是小公司)作爲開發者從你身上賺錢,而不是爲所有開發者使用,構建和改進而創建。這就是爲什麼我覺得Haxe就是我想成爲的地方。 (現在回到編碼)

13

如果你想有一個簡短的回答:是的!

對於那些使用Haxe的人來說, 對您有用嗎?

大部分時間我都在服務器端使用Haxe。 (這意味着PHP或neko目標)。在我看來,PHP是我用過的最吸吮的語言,這就是我開始使用Haxe的原因:擁有一種可用的語言。

對我來說另一個好處就是,Haxe是開源的。

它提供了重要的便攜性嗎?

在不同的目標上有相同的代碼!我無法想象任何方式有更多的portabillity。

將網站從PHP移植到mod_tora,執行速度比PHP快40-80倍,只需要5分鐘的工作時間。

什麼是一些現實世界,也許 受到讚賞的優勢?

  • 最大的優勢是代碼和極好的選擇平臺之間進行通信的便攜性,這是從來沒有容易處理客戶端和服務器之間的數據。 (請看維基中的Remoting部分。)
  • 社區是很好。 (如果你至少喜歡郵件列表:-)
  • 另一件事是:如果你需要執行非Haxe支持的非常平臺本地操作(這很少發生),Haxe總是給你選擇目標。它被稱爲Haxe magic。換句話說:您可以使用平臺的本地語言以及Haxe爲您提供的所有好東西來完成所有工作。

什麼是陷阱還是陷阱?

  • 文檔,有時安裝不是100%完美。對IDE的支持可以提高很多。
  • 還JavaScript的目標是有時很難使用,因爲HAXE提供了一個很好的語言,而是某種框架爲最常見的DOM操作缺失,但我覺得有些人正在對;-)
  • 如果我必須爲客戶工作,他們有時會不喜歡這個想法,用他們未知的語言來實現他們的項目。

P.S:我認爲它總是值得學習一門新的語言,因爲它提高你的編程技能和經驗。

+0

mode_tora聽起來很有趣。但是如果你沒有/想要apache的httpd,你會怎麼做? neko中有一臺服務器,但文檔說它只是用於開發。 – stesch 2010-03-28 20:44:01

3

主觀上我發現我比其他任何語言都更有效率。我使用主要針對neko和javascript的haxe。

編譯器本身非常快,它允許我像使用腳本語言一樣使用haxe。它傾向於面向對象,但有許多功能工具;第一類功能,功能匹配,lambda庫。

我發現neko的速度足夠了,它的小圖像尺寸適合受限制的環境。這是C FFI非常好 - 添加新功能非常簡單。

我對我的JavaScript客戶端控制器使用haxe,將事件觸發到標準的jQuery視圖。這樣做的效果非常好,因爲您可以同時鍵入檢查客戶端和服務器代碼,同時保持無類型的原始js爲最小值,並保留常用js庫的好處。 JSON庫可用。順便說一句,雖然haxe確實爲Apache等提供了mod_ *,但我發現使用代理更加靈活,所以我可以在Web服務器後面設置多個neko實例。

總的來說,我認爲它是非常全面和深思熟慮 - 批判性地說,它在所有平臺上都有廣告。

BD

8

嗯,你的問題已經回答了,但我想補充幾句簡短廣告詞。

在第一次測試之後,我學習並使用了Haxe並一直使用它。 這是我學到的第一門語言(當時我還在上大學)真的讓我明白語言和API之間的差異。

你在大學看到我第一次學習AS2,然後是PHP,然後是一些Javascript。我們沒有正式的編程介紹(而且我也沒有學過計算機科學)。作爲一個新手程序員,我自動假設像strlen()是PHP,MovieClip是AS2,...

通過使用Haxe我實際上理解了面向對象設計的價值,因爲平臺不再限制我的課程。我可以在我的常規Web代碼中重用爲Flash項目編寫的代碼,如果我將它們從平臺特性中分離出來的話就足夠了。

由於可以用來在平臺之間進行通信的優秀遠程類,我也意識到XML並不是那麼特別,JSON也沒有,沒有代碼就沒有意義。

對於像我這樣誰剛開始編程,那是在一個時間一個相當大的啓示時,XML是「酷」和良好的一切;-)

3

我在個人和專業用途被編碼HAXE約2年。有一些優點是它不會從其他語言中獲得,最大的優勢在於它幾乎從一開始就被設計爲一個現代化的生產級編譯器,它可以靈活地適應新平臺並利用其獨特功能。這使得它與C的更高版本最接近。如果你在Haxe中編寫代碼,你可以指望它堅持到底。

社區吸收力比你想象的要強 - 我根據壓縮千字節(來自http://lists.motion-twin.com/pipermail/haxe/的數據)對列表流量做了一些分析,結果顯示年初至今(1 - 9月)的25-50%自2006年以來每年都會增加。在過去六個月裏,流量真的爆炸了,我正在認真考慮去消化,否則如果我離開它一天以上,我的收件箱就會被Haxe上的數百條消息淹沒。它不像其他語言那樣被炒作,但這反過來意味着那些把車子拖到Haxe的人往往是自信的,信息靈通的程序員。

人們在其他上下文中試驗過語言到語言的編譯器(Scheme在任何地方,Python或Ruby在JS等),但這些語言是爲不同的地方和目的而設計的,而且在翻譯時會失去很多最好的方面,使結果酷黑,但不適合日常工作。 Haxe不喜歡那樣的感覺;雖然它沒有來自語言/運行時集成的便利,但它還有很多其他很酷的東西,現在提供