2011-05-05 11 views
18

¿Alguien hace un desarrollo web serio en Ada? ¿Hay bibliotecas o marcos disponibles para tales tareas? Estoy particularmente interesado en aquellos que son gratuitos y de código abierto.Programación web en Ada?

Se aprecian los indicadores pertinentes.

Respuesta

2

En general, los usos más graves de Ada ocurren en los círculos de Contratista de defensa, no en la multitud de la web 2.0.

Hay idiomas mucho mejores para hacer el desarrollo web en, pero no encontré bibliotecas preconstruidas o marcos para web-dev con ada on google y mis compañeros de trabajo me dieron un aspecto en blanco.

Dicho esto, probablemente puedas construir algo para compilar código HTML y moverlo a las carpetas adecuadas en tu servidor en ada si quieres usar el ada-hammer para resolver el problema. O tal vez hacer un poco de lujo justo a tiempo de compilación del código HTML para regresar a través apache..painful, pero supongo factible

+2

Supongo que eso depende de lo que quiere decir con "serio". En eso, dirigir misiles es un asunto más serio que dirigir solicitudes HTTP a las imágenes de LOLcat, supongo que tendría que estar de acuerdo. Sin embargo, de hecho, hay mucha gente haciendo desarrollo web en Ada. Si sus compañeros de trabajo nunca escucharon hablar de AWS, ¿quizás necesiten salir más? Es un proyecto muy utilizado. –

+1

Significado de proyectos con la mayor cantidad de dinero detrás de ellos. Gran compañía, grandes proyectos, fuera de Acadème. Bases de código masivas. Productos entregados reales. Software vital/de vuelo/espacial. ¿Sostendría que los usuarios más pesados ​​son DOD/relacionados con la defensa (teniendo en cuenta que el DOD requirió a Ada durante mucho tiempo, y solo han pasado unos años desde que comenzaron a tratar de evitarlo en los círculos de defensa)? Usar la herramienta correcta para el trabajo correcto sería mi recomendación. – Caladain

+0

... nada como Apache, por supuesto. –

10

AWS es probablemente lo que usted ar e buscando, si desea escribir programas Ada que incluyen un servidor web o un cliente en ellos. Probablemente sea uno de los proyectos de Open Source Ada que se mantienen más activamente, así que estoy bastante seguro de que hay mucha gente que lo usa también.

Lo he usado yo mismo para proporcionar una interfaz de monitorización y configuración basada en web para un servicio basado en Windows. Funciona muy bien, y es bastante fácil de usar.

Si solo quiere escribir scripts cgi, los demás tienen razón de que hay otros idiomas diseñados para eso. Sin embargo, lo he hecho en Ada antes, y funciona genial. Una gran cantidad de lenguajes de scripting alientan a escribir programas que no se escalan bien a medida que el programa se expande. Los programas de Ada tienden a no tener ese problema.

Por otro lado, los lenguajes como C y C++ no hacen ninguna detección automática en los límites de la matriz y están muy basados ​​en punteros. Esto hace cgi escrito con ellos una amenaza activa cuando se expone al mundo en Internet. Algunos lenguajes de scripting también tienen ese problema. A menudo no puede verlo o solucionarlo fácilmente, ya que está oculto en el tiempo de ejecución del lenguaje. Particularmente cuando ellos mismos fueron escritos en C o C++. Por lo tanto, realmente animo el uso de Ada para la creación de scripts en el servidor web en todos los casos menos en los más triviales.

Si está haciendo secuencias de comandos en Ada, pero echa en falta las herramientas de manejo de cadenas más potentes que los lenguajes de scripting tienden a proporcionar, considere mirar Gnat's Spitbol package. Eso implementa la mayoría de las instalaciones de manejo de cadenas de SNOBOL en Ada. Si desea hacer un análisis de cadenas mucho más complicado, otra opción es OpenToken, que le permite construir sus propios analizadores léxicos y analizadores en Ada.

Sin embargo, si usted está buscando para desarrollar un sitio web complejo mancha en toda regla, que son probablemente mejores resultados con algún tipo de sistema de gestión de contenido (por ejemplo: Drupal). No conozco ningún CMS basado en Ada, pero la mayoría de los usuarios de CMS no se molestan en caer en el lenguaje de implementación de todos modos. Lo ideal es que simplemente conecte los componentes.

15

He estado muy satisfecho con AWS/Templates_Parser, XML/Ada y GNATColl. Esos son tres paquetes sólidos que te permitirán hacer cosas emocionantes con Ada.

Estoy en el proceso de alejarme de PHP (tengo muchas herramientas internas compiladas en PHP en mi negocio) y hasta ahora Ada ha demostrado ser una compañera muy confiable. Ha llegado al punto en que realmente no me gusta tener que volver a PHP. Realmente espero el día en que todas mis herramientas sean impulsadas por Ada.

