OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 20 Июнь, 2025 02:38

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 16 ] 
Автор Сообщение
 Заголовок сообщения: Ada как альтернатива C++
СообщениеДобавлено: Воскресенье, 24 Август, 2008 11:49 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Vlad писал(а):
А зачем? :) Даже если бы у какого-то языка не было недостатков (в смысле он по всем основным параметрам был бы лучше C++), то можно было бы новый код писать на этом языке. При условии, что в числе прочих достоинств этого языка есть интероперабельность с C++.


Тогда Вам однозначно на Ada :-)
1) по всем основным параметрам лучше С++
2) возможностей при этом не меньше (то же самое есть) + дополнительно параллелизм-распределёнка встроенная
3) интероперабельность полная и стандартизированная. Российский эксперт по Ada говорил мне, что можно, например, начать иерархию классов на С++, продолжить на Аде, а затем опять на С++ :-)
4) Интегрированная система разработки GNAT (AdaCore.com) не уступит Студии. Последняя версия может работать как нативно, так и под .NET.
При этом вместо кучи г-на от Мелкомягких это реально профессиональный инструмент. Для реал-тайма, авиационщиков, пентагонов и проч. :-) Поддержка, опять же, и всё такое. Плюс российские эксперты имеются, входящие в международные комитеты и корпорации.

Это так, не реклама, а информация к размышлению :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MODULE ... IN ...;
СообщениеДобавлено: Понедельник, 25 Август, 2008 00:25 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
Тогда Вам однозначно на Ada :-)
1) по всем основным параметрам лучше С++


Неправда. Нормального GC нет, как и в C++. Дженерики (или как они в аде называются) недоделанные. Т.е. использовать их для тех же смартпоинтеров, чтобы хоть как-то снять с себя заботу о распределении памяти - нельзя. Аналог STL сделать - нельзя. Ну а стандартизированный параллелизм в C++ уж на подходе. Хотя уж лучше бы модули сделали хоть в каком-то виде, стандартизаторы, блин. Потому что с нестандартизированной параллельностью можно было вполне комфортно жить, если использовать более-менее распространенную библиотеку.

Илья Ермаков писал(а):
3) интероперабельность полная и стандартизированная. Российский эксперт по Ada говорил мне, что можно, например, начать иерархию классов на С++, продолжить на Аде, а затем опять на С++ :-)


Ну это он лукавит. Хотя бы потому, что стандарта на C++ ABI нет. Впрочем достаточно хотя бы уровня абстрактных интерфейсов + простейшие типы (включая строки) для основных компиляторов. Работать в терминахх сишных интерфейсов уж очень грустно.

Илья Ермаков писал(а):
4) Интегрированная система разработки GNAT (AdaCore.com) не уступит Студии. Последняя версия может работать как нативно, так и под .NET.
При этом вместо кучи г-на от Мелкомягких это реально профессиональный инструмент. Для реал-тайма, авиационщиков, пентагонов и проч. :-) Поддержка, опять же, и всё такое. Плюс российские эксперты имеются, входящие в международные комитеты и корпорации.
Это так, не реклама, а информация к размышлению :-)


Спасибо за информацию. Это все можно посмотреть в работе? Или они сначала хотят $?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MODULE ... IN ...;
СообщениеДобавлено: Понедельник, 25 Август, 2008 07:14 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
Vlad писал(а):
Нормального GC нет, как и в C++.
Там вроде полуавтоматическое управление памятью, что-то в этом духе...

Vlad писал(а):
Дженерики (или как они в аде называются) недоделанные. Т.е. использовать их для тех же смартпоинтеров, чтобы хоть как-то снять с себя заботу о распределении памяти - нельзя. Аналог STL сделать - нельзя.
STL в С++ пришёл из Ады, а вообще, как я знаю, родовые пакеты данных и процедуры в Аде придуманы для реализации параметрического полиморфизма, а не для извращений типа смартпоинтов...

Vlad писал(а):
Хотя бы потому, что стандарта на C++ ABI нет. Впрочем достаточно хотя бы уровня абстрактных интерфейсов + простейшие типы (включая строки) для основных компиляторов. Работать в терминахх сишных интерфейсов уж очень грустно.
В случае с Адой речь наверняка идёт о трансляторе GNAT, у которого бэкенд -- GCC (Ермаков именно его имел в виду). Так что ABI-стандарт де-факто тот, что в GCC.

Vlad писал(а):
Спасибо за информацию. Это все можно посмотреть в работе? Или они сначала хотят $?
Сам GNAT и редактор GIDE бесплатны для посмотреть или для GPL-проектов.
Я вот не видел, как там выглядит та среда программирования, о которой говорил Илья (возможно, он имел в виду интеграцию в Visual Studio), но вот GIDE -- очень аскетичный редактор, отличающийся от болкнота только подсветкой синтаксиса, форматтером исходников да интеграцией компилятора-линкера.

