Ada_Ru форум

Обсуждение языка Ада

How to begin

Оставить новое сообщение

Сообщения

Вадим Тукаев
How to begin
2011-08-26 04:42:15

Здравствуйте!

 

Хочу изучить язык Ада и писать на нём программы. Сразу возникло множество вопросов:

1. Что использовать в качестве IDE? Кто чем пользуется? SlickEdit подойдёт? 2. Какие компиляторы поддерживают Ada 2005? GNAT поддерживает?

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

Ну, хватит для начала. Сам я буду писать чисто вычислительный софт, где основная проблема - корректно перевести формулы с языка математики на язык программирования. Аду выбрал, потому что работать всё должно в реальном времени, распараллеленно, ну и крайне желательно без сбоев. Потом надо будет ещё пристегнуть к моей программе простенькую БД. Надеюсь, для этого в Аде есть средства. Сразу скажу: SQL для моих целей избыточен, по сути моя БД - хэш.

sma

Ada, в общем-то, язык мёртвый (как латынь).

Делать промышленные разработки лучше на С, С++ (специалистов-море, весь софт на нём).

С Адой куда ни кинь - сплошные проблемы. Начиная с подготовки специалистов, кончая софтом.

Недавно пробовал портировать Аду под ARM да бросил. Это дело только для гурманов.

 

 

26 августа 2011, 08:42 от Вадим Тукаев <[email protected]>:

 

Здравствуйте!

 

Хочу изучить язык Ада и писать на нём программы. Сразу возникло множество вопросов:

1. Что использовать в качестве IDE? Кто чем пользуется? SlickEdit подойдёт? 2. Какие компиляторы поддерживают Ada 2005? GNAT поддерживает?

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

Ну, хватит для начала. Сам я буду писать чисто вычислительный софт, где основная проблема - корректно перевести формулы с языка математики на язык программирования. Аду выбрал, потому что работать всё должно в реальном времени, распараллеленно, ну и крайне желательно без сбоев. Потом надо будет ещё пристегнуть к моей программе простенькую БД. Надеюсь, для этого в Аде есть средства. Сразу скажу: SQL для моих целей избыточен, по сути моя БД - хэш.

 

Здравствуйте!

Я бы немного бы поправил.

Язык Ada, более строгий как латынь.

С, С++ - это тот же макроассемблер, плюс поддержка от разработчиков ОС Unix и других ОС. Этим и определяется его ниша в информационных технологиях, безусловно вызывающая уважение, но оттуда и многие проблемы.

По существу если под Windows могу предложить платформу OEM-2011 for Windows (Mediascan) + GNAT GPL 2011 (AdaCore). Документированное решение для студентов и начинающих.

Под Unix лучше QtAda + GNAT GPL 2011 (AdaCore). По этому вопросу лучше обращаться к Вадиму Годунко.

Многие ответы можно найти на сайте www.ada-ru.org , там же находится книга по ada. Остальное на английском, в частности по Ada-2005/2012

http://www.adacore.com/category/developers-center/gems/ и на других страничках сайта.

 

GNAT GPL 2011 (AdaCore) поддерживает Ada-2005/2012 .

С уважением, Сергей.

Email: ksiby@...

http://www.mediascan.by

26 августа 2011, 09:19 от Ivan Ivanov <[email protected]>:

Ada, в общем-то, язык мёртвый (как латынь).

 

Я слишком хорошо знаю, что многие технологии на самом деле гораздо живее, чем принято думать (например, COBOL и OS/2).

 

Делать промышленные разработки лучше на С, С++

 

Спасибо, но я лучше потрачу время на изучение латыни. Между прочим, действительно знаю её немного. Но забросил (чтобы изучить эсперанто).

 

(специалистов-море,

 

Ага, быдлокодеров пруд-пруди. А тех же коболистов днём с огнём ищут, готовы брать из других стран и платить по двойному тарифу.

 

весь софт на нём).

 

