2010-06-10 84 views
12

我是大學的學生,所以我的經驗是有限的,因此這個問題。挑選正確的語言

如果有人對你說,這是一個編碼任務,你在看什麼,以選擇你將在其中執行的語言或範例?

希望這個問題有道理嗎?

+2

任務範圍非常廣泛。你能至少縮小它的範圍嗎? – polygenelubricants 2010-06-10 18:42:20

+2

最大的因素:截止日期。 – 2010-06-10 18:42:47

+1

我同意截止日期的因素。如果你有無限的時間做簡單的事情,花一些時間研究。如果它是在昨天到期,那麼拿起你知道的語言和編輯器,就像手背,然後開始行動。 – nlawalker 2010-06-10 18:48:42

回答

13

有許多因素會有影響:

  • 如何關鍵是性能?快速寫出緩慢的解決方案是否可以接受?
  • 我需要什麼類型的庫?
  • 什麼是平臺? OS?網?移動設備?
  • 問題的本質是什麼?正則表達式類型的字符串處理?數學與Matlab /楓/等?
  • 圖形?文本?
  • 我希望解決方案的可重用性如何?

這裏假設您確實有選擇語言的選擇,當然。一種語言最適合這個問題,但是如果你對這個問題不夠了解,那麼除非你有時間學習,否則這實際上不是一種選擇。

+4

好的清單!也許你可以添加硬件/平臺/操作系統,因爲這通常也會排除一些選擇。 – 2010-06-10 18:52:43

+2

+1 - 幾年前,當我編寫一些編程彙編時,瞭解允許的語言的功能使得獲勝更容易。有些語言擅長某些事情。雖然我們主要談論通用語言,但他們仍然有足夠的變量來做出明智的選擇。 – 2010-06-10 19:18:41

+0

不錯的清單,我會增加成本/預算。選擇語言的限制因素可能就是你所能承受的。有些圖書館可能會以一種語言簡化工作,可能會因價格而顯示停用。 – Bill 2010-06-10 19:55:28

0

除非基本上尖叫你的任務告訴你哪種語言最好用,你應該選擇你最流利的語言......我想。

0

這一切都與您的興趣和您的專業知識有關。如果你對Java有很好的瞭解,那麼你是否想花時間在C/C++/C#中編寫代碼?

就我而言,我會把它放在可行性上。如果解決方案在.Net中可行,我將使用.Net。

另外需要考慮的其他事情是任務將實施的平臺。如果目標服務器可以是Linux/Mac/Windows,則可以使用Java。如果任務需要太多系統級別的工作,請參閱c。 等etc ...

0

冗餘是關鍵。我會選擇我最熟悉的語言,因爲我會更有成效。

嘗試選擇一種語言並掌握它。當然瞭解大多數語言是一件好事,然後你可以選擇一個最適合你的語言。

然後堅持你最喜歡的一個。

對我來說,它的Asp.Net C#/ jQuery。

PHP有一個很好的社區和它的免費。如果你是新的,我會從這開始。

0

我看着一個問題,我想我在一個非常高的層次上如何以我所知的一些語言來實現它。舉個例子,我知道在MFC/C++中實現一個對話框需要兩倍的代碼,因爲它會在C#中實現它,而且我的Java有點生疏。我會選擇用C#編程。

但是,既然你是一名學生,你可能想選擇一種你不熟悉的語言,並用該語言來實現該項目。我的推理是,我進入大學時非常瞭解C++。用C++來實現某些東西並不是很好,我知道我可以做。然而,在我不太熟悉的C#中實現它會讓我從程序中獲得更多的知識,而不是我會得到的。通過你在學校的時間來保持這個概念,你最終會知道更多。

所以基本上你的選擇歸結爲你是否想用你認識的最簡單的語言編寫代碼,或者如果你想用你想學的語言編寫代碼。每個決定都有不同的優點。

3

我認爲問題是「你怎麼知道什麼是正確的工具?」

部分取決於要求。如果他們談論Web界面或數據庫,則可能需要一些SQL體驗和HTML體驗。如果他們提到高性能圖形顯示器,那可能暗示C/C++和OpenGL/DirectX。如果需求談論高速數字處理,您可能需要......嗯......其他的東西。 ;)

接下來要幫助選擇什麼是您可以使用的。如果你在一個主要具有Java經驗的團隊工作,你可能會堅持使用Java,除非你有很好的理由進行切換,或者如果你已經有十幾個Visual Studio許可證,它可能會是某種.NET解決方案。

0

我首先要看的是:我知道哪些語言/範例?基於這個答案,我會問自己哪種語言/範式的優勢在於解決問題。這裏有一個例子:

我知道JavaScript,Java和Python(爲了這個對話的目的)。問題是基於網絡的嗎?有利於JavaScript的巨大理由。很容易嘗試新想法對這個問題有價值嗎?支持Python的大論點。它是否長期運行且性能敏感?這是Java的一個論據。

1

我總是看幾個不同的方面。其中大部分歸結爲語言支持庫,環境和人爲因素,而不是語言本身。這就是說不同的語言有不同的優勢,它的重要性在於選擇符合您需要的語言。以下是我在開始一個新項目時考慮的一些事情。

  1. 要執行的任務的範圍。這是一個很大的企業級任務還是比較小的?不同語言對不同範圍的支持程度不同。
  2. 它是什麼類型的問題?它是數學的,文本的,邏輯的,用戶界面驅動的?語言的不同範式將決定它適合的問題類型。你很可能不會使用過程語言來實現UI驅動。
  3. 你對語言有多瞭解?大多數情況下,這項工作的表現會不止一種語言,表現同樣出色。你的語言編碼能力(或願意學習它)對於完成它是很重要的。
  4. 這是什麼環境?在工作中,我有不同的要求,比我在家裏。工作更經常地決定使用有限的數字。另外,如果我和其他人在一個團隊中,他們可能也需要了解它。
0

在現實世界中,你幾乎總是建立在由其他人創建的庫和框架上。所以我問的第一個問題通常是什麼是最好的庫和框​​架來使用,然後構建它們。其中,按照我使用它們的大概順序排列:

  • 用於強化圖形和圖像處理,某些數字作品和高級解釋程序的C++。

  • 的Java + XSLT的Web服務器端(雖然我沒有做過很多Web了6年,並可能在使用Ruby一些東西,那裏使用的外觀,或在MS商店.NET)

  • 用於業務表單和較少密集圖形的C#

  • python適用於非常小的腳本,偶爾會有小型GUI應用程序。

  • C99如果我想使用較低級別的庫,較低級別的解釋器以及偶爾的PIC或嵌入式系統。

我也最終做了一點Fortran維護,但從未啓動Fortran項目。

這些都沒有任何明確的定義,但只是我發現在這些領域工作得很好。其中一些是判斷 - 我是否想要將編譯時間長和簡單的模塊化相結合以獲得性能和表現力的組合(C++)?我是否想要非常快地創建基於窗體的現代圖形用戶界面(C#)?我想操縱指針並編寫我自己的垃圾收集例程(C)嗎?我想快速嘗試一種算法來查看它是否有效(Python)?

0

選擇一個已經有充分記錄的語言。