Если программы делать будете не под .NET, то для GUI скорее всего придётся использовать библиотеку GTK+ с редактором форм Glade, или париться с WinAPI...

Впрочем, я, как уже упоминал, не видел этот самый крутейший GNAT Pro...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MODULE ... IN ...;
СообщениеДобавлено: Понедельник, 25 Август, 2008 09:56 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Vlad писал(а):
Спасибо за информацию. Это все можно посмотреть в работе? Или они сначала хотят $?


Можно скачивать полноценную open-source версию инструментария, смотреть, сколько душе угодно, в академических целях бесплатно использовать (и даже, если от ВУЗа, то иметь их техподдержку). А вот за ком. применение - $ :-)

По поводу памяти - там действительно неплохая дисциплина работы с ней, полуавтоматическая.
Аналог STL уже вошёл в стандарт Ada-2005.

Цитата:
Я вот не видел, как там выглядит та среда программирования, о которой говорил Илья (возможно, он имел в виду интеграцию в Visual Studio)

Я имел в виду ту, что поставляется от AdaCore. Я особо с ней не работал - но смотрел: вроде есть и всякая навигация, и визарды, и интеллисенсе, и какие-то интеграции к другим языкам (даже Питон :) ) - в общем, полно излишеств нехороших :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MODULE ... IN ...;
СообщениеДобавлено: Понедельник, 25 Август, 2008 15:20 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Geniepro писал(а):
Vlad писал(а):
Нормального GC нет, как и в C++.
Там вроде полуавтоматическое управление памятью, что-то в этом духе...


"Полуавтоматическим" можно назвать что угодно :) Вон, в яблочном Objective C оно тоже заявляется как "полуавтоматическое", а на практике - это всего лишь пулы памяти.

Geniepro писал(а):
Vlad писал(а):
Аналог STL сделать - нельзя.
STL в С++ пришёл из Ады, а вообще, как я знаю, родовые пакеты данных и процедуры в Аде придуманы для реализации параметрического полиморфизма, а не для извращений типа смартпоинтов...


По моим сведениям, Степанов стал делать STL на C++, а не на Аде, именно потому, что в Аде оно не юзабельно :) А от извращений со смартпоинтерами я с удовольствием откажусь, но только если мне дадут что-то лучшее :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MODULE ... IN ...;
СообщениеДобавлено: Понедельник, 25 Август, 2008 15:25 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
От Ады-83 до Ады-95 и от неё до Ады-2005 много воды утекло :-)
Надо смотреть. Точно знаю, что стандартную библиотеку шаблонов они приняли. Да и до этого для 95-й несколько реализаций успешно работало.

Потом, Вы уверены, что это Ада виновата? Может быть, Степанову обязательно хотелось делать через то место, через которое на самом деле не нужно/избыточно/опасно/замудрённо? Проблему переобобщённости и переабстракции тоже никто не отменял.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MODULE ... IN ...;
СообщениеДобавлено: Понедельник, 25 Август, 2008 15:26 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
Можно скачивать полноценную open-source версию инструментария, смотреть, сколько душе угодно, в академических целях бесплатно использовать


Это хорошо. При случае посмотрю. А может есть ссылка на вменяемый адовский форум?

Илья Ермаков писал(а):
По поводу памяти - там действительно неплохая дисциплина работы с ней, полуавтоматическая.


Ага. Слово "дисциплина" уже настораживает. Точно каких-то пулов понаделали... ;)

Илья Ермаков писал(а):
Аналог STL уже вошёл в стандарт Ada-2005.


Точно надо глянуть, насколько это "аналог"... А то вон на дельфе тоже, говорят, есть аналог... :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MODULE ... IN ...;
СообщениеДобавлено: Понедельник, 25 Август, 2008 15:32 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
Потом, Вы уверены, что это Ада виновата? Может быть, Степанову обязательно хотелось делать через то место, через которое на самом деле не нужно/избыточно/опасно/замудрённо? Проблему переобобщённости и переабстракции тоже никто не отменял.


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MODULE ... IN ...;
СообщениеДобавлено: Понедельник, 25 Август, 2008 16:17 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
По поводу памяти - там действительно неплохая дисциплина работы с ней, полуавтоматическая.


Я тут погуглил чуть-чуть... Да, там есть пулы ;) Попутно набрел на ветку, в которой народ долго обсуждал, будет ли лик в простейшем примере с аллокацией целочисленного типа и на какой имлементации. Забавно :) Беглый просмотр документации по Ada2005 не выявил в стандартной библиотеке никаких признаков алгоритмов, только контейнеры. Так что чудес и в 2005 ревизии, похоже, не случилось :)

