Ada中的Web编程?

Ada中的Web编程?,ada,Ada,有人在Ada中进行过认真的web开发吗?是否有可用于此类任务的库或框架?我对那些免费的开源软件特别感兴趣 任何相关的建议都值得赞赏。一般来说,Ada最严重的使用发生在国防承包商圈子里,而不是Web2.0人群中 有很多更好的语言可以用来进行web开发,但我在google上没有发现为带有ada的web开发人员预先构建的库或框架,我的同事对我一看都不知道 也就是说,如果您想使用ada hammer来解决这个问题,您可以构建一些东西来编译HTML代码,并将其移动到ada中服务器中的适当文件夹中。或者做一

有人在Ada中进行过认真的web开发吗?是否有可用于此类任务的库或框架?我对那些免费的开源软件特别感兴趣


任何相关的建议都值得赞赏。

一般来说,Ada最严重的使用发生在国防承包商圈子里,而不是Web2.0人群中

有很多更好的语言可以用来进行web开发,但我在google上没有发现为带有ada的web开发人员预先构建的库或框架,我的同事对我一看都不知道


也就是说,如果您想使用ada hammer来解决这个问题,您可以构建一些东西来编译HTML代码,并将其移动到ada中服务器中的适当文件夹中。或者做一些想象,通过apache及时编译HTML返回..很痛苦,但我认为可行

试试AWS,我能找到的唯一合适的解决方案

但—

我仍然建议您学习更适合web开发的语言,例如: PHP、asp.net、JSP

如果您想编写包含web服务器或客户机的Ada程序,可能就是您想要的。它可能是最积极维护的开源Ada项目之一,所以我敢肯定也有很多人在使用它

我自己也用它为基于Windows的服务提供了一个基于web的配置和监视界面。它工作得很好,而且很容易使用

如果你只是想写cgi脚本,其他人是对的,有其他语言是为这个设计的。然而,我以前在Ada中做过,效果非常好。许多脚本语言都鼓励编写不能随着程序扩展而扩展的程序。Ada程序往往没有这个问题

另一方面,C语言和C++语言不做任何数组边界的自动检测,而是基于指针的。这使得与他们一起编写的cgi在暴露于互联网世界时成为一种积极的威胁。一些脚本语言也有这个问题。通常您无法轻松查看或修复它,因为它隐藏在语言运行库中。特别是当他们自己用C或C++编写时。因此,我实际上鼓励在所有情况下使用Ada编写web服务器脚本,但最简单的情况除外

如果您在艾达中编写脚本,但是错过了脚本语言倾向于提供的更强大的字符串处理工具,请考虑查看。它在Ada中实现了大多数SNOBOL字符串处理工具。如果您想进行更复杂的字符串解析,另一个选项是,它允许您在Ada中构建自己的完整词汇分析器和解析器


然而,如果你想开发一个成熟的复杂网站,最好使用某种内容管理系统(例如:)。我不知道有任何基于Ada的CMS,但大多数CMS用户无论如何都不会花太多精力去使用实现语言。理想情况下,您只需将组件插在一起。

我对AWS/Templates\u解析器、XML/Ada和GNATColl非常满意。这是三个坚实的软件包,可以让你用Ada做令人兴奋的事情

我正在远离PHP(在我的业务中有很多内部工具是用PHP构建的),到目前为止,Ada已经证明是一个非常可靠的伙伴。我真的不喜欢回到PHP。我真的很期待有一天我所有的工具都由Ada提供动力

准备好做一些比使用“普通”网络语言更多的腿部工作。回报是更少的bug和性能更好的最终产品(与PHP相比)。至少这是我的经验

已经有人发布了AWS的链接。以下是GNATColl和XML/Ada的链接:

您可以查看一下如何使用的示例。

如果您想通过web启用您的烤面包机,您可以尝试使用类似的嵌入式web服务器。甚至不需要服务器上的文件系统。

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


这里有一个关于如何开始的视频:

关于是否可以使用Ada进行繁重的Web开发这一问题的答案取决于您想做什么。如果您对cgi-bin方法感到满意,那么有一个Ada包可以完成这项工作,您可以像对待任何web界面一样附加级联样式表。如果要处理XML解析,还可以使用Ada/XML。在某些情况下,这很有用,不过您可能需要考虑XML是否是您所需要的。因为编译了处理web接口的Ada过程,所以它的性能应该与C相当。此外,您还可以使用Bounded_Strings包进行字符输入解析,该包可以让您测试输入字符串不包含不可接受的字符,并且不会太长。这两种检查对网站都很重要,可以降低成功黑客攻击的概率

如果您正在将数据库应用到web设计中,那么您应该看看AdaWeb服务器(AWS),它包括到数据库的链接。对于更繁重的工作,您可能想看看Ada-AWA项目,它是开源的。如果您正在处理对象关系数据库,那么您可能还需要考虑PyrORB,它可以处理CORBA和艾达分布式系统附件。如果你是一个开发人员,这是一个相当繁重的任务。您几乎肯定需要有人来处理日常的系统管理工作,并且您需要获得Internet服务提供商的许可才能托管网站

如果您希望web界面必须支持繁重的数字工作,那么您应该知道Ada有支持多线程应用程序的任务,并且通常Ada编译器和链接器会为每个任务分配一个线程。