Мало кто знает о том, что возможности языка C постепенно внедряются в... Delphi!
Давайте взглянем на основные нововведения:
1) [BDS 2006 +]появление возможности перегрузки операторов (хотя это и реализовано никудышно): подробнее здесь
2) [Delphi 2009 +] появление такой вещи как generics — аналог шаблонов C: подробнее здесь
Пример использования дженериков:
type
TPoint<T> = record
X: T;
Y: T;
end;
Ничего не напоминает?
3) На основе дженериков написан аналог STL — Generics.Collections, в котором реализованы полезные структуры данных, например LIFO (стек), queue, TDictionary (аналог set)... Реализованы сортировка, бинпоиск и многое другое.
program Generics;
{$APPTYPE CONSOLE}
uses
SysUtils, Generics.Collections;
var
dictionary: TDictionary<string, integer>;
s: string;
i: integer;
n, m: integer;
begin
dictionary := TDictionary<string, integer>.create;
readln(n);
for i := 1 to n do
begin
readln(s);
dictionary.Add(s, i);
end;
readln(m);
for i := 1 to m do
begin
readln(s);
writeln(dictionary.ContainsKey(s));
end;
end.
Такие нововведения ставят Delphi на новую ступень развития. А, прибавляя ко всему прочему простоту разработки, отладки и т.д., можно назвать этот язык достойным звания одного из лучших.
Но вот так не задача... Во всех проверяющих системах стоит Delphi 7 (а то и хуже)! Я думаю, что все паскалисты были бы рады обновлению Delphi хотя бы до версии 2009.
От себя хочу еще добавить, что я возлагаю большие надежды на CodeForces и надеюсь, что (если это возможно) мы в скором времени увидим в разделе выбора языка надпись "Delphi 2009".
Далеко не все организаторы соревнований будут в восторге от перспективы потратить как минимум трёхзначное число в долларах на каждую лицензию, а ещё дополнительно поставить себе сетевой License Server и поддерживать его работу. А устанавливать 30-day Trial или пиратскую копию на сколько-нибудь известном сервере, очевидно, очень плохой вариант.
Вот если бы у этой новой Delphi была бесплатная (не путайте с большой скидкой от заоблачной суммы!) лицензия на какую-то легковесную версию... Может, она есть? Я что-то не нашёл. Даже цены на сайте Embarcadero не узнать, они старательно спрятаны в единственный вариант "Contact Us".
Здесь Delphi XE3 Starter http://www.ibase.ru/prices/embarcadero.htm стоит 6300 р. Проспонсировать? Я за свежую делфи.
Вы знаете, сколько инвокеров используется на Codeforces и в полигоне суммарно? Думаю, что не меньше десятка.
Оплатите счет на 63000 рублей?
Эту сумму можно и всем народом собрать. Интересно, Гена заинтересован в новой версии Delphi?
Так и представляю себе бюджет мероприятия, половину которого занимает лицензия на Delphi. Странно платить компании, которой, видимо, не нужны олимпиады, за софт, который не нужен большинству олимпиадников. Особенно учитывая, что почти весь остальной софт для рабочего места олимпиадника (кроме Microsoft Windows) сегодня доступен бесплатно. Вот если вы встретитесь с представителями Embarcadero и убедите их, что поддержать какую-нибудь олимпиаду в их же интересах, то есть привлечёте их как спонсоров — почему бы нет.
Гена уже не школьник, а международных соревнований для не-школьников, поддерживающих хоть какой-то Паскаль, довольно мало осталось.
Еще один интересный вопрос — это какую лицензию надо покупать для использования Дельфи на тестирующем сервере. По ссылке, которую вы прислали, написано: один разработчик — одна лицензия, три разработчика — три лицензии.
Подумайте, сколько разработчиков будет при использовании такой лицензии на олимпиадном тестирующем сервере.
Одна лицензия. На билд-сервер не докупаются дополнительные лицензии при найме нового сотрудника в штат.
На билд-сервер, наверняка, нельзя ставить Starter, т.к. она предназначена для индивидуального разработчика.
На самом деле проблемы не в цене лицензий. Ну, допустим, вы разобрались, какие лицензии нужно покупать, скинулись и на каждый инвокер купили по лицензии. Проходит год, и в виду роста популярности сайта возникла необходимость в подключении новых инвокеров. Кто будет приобретать лицензии на новые инвокеры? Опять пустим шапку по кругу любителей дельфи?
Ну очень неудобно связываться с платным софтом в мире олимпиад.
Да, и еще по этой же ссылке. "Delphi XE3 Starter продается только частным лицам"
В догонку к Gassa параллельно его мнению: на хабре был очень хороший топик, наглядно разъясняющий ситуацию с Delphi и Embarcadero на текущий момент. Примечателен скорее даже не сам пост, а обсуждение развернувшееся в комментариях.
Ох уж эти холивары...
C++ практически не ограничивают возможности разработчика, например, по умножению на 0 константы в производительности, вбиванию необходимых костылей в программу и работе с объектами на сколь угодно близком к системе уровню.
Java и C# обладают помноженным на 0 порогом вхождения, глубокой интеграцией с базами данных и тоннами известных примеров, позволяя собирать необходимый велосипед из двух колес и рамы, причем, если поставить неправильное колесо, компилятор скажет, какое колесо здесь должно было стоять.
В чем преимущество Delphi?
Помнится, когда я писал на паскале (Delphi 6) мне нравилась необычно быстрая компиляция =) Собственно, я так и не смог написать на этом языке что-либо, что компилилось не мгновенно. C++, С# и Java вроде этим не могут похвастаться.
Eclipse для Java вне конкуренции по этому параметру: нажимаешь Run — и все, программа уже отработала.
Ога, любой PHP-шник (или питонист и т.п.) сразу завопит "а у меня вообще всё на лету подхватываиццо, и ничо компилить и нинада". Ну и в чём-то он конечно прав. Особенно если проект большой. Хотя к теме СП это едва ли можно отнести... ;-)
Ага, TestSys (тестирующая система СПбГУ) собирается полностью с нуля быстрее, чем gcc компилит hello.c
Ну... В Delphi нет maven-а (вроде), поэтому можно целыми днями шариться по форумам и стенать "ребяты-ы-ы, не знает ли кто-нибудь где взять компоненту такую чтобе..." — и таким образом расширяется живое общение... Это ж определённый плюс! :)
Про стоимость Delphi уже писали. Вы предлагаете для использования в тестирующих системах Delphi приобретать или воровать (или ломать)?
Второй минус — отсутствие кросс-платформенности. Любое современное решение должно быть кросс-платформенным. И если codeforces работает на Windows, то ejudge работает исключительно на Linux.
Вы поставили тег — "будущее олимпиад". Я надеюсь, что будущее олимпиад — это расширение числа участников в этих олимпиадах. И используемые средства при этом должны быть соответствующими. Среда Delphi, существующая только для одной проприетарной ОС и стоящая безумных (для участника олимпиады) денег под эти критерии никак не подходит.