Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.03.11;
Скачать: [xml.tar.bz2];

Вниз

Размер exe-шника С/С++ - и Pascal - компиляторов   Найти похожие ветки 

 
ZiTRaX ©   (2007-02-07 23:41) [0]

Вопрос, может, совсем не в тот форум и не имеет никакой практической ценности, но любопытство требует удовлетворения.  
Почему размер exe-шника, сгенерированного С/С++ - компиляторами по размеру больше паскалевских (тут имеются ввиду VC2005/BCB6-2006/MinGW_3.4.2 с одной стороны и Delphi7-2005-2006/FreePascal_2.0.4 с другой (с остальными компиляторами такой ерундой не занимался) с настройками для работы на любой системе без установки дополнительных *.dll)?
Например, пустое WinAPI-окно на Delphi7 - ~16кб, на BCB6 - ~54кб, BCB2006 - ~123кб. Цифры немного смущают... В сишных компиляторах в опциях линкера есть пункт Use dynamic RTL, при выборе которого размер уменьшается значительно (до 8-11кб), но будет ли это приложение работать на компе без установленного BCB, я не знаю (в локальной сети никто не хочет запускать мои exe-шники, а сносить BCB для проверки мне не очень охота). В MinGW размер получается 7кб, но там для меня тот же вопрос, что и с ВСВ. С VC2005 получается 6.5кб, но опять тот же вопрос о работе (тут вообще в настройках проекта фиг разберёшься (в ВСВ2006 сделали то же самое - огромную кучу опций) - выбираю разные опции методом научного тыка).
Вообще вся эта ерунда(?) написана из-за того, что есть задание написать минимально возможное по размеру приложение именно на ЯВУ (MASM в этом "соревновании" победит 100% -)). СИшные компиляторы вроде как побеждают паскалевские по скорости сгенерированных программ, а вот с размером, исходя из моих наблюдений, у них не сложилось. Конечно, может я совсем не прав и наблюдал совсем не за тем. Тогда, если кто знает, подскажите, какие нужно использовать опции компилятора, чтобы получилось приложение, работающее на любой Windows-системе без дополнительных файлов.
P.S. Не пинайте меня сильно за то, что спрашиваю на дельфийском форуме про С/С++. Ведь если мои наблюдения верны, то Delphi хоть в чём-то уделывает тот же ВСВ (тогда я вообще не вижу смысла в ВСВ как RAD-системе).
P.P.S. Сорри, если всё написанное мною выше является полным бредом. Просто тяжко правильно формировать вопрос по теме, в которой разбираешься с трудом, но разобраться желательно -))
//................................................................................ ................//
Фууух, вроде отписался...
Заранее спасибо тем, кто просветит меня в этом вопросе. А тем, кто покритикует... - ну, без критики нельзя :-)


 
ANTPro ©   (2007-02-08 00:29) [1]

> [0] ZiTRaX ©   (07.02.07 23:41)
> WinAPI-окно на Delphi7

2кб


> [0] ZiTRaX ©   (07.02.07 23:41)
> VC2005 получается 6.5кб

1-3кб


 
Zeqfreed ©   (2007-02-08 00:56) [2]

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

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


 
ZiTRaX ©   (2007-02-08 01:27) [3]

2ANTPro: А можно поинтересоваться: каким образом у Вас получился такой размер ехе-шника в D7? Просто минимальным размером, который я видел, был 3.5кб (была как-то статья в Хакере про замену системных модулей). У меня даже в MASM столько (2кб) не получалось (хотя в MASM я точно не шарю). Я даже представить не могу, что нужно начудить в Делфи, чтобы получить такой размер. Блин, теперь не усну и буду думать, что я делал неправильно...:-( Да и в VC2005 столько же, как и у Вас, у меня не получается. Мда, опции компиляторов для меня большая тайна...
 И ещё вопросик. А ваши ехе-шники работают на компах, на которых не установлены ни Delphi, ни VC2005 без дополнительных файлов???

 2Zeqfreed: Вообще-то я расставлял красные строки, но они почему-то были проигнорированы. Но на будущее учту.
 По поводу неправильных опций компилятора - очень может быть. Но я точно собираю без отладочной информации. Очень бы хотелось узнать правильные опции.


 
Германн ©   (2007-02-08 01:44) [4]


> Размер exe-шника С/С++ - и Pascal - компиляторов
>
> ZiTRaX ©   (07.02.07 23:41)

Не страдайте "ерундой"! Если очень заботит, обратитесь в "уро-гинекологический центр" на Цветном бульваре. Там всё вылечат :)


 
ANTPro ©   (2007-02-08 02:01) [5]

> [3] ZiTRaX ©   (08.02.07 01:27)
> А ваши ехе-шники работают на компах, на которых не установлены
> ни Delphi, ни VC2005 без дополнительных файлов???

Да


> [3] ZiTRaX ©   (08.02.07 01:27)
> А можно поинтересоваться: каким образом у Вас получился
> такой размер ехе-шника в D7

http://xproger.mirgames.ru/


> [4] Германн ©   (08.02.07 01:44)
> Не страдайте "ерундой"!

+1


 
ZiTRaX ©   (2007-02-08 08:34) [6]

2Германн: Я бы и не очень страдал такой ерундой, если б мне не задали задание пострадать такой ерундой -)

2ANTPro: Ну нашёл я на указанном вами сайте о ехе-шнике в 2кб, только самого ехе-шника я там не увидел (он там почему-то размером в 38.5кб, но ни как не 2кб) Мож не то глядел?


 
tesseract ©   (2007-02-08 10:07) [7]


>  Просто минимальным размером, который я видел, был 3.5кб
> (была как-то статья в Хакере про замену системных модулей).
>


Не читай путевые заметки школьников. Можно и меньше сделать.


 
TUser ©   (2007-02-08 10:12) [8]

Про ФриПаскаль и Delphi7 не надо. Консольных Hello world там занимает в пределах 20 Кб, а на BCC5.5 - около 50-ти.


 
Думкин ©   (2007-02-08 11:19) [9]


> TUser ©   (08.02.07 10:12) [8]

D7 - Hello, World! 15360byte


 
TUser ©   (2007-02-08 11:29) [10]

bcc32 - 55 296 :)


 
sniknik ©   (2007-02-08 11:51) [11]

ZiTRaX ©   (08.02.07 01:27) [3]
> Просто минимальным размером, который я видел, был 3.5кб (была как-то статья в Хакере про замену системных модулей).

http://read.excode.ru/art2775p7.html
В результате мы получаем работающий HelloWorld размером в 832 байта!

вообще гдето в другой подобной статье читал об обработке такого файла (не упаковке!), вырезке "ненужных" разделов/частей. в итеге говорилось не о 800, а о 400-500кб файле
(типа из одного раздела? 512кб?)... не помню... до такого маразма не доходил, а вот вполне рабочую программку пример (сервис) в 11кб делал. использовались замены их KOL. хотя... как сказать рабочая... ничего полезного она не делала.

ZiTRaX ©   (08.02.07 08:34) [6]
> 2ANTPro: Ну нашёл я на указанном вами сайте о ехе-шнике в 2кб, ...
там его предлагается самому сделать... и довольно последовательно все разъяснено. если задали фигней страдать... так страдай! не перекладывай на других.


 
Psychedelic ©   (2007-02-08 12:05) [12]


> если задали фигней страдать... так страдай!

Что значит фигней,? Для того чтобы понимать как это работает, нужны определенный набор знаний- по этому и задали. По вашему разработчики KOL страдают фигней ???


 
sniknik ©   (2007-02-08 12:19) [13]

> Что значит фигней,?
а то и значит, раз ему задали то пусть и компилит по описаниям, разбирается, а не ищет готовый exe, это и для понимания полезней и тех кому эта фигня "по барабану" грузить не будет.


 
Игорь Шевченко ©   (2007-02-08 12:25) [14]


> По вашему разработчики KOL страдают фигней ???


Безусловно


 
Rouse_ ©   (2007-02-08 12:37) [15]

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


 
REA   (2007-02-08 13:16) [16]

А никого не смущает, что Corel Draw больше Autocad например? И на дискету "не влазит".
Хотя со ссылками на run-time функции классов и хранением строк в Unicod без необходимости они и правда погорячились...
одно успокаивает, что экзешник 1.2 мегабайта упаковывается до 370к в rar


 
TUser ©   (2007-02-08 13:26) [17]

> упаковывается до 370к в rar

все равно

> на дискету "не влазит".

На пятидюймовую, law density.


 
ANTPro ©   (2007-02-08 16:29) [18]

> [12] Psychedelic ©   (08.02.07 12:05)
> По вашему разработчики KOL страдают фигней ???

ДА. Потому что делфи умирает...


 
Psychedelic ©   (2007-02-08 17:14) [19]

ДА. Потому что делфи умирает...

Откуда такая информация? В своих словах вы уверены на 100 %?
Объясните. Или укажите источник. Или может вы в Borland"e работатете?  


> Игорь Шевченко ©   (08.02.07 12:25) [14]
> > По вашему разработчики KOL страдают фигней ???
> Безусловно

Ну , вас что за язык тянуть надо? Продолжайте. Почему вы та думаете? Объясните же, чем же Вас не устраивает KOL? Четко сформулируйте свою мысль.
Да, и нет любой дурак сказать может. Даже попугай, который повторяет за тем же дураком.


 
Trible   (2007-02-08 17:29) [20]


> Игорь Шевченко ©


Puisque tu as commencé à parler, va jusqu"au bout.

Интересная беседа начинается. Ждемс.


 
Игорь Шевченко ©   (2007-02-08 17:35) [21]

Psychedelic ©   (08.02.07 17:14) [19]


> чем же Вас не устраивает KOL?


А зачем ?


 
Val ©   (2007-02-08 17:40) [22]

>Puisque tu as commencé à parler, va jusqu"au bout.
Это заклятие начала интересной беседы?


 
Psychedelic ©   (2007-02-08 17:42) [23]

ЧТО а зачем?

Сказал А, говори Б. Или аргументов нет? Мы просто разминали пальцы?


 
Игорь Шевченко ©   (2007-02-08 17:46) [24]

Psychedelic ©   (08.02.07 17:42) [23]

Меня смущает, как бы это сказать, практическая целесообразность проекта Владимира Кладова. То есть, не вижу я ее, этой целесообразности. Борьба за размер, это, извини, несерьезно, цена за гигабайт винчестера и за интернет-трафик уже не актуальна, чтобы тратить время разработчика на освоение технологий, которые Borland давно обещает убрать из Delphi, я имею в виду object, на котором весь KOL и держится.

Время - деньги, две недели, уже аванс (с)


 
Rouse_ ©   (2007-02-08 18:13) [25]


> Psychedelic ©   (08.02.07 12:05) [12]
> Что значит фигней,? Для того чтобы понимать как это работает,
>  нужны определенный набор знаний- по этому и задали. По
> вашему разработчики KOL страдают фигней ???

Владимир Кладов, конечно, молодец, но я так понимаю, что для него это в рамках развлечения - он же не зарабатыает на этом деньги.

А какие будут доводы в пользу KOL именно у тебя? Чтобы, как ты говоришь, не гнуть пальцы - сделай первый шаг :)


 
Psychedelic ©   (2007-02-08 18:29) [26]


> чтобы тратить время разработчика на освоение технологий,
>  которые Borland давно обещает убрать из Delphi
>

Ого, ну и программисты у нас. Оказыватеся те кто программирует на Delphi должен осваивать новые технологии.   Новые! Да вообще то это часть языка, и если вы прекрасно знаете его (язык), то абсолютно нет никаких преград. Все то же Delphi. Нет там никаких новых технологий. Ну а если чел умеет бросать только компоненты на форму (это к вам не относиться - это вобщем) , а у нас в основном таких "программистов" завались (об этом уже говорили - обговаривали, - ведро на рубль ), то конечно для него это будет довольно трудновато.

А что плохого когда имеем RAD средство, которое создает результат без мертвого кода, и быстро работающее? Разве вы когда создаете продукт (не важно что будь то прога, или что либо еще) не стремитесь к качеству? Разве вы не стремитесь к совершенству?Тут даже вопрос не в размере.
А в самой идеологии, для чего нужно то, что просто занимате место, что абсолютно не используется?? Почему бы не сделать "умную" систему сборки? Ведь скорость и качество - это основные пункты в программировании.
Согласитесь, не каждый  RAD может похвастаться такими результатами, как симбиоз KOL и делфи.

Ps. Убрать Object? Вы представляете что тогда будет с Delphi и с совместимостью с проектами? Врядли компания пойдет на создание убытка для своих клиентов.


 
Stexen ©   (2007-02-08 18:31) [27]


> ZiTRaX ©   (07.02.07 23:41)  

Жесть! Опять! Жесть!
Читаем курс по работе компиляторов. Разбираемся в архитектуре и не задаем больше этот вопрос


 
Psychedelic ©   (2007-02-08 18:43) [28]

Вы поймите врядли это было бы развлечением. Посмотрите на маштабы.
Написано большое поднможесто компонент, Книга, участвуют люди не только из России . Вложено много труда  и времени.
Это как спор между Сишниками и Делфистами. Между тем кто использует API и компоненты. Пока сам не попробуешь, не поймешь. Сам раньше гнал на делфи, когда работал только  с С. Пока не перешел окончательно, поняв все плюсы этого языка.
KOL это тоже делфи, это не другой язык.
Каждое средство для чего то нужно, для разных задач.


 
Джо ©   (2007-02-08 19:01) [29]

> [26] Psychedelic ©   (08.02.07 18:29)
>
> > чтобы тратить время разработчика на освоение технологий,
>
> >  которые Borland давно обещает убрать из Delphi
> >
>
> Ого, ну и программисты у нас. Оказыватеся те кто программирует
> на Delphi должен осваивать новые технологии.   Новые! Да
> вообще то это часть языка, и если вы прекрасно знаете его
> (язык), то абсолютно нет никаких преград. Все то же Delphi.
> Нет там никаких новых технологий. Ну а если чел умеет бросать
> только компоненты на форму (это к вам не относиться - это
> вобщем) , а у нас в основном таких "программистов" завались
> (об этом уже говорили - обговаривали, - ведро на рубль )
> , то конечно для него это будет довольно трудновато.
>
> А что плохого когда имеем RAD средство, которое создает
> результат без мертвого кода, и быстро работающее? Разве
> вы когда создаете продукт (не важно что будь то прога, или
> что либо еще) не стремитесь к качеству? Разве вы не стремитесь
> к совершенству?Тут даже вопрос не в размере.
> А в самой идеологии, для чего нужно то, что просто занимате
> место, что абсолютно не используется?? Почему бы не сделать
> "умную" систему сборки? Ведь скорость и качество - это основные
> пункты в программировании.
> Согласитесь, не каждый  RAD может похвастаться такими результатами,
> как симбиоз KOL и делфи.
>
> Ps. Убрать Object? Вы представляете что тогда будет с Delphi
> и с совместимостью с проектами? Врядли компания пойдет на
> создание убытка для своих клиентов.

