Действительно ли Delphi 2010 готов к производственному использованию?

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

s = socket();
bind(s);
listen(s);
while (1) {
  s2 = accept(s);
  send_to_worker(s2);
}
8
задан Charles Faiga 3 March 2010 в 10:42
поделиться

6 ответов

Кажется, он более стабильный, чем D2009.

Но что касается вашего вопроса, кто может сказать?

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

19
ответ дан 3 November 2019 в 12:50
поделиться

Мне нравится ответ Брюса. Позвольте мне просто добавить к его словам, что визуализаторы отладчика могут значительно облегчить отладку. Между визуализаторами и улучшенными универсальными шаблонами определенно стоит обновить с 2009 года. (RTTI и атрибуты также могут быть полезны, в зависимости от вашей программы.)

7
ответ дан 3 November 2019 в 12:50
поделиться

На мой взгляд, он очень стабилен и удобен. Даже больше, чем Delphi 2009, который мне тоже очень нравится.

Я понимаю, что многие проблемы с Generics также были устранены.

Определенно готов к использованию в производственной среде.

8
ответ дан 3 November 2019 в 12:50
поделиться

To answer your question: Yes.

1
ответ дан 3 November 2019 в 12:50
поделиться

Вам в значительной степени придется переопределить свою функцию:

def some_func(*args, **kwargs):

и самостоятельно выполнить упаковку. Нет пути указывать разницу между pass-by-position, pass-by-keyword и default.

-121--2105201-

На самом деле...

C++ имеет что-то называемое принципом «как бы». Все охранники, на которых сделаны ссылки во всех этих ответах, относятся только к наблюдаемому поведению. Компилятору разрешено эллюдировать, переупорядочивать, добавлять и т. д. любой вызов функции, при условии, что наблюдаемое поведение является таким, как если бы оно выполнялось как первоначально записано. Это относится и к деструкторам.

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

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

Изменить: Кому-то нужна ссылка... 1.9/5, вместе со сноской 4 проекта стандарта C++ 0x (это не новое правило, у меня просто нет удобного стандарта C++ 03. Он также присутствует в стандарте C, AFAIK)

1,9/5:

Согласованная реализация, выполняющая хорошо сформированную программу, должна производить такое же наблюдаемое поведение как одна из возможных последовательностей выполнения соответствующего экземпляра абстрактной машины с одна и та же программа и один и тот же вход. Однако, если какая-либо такая последовательность выполнения содержит неопределенную операцию, этот Международный стандарт не предъявляет никаких требований к реализации, выполняющей эту программу с (даже не в отношении операций, предшествующих первой неопределенной операции).

Сноска 4:

Это положение иногда называют правилом «как если», поскольку осуществление может не учитывать любое требование настоящего Международный стандарт, если результат таков, как если бы требование было выполнено, насколько это может быть определено из наблюдаемое поведение программы. Например, фактическая реализация не должна вычислять часть выражения, если она может сделать вывод, что его значение не используется и что никаких побочных эффектов, влияющих на наблюдаемое поведение программы, не возникает.

Мое чтение (и то, что я думал было общим пониманием) заключалось в том, что это то, что позволяет компилятору свободной рукой делать все, что он хочет (то есть позволяет оптимизировать), если наблюдаемое поведение является поведением исходного письменного источника - включая перемещение вокруг деструкторов, а не уничтожение объектов вообще, изобретение деструкторов и т.д.

-121--1853103-

IMHO Delphi 2010 - лучшая версия для Delphi

1
ответ дан 3 November 2019 в 12:50
поделиться

Использование его в течение довольно некоторого времени. Более устойчивые затем 2009, 2007, 2005. У меня даже есть дни без единого крушения. Я надеюсь, что это будет недели для следующего D2011.

0
ответ дан 3 November 2019 в 12:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: