首页 文章

Ada中的Web编程? [关闭]

提问于
浏览
20

有没有人在Ada做过严肃的网页开发?是否有可用于此类任务的库或框架?我对那些免费和开源的东西特别感兴趣 .

任何相关的指针都表示赞赏 .

8 回答

  • 10

    尝试AWS,只有适当的解决方案,我才能找到......

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

    但是 -

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

  • 6

    我对AWS / Templates_Parser,XML / Ada和GNATColl非常满意 . 这是三个坚实的包,使您能够使用Ada做令人兴奋的事情 .

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

    只是准备做一些比使用“普通”网络语言更多的腿部工作 . 奖励是一个更少的错误和更好的最终产品(与PHP相比) . 至少这是我的经历 .

    有人已经发布了指向AWS的链接 . 以下是GNATColl和XML / Ada的链接:http://libre.adacore.com/libre/tools/gnat-component-collection/ http://libre.adacore.com/libre/tools/xmlada/

  • 3

    AWS可能就是您要找的,如果您想编写包含Web服务器或客户端的Ada程序 . 它可能是最活跃的开源Ada项目之一,所以我很确定有很多人也在使用它 .

    我自己用它来为基于Windows的服务提供基于Web的配置和监控界面 . 它工作得很好,而且非常容易使用 .

    如果您只想编写cgi脚本,那么其他人就是正确的,那里有其他语言 . 不过,我以前在Ada做过,而且效果很好 . 许多脚本语言鼓励编写程序扩展时不能很好地扩展的程序 . Ada程序往往没有这个问题 .

    另一方面,C和C等语言不对数组边界进行任何自动检测,并且非常基于指针 . 这使得当他们在互联网上暴露于世界时,与他们一起写下了积极的威胁 . 一些脚本语言也存在这个问题 . 通常,您无法轻松查看或修复它,因为它隐藏在语言运行时本身中 . 特别是当他们自己用C或C书写时 . 所以我实际上鼓励在除了最微不足道的情况之外的所有情况下使用Ada进行Web服务器脚本编写 .

    如果您在Ada中编写脚本,但是错过了脚本语言倾向于提供的更强大的字符串处理功能,请考虑查看Gnat's Spitbol package . 这实现了Ada中大多数SNOBOL字符串处理设备 . 如果你想做更复杂的字符串解析,另一个选项是OpenToken,它允许你在Ada中构建自己的完整的词法分析器和解析器 .

    但是,如果您正在寻找一个完整的复杂网站,您可能最好使用某种内容管理系统(例如:Drupal) . 无论如何,我都不愿意深入研究实现语言 . 理想情况下,您只需将组件插入即可 .

  • 2

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

    这是一个关于如何开始的视频:youtube.com

  • 4

    您可以查看http://blog.vacs.fr/index.php?tag/JSF以查看如何使用Ada Server Faces的示例 .

  • 11

    如果您想在网上启用烤面包机,可以尝试使用嵌入式Web服务器,如EWS . 甚至不需要服务器上的文件系统 .

  • 14

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

    如果您正在将数据库用于Web设计,那么您应该查看Ada Web Server(AWS),其中包括指向数据库的链接 . 对于更繁重的工作,您可能需要查看Ada-AWA项目,该项目是开源的 . 如果您正在处理对象关系数据库,那么您可能还需要考虑PolyORB,它可以处理CORBA和Ada分布式系统附件 . 如果你是一个单独的开发人员,这是非常重要的事情 . 您几乎肯定需要有人来处理日常的系统管理工作 - 您需要获得Internet服务提供商的许可才能托管网站 .

    如果您需要一个必须支持重型数值工作的Web界面,那么您应该知道Ada具有支持多线程应用程序的任务 - 通常Ada编译器和链接器将为每个任务分配一个线程 . 该语言旨在使用rendezvous直接支持线程到线程的通信 . 此外,语言设计者不得不担心硬调度问题,其中错过从一个线程到另一个线程的通信被视为程序失败 . 如果你要进行多代理通信,你可能应该得到一个UML设计工具,它可以让你使用同步图来设计这些类型的程序,因为围绕这种计算的思路与顺序编程非常不同 .

    需要注意的是,Ada专为嵌入式编程而设计,这意味着它专为有许多计算机的环境而设计,每台计算机都可以以点对点的方式与其他计算机通信 . 它最初由美国国防部使用,但它也被用于控制飞机中的襟翼和其他表面的航空电子设备软件,以及汽车中的等效系统 . 波音777航空电子设备软件是用Ada编写的 . 我似乎记得戴姆勒 - 克莱斯勒使用的是阿达 - 注意到目前的汽车有80台嵌入式电脑 . 软件开发成本可能约为新车当前成本的20% .

  • 5

    一般来说,Ada最严重的用途发生在防御承包商圈子内,而不是Web 2.0群体 .

    有很多更好的语言可以进行Web开发,但是我没有在google上找到带有ada的web-dev的预构建库或框架,我的同事给了我一个空白的样子 .

    也就是说,如果您想使用ada-hammer来解决问题,您可以构建一些东西来编译HTML代码并将其移动到服务器中的适当文件夹中 . 或者也许做一些花哨的即时编译HTML通过apache..painful返回,但我想可行

相关问题