Господи, сколько пафосу, а по-сути — 0. Ну, кто тут говорил о гнутии пальцев? ;->


 
Psychedelic ©   (2007-02-08 19:12) [30]

Очень сильно напоминает спор об оптимизации. Оптимизировать или нет. Машина мощная все проглотит.


> сколько пафосу, а по-сути — 0.

А кто говорил о гнутости пальцев, я что-ли. Просто большую работу назвали фигней, люди которые даже тольком не видели ее. Вот что меня задело.


 
Джо ©   (2007-02-08 19:17) [31]

> [30] Psychedelic ©   (08.02.07 19:12)
> Просто большую
> работу назвали фигней, люди которые даже тольком не видели
> ее. Вот что меня задело.

Да тут, в общем, предлагали обратить внимание на ПРАКТИЧЕСКУЮ пользу этой большой работы. Я, например, не вижу этой практической пользы. Вполне может быть (и даже часто бывает), когда человек проделевает БОЛЬШУЮ, но ПРАКТИЧЕСКИ бесполезную работу. Оно, конечно, альтруизм не самая плохая мотивация, а мастерство — не самое плохое свойство, однако никакой прямой корреляции с полезностью они не имеют.


 
DevilDevil ©   (2007-02-08 19:20) [32]


> TUser ©   (08.02.07 10:12) [8]
>
> Про ФриПаскаль и Delphi7 не надо. Консольных Hello world
> там занимает в пределах 20 Кб, а на BCC5.5 - около 50-ти.
>


8кило без выставления опций компилятора, замены System-модулей и других извратов. D7.

> ZiTRaX ©   (07.02.07 23:41)

Программируй на Delphi и не парься!!!


 
DevilDevil ©   (2007-02-08 19:23) [33]


> ZiTRaX ©   (07.02.07 23:41)
> Ведь если мои наблюдения верны, то Delphi хоть в чём-то
> уделывает тот же ВСВ (тогда я вообще не вижу смысла в ВСВ
> как RAD-системе).


Нет, Delphi выигрывает только в размере exe и скорости компиляции; зато в плане возможностей языка, С++ безусловно будет выше Delphi. Прибавь к C++ Дельфийское удобство (среда + VCL), получится Билдер ;)


 
Psychedelic ©   (2007-02-08 19:41) [34]

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

Практическая польза, попробую объяснить популярно:
Отойдем от KOL.
Возьмем Windows, которая устанавливается готовым блоком на систему пользователя. т.е. все нужное и ненужное ставиться на компьютер и лежит мертвым грузом.
Если бы она устанавливала только необходимое, то максимум мегабайт 300 занимала бы Win XP, нужное же устанавливалось бы по мере необходимости.

Если бы многие (даже не все!) соблюдали эту концепцию, согласитесь всем бы жилось намного легче.  Втч это касается и оптимизации.
Сейчас при разработке ПО на качество не смотрят, смотрят на сроки, и в результате на выгоду. Надеюсь это никому не надо вдалбливать?

Ведь много по малу - много.

Или я не прав?


 
DevilDevil ©   (2007-02-08 19:47) [35]

Противопоставлять причинам создания KOL  возможность прикупить винчестер побольше имхо является оскорблением. Мотивация была другая - "снижение времени закачки из Сети", так скажем.

1) Стандартные Sysutil-ные функции остались почти без изменений
2) В KOL содержатся некоторые полезные вещи, которых просто нет в VCL
3) Есть узкий круг задач, для которых KOL является неким спасением; он узок, но всё же есть. Кладова стоит как минимум уважать за его детище.

Мне почему то сразу вспомнился следующий случай. Решил я в своё время скачать графический движок размером порядка 3.5мб. Размер был таким отчасти из-за размера exe-примеров. Сами exe занимали порядка 120 кило. Представьте, что семплов было бы больше в 3 раза (я бы сделал в 5-6 раз больше), какой был бы размер архива? -- неприятный!

P.S. А занимали бы exe кило 20..... Имхо было бы лучше ;)
P.P.S. exe такие маленькие потому что движок на dll.


 
Джо ©   (2007-02-08 19:49) [36]

> [34] Psychedelic ©   (08.02.07 19:41)
> Или я не прав?

Я не увидел ни одного примера ПРАКТИЧЕСКОЙ пользы для программиста, создающего конечный продукт. KOL поможет сделать его быстрее? Или хотя бы качественней? Не думаю.


 
DevilDevil ©   (2007-02-08 19:54) [37]

> Psychedelic ©   (08.02.07 19:41) [34]

Delphi не компилирует "всё в одном", компилятор обладет "умным связыванием". Другое дело, если в секциях юнита Initialization или Finalization что то написано, то этот код компилируется. Именно такой "эффект" появляется, когда просто дописываешь в юзес SysUtils и экзешник увеличивается на 25 кило.

> Ps. Убрать Object? Вы представляете что тогда будет с Delphi
> и с совместимостью с проектами? Врядли компания пойдет на
> создание убытка для своих


Если я не ошибаюсь, ни одного object-а в VCL нет.
Недавно кстати попробовал откомпилировать дельфийский модуль в билдере --- ругается, не знает, что такое "object" :(


 
sniknik ©   (2007-02-08 20:03) [38]

Psychedelic ©   (08.02.07 19:12) [30]
> ... Просто большую работу назвали фигней, ...
сам назвал, сам и возмущаешься? малацца.

p.s. до твоей интерпретации у "фигни" был немного другой смысл чем равенство с KOL/большой работой.
если почитать внимательнее то этим были охарактеризованы усилия конкретного человека, по уменьшению размера. притом в продолжение его же собственного "признания"... (ответ был по)
ZiTRaX ©   (08.02.07 08:34) [6]
> 2Германн: Я бы и не очень страдал такой ерундой, если б мне не задали задание пострадать такой ерундой -)

p.p.s. понимай все буквально, без "двойных смыслов", будет легче. ("будь проще, и люди к тебе потянутся...")


 
Psychedelic ©   (2007-02-08 20:06) [39]


> Я не увидел ни одного примера ПРАКТИЧЕСКОЙ пользы для программиста,
>  создающего конечный продукт. KOL поможет сделать его быстрее?
>  Или хотя бы качественней? Не думаю.


Речь шла о практической пользе от KOL в целом. Не будте буквоедом, только для того чтобы оставаться правым.
Еще раз перечитайте предыдущий пост, для лучшего понимания.


> Delphi не компилирует "всё в одном", компилятор обладет
> "умным связыванием". Другое дело, если в секциях юнита Initialization
> или Finalization что то написано, то этот код компилируется.
>


Я в курсе.  Я имел ввиду готовый результат вцелом.


 
Psychedelic ©   (2007-02-08 20:09) [40]


> p.p.s. понимай все буквально, без "двойных смыслов", будет
> легче. ("будь проще, и люди к тебе потянутся...")

Спасибо поучение. Я подумаю.

P.s. столько учителей развелось...


 
ANTPro ©   (2007-02-08 21:00) [41]

> [19] Psychedelic ©   (08.02.07 17:14)
> Откуда такая информация? В своих словах вы уверены на 100
> %?
> Объясните. Или укажите источник. Или может вы в Borland"e
> работатете?  

Это просто вечный боян : )

Юзать KOL или не юзать решать тебе. Меня KOL для простеньких приложений вполне устраивает. Быстро, просто, качественно, еще и размер не большой.


 
GrayFace ©   (2007-02-08 22:04) [42]

REA   (08.02.07 13:16) [16]
Хотя со ссылками на run-time функции классов и хранением строк в Unicod без необходимости они и правда погорячились...

Кто?

Psychedelic ©   (08.02.07 18:29) [26]
Ведь скорость и качество - это основные пункты в программировании.

Качество и функциональность. Скорость относится к качеству, там, где она нужна. Малый размер - тоже, только где он нужен похоже никто не знает.
Только при чем тут скорость? У KOL свой компиллятор?

Psychedelic ©   (08.02.07 18:29) [26]
Ps. Убрать Object? Вы представляете что тогда будет с Delphi и с совместимостью с проектами? Врядли компания пойдет на создание убытка для своих клиентов.

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


 
ZiTRaX ©   (2007-02-08 22:12) [43]