Solo prepárese para hacer más trabajo de campo que con un lenguaje web "normal". La recompensa es un producto final con mucho menos errores y mucho mejor rendimiento (en comparación con PHP). Al menos esa es mi experiencia.

Alguien ya ha publicado un enlace a AWS. Aquí están los enlaces para GNATColl y XML/Ada: http://libre.adacore.com/libre/tools/gnat-component-collection/ http://libre.adacore.com/libre/tools/xmlada/

+0

He visto sus publicaciones en c.l.ada y encuentro que es bueno saber de un emprendedor que "pone su dinero donde está su boca". Opta por el argumento "elige mejores herramientas". Lamentablemente, no he podido obtener una buena compilación de AWS a partir de ahora: MinGW y todo eso. – Shark8

4

Si desea habilitar su tostadora web, puede probar con un servidor web incorporado como EWS. Ni siquiera necesita un sistema de archivos en el servidor.

+1

-1: No veo cómo responde esto a la pregunta –

+2

@John, creo que la tostadora fue una broma. EWS está escrito en Ada, por lo que está muy relacionado con la pregunta. – oenone

5

AWS ya se presentó, ahora solo necesita un marco. Puedo recomendar el proyecto ada-awa.

He aquí un video sobre cómo empezar: youtube.com

3

La respuesta a la pregunta de si se puede hacer el desarrollo web de alta resistencia utilizando Ada depende de lo que quiere hacer. Si puede estar satisfecho con un enfoque cgi-bin, hay un paquete Ada que hará el trabajo y puede adjuntar hojas de estilo en cascada como lo haría con cualquier interfaz web. También puede usar Ada/XML si desea tratar el análisis XML. Hay casos en los que es útil, aunque es posible que desee pensar si XML es lo que necesita. Debido a que se compila un procedimiento de Ada para manejar las interfaces web, debe ser comparable a C en el rendimiento. Además, puede realizar el análisis de entrada de caracteres con el paquete Bounded_Strings que puede permitirle probar que las cadenas de caracteres de entrada no contienen caracteres inaceptables y que no son demasiado largos. Ambos controles son importantes en los sitios web para reducir la probabilidad de ataques de piratas informáticos exitosos.

Si está trabajando bases de datos en su diseño web, entonces debe mirar el servidor web Ada (AWS), que incluye enlaces a bases de datos. Para un trabajo aún más pesado, es posible que desee ver el proyecto Ada-AWA, que es de código abierto. Si está tratando con bases de datos relacionales de objetos, probablemente también quiera considerar PolyORB, que puede manejar CORBA y el anexo de Ada Distributed Systems. Esto es algo bastante pesado si trabajas como desarrollador único. Es casi seguro que necesitará tener a alguien que se encargue del trabajo cotidiano de la Administración del Sistema, y ​​necesitará el permiso de su Proveedor de Servicios de Internet para alojar un sitio web.

Si desea una interfaz web que tenga que soportar tareas numéricas pesadas, debe tener en cuenta que Ada tiene tareas que admiten aplicaciones de subprocesos múltiples, y típicamente el compilador y el enlazador de Ada asignarán un subproceso a cada tarea . El lenguaje está diseñado para admitir la comunicación de hilo a hilo directamente mediante el encuentro. Además, los diseñadores de idiomas han tenido que preocuparse por problemas de programación difíciles, en los que la pérdida de una comunicación de un hilo a otro se considera como una falla del programa.Si va a hacer una comunicación multi-agente, probablemente debería obtener una herramienta de diseño UML que le permita usar diagramas de sincronización para diseñar este tipo de programas, ya que concentrarse en ese tipo de informática es muy diferente de la programación secuencial.

Como nota, Ada fue diseñado para programación integrada, lo que significa que ha sido diseñado para un entorno en el que hay muchas computadoras, cada una de las cuales se puede comunicar con otras computadoras de igual a igual. Originalmente fue utilizado por el Departamento de Defensa de los Estados Unidos, pero también se ha utilizado en el software de aviónica que controla las aletas y otras superficies en los aviones, así como los sistemas equivalentes en los automóviles. El software de aviónica Boeing 777 fue escrito en Ada. Me parece recordar que Daimler-Chrysler usó Ada, y señaló que los automóviles actuales tienen algo así como 80 computadoras integradas. El costo de desarrollo del software es , probablemente alrededor del 20% del costo actual de un automóvil nuevo.

+0

Solo una nota al margen ... Aparte del 777, gran parte del software de los aviones militares Tornado y Typhoon construidos en Europa, y su equipo de tierra asociado, está escrito en Ada. –