Смотря на каком рынке. В сфере банковских и прочих сверхнадёжных систем вертикального рынка КОБОЛ и сейчас - царь и бог...

 

С Адой куда ни кинь - сплошные проблемы. Начиная с подготовки специалистов, кончая софтом.

 

Я не собираюсь подготавливать специалистов (кроме себя самого). И что понимается под софтом? Компиляторы есть, даже бесплатные найдутся.

 

Недавно пробовал портировать Аду под ARM да бросил.

 

А когда ты спотыкаешься о журнальный столик, то сечёшь его розгами, да? Плохой столик, плохой, ты виноват в том, что я об тебя споткнулся!

 

Это дело только для гурманов.

 

Вот! Так и знал, что Ада - для меня!

On Fri, 26 Aug 2011 08:42:15 +0400, you wrote:

 

Хочу изучить язык Ада и писать на нём программы. Сразу возникло множество вопросов:

1. Что использовать в качестве IDE? Кто чем пользуется? SlickEdit подойдёт?

 

Не знаю, GPS - лучшее, что есть, уровня Visual Studio, в кое-чем даже лучше. (Я использую и то и то, так что могу сравнивать)

 

2. Какие компиляторы поддерживают Ada 2005? GNAT поддерживает?

 

Поддерживает Ada 83, Ada 95, Ada 2005. Ada 2012 в работе, как я понимаю. В моих проектах на работе я использую Ada 2005.

 

GPS - IDE, в принципе поддерживает любые языки, реально (out-of-shelf) Ada и C/C++

 

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

 

Не видел, но если Вас не интересует embedded, то можете исходить из того, что GNAT вне конкуренции, к сожалению. Другие конторы Aonix, Green Hill и т.д. не ставят свой бизнес в зависимость от Ada. AdaCore - серьезнее.

Ну, хватит для начала. Сам я буду писать чисто вычислительный софт, где основная проблема - корректно перевести формулы с языка математики на язык программирования. Аду выбрал, потому что работать всё должно в реальном времени, распараллеленно, ну и крайне желательно без сбоев.

 

Это одна из мотиваций разработки языка. Я занимаюсь распределенными системами, и мы имеем продукты написанные, и на Ada, и на C++, могу подтвердить, что Ada значительно удобнее, а разницы в скорости нет.

Для вычислений C++ очень сложен, если требуется контроль за точностью. Но это - не мой хлеб.

 

Потом надо

будет ещё пристегнуть к моей программе простенькую БД. Надеюсь, для этого в Аде есть средства. Сразу скажу: SQL для моих целей избыточен, по сути моя БД - хэш.

 

Разумеется. Я использую SQLite для подобных целей. Но SQL, и вообще реляционные базы, ужасны. Но без них Вам придется писать свое. В принципе, мы так и делаем, если надо достичь производительности (писать 10кГц многоканальный лог и т.п.) Зависит от Ваших возможностей и ресурсов.

--

Regards,

Dmitry A. Kazakov

http://www.dmitry-kazakov.de

On Fri, 26 Aug 2011 09:19:04 +0400, you wrote:

 

Ada, в общем-то, язык мёртвый (как латынь).

 

Трудно сказать. Я не вижу отмирания Ады. Но есть заметный отход от С++ в пользу C#. Эти волны зависят только от системы образования. В долгосрочной перспективе технологические преимущества отыгрывают, то очень медленно. Так как рынка нет.

 

Делать промышленные разработки лучше на С, С++ (специалистов-море, весь софт на нём).

 

Глубокое заблуждение. Мы активно набираем программистов по всей стране (Германии), я их интервьюирую. С++ не знает никто. На самом деле, есть минимальный базовый уровень, которым все (не) владеют в равной степени, и который мало зависит от языка. Специфические языковые проблемы - "высшая математика", абсолютно за гранью понимания 99% кандидатов.

 

if (x = 1)

 