С ехе-шником в 2кб разобрался. Я просто вообще не то скачивал - привык, что ссылки идут в конце статьи, а не в начале, и скачал исходники Landscape. Вот что бывает из-за невнимательности. Но там есть один минус - используются посторонние утилиты (максимум, что мне позволено - это использовать изменённые модули).

 Просто тестирование моего задания будет выполняться так: я приношу свои наработки (*.pas-, *.c/*.cpp- *.rc-файлы), оформленные в виде проектов. Проекты билдятся, а затем запускаются на чистой машине (свежеустановленная WinXP+SP2). Если "приложение" запустилось, то я молодец, иначе "иди и ищи ошибки". Ну и ещё там важна минимальность ехе-шника (чем меньше, тем лучше). Потом будет анализ дизассемблированного листинга с целью нахождения "лишних" участков asm-кода. Вот такая вот фигня! Зачем оно надо, я не знаю. Но надо. Поэтому глупый вопросик: какой из перечисленных в моём первом посте компиляторов создаст самый минимальный ехе-шник простейшего WinAPI-окна с выполнением перечисленных выше условий.

 P.S. И ещё: чтобы в ВСВ получить нормально работающий ехе-шник, нужно только убрать галочки с "Build with runtime packages" и "Use dynamic RTL" (отладочную информацию я убираю)? Или что-то ещё? И какие файлы считаются dynamic RTL?
//................................................................................ .....................
 Всем ещё раз спасибо!!!


 
ferr ©   (2007-02-08 22:16) [44]

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


 
GrayFace ©   (2007-02-08 22:16) [45]

А нет, все-таки нашелся пример, когда малый размер имеет значение.


 
ZiTRaX ©   (2007-02-08 22:23) [46]

Удалено модератором
Примечание: Создание пустых сообщений


 
ANTPro ©   (2007-02-08 22:31) [47]

> [42] GrayFace ©   (08.02.07 22:04)
> Только при чем тут скорость? У KOL свой компиллятор?

У KOL есть дефайн ASM_VERSION


 
homm ©   (2007-02-09 00:01) [48]

> какой из перечисленных в моём первом посте компиляторов
> создаст самый минимальный ехе-шник простейшего WinAPI-окна
> с выполнением перечисленных выше условий.

На седьмой студии (Визуал которая) 1кб (1024б) делал. Меньше ТОЛЬКО с помощью сторонних утилит. Меньше нельзя, таков формат win23 PE файлов, генерируемых любым нормальным компилятором. STFW libctiny


 
GrayFace ©   (2007-02-09 01:06) [49]

ANTPro ©   (08.02.07 22:31) [47]
У KOL есть дефайн ASM_VERSION

Он включает Асм-версии его функций? Дак в Delphi тоже многие функции на уровне Асма оптимизированы. А, по меньшей мере, 95% кода в оптимизации не нуждаются.


 
GrayFace ©   (2007-02-09 01:08) [50]

Хотя попадаются и функции типа StringReplace, которая убога по оптимальности, хотя должна бы быть оптимизирована.


 
Германн ©   (2007-02-09 02:23) [51]

Удалено модератором
Примечание: И не цитируем


 
Игорь Шевченко ©   (2007-02-09 10:04) [52]

Psychedelic ©   (08.02.07 18:29) [26]


> Ого, ну и программисты у нас. Оказыватеся те кто программирует
> на Delphi должен осваивать новые технологии.   Новые!


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


> Ну а если чел умеет бросать только компоненты на форму (это
> к вам не относиться - это вобщем) , а у нас в основном таких
> "программистов" завались (об этом уже говорили - обговаривали,
>  - ведро на рубль ), то конечно для него это будет довольно
> трудновато.
>
> А что плохого когда имеем RAD средство


Так бросание компонентов - это и есть основное преимущество RAD-средства, там первая буква обозначает Rapid, чем меньше программист будет заботиться о неотносящихся к основной цели программы моментах, тем быстрее и качественнее будет создана его программа.


> Ps. Убрать Object? Вы представляете что тогда будет с Delphi
> и с совместимостью с проектами? Врядли компания пойдет на
> создание убытка для своих клиентов.


Э...клиентов, использующих object, сдается мне, не так уж много по сравнению с неиспользующими...


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


Давай не будем говорить о масштабах. Масштабы использования VCL просто несравнимы. А уж книг написано - не счесть, один Архангельский целую полку в книжном магазине занимает, и это капля в море.
А то, что труда вложено - вложено, не спорю. Вот есть некий AlvaroGP, часто бывающий в Борландовских конференциях, так он тоже много времени вкладывает в то, чтобы сделать быстрозапускающуюся среду (Delphi имеется в виду) - но толк от его усилий пропадает с каждой новой версией Delphi.


> KOL это тоже делфи, это не другой язык.
> Каждое средство для чего то нужно, для разных задач.


А можно узнать, для чего нужна KOL ?


 
evvcom ©   (2007-02-09 11:25) [53]

> [33] DevilDevil ©   (08.02.07 19:23)
> зато в плане возможностей языка, С++ безусловно будет выше Delphi

Когда я в институте изучал Си после Паскаля, я тоже думал, что Си имеет больше возможностей. Потом эти возможности я увидел и в Паскале (Delphi). Может я сильно отстал, и в Си действительно появились какие-то возможности, которых нет в Паскале, тогда прошу привести их, хотя бы 2-3. Обсудим.

> [43] ZiTRaX ©   (08.02.07 22:12)
> Потом будет анализ дизассемблированного листинга с целью
> нахождения "лишних" участков asm-кода.

Это ж какому идиоту может придти в голову делать анализ дизассемблированного листинга с ЯВУ при приеме лабы/контрольной/курсача/диплома? Пусть даже это 2-3 кБ! Это анализ не на 5-10 минут.


 
sabu   (2007-02-09 11:32) [54]

evvcom ©   (09.02.07 11:25) [53]

>Когда я в институте изучал Си после Паскаля, я тоже думал, что Си имеет больше возможностей. Потом эти возможности я увидел и в Паскале (Delphi). Может я сильно отстал, и в Си действительно появились какие-то возможности, которых нет в Паскале, тогда прошу привести их, хотя бы 2-3. Обсудим.

Например, в паскале нельзя перегрузить оператор (), а оператор -> который в c++ тоже можно перегрузить, в нем в принципе отсутствует.

Пожалуйста ознакомьтесь с книгой Modern C++ Design, и поработайте с библиотекой boost.


 
Игорь Шевченко ©   (2007-02-09 11:38) [55]

sabu   (09.02.07 11:32) [54]


> оператор -> который в c++ тоже можно перегрузить, в нем
> в принципе отсутствует.


да, он называется ^, что не является принципиальным отсутствием.

Книжка по паскалю - тоже рулез немеряный


 
sabu   (2007-02-09 11:41) [56]

Игорь Шевченко ©   (09.02.07 11:38) [55]

Мне это известно :).
Я к тому, существуют ли смарт поинтеры в паскале или нет?


 
evvcom ©   (2007-02-09 11:42) [57]


> [54] sabu   (09.02.07 11:32)
> в паскале нельзя перегрузить оператор (),

В Паскале вообще нет перегрузки операторов. А оно это надо? "()" - это типа оператор расстановки приоритетов? Ну и что будет, если ты перегрузишь этот "оператор"? Ты поменяешь привычный его смысл, перевернешь все с ног на голову, а это уже зло.

> а оператор -> который в c++ тоже можно перегрузить, в нем
> в принципе отсутствует

Это, AFAIK, доступ к полям, методам класса/объекта? Если так, то почему ж отсутствует?

Я не говорю о тех или иных символах, которые обозначают те самые "возможности". Я говорю именно о возможности получить тот же самый результат при тех же самых входных данных. Предупрежу сразу заявы типа "а такого ?: оператора тоже в Паскале нет!" Отвечу, оператора - да, нет такого, но возможность есть!


 
KSergey ©   (2007-02-09 11:48) [58]

> evvcom ©   (09.02.07 11:25) [53]
> Может я сильно отстал, и
> в Си действительно появились какие-то возможности, которых
> нет в Паскале, тогда прошу привести их, хотя бы 2-3. Обсудим.
>

Вопрос очень больной, понятно, так что давайте будет корректны хотя бы в терминах.
Имеется в виду С или С++? Это ведь два совершенно разных языка.

> sabu   (09.02.07 11:32) [54]
> Например, в паскале нельзя перегрузить оператор ()


А разве в Delphi Language вообще можно перегрузить хоть один оператор? Или жисть не стоит на месте и я бесконечно отстал?

> Игорь Шевченко ©   (09.02.07 11:38) [55]
> sabu   (09.02.07 11:32) [54]
>
>
sabu> оператор -> который в c++ тоже можно перегрузить, в нем
sabu> в принципе отсутствует.
>
> да, он называется ^, что не является принципиальным отсутствием.
>
> Книжка по паскалю - тоже рулез немеряный

Ээээ Игорь, вы ничего не путаете?
Оператор -> в Delphi в принципе не нужен, т.к. там все ссылки на объект есть указатели, так что странно говорить об отсутсвии чего-либо (да еще и как минус), елси это что-либо в принципе не имеет смысла.


 
sabu   (2007-02-09 11:49) [59]

evvcom ©   (09.02.07 11:42) [57]

Смотрите глубже.
Важно не само наличие возможности перегрузки оператора, а то какие возможности дает эта перегрузка.
Например, возможность перегрузки оператора () позволяет создавать функторы - функции, имеющие состояния. Кроме того, эта возможность позволяет использовать функторы как аргументы шаблонов. Это дает возможность, написав единожды код шаблона, менять его функциональность путем передачи различных типов функторов как его аргументов (например производить конверсию типов внутри шаблона, у которых отсутствуют необходимые операторы-экстракторы).
Посмотрите также как реализован объект Function из boost.


 
KSergey ©   (2007-02-09 11:54) [60]

Чего действительно нет в паскале - так это шаблонов.
только мне думается, что оно и к лучшему :)

А все С++ либы (та же boost) понятно на шаблонах и завязаны, так что говорить об отсутсвии таких библиотек как о минусе - бессмысленно. Для них просто нет поддержки в языке. Хотя функциональных заменителей - вагон в тележкой.

> evvcom ©   (09.02.07 11:42) [57]
>  "()" - это типа оператор расстановки приоритетов?

Это еще и оператор вызова ф-ции/метода :)
Хоя опять же имеет смысл лишь в семантике С++, по-моему.

> sabu   (09.02.07 11:41) [56]
> Я к тому, существуют ли смарт поинтеры в паскале или нет?

нафиг?
Считаю это протезом в С++ ввиду отсутсвия конструкции try/finally.
Хотя и удобно, когда привыкнешь. Иногда даже нравится начинает :)


 
Думкин ©   (2007-02-09 11:59) [61]

Цитата:
Изначально опубликовано komar
Вот и кердык одинэсу.....  

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

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

http://www.axforum.info/forums/showthread.php?t=4320&page=2&highlight=%D0%A2%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0+%D0%B4%D0%B5%D1%80%D0%B5%D0%B2%D0%BE


 
evvcom ©   (2007-02-09 12:00) [62]

> [59] sabu   (09.02.07 11:49)
> позволяет создавать функторы - функции, имеющие состояния
> функторы как аргументы шаблонов
> отсутствуют необходимые операторы-экстракторы
> объект Function из boost

У....... Видимо, я действительно сильно отстал :) Ты это сейчас с кем разговаривал? :)
Ладно, я понятия не имею, о чем шла речь. Просто есть некоторые догадки из-за того, что есть знакомые буквы. Может я не прав, но, думаю, речь опять идет не о возможностях, а об удобствах. В конце концов все эти шаблоны преобразовываются к какому-то коду, который точно так же можно написать и на Паскале без "функторов", "экстракторов" и "бустов" :)
P.S. Время течет, развивается и Паскаль. Что там нового в BDS 2006 появилось я тоже пока не знаю, но, возможно, что-то из этих или других удобств уже тоже есть.


 
evvcom ©   (2007-02-09 12:02) [63]

> [60] KSergey ©   (09.02.07 11:54)
> Это еще и оператор вызова ф-ции/метода :)

Причем далеко не всегда обязательный :)


 
Игорь Шевченко ©   (2007-02-09 12:05) [64]

KSergey ©   (09.02.07 11:48) [58]

Я ничего не путаю. Кроме указателей на объекты, в языке Паскаль (и в Delphi тоже) есть указатели и не на объекты. При их разыменовании используется оператор ^, аналогичный оператору -> в языке С (++)

sabu   (09.02.07 11:49) [59]


> Важно не само наличие возможности перегрузки оператора,
> а то какие возможности дает эта перегрузка.


Известно какие - запутать код до неузнаваемости.
Вот можно ли программисту без особо выстроенных извилин разобраться в коде boost или stl ? :)


 
sabu   (2007-02-09 12:14) [65]

Игорь Шевченко ©   (09.02.07 12:05) [64]

>При их разыменовании используется оператор ^, аналогичный оператору -> в языке С (++)

Неправда ваша.
В с++ эквивалентом будет (*some_ptr).some_fileld.

>Вот можно ли программисту без особо выстроенных извилин разобраться в коде boost или stl ? :)

В boost может разобраться любой, если приложет достаточно усилий (хотя вряд ли ему захочется ради любопытства разбирать такиее ее части как regexp и spririt).

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


 
Думкин ©   (2007-02-09 12:17) [66]


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

А чтение VCL доступно всем, без грандиозных усилий.


 
evvcom ©   (2007-02-09 12:21) [67]

> [65] sabu   (09.02.07 12:14)
> В boost может разобраться любой, если приложет достаточно усилий
> Во внутреннем устройстве stl по-моему невозможно разобраться

Ну и нафига писать такой код? Разработчики с такими известными именами как Microsoft, Borland должны быть примерами для подражания, чтобы по их коду можно было учиться. Я учился по VCL, сейчас сторонние компоненты некоторые смотрю (исходники) и с легкостью в них разбираюсь, потому что написаны они очень похоже на VCL Борланда. А если в stl невозможно разобраться, то вот так и получаются потом такие программисты. Напишут такое, что потом легче застрелиться, чем заниматься поддержкой.


 
sabu   (2007-02-09 12:28) [68]

evvcom ©   (09.02.07 12:21) [67]

>Ну и нафига писать такой код?

Кросс компиляторность/платформенность требовала жертв.
STL построена на на достаточно прозрачных и хорошо известных концепциях и фактически является вариантом их реализации.
Для того чтобы понять принципы на которых построена stl не обязательно изучать ее исходный код. Достаточно изучить соответствующую литературу.
Кроме того, stl достаточно хорошо отлажена.


 
evvcom ©   (2007-02-09 12:31) [69]

> [68] sabu   (09.02.07 12:28)

Не убедил.


 
Игорь Шевченко ©   (2007-02-09 12:49) [70]

sabu   (09.02.07 12:14) [65]


> Неправда ваша.
> В с++ эквивалентом будет (*some_ptr).some_fileld.


да ну ? :) Удивил.

some_ptr->some_field компилятор не пропустит ?


> В boost может разобраться любой, если приложет достаточно
> усилий


> Во внутреннем устройстве stl по-моему невозможно разобраться


Сравни с паскалем :)


 
palva ©   (2007-02-09 13:05) [71]


sabu   (09.02.07 11:32) [54]
> Может я сильно отстал, и в Си действительно появились какие-
> то возможности, которых нет в Паскале, тогда прошу привести
> их, хотя бы 2-3. Обсудим.

Привести можно. Только чего тут обуждать?
1. В паскале отсутствуют поля, которые есть в обыкноменном C.
2. В паскале отсутствует возможность писать функции с переменным числом параметров. Похожая функциональность достигается при помощи описателя array of const, которая используется в функции Format - паскалевского аналога sprintf . Но паскалевский аналог функции sscanf отсутствует - нет языковых конструкций.


 
wicked ©   (2007-02-09 13:10) [72]

вставлю свои 3 коп... :->


> Чего действительно нет в паскале - так это шаблонов.
> только мне думается, что оно и к лучшему :)

к худшему... шаблоны в си++ не ахти как реализованы (а от template metaprogramming вообще мозги в трубочку сворачиваются ;)), но тем не менее, они есть и это очень мощный иструмент - там, где на паскале будет написано килобайт 200 кода, на си++ - около 6 - 10
плюс, отсутствие полноценных автоматичческих обьектов в дельфи - огромный минус (legacy в виде object в расчет брать не будем - тут уже проскакивало, что скоро их того)


> > sabu   (09.02.07 11:41) [56]
> > Я к тому, существуют ли смарт поинтеры в паскале или нет?
>
>
> нафиг?
> Считаю это протезом в С++ ввиду отсутсвия конструкции try/finally.
>
> Хотя и удобно, когда привыкнешь. Иногда даже нравится начинает
> :)

отсутствие finally в си++ - это не причина, а следствие... смарт поинтеры - это автоматические обьекты, поэтому их деструкторы гарантированно должны вызываться при выходе из области видимости переменной поинтера. Удобней, поскольку смарт поинтерами не только память можно контролировать.
а finally - это как раз костыль... убедился на собственном опыте


 
Игорь Шевченко ©   (2007-02-09 13:12) [73]


> 1. В паскале отсутствуют поля, которые есть в обыкноменном
> C.


Это как ?


 
sabu   (2007-02-09 13:16) [74]

Игорь Шевченко ©   (09.02.07 12:49) [70]

>да ну ? :) Удивил.
>some_ptr->some_field компилятор не пропустит ?

Конечно пропустит. Однако для получения значения поля здесь используется лишь один оператор. Давая эквивалентный результат, способ отличается синтаксисом.

>Сравни с паскалем :)

А можно ли легко разобраться в Автошеме?
STL по гениальности не уступает этой замечательной программе.
И смех тут мало уместен.


 
evvcom ©   (2007-02-09 13:17) [75]

> [71] palva ©   (09.02.07 13:05)
> 1. В паскале отсутствуют поля, которые есть в обыкноменном C.

Извини, я давно изучал С, напомни, если не в лом, что ты имеешь ввиду.

> В паскале отсутствует возможность писать функции с переменным
> числом параметров. Похожая функциональность достигается при помощи описателя array of const

Ты сам себе противоречишь. Пишешь, что отсутствует возможность, и тут же, что все-таки она есть.

> Но паскалевский аналог функции sscanf отсутствует - нет
> языковых конструкций.

Ерунду говоришь. Нет аналога - напиши. Языковые конструкции имеются. Тот же array of const.


 
wicked ©   (2007-02-09 13:19) [76]


> >Сравни с паскалем :)
>
> А можно ли легко разобраться в Автошеме?
> STL по гениальности не уступает этой замечательной программе.
>
> И смех тут мало уместен.

Дима?... ты?... здгавствуй, годимый :)

а разобраться в STL... про какой STL то речь идет - их же как сабак нерезанных?
тот, что с билдером идет - прекрасно можно разобраться, что у него там внутри... вы попробуйте, прежде чем говорить


 
evvcom ©   (2007-02-09 13:21) [77]

> [74] sabu   (09.02.07 13:16)
> Давая эквивалентный результат, способ отличается синтаксисом.

Так изначально было заявлено что в Паскале нет каких-то возможностей, т.е. чего-то невозможно сделать. Синтаксис тут причем?


 
palva ©   (2007-02-09 13:26) [78]


> Это как ?

Наверно я плохо сказал. Имеются в виду битовые поля в структурах. Типа так:
#include <stdio.h>
void main() {
 struct {
   unsigned i1:3, i2:2, i3:5, i4:3;
 } s;
 s.i1 = 1; s.i2 = 2; s.i3 = 8; s.i4 = 4;
 printf("%d %d %d %d\n", s.i1, s.i2, s.i3, s.i4);
 /* 1 2 8 4 */
}


 
evvcom ©   (2007-02-09 13:27) [79]

> [71] palva ©   (09.02.07 13:05)

Кстати, к аналогам sprintf, sscanf скорее можно отнести write[ln] и read[ln]. Из-за конечного f полной аналогии, конечно, не получится, но тем не менее это compiler magic functions, думаю, в С аналогично. Если посмотреть асм, то никакого "переменного" количества параметров ты не увидишь.


 
sabu   (2007-02-09 13:28) [80]

evvcom ©   (09.02.07 13:21) [77]

>Так изначально было заявлено что в Паскале нет каких-то возможностей, т.е. чего-то невозможно сделать. Синтаксис тут причем?

Да мы немного отвлеклись.
Проблема была в том, что в паскале отсутствует перегрузка операторов.
И даже если бы она была, неизвестно возможно ли было бы создать смартпоинтеры, перегрузив оператор разыменования, так как для получения значения поля используется два оператора.
Наверняка разработчики компилятора снова применили бы какую-нибудь магию, которой не требуется в c++, языке по своей природе мистическом.


 
palva ©   (2007-02-09 13:33) [81]

> Так изначально было заявлено что в Паскале нет каких-то возможностей
Я перечислил некоторые возможности, которых нет в паскале. Именно возможности, а не синтаксис. На си можно написать такую функцию в составе dll, к которой нельзя обратиться из паскаля. На паскале нельзя написать такую функцию, к которой нельзя обратиться из си.


 
Psychedelic ©   (2007-02-09 13:35) [82]

