Что такое лучшая пара для разработки маленького и быстрого приложения GUI с некоторыми графическими функциями редактора - C++ и (VB или Win32)?

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

Также думавший о Delphi. Так. Действительно ли это - вопрос вкуса (или привычка) или не и что может Вы совет меня затем?

6
задан Joel Coehoorn 14 May 2012 в 03:53
поделиться

4 ответа

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

C++

Pros:

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

Cons:

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

Delphi

Pros:

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

Противопоказания:

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

VB6

Pros:

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

Против:

  • Крайне устаревшая среда.
  • Больше не поддерживается.
  • Не подходит для кода, который должен быть слишком эффективным.

VB.NET (C# тоже)

Pros:

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

Против:

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

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

25
ответ дан 8 December 2019 в 02:19
поделиться

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

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

15
ответ дан 8 December 2019 в 02:19
поделиться

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

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

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

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

0
ответ дан 8 December 2019 в 02:19
поделиться

Я уже рассматривал этот способ, но я не использовал его, потому что я боялся, что мне нужно держать мои модули чрезвычайно маленькими, потому что его невозможно связать один и тот же интерфейс дважды. Моя проблема в том, что если я хочу использовать интерфейс/класс/перечисление/что-либо из другой банки и что банка определила службы/* файл, я завинчен, потому что я не могу использовать содержимое банки, не загружая ее в качестве модуля.

Надеюсь, моя забота ясна.

-121--2486082-

Я не уверен, будет ли это полезно для вас, но это был бы довольно простой способ сделать это, не уверен в точной «скорости» этого, хотя.

List<string> collection = new List<string>();

collection.Sort();

foreach(string value in collection)
{
   if(value == "stringToLookFor")
   {
       return value;
   }
{
-121--2681531-

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

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

0
ответ дан 8 December 2019 в 02:19
поделиться
Другие вопросы по тегам:

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