P.S. Хотя конечно хотелось бы пообщаться с людьми, которые серьезно используют Аду.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MODULE ... IN ...;
СообщениеДобавлено: Понедельник, 25 Август, 2008 16:44 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Русскоязычные источники концентрируются вокруг этого ресурса:
http://ada-ru.org/

Если будут серьёзные вопросы, могу связать Вас с Сергеем Игоревичем Рыбиным. Вряд ли в России найдётся более компетентный специалист - он с Адой с 1982 года, в комитетах Россию представляет. Разработчик компании AdaCore. ASIS (Ada Semantic Interface Specification) - стандарт на API доступа к синт. дереву исходников - его детище.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MODULE ... IN ...;
СообщениеДобавлено: Понедельник, 25 Август, 2008 17:38 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
Русскоязычные источники концентрируются вокруг этого ресурса:
http://ada-ru.org/


Чего-то все форумы, кроме comp.lang.ada, полудохлые...

Илья Ермаков писал(а):
Если будут серьёзные вопросы, могу связать Вас с Сергеем Игоревичем Рыбиным.


Спасибо. Серьезных вопросов пока нет...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ada как альтернатива C++
СообщениеДобавлено: Вторник, 09 Сентябрь, 2008 08:10 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Гм. Кое-какие алгоритмы там таки есть. Например алгоритм генерации случайных чисел. Там это тоже через дженерик.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ada как альтернатива C++
СообщениеДобавлено: Пятница, 03 Октябрь, 2008 10:50 
Аватара пользователя

Зарегистрирован: Пятница, 23 Май, 2008 09:24
Сообщения: 40
Откуда: Ленинград
Vlad писал(а):
Неправда. Нормального GC нет, как и в C++.

Меня пока ещё никто не смог убедить, что GC действительно так нужен. Один дотнетчик уверенно утверждал, что с XML нельзя работать, потому что там повсюду циклические ссылки. Авторы XMLAda, expat и libxml2, видимо, не знают об этом ограничении. Другое дело, что Safari2, когда закрываешь окно с кучей вкладок, не отвечает, пока всё не освободит, но это уже другой разговор. Постепенное освобождение можно и без GC сделать.
Возможно, это зависит от рода задач, но в системном программировании GC — это заноза в. Как только в проекте появляется ЯП с GC, он в некотором смысле начинает претендовать на исключительность. Вы не можете просто взять современные реализации Modula-3 и D, и делать циклы между их объектами, надеясь, что всё освободится. Поэтому Ada может рассматриваться как альтернатива C++, а большинство прочих — нет. В .NET и Java, казалось бы, эта проблема решена, вот только чего–то одного среди этих двух пока не осталось. До тех пор, пока нет единого, абсолютно всеми используемого интерфейса GC, ГНАТу простительно не поддерживать GC.

Илья Ермаков писал(а):
Российский эксперт по Ada говорил мне, что можно, например, начать иерархию классов на С++, продолжить на Аде, а затем опять на С++

В пределах GNAT&G++ ещё можно. Но я не вижу большого смысла завязываться на этом. SWIG на всякий случай поддерживает оба режима: модуль 'gnat' генерит привязки для GNAT&G++, а 'ada' — универсальные.

Илья Ермаков писал(а):
Можно скачивать полноценную open-source версию инструментария, смотреть, сколько душе угодно, в академических целях бесплатно использовать (и даже, если от ВУЗа, то иметь их техподдержку). А вот за ком. применение - $

Если точне, то $ за не–GPL версию. А в России очень много внутренних разработок, автоматизирующих предприятия. Раньше на FoxPro, сейчас на Delphi. Само собой, все исходники у предприятия. Так что тут GPL фиолетово.

Илья Ермаков писал(а):
Степанов стал делать STL на C++, а не на Аде, именно потому, что в Аде оно не юзабельно
А ещё в C++ не стали делать многозадачность, потому что делегация от Эрланга доложила, что в Аде оно неюзабельно. Они бы ещё пару–тройку таких делегаций попринимали бы, в C++ ни ООП, ни ОП не осталось бы :lol: Что–то нехорошее происходит с программистами, посмотревшими Монти Питон. Они начинают изобретать посредственные, но очень популярные языки программирования.

Илья Ермаков писал(а):
По поводу памяти - там действительно неплохая дисциплина работы с ней, полуавтоматическая.

Вот только не у всех, кто имеет дело с Адой, есть на неё вкус. Это особенно касается привязок. И гнатского кода тоже, кстати. GNAT.Sockets, например.

Плохо сделанными привязками в Аде тяжело пользоваться, а новички переносят это ощущение на Аду как таковую.

Vlad писал(а):
Беглый просмотр документации по Ada2005 не выявил в стандартной библиотеке никаких признаков алгоритмов, только контейнеры.

Стандартная либа весьма аскетична. Основное назначение стандарта — это определить язык, а библиотека — это минимальный API.