> Ого, ну и программисты у нас. Оказыватеся те кто программирует
> на Delphi должен осваивать новые технологии.   Новые!


>
> Правильные у нас программисты. Программисты, промежду прочим,
>  если не для обственного развлечения, пишут программы для
> того, чтобы они людям пользу приносили. А для того, чтобы
> программы пользу приносили, основные усилия должны быть
> направлены не на уменьшение размеров программы, а на ее
> функциональные возможности. И на понятный код, в том числе,
>  для целей сопровождения.


А к чему этот комментарий? Он совсем не к месту. Этой фразой я хотел сказать что никаких новых технологий нет, это все то же Delphi.

> Ну а если чел умеет бросать только компоненты на форму (это
> к вам не относиться - это вобщем) , а у нас в основном таких
> "программистов" завались (об этом уже говорили - обговаривали,
>  - ведро на рубль ), то конечно для него это будет довольно
> трудновато.
>
> А что плохого когда имеем RAD средство

>
> Так бросание компонентов - это и есть основное преимущество
> RAD-средства, там первая буква обозначает Rapid, чем меньше
> программист будет заботиться о неотносящихся к основной
> цели программы моментах, тем быстрее и качественнее будет
> создана его программа.


Во-во. Только вы забыли продолжить мою фразу - "RAD средство, которое создает результат без мертвого кода, и быстро работающее." RAD  - быстрая разработка.

> Ps. Убрать Object? Вы представляете что тогда будет с Delphi
> и с совместимостью с проектами? Врядли компания пойдет на
> создание убытка для своих клиентов.


> Э...клиентов, использующих object, сдается мне, не так уж
> много по сравнению с неиспользующими...


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

> KOL это тоже делфи, это не другой язык.
> Каждое средство для чего то нужно, для разных задач.


> А можно узнать, для чего нужна KOL ?


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

Тут уж наверное зависит от мнений. Есть  две проги, абсолютно одинаковые по функционалу и интерфейсу. правда одна весит 2 мега, другая - 200 килобайт. Но выбирать то пользователю. Как вы думаете какую он будет качать? Конечно вы скажете что та , которая круче (ведь вы до смешного предсказуемы).
Но ведь по условию проги одинаковы, а у большинства народов СНГ - дома модем...  Это можно до бесконечности продолжать... Давайте лучше
>  людям пользу приносить
прям сейчас, и не будем зря бухтеть на этом форуме.


 
palva ©   (2007-02-09 13:37) [83]

> но тем не менее это compiler magic functions, думаю, в С аналогично.
Нет, в си это обычные библиотечные функции.
> Если посмотреть асм, то никакого "переменного" количества параметров ты не увидишь
Как раз и увижу в стеке разное количество параметров. При интерпретации первого параметра - формата функция использует нужное число параметров.

Более того, такие функции может писать для себя начинающий сишник.


 
Игорь Шевченко ©   (2007-02-09 13:38) [84]

sabu   (09.02.07 13:16) [74]


> Конечно пропустит.


Тогда об чем разговор ? С чего, собственно говоря, утверждение, что паскалевскому оператору ^ соответствует (*foo).bar, а не foo->bar ?


> А можно ли легко разобраться в Автошеме?


Извини, но в сортах дерьма не разбираюсь.


 
Romkin ©   (2007-02-09 13:41) [85]


>  разве в Delphi Language вообще можно перегрузить хоть один
> оператор? Или жисть не стоит на месте и я бесконечно отстал?
>

Есть перегрузка. Все зависит от версии языка :)


 
KSergey ©   (2007-02-09 13:42) [86]

> palva ©   (09.02.07 13:05) [71]
> 2. В паскале отсутствует возможность писать функции с переменным
> числом параметров.

Я предлагаю приводить все же те языковые средства, которые действительно здоровско помогают и мощны.
Переменное число параметров - да нафиг не здалося в общем-то. Легко заменяется передачей любого списочного контейтера, да и для понимания/отладки проще и понятнее. Не кошерно короче это переменное число параметров, хотя и прикольно, понятно :) Главное - легко заменяется.

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


 
Игорь Шевченко ©   (2007-02-09 13:42) [87]

Psychedelic ©   (09.02.07 13:35) [82]


> А к чему этот комментарий? Он совсем не к месту. Этой фразой
> я хотел сказать что никаких новых технологий нет, это все
> то же Delphi.


Комментарий как раз к месту, потому что использование VCL - это одна технология со всеми ее нюансами, а использование KOL, извини, совсем другая. Со своими нюансами.


> Во-во. Только вы забыли продолжить мою фразу - "RAD средство,
>  которое создает результат без мертвого кода, и быстро работающее.
> " RAD  - быстрая разработка.


Минуточку. А откуда берется мертвый код при использовании VCL и почему он мертвый ? Можно на примерах показать ?


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


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


 
wicked ©   (2007-02-09 13:42) [88]


>
> Тогда об чем разговор ? С чего, собственно говоря, утверждение,
>  что паскалевскому оператору ^ соответствует (*foo).bar,
>  а не foo->bar ?

сорь, что встреваю, но...
в паскале - ^
в си - *
foo^.bar ==== (*foo).bar
??? ==== foo->bar
стрелки, как таковой, в паскале нет :)
а в си++ она еще и перегружается - можно создать класс, ведущий себя, как указатель... для смарт поинтеров - удобно


 
sabu   (2007-02-09 13:47) [89]

Игорь Шевченко ©   (09.02.07 13:38) [84]

>Тогда об чем разговор ? С чего, собственно говоря, утверждение, что паскалевскому оператору ^ соответствует (*foo).bar, а не foo->bar ?

Но ведь из того, что пропустит компилятор, а что не пропустит не следует эквивалентность тех или иных конструкций, правда?

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

В случает с применением оператора разыменования, мы сначала получаем доступ к экземпляру объекта по его адресу.
И используем операторы, применимые к экземпляру объекта, а не к указателю на него.
Используя оператор -> мы оперируем непосредственно с указателем (синтаксически).
Поэтому, данные конструкции синтаксически неэквивалентны, и могут давать различный результат, если оператор -> перегружен.
Надеюсь, теперь понятно о чем речь?


 
Romkin ©   (2007-02-09 13:48) [90]

wicked ©   (09.02.07 13:42) [88] В Delphi смарты уже вшиты, если я понимаю их правильно. ansistring & dynamic arrays - один из примеров.
И в Delphi все классы - указатели. ТАк что можно считать аналогом стрелки обычную точку :)


 
Игорь Шевченко ©   (2007-02-09 13:49) [91]


> Используя оператор -> мы оперируем непосредственно с указателем
> (синтаксически).


А используя оператор ^ в паскале мы разве не оперируем аналогичным образом ? Сдается мне, что это ловля блох


 
KSergey ©   (2007-02-09 13:50) [92]

> KSergey ©   (09.02.07 13:42) [86]
> > palva ©   (09.02.07 13:05) [71]
> > 2. В паскале отсутствует возможность писать функции с
> переменным
> > числом параметров.
>
> Я предлагаю приводить все же те языковые средства, которые
> действительно здоровско помогают и мощны.

Я дочитал в последующих постах по поводу того, что выходит можно написать в dll ф-цию на Си, но ее нельзя будет вызвать из Delphi.
Да, тут согласен. Но в данном случае, по моему глубочайшему убеждению, уже будет присутсвовать грубейная ошибка проектирования: выдавать такую dll за супер универсальную и удобную - будет по меньшей мере глупо :) А если не универсальна - тогда это и не минус.
Это как Си-компиляторам/линкерам от MS поставить в вину то, что они не умеют использовать bpl :)


 
DevilDevil ©   (2007-02-09 13:51) [93]

Удалено модератором
Примечание: Offtopic


 
DevilDevil ©   (2007-02-09 13:59) [94]

Порой если придумали, значит кому то нужно. Я вот на ассемблере балуюсь иногда, функции убыстряю. Так вот поверьте мне, ой как порой нехватает Сишных макросов!

Меня попросили проивести пару весчей, привожу:

--- макросы
--- шаблоны
--- классы не в куче
--- операторы (в Delphi правда реализовали)
--- STL
--- весчи типа +=, ++, *=, \=, &=  и т.д.

надо это программисту изучать/использовать, решать только ему самому. Дык давайте хотябы проявим уважение самому распространённому языку, мощнее нашего раза в два... но попрежнему останемся с нашей любимой Delphi.


 
palva ©   (2007-02-09 13:59) [95]

KSergey ©   (09.02.07 13:50) [92]
> А если не универсальна - тогда это и не минус.
А я разве говорил об универсальности или о минусах? Я говорил о возможностях си, которых нет в паскале. Такие возможности кое-кому нафиг не нужны, с этим можно согласиться. Но они есть.


 
KSergey ©   (2007-02-09 14:07) [96]

> Игорь Шевченко ©   (09.02.07 13:49) [91]
> А используя оператор ^ в паскале мы разве не оперируем аналогичным
> образом ? Сдается мне, что это ловля блох

В Си и С++, как вы знаете, принципиально различается обращение к полям/метоам класса/структуры, заданным собственно объектом и указателем на него. Используется точка или "стрелочка", но никак не "как в голову взбредет": к указателям только стрелочка. Признаться, мне не знакома философия данного решения для чистого Си; могу лишь предположить, что свыше было подсказано, что это будет удобно потом, в С++, когда появится перегрузка и именно и только стрелочку можно будет перегрузить :) Хотя имею и друое. более простое (или вернее менее мистическое) объяснение.

Так вот, относительно эквиваленстности ^ и -> - я никак не могу вас, Игорь, понять. Это же принципиально разные операторы!
Сишной стрелочке соответствует паскалевская точка, т.к. паскаль по синтаксису позволяет обращаться к полям структуры, заданной указателем, через все ту же точку. Ну либо, если уж буквоедствовать (хотя и не уверен) - то можно стрелочке сопоставить комбинацию ^.
Но никак не отдельно ^, т.к. этот оператор сам по себе - ну никак не позволяет обратиться к полям структуры.


 
homm ©   (2007-02-09 14:10) [97]

2 Игорь Шевченко
> Трафик тоже дешевеет.

Вы хотите сказать что он у Вас дешевеет?

На самом деле конечно именно эту програмульку мне не сложно было бы скачать если бы она весила 591кб, как Вы сказали, Но есть приложения которые приходится обновлять, следить за новыми версиями... Я скачиваю как минимум все вновь появляющиеся версии ДМКлиента, и через одну-две версии Оперы. Может опера это не удачный пример, ибо здесь действительно проект такой сложности что пытатся сделать ее меньше бессмылено (хотя надо отметить, что дистрибутив до сих пор не превышает 4-х мегабайт, а функций все больше и больше...). Если бы дистрибутив ДМ весил 200-300кб, я думаю никому бы плохо не стало...

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

На самом деле мне кажется что многие уже пишут под кол потому что знают его лучше ВСЛ, и не видят выгоды в переходе на него. Я довольно сносно знаю КОЛ Изнутри, и мне намного проще и удобнее писать на нем, чем на ВСЛ (кога все-же есть такая необходимость).

Все-же каждому свое...


 
Игорь Шевченко ©   (2007-02-09 14:10) [98]


> Так вот, относительно эквиваленстности ^ и -> - я никак
> не могу вас, Игорь, понять. Это же принципиально разные
> операторы!


Я наверное не сказал, что подразумеваю ^. (с точкой, разумеется) как эквивалент сишного оператора -> (или, что то же самое, (*foo).bar)


 
KSergey ©   (2007-02-09 14:12) [99]

> Игорь Шевченко ©   (09.02.07 14:10) [98]
> Я наверное не сказал, что подразумеваю

Не мне вам рассказывать о продолжительности отпуска телепатов :)


 
wicked ©   (2007-02-09 14:14) [100]

па-а-азвольте

> Признаться, мне не знакома философия данного решения для
> чистого Си; могу лишь предположить, что свыше было подсказано,
>  что это будет удобно потом, в С++, когда появится перегрузка
> и именно и только стрелочку можно будет перегрузить :)

вот кусок реального кода
Pt* operator->() const
{
 return fData;
}
Pt& operator *() const
{
 return *fData;
}

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


 
KSergey ©   (2007-02-09 14:14) [101]

> DevilDevil ©   (09.02.07 13:59) [94]
> Дык давайте хотябы проявим уважение

А чиста кто-то не уважает?!


 
KSergey ©   (2007-02-09 14:16) [102]

> wicked ©   (09.02.07 14:14) [100]

Разницу между С и С++ знаем?


 
Игорь Шевченко ©   (2007-02-09 14:17) [103]

homm ©   (09.02.07 14:10) [97]


> Вы хотите сказать что он у Вас дешевеет?


Я хочу сказать, что он дешевеет везде.


> Я понимаю вашу точку зрения, Вы считаете что экономить на
> таких вещах все равно что экономить на моющем средстве,
> и в этом вы правы... Но есть еще и более быстрый запуск
> приложений, почти в 2 раза меньше занимаемая память. Все
> эти плюсы по отдельности вроде не слишком значительны, о
> вместе они дают солидное преимущество.


Если вас не затруднит, скажите пожалуйста, за счет чего достигается именно "более быстрый запуск", насчет занимания памяти - это, извиняюсь, вы какую память имеете в виду - private bytes или working set ?


> На самом деле мне кажется что многие уже пишут под кол потому
> что знают его лучше ВСЛ, и не видят выгоды в переходе на
> него. Я довольно сносно знаю КОЛ Изнутри, и мне намного
> проще и удобнее писать на нем, чем на ВСЛ (кога все-же есть
> такая необходимость).


Тут такое дело - многие пишут под VCL, потому что им надо кушать. И с VCL этот процесс, от писания до еды как-то быстрее проходит.

Моих многих гораздо больше, чем твоих :)

И кстати, ладно вы в своем KOL от форм delphi"йских отказались, но зачем вы не от TObject наследуетесь, можно узнать ?


 
KSergey ©   (2007-02-09 14:19) [104]

> wicked ©   (09.02.07 14:14) [100]
KSergey> и именно и только стрелочку можно будет перегрузить :)

Имелось в виду "имено  и только" относительно точки: ее епергрузить нельзя.
Про другие операторы я не говорил.

Говорил лишь о том, что не вижу причин, по которым в С (баз плюсов!!) надо было вводить две разных операци по доступу к членам структуры, заданным структурной  переменной и указателем на структуру.


 
KSergey ©   (2007-02-09 14:22) [105]

> Игорь Шевченко ©   (09.02.07 14:17) [103]
> И кстати, ладно вы в своем KOL от форм delphi"йских отказались,
>  но зачем вы не от TObject наследуетесь, можно узнать ?

Я думаю им претит RTTI как бесполезно занимающая место :)


 
homm ©   (2007-02-09 14:25) [106]

> но зачем вы не от TObject наследуетесь, можно узнать ?

1 - это класс
2 - виртуальные методы - самая большая дыра для "мертвого кода".


> Если вас не затруднит, скажите пожалуйста, за счет чего
> достигается именно "более быстрый запуск"
За чсет отсутствия инициальзации всякого мусора, котрый возможно и не понадобится в приложении. Вы часть Screen пользуетесь? А он создается...


> насчет занимания памяти - это, извиняюсь, вы какую память
> имеете в виду - private bytes или working set ?
Я имею ввиду выдленую системой виртуальную память... а из меньшего обращения к ненужным объктам, и собственно компактности кода самих этих объктов и вытекает меньшее использование физической пямяти для работы.


> И с VCL этот процесс, от писания до еды как-то быстрее проходит.

С чего Вы взяли? КОЛ - такая-же RAD система. Естественно для Вас то справедливо, т.к. на всл огромый опят, а о кол только поверхностное представление.


> Моих многих гораздо больше, чем твоих :)
Это даже удивления не вызывает :) причины на поверхности... Но не думаю что дело в самом КОЛ.


 
KSergey ©   (2007-02-09 14:29) [107]

К стати, относительно того, что есть в дельфи, но нет в си: Variant
Только не надо мне рассказывать про ATL-ный вариант! Чур меня чур! :)

А с COM из С++? А?
Даже при наличии ATL - удавиться. Хотя много уже легче, конечно. А уж без ATL... приличных слов у меян просто нет.

Но никакая ATL не идет в сравнение с variant, особенно при позднем связывании.
А ведь это, по сути, средство языка в паскале. Хотя, тут не спорю. может и стоит признать, что внутри оно - полностью compiler magic и жестко Windows-ориентированное.


 
homm ©   (2007-02-09 14:29) [108]

> Я думаю им претит RTTI как бесполезно занимающая место :)

Она еще и жуко тормозная. Сравнение принадлежности класса к конкретному экземпляру сделано явно через одно место.
Нет, я не против RTTI, пусть живет, просто не нужно как к поноцее к ней относится, она правда тормозная


 
sabu   (2007-02-09 14:33) [109]

KSergey ©   (09.02.07 14:29) [107]

>К стати, относительно того, что есть в дельфи, но нет в си: Variant

boost::any
boost::variant

>А с COM из С++?

using в MSVC генерирует довольно удобоваримые врапперы.


 
KSergey ©   (2007-02-09 14:40) [110]

> sabu   (09.02.07 12:14) [65]
> Во внутреннем устройстве stl по-моему невозможно разобраться,
>  так как разработчики применили очень своеобразный стиль
> кодирования.

Мдя... вот так и рождаются дебильные мифы... За всю STL говорить не буду, конечно, может быть понять "с нуля" без описания нафиг оно сдалось - и заьруднительно в достаточном объеме, но лишь ввиду объема. Но те куски, которые у меня вызывали вопросы - я брал и читал, снимая вопросы. Поверьте, голова у меня очень посредственная. Знаю людей, которые делают это быстрее и еще и наизусть помнят да еще и знают почему оно так сделано.
К стати, компилятор тоже его понимает и компилирует, не смотря на "своеобразный стиль кодирования". Хочется перейти на личности.

Горазно труднее мне даются понимания идей из boost. Вот тут точно мозги должны быть "не избалованные Delphi" :)
Хоят закоренелые сишники от нее торчат. Все же убежден, что лишь от незнакомства с Delphi. :(

> Игорь Шевченко ©   (09.02.07 12:05) [64]
> Вот можно ли программисту без особо выстроенных извилин
> разобраться в коде boost или stl ? :)

Да, возможно, я в этом уверен. Более того, после этого мозги становятся устроенны правильно. С точки зрения понимания. Насчет прочего - иногда меня терзают сомнения :)


 
Игорь Шевченко ©   (2007-02-09 14:47) [111]

homm ©   (09.02.07 14:25) [106]


> 1 - это класс
> 2 - виртуальные методы - самая большая дыра для "мертвого
> кода".


Я сильно извиняюсь, а что, у вас в KOL виртуальных методов нету ? Раз это такая вот дыра...


> За чсет отсутствия инициальзации всякого мусора, котрый
> возможно и не понадобится в приложении. Вы часть Screen
> пользуетесь? А он создается...


Я - безусловно пользуюсь Screen, Application и "прочим мусором". Но, опять же, желателен более подробный анализ "быстрого запуска", можно с циферками...Например, VCL-приложение запускается столько-то миллисекунд, а аналогичное на KOL - столько-то. Наверняка факт быстрого запуска KOL-приложений был получен опытным путем, а не теоретизированием.


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


Опять же, цифирки бы неплохо - вот программа на VCL занимает столько-то, а аналогичная программа на KOL в два раза меньше. Не затруднит ?


> С чего Вы взяли? КОЛ - такая-же RAD система. Естественно
> для Вас то справедливо, т.к. на всл огромый опят, а о кол
> только поверхностное представление.


Я, уважаемый, имел удовольствие ознакомиться с исходными текстами программы на KOL, автор здешний, плагин для TotalCommander"а писал. После этого говорить про RAD-системы по сравнению с разработкой на VCL мне даже не хочется.

А с чего я взял - с того, что на KOL я не видел программ, за которые денег платят достаточных для еды. Если есть примеры, буду раз ознакомиться.


> Это даже удивления не вызывает :) причины на поверхности.
> .. Но не думаю что дело в самом КОЛ.


Дело не в KOL. Дело в разнице между Borland и Кладовым сотоварищи. У Borland"а толще во всех отношениях.


 
KSergey ©   (2007-02-09 14:55) [112]

> sabu   (09.02.07 14:33) [109]
> >А с COM из С++?
> using в MSVC генерирует довольно удобоваримые врапперы.

Ню-ню :)
Нет, работать можно, разговора нет. Но счастья - тоже нет.
К стати, про позднее связывание - я ведь не напрастно упомянул. Врапперы - они ведь не про то, если я все верно понимаю.

Вообще моща Си и С++ конечно же в том, что то, что мы по сути обсуждаем - лишь библиотеки, созданные на тех же самых языках! Хотя и стандартизованные, конечно.
Сами же языки имеют весьма компактный (по описанию) синтаксис с весьма небольшим набором инструментов собсвенно языка. Все конструкции Си, думаю, и вовсе описываются на одной странице.
Правда, к этому компактному описанию идет еще книжка в 600 страниц Страуструпа про оисание нюансов. И то не всех :) (что касается С++; для Си - это актуально, но все же объем нюансов несоизмеримо меньше.)

В противовес Delphi language имеет массу compiler-magic функций и процедур, аналоги которых на самом языке и вовсе нереализуемы. Зато и "дуракаустойчивость" получается много выше.

К стати, об этих вот нюансах Cи/С++: всегда читая о них, я думаю о Delphi: от чего в книгах по Delphi о них ни слова? Ведь так вот прикидываешь - сами по себе эти нюансы часто имеют место быть. И толи просто школа не сложилась их преподавания, толи все же просто язык таков, что про все эти нюансы нет смысла думать, т.к. они хоть и есть, но на них никогда не наступаешь, т.к. такой уж синтаксис языка, а все это уж пусть разработчики компиляторов додумывают сколько и какой объект должен жить, чтобы проблем с ним не возникало в принципе?
Может кто знает ответ?


 
Игорь Шевченко ©   (2007-02-09 14:58) [113]

"Полезно взглянуть на два языка программирования - PL/1 и C. Язык PL/1 был
разработан корпорацией IBM в 60-ые годы, так как поддерживать одновременно FORTRAN и COBOL и слушать при этом ворчание ученых о том, что Algol лучше, чем FORTRAN и COBOL, вместе взятые, было невыносимо. Поэтому был создан комитет для создания нового языка, удовлетворяющего запросам всех программистов: PL/1.
Этот язык обладал некоторыми чертами языка FORTRAN, некоторыми особенностями языка COBOL и некоторыми свойствами языка Algol. Проект потерпел неудачу, потому что ему недоставало единой концепции. Проект представлял собой лишь набор свойств, конфликтующих друг с другом, к тому же язык PL/1 был слишком громоздким и неуклюжим, чтобы программы на нем можно было эффективно компилировать.

Теперь взглянем на язык С. Он был спроектирован всего одним человеком
(Деннисом Ритчи) для единственной цели (системного программирования). Успех его был колоссален, и это не в последнюю очередь объяснялось тем, что Ритчи знал, чего хотел и чего не хотел. В результате спустя десятилетия после своего появления этот язык все еще широко распространен. Наличе четкого представления о своих целях является решающим."

(с) Эндрю Таненбаум


 
Psychedelic ©   (2007-02-09 15:01) [114]

>> Я хочу сказать, что он дешевеет везде.

Украина - 60 коп час  с calback >> с первого января сего года 2 грн час (в 3 раза) -
все провайдеры от 1.50 минимум

К тому же стоимость тут не причем, хотя также играет немаловажную роль.
Скорость закачки.

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


 
Romkin ©   (2007-02-09 15:01) [115]


> Сами же языки имеют весьма компактный (по описанию) синтаксис
> с весьма небольшим набором инструментов собсвенно языка.
>  Все конструкции Си, думаю, и вовсе описываются на одной
> странице.

Ты уверен? Ты видел, сколько страниц в LangGuide для Object Pascal и для C++?


 
homm ©   (2007-02-09 15:02) [116]

> Опять же, цифирки бы неплохо - вот программа на VCL занимает
> столько-то, а аналогичная программа на KOL в два раза меньше.
> Не затруднит ?

Дома буду, обязательно привед.


> Я - безусловно пользуюсь Screen, Application и "прочим мусором".
Я имею ввиду в КАЖДОМ приложении?


> Я, уважаемый, имел удовольствие ознакомиться с исходными
> текстами программы на KOL, автор здешний, плагин для TotalCommander"а
> писал.
Возможо имеется ввиду "читый" КОЛ? Проект MCK знаком?


> А с чего я взял - с того, что на KOL я не видел программ,
> за которые денег платят достаточных для еды.
Об этом лучше спросить самого Владимира, MTsv DN и mdw. Может еще кого, я просто не знаю точно кто из кол комьюнити именно зарабатывает написанием программ на кол.


 
Psychedelic ©   (2007-02-09 15:04) [117]

Ну вот, как я и думал: Вы уже для себя разделили некоторых на вас и нас. :)


 
Игорь Шевченко ©   (2007-02-09 15:08) [118]

homm ©   (09.02.07 15:02) [116]


> Я имею ввиду в КАЖДОМ приложении?


Разумеется. Ведь эти объекты используются внутри самой VCL, и довольно успешно. Например, внутри методов объекта Application реализован цикл выборки сообщений потока.


> Возможо имеется ввиду "читый" КОЛ? Проект MCK знаком?


Безусловно знаком, даже, если мне память не изменяет, именно с использованием MCK это произведение и было написано.
Впрочем, можно у автора спросить, надеюсь, он не будет против, если я его упомяну - это Speller.


> Об этом лучше спросить самого Владимира, MTsv DN и mdw.
> Может еще кого, я просто не знаю точно кто из кол комьюнити
> именно зарабатывает написанием программ на кол.


Дело в том, что платят обычно не за те приложения, в которых важен размер. Тут довольно много программистов на Delphi, они могут рассказать, за какие примерно приложения платят денег на еду. Реализовывать подобные проекты на KOL - лучше сразу застрелиться :)


 
KSergey ©   (2007-02-09 15:08) [119]

> Romkin ©   (09.02.07 15:01) [115]
> Ты уверен? Ты видел, сколько страниц в LangGuide для Object
> Pascal и для C++?

Честно не видел.
но я сильно подозреваю, что для С++ туда включено STL, а это я уже не считаю языком (не буду о том философствовать что входит что нет и спорить, говорю лишь в рамках моего поста: эти либы написаны на самом этом языке).


 
Игорь Шевченко ©   (2007-02-09 15:09) [120]

Psychedelic ©   (09.02.07 15:01) [114]

а по существу вопроса можно ? Я вроде задавал вопрос - в чем практическая ценность KOL


 
Romkin ©   (2007-02-09 15:15) [121]

KSergey ©   (09.02.07 15:08) [119] Я говорил об объеме именно описания конструкций языка, без описания библиотек, как STL так и VCL. Поясняю: для С++ объем описания языка во много раз больше. Можешь сам посмотреть :)


 
evvcom ©   (2007-02-09 15:24) [122]

> [81] palva ©   (09.02.07 13:33)
> Я перечислил некоторые возможности, которых нет в паскале.
> Именно возможности, а не синтаксис.

Видимо, мы вкладываем разный смысл в слово "возможности". Поставь задачу, конкретную задачу, а не тестовое задание типа "перегрузи оператор", и я докажу, что ее ВОЗМОЖНО решить и на паскале в том числе.

> На си можно написать такую функцию в составе dll, к которой
> нельзя обратиться из паскаля. На паскале нельзя написать
> такую функцию, к которой нельзя обратиться из си.

Тут ты опять врешь. Или в первом, или во втором предложении. Смотря с какой колокольни смотреть. Пример функции в составе dll на С, к которой нельзя обратиться из паскаля, в студию!

> [83] palva ©   (09.02.07 13:37)
> Как раз и увижу в стеке разное количество параметров.

Кошмар! Неужели и такой изврат в С воткнули?
Это к такой функции я не смогу обратиться из паскаля? В принципе для паскаля это действительно не характерно, но я бы выкрутился. Слава богу в Delphi можно и на ассемблере кодить, да, думаю, и на чистом паскале выкрутился бы.

