2009-12-09 22 views
4

我有一個特定的項目,我希望使用腳本語言+ C或作爲100%Java解決方案的替代方案。如何證明使用腳本語言作爲項目的一部分

該程序適應遺留系統與其他現代系統一起使用。

基本上,我對使用哪種語言的選擇很少。我有C/C++,Java 1.4,我也爲這個環境編譯了Lua。

程序會'屏幕抓取',並且必須處理大量的字符串。代碼的那部分是高度可變的。

我公司的大多數開發人員都使用C,所以 - 我最初的設計是在C中編寫一些部分,並使用Lua處理字符串併發生頻繁變化的部分。我被告知'你必須證明你使用腳本語言。「所以我重新使用了100%的Java設計,並被告知 - Java不會有足夠的性能。你應該用C來做整件事。

我不控制激光或者做圖像處理 - 只是一些屏幕抓取。我仍然必須提供使用除C以外的任何理由 - 那麼我可以提供什麼理由?

+6

對於那些明目張膽地斷言Java沒有任何測量或原型的Java太慢的人,你會證明這一點嗎? – 2009-12-09 14:04:47

+0

它是一場艱苦的戰鬥 - 對有些人來說變化很難 – sylvanaar 2009-12-10 04:50:51

回答

9

評估每個解決方案需要多少時間(時間==錢$)。這應該有所幫助。

+1

另外,聽起來好像muckety-muck並不真的想要完成這個項目或者有一個非常具體的實現,任何超出這些界限的東西都會被拒絕。如果你準備估算每個實施將花費你多長時間,那麼你將能夠通過迫使muckety-muck做出決定來實現最終目標 - 根據我的經驗,這個決定將始終着眼於最便宜的選擇。此外,如果確實是一個將kabosh放在項目上的人,那麼時間成本估算將使得在需要時可以更容易地進入高層。 – spork 2009-12-09 14:06:40

+0

@spork:對!一個人需要記住一些事情:**經理關心錢$ ** ** ...用錢交談$ $$$期限或風險損失時間(和耐心);-) – jldupont 2009-12-09 14:09:50

+1

是的 - 我認爲這是最好的路線。 – sylvanaar 2009-12-10 04:42:33

4

你可以在Perl,Python或其他腳本語言的某些東西中破解原型,並展示它可以如何輕鬆快速地完成。

+1

......但是,那些具有良好C語言能力的人可以做到「相同」:這就是「時間」因素。 – jldupont 2009-12-09 13:30:29

+0

我同意,但我會說,你可以立刻得到一個演示,並支持時間參數。 – 2009-12-09 13:34:46

+0

@Martin:當然......在公司時間做演示編碼?嗯,更好地獲得批准,並準備好更多的理由... – jldupont 2009-12-09 13:44:47

2

您需要根據C(時間/金錢)實施成本與更高級別腳本語言的成本來證明這一點。我會舉幾個例子/場景來展示潛在的節約。

聽起來像你在相當保守的環境中工作。請注意,人們可能會擔心引入他們不瞭解或有經驗的未知技術。因此,您可能希望a)介紹一些衆所周知和記錄的內容b)最初不使用任何深奧的功能。希望你能證明他們可以在這方面做出回報,並且繼續前進。

0

理由(如果它是真的)是Java對你所做的事更快。 (是嗎? - 就像Martin說的那樣,試着用Python原型並評估它需要多長時間。)

1

在這種情況下,你也可以使用更高的健壯性參數,因爲C中的字符串處理很麻煩並且經常導致編程錯誤(緩衝區溢出等)

0

由於:

程序沒有 '屏幕抓取' 和 必須處理很多串

Perl可能是最好的選擇,只要你有它作爲選擇。

3

嵌入式腳本語言的一大優勢是能夠在程序運行時檢查和修改數據。
至於速度,IMO Lua是遊戲開發者中的頭號選擇,因爲它速度快,重量輕。

(你可以在任何時間嵌入Lua和你甚至不會注意到它的存在;)

0

我認爲成本角度可能總是會根據你的小組有責任ç專長其實輸球,所以節省的費用被學習一種新語言的成本所抵消。

對我來說更加引人注目(因爲過去不得不做出這些折衷的人)將是對變化的靈活性和響應速度。 C將不得不被編譯和部署,而你可以在10秒內將一個新的Python腳本放到你的環境中。如果您所搜索的頁面正在發生變化,那麼您的開發和部署環境似乎應該與該靈活性相匹配,並且這意味着一種腳本語言。

順便說一句,「Java比較慢」的說法只是被困在C中的人拋出來的。它已經有一段時間沒有成立,並且有很多證明它的獨立測試。

0

與正常的設計 - 開發 - 部署週期相比,通過允許應用程序在運行時加載和運行一小部分腳本,演示輕鬆添加新的(或用戶定製的)腳本。

2

我的建議:

1)你覺得你需要在拼搶過程中做一對夫婦的字符串操作。用C寫出來,然後寫在Lua中。我寫了一個例子,其中C爲30-40行,而Lua爲1-2。

2)嘗試在Lua中快速創建系統的某些方面,然後在C中進行比較和對比。只有你可以確定這個原型設計時間對你的經理來說是否可以接受。

3)在你的團隊中尋找一位志同道合的盟友(或兩個或三個)來展示例子和談話要點。如果您需要進行設計審查,他們可以爲您提供支持。

4)請準備好接受,雖然您可能有一個非常好的設計解決方案,但它可能不適合您的組織。不是每個人都想學習或嘗試新的東西。如果一羣'敵對'必須使用或維護你的項目,你可能會面臨更多的麻煩而不是它的價值。

0

無論您使用哪種語言,解析字符串,HTML,XML等都很慢。

針對您的問題有很多免費組件,所以工具成本不是問題。

字符串解析和屏幕抓取是您理解解析需求不斷變化並需要很長時間才能穩定的問題之一。因此,您需要能夠編寫屏幕抓取軟件,試用,失敗和學習,並且您需要能夠快速完成此操作。

無論哪種情況,您最好的選擇是Perl和Ruby。 Perl是字符串解析的傳奇。 Ruby也不錯,它有一個屏幕抓取庫,如(scrAPI)。

Perl或Ruby的商業理由是低成本(免費工具),並大大縮短了開發時間。使用腳本語言,您可以快速製作和測試您的抓取軟件的更改,直到您找到正確的答案。如果你可以在10分鐘內用C/C++進行代碼更改測試,通常可以在大約一分鐘內對Perl/Ruby進行相同的操作。長期來看,這可以節省50%的勞動力成本。

0

未來的可擴展性。

如果您採用腳本語言,您可能會以更低的成本擴展您的項目。

0

配置。 Lua被創建爲一種配置/數據描述語言。您的程序也可能以這種方式運行,使用C核,然後通過lua接口進行配置。您離開可配置的範圍取決於您,但它可能隨時間而改變。