выбрать C#/C++/Delphi в такой ситуации?

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Derec, 13 Nov 2010.

  1. Derec

    Derec Elder - Старейшина

    Joined:
    8 Nov 2007
    Messages:
    74
    Likes Received:
    4
    Reputations:
    0
    Столкнулся с такой ситуацией: в программе главным образом нужно использовать следующее:
    1) Модуль для работы с огромными числами и выполнять с ними нетривиальные алгебраические действия (для этого выбрал библиотеку GMP/MRIP)
    *То есть у меня в наличии исходные код GMP на C++.
    2) Работу с сетью, на уровне протокола TCP/IP
    3) Опрятный интерфейс программы (хочу юзать возмоности WPF).

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

    Delphi :
    (+) Удобно работать над пунктом 2, а также можно создать и красивый интерфейс,т.е. пункт 3
    (-) Остается один - в Delphi нет нормального модуля для работы с большими числами. Тот, что есть интернете типо FGInt - полная фигня.

    С++ :
    (+) Очевидный плюс - использование модуля GMP/MPIR - так как он полностью на C
    (-) Вот дальше все минусы. Работу с TCP я так и не разобрался как реализовать - все кажется слишком сложным, ну и в придачу скудный CLR, обычные окна в стиле XP...

    С# :
    (-) Минус C# только в этом: стандартный модуль для работы с биг чилсами BigInteger сыроват. Слишком мало предлагаемых операций с большими числами.


    Как Вы думаете, как мне поступить в данной ситуации? :( На чем писать? Может можно как - нибудь скрестить C++ и С# //в этом я noobie
     
  2. fluffylion

    fluffylion Member

    Joined:
    22 Feb 2010
    Messages:
    55
    Likes Received:
    10
    Reputations:
    0
    Возможно все )))
    Если информации по ссылке недостаточно, то можете еще погуглить... Информации по данной теме достаточно.
     
    #2 fluffylion, 13 Nov 2010
    Last edited: 13 Nov 2010
  3. Derec

    Derec Elder - Старейшина

    Joined:
    8 Nov 2007
    Messages:
    74
    Likes Received:
    4
    Reputations:
    0
    Спасибо за линк, у меня как раз такая проблема как и у ТС на этом форуме, правда ему так конкретно и не объяснили как это сделать. Но сейчас буду гуглить. Направление у меня теперь есть.

    Если кто-нибудь еще поделиться опытом, мыслями об этой проблеме, буду очень признателен! :)
     
  4. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    Используйте QT и будет вам и удобная работа с TCP и красивый гуй.
     
  5. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    Пиши на Delphi. Если у тебя есть свободное время и понимание, - напиши свой модуль для работы с большими числами.
     
  6. Derec

    Derec Elder - Старейшина

    Joined:
    8 Nov 2007
    Messages:
    74
    Likes Received:
    4
    Reputations:
    0
    Как я уже указал выше, такой модуль для Delphi уже есть, но работает он кривовато и вообщем-то непрактичен.
    Нет смысла писать заново, такой велосипед уже создан. GMP для Си - именно то - что нужно. Это несмотря на то, что в Delphi у меня гораздо больше опыта, чем в других языках.

    Вообщем я пришел к выводу, что необходимо написать dll обертку на C++ с функциями GMP. Затем использовать ее в C#. У кого-нибудь был опыт в такой работе? Думаю, те кто пишет что-то интересное на C# в любом случае сталкивались с такой проблемой :rolleyes:
     
  7. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    Кури вызов неуправляемого кода из DLL. На MSDN инфы по этой теме достаточно.
     
  8. Derec

    Derec Elder - Старейшина

    Joined:
    8 Nov 2007
    Messages:
    74
    Likes Received:
    4
    Reputations:
    0
    Фишка в том, что у меня есть *h / *lib файлы нужной мне dll ( в первом посте написал). Имхо нет надобности использовать P/Invoke
     
  9. Aspanu

    Aspanu New Member

    Joined:
    16 Nov 2010
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    Вообще-то на С++ тоже можно повесить красоту. И уж тем более есть готовые решения по TCP/IP.
    Но ,имхо, при работе с числами отлично показывает себя MATLAB. Он даже имеет средства взаимодействия с другими языками, тем же С как правило. Минус только, если это будет казуальная прога в большей мере, чем расчетная.
     
  10. St0nX

    St0nX Elder - Старейшина

    Joined:
    19 May 2007
    Messages:
    257
    Likes Received:
    46
    Reputations:
    0
    Зачем? http://www.submanifold.be/triade/GInt/gint.html

    ЯП выбирается в зависимости от задачи
     
  11. _DemiX_

    _DemiX_ New Member

    Joined:
    25 May 2010
    Messages:
    51
    Likes Received:
    1
    Reputations:
    0
    Я использую Delphi