Подтвердить что ты не робот

Веб-программирование в Аде?

Кто-нибудь делает серьезные веб-разработки в Аде? Существуют ли библиотеки или рамки для таких задач? Меня особенно интересуют те, которые являются бесплатными и с открытым исходным кодом.

Любые соответствующие указатели оценены.

4b9b3361

Ответ 1

Попробуйте AWS, Только правильное решение, которое я мог бы найти...

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

НО -

Я бы порекомендовал вам выучить язык, который больше предназначен для веб-разработки. Например: PHP, asp.net, JSP....

Ответ 2

Мне очень понравились AWS/Templates_Parser, XML/Ada и GNATColl. Это три твердых пакета, которые позволят вам делать интересные вещи с помощью Ada.

Я сейчас ухожу от 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 - это, вероятно, то, что вы ищете, если вы хотите писать программы Ada, которые включают в себя веб-сервер или клиент. Вероятно, это один из наиболее активно поддерживаемых проектов Open Source Ada, поэтому я уверен, что там тоже много людей.

Я сам использовал его для предоставления веб-интерфейса конфигурации и мониторинга для службы на базе Windows. Он работает очень хорошо и довольно прост в использовании.

Если вы просто хотите писать скрипты cgi, другие люди правы, что для этого существуют другие языки. Тем не менее, я уже делал это в Ada, и он отлично работает. Многие языки сценариев способствуют написанию программ, которые не масштабируются так же, как программа расширяется. Программы Ada, как правило, не имеют этой проблемы.

С другой стороны, такие языки, как C и С++, не выполняют автоматического обнаружения на границах массива и очень ориентированы на указатели. Это делает cgi написанным с ними активной угрозой, когда вы попадаете в мир в Интернете. У некоторых языков сценариев тоже есть эта проблема. Часто вы не можете легко увидеть или исправить его, потому что он скрыт в самой исполняемой среде языка. Особенно, когда они сами были написаны на C или С++. Поэтому я действительно рекомендую использовать Ada для сценариев веб-сервера во всех, кроме самых тривиальных случаях.

Если вы выполняете скрипты в Ada, но пропустите более мощные средства обработки строк, которые, как правило, предоставляют языки сценариев, рассмотрим возможность пакет Gnat Spitbol. Это реализует большинство функций обработки строк SNOBOL в Ada. Если вы хотите сделать гораздо более сложный синтаксический анализ строк, другой вариант - OpenToken, который позволяет создавать собственные полномасштабные лексические анализаторы и парсеров в Аде.

Однако, если вы хотите создать полноценный полнофункциональный сложный веб-сайт, вам, вероятно, лучше всего использовать какую-то систему управления контентом (например: Drupal). Я не знаю какой-либо CMS, построенной на Ada, но большинство пользователей CMS вообще не хотят переходить на язык реализации. В идеале вы просто подключаете компоненты вместе.

Ответ 5

AWS уже был представлен вам, теперь вам просто нужна инфраструктура. Я могу порекомендовать проект ada-awa.

Вот видео о том, как начать: youtube.com

Ответ 6

Если вы хотите, чтобы веб-инсталляция вашего тостера, вы можете попробовать встроенный веб-сервер, например EWS. Даже не нужна файловая система на сервере.

Ответ 7

Ответ на вопрос о том, можете ли вы работать в режиме тяжелой работы с использованием Ada, зависит от того, что вы хотите сделать. Если вы можете удовлетвориться подходом cgi-bin, там будет пакет Ada, который будет выполнять эту работу, и вы можете присоединить каскадные таблицы стилей, как и с любым веб-интерфейсом. Вы также можете использовать Ada/XML, если хотите иметь дело с разбором XML. Бывают случаи, когда это полезно, хотя вы можете подумать о том, нужен ли вам XML. Поскольку процедура Ada для обработки веб-интерфейсов скомпилирована, она должна быть сопоставима с производительностью C. Кроме того, вы можете выполнять синтаксический анализ символов с помощью пакета Bounded_Strings, который может позволить вам проверить, что строки ввода символов не содержат неприемлемых символов и не слишком длинны. Обе эти проверки важны на веб-сайтах, чтобы уменьшить вероятность успешных атак хакеров.

Если вы работаете с базами данных в своем веб-дизайне, вам следует взглянуть на веб-сервер Ada (AWS), который включает ссылки на базы данных. Для более тяжелой дежурной работы вы можете захотеть взглянуть на проект Ada-AWA, который является открытым исходным кодом. Если вы имеете дело с объектно-реляционными базами данных, то вам, вероятно, также захочется рассмотреть PolyORB, который может обрабатывать CORBA и приложение распределенных систем Ada. Это очень тяжелая работа, если вы работаете как один разработчик. Вам почти наверняка потребуется, чтобы кто-то работал с повседневной работой системного администратора, и вам потребуется разрешение от вашего поставщика услуг Интернета для размещения веб-сайта.

Если вам нужен веб-интерфейс, который должен поддерживать работу с большими нагрузками, вам следует знать, что Ada имеет задачи, поддерживающие многопоточные приложения, - и, как правило, компилятор и компоновщик Ada назначают поток каждой задаче. Язык предназначен для поддержки потоковой связи напрямую с помощью рандеву. Кроме того, разработчикам языка пришлось беспокоиться о проблемах с жестким планированием, в которых отсутствие связи из одного потока в другой рассматривается как сбой программы. Если вы собираетесь делать многоагентную связь, вам, вероятно, нужно будет создать инструмент проектирования UML, который позволит вам использовать диаграммы синхронизации для разработки таких программ, поскольку обдумывание вокруг такого рода вычислений сильно отличается от последовательного программирования.

В качестве примечания Ada была разработана для встроенного программирования, что означает, что она была разработана для среды, в которой имеется много компьютеров, каждая из которых может взаимодействовать с другими компьютерами одноранговым способом. Первоначально он использовался в США DOD, но он также использовался в авионике, который управляет клапанами и другими поверхностями в самолетах, а также эквивалентными системами в автомобилях. Программное обеспечение авионики Boeing 777 было написано в Аде. Кажется, я помню, что Daimler-Chrysler использовал Ada - отметив, что у нынешних автомобилей есть что-то вроде 80 встроенных компьютеров. Стоимость разработки программного обеспечения вероятно, около 20% от текущей стоимости нового автомобиля.

Ответ 8

В общем, самые серьезные применения Ada происходят в кругах оборонного подрядчика, а не в толпе Web 2.0.

Есть намного лучшие языки для веб-разработки, но я не нашел встроенных библиотек или фреймворков для веб-разработчиков с ada на google, и мои коллеги дали мне пустой взгляд.

Тем не менее, вы, вероятно, могли бы создать что-то, чтобы скомпилировать HTML-код и перенести его в соответствующие папки на вашем сервере в ada, если вы хотите использовать ada-hammer для решения проблемы. Или, может быть, некоторые причудливые компиляции HTML-кода, чтобы вернуться через apache.painful, но я полагаю выполнимый