2011-05-05 35 views
18

有沒有人在Ada做嚴肅的網絡發展?有沒有圖書館或框架可用於這些任務?我特別感興趣的是那些免費且開放源碼的。在Ada的網頁編程?

讚賞任何相關的指針。

回答

2

一般來說,Ada最嚴重的用途發生在防禦承包商圈內,而不是Web 2.0羣體。

有很多更好的語言來做網頁開發,但是我發現沒有預建庫或web-dev的框架,在谷歌和我的同事的ada給了我一個空白的外觀。

也就是說,如果您想使用ada-hammer來解決問題,您可能會構建一些東西來編譯HTML代碼並將其移動到您的服務器中的適當文件夾中。或者,也許做一些花哨剛剛在時間的HTML編譯通過apache..painful回來,但我想是可行的

+2

我想這取決於你的意思是「嚴重」。在指導missles是一個更嚴重的事情比指示HTTP請求LOLcat圖片,我想我不得不同意。但是,事實上Ada中有很多人在做Web開發。如果您的同事從未聽說過AWS,或許他們需要更多地瞭解?它是一個相當常用的項目。 – 2011-05-06 13:14:38

+1

意味着最有錢的項目。大公司,大項目,Acadème之外。龐大的代碼庫。實際交付的產品。生活/飛行/空間關鍵型軟件。你會認爲最重要的用戶是美國國防部/國防部相關人員(考慮到國防部長期需要Ada,而且他們已經開始試圖在防禦圈內防止它,只有短短几年)。正確的工作使用正確的工具將是我的建議。 – Caladain 2011-05-06 13:20:00

+0

...當然沒有什麼像Apache。 – 2011-05-06 13:20:18

10

AWS可能是你AR是什麼e尋找,如果你想編寫包含Web服務器或客戶端的Ada程序。這可能是最主動的開源Ada項目之一,所以我很確定有很多人也在使用它。

我自己使用它來爲基於Windows的服務提供基於Web的配置和監視接口。它工作得很好,而且使用起來非常簡單。

如果你只是想寫cgi腳本,其他人是正確的,有其他語言在那裏設計的。不過,我之前在Ada做過,而且效果很好。許多腳本語言鼓勵編寫程序,因爲程序擴展時程序不能很好地擴展。 Ada程序往往不會有這個問題。

另一方面,像C和C++這樣的語言不會對數組邊界執行任何自動檢測,並且是非常基於指針的。當暴露於互聯網世界時,這使得與他們寫的CGI成爲一種活躍的威脅。一些腳本語言也有這個問題。通常你不能輕易看到或修復它,因爲它隱藏在語言運行庫本身中。特別是當他們自己用C或C++編寫時。所以我實際上鼓勵在除了最瑣碎的情況之外的所有網絡服務器腳本中使用Ada。

如果您在Ada中編寫腳本,但錯過腳本語言傾向於提供的更強大的字符串處理功能,請考慮查看Gnat's Spitbol package。這實現了Ada中大部分的SNOBOL字符串處理設施。如果你想做更復雜的字符串解析,另一種選擇是OpenToken,它允許你在Ada中構建你自己的全面的詞法分析器和解析器。但是,如果您正在尋找開發一個完整的複雜網站,您可能最好使用某種內容管理系統(例如:Drupal)。我不知道任何以Ada爲基礎構建的CMS,但大多數CMS用戶都懶得放入實施語言。理想情況下,您只需將組件連接在一起。

15

我對AWS/Templates_Parser,XML/Ada和GNATColl非常滿意。這些是三個可靠的軟件包,可以讓你用Ada來激動人心的事情。

我正在離開PHP(在我的業務中有很多內置的PHP工具),到目前爲止,Ada已經證明是一個非常可靠的夥伴。它已經到了一個我真的不喜歡回到PHP的地步。我非常期待所有工具都由Ada支持的那一天。

只是準備做一些比「正常」的網頁語言更多的工作。獎勵是一個少得多的bug和一個更好的性能最終產品(與PHP相比)。至少那是我的經驗。

有人已經發布了一個AWS鏈接。下面是GNATColl和XML /阿達鏈接: http://libre.adacore.com/libre/tools/gnat-component-collection/ http://libre.adacore.com/libre/tools/xmlada/

+0

我在c.l.ada上看到過你的帖子,並且發現聽到一位企業家「把他的錢放在他嘴裏」WRT「選擇更好的工具」的說法很好。 不幸的是,到目前爲止,我一直無法獲得良好的AWS構建:MinGW和所有這些。 – Shark8 2011-05-10 21:05:49

4

如果你想讓你的烤麪包機上網,你可以嘗試一個像EWS這樣的嵌入式網絡服務器。甚至不需要服務器上的文件系統。

+1

-1:我不明白這是怎麼回答的問題 – 2011-05-09 19:26:42

+2

@John,我認爲烤麪包機是個玩笑。 EWS是用Ada編寫的,所以它與這個問題非常相關。 – oenone 2011-05-10 09:58:07

5

AWS已經介紹給你了,現在你只需要一個框架。我可以推薦ada-awa項目。

下面是關於如何上手視頻:youtube.com

3

這個問題的答案,你是否能做到用阿達重型Web開發問題取決於你想要做什麼。如果您對cgi-bin方法感到滿意,可以使用Ada軟件包來完成這項工作,並且您可以像使用任何Web界面一樣附加級聯樣式表。如果你想處理XML解析,你也可以使用Ada/XML。在某些情況下,這很有用,但您可能想要考慮XML是否是您需要的。由於編譯了處理Web界面的Ada過程,因此它在性能上應與C相媲美。此外,您可以使用Bounded_Strings包進行字符輸入分析,這可以讓您測試輸入字符串不包含不可接受的字符並且不會太長。這兩項檢查在網站上都非常重要,可以降低黑客成功攻擊的可能性。

如果您正在將數據庫工作到您的網頁設計中,那麼您應該查看Ada Web服務器(AWS),其中包含指向數據庫的鏈接。對於更重的工作,您可能需要查看開源的Ada-AWA項目。如果您正在處理對象關係數據庫,那麼您可能還會考慮可以處理CORBA和Ada分佈式系統附件的PolyORB。如果你是一個開發人員,這是相當重的東西。您幾乎肯定需要有人來處理日常的系統管理工作 - 並且您需要來自Internet服務提供商的許可才能託管網站。

如果您想要一個必須支持重型數值工作的Web界面,那麼您應該知道Ada具有支持多線程應用程序的任務 - 並且通常Ada編譯器和鏈接器將爲每個任務分配一個線程。該語言旨在直接使用集合支持線程間通信。此外,語言設計人員不得不擔心硬排程問題,在這種問題中,從一個線程到另一個線程的通信丟失被視爲程序失敗。如果你打算做多代理通信,你應該可能得到一個UML設計工具,它可以讓你使用同步圖來設計這些類型的程序,因爲圍繞這種計算與順序編程非常不同。作爲一個說明,Ada是專爲嵌入式編程而設計的,這意味着它被設計用於有很多計算機的環境,每個計算機都可以以對等方式與其他計算機通信。它最初由美國國防部使用,但它也被用於控制飛機襟翼和其他表面以及汽車等效系統的航空電子軟件。波音777航空電子軟件是在阿達編寫的。我似乎記得戴姆勒 - 克萊斯勒使用Ada--指出目前的汽車擁有80臺嵌入式計算機。軟件開發成本大約是目前新車成本的20%左右。

+0

只是一個旁註...除了777之外,歐洲製造的很多軟件都是用Ada編寫的,這些軟件都是建立在Tornado和Typhoon的軍用飛機及其相關的地面設備上。 – 2015-03-25 15:30:51