поймут 10%, но только потому, что где-то слышали.

 

class Foo

{

Foo () { Init (); }

virtual void Init ();

}

 

Поймет 0.01%. Так - не бывает.

 

Недавно пробовал портировать Аду под ARM да бросил. Это дело только для гурманов.

 

ARM - да. Мы ставим Atom, и никакого геморроя. А вообще, DragonLace Ada имеет ARM в качестве цели:

 

http://www.dragonlace.net/

 

присоединяйтесь к ним.

 

--

Regards,

Dmitry A. Kazakov

http://www.dmitry-kazakov.de

Dmitry A. Kazakov wrote:

 

2. Какие компиляторы поддерживают Ada 2005? GNAT поддерживает?

 

Поддерживает Ada 83, Ada 95, Ada 2005. Ada 2012 в работе, как я понимаю. В

моих проектах на работе я использую Ada 2005.

 

Многие нововведения Ады 2012 уже вполне поддерживаются GNAT-ом. В том

числе и в GPL-версии

Кстати, насколько я понимаю, к латыни ближе (по степени запутанности грамматики) именно Си/С++. А Ада ближе к эсперанто (хотя к эсперанто еще ближе какой-нибудь Оберон).

sma

По поводу глубокого не знания программистами "C-плас-плас" Ж)

99 % практического кода пишется на самом простом подмножестве языка. Использование разного рода трюков в программировании (в том числе и на C++) - первый признак непрофессионализма .

Как правило, в голове остаются только полезные, надёжные и совместимые с жизню приёмы.

Всякая хрень быстро забывается.

Как правило, в голове остаются только полезные, надёжные и совместимые с жизню приёмы.

Всякая хрень быстро забывается.

 

Но почему-то именно эту самую всякую хрень на собеседованиях и спрашивают.

Когда у меня её спрашивают, я обычно отвечаю про эту хрень, а затем сразу задаю вопрос - а используется ли вот ЭТО конкретно в вашем

боевом проекте?

 

Обычно слегка смущаются и отвечают что нет, не используется.

On Fri, 26 Aug 2011 18:07:26 +0400, you wrote:

 

По поводу глубокого не знания программистами "C-плас-плас" Ж)

99 % практического кода пишется на самом простом подмножестве языка.

 

Откуда немедленно следует ложность тезиса о толпах подготовленных специалистов C++ на рынке труда. Нет никаких толп, нет никакого

преимущества.

 

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

 

--

Regards,

Dmitry A. Kazakov

http://www.dmitry-kazakov.de

Dmitry A. Kazakov wrote:

On Fri, 26 Aug 2011 18:07:26 +0400, you wrote:

 

По поводу глубокого не знания программистами "C-плас-плас" Ж)

99 % практического кода пишется на самом простом подмножестве языка.

 

Справедливо для любого языка. Потому становится важным вопрос,

насколко легко такое подмножество из языка выделяется (с точки

зрения нарваться на боевые грабли, подсунутые полной версией

языка)

Откуда немедленно следует ложность тезиса о толпах подготовленных

специалистов C++ на рынке труда. Нет никаких толп, нет никакого

преимущества.

 

Обучаем мы в конторе не языку, это - бесполезно, в силу недостаточной

подготовки, и не методам разработки - еще бесполезнее, т.к. они даже такую

постановку вопроса не понимают. Просто дрессируем использовать библиотеки,

и не делать обычных ляпов. Так что язык может быль любой. На этом уровне -

все равно. Если человек вырастет - сам все поймет. Но, маловероятно, после

фронтальной лоботомии высших учебных заведений.

 

И это верно. Если человек стоящий - он обучится любому языку

и любой технологии. Если нет - так и останется обезьяной для

кодирования.

On Fri, 26 Aug 2011 19:08:02 +0400, you wrote:

 

Dmitry A. Kazakov wrote:

 

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

 

И это верно. Если человек стоящий - он обучится любому языку

