2008-10-30 25 views
10

我一直試圖在我的工作中使用Python的情況。基本上我們所有的開發都使用C#和ASP.NET。我們的項目中有80%以上是Web應用程序。看起來很自然,我們會看一些漂亮的動態網頁語言(Ruby,Python等),並且使用諸如IronRubyIronPython之類的東西,我開始認真調查。我需要一個非常好的理由來使用Python

我愛Python。這是一種美麗,富有表現力的語言。當然,編碼是一種樂趣。衆多的python模塊和框架使其非常吸引人。問題是,我想不出任何具體的問題,需要這樣一種Python語言的任何特定障礙。 ASP.NET給了我們RAD,它給了我們一個功能齊全的框架和所有這些好東西。另外,我們都已經知道C#並且在C#中有很多項目,只是學習一種新語言,因爲不起作用。

你們能幫我想些什麼來最終說服我的老闆真正學習Python並開始在項目中使用它嗎?

編輯:我知道沒有問題只需要一種語言,我的意思是說,動態語言優於靜態語言的任何特定問題。

再次編輯:讓我也提一下,我的老闆提示我去調查一下。他已經花了數小時研究這些語言,找到一個好的,學習它,然後弄清楚我們如何使用它。我在這裏的最後一步,我不需要爲什麼我應該考慮改變我公司所做事情的動機,因爲他們這樣做是有原因的。

+0

「再次編輯:讓我再提一下,我的老闆提示我調查一下。」 「我不需要講座」如果你不需要講座,可以提前提供所有的事實。此編輯使您的問題方式脫離目標。 – 2008-10-30 10:15:27

回答

28

「你們能幫我想些什麼來最終說服我的老闆真正學習Python並開始在項目中使用它嗎?」

都能跟得上。

沒有成功就像成功。使用Python。成功的。讓人嫉妒。

當被問及爲什麼你成功時,你可以談論Python。之前沒有。

明智地選擇項目:動態語言具有顯着優勢的地方。需要的東西不是詳細確定。比如數據轉換,日誌文件抓取以及BAT文件的超級複雜替換。

使用Python開始做有用的事情,而其他人都站在試圖獲得足夠的業務和域信息來啓動項目來開發複雜的MVC設計。


編輯:一些Python的救援故事。

而這僅僅是我的。


編輯:「老闆提示我調查」,「弄清楚我們如何使用它」改變了一切。

「終於說服我的老闆真正學Python」是誤導性的。你不是在上游游泳。請參閱How Do I Make the Business Case for Python以「說服我的上司」問題。編輯表示你已經過了這個階段。

動態語言提供了靈活性。利用這一點。我上面的兩套示例是靈活性非常重要的兩個方面。

  • 要求並沒有完全明確。用動態語言,你可以開始。返工不會成爲一種破壞行爲。使用Java(以及C++和C#),您不願意應對破壞性的設計更改,因爲很難破解所有內容並重新編譯和運行。在Python中,破壞性更改並不昂貴。

  • 由於不能選擇元件,因此設計變得不穩定。你可以在Python中很容易地編寫包裝器和外觀。這是一種腳本語言。而且,Python模塊非常簡單地組成了更大的聚合。

  • 由於需求和設計不斷變化,編碼變得不穩定。它是腳本化的 - 沒有編譯。您只需更改代碼即可關閉並運行。測試更容易,因爲工作週期更短。它不是代碼編譯 - 構建 - 測試代碼測試。

  • 由於要求不斷變化,所以測試不斷變化。同上。工作週期更短,更快。

12

幾乎沒有問題要求一個特定的編程語言,這只是不是如何工作。

將新語言加入到像您這樣的環境中的最簡單方法是使用新語言在自己的時間開始一個新的工作項目。讓它做你需要做的事情,然後寫在你自己的時間。自己使用它,其他人可能會注意到它。他們然後說:「你能給我發那個節目嗎?」和繁榮,他們正在使用你的新語言。

如果你真的想要的東西,我可能會寫在Django網站,只是因爲它的管理界面吹走了每個人。

要記住的要點是,如果你開始使用python,那是每個人都必須學習的另一件事情,而且這是另一個需要在每個潛在員工的簡歷上的重點。這會變得昂貴,管理層不會喜歡它。

+0

雖然Python有更好,更簡單的方法來解決這些問題嗎?我知道沒有問題需要一種語言,這不是我的意思,我只是指什麼是一些常見的「障礙」,或者說,動態語言可以比靜態語言做得更好。 – goldenratio 2008-10-30 02:08:19

+0

在Python中肯定有更容易做的事情,問題是「學習一種全新的語言比在我們知道的中實現它更容易嗎?」 – 2008-10-30 02:10:40

+0

我還應該提到,在我之前的職位上,我在.Net環境中實現了一個Django站點和多個Python程序,雖然它對我很好,而且公司也受益匪淺,但是一旦我離開,他們有點綁定,並讓他們知道當我開始時我在做什麼...... – 2008-10-30 02:12:02

3

你們可以幫我想想 東西,終於說服我的老闆 真正學習Python並開始使用 它的項目?

不幸的是,答案是否定的。正如Harley所說,沒有任何問題要去要求一個特定的語言。 Harley建議的方法也很好。瞭解你的時間,在你的時間建立一個有用的應用程序,也許,也許,也許,你的工作的人會想要使用它,喜歡它,喜歡它,然後想要了解更多。

您可以採取的另一種方法是更好地瞭解您的公司爲什麼在幾乎所有開發中都使用.Net(因此,Windows Server以及可能的SQL服務器)。一旦你對他們爲什麼不開放其他語言有一個很好的理解,那麼你有一些權力來爲「爲什麼不?」建立商業案例。

爲什麼支付許可費用,當你有工具可以完成相同的事情?那裏有免費的替代品,如Python,可以在免費服務器上運行。

爲什麼不給你的團隊增加專業工具帶的機會?這是我的看法,但一位優秀的開發人員是一位開發人員,他不害怕學習他們以前做過的同樣事情的新方法。

但是,最後,我不會抱有希望。底線是,向IT商店引入新的語言/環境需要花費。無論是軟件,培訓還是員工翻身,在公司使用單一語言背後都存在商業原因,並堅持這一理念。

我的確處於你的境地。我在一個.Net商店工作,這種情況不會很快改變。在我的「自由」時間裏,通過在自己的項目上工作,我得到了解決。我喜歡它,並且它使得平衡很好。

希望這會有所幫助。

3

退一步,看看你的方法。 「我知道我想要的答案是什麼,但我找不到任何證據支持它。」

儘管Python是我目前的首選語言,但恐怕我發現自己在老闆身邊!抱歉。

我認爲你應該打開你的想法,考慮你所在組織的最佳利益立場的所有選項,並看看你是否沒有得出關於最佳語言的不同結論。

選擇語言的因素有很多,它有多漂亮是一個相當小的因素。工作人員的可用性是關鍵之一。再培訓的成本,圖書館和元工具的可用性,性能等等。

一旦你考慮了所有不同的因素(而不僅僅是「哦!它會很有趣!」)和做出了一個平衡的評估(而不是預先確定的答案),你可能會發現你的老闆更願意傾聽。

p.s.暗中使用Python作爲工作代碼的建議,並且用一種他們沒有準備好的語言讓公司承擔可怕的代碼債務似乎對我來說非常不專業。

6

潛入語言通常是通過自動執行繁瑣的手動任務(特別是Python/Ruby等動態/腳本語言)來完成的。設置它就像部署構建,洗牌備份或者用Python完成的任何事情。

然後不經意地滑倒,很容易做到,並嘗試傳播一些熱情。

接受度和認知度應該從此慢慢增長,在您知道之前,管理層正在認真考慮將Python用於新項目。

2

你可能會擁有最好的槓桿工具和庫;正如其他人所指出的,沒有語言是需要解決任何特定的程序。因此,讓我們看的東西,你可以利用使用Python:

  • 谷歌應用程序引擎
  • SciPy的
  • pywinauto
  • Django的

這些都是從我的頭頂;發現什麼是適用於你的團隊,你的公司作爲一個練習的提問:)

