Какая пара лучше всего подходит для разработки небольших и быстрых приложений с графическим интерфейсом с некоторыми функциями графического редактора - C ++ и (VB или Win32)? - PullRequest
6 голосов
/ 16 января 2010

Это должно сделать некоторые трудоемкие вычисления, поэтому мне нужно, чтобы он работал как можно быстрее.

Тоже думал о Delphi. Так. Это вопрос вкуса (или привычки) или нет, и что вы можете мне тогда посоветовать?

Ответы [ 4 ]

25 голосов
/ 16 января 2010

Давайте попробуем проанализировать их:

C ++

Плюсы:

  • Создает собственный код, поэтому он быстрый.
  • Разрешает очень низкоуровневый доступ к оптимизации.
  • Может быть очень кроссплатформенным.
  • Более подвержен нечитаемому коду. (Лично я думаю, что тот факт, что утилита, подобная cdecl, даже существует, является хорошим признаком того, что части C не предназначены для чтения - и поскольку C ++ в основном является надмножеством C, то же самое применимо и здесь.)

Минусы:

  • Вам нужно много управлять самостоятельно, что может легко привести к утечкам памяти и тому подобному, если вы не будете осторожны, чтобы каким-либо образом управлять всем этим (например, умными указателями).
  • Компиляция выполняется sloooow.

Delphi

Плюсы:

  • Быстрая компиляция.
  • По умолчанию генерирует собственный код без зависимостей времени выполнения.
  • Позволяет легко интегрировать низкоуровневую сборку, если хотите.
  • Обычно вам не нужно связываться с указателями, но вы можете, если хотите.
  • Очень хороший конструктор GUI, а VCL - хороший набор инструментов, который удовлетворяет большинство ваших основных потребностей в компонентах.
  • Delphi-код обычно довольно легко читается.

Минусы:

  • Delphi не так широко распространен в языке, поэтому ссылки могут быть проблемой.
  • Если вам нужно взаимодействовать с внешними DLL, у вас меньше шансов найти готовый код Delphi, который позволяет вам вызывать методы DLL; вам, скорее всего, придется самим написать необходимые декларации (очевидно, есть инструменты, но я не знаю, насколько хорошо они работают ...)

VB6 * * тысяча пятьдесят один Плюсы: Есть еще много ссылок. Посмотрим правде в глаза, хотя язык может не понравиться, его довольно легко читать. Минусы: Чрезвычайно устаревшая среда. Больше не поддерживается. Не подходит для кода, который должен быть слишком эффективным. VB.NET (также C #)

Плюсы:

  • Благодаря архитектуре платформы .NET теоретически вы можете получить более высокую производительность, поскольку она способна оптимизировать код для конкретного процессора, на котором она выполняется.
  • Гигантская библиотека в вашем распоряжении (.NET Framework).
  • Память в значительной степени управляется для вас. Это означает, что там намного сложнее что-то испортить.
  • Популярные языки, поэтому ссылок много.

Минусы:

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

Мой личный голос принадлежит Delphi, потому что он позволяет быстро создавать приложения, а последние выпуски действительно улучшили набор функций и удобство использования IDE.

15 голосов
/ 16 января 2010

Выбор прост. Дельфи, опусти руки. C ++ обладает мощной вычислительной способностью, которая вам нужна, но не имеет хорошего конструктора GUI. У VB есть хороший дизайнер форм, но удачи в том, чтобы добиться высокой производительности, как в VB6, так и в версии .NET!

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

0 голосов
/ 16 января 2010

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

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

0 голосов
/ 16 января 2010

Я должен не согласиться с Мейсоном. Если вы пишете приложение с графическим интерфейсом Windows, которое должно выполняться быстро и легко создавать, C # - это то, что вам нужно. С .NET 3.5 вы можете получать очень быстрые вычисления через среду выполнения .NET, и она имеет отличную поддержку редактирования форм. Кроме того, если у вас есть опыт работы с C ++, C # очень легко подобрать.

Еще одним дополнительным преимуществом C # является то, что если вы обнаружите, что ваши вычисления слишком медленные, вы всегда можете написать вычислительно дорогой код на C ++, обернуть его в DLL и вызвать из C #.

В целом C # превосходит все что угодно при быстрой сборке приложений Windows, не жертвуя при этом высокой производительностью.

В качестве последнего утверждения я хотел бы сказать, что Microsoft не платит мне, я вообще ненавижу управляемые языки, и по сей день я избегаю писать C #, когда это возможно, потому что я предпочитаю C ++. Тем не менее, полезность C # заставила меня поверить в его использование для всего, что либо должно быть сделано быстро, либо нуждается в пользовательском интерфейсе, потому что возиться с MFC, WTL, ATL или COM полностью отстой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...