跳轉至內容

F# 程式設計/前言

來自華夏公益教科書,開放書籍,開放世界
  索引 下一章:介紹
F# : 前言

這本書的由來

[編輯 | 編輯原始碼]
給貢獻者的說明:通常前言由書籍的作者撰寫。由於本書可能有多位作者,請隨意撰寫您自己的前言。

作者:Awesome Princess: 通常,作者會選擇撰寫關於本書本身的前言。但是,僅僅因為我是一個自戀狂,我想寫點關於我自己。不是因為我是一個特別有趣的人,而是因為我與函數語言程式設計的經歷與這本書的創作有關。

所以,在 2006 年,我開始對我的工作感到厭倦。我唯一編寫過的軟體型別是在資料庫之上新增 GUI 介面的軟體,我已經對此感到厭倦。我想要找到一份有趣的工作。

僅僅是為了好玩,我開始檢視一些高科技公司(谷歌、eBay、微軟、亞馬遜等)的職位空缺。我注意到,所有無聊的工作——CRUD 應用程式、簡單的 Web 開發——都需要擁有 Java、C# 或 C++ 經驗的程式設計師。有趣的工作——編譯器程式設計、數位電路驗證、大規模平行計算、生物識別技術——則需要具有奇怪和不熟悉語言經驗的程式設計師。特別是

  • 我在 Paul Graham 的文章 超越平均水平 中讀到 Yahoo! Store 的第一個版本主要用 Lisp 編寫。
  • 我看到了谷歌的招聘啟事,除了 C++ 以外,還要求具有 Haskell 或 Python 經驗的程式設計師。
  • 我在一篇 Erlang 常見問題解答 中讀到,Erlang 程式語言是 T-Mobile 等電信提供商的首選工具。
  • 我多年來聽說 Lisp 在人工智慧研究的黃金時代是一種利基語言。
  • 我遇到了很多微軟在驅動程式驗證領域釋出的職位空缺,尋找 OCaml 程式設計師。

世界上最非凡的應用程式並不是用 Java 編寫的;它們是用這些奇怪的、晦澀的語言編寫的。更有趣的是,需求量最大的語言——Erlang、Haskell、Lisp、OCaml——都是函數語言程式設計語言,這對我來說是一種完全陌生的程式設計正規化,我深陷 C#-Land 中。

在幾種語言之間做出選擇並不難。如果我要學習一種新的語言,它需要滿足一些條件:它應該足夠實用以供個人使用,速度相對較快,對僱主有用,當我告訴我的朋友我學習了一種奇怪的新語言時,它會讓他們印象深刻。Haskell 在當時對我來說非常可怕,而且我無法真正利用 Erlang 的併發性來編寫我自己編寫的小範圍應用程式。選擇權最終落在了 Lisp 和 OCaml 之間;基於 這些對不同語言的比較,我認為 OCaml 的靜態型別、快速的原生代碼、微小的編譯後的二進位制檔案以及在金融市場上的既定利基地位使它成為我的一個不錯的選擇。

我學習了 OCaml,它徹底改變了我的思維方式。在使用該語言並關注 OCaml 新聞組後,我聽說了一種名為 F# 的 .NET 版 OCaml。我想我已經熟知 .NET BCL,而且我已經熟悉了 OCaml,我可能可以很快地學會這門語言。

在 2007 年 8 月,我花了一些時間熟悉 F# 語言。雖然我很快地掌握了大部分內容,但有一件事我注意到,那就是這門語言對於想要學習這門語言的人來說是多麼難以接近。F# 材料的完全缺乏使得初學者無法將其作為他們的第一門語言學習。即使在今天,2008 年 11 月,也只有少數出版物,但即使作為一個擁有多年程式設計經驗的人,我也很難理解和理解這門語言。

很長一段時間,我都想寫一些對 F# 新手真正有用的東西,一些包含了學習這門語言所需的所有東西的綜合資源。這本書最初是由一位華夏公益教科書使用者在 2006 年開始的,但近兩年來,沒有人為它撰寫過任何實質性的內容。我找到了這本書,並決定,為了那些想要學習 F# 的人,我會把我知道的關於這門語言的一切都整理成一種格式,這種格式對於初學者來說是可接受的。

我對這本書的進展感到滿意。最終,我希望人們將這本書連結到網際網路上首選的、權威的 F# 教程。

  索引 下一章:介紹
華夏公益教科書