и любой технологии. Если нет - так и останется обезьяной для

кодирования.

 

Да, но именно это цементирует кустарно-ремесленный характер разработки программного обеспечения. Мы (промышленность) научить ничему (особенно, хорошему (:-)) принципиально не способны. Без фундамента высшего

образования, в его нормальном техническом понимании, ничего не будет. К сожалению в ВУЗах читают какой-то бред. Это относится не только к выбору языка. На самом деле, даже и это не так важно, как привитие отношения к программированию как к осмысленной деятельности. Этого просто нет.

--

Regards,

Dmitry A. Kazakov

http://www.dmitry-kazakov.de

26.08.2011 14:59, Dmitry A. Kazakov пишет:

 

Недавно пробовал портировать Аду под ARM да бросил. Это дело только

для гурманов.

 

ARM - да. Мы ставим Atom, и никакого геморроя

 

Ну а Geode LX? По крайней мере, чуть ли не самый дешёвый x86–девайс, годный в маршрутизаторы и NAS, ALIX PC, использует именно его:

 

http://www.astrx.ru/2010-11-28-17-14-07.html?page=shop.product_details&flypage=flypage_new.tpl&product_id=243&category_id=55

 

Soekris тоже на Геодах работает, но в России непонятно, где его достать, да и с виду он дороже.

 

-- If you want to get to the top, you have to start at the bottom

On Sun, 11 Sep 2011 13:26:11 +0700, you wrote:

 

26.08.2011 14:59, Dmitry A. Kazakov пишет:

 

Недавно пробовал портировать Аду под ARM да бросил. Это дело только для гурманов.

 

ARM - да. Мы ставим Atom, и никакого геморроя

 

Ну а Geode LX? По крайней мере, чуть ли не самый дешёвый x86–девайс, годный в маршрутизаторы и NAS, ALIX PC, использует именно его:

 

http://www.astrx.ru/2010-11-28-17-14-07.html?page=shop.product_details&flypage=flypage_new.tpl&product_id=243&category_id=55

 

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

 

Soekris тоже на Геодах работает, но в России непонятно, где его достать, да и с виду он дороже.

 

Не помню его. В свое время мы искали много-портовые платы, но в основном 104-e, 4 порта было мало. В итоге мы взяли i7 и две отдельные 4-х портовые карты. Atom такое не потянет. Но это - особый случай, один сумасшедший клиент хотел 90-микросекундных задержек.

 

--

Regards,

Dmitry A. Kazakov

http://www.dmitry-kazakov.de

26.08.2011 11:42, Вадим Тукаев пишет:

Потом надо будет ещё пристегнуть к моей программе простенькую БД.

Надеюсь, для этого в Аде есть средства. Сразу скажу: SQL для моих целей

избыточен, по сути моя БД - хэш.

 

К слову о БД, есть ли какой–нибудь движок, добавляющий транзакционность к низкоуровневой работе с файлом? То есть, вместо read есть fetch, а запись делается только после commit, при этом движку должен быть безразличен формат нижележащей базы данных. Для лога транзакций желательно иметь отдельный файл.

 

Экспериментальные БД — интересная тема, но целостность и транзакции — не та область, где хочется погеройствовать

 

-- If you want to get to the top, you have to start at the bottom

26.08.2011 14:59, Dmitry A. Kazakov пишет:

Недавно пробовал портировать Аду под ARM да бросил. Это дело только

для гурманов.

 

ARM - да.

 

Учитывая

 

https://secure.wikimedia.org/wikipedia/en/wiki/ARM_architecture#Thumb_Execution_Environment_.28ThumbEE.29

 

New features provided by ThumbEE include automatic null pointer

checks on every load and store instruction, an instruction to perform

an array bounds check, access to registers r8-r15 (where the

Jazelle/DBX Java VM state is held), and special instructions that

call a handler. Handlers are small sections of frequently called

