Elixir 1.2帶來多項功能增強和性能提升

jopen 8年前發布 | 8K 次閱讀 Elixir

José Valim 宣布Elixir 這門動態、函數式編程語言的1.2版本。

Valim是Elixir的創建者。他表示,1.2版本“帶來了功能增強、Bug修復、性能提升等等”。同時,他還指出,該版本需要Erlang 18及以上版本。

在宣布Elixir 1.2發布的 博文 中,Valim列出了該版本對這門語言所做的若干值得注意的改進。這些改進包括增加了多aliases/imports/require語法,映射鍵支持變量,在映射鍵和函數子句中支持“銷(pin)”操作符,增加with的特殊形式,用于多表達式匹配,將下面的代碼:

case File.read("my_file.ex") do
  {:ok, contents} ->
    case Code.eval_string(contents) do
      {res, _binding} ->
        {:ok, res}
      error ->
        error
  error -> error
    error
end

替換為下列更為簡潔的形式:

with {:ok, contents} <- File.read("my_file.ex"),
     {res, binding} <- Code.eval_string(contents),
     do: {:ok, res}

Elixir工作流的改進包括使“綜合(umbrella)”應用程序具備了共享構建和配置文件的能力,Valim指出,這樣做的目的是在綜合項目中“極大地縮短編譯時間”。通過向每個綜合應用程序的mix.exs文件增加如下配置信息即可實現共享目的:

build_path: "../../_build",
config_path: "../../config/config.exs",

Valim繼續寫道,“Mix現在默認會自動合并協議,而且,我們現在可以并行合并及緩存合并結果,從而在所有的環境中都能提供最好的性能,而又不影響編譯時間”。

Elixir 1.2還提供了一個試驗性特性,就是開發人員可以選擇允許Mix獲取和編譯Rebar 3依賴。

在Hacker News上,在有關 Elixir 1.2發布 的討論中,針對此次發布和Elixir的觀點一般來說都是正面的,這使得用戶 cxz 評論說:

我很期待從更有經驗的人那里聽到一些批評、負面體驗和缺點。這里的觀點100%都是正面的、表揚性的,這在HN上是非常不正常的。

盡管如此,最初的觀點始終還是正面的,用戶 elteto 評論道,“以我的經驗來看,這種正面性并不是沒有道理的,Elixir是一門非常優秀的、年輕的語言,它有一個給力的社區(像大多數新語言那樣)。”

唯一一點批評的信號來自用戶 gleb ,他在評論中指出了一些小“問題”,如下:

唯一真正讓我擔心的問題是Ecto及它同Phoenix的集成。那讓簡單的事情變得困難,讓困難的事情變得不可能。更主要的是,我不覺得Phoenix像Rails那樣是“從一個生產環境中的Web應用提煉而來”。對于Rails,你知道至少有一個應用Basecamp運行在它上面。對于Phoenix,我就不敢說了。這只是一個非常初步的看法,但第一印象很重要。

José Valim以行動彰顯了社區的名譽,他 親自回復了gleb ,表示“愿意聽取更多關于Ecto/Phoenix集成的信息,什么讓他覺得困難以及什么讓他覺得不可能,”并邀請該用戶給他發電子郵件。

要了解更多有關Elixir 1.2的信息,請查看 變更日志 。Elixir遵循Apache 2許可協議。希望為這門語言做貢獻的InfoQ讀者,可以查看 CODE_OF_CONDUCT.mdCONTRIBUTING.md 這兩份指南來了解更多信息。

查看英文原文: Elixir 1.2 Brings Enhancements, Performance Improvements

</div>

來自: http://www.infoq.com/cn/news/2016/01/elixir-12

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!