И тем не менее, эти "возможности" С больше вносят беспорядка в умы подрастающего поколения, да и в код тоже. :(

> [94] DevilDevil ©   (09.02.07 13:59)
> весчи типа +=, ++,

Так это Inc (Dec) в Delphi. И ты опять доп.удобства (инструменты) привел, а не возможности решения той или иной задачи.

> Дык давайте хотябы проявим уважение самому распространённому языку

А кто-нить проявляет неуважение? Я когда-то опять же слышал, что Си гибче Паскаля. С этим согласен, но по возможностям...


 
Psychedelic ©   (2007-02-09 15:28) [123]


> а по существу вопроса можно ? Я вроде задавал вопрос - в
> чем практическая ценность KOL

Дык я вроде вам уже ответил, причем популярно - о том как размер сказывается на конечных пользователях, на примере Windows, обновлений Windows. Неужто этого мало???

А то что вы просите у homma привести результаты, дык это говорит о поверхностном знании материала, на уровне прочтения доков.

Я бы вам это даже не доказывал, т.к. толку в этом нет. Вы как чел. с консервативным характером все равно будете про Фому рассказывать..
Человек зря время потратит, а вы останетесь при своем мнении.


> Дело в том, что платят обычно не за те приложения, в которых
> важен размер. Тут довольно много программистов на Delphi,
>  они могут рассказать, за какие примерно приложения платят
> денег на еду.


Конечно , платят за результат. А вот к результату можно прийти разными путями. Причем если с точки кодинга  KOL vs VCL - ничуть не больше по времени чем с VCL, при достаточном уровне.

> Реализовывать подобные проекты на KOL - лучше
> сразу застрелиться

Размышления человека сталкивающегося с новым.
Так всегда, поверьте. Когда мне нужно было срочно переучится из С на delphi , я думал также. Ведь можно было сделать это и так, правда?
Зато сейчас не жалею, т.к. имею более широкий выбор.


 
Игорь Шевченко ©   (2007-02-09 15:29) [124]


> Пример функции в составе dll на С, к которой нельзя обратиться
> из паскаля, в студию!


sprintf, sscanf в ntdll.dll :)


 
Bless ©   (2007-02-09 15:32) [125]


> KSergey ©   (09.02.07 15:08) [119]
>
> Честно не видел.
> но я сильно подозреваю, что для С++ туда включено STL


ISO/IEC 14882:1998 - C++ Final Draft
занимает 3 мегабайта простых html-файлов без картинок.
Сколько это в страницах, не знаю, лениво мерять, но много.
Это без STL.


 
Игорь Шевченко ©   (2007-02-09 15:33) [126]

Psychedelic ©   (09.02.07 15:28) [123]

Если не трудно, давай все-таки обсуждать KOL, а не мою персону. KOL, поверь, куда как более интересней.

> Дык я вроде вам уже ответил, причем популярно - о том как
> размер сказывается на конечных пользователях, на примере
> Windows, обновлений Windows. Неужто этого мало???


Вроде не Windows ни обновления для него на KOL не написаны. Поэтому пример слегка неудачный.


> Конечно , платят за результат. А вот к результату можно
> прийти разными путями. Причем если с точки кодинга  KOL
> vs VCL - ничуть не больше по времени чем с VCL, при достаточном
> уровне.


Серьезно ? Мне вот крайне любопытно, есть в мире системы уровня предприятия (за другие, увы, почти не платят), написанные на KOL :)


> Размышления человека сталкивающегося с новым.
> Так всегда, поверьте. Когда мне нужно было срочно переучится
> из С на delphi , я думал также. Ведь можно было сделать
> это и так, правда?


Ты не поверишь, конечно, но с KOL я знаком уже лет пять...Так что говорить про "столкновение с новым" не всегда уместно - можно в лужу сесть.


 
MBo ©   (2007-02-09 15:39) [127]

>Пример функции в составе dll на С, к которой нельзя обратиться из паскаля, в студию!
>sprintf, sscanf в ntdll.dll :)

директива varargs позволяет это сделать (начиная с D6)


 
homm ©   (2007-02-09 15:43) [128]

> Вроде не Windows ни обновления для него на KOL не написаны.
> Поэтому пример слегка неудачный.

Дык в том и дело :)


> Мне вот крайне любопытно, есть в мире системы уровня предприятия
> (за другие, увы, почти не платят), написанные на KOL :)
Угу, это все равно что говорить что Настоящие машины - это БМВ, а остальные почти не ездят.


 
Игорь Шевченко ©   (2007-02-09 15:53) [129]

MBo ©   (09.02.07 15:39) [127]

Да, только с одним ограничением, можно объявить

function sscanf (Buf, Format: PChar): Integer; cdecl; varargs; external "ntdll.dll";

но нельзя объявить

type
 Tsscanf = function (Buf, Format: PChar): Integer; cdecl; varargs;
var
 _sscanf: Tsscanf;

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


 
Игорь Шевченко ©   (2007-02-09 15:57) [130]

homm ©   (09.02.07 15:43) [128]


> Угу, это все равно что говорить что Настоящие машины - это
> БМВ, а остальные почти не ездят.


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

Кстати, а сам Фрэнк Борланд про KOL что-нибудь говорит ?


 
palva ©   (2007-02-09 16:05) [131]


> директива varargs позволяет это сделать (начиная с D6)

Интересно. Буду пробовать.


 
homm ©   (2007-02-09 16:07) [132]

> Кстати, а сам Фрэнк Борланд про KOL что-нибудь говорит ?

Не знаю. Причем прошу прощения за невежество, но даже в первый раз слышу об френке :) Хотя по фамилии вполне можно догодатся кто он такой. Я сомневаюсь что он про него что-то знает.


 
evvcom ©   (2007-02-09 16:20) [133]

> [124] Игорь Шевченко ©   (09.02.07 15:29)

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


 
evvcom ©   (2007-02-09 16:29) [134]

> [133] evvcom ©   (09.02.07 16:20)

Прочитал [127],[129]. Не знал... :)
Век живи, век учись ©


 
Игорь Шевченко ©   (2007-02-09 16:34) [135]

homm ©   (09.02.07 16:07) [132]

Это полумифический персонаж такой :) Ходят слухи, что фирма по ему названа.

Я собственно, фирму имел в виду, она про KOL чего-нибудь говорит ?


 
Psychedelic ©   (2007-02-09 17:05) [136]


> Серьезно ? Мне вот крайне любопытно, есть в мире системы
> уровня предприятия (за другие, увы, почти не платят), написанные
> на KOL :)


KOL, как инструмент для разрботки появился недавно.
Основное препятствие для распространения - это русский язык. :)


> Вот когда кушать хочется, то и средства для разработки выбираются
> наиболее удобные и отлаженные, а на размер в этом случае
> не обращают внимания.

Полностью согласен. Опять же из - за распространения.
Если навстречу  KOL пойдет  Borland, локализирует  его , изменит для большей интеграции и сделает его как отдельный инструмент в среде для создания приложений с минимальными набором - поверьте он приобретет большую популярность.  

Поговорив с вами, я понял что
Для вас чужд слоган - eсли можно сделать лучше, почему бы это не сделать?

Вот ваше : выбирай то что проверено временем, даже если это идет в ущерб  чему-то. Новые идеи? На них нет времени.

Хотя вы забываете, что когда то и ваш выбор был "непроверенным" .
Я уже говорил про консерватизм?

Если бы я был вашего возраста, может я также думал.
Хотя люди разные, Лев Толстой например в 80 лет начал учить новый язык..
Для Вас бы это не представляло практической ценности. Так как жизнь уже подходила бы к концу. И нет смысла в поисках.


 
Игорь Шевченко ©   (2007-02-09 17:17) [137]

Psychedelic ©   (09.02.07 17:05) [136]

Я вроде просил мою персону не обсуждать ибо оффтопик.


> KOL, как инструмент для разрботки появился недавно.
> Основное препятствие для распространения - это русский язык.
>  :)


Странно. VCL на английском распространился в странах СНГ и ничего, захотели, перевели. Кроме того, в форуме KOL довольно много постов на английском, значит, не такая помеха.


> Если навстречу  KOL пойдет  Borland, локализирует  его ,
>  изменит для большей интеграции и сделает его как отдельный
> инструмент в среде для создания приложений с минимальными
> набором - поверьте он приобретет большую популярность.


Сдается мне, что Borland тоже не видит практической пользы от KOL..


 
ANTPro ©   (2007-02-09 17:27) [138]

> [136] Psychedelic ©   (09.02.07 17:05)
> Основное препятствие для распространения - это русский язык.
> :)

Чего? В KOL коменты уже на русском? Сайт В. Кладова тоже по дефолту на русском?


 
ANTPro ©   (2007-02-09 17:27) [139]

> [138] ANTPro ©   (09.02.07 17:27)
> коменты

комментарии


 
SergeR ©   (2007-02-09 18:13) [140]

0.5 страницы топика в тему и 7 страниц обсуждения  KOL.

2All. Я не понимаю, в чём проблема, кому на чем удобней писать, тот на том и пишет, а доказывать ($$$$$ меряться), что то тут друг другу бессмысленно.

У каждого инструмента разработки есть свои достоинства и недостатки.
И писать что, к примеру, "KOL - это не есть хорошо", т.к. его не одобрил дядя Билли,какой то Фрэнк Борланд и дядя Федор :) - нууу не красиво как то чтоли...


 
Psychedelic ©   (2007-02-09 19:06) [141]

Основной форум на русском, основные доки также на русском втч книга..
Потихоньку включаються иностранцы, что не может не радовать...


> Странно. VCL на английском распространился в странах СНГ
> и ничего, захотели, перевели.

Анлийский международный, неужто не понятно. Русский не так распространен.


 
Loginov Dmitry ©   (2007-02-09 20:09) [142]


[37] DevilDevil ©   (08.02.07 19:54)
Delphi не компилирует "всё в одном", компилятор обладет "умным связыванием". Другое дело, если в секциях юнита Initialization или Finalization что то написано, то этот код компилируется. Именно такой "эффект" появляется, когда просто дописываешь в юзес SysUtils и экзешник увеличивается на 25 кило.


Связывание может оно и умное, однако полностью неработоспособно при линковке виртуальных функций. Из-за этого в exe-шник линкуется куча всяческих ненужных функций, которые ниоткуда никогда не вызываются. Даже простое упоминание класса с перегруженными функциями в любом месте кода заставит линкер включить код всех этих функций в приложение. Поэтому операциями is и as нужно пользоваться с осторожностью. Smart Linker. Что поделаешь!


 
ZiTRaX ©   (2007-02-09 22:55) [143]

Удалено модератором


 
homm ©   (2007-02-10 14:51) [144]

ты [48] смотрел? libctiny в нете искал? мыло, на которое можно было бы скинуть проект в 1,5 кб написал?
Чего тогда ноешь?


 
homm ©   (2007-02-10 14:52) [145]

Выложить результаты тестов, обещаные Игорю вчера не удалось, по понятным причинам - форум лежал. Но они (результаты) есть, седня выложу.


 
Celades ©   (2007-02-10 15:33) [146]

у меня минимум получалось 600 байт в VS


 
homm ©   (2007-02-10 16:11) [147]

> у меня минимум получалось 600 байт в VS

Ты хочеш сказать что не использовал никакие сторонние утилиты, не срезал сегиенты, все с помощью библиотек и опций компилятора?


 
Celades ©   (2007-02-10 16:15) [148]


> Ты хочеш сказать что не использовал никакие сторонние утилиты,
>  не срезал сегиенты, все с помощью библиотек и опций компилятора?
>

конечно. только настройки компилятора и линкера


 
homm ©   (2007-02-10 20:23) [149]

Итак, как и обещал...
Делпхи-5, кол-2.51, вин-ХПсп2

"Голая" форма
---------------------------------------------------------------------------------
|Категория                  | VCL           | KOL 2.51        | KOL 2.51 with   |
|                           |               |                 | sys replace     |
---------------------------------------------------------------------------------
|размер ехе-файла, кб       | 286           | 24              | 13.5            |
|виртуальная память, кб     | 456           | 408             | 336             |
|реальная память, кб        | 2380          | 1808            | 1628            |
|время запуска, мСек        | 46 (*)        | 46 (*)          | 46 (*)          |
---------------------------------------------------------------------------------
* - Значения прыгали на одинаковые дискретные величины, приведено минимальное

Небольшое количество элементов на форме
---------------------------------------------------------------------------------
|Категория                  | VCL           | KOL 2.51        | KOL 2.51 with   |
|                           |               |                 | sys replace     |
---------------------------------------------------------------------------------
|размер ехе-файла, кб       | 325           | 31              | 20.5            |
|виртуальная память, кб     | 484           | 436             | 364             |
|реальная память, кб        | 2556          | 2028            | 1872            |
|время запуска, мСек        | 78 (*)        | 62 (*)          | 62 (*)          |
---------------------------------------------------------------------------------
* - Значения прыгали на одинаковые дискретные величины, приведено минимальное

2 формы, чуть большее количество элементов
---------------------------------------------------------------------------------
|Категория                  | VCL           | KOL 2.51        | KOL 2.51 with   |
|                           |               |                 | sys replace     |
---------------------------------------------------------------------------------
|размер ехе-файла, кб       | 392           | 35,5            | 25              |
|виртуальная память, кб     | 504           | 476             | 468             |
|реальная память, кб        | 2888          | 2448            | 2420            |
|время запуска, мСек        | 93 (*)        | 78 (*)          | 78 (*)          |
---------------------------------------------------------------------------------
* - Значения прыгали на одинаковые дискретные величины, приведено минимальное


ЗЫ. Судя по предпросмотру в дмклиенте таблички разъедутся :) Ну что-ж, посмотрим:)


 
ANTPro ©   (2007-02-10 21:49) [150]

> [149] homm ©   (10.02.07 20:23)

Как насчет архивчика с EXE/Сырцами приложить? Тож хочу потестить %)


 
Psychedelic ©   (2007-02-10 22:06) [151]


> Как насчет архивчика с EXE/Сырцами приложить? Тож хочу потестить
> %)


Тут и без тестов понятно кто выигрывает. Если хотя бы раз запустить прогу на Kol .


 
vuk ©   (2007-02-10 22:16) [152]

Одна форма... Две формы... Фигня это все. Ну да, на программках типа "Hello World" пальцы гнуть легко, только это все детский сад, т.к. смысла в этом "Hello World" - ноль. В серьезных проектах формы - сотнями. И объемы зависят уже не от того, какой виртуальный метод прилинковало, а от того, какая внутри функциональность.


 
ANTPro ©   (2007-02-10 22:16) [153]

> [151] Psychedelic ©   (10.02.07 22:06)

Я это и так знаю.


 
homm ©   (2007-02-10 22:19) [154]

>
> Как насчет архивчика с EXE/Сырцами приложить? Тож хочу потестить %)

http://homm86.narod.ru/KOLvsVCL.rar

зы тестировал бы только кол - архивчик в 8 раз меньше был бы ;)


 
homm ©   (2007-02-10 23:16) [155]

