• Noone (10.12.08 20:47) [0]
    Есть такой ?где скачать?
  • YurikGL © (10.12.08 21:14) [1]
    Wine ?
  • Игорь Шевченко © (10.12.08 21:16) [2]
    Lazarus ?
  • KilkennyCat © (10.12.08 21:23) [3]
    Idiot ?
  • boa_kaa © (10.12.08 21:34) [4]

    > YurikGL ©   (10.12.08 21:14) [1]
    > Wine ?

    7ка еще пойдет
    а вот более поздние заточены на дотнет с сдк
    а вот енто фик
  • Vampire Hunter D. (10.12.08 21:40) [5]
    Если ты хочешь создавать качественные кросплатформенные приложения, у тебя есть такой выбор: С++, если приложение должно активно использовать возможности системы (для С++ можно найти много библиотек абстракции от этой самой системы) и Java в противном случае.
    Поэтому, я ненавязчиво агитирую тебя забыть об этом страшном рассаднике глюков, в котором потомки TObject не могут наследовать интерфейсы, нельзя делать миксины, и вообще сколько-нибудь вменяемо объектно проектировать, и переходить на C++/Java.
  • DVM © (10.12.08 21:50) [6]

    > Vampire Hunter D.   (10.12.08 21:40) [5]

    Правильно, давно пора переходить на рассадник глюков C++ и тормоз Java!
  • iZeqfreed (10.12.08 22:38) [7]
    С + glib наш выбор :)
  • Городской Шаман (10.12.08 22:50) [8]

    > KilkennyCat ©   (10.12.08 21:23) [3]
    >
    > Idiot ?


    Гугле говорит что нет такого IDE.
  • Городской Шаман (10.12.08 22:55) [9]

    > DVM ©   (10.12.08 21:50) [6]
    >
    > > Vampire Hunter D.   (10.12.08 21:40) [5]
    >
    > Правильно, давно пора переходить на рассадник глюков C++


    В С++ нужно библиотеки самому подбирать, а не кушать то что дают. Delphi нормально работает только с Win32 да и то криво, если копнуть поглубже. Позорище, Unicode только нормально (коробки) заработал только с D2009, позорище.

    Уж лучше Python чем Delphi. По поводу оконной библиотеки - wxPython.
  • DVM © (10.12.08 23:16) [10]

    > В С++ нужно библиотеки самому подбирать, а не кушать то
    > что дают.

    Да я что спорю. Но это и в Delphi возможно вообще то.


    > Delphi нормально работает только с Win32 да и то криво,
    > если копнуть поглубже

    Насчет глубже хотелось бы поподробнее.


    > Позорище, Unicode только нормально (коробки) заработал только
    > с D2009, позорище.

    Это да, но все же заработал.

    Под линукс Си однозначно. Он для UNIX родной.
  • iZEN (10.12.08 23:18) [11]

    > DVM ©   (10.12.08 21:50) [6]
    > Правильно, давно пора переходить на рассадник глюков C++
    > и тормоз Java!


    Java не тормозит. Доказано Tommy.
  • iZEN (10.12.08 23:21) [12]
    DVM

    Прежде чем делать далеко идущие выводы из запущенного в конце 90-х годов апплета, попробуйте испытать у себя вот это "скриптовое" решение:
    http://izen.dev.juga.ru/image/FreeBSD-JavaFX-StopWatch.png
  • DVM © (10.12.08 23:22) [13]

    > Java не тормозит.

    Угу. Он просто работает несколько неспеша.
  • DVM © (10.12.08 23:25) [14]

    > iZEN   (10.12.08 23:21) [12]


    > Прежде чем делать далеко идущие выводы из запущенного в
    > конце 90-х годов апплета

    Да я выводы делаю исключительно из своего (в java пока очень небогатого опыта 2 месяца :) Может я и не прав. Но пока все что мне удалось написать самому и все из написанного другими в плане скорости работы меня к сожалению не впечатлило. Ну уступает он в скорости нативным win32 приложениям на том же Delphi.
  • DVM © (10.12.08 23:27) [15]

    > iZEN   (10.12.08 23:21) [12]

    Ээээ.. а что с этим делать то? Это ж картинка?
  • DVM © (10.12.08 23:32) [16]

    > iZEN

    И все же, я никогда не соглашусь с тем, что код java выполняемый на виртуальной машине java будет столь же быстр, что и обычный компилируемый код. Да он будет работать быстро на современной машине, да не будет заметных тормозов, но отставание от нативного кода будет и значительное процентов 30-50. Это существенно для многих задач.
  • Плохиш © (10.12.08 23:42) [17]

    > Городской Шаман   (10.12.08 22:55) [9]



    > В С++ нужно библиотеки самому подбирать, а не кушать то
    > что дают. Delphi нормально работает только с Win32 да и
    > то криво, если копнуть поглубже. Позорище, Unicode только
    > нормально (коробки) заработал только с D2009, позорище.
    >

    T.e. в c++ вы подбираете библиотеки, а в delphi "кушаете то, что дают". И на основании этого делаете выводы, ну-ну.
    Между прочим, Delphi поддерживает юникод ещё, вроде, со второй версии. А vcl, это как раз "то, что дают"
  • DVM © (10.12.08 23:48) [18]

    > iZEN   (10.12.08 23:21) [12]


    > http://izen.dev.juga.ru/image/FreeBSD-JavaFX-StopWatch.png

    Посмотрел. Что могу сказать, красиво. И не тормозит. Но еще могу сказать, что в момент выполнения сего чуда загрузка системы процессом java был от 20 до 50 процентов. Да я такое же напишу на Delphi, что оно будет грузить систему на 0-5 % О DX молчу. Или я чего то не понял в этой демонстрашке?
  • Городской Шаман (11.12.08 00:14) [19]

    > DVM ©   (10.12.08 23:16) [10]
    >
    >
    > > В С++ нужно библиотеки самому подбирать, а не кушать то
    > > что дают.
    >
    > Да я что спорю. Но это и в Delphi возможно вообще то.


    Да? А можно ссылочку на другой, отличный от VCL, GUI-фреймворк для Delphi? А для С++ их около 200, правда нормальных около 10.


    > DVM ©   (10.12.08 23:16) [10]
    >
    > > Delphi нормально работает только с Win32 да и то криво,
    > > если копнуть поглубже
    >
    > Насчет глубже хотелось бы поподробнее.
    >

    Наберите в google Delphi и Vista... Если Delphi + Vista64 то это вообще песец.


    > DVM ©   (10.12.08 23:16) [10]
    > Под линукс Си однозначно. Он для UNIX родной.


    Только не C, а C++. Если увлекаться на C++ не языковым выпендрёжом, а результатом работы, то это вполне нормальный язык, без всяких страшилок.
  • Городской Шаман (11.12.08 00:18) [20]

    > Городской Шаман   (11.12.08 00:14) [19]
    >
    >
    > > DVM ©   (10.12.08 23:16) [10]
    > >
    > >
    > > > В С++ нужно библиотеки самому подбирать, а не кушать
    > то
    > > > что дают.
    > >
    > > Да я что спорю. Но это и в Delphi возможно вообще то.
    >
    > Да? А можно ссылочку на другой, отличный от VCL, GUI-фреймворк
    > для Delphi? А для С++ их около 200, правда нормальных около
    > 10.


    Да, еще CLX е пойдёт, так как от него Линуксоиды ржут, пальцем у виска крутят и считают всех Delphi-стов ламерами, так оно работает.
  • DVM © (11.12.08 00:43) [21]

    > А можно ссылочку на другой, отличный от VCL, GUI-фреймворк
    > для Delphi?

    KOL? :) Конечно их почти нет, но это не значит, что они исключены. В конце концов свой написать можно.


    > Только не C, а C++

    Изначально родным был СИ. И куча софта написано безо всяких плюсов. И сейчас есть куча софта без плюсов. Плюсы потом появились. Собственно я ничего против них не имею.
  • Городской Шаман (11.12.08 01:54) [22]

    > Noone   (10.12.08 20:47)
    >
    > Есть такой ?где скачать?


    C++, wxWidgets, wxFormBuilder v3.0.

    Елси денег не жаль, то
    C++, QT.
    The price for Qt on Single Platform is 3,695USD/license, and for Multi
    OS (including all Win/X11/Mac OS) is 5,295USD/license.
  • iZEN (11.12.08 03:32) [23]

    > DVM ©   (10.12.08 23:32) [16]
    > Да он будет работать быстро на современной
    > машине, да не будет заметных тормозов, но отставание от
    > нативного кода будет и значительное процентов 30-50. Это
    > существенно для многих задач.

    Откуда такие цифры 30-50%? Взяты с потолка.

    А я тестировал ещё версии Java 1.3.1, 1.4.0, 1.4.2, 1.5 и версии Delphi 6.0, 7.0 на одних и тех же задачах: 1) комбинаторика, 2) различные методы сортировки массивов, 3) конкатенация строк.

    Так вот, тесты показали, что
    1) и 2) выполняются и там и там одинаково быстро (на уровне погрешности измерений);
    в тесте 3) Delphi слила Java'е в три раза!

    Современные версии Java 6.0 и 6u11 (1.6.x) гораздо быстрее, чем Java 5.0 (1.5). Даже тестировать неудобно — по ощущениям (глаза, руки) заметно.
  • iZEN (11.12.08 03:35) [24]

    > Городской Шаман   (11.12.08 00:14) [19]
    > Если увлекаться на C++ не языковым выпендрёжом,
    > а результатом работы, то это вполне нормальный язык, без
    > всяких страшилок.


    Чего ж на C++ до сих пор IDE уровня Eclipse не написали? ;)
  • boa_kaa © (11.12.08 03:52) [25]

    > iZEN   (11.12.08 03:35) [24]

    подсказать несколько или сам догадаешься?
  • iZEN (11.12.08 07:04) [26]

    > boa_kaa ©   (11.12.08 03:52) [25]
    > > iZEN   (11.12.08 03:35) [24]
    >
    > подсказать несколько или сам догадаешься?

    Валяй.
  • iZEN (11.12.08 07:05) [27]

    > boa_kaa ©   (11.12.08 03:52) [25]
    > > iZEN   (11.12.08 03:35) [24]
    >
    > подсказать несколько или сам догадаешься?

    Валяй.
  • Vampire Hunter D. (11.12.08 08:13) [28]
    iZEN   (11.12.08 03:35) [24]

    Я думаю, вы должны знать про CDT.
  • Anatoly Podgoretsky © (11.12.08 09:29) [29]
    > Городской Шаман  (10.12.2008 22:50:08)  [8]

    Попробуй другую поисковую систему, Гугл попсовый
  • Anatoly Podgoretsky © (11.12.08 09:32) [30]
    > DVM  (10.12.2008 23:32:16)  [16]

    Вообще то зря не веришь, я тебе обеспечу гигантское торможение на Ассемблере.
  • Anatoly Podgoretsky © (11.12.08 09:35) [31]
    > Городской Шаман  (11.12.2008 0:18:20)  [20]

    Да им завидно, поэтому они ржут над всеми, считая всех идиотами, кроме себя.
  • Anatoly Podgoretsky © (11.12.08 09:36) [32]
    > DVM  (11.12.2008 0:43:21)  [21]

    А я имею, поскольку два плюса.
  • Anatoly Podgoretsky © (11.12.08 09:37) [33]
    > iZEN  (11.12.2008 3:32:23)  [23]

    Стой а не ты ли это утверждал про 1.5 и теперь сливаешь?
  • DVM © (11.12.08 10:30) [34]

    > iZEN   (11.12.08 03:32) [23]


    > Откуда такие цифры 30-50%? Взяты с потолка.
    >
    > А я тестировал ещё версии Java 1.3.1, 1.4.0, 1.4.2, 1.5
    > и версии Delphi 6.0, 7.0 на одних и тех же задачах: 1) комбинаторика,
    >  2) различные методы сортировки массивов, 3) конкатенация
    > строк.
    >
    > Так вот, тесты показали, что
    > 1) и 2) выполняются и там и там одинаково быстро (на уровне
    > погрешности измерений);
    > в тесте 3) Delphi слила Java'е в три раза!


    А давай потестируем в работе с графикой и интерфесом пользователя?
    Кстати, приведенный тобой пример в [12] уже свидетельствует не в пользу Java.
  • DVM © (11.12.08 10:40) [35]

    > iZEN   (11.12.08 03:32) [23]

    Простая вещь:

    1) Загрузка JPEG 1600*1200 неважно откуда (сеть/файл/ит.д.).
    2) Декодирование.
    3) Поворот на 90 градусов
    4) Уменьшение до 800*600
    5) Вывод битмапа на поверхность окна

    2-5 повторить 1000 раз.
  • Anatoly Podgoretsky © (11.12.08 12:10) [36]
    > DVM  (11.12.2008 10:30:34)  [34]

    Ага, там не только секундомер не работает, но и скролл бары тоже.
  • Правильный$Вася (11.12.08 12:26) [37]
    а у меня знакомый мужик на фортране написал алгоритм, который потом перевел на дельфи
    и откомпилировал оба современными компиляторами
    и фортрановский работает на порядок быстрее
    там чистая математика + консольный/файловый ввод/вывод

    и что? это никоим образом не говорит, что что-то из них лучше или хуже
    это говорит о том, что для каждой задачи нужны СВОИ ИНСТРУМЕНТЫ, а нете, которые оказались под рукой
  • Городской Шаман (11.12.08 12:38) [38]

    > Anatoly Podgoretsky ©   (11.12.08 09:35) [31]
    >
    > > Городской Шаман  (11.12.2008 0:18:20)  [20]
    >
    > Да им завидно, поэтому они ржут над всеми, считая всех идиотами,
    >  кроме себя.


    По тому как работают программы на Kylix под современными Linux им не завидно им смешно и грустно. Грустно тем, кто использует эти программы, смешно тем кто наблюдает.

    Delphi только для Win32. На Линукс проще портировать программу на C#.NET чем на Delphi.

    Да и на Win32 преимущества Delphi не в языке, а программном комплексе:
    - Визуальный редактор интегрированный в IDE(Самый удобный из тех что я видел)
    - Удобный сode generation/completion что позволяет не горевать по поводу Templates
    - Очень удобный интегрированный отладчик, где можно просмотреть значение переменной, наведя на неё курсор. Хотя с многопоточной отладкой у Delphi проблемы, на каждый примерно 10 останов в коде потока виснет всё IDE.

    Так что переходя на C++, более вероятно, что придется столкнуться только с этими проблемами, хотя в платных IDE они по большему счёту решены.

    Вывод - Delphi современный FoxPro, где можно быстро в одиночку нашкрябать еще один учётный проект для малого бизнеса.
  • pasha_golub © (11.12.08 13:31) [39]

    > Вывод - Delphi современный FoxPro, где можно быстро в одиночку
    > нашкрябать еще один учётный проект для малого бизнеса.

    И когда ж сдохнет оно (она, он) это Делфя.
  • Anatoly Podgoretsky © (11.12.08 13:54) [40]
    > pasha_golub  (11.12.2008 13:31:39)  [39]

    И появится Эльфа
  • Городской Шаман (11.12.08 14:17) [41]

    > pasha_golub ©   (11.12.08 13:31) [39]
    >
    >
    > > Вывод - Delphi современный FoxPro, где можно быстро в
    > одиночку
    > > нашкрябать еще один учётный проект для малого бизнеса.
    >
    >
    > И когда ж сдохнет оно (она, он) это Делфя.


    Тогда когда и Cobol...
  • Кто б сомневался © (11.12.08 15:29) [42]

    > И когда ж сдохнет оно (она, он) это Делфя.


    На данный момент существует 2 известных нативных языка С++ и Delphi.
    С++ уже потихоньку отмирает, поэтому давайте лучше разрешим Delphi  жить, все таки это хороший конкурент.
  • pasha_golub © (11.12.08 15:44) [43]
    Я думал все поймут, что я издеваюсь. Ан нет.

    PS Java sucks!
  • tesseract © (11.12.08 15:45) [44]

    > На данный момент существует 2 известных нативных языка С++
    > и Delphi.


    А C / Objective-C, Python (он тоже компилируеться). Уже не известные языки ? С++ умирает с момента выхода в свет, пока попка  живой.
  • Городской Шаман (11.12.08 15:55) [45]

    > Кто б сомневался ©   (11.12.08 15:29) [42]
    >
    >
    > > И когда ж сдохнет оно (она, он) это Делфя.
    >
    >
    > На данный момент существует 2 известных нативных языка С++
    > и Delphi.
    > С++ уже потихоньку отмирает, поэтому давайте лучше разрешим
    > Delphi  жить, все таки это хороший конкурент.


    Вот когда Embacerdo выпустит Delphi для микроконтроллеров, то я задумаюсь над вашими словами.
  • Городской Шаман (11.12.08 15:59) [46]
    А по поводу языков с возможностью компиляции в нативный код - вот:
    The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada
    http://gcc.gnu.org/

    Это только один из компиляторов, причём открытый.
  • iZEN © (11.12.08 17:58) [47]

    > Vampire Hunter D.   (11.12.08 08:13) [28]
    >
    > iZEN   (11.12.08 03:35) [24]
    >
    > Я думаю, вы должны знать про CDT.


    Eclipse-CDT? Не поверишь оно на Java написано с элементами JNI-вызовов к нативным компонентам. :O
  • iZEN © (11.12.08 18:09) [48]

    > Anatoly Podgoretsky ©   (11.12.08 09:37) [33]
    >
    > > iZEN  (11.12.2008 3:32:23)  [23]
    >
    > Стой а не ты ли это утверждал про 1.5 и теперь сливаешь?
    >

    Что утверждал насчёт 1.5?


    > DVM ©   (11.12.08 10:30) [34]
    > Кстати, приведенный тобой пример в [12] уже свидетельствует
    > не в пользу Java.

    Давай исходники — я напишу тест для Java, когда время свободное будет, протестируем.


    > DVM ©   (11.12.08 10:30) [34]
    > Кстати, приведенный тобой пример в [12] уже свидетельствует
    > не в пользу Java.

    Тесты показали, что основные свойства динамически сгенерированного кода JIT находятся на том же уровне качества и быстродействия, что и нативный код, полученный после статической компиляции (правда, в Delphi плохой оптимизатор для работы со строковыми данными, а если принять во внимание то, что она работала с однобитной кодировкой Cp1251, а Java с 16-битной UCS2, то разница в скорости конкатенации юникодных строк будет ещё более ужасающей).


    > DVM ©   (11.12.08 10:40) [35]
    >
    >
    > > iZEN   (11.12.08 03:32) [23]
    >
    > Простая вещь:
    >
    > 1) Загрузка JPEG 1600*1200 неважно откуда (сеть/файл/ит.
    > д.).
    > 2) Декодирование.
    > 3) Поворот на 90 градусов
    > 4) Уменьшение до 800*600
    > 5) Вывод битмапа на поверхность окна
    >
    > 2-5 повторить 1000 раз.

    http://cerncourier.com/cws/article/cnl/34848
    подойдёт? :)
  • iZEN © (11.12.08 18:14) [49]
  • Городской Шаман (11.12.08 18:46) [50]

    > iZEN ©   (11.12.08 18:14) [49]
    >
    > http://java.sun.com/javaone/sf/2008/articles/gosling_toystory.jsp


    А слабо Сталкер на Java?
  • Anatoly Podgoretsky © (11.12.08 19:27) [51]

    > Что утверждал насчёт 1.5?

    Вот это

    > Современные версии Java 6.0 и 6u11 (1.6.x) гораздо быстрее,
    >  чем Java 5.0 (1.5). Даже тестировать неудобно — по ощущениям
    > (глаза, руки) заметно.

    Я помню как ты хвалил 1.5, а теперь оказывается даже неудобно.
  • DVM © (11.12.08 21:39) [52]

    > iZEN ©   (11.12.08 18:09) [48]


    > подойдёт? :)

    Не. Я конечно понимаю, что на Java написана куча отличных программ, но хотелось бы просто провести некий синтетический тест типа Delphi vs Java.
    Я предложил сравнить графику, т.к. в преимуществе нативного языка в этой области я не сомневаюсь (особенно учитывая, что в ход можно пустить DirectX, Intel IPP и даже CUDA), но можно протестировать и по полной в разных областях. Мне было бы интересно, т.к. с делфи я вобщем то знаком неплохо, а вот Java только только коснулся.
  • iZEN © (11.12.08 23:05) [53]

    > Anatoly Podgoretsky ©   (11.12.08 19:27) [51]
    > Я помню как ты хвалил 1.5, а теперь оказывается даже неудобно.

    Не приписывайте мно того, чего я не говорил!

    Уж чего-чего, а Java 5.0 я точно не хвалил. Мне не понравились новые обобщённые типы и введение класса StringBuilder наравне со старым StringBuffer, вместо того, чтобы всю оптимизацию сделать на уровне системного класса String. По-хорошему, класс String надо сделать мутабельным, обеспечить его дескриптором безопасности (чтобы можно было влиять на его мутабельность), а класс StringBuffer объявить "deprecated", и не заниматься ерундой. Поэтому долгое время (до выхода Java 6.0) занимался исключительно Java2 1.4.2.

    Java 6.0 ввела такое понятие, как инлайнинг и задействование стэка процессора вместо кучи для инстанцирования короткоживущих объектов. Это в разы ускоряет производительность и экономит память. Кроме того, появились разные сборщики мусора с отличными стратегиями. Определённо, что Java 6.0 (1.6) — действительно инновационная технология, в отличие от "экспериментальной" Java 5.0 (1.5), которая делалась скорее для обкатки новых идей, чем для продакшена.
  • Sapersky (12.12.08 16:38) [54]
    хотелось бы просто провести некий синтетический тест типа Delphi vs Java.
    Я предложил сравнить графику, т.к. в преимуществе нативного языка в этой области я не сомневаюсь


    В своё время наткнулся на программу обработки изображений на Java:

    http://people.cs.vt.edu/~lithomas/robustestimation/imageprocess.java

    Фильтр Гаусса (GaussianSmooth) на Дельфи у меня есть. Если вы сможете запустить Java-код (я вообще не в курсе как это делается) и засечь время - можно сравнить.
  • iZEN © (12.12.08 20:19) [55]

    > Sapersky   (12.12.08 16:38) [54]
    > Фильтр Гаусса (GaussianSmooth) на Дельфи у меня есть. Если
    > вы сможете запустить Java-код (я вообще не в курсе как это
    > делается) и засечь время - можно сравнить.

    Запустить что, простите? Это библиотечный код. Используется в каком-то приложении непонятно каким образом.
  • DVM © (12.12.08 21:01) [56]

    > iZEN ©   (12.12.08 20:19) [55]


    > Запустить что, простите?

    Взять этот класс и использовать его для гауссовского размытия изображения (тестовое приложение создать). Правда не совсем понятно, что передавать в float [][] inImage, массив бит, но что за массив, какова цветность изображения и т.д.


    > Sapersky   (12.12.08 16:38) [54]

    Но чтобы сравнить, надо иметь идентичный код (тот же алгоритм так же реализованный) но на Delphi. Он у вас есть? Т.е. он портирован из Java кода или другая реализация?
  • Sapersky (12.12.08 21:28) [57]
    Правда не совсем понятно, что передавать в float [][] inImage, массив бит, но что за массив, какова цветность изображения и т.д.

    Там написано - gray values, т.е. 8 бит.

    Но чтобы сравнить, надо иметь идентичный код (тот же алгоритм так же реализованный) но на Delphi. Он у вас есть? Т.е. он портирован из Java кода или другая реализация?

    У меня совсем другая.
    По-хорошему - да, надо чтобы был идентичный... а то я заранее могу сказать, что этот медленнее моего, потому как используется float вместо byte.
    Ну смотрите, что проще - переводить Java-код на Delphi или наоборот. Если надо, подготовлю упрощённую версию своей функции (в текущем виде там много лишнего). Или взять что-нибудь из FastLIB, то же масштабирование картинки (Bilinear, FastResize), или какой-нибудь спецэффект.
  • iZEN (13.12.08 12:08) [58]
  • iZEN (13.12.08 12:14) [59]
    Интересный момент:
    http://balancer.ru/tech/forum/2008/02/t60021--CHto,gospoda-surovye-S-plus-plus-program.html
  • iZEN (13.12.08 15:34) [60]
    Вот ещё удивительный ресурс:
    http://processing.org/
  • Игорь Шевченко © (13.12.08 15:44) [61]
    Я одного не понимаю - чем вы тут меряетесь ?
  • boa_kaa © (13.12.08 19:14) [62]

    > Игорь Шевченко ©   (13.12.08 15:44) [61]
    >
    > Я одного не понимаю - чем вы тут меряетесь ?

    кто больше произведет
  • koha! (13.12.08 19:47) [63]
    C# - оказалася быстрее делфи ...
    - вот сравнивал вызоф 1000000 функции StringReplace
    результаты:
    C# - ~700 ms
    D2006 = ~2700 - 2800 ms
    моя самопальня функция "StrReplace" в замен В2006 = ~2200 - 2400 ms  

    private void button1_Click(object sender, System.EventArgs e)
    {
     int bgnTime = System.Environment.TickCount;
     string Appdata = System.Environment.GetEnvironmentVariable("Appdata");
     string dubleAppdata = "";
     for (int i = 0; i < 1000000; i++)
     {
       dubleAppdata = Appdata.Replace("\\","\\\\");
     }

     int FullTime = System.Environment.TickCount-bgnTime;
     textBox1.Text = dubleAppdata + " "+FullTime.ToString();
    }

    procedure TForm1.Button3Click(Sender: TObject);
    var
     BgnTime,LastTime,TestTime: Integer;
     i: integer;
     S, DubleAppData: String;
    begin
     BgnTime:=GetTickCount;
     S:=GetEnvironmentVariable('AppData');
     for i:=1 to 1000000 do begin
       StringReplace(S,'\','\\',[rfReplaceAll]);
     end;
     LastTime := GetTickCount;
     TestTime := LastTime-BgnTime;
     //if TestTime > 1000 then TestTime := TestTime div 1000;
     Memo1.Lines.Add('End test StringReplace: time = '+IntToStr(TestTime)+ ' mc');
    end;

    function StrReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;
    var
     SLen,  NPLen,Index, Count : Integer;
     temp, SearchStr, Patt  : String;
    begin
     Count  := 1;
     Index  := 1;
     SLen   := Length(S);
     NPLen  := Length(OldPattern);
     if (S = '') or (OldPattern = '') then Exit;
     Setlength(temp,NPLen);

     if rfIgnoreCase in Flags then
     begin
       SearchStr := AnsiUpperCase(S);
       Patt      := AnsiUpperCase(OldPattern);
     end else
     begin
       SearchStr := S;
       Patt      := OldPattern;
     end;

     While true do begin

       if (Pred(Count)+NPLen) > SLen then begin
         Result:=Result+Copy(SearchStr,Index,(Count+NPLen)-Index);
         Break;
       end;

       Move(SearchStr[Count],temp[1],NPLen);
       if temp = Patt then begin
         Result:=Result+copy(SearchStr,Index,count-Index)+NewPattern;
         inc(count,NPLen);
         Index:=count;
         if Not (rfReplaceAll in Flags) then begin
           Result:=Result+Copy(SearchStr,Index,(Count+NPLen)-Index);
           Break;
         end;
         continue;
       end;
       inc(count);
     end;
    end;

  • koha! (13.12.08 20:04) [64]
    Может быть Делфа и лучше всех, но знают об этом только вы - "мастера", а остальные, например, работодатели просто посылают в Ж..пу дляних дешевле купить VS 2005 со всеми пребамбасиками чем не понятно за что блатить VC2005$ < BDS$
    VC 2005 в комблекте предлагает заменшие гроши еще и Vista для тестировани и Windows server для тестирования и MSSQL сервер для тестирования и все это предачу гдето ~ за 2500$ А что предлагает Codegear за теже гроши? скромно D7? и все?
  • Узурап (13.12.08 20:14) [65]

    > Я одного не понимаю - чем вы тут меряетесь ?


    ИЗЕН сейчас еще и сказки о фрибсд достанет.
  • palva © (13.12.08 20:26) [66]
    Если вернуться к сабжу, то ответ на вопрос очевиден. Производителем Delphi является Codegear, а эта контора Delphi под Ubuntu не производит. Никакая другая фирма производить продукт под той же торговой маркой не имеет права. Следовательно Delphi под Ubuntu нет.
  • Узурап (13.12.08 20:33) [67]

    > Следовательно Delphi под Ubuntu нет.


    оно и не надо. убунту тоже не надо
    под gnu\linux есть fpc и lazarus (хотя оно не юзабельно)
    если хватит денег, или, если открытый проект - QTCreator+Qt
    также всякие скриптовые языки и ява
  • Городской Шаман (13.12.08 21:25) [68]

    > Узурап   (13.12.08 20:33) [67]


    Если ну нужно угламереного интерфейса то достаточно C++ и wxWidgets + визуальный редактор, там их несколько - выберите по вкусу.

    А С++ с "магией" не хуже delphi по удобству разработки.
  • @!!ex © (13.12.08 22:42) [69]
    > под gnu\linux есть fpc и lazarus (хотя оно не юзабельно)

    Всегда интересовало.. что такое "юзабельно"?
  • Городской Шаман (13.12.08 22:46) [70]

    > @!!ex ©   (13.12.08 22:42) [69]
    >
    > > под gnu\linux есть fpc и lazarus (хотя оно не юзабельно)
    >
    > Всегда интересовало.. что такое "юзабельно"?


    За дебагер в Lazarus нужно заставлять этих программистов писать на асме ПО для бухгалтерии. Вот это неюзабельно. Кроме того проще притащить вместе с программой jdk чем тащить этого монстра.

    Хотите кросплатформенности - берите java или c++.
  • Узурап (14.12.08 14:48) [71]

    > Всегда интересовало.. что такое "юзабельно"?

    достаточно увидеть лазарус, чтобы понять.
    быстро сделать что-то простое оно пойдет, для проектов уровня выше "хелло мир" - нет.
  • @!!ex © (14.12.08 16:02) [72]
    > [71] Узурап   (14.12.08 14:48)

    Да ну...
    дебагер там и правда отстойный... Благо можно другие дебагеры использовать.
    А все остальное - вполне рабочее.
  • Узурап (14.12.08 20:02) [73]
    Я не говорил, что не рабочее.
    Но после eclipse и qtcreator`a оно уныло очень.
  • wicked © (15.12.08 00:45) [74]

    > Кроме того проще притащить вместе с программой jdk чем тащить
    > этого монстра.

    ага, тащи
    то-то же, таскунов развелось :(
  • atruhin © (15.12.08 12:14) [75]

    > - вот сравнивал вызоф 1000000 функции StringReplace
    > результаты:
    > C# - ~700 ms
    > D2006 = ~2700 - 2800 ms
    > моя самопальня функция "StrReplace" в замен В2006 = ~2200
    > - 2400 ms  

    А вот я сравнил:
    стандартная StringReplace - 1890
    моя реализация StringReplace - 187
    Так что дело не на чем писать, а как.
  • Cobalt © (15.12.08 14:05) [76]

    > atruhin ©   (15.12.08 12:14) [75]
    > А вот я сравнил:
    > стандартная StringReplace - 1890
    > моя реализация StringReplace - 187


    А можно на эту функцию взглянуть?
  • @!!ex © (15.12.08 14:08) [77]
    > [76] Cobalt ©   (15.12.08 14:05)

    да там небось чистый асемблер. :)
    так что дело не на чем писать.. а на чем писать на ассемблере. :)
  • Anatoly Podgoretsky © (15.12.08 16:59) [78]
    > @!!ex  (15.12.2008 14:08:17)  [77]

    Не мешало бы взглянуть на исходные данные и методику теста.
  • Sapersky (15.12.08 17:08) [79]
    так что дело не на чем писать.. а на чем писать на ассемблере

    По моему опыту, дельфийский компилятор не так плох, как о нём принято думать... хотя, если работаешь в основном с floating-point кодом, у тебя вполне может быть противоположный опыт.

    По StringReplace:
    http://www.fastcode.dk/fastcodeproject/fastcodeproject/10.htm
    Кстати, разница между asm (Blended, 14.1) и pas (13.8) - всего 2%.

    В BDS2006 и далее фасткодовские функции (все или нет - не в курсе) используются в качестве стандартных.
  • Sha © (15.12.08 17:16) [80]
    > Cobalt ©   (15.12.08 14:05) [76]

    http://new.fastcodeproject.org/fastcode-challenges/challenges/37-challenges/45-ansi-stringreplace.html

    разница 9-15 раз в зависимости от процессора
  • atruhin © (15.12.08 17:22) [81]
    > А можно на эту функцию взглянуть?

    Функцию писал сам, но саму идею однопроходного поиска с сохранением позиций в стеке, где то подсмотрел.
    scPosStr, scCopyMem ассемблерные ускоренные аналоги стандартных, где то брал готовые.

    function scReplaceStr(const SourceString, FindString, ReplaceString: string): string;
    var
     P,PS: PChar;
     L,L1,L2,Cnt: Integer;
     I,J,K,M: Integer;
    begin
     L1 := Length(FindString);
     Cnt := 0;
     I := scPosStr(FindString,SourceString,1);
     while I <> 0 do begin
       Inc(I,L1);
       asm
         PUSH    I
       end;
       Inc(Cnt);
       I := scPosStr(FindString,SourceString,I);
     end;
     if Cnt <> 0 then begin
       L := Length(SourceString);
       L2 := Length(ReplaceString);
       J := L+1;
       Inc(L,(L2-L1)*Cnt);
       if L <> 0 then begin
         SetString(Result,nil,L);
         P := Pointer(Result);
         Inc(P, L);
         PS := Pointer(LongWord(SourceString)-1);
         for I := 0 to Cnt-1 do begin
           asm
             POP     K
           end;
           M := J-K;
           if M > 0 then begin
             Dec(P,M);
             scCopyMem(@PS[K],P,M);
           end;
           Dec(P,L2);
           scCopyMem(Pointer(ReplaceString),P,L2);
           J := K-L1;
         end;
         Dec(J);
         if J > 0
           then scCopyMem(Pointer(SourceString),Pointer(Result),J);
       end else begin
         Result := '';
         for i:=1 to Cnt do asm pop K end;
       end
     end else Result := SourceString;
    end;
  • atruhin © (15.12.08 17:24) [82]
    > [79] Sapersky   (15.12.08 17:08)
    > В BDS2006 и далее фасткодовские функции (все или нет - не
    > в курсе) используются в качестве стандартных.

    Не знаю откуда информация, но я сравнивал в RadStudio 2007 со свеми апдейтами
  • Sapersky (15.12.08 17:48) [83]
    Сейчас посмотрел 2006-й - да, похоже, StringReplace не меняли.
    Судя по system.pas - от фасткода взяли Move, FillChar, Pos, _lldiv (64-bit signed division), возможно, есть ещё что-то в других модулях.
Есть новые Нет новых   [134447   +40][b:0.001][p:0.003]