Важное сообщение для всех программистов C/C++ ...

24 причины, из-за которых вы собираетесь написать свою следующую программу на Euphoria!

 

  • потому, что вы устали от необходимости переизобретать динамическое выделение памяти для каждой программы, которую вы пишете

  • потому, что вы провели слишком много нудных часов за выуживанием ошибок распределения памяти

  • потому, что вы однажды уже потратили несколько дней на отыскание ошибки, которая то есть, то её нет, а оказалось, что это просто переменная, которой вы забыли присвоить начальное значение

  • потому, что независимо от ваших усилий по устранению утечек памяти, всегда находится ещё одна такая утечка

  • потому, что вы устали от зависаний своей машины или остановок своей программы, которые происходят, не выводя никаких сообщений об ошибке

  • потому, что вы знаете, что проверка индексов может избавить вас от часов безуспешной отладки

  • потому, что вашей программе не следует разрешать перезаписывание случайных областей памяти через посредство "диких" пойнтеров

  • потому, что вы знаете, как плохо будет при переполнении области стека фиксированного размера, но у вас нет идеи, как избежать этого

  • потому, что однажды уже имели дело с той загадочной ошибкой, когда вызванная функция, которая не должна выдавать результирующую величину, потеряла конец и "выдала" какой-то мусор

  • потому, что вы хотите, чтобы библиотечные подпрограммы на деле не позволяли вам подавать в них негодные аргументы, а не ограничивались errno, на которое мало кто смотрит

  • потому, что вам хотелось бы "перекомпилировать вселенную" за долю секунды, а не за многие минуты -- вы можете работать гораздо быстрее в цикле редактирую/исполняю, чем в цикле редактирую/компилирую/линкую/исполняю

  • потому, что Язык программирования C++ 3-е изд. Бьярне Страуструпа - это 911 страниц убористым шрифтом (и там даже не обсуждается специфика программирования на платформах DOS, Windows, Linux или любых других)

  • потому, что вы уже давно программируете на C/C++, но в языке всё ещё есть множество загадочных особенностей, которые вам не вполне понятны

  • потому, что переносимость программ не такая простая штука, как хотелось бы

  • потому, что вы знаете диапазон допустимых величин для каждой из своих переменных, но у вас нет метода следить за ними в период прогона программы

  • потому, что вам нужно бы посылать в подпрограммы переменное число аргументов, но вас останавливают трудности реализации этого на C

  • потому, что вам необходим ясный путь выдачи функцией множественных величин

  • потому, что вы хотите иметь интегрированный полноэкранный отладчик исходного кода, который лёгок в использовании настолько, что не требуется инструкция (или снабжение программы отладочными командами printf)

  • потому, что вы ненавидите шутки программы, когда она начинает работать правильно просто от того, что вы добавили в неё отладочные команды printf или перекомпилировали с включенной опцией "отладка"

  • потому, что вы хотели бы получить надёжный и точный профиль команд, чтобы понимать внутреннюю динамику своей программы и разогнать её производительность

  • потому, что очень немногие ваши программы должны экономить каждый машинный цикл. Разница по скорости между Euphoria и C/C++ не так уж велика, особенно, когда вы используете транслятор с Euphoria на C. Сделайте тесты производительности. Мы держим пари, что вы будете удивлены!

  • потому, что вы не хотите загромождать свой жёсткий диск .obj- и .exe-файлами

  • потому, что вы хотели бы уже тестировать, как работает ваша программа, а не только ещё рыться в сотнях страниц документации, чтобы решить, какие опции нужны вашим компилятору и линковщику

  • потому, что ваш пакет C/C++ имеет 57 различных функций для выделения памяти, и 67 различных функций для манипулирования строками и блоками памяти. Как много подобных подпрограмм нужно Euphoria? Ответ: ноль. В системе Euphoria выделение памяти происходит автоматически, а строки обрабатываются просто так же, как и любые другие ряды.