1

那麼,爲什麼Python程序員做出更好的Java程序員here's a view;這些概念與您的情況非常相似。

從本質上講,是因爲他們想顯示他們喜歡編程誰學習一門語言的人,喜歡學習新的東西,而且更有可能條條框框。

...如果公司選擇寫 其軟件在相對 深奧的語言,他們就可以 聘請更好的程序員,因爲 他們將只有那些誰關心 足以吸引學習它。而 程序員的悖論更是 發音:要學習的語言,如果 你想得到一份好工作,是一種 語言,人們不知道 只是爲了得到一份工作。

不僅如此,Python還強制執行「好看」的代碼,而且您不必執行整個代碼/編譯例程。通過IronPython,您可以簡單地使用Python進行編碼並按原樣使用它;只是另一個.NET工具。

1

的語言是幾乎從來沒有成功的關鍵。優秀的程序員可以用各種語言成功,你幾乎可以在任何語言中找到成功的項目。你不會找到那麼多的失敗,因爲這些項目不會再被聽到。如果你正在尋找一種新語言,因爲你沒有優秀的程序員,即使世界上最好的語言也不會幫助你。

而且,你還沒說對這類工作你做任何事情。 Python可能是一個不錯的選擇,因爲它有很好的支持和廣泛使用的庫,對你很重要。另一方面,C#可能會更好地支持你想做的事情。在上下文之外的工具沒有內在的優點。你可能會喜歡螺絲刀,但這並不能幫助你划船。

如果你想使用Python或任何其他語言,只是因爲你喜歡它,對自己誠實和你周圍的人。它看起來像你已經做出決定,將切換,不知道爲什麼要切換,現在需要與無關,與你的願望切換理由合理化了。如果你有一個很好的理由,你就不會問這裏:)

這並不完全是壞事,但。編程是一個人類企業。如果程序員(任何級別)瘋狂的愛一個特定的語言,無論多麼愚蠢的理由,他們可能會產生更多。這不僅僅是一個技術解決方案。

祝你好運:)

1

的Python了在Java世界的Jython單元測試一個良好的開端。事實上,許多Java人首先以這種方式開始使用它。它的動態腳本特性使其非常適合單元測試。就在昨天,我希望我可以使用它或類似的東西爲我正在寫一個VB.Net項目的單元測試。我不得不說,IronRuby或IronPython這個單獨的語言並不是關於它所支持的開發風格。你可以在靜態語言中編寫代碼,但你不能充分享受這些好處,直到你可以開始動態思考。一旦你掌握了這些概念,你就會開始慢慢地改變你編寫代碼的方式,並且你的項目將需要更少的類和更少的代碼來實現。測試,尤其是單元測試將成爲必須,因爲您放棄了稱爲編譯器的熱毯,並對其他效率進行類型安全檢查。

0

我很肯定(100%)你至少不需要使用Python的MS Windows。

在其他平臺的情況下,您可以使用任何您喜歡的語言。

相關問題