Готов сам себе посыпать голову пеплом :(
Просто ошеломляющие для меня результаты при использованием 20-и форм с более менее большим количечвом элементов...

---------------------------------------------------------------------------------------------------
|Категория                  | VCL           | KOL 2.51        | KOL 2.51 with   | KOL 2.51 with   |
|                           |               |                 | sys replace     | GRush Controls  |
---------------------------------------------------------------------------------------------------
|размер ехе-файла, кб       | 516           | 120             | 109             | 142             |
|виртуальная память, кб     | 1920          | 3036            | 3056            | 7344            |
|реальная память, кб        | 4696          | 5332            | 5038            | 9612            |
|время запуска, мСек        | 769           | 609             | 625             | 1200            |
|объекты GDI                | 263           | 369             | 369             | 1293            |
|объекты USER               | 1153          | 1282            | 1282            | 1286            |
---------------------------------------------------------------------------------------------------
* - Значения прыгали на одинаковые дискретные величины, приведено минимальное


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

Так-же я решил посмотреть сколько будет весть "тяжелый" интерфейс на КОЛе (спасибо Владимиру за его модуль toGRush, с ним не составило труда проделать этот тест). По-моему - впролне приличные цифры для 20-и то форм со средним набором контроллов...
Счас пойду искать оригинальные RBCotnrols под VCL, которые и были протатипом GRush... Тож охото поглядеть...
Вот уж что действительно странно


 
homm ©   (2007-02-10 23:37) [156]

Да уж... Вот тут кол реабилитируется, благодоря моим контроламм, по сравнению не моими VCL контролами, у которых еще и функционал поскромнее
:)

-------------------------------------------------------------------------------------------------
|Категория                  | VCL           | VCL with      | KOL 2.51        | KOL 2.51 with   |
|                           |               | RBControls    |                 | GRush Controls  |
-------------------------------------------------------------------------------------------------
|размер ехе-файла, кб       | 516           | 773           | 120             | 142             |
|виртуальная память, кб     | 1920          | 25460         | 3036            | 7344            |
|реальная память, кб        | 4696          | 28596         | 5332            | 9612            |
|время запуска, мСек        | 769           | 5600          | 609             | 1200            |
|объекты GDI                | 263           | 1873          | 369             | 1293            |
|объекты USER               | 1153          | 1379          | 1282            | 1286            |
-------------------------------------------------------------------------------------------------


Хотя конечно это кроме как о кривой реализации RB контролов мало о чем говорит :(


 
homm ©   (2007-02-10 23:40) [157]

архив http://homm86.narod.ru/KOLvsVCL.rar тоже обновил. если комунитьбудь интересно.


 
ANTPro ©   (2007-02-10 23:46) [158]

Рекламой стало попахивать %)

Чем меряешь?


 
Celades ©   (2007-02-10 23:47) [159]


> какой виртуальный метод прилинковало

слабо чувствую связь...


 
vuk ©   (2007-02-10 23:55) [160]

to Celades ©   (10.02.07 23:47) [159]:
>слабо чувствую связь...
Зря. На больших проектах имеем следующую ситуацию - большая часть кода библиотек, которая в мелких приложениях не используется, начинает быть так или иначе полезной. Плюс код, отвечающий за возможности приложения (и использующийся на 100% по определению) имеет уже больший объем, чем код "генофонда". Так что на 20 мегабайтном исполняемом файле уже давно безразлично, что там есть, допустим, мегабайт "мертвого" кода.


 
Celades ©   (2007-02-11 00:02) [161]


> vuk ©   (10.02.07 23:55) [160]

а виртуальные методы тут причем? Что значит "мертвый код"?


 
Чапаев ©   (2007-02-11 00:04) [162]

Заглянул-таки в ветку... А прикольный вы тут холивар развели! %-)

Использование VCL стимулирует производителей жёстких дисков, и использование KOL -- производителей оперативки. А C++ и вовсе -- пакистанскую наркомафию. Вокруг масонский заговор, война проиграна, я отправляюсь спать.


 
vuk ©   (2007-02-11 00:16) [163]

to Celades ©   (11.02.07 00:02) [161]:
>а виртуальные методы тут причем?
Читайте ветку.

>Что значит "мертвый код"?
Код, который в процессе работы не исполняется и не будет исполняться никогда.


 
homm ©   (2007-02-11 01:13) [164]

> Рекламой стало попахивать %)
Это ос чего бы? :) Если бы я КОЛ рекламировал, я бы результаты предроследнего теста не приводил :)
А в кривости RBControlo"лов всегда был уверен, я тут не при чем совершенно ;)


> Чем меряешь?

виртуальная память - taskmgr.exe
реальная память - taskmgr.exe
объекты GDI - taskmgr.exe
объекты USER - taskmgr.exe
время запуска - Sysinternals Process Explorer
размер ехе-файла - explorer.exe :)


 
Anatoly Podgoretsky ©   (2007-02-11 07:54) [165]

> homm  (11.02.2007 01:13:44)  [164]

Из твоей таблицы, если беспокоиться об памяти, а о ней беспокоиться надо в первую очередь, а не о диске, то КОЛ подходит в первую очередь только для простых приложений.


 
GrayFace ©   (2007-02-11 11:55) [166]

evvcom ©   (09.02.07 12:00) [62]
Может я не прав, но, думаю, речь опять идет не о возможностях, а об удобствах. В конце концов все эти шаблоны преобразовываются к какому-то коду, который точно так же можно написать и на Паскале без "функторов", "экстракторов" и "бустов" :)

По возможностям, разве что, написание драйверов можно отметить, да множественное наследование. Хотя и их потенциально можно достич. Все-таки важнее RAD-овость, удобства.

wicked ©   (09.02.07 13:10) [72]
отсутствие finally в си++ - это не причина, а следствие...

Следствие чего? Не смарт пойнтеров же!

palva ©   (09.02.07 13:33) [81]
На си можно написать такую функцию в составе dll, к которой нельзя обратиться из паскаля. На паскале нельзя написать такую функцию, к которой нельзя обратиться из си.

Не согласен. Через Асм можно обратиться к любой функции, а без Асма из VC не получится обратиться к паскалевским register. (хотя, если использовать не родной компилятор может и выйдет)

homm ©   (09.02.07 14:25) [106]
2 - виртуальные методы - самая большая дыра для "мертвого кода".

А при чем тут виртуальные методы? Их можно не делать в классах, и можно делать в object-ах.

Psychedelic ©   (09.02.07 15:28) [123]
Дык я вроде вам уже ответил, причем популярно - о том как размер сказывается на конечных пользователях, на примере Windows, обновлений Windows. Неужто этого мало???

Сложно придумать более неудачный пример. 300-500Kb, выигрываемые при переходе с VCL на KOL нчиего не значат в таких махинах, как Windows.

Игорь Шевченко ©   (09.02.07 16:34) [135]
Это полумифический персонаж такой :)

Почти как Дмитрий О., упомянутый в этой ветке. :)

Psychedelic ©   (09.02.07 17:05) [136]
Почему-то мне 19 лет, консерватизм и не пахнет, но я согласен с Игорем по этому вопросу.

Loginov Dmitry©   (09.02.07 20:09) [142]
Даже простое упоминание класса с перегруженными функциями в любом месте кода заставит линкер включить код всех этих функций в приложение.

Как сказать. Объявление переменной не заставит. И обращение к ее Free в финализации - тоже.

homm ©   (10.02.07 23:16) [155]
А если сравнить с табличкой для 2 форм, то в размере КОЛовские ехе"шники прибавили почти столько же, сколько VCL.

Anatoly Podgoretsky ©   (11.02.07 7:54) [165]
Из твоей таблицы, если беспокоиться об памяти, а о ней беспокоиться надо в первую очередь, а не о диске

Более чем спорно. Размер сразу проявляет себя в траффике, а память... Для маленьких прог приоритет размера очевиден, а для больших будет ли это потребление памяти существенным?

В общем, для маленьких бесплатных и условно бесплатных программок KOL может быть полезен.


 
Loginov Dmitry ©   (2007-02-11 12:19) [167]

> Как сказать. Объявление переменной не заставит. И обращение
> к ее Free в финализации - тоже.


Но это таки очень частные случаи.
Если вы всегда применяете Free без Create, то об отсутствии "мертвого" кода можете быть спокойны :))


 
evvcom ©   (2007-02-12 08:59) [168]

> [166] GrayFace ©   (11.02.07 11:55)
> разве что, написание драйверов можно отметить

И драйвер можно до D3 включительно написать :)
Но опять же это уже ограничения среды, а не языка.

> [166] GrayFace ©   (11.02.07 11:55)
> Не согласен. Через Асм можно обратиться к любой функции,
> а без Асма из VC не получится обратиться к паскалевским
> register. (хотя, если использовать не родной компилятор
> может и выйдет)

Золотые слова :) Я что-то про отсутствие register вызова в VC++ забыл. Хотя это опять же ограничения не языка. :)


 
palva ©   (2007-02-12 10:01) [169]

> Я что-то про отсутствие register вызова в VC++ забыл
В борландовском компиляторе имеется спецификатор __fastcall


 
Игорь Шевченко ©   (2007-02-12 10:36) [170]

homm ©   (10.02.07 20:23) [149]

Чудес, стало быть, не произошло. И мне до сих пор непонятно, зачем народу нужен KOL. Зачем Кладову нужен - понятно - и интересно и познавательно, да и руку набить опять же. Но, как я уже говорил, на мелких утилитах особенно хлебушка не пожуешь, а целесообразность применения подобной технологии (именно технологии, так как от VCL это программирование все-таки отличается) в более или менее немелких проектах мне не видна.
Увы.


 
evvcom ©   (2007-02-12 11:47) [171]

> [169] palva ©   (12.02.07 10:01)

Да, я в курсе. Но я-то про MS, в нем я такого не помню. :)


 
Saverem   (2007-02-12 12:07) [172]

evvcom ©   (12.02.07 11:47) [171]

>Да, я в курсе. Но я-то про MS, в нем я такого не помню. :)

А суслик то есть :)

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/html/_core___fastcall.asp


 
Psychedelic ©   (2007-02-12 13:50) [173]


> Чудес, стало быть, не произошло. И мне до сих пор непонятно,
>  зачем народу нужен KOL. Зачем Кладову нужен - понятно -
>  и интересно и познавательно, да и руку набить опять же.
>  Но, как я уже говорил, на мелких утилитах особенно хлебушка
> не пожуешь, а целесообразность применения подобной технологии
> (именно технологии, так как от VCL это программирование
> все-таки отличается) в более или менее немелких проектах
> мне не видна.
> Увы.


Да от VCL - отличается, - но это специфика языка Delphi. Это язык, и если вы его знаете, то никаких проблем при  написании KOL проекта не возникнет.
Еще раз повторю, не все пишут большие проекты, маленьких намного больше чем больших.  Думаю с этим вы согласитесь.  + крэки на vcl писать?
Каждый инструмент для чего то нужен. И ровнять их под одну дудку, здесь под вашу, просто  нельзя.


 
Игорь Шевченко ©   (2007-02-12 14:30) [174]

Psychedelic ©   (12.02.07 13:50) [173]


> Еще раз повторю, не все пишут большие проекты, маленьких
> намного больше чем больших


Ошибаешься. Маленькие в большом количестве просто не нужны.


> + крэки на vcl писать?


Нет, сказать детству в одном месте, чтобы прекратило играть и не писать их вовсе.


> Да от VCL - отличается, - но это специфика языка Delphi.
>  Это язык, и если вы его знаете, то никаких проблем при
>  написании KOL проекта не возникнет.


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


> И ровнять их под одну дудку, здесь под вашу, просто  нельзя.


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


 
Думкин ©   (2007-02-12 14:33) [175]


> + крэки на vcl писать?

крындец. Желательно на подставке с УК.


 
Игорь Шевченко ©   (2007-02-12 14:43) [176]

homm ©   (10.02.07 22:19) [154]


> http://homm86.narod.ru/KOLvsVCL.rar


Я сильно извиняюсь, а у вас разделение на .pas и .inc так и осталось ? В коде очень трудно разбираться в этом случае, привык к паскалевской парадигме, что в одном модуле все в одном месте.


 
Psychedelic ©   (2007-02-12 17:29) [177]


> Ошибаешься. Маленькие в большом количестве просто не нужны.


Нужны большие в большом количестве? :)
Слушайте, вы какой-то бред несете.

- видишь суслика в траве?
- Нет
- А он там есть.

Также и у вас.


 
Игорь Шевченко ©   (2007-02-12 17:35) [178]

Psychedelic ©   (12.02.07 17:29) [177]


> Нужны большие в большом количестве? :)


Ну да. Именно так. Оглянись вокруг.


 
Psychedelic ©   (2007-02-12 18:26) [179]

Видимо у нас разные критерии к большим и маленьким.


 
homm ©   (2007-02-12 22:30) [180]

> Я сильно извиняюсь, а у вас разделение на .pas и .inc так
> и осталось ? В коде очень трудно разбираться в этом случае,
> привык к паскалевской парадигме, что в одном модуле все
> в одном месте.

Да разделяется, но копатся там нет никакого смыла так как тот код MCK генерит. Вы же не лазите в исходники DFM файлов?


 
evvcom ©   (2007-02-13 08:45) [181]

> [172] Saverem   (12.02.07 12:07)

Ну, молодцы, что еще сказать? За конкурентами следят :)


 
Игорь Шевченко ©   (2007-02-13 11:32) [182]

homm ©   (12.02.07 22:30) [180]


> Да разделяется, но копатся там нет никакого смыла так как
> тот код MCK генерит. Вы же не лазите в исходники DFM файлов?
>


Всякое бывает, иногда и туда приходится залазить. Но у исходников dfm есть одно полезное свойство - они не исполняются и отладчиком точки останова там ставить не требуется, например.

Я все к чему клоню - для серьезных проектов, особенно за которые деньги платят, размер - это настолько неважная составляющая, что на ее просто игнорируют. Гораздо важнее читабельный и сопровождабельный код, ну и функциональность, разумеется. А для мелких фриварных/шароварных утилит - что же, может, KOL и вполне подходит, но, на мой взгляд, все равно неудобно. Зря вы от слова class отказались :)


 
Psychedelic ©   (2007-02-13 17:17) [183]


>  А для мелких фриварных/шароварных утилит - что же, может,
>  KOL и вполне подходит, но, на мой взгляд, все равно неудобно


Ну вот, а столько говорили. ЧТД.

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


 
Игорь Шевченко ©   (2007-02-13 17:24) [184]

Psychedelic ©   (13.02.07 17:17) [183]


> Большие проекты разрабатывают группами. Один чел никогда
> не будет его разрабатывать. Ну а здесь KOL неподходит -
> из-за того что многие привыкли к VCL, да и так глубоко не
> знают язык (к примеру чем отличается процедура или функция
> от метода).


А как же они разрабатывают, если не знают ?


 
ferr ©   (2007-02-13 17:35) [185]

> не знают язык (к примеру чем отличается процедура или функция
> от метода).

Что значит чем отличается? С точки зрения программиста они ничем особо и не отличаются.. Понимать что неявно передаётся указатель по-поему достаточно.. А вот знать какими механизмами и с каким смещением оно передаётся по-моему вредно. ;-)


 
Psychedelic ©   (2007-02-13 19:37) [186]


> А как же они разрабатывают, если не знают ?


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


 
homm ©   (2007-02-13 21:57) [187]