Я думаю, тут было бы лучше строить свои библиотеки поверх стандартной (fallback implementation) и поверх системных вызовов.

Vlad писал(а):
Так что чудес и в 2005 ревизии, похоже, не случилось :)

Взять хотя бы нисходящие замыкания и интерфейсы. Ещё бы и привязки всю эту благодать поддерживали...

Vlad писал(а):
P.S. Хотя конечно хотелось бы пообщаться с людьми, которые серьезно используют Аду.

http://news.gmane.org/gmane.comp.lang.ada.russian


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ada как альтернатива C++
СообщениеДобавлено: Пятница, 03 Октябрь, 2008 13:36 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Касательно ГЦ - ГЦ иногда сильно влияет на алгоритмику и структуры данных.
По поводу последних - вот, например, без ГЦ приходится синт. дерево в ASIS заворачивать в объекты-методы. Я в Обероне могу просто отпустить гулять по системе некое дерево из расширяемых записей и не париться.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ada как альтернатива C++
СообщениеДобавлено: Пятница, 03 Октябрь, 2008 16:03 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
OCTAGRAM писал(а):
Меня пока ещё никто не смог убедить, что GC действительно так нужен.


Попробуйте пописать на языке с GC :) Убеждение придет само :) Особенно после ады с ее пулами :)

OCTAGRAM писал(а):
Возможно, это зависит от рода задач, но в системном программировании GC — это заноза в. Как только в проекте появляется ЯП с GC, он в некотором смысле начинает претендовать на исключительность. Вы не можете просто взять современные реализации Modula-3 и D, и делать циклы между их объектами, надеясь, что всё освободится.


Я тут уже говорил - у нас успешно используется связка C++/C#/python. С циклическими ссылками все хорошо.

OCTAGRAM писал(а):
Vlad писал(а):
Беглый просмотр документации по Ada2005 не выявил в стандартной библиотеке никаких признаков алгоритмов, только контейнеры.

Стандартная либа весьма аскетична.


У C++ либа тоже не богатая ;) Ну ладно, покажите мне мой любимый std::find на Аде. Вместе с кодом, его использующим.

OCTAGRAM писал(а):
Основное назначение стандарта — это определить язык, а библиотека — это минимальный API.


Расскажите это явистам и дотнетчикам. По-моему, определение максимально богатой библиотеки в стандарте имеет только один недостаток - это трудно сделать правильно с первого раза. Ну а достоинства очевидны...

OCTAGRAM писал(а):
Vlad писал(а):
Так что чудес и в 2005 ревизии, похоже, не случилось :)

Взять хотя бы нисходящие замыкания и интерфейсы.


Что подразумевается под замыканиями? Указатель на метод интерфейса или что-то более интересное?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ada как альтернатива C++
СообщениеДобавлено: Понедельник, 15 Июнь, 2009 18:32 

Зарегистрирован: Вторник, 25 Март, 2008 23:04
Сообщения: 81
Откуда: Львів
Вышли QtAda 3.0 и QtAda 2.2

Справка с http://www.qtada.com/ru/index.html:

QtAda — связка для использования библиотек Qt версии 4.4 и выше в программах на языке программирования Ada 2005 и набор вспомогательных программ. Qt является переносимой платформой разработки приложений, она создана и поддерживается компанией Qt Software.

QtAda позволяет создавать кроссплатформенные сложные графические интерфейсы пользователя полностью средствами Ada 2005. Созданный с её помощью графический интерфейс пользователя способен работать на большинстве наиболее популярных соверменных платформ — Microsoft Windows, Mac OS X, Linux/Unix — без каких либо изменений и специфичного для платформы кода. Прилодения созданные с использованием QtAda не отличаются по внешнему виду и поведению от обычных приложений этой платформы, при этом учитываются в том числе и сделанные пользователем настройки.

QtAda позволяет использовать всю мощь визуальной разработки графических интерфейсов пользователя с использованием программы Qt Designer на всех этапах жизненного цикла программ — от создания начального прототипа и до длительного сопровождения.

QtAda является не просто связкой к существующим виджетам Qt, она позволяет разрабатывать собственные виджеты и интегрировать их в программу Qt Designer для последующей быстрой визуальной разработки графических интерфейсов пользователя.

QtAda использует родной многопоточный механизм сигналов/слотов и предоставляет полную прозрачную интеграцию его с задачами Ada.

QtAda предоставляет прекрасную поддержку для локализации и интернационализации приложений, включая перевод сообщений, специфическую для используемого пользователем языка обработку символов и строк, а так же форматирование дат, времени и чисел.
QtAda/GtkAda Integration Kit

QtAda/GtkAda Integration Kit предоставляет возможность использования обоих библиотек в рамках одного приложения, обеспечивая возможность повторного использования имеющегося GtkAda кода в QtAda приложениях.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2025, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB