在Ada的网页编程?

问题描述:

有没有人在Ada做严肃的网络发展?有没有图书馆或框架可用于这些任务?我特别感兴趣的是那些免费且开放源码的。在Ada的网页编程?

赞赏任何相关的指针。

尝试AWS,只有妥善解决,我能找到...

http://libre.adacore.com/libre/tools/aws/

但是 -

我还是建议你去学习是更旨在Web开发语言如: PHP,asp.net,JSP ....

一般来说,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

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用户都懒得放入实施语言。理想情况下,您只需将组件连接在一起。

我对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

你可以看看http://blog.vacs.fr/index.php?tag/JSF看你如何使用Ada Server Faces例子。

如果你想让你的烤面包机上网,你可以尝试一个像EWS这样的嵌入式网络服务器。甚至不需要服务器上的文件系统。

+1

-1:我不明白这是怎么回答的问题 – 2011-05-09 19:26:42

+2

@John,我认为烤面包机是个玩笑。 EWS是用Ada编写的,所以它与这个问题非常相关。 – oenone 2011-05-10 09:58:07

AWS已经介绍给你了,现在你只需要一个框架。我可以推荐ada-awa项目。

下面是关于如何上手视频:youtube.com

这个问题的答案,你是否能做到用阿达重型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