> Всякое бывает, иногда и туда приходится залазить. Но у исходников
> dfm есть одно полезное свойство - они не исполняются и отладчиком
> точки останова там ставить не требуется, например.

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

Всякое бывает, и тут у КОЛ появляется одно преимущество - если уж преспичело в исходный текст залезть, по которому форма создается, то его еще можно и отладить.

Вот так мне нравится :) а то что Вы написал, извините лишено здравого смысла


 
Игорь Шевченко ©   (2007-02-13 22:52) [188]

homm ©   (13.02.07 21:57) [187]

А. Я понял. Создание контролов в KOL происходит динамически при создании формы, идею с DFM вы тоже похоронили ? :)
Воля ваша.

А про точки останова я почему говорил - неудобно их в .inc"ах расставлять.


 
Игорь Шевченко ©   (2007-02-13 22:55) [189]

Psychedelic ©   (13.02.07 19:37) [186]


> Догадайтесь сами, вы же умный.


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


 
Суслик ©   (2007-02-13 23:20) [190]

свои 5 коп.
1. я пишу в дельфи.
2. пишу без dfm
3. компоненты создаю кодом
4. на размер не обращаю внимания
5. большее всего забочусь о функционале, документированности и возможностях сопровождения.

хорошая программа - это нужная программа (с) я


 
vuk ©   (2007-02-14 00:35) [191]

to Psychedelic ©   (13.02.07 17:17) [183]:
>Большие проекты разрабатывают группами. Один чел никогда не будет его
>разрабатывать. Ну а здесь KOL неподходит - из-за того что многие >привыкли к VCL, да и так глубоко не знают язык (к примеру чем
>отличается процедура или функция от метода).

Смелое заявление. Очень смелое. У Вас самый большой проект в разработке какой был, если не секрет? Ну или хотя бы видели Вы в глаза хоть один большой проект?


 
Psychedelic ©   (2007-02-14 15:26) [192]


>  Ну или хотя бы видели Вы в глаза хоть один большой проект?


:)
Да, прикинь какой прорыв?
Вот например известные проекты, разных типов : Delphi, Photoshop, Frutyloops, QTP, Sandra, антивирусное ПО итд...

Один человек не потянет такие большие проекты.


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


Ага, в лужу сел . Аж два раза. :)
Мне просто стало не интересно с вами дискутировать, т.к. вы на протяжении всей дискусии не хотите соглашаться нисчем что идет с моей стороны, даже с абсолютно очевидными вещами. И разделили тему на ЭТО ПЛОХОЕ и не подходит мне, а ЭТО ХОРОШЕЕ т.к. подходит мне.
Здесь  сразу видна только субъективная точка зрения, причем абсолютно изолированная.  Ну и плюс вы полностью предсказуемы. Извините.
Когда человек заинтересован не в том, чтобы что-то понять, а только в том чтобы любыми средствами представить себя в выгодном свете (вы же мастер :)), то и пытаться объяснить ему что-либо бессмысленно.


 
Игорь Шевченко ©   (2007-02-14 15:29) [193]

Psychedelic ©   (14.02.07 15:26) [192]


> Мне просто стало не интересно с вами дискутировать


Я же не заставляю, верно ?


 
Psychedelic ©   (2007-02-14 15:37) [194]


> А. Я понял. Создание контролов в KOL происходит динамически
> при создании формы, идею с DFM вы тоже похоронили ? :)
> Воля ваша.


Уже 5 лет знаете KOL ? :)
Видимо 5 лет назад вы услышали эту аббревиатуру. И помните ее до сих пор.
Как можно спорить с человеком если он даже не видел оспариваемый вопрос?


 
Psychedelic ©   (2007-02-14 15:40) [195]


> Как можно спорить с человеком если он даже не видел оспариваемый
> вопрос?


Перефразирую,- как можно спорить с человеком о преимуществах KOL, если он не знает что это такое?


 
Игорь Шевченко ©   (2007-02-14 15:45) [196]

Psychedelic ©   (14.02.07 15:40) [195]

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


 
Psychedelic ©   (2007-02-14 16:52) [197]


> да и вообще, мы находимся в разных весовых категориях я не занимаюсь созданием мелких утилит, для которых важен
> размер.


как я и говорил. Вы судите по нужным вам потребностям, а не объективно.
Зачем тогда спорили?


 
Игорь Шевченко ©   (2007-02-14 17:01) [198]

Psychedelic ©   (14.02.07 16:52) [197]

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


 
Psychedelic ©   (2007-02-14 17:29) [199]


> потому что практической пользы от этого никому


Это только потому-что ВАМ негде это применить.
Т.к.

> я не занимаюсь созданием мелких утилит, для которых важен
>
>  размер.


 
Суслик ©   (2007-02-15 00:14) [200]

эх, блин, прямо как я молодой спорит. Молодец!

ЗЫ. Оффтоп, конечно, уж извините.


 
Германн ©   (2007-02-15 02:27) [201]


> Суслик ©   (15.02.07 00:14) [200]
>
> эх, блин, прямо как я молодой спорит. Молодец!

А с каких это пор ты, Дима, себя записал в старики?
P.S.
Лично мне, уже давно надоело, что сей топик постоянно "мозолит" глаза :(


 
homm ©   (2007-02-15 06:30) [202]

> Лично мне, уже давно надоело, что сей топик постоянно "мозолит"
> глаза :(
И что-О??? У тебя наверняка в сетки есть сбственный форум, там нет такой темы.


 
vuk ©   (2007-02-15 10:36) [203]

to Psychedelic ©   (14.02.07 15:26) [192]:
>Вот например известные проекты, разных типов : Delphi, Photoshop,
>Frutyloops, QTP, Sandra, антивирусное ПО итд...
"...и много других страшных слов."

>Один человек не потянет такие большие проекты.
Вопрос не о том, что один человек их потянет. Вопрос в том, видели ли вы разработчиков этих проектов, для того, чтобы делать выводы об их умственных способностях. Скорее всего нет. Мсье теоретик? :)


 
Psychedelic ©   (2007-02-16 00:32) [204]


> Вопрос не о том, что один человек их потянет. Вопрос в том,
>  видели ли вы разработчиков этих проектов, для того, чтобы
> делать выводы об их умственных способностях. Скорее всего
> нет. Мсье теоретик? :)


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


 
vuk ©   (2007-02-16 00:43) [205]

to Psychedelic ©   (16.02.07 00:32) [204]:
>Вопрос задан неккоректно.
Вы сами написали список. Вас никто за язык не тянул.

>Покажите мне строчку где я писал об умственных способностях
>разработчиков больших проектов.

Да легко:
"...многие привыкли к VCL, да и так глубоко не знают язык (к примеру чем отличается процедура или функция от метода)."

И вот это Вами преподносится как причина, по которым KOL для больших проектов не подходит.


 
mdw ©   (2007-02-16 11:48) [206]

Ну раз уж меня тут упомянули, то тоже выскажусь.


> Игорь Шевченко ©   (09.02.07 14:47) [111]
> ...
> А с чего я взял - с того, что на KOL я не видел программ,
>  за которые денег платят достаточных для еды.
> ...
> Дело в том, что платят обычно не за те приложения, в которых
> важен размер. Тут довольно много программистов на Delphi,
>  они могут рассказать, за какие примерно приложения платят
> денег на еду. Реализовывать подобные проекты на KOL - лучше
> сразу застрелиться :)
> ....
> Серьезно ? Мне вот крайне любопытно, есть в мире системы
> уровня предприятия (за другие, увы, почти не платят), написанные
> на KOL :)
>


Я видел программы уровня предприятия на KOL, сам и делал. И платят очень даже прилично:) И кстати "застрелиться" при реализации мыслей не возникало! Согласен, что реализовывать БД с помощью KOL, занятие довольно геморойное, но во всем остальном разницы не вижу, даже проще, по моему.
Теперь о реальных плюсах из своего опыта. Во первых размер. Система лежит, и соответственно запускается с сервера, и таже при гигабитной сетке и мощных серверах (на железе у нас не экономят), выигрыш при запуске очень даже существенный. Но это так, к слову, пару секунд роли не играют. А вот второй выигрышь гораздо существенней. Это скорость выполнения вычислительных задач. Могу здесь с уверенностью говорить, т.к. изначально использовалась VCL. После перевода проекта на рельсы KOL, производительнось выросла раза в 1.5. Уточню, речь идет именно о вычислениях (оптимизационная задача), т.е в большом количестве используются всевозможные списки, обработка строк и т.д. Если кто-то скажет, что не принципиально, то даже выигрыш в 10 минут * на несколько запусков, очень даже существенен за полчаса до закрытия метро.:)
Недавно еще с другой ситуацией столкнулся. Есть такая прога Keyboard Maniac, на досуге взялся несколько плагинов под нее сваять. Изначально написал на KOL, потом по убедительной просьбе автора КМ, перевел на VCL. Вот где я "интим" поимел! Изменить стандартное поведение некоторых компонентов, ну очень сложно, а иногда и невозможно. Для меню, так вообще, пришлось все обработчики свои делать, хотя в KOL тоже самое делается быстро и просто, "легким движением". Что ни говорите, но все же реализация KOL намного прозрачнее VCL.
Есть еще один плюс - использование с FreePascal. Разрабатываем в Delphi, компилим в FP. А когда FP будет полноценно под WinCE компилить, то вобще будет счастье.:)


 
mdw ©   (2007-02-16 12:00) [207]


>Игорь Шевченко ©
>  Программисты, промежду прочим, если не для собственного
> развлечения, пишут программы для того, чтобы они людям пользу
> приносили.

Откуда этот пафос? Что то новенькое, я лично, если не для развлечения, то пишу программы исключительно для своей пользы. А приносят они пользу или нет и кому приносят, мне честно говоря по "барабану". Платили бы, вот только за бесполезные программы редко платят!:)


 
Игорь Шевченко ©   (2007-02-16 12:28) [208]

mdw ©   (16.02.07 11:48) [206]


> А вот второй выигрышь гораздо существенней. Это скорость
> выполнения вычислительных задач. Могу здесь с уверенностью
> говорить, т.к. изначально использовалась VCL. После перевода
> проекта на рельсы KOL, производительнось выросла раза в
> 1.5. Уточню, речь идет именно о вычислениях (оптимизационная
> задача), т.е в большом количестве используются всевозможные
> списки, обработка строк и т.д.


Бред, уж ты меня извини. Какое отношение имеет библиотека компонентов к вычислительным задачам ?


> Я видел программы уровня предприятия на KOL, сам и делал.
>  


Ссылочкой не поделишься ? Я тоже хочу посмотреть


 
Loginov Dmitry ©   (2007-02-16 15:03) [209]

> Это скорость выполнения вычислительных задач. Могу здесь
> с уверенностью говорить, т.к. изначально использовалась
> VCL. После перевода проекта на рельсы KOL, производительнось
> выросла раза в 1.5. Уточню, речь идет именно о вычислениях
> (оптимизационная задача), т.е в большом количестве используются
> всевозможные списки, обработка строк и т.д.


Какое отношение вычислительные задачи имеют ко всяким там спискам, строкам?
Очень сложно высказывание [206] принимать серьезно.


 
mdw ©   (2007-02-16 15:11) [210]


> Бред, уж ты меня извини. Какое отношение имеет библиотека
> компонентов к вычислительным задачам ?

Ну почему же бред? Если конечно под вычислительными задачами рассматривать чистую арифметику, то да, от процессора зависит. А вот если гонять списки  в больших количествах, да строки, то очень даже имеет. У Кладова своя реализация всего этого. Сылочкой не поделюсь, не коробочный продукт, для внутреннего пользования. Однако факт, работа предприятия базируется как раз на софте написанном на KOL.
А вообще то, дурацкий спор, что лучше С или Pascal, KOL или VCL, курица или яйцо?


 
Игорь Шевченко ©   (2007-02-16 15:25) [211]

mdw ©   (16.02.07 15:11) [210]


> А вот если гонять списки  в больших количествах, да строки,
>  то очень даже имеет. У Кладова своя реализация всего этого.
>


У Кладова своя реализация строк или списков, которая неприменима нигде, кроме проектов KOL ? Я наверное сильно отстал от жизни


 
Psychedelic ©   (2007-02-16 16:24) [212]

У Кладова своя реализация строк или списков, которая неприменима нигде, кроме проектов KOL

Про вторую часть фразы:
С чего вы это взяли? Действительно если взять VCL list box и KOL LV   - kol lv будет быстрее. Проверьте.


 
Sapersky   (2007-02-16 16:57) [213]

Что до списков, то особых отличий в реализации KOL"овского TList от стандартного не увидел. Ну, кое-что на ассемблере написано, ну, несколько процентов за счёт этого можно выжать. Куда бОльший эффект даёт использование FastMM (например, перекомпиляция BDS или TurboDelphi) - по моим тестам получается раза в 2 быстрее. StringList не проверял, но думаю, он тоже ускоряется. А Кладовский TFastStrListEx с хранением всех строк в одном буфере - это, конечно, замечательно, но только для read-only списков (в смысле, при попытке модификации произвольной строки получим такие тормоза, что стандартному TStringList и не снились).


 
Игорь Шевченко ©   (2007-02-16 17:00) [214]

Psychedelic ©   (16.02.07 16:24) [212]

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


 
Sapersky   (2007-02-16 17:10) [215]

Куда бОльший эффект даёт использование FastMM (например, перекомпиляция BDS или TurboDelphi) - по моим тестам получается раза в 2 быстрее

То есть, возможно, в этом есть заслуга улучшенного компилятора и оптимизированной RTL (System.Move и пр.), но в основном, думаю, FastMM.


 
mdw ©   (2007-02-16 18:38) [216]


> Игорь Шевченко ©

Вы безусловно правы!!! И последнее слово всегда за Вами.
P.S. Нам все равно, а Вам приятно.


 
Psychedelic ©   (2007-02-16 19:49) [217]


> > Игорь Шевченко ©
>
> Вы безусловно правы!!! И последнее слово всегда за Вами.
>  
> P.S. Нам все равно, а Вам приятно.


:)



Страницы: 1 2 3 4 5 6 вся ветка

Форум: "Прочее";
Текущий архив: 2007.03.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 1.26 MB
Время: 0.049 c
2-1171724058
Norfolk
2007-02-17 17:54
2007.03.11
TPageControl запись в поле Edit на второй вкладке.


4-1162327378
wp2
2006-10-31 23:42
2007.03.11
Как в библиотеке узнать какая ее вызвала программа?


2-1171975449
Познающий
2007-02-20 15:44
2007.03.11
Доступ к ресурсам


2-1171789338
DTR
2007-02-18 12:02
2007.03.11
Ошибка!!! Word


1-1168597840
i-am-vladko
2007-01-12 13:30
2007.03.11
SavedCheckBox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский