2009-02-26 20 views
6

使用一個因子或弧,Arc或其他作爲例子(注意:factor是一個不好的例子,因爲它有一大堆實用的庫)。假設你正在考慮使用編程語言。是否有大量實用的圖書館很重要?如果您的語言設計得很好,那麼創建'字符串'庫或'日期'庫會很容易。甚至可能是一個Web框架?新的或新興的編程語言真的需要實用的庫嗎?

我提到這一點,因爲當一種語言出現時,似乎有人提出了「實用圖書館」。

回答

11

它絕對重要 - 十次中有九次,我將選擇一種語言,並提供良好支持的圖書館來幫助完成我想要做的事情。

這並不是說我不喜歡寫我自己的庫(恰恰相反),但對於一個生產項目中,快速,準確的結果是很重要的,那會不會是由任何舒展實用的選擇想象力。

3

實用的庫很重要。我沒有得到報酬來編寫框架,我得到報酬以增加業務價值。如果我告訴客戶我不得不向他們收取編寫字符串數據類型的費用,那麼我很可能會失去我的工作/合同。

2

看看這裏的大多數問題,看看工具對人們有多重要。

這就是說,如果你找到一個適合你的工作非常好新的語言,你必須編寫自己的工具,然後通過各種手段在潛水的時間和興趣。這是一個方式,新的語言得到好的庫,畢竟。

4

Java和.NET與在框架或額外的高品質圖書館的豐富的類寵壞的人(經常自由和開放源碼以及)。 Ruby和Python也一樣。它會很難採取一種新的語言沒有這樣的庫,你的工作效率將不得不重新實現你需要的每一個功能teremndously受到影響。

除非它是一種突破性的語言,它引入了像意向性編程這樣的激進措施(我告訴計算機我想要它做什麼,並且傳播正確的代碼來做到這一點)......爲什麼,你有其中之一? :-)

1

一個大型圖書館使更多的生產使用的語言。如果不支持解析XML,加密,Web框架,UI框架等,那麼一個非常棒的語言需要花費更多的時間來生成工作代碼。出於學習目的,沒有大型圖書館的語言是好的,但出於實際的目的,使用這種語言將花費時間和金錢。試想一下,如果每次你想加載一個圖像,你都必須編寫代碼來解析.jpg頭文件。如果您必須手動編寫XML解析器而不是將其加載到預先構建的解析器中,該怎麼辦?你可能會把它搞砸,並花費大量的時間進行調試。如果項目的目標是創建一個新工具,那麼編寫支持代碼並不是很好地利用你的時間。

1

我認爲,重要原因Python的普及是其龐大的標準庫。 Java和PHP也一樣。實際上,我可能會說選擇圖書館比語言本身更重要。

+0

我甚至會說,PHP(也可能是java)的唯一的事情是它們附帶的庫。隨着語言的發展,他們都非常可怕。 – SingleNegationElimination 2009-02-27 00:47:52

1

如果你的首要任務是創建一個成品隨着時間的量最少可能的努力,那麼,有可用的庫事宜。 (如果你的目標很有趣,或者爲了學習而學習,那麼編寫自己的圖書館可能是一個很好的經驗。)

一個好的圖書館已經夠成熟,許多人已經使用它並且淘汰了大部分錯誤。不管你的編程語言有多棒,或者從頭開始編寫一個庫是多麼容易。隨着時間的推移,你的代碼不會被替代。

很多圖書館都沒有興趣或寫作樂趣,重新實現它們不會以任何方式革新世界。只有很多你可以用日期庫或字符串庫做什麼。它可以工作,也可以不工作。許多圖書館只是一個標準或一些事實上的標準行爲的實現,而某些人只需要通過必要的工作來記錄它是否正確。你必須做的越少越好。

在我看來,任何可以利用現有庫的新語言開始前行。例如,Clojure雖然是一種非常新的語言,但也可以訪問Java的所有庫。這可以說是目前它做得很好的一個重要原因。努力擺脫新事物而不是重新發明輪子。

0

這是一個誘人的想法,如果你是Paul Graham或Chuck Moore,它肯定會有用。

如果你的域非常有界,並且你不會得到一個超出該域的要求,就像客戶端要求「從Excel導入」功能一樣簡單。另一方面,Paul Graham用Lisp編寫了一個網上商店系統,這是一個非常廣泛的需求領域;我很想知道他是如何處理像PDF導出這樣的東西的,他會在麻省理工學院暑期暑假期間給PDF規範和一些Lisp手冊給一些實習生,或者他會下載到C庫嗎?

如果你的域是由邏輯驅動的,或者是持久的自然原理,比如天文模擬,它可能會有效。如果他們是人的要求,他們會充滿矛盾和特殊情況(順便提一下,字符串和日期庫屬於這個類別),並且沒有抽象或語言功能完全切入,你會擁有無論您是使用Haskell還是PHP編寫特定案例。

它可能在優化非常重要的地方工作(編輯:並且你足夠聰明以便自己優化它) - 你有一個精簡系統,你知道堆棧的每一層,因爲你自己實現了它有一個特定的目標。

我把整個想法與研究生聯繫在一起:他們在編程技巧和一般智能方面排在前1%;他們在一個非常狹窄的領域工作;他們可能沒有最好的設備,因此他們試圖剝離和優化深度;他們沒有學習與工作程序員的工作完成困境。

1

你覺得字符串庫很容易寫嗎?去看一下Unicode,UTF-8,UTF-16,遺留代碼頁,字節順序問題等等。

你覺得日期/時間庫很容易寫嗎?去看看閏秒,星期編號計劃和什麼。

有了這些爲你想出來的東西,實施一次並正確實施,比你想象的節省更多的時間和頭痛。

相關問題