code, commonly used to implement a feature of a high level language,

such as allocating memory for a new object. These changes come from

repurposing a handful of opcodes, and knowing the core is in the new

ThumbEE mode.

 

низкую стоимость и прочее, ARM может быть самым крутым таргетом для Ады.

 

-- If you want to get to the top, you have to start at the bottom

sma

Я имел ввиду следующее.

Для любого микропроцессора имеется своя "родная" среда разработки, рекомендованная и поддерживаемая производителем.

А это, как Вы сами понимаете, C/C++ (без вариантов).

Пришпандорить сюда Аду можно, но стоит ли это усилий?

Тут на родном-то С/C++ не всегда всё идёт даже c 5-го раза...

Вот если бы Аду для соответствующего чип-сета поддерживал производитель или группа заинтересованных товарищей.

Чтобы были библиотека, примеры и проч.

Но даже в этом случае надежды на успех мало.

On Wed, 14 Sep 2011 17:27:32 +0400, you wrote:

 

Я имел ввиду следующее.

Для любого микропроцессора имеется своя "родная" среда разработки, рекомендованная и поддерживаемая производителем.

 

И зовется эта среда Windows.

 

А это, как Вы сами понимаете, C/C++ (без вариантов).

 

Скорее C, но это далеко не так важно, как BSP (board support package), а там язык не играет особой роли.

 

Пришпандорить сюда Аду можно, но стоит ли это усилий?

 

Смотря для кого. Разработка программ - намного сложнее железа, так что в итоге производители железа прогибаются. Уже JVM начали ставить,

Web-server-ры...

 

Мы пишем все на Аде и нас не колышет, если для процессора X нет

компилятора. Купим другой! В последнее время мы покупаем исключительно Intel-совместимые платы, и всех делОв. Кстати, нам нужен не просто BSP, а еще и ОС. И это - будущее. Stand-alone стремительно дохнет.

 

Тут на родном-то С/C++ не всегда всё идёт даже c 5-го раза...

Вот если бы Аду для соответствующего чип-сета поддерживал

производитель или группа заинтересованных товарищей.

Чтобы были библиотека, примеры и проч.

Но даже в этом случае надежды на успех мало.

 

На успех чего? Времена вздорных производителей чипов уходят. По мере падения стоимости "песка", платформы будут унифицироваться, а требования к ним возрастать, то-бишь, ОС и т.п. Это особенно стало очевидным в последнее время. Китайцы лепят одно-платные системы как пирожки. Эта волна все сметет...

 

--

Regards,

Dmitry A. Kazakov

http://www.dmitry-kazakov.de

14.09.2011 20:27, Ivan Ivanov пишет:

А это, как Вы сами понимаете, C/C++ (без вариантов).

 

Нет, не очень понятно, как к C прикрутить проверки диапазонов, кроме некоторых случаев, с которыми уже существующие не–ARM компиляторы не могут эффективно справится из–за отсутствия метаинформации со стороны программиста. А если прикрутить расширения, это будет уже не C.

 

Я думаю, на такой платформе, как ARM ThumbEE, C будет столь же применим, как и UNIX среда на OpenVMS. Работать–работает, но потенциал не раскрывает.

 

-- If you want to get to the top, you have to start at the bottom

Dmitry A. Kazakov пишет:

 

Недавно пробовал портировать Аду под ARM да бросил. Это дело только

для гурманов.

 

ARM - да. Мы ставим Atom, и никакого геморроя.

 

Вот ещё нашёл:

 

http://www.xcore86.com/site/Technology

 

Xcore86 provides a crossover Device on Chip™ that integrates a complete PC on a low-cost single CHIP that competes with RISC chips in price and energy efficiency.

 

 

Как я понял, тройка Intel-AMD-VIA пополнилась четвёртым x86 конкурентом

 

-- If you want to get to the top, you have to start at the bottom

Новое сообщение:
Страницы: 1 2

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти