Состоялся (http://lazarus.freepascal.org/index.php/topic,12589.0.html) релиз новой стабильной версии интегрированной среды разработки Lazarus 0.9.30 (http://lazarus.freepascal.org), основанной на компиляторе FreePascal 2.4.2 (http://freepascal.org/). Готовые установочные пакеты с Lazarus для различных платформ и архитектур можно загрузить здесь (http://sourceforge.net/projects/lazarus/files/).
Из изменений в Lazarus 0.9.30 (http://wiki.lazarus.freepascal.org/Lazarus_0.9.30_release_notes) можно отметить:
- LCL:
- Поддержка буфера обмена для платформы Windows CE;
- Интерфейсы GTK2 и GTK1 разделены. GTK1 более не поддерживается,
но сторонние патчи все еще принимаются;
- fpGUI: LCL-интерфейс к fpGUI теперь поддерживает все компоненты со стандартной страницы;
- Qt: реализована поддержка Haiku
- Размещение и автоматический размер компонентов приведен к единообразному виду для всех наборов виджетов, улучшено межплатформенное отображение сложных форм;
- Добавлена ...URL: http://lazarus.freepascal.org/index.php/topic,12589.0.html
Новость: https://www.opennet.ru/opennews/art.shtml?num=30063
Господи, кто-то еще этим пользуется?
Delphi-мигранты?
> Господи, кто-то еще этим пользуется?Конечно пользуются. И килобаксы на этом зарабатывают. В то время, как доблестные Анонимусы пишут систеиы, уровня R/3 на ассемблере.
Дык, Си тяжеловат для студентов, не говоря уже про C++, а всякие питоны у нас в стране не больно известны - их не скачаешь с торрентов в ultimate edition с кряком
>p.S. Линия Виртовских языков классная, простая, логичная. Мля, ну когда же создадут компилеры для модул/оберонов с достаточным количеством библиотек?это вы кого спрашиваете? неужто сишнегов?
да ещё с этим:
>p.S. Линия Виртовских языков классная, простая, логичная.вот когда вы собсно это всё сделаете то?
> Конечно пользуются. И килобаксы на этом зарабатывают.К счастью вымирают уже. Потому что нормальный софт на дельфях найти - нереально почти. Дельфи - это 99% гарантия того что программа на ней - отборный образец говнокода и быдлокодерских технологий ака "во, напрограммил: расставил кнопки на форме".
Ну я пользуюсь:
http://lazarus.su/downloads/explorer-picture-resize.html
http://lazarus.su/downloads/simplecalc.html
Еще как пользуются!!!
Если быстро что-то мелкое кроссплатформеное - самое-то.
Года 4 назад нужно было скомпилить какую-то либу из дельфийского исходника. Искать диск с ворованным дельфи7 было лень, скачал лазарус, поковырял, скомпилил, подумал круто получилось. С си-шной прогой нифига не заработало, но сам Лазарус очень порадовал.
Два года назад уже на линухе потребовалось скомпилить какую-то прогу из дельфийского исходника. Поковырял, обплевался, нифига не заработало.
Сейчас даже не знаю как на это реагировать.
В этой версии серьезно доработали конвертор Delphi проектов
> Два года назад уже на линухе потребовалось скомпилить какую-то прогу из дельфийского исходника. Поковырял, обплевался, нифига не заработало.А вообще прямой конверсии с дельфи даже для форточек не всегда получится даже если не используются платформенно специфичные вещи. Сейчас у них даже часть компонентов уже разная, построитель графиков например.
Кстати если вы думаете что ц++ код всегда легко портируется так это не так.
> Сейчас даже не знаю как на это реагировать.
Никак. Продолжать и дальше писать суперкод типа fuck[{{}}]<срл>>>^&**p(_btgbr)====?*№" на радость 294юзеру который от него тащиться будет. Впрочем нельхя не признать что усовершенствования паскаля потихоньку тянут его синтаксис в ту же сторону.
> на радость 294юзеру который от него тащиться будет.Если что я изучал паскаль когда-то ;). Он хорош для обучения - приучит как делать не надо, научит хорошему, если конечно повезет и вас будет обучать нормальный программист, а не специально обученная обезьяна. Правда, это больше касалось классического паскаля. Дельфя к сожалению учит только кнопки на форму втыкать почему-то. А сами программы дельфистов - в массе своей содержат совершенно вырвиглазный говнокод.
Но вот что-то не очень велосипедное всерьез програмить на паскакале - на редкость противное занятие, имхо :). Библиотек (юнитов) под паскакаль - зело меньше чем для сей/сей++. А интерфейситься к сишным либам имеючи паскакалевские типы данных может возжелать только мазохист. Алсо, мне больше нравится curly bracket синтаксис. Бегины и энды как-то засирают видимость и ухучшают схватывание структуры кода на глаз. В то время как скобки, особенно на отдельных строках, достаточно доходчиво отделяют блоки кода - глаз сразу схватывает что это отдельный блок кода.
Если это околосистемное что-то - еще и просто геморройно до жопы, потому что операционные системы пишутся на сях, ну и интерфейс вывешен опять же удобный для сишных программ :). Ну, кому-то может и нравится конвертить типы данных при каждом системном вызове/юзеже либ, но этот кто-то - не я. А для системных целей си позволяет также загибать весьма неслабые фокусы, которые паскалистам вообще по сути недоступны.
Эй, паскалист, а ну-ка попробуй напиши аналог такому? :)
void (*our_func) (void);
...
our_func = (void *) 0x1000;
our_func();Как паскалистам такой выгибон, нормальненько? Как вы думаете, что оно такое делает? И как вы думаете, а сможете вы такое на паскакале изобразить, хотя-бы теоретически, будь такая нужда? И главное и асмовый фрагмент в паскале вроде стандартно впихнуть - не того :). Кстати этот выгибон реально юзается на практике и вполне себе уместен там где встречается, приколитесь? :)
> Эй, паскалист, а ну-ка попробуй напиши аналог такому? :)
> void (*our_func) (void);
> …
> our_func = (void *) 0x1000;
> our_func();и что? в паскале отменили указатели на процедуры? откогда? без них — внизапна! — даже динамически подгруженую библиотеку использовать не получилось бы. а ведь используют же как-то, черти!
это можно сделать аж двумя способами.Через процедурный тип, и через декларирование типа "функция" и объявление переменной этого типа.
будет что-то в духе
var pmyproc : procedure;
begin
pmyproc := pointer(10000);
pmyproc;
end.либо
type tmyfunc = function (integer) : integer;
var pmyfunc : ^tmyfunc;
bar : integer;
begin
pmyfunc := pointer(10000);
bar := pmyfunc(1);
end.А еще на паскале можно сразу переменные в абсолютных адресах размещать. Причем со времен pdp-11 как минимум.
var tmp : array [0..1023] of integer absolute $10000;
и обращаться потом к массиву по человечески не казнясь с указателями.
> А еще на паскале можно сразу переменные в абсолютных адресах размещать. Причем со времен pdp-11 как минимум.В наше время сомнительная возможность.
> и обращаться потом к массиву по человечески не казнясь с указателями.
/* В DOS это было примерно так: */
const int *tmp = (int __far *) 0x10000;/* Теперь tmp можно применять как массив. Не могу не обратить внимание, что такой способ был доступен в Си с самого начала и является логичным способом использования его возможностей, в отличие от Паскаля, хорошо сдобренного Борландом. Кстати, указатели придумали для удобства, и они действительно удобны, если уметь применять их */
> В наше время сомнительная возможность.Отчего-же ?
Я например в свое время заменив в турбопаскале родную RTL на самопальную вполне успешно писал на нем sys драйверы для масадоса (ибба с версии 5.0 ихний лоадер научился таки понимать MZ формат бинаря).
При этом безо всяких трюков и ассемблерных вставок.
> Как паскалистам такой выгибон, нормальненько?На паскале пишут понятный всем код обеспечивающий страбильную работу пользователя, а не развлечению программистов. Надо работать и производить полезный продукт, а не развлекаться со всеми возможностями спецификайции языка.
> со всеми возможностями спецификайции языка.Как ни странно, код упомянутого плана именно в полезных продуктах и встречается. Насчет стабильной работы пользователя - не, теория это замечательно, но на практике дельфевые программы в массе своей на 99% - редкий крап.
> на практике дельфевые программы в массе своей на 99% — редкий крап.это никак не вина инструмента (так же, как не вина php в том, что на нём пишут долбоклюи).
> это никак не вина инструмента (так же, как не вина php в
> том, что на нём пишут долбоклюи).Не, знаете, вот на PHP написано и уйма вполне приличного софта. Хотя и крапа ессно хватает. На дельфе найти вменяемую программу ... ну ... наверное такое в теории возможно. Только это, почему-то даже вспомненый тут qip нынче ударился в пхание бэкдоров и медвежьих услуг, а скайп, абузя ресурсы чужого компа и конекции в интернет не дает над этим процессом контроля и живет своей жизнью. Хорошие программы, черт возьми. Да, я заметил, трояны почему-то часто пишут на дельфе... случайное совпадение?
то, что ты не видел хорошего софта на дельфи значит, всего лишь, что ты не туда смотришь.кстати, совершенно навскидку: beepola.
>> это никак не вина инструмента (так же, как не вина php в
>> том, что на нём пишут долбоклюи).
> Не, знаете, вот на PHP написано и уйма вполне приличного софта. Хотя
> и крапа ессно хватает. На дельфе найти вменяемую программу ... ну
> ... наверное такое в теории возможно.И этот человек когда-то защищал проблемы Си, говоря что это вина программиста, не умеющего следить за переполнением, сверками, утечками и т.д. :)
В сравнении с Си, на делфи гораздо больше качественных программ.
> И этот человек когда-то защищал проблемы Си, говоря что это вина программиста,
> не умеющего следить за переполнением, сверками, утечками и т.д. :)A то в паскакале не может быть переполнений и особенно утечек памяти.
> В сравнении с Си, на делфи гораздо больше качественных программ.
Это была шутка ?
>> И этот человек когда-то защищал проблемы Си, говоря что это вина программиста,
>> не умеющего следить за переполнением, сверками, утечками и т.д. :)
> A то в паскакале не может быть переполнений и особенно утечек памяти.а теперь еще раз прочитай на что ты отвечаешь и главным образом как. Я разве утверждал что в паскале не может быть?
>> В сравнении с Си, на делфи гораздо больше качественных программ.
> Это была шутка ?Нет, серьёзно. Паскаль типобезопасней начиная от указателей и заканчивая контролем размерности массива. Контроль переполнения при вычислениях.. Нативная поддержка строк, модулей, интерфейсов. Не шибко дофига, но все таки :)
И вообще, слава богу что такой код for(;P("\n").R-;P("|"))for(e=3DC;e-;P("_"+(*u++/8)%2))P("| "+(*u/4)%2); в паскале не написать ;)
>И главное и асмовый фрагмент в паскале вроде стандартно впихнуть - не того :).всё того) плохой выхлоп :)
>>И главное и асмовый фрагмент в паскале вроде стандартно впихнуть - не того :).
> всё того) плохой выхлоп :)Есть именно стандартный и устоявшийся метод это делать? А то как я помню в свое время борланд юзал какой-то собственный костыль для этого. Который стандартом не являлся. Да еще и потом как-то по разному было сделано для доса и винды. Они же не юзали и нормальные человеческие форматы объектников и прочая, чем жестоко факапали интероперабельность с сями, вызывая массу батхерта, чтоб их. Делали какие-то абстрактные "юниты", начиная еще с паскаля под дос и потом в дельфе. Не забывая еще и их формат в каждой версии менять, вашумать. Абсолютно фаготский подход, видимо спровоцированный тем что официального устоявшегося формата вообще нет. Поэтому юзеж либ от кого-то кроме борланда был больше похож на батхерт, а исходники оных авторы почему-то очень любили зажимать, что окончательно доставляло. В результате сроду было куча юнитов "для версии X", "для версии Y" и прочая. Чем борланд порядком задрал. А других вменяемых авторов паскалевских компилеров на тот момент как-то и не было вообще :)))
внизапна, вопрос! мы же про Delphi Language тут говорим, не так ли? так вот: стандарт Delphi Language — это… ну, ты угадаешь, думаю. и да — там ещё с тех пор, как оно было Borland Pascal With Objects есть возможность включать асм. вполне стандартизованая в рамках диалекта. как и остальные, кстати, синтаксические конструкции.>Делали какие-то абстрактные «юниты»
не «абстрактные юниты», а вполне забавный формат библиотек, который обеспечивал быструю линковку.
>>>И главное и асмовый фрагмент в паскале вроде стандартно впихнуть - не того :).
>> всё того) плохой выхлоп :)
> Есть именно стандартный и устоявшийся метод это делать?не виляй как жучка) смотри, открываю fpc, пишу:
begin
{$ASMMODE att}
asm
movl $100, Йx
pushl Кx
popw %ax
end;{$ASMMODE intel}
asm
mov eax, 100
push ebx
xor ecx, ecx
end
end.Всё компилируется, всё работает. :)
> И как вы думаете, а сможете вы такое на паскакале изобразить, хотя-бы теоретически, будь такая нужда?Гы-гы. Да слово в слово!
var our_func: procedure;
...
our_func := Pointer($10000);
our_func;
...Смешной вы, User294 :) Пишете патетический пост на два экрана, а в конце громко пукаете в лужу :)
Кстати, раз уж вы так хотели удивить пасквилянтов сишным "выгибоном", то могли бы ваш пример записать в три раза короче:((void (*)())(0x10000))();
Вот такого Паскаль точно не умеет :)
> ((void (*)())(0x10000))();Я не знаю, умеет такое паскаль или нет, но такой код не нужен.
В большинстве случаев - да, но мы сейчас не качество кода обсуждаем :)
В signal.h стандартной библиотеки C можно найти такое:void (* signal(int __sig, void (* __func)(int))) (int)
Рядовая функция, устанавливает и возвращает обработчик сигнала - функцию с целым аргументом и результатом void. Тут что-то непонятно? )) Кстати, после чтения стандарта такие конструкции читаются на раз, и они довольно логично смотрятся с точки зрения грамматики языка, да и лаконично.
Даже если в Паскале подобную конструкцию можно реализовать, такие вещи в нем делать просто не принято, а зря - callback-функции часто используются в системном программировании.
> Даже если в Паскале подобную конструкцию можно реализовать, такие вещи в нем делать просто не принято, а зря - callback-функции часто используются в системном программировании.Ну вы чего все паскаль так же как 294юзер учили что-ли?
или или в гугле лень набрать callback pascal?http://www.delphi-central.com/callback.aspx
Tutorials - Implementing Callback Procedures
> В signal.h стандартной библиотеки C можно найти такое:
> void (* signal(int <u>sig, void (* </u>func)(int))) (int)и за такое, найденое в своём проекте я бы отрезал тестикулы аффтару. это л.тоатомная хрень, которую необходимо переписать на typedef'ах, или прощай премия и половина зарплаты того, кто подобное родил.
> Даже если в Паскале подобную конструкцию можно реализовать, такие вещи в нем
> делать просто не принято, а зря — callback-функции часто используются в
> системном программировании.ORLY? признайся, в последний раз ты паскаль видел в школе, когда тебе дали три с половиной оператора и злая училка била по пальцам?
> и за такое, найденое в своём проекте я бы отрезал тестикулы аффтару. это л.тоатомная хрень, которую необходимо переписать на typedef'ах, или прощай премия и половина зарплаты того, кто подобное родил.О как! Но что-то мне подсказывает, что полномочий лишать кого-то премии и половины зарплаты у вас пока еще нет. В противном случае, руководитель, лишающий подчиненных премии за несовпадение религиозных взглядов на стиль кодирования, рискует очень скоро остаться без нормальных программистов.
Кстати, вы ведь не собираетесь идти в разработчики ядра Линукс, нет? А то у Грега Кроа-Хартмана религиозные взгляды прямо противоположные и он отрезает тестикулы как раз за использование typedef-ов... http://www.kroah.com/linux/talks/ols_2002_kernel_codingstyle...
> О как! Но что-то мне подсказывает, что полномочий лишать кого-то премии и
> половины зарплаты у вас пока еще нет.вынужден тебя разочаровать.
> В противном случае, руководитель,
> лишающий подчиненных премии за несовпадение религиозных взглядов на стиль кодирования,
> рискует очень скоро остаться без нормальных программистов.есть такая штука, как «стандартный стиль для некоей конторы/команды». судя по всему, ты никогда в больших командах не работал, и не знаешь, какие швабры вставляют за его нарушения.
> Кстати, вы ведь не собираетесь идти в разработчики ядра Линукс, нет?
нет, я там уже был.
> А то у Грега Кроа-Хартмана религиозные взгляды прямо противоположные и он отрезает
> тестикулы как раз за использование typedef-ов…его право. если я буду слать патчи в ядро — я буду писать в стиле, рекомендованом для ядра.
> и за такое, найденое в своём проекте я бы отрезал тестикулы аффтару.
> это л.тоатомная хрень, которую необходимо переписать на typedef'ах, или прощай премия
> и половина зарплаты того, кто подобное родил.У вас pascal brandamage. Вот после таких гуру смотришь на код типа:
MyVeryCoolType MySuperFunction(MyCoolType1 x, MyCoolType2 y);
и хочется сначала плакать, а потом мучительно убивать.
Вот вы глядя на этот прототип можете точно сказать аргументы какого типа принимает эта функция ?
Что такое MyCoolType1 например ? struct, union, enum, указатель на неизвестно что или просто int ?
> У вас pascal brandamage. Вот после таких гуру смотришь на код типа:
> MyVeryCoolType MySuperFunction(MyCoolType1 x, MyCoolType2 y);
> и хочется сначала плакать, а потом мучительно убивать.это бывает. попей успокоительных.
> Вот вы глядя на этот прототип можете точно сказать аргументы какого типа
> принимает эта функция ?откуда ж я знаю, что там мудaки понаписали? лично у меня такие typedef'ы применяются только для прототипов функций.
алсо, если твоя иде не может по наведению мыши показать определение типа — выкинь её на помойку и возьми какую-нибудь нормальную IDE. я лично живу не в 70-х, мне покажут, что это, откуда и зачем.
>> ((void (*)())(0x10000))();
> Я не знаю, умеет такое паскаль или нет, но такой код не нужен.Смотря что значит не нужен :). Если по поводу стиля - да, мне именно такой стиль не очень по вкусу, т.к. чрезмерно задрючен и можно облажаться. Если по смыслу, т.е. сделать по сути JMP 10000 но без ASM - вполне валидная операция, реально используемая на практике.
> Вот такого Паскаль точно не умеет :)С каких пор ?
Через обычное приведение типа. Причем безо всякого птичьего языка, звездочек и скобочек.
procedure (10000);
Delphi:
Error: Statement expected but 'PROCEDURE' foundFPC:
Fatal: Syntax error, ";" expected but "(" foundНезачет ;)
> Смешной вы, User294 :) Пишете патетический пост на два экрана, а вА что по факту будет сделано? Будет ли это аналог просто ассемблерного jmp?
> конце громко пукаете в лужу :)
Ну ладно, уели, цуки - я паскаль последний раз юзал хренадцать лет назад, как раз ранние дельфи и т.п. появились. Мне это дельфи не понравилось и я честно съе на си :)
> А что по факту будет сделано? Будет ли это аналог просто ассемблерного jmp?Не будет. И в вашем сишном примере не будет. Потому, что это - ВЫЗОВ ФУНКЦИИ, и нигде не указывается, что из этой функции не будет возврата. Мало того, даже если our_func() описать с __attribute__ ((noreturn)), все равно gcc будет генерить:
mov eax,0x00001000
call eaxхотя эпилога (leave/ret) у вызывающей функции уже генериться не будет.
А jmp вместо call оптимизатор вставит в следующем случае:
#include <stdio.h>
void b() {
puts("hello");
}void a() {
b();
}int main(){
a();
return 0;
}...
_a:
push ebp
mov ebp,esp
pop ebp
jmp _b
...
Самое интересное, что Вирт отлично понимал недостатки Паскаля (точнее, его особенности, делающие его непригодным для промышленного применения, все-таки ориентация была на обучение), и создал небезызвестные Модулу и Оберон, в которых, в частности, уже не было идиотского begin, вот только это событие прошло совершенно мимо паскалянтов, которые до сих пор продолжают вставлять в язык костыли. Указатели - это как раз из этой серии, в первой версии ими даже и не пахло, как и операторами break/continue, ленивыми вычислениями условий, а массивы разной длины, помнится, имели разный тип, так что функция, заточенная под один размер, не могла работать с другим.
> Самое интересное, что Вирт отлично понимал недостатки Паскаля (точнее, его особенности,делающие его непригодным для промышленного применения, все-таки ориентация была на обучение)
Известно что программисты больше любят создавать новые языки, чем доводить старые.
> и создал небезызвестные Модулу ... в которых, в частности, уже не было идиотского begin,http://en.wikipedia.org/wiki/Modula-3
A common example of a language's syntax is the Hello world program.
MODULE Main;
IMPORT IO;
BEGIN
IO.Put ("Hello World\n")
END Main.
>вот только это событие прошло совершенно мимо паскалянтов, которые до сих пор продолжают вставлять в язык костыли. Указатели - это как раз из этой серии, в первой версии имидаже и не пахло, как и операторами break/continue, ленивыми вычислениями условий,
Да уж разумное развитие это конечно явный недостаток языка. А интересно что бы Керниган с Ритчи сказали если бы им показали такое развитие их макроассемблера?
tuple(typename add_const_reference<Head>::type v, typename add_const_reference<Tail>::type... vtail)
: m_head(v), inherited(vtail...) { }> а массивы разной длины, помнится, имели разный тип, так что функция, заточенная под один размер, не могла работать с другим.
Смешно. В ц вообще массивов нет. Указатель массивом назвать конечно можно, как и строкой, вот только они от этого ими не станут.
> Паскаля ... все-таки ориентация была на обучение)Кстати кто нибудь мне объяснит откуда пошла эта байка? На самом то деле было так - был алгол 60 (про котрый никогда такой ерунды понятно не говорилось) и который выглядел примерно так (знакомо не правда ли?)
ALGOL 60
procedure Absmax(a) Size:(n, m) Result:(y) Subscripts:(i, k);
value n, m; array a; integer n, m, i, k; real y;
begin integer p, q;
y := 0; i := k := 1;
for p:=1 step 1 until n do
for q:=1 step 1 until m do
if abs(a[p, q]) > y then
begin y := abs(a[p, q]);
i := p; k := q
end
end Absmax
потом Вирт предложил Алгол В (который стал на мой взгляд хуже)ALGOL W is a programming language. It was based on a proposal for ALGOL X by Niklaus Wirth and C. A. R. Hoare as a successor to ALGOL 60 in the IFIP Working Group 2.1.
It represented a relatively conservative modification of ALGOL 60, adding string, bitstring, complex number and reference to record datatypes and call-by-result passing of parameters, introducing the while statement, replacing switch with the case statement, and generally tightening up the language.а потом одумался, и и с минимальными изменениями в алгол60 сделал Паскаль. Ну а потом его снова малость занесло... Ну да нашлись хорошие люди и исправили ошибки великих родив object pascal.
Ну а нынешние творцы занялись усложнением синтаксиса и уже налепили странноватых конструкций, впрочем не особо популярных у нормальных людей.
> а массивы разной длины, помнится, имели разный тип, так что функция,
> заточенная под один размер, не могла работать с другим.Что как класс кстати исключало ошибки класса buffer overflow/underflow, причем контроль границ массивов ВНЕЗАПНО при этом было, ИЧСХ выполнялся всего одной инструкцией процессора bound (на x86). Напутать можно было только с указателями, но учитывая очень строгую типизацию намутить там можно было только целенаправленно, иначе компилятор давал больно по рукам. Со строками тоже кстати чтобы вылезти за границы строки нужно было СПЕЦИАЛЬНО постараться. И calling convention паскалевского типа исключает много опасных трюков со стеком.
> исключает много опасных трюков со стеком.Когда какие-то трюки исключают, это означает что что-то работать перестанет. Иногда например надо сделать тупой JMP на новую программу. Вообще переинициализировав стек например. Это что, такое совсем нельзя будет? И даже стандартного и-фейса для дергания асма нет? oO
> Года 4 назад нужно было скомпилить какую-то либу из дельфийского исходника. Искать
> диск с ворованным дельфи7 было лень, скачал лазарус, поковырял, скомпилил, подумал
> круто получилось. С си-шной прогой нифига не заработало, но сам Лазарус
> очень порадовал.
> Два года назад уже на линухе потребовалось скомпилить какую-то прогу из дельфийского
> исходника. Поковырял, обплевался, нифига не заработало.
> Сейчас даже не знаю как на это реагировать.С наскоку Lazarus'ом не запользуешься, этого не будет, корки и в Линуксах, и в Виндах долго будут получаться из скомпиленных без варнингов проектов.
И тут уже кажному для себя решать, на ЖыСиСи-бинды к GTK пересаживаться ради надежного кросса или Lazarusa учить.
> С наскоку Lazarus'ом не запользуешься, этого не будет, корки и в Линуксах, и в Виндах долго будут получаться из скомпиленных без варнингов проектов.Ерунда какая.
> И тут уже кажному для себя решать, на ЖыСиСи-бинды к GTK пересаживаться
> ради надежного кросса или Lazarusa учить.или не мучаться с этим всем и спокойно использовать Qt, как единственный адекватный тулкит.
А что, к нему окно дизассемблера в вправду прикрутили?
> А что, к нему окно дизассемблера в вправду прикрутили?Дизассемблер был, но очень кривой.
А где он был-то? Я что-то так и не нашел. А сейчас это что? Машинный код отлаживать можно?
> Машинный код отлаживать можно?Так отладка через гдб сделана. Откуда и часть проблем ибо гдб под ц заточен. Поэтому в debugger friendly оптимизации -О1 им иногда приходится сильно неоптимальный код генерить чтоб отладка нормально работала. В -О2 все оптимально, но м.б. проблемы с отладкой.
Skype написан на Delphi
qip вроде тоже
> qip вроде тожеО, две проприетарные какашки вспомнили.
> Skype написан на DelphiНе весь. Только виндовозный гуй. Само ядро писано на сях/ассемблере, бо там чертовски много антиотладочного трюкачества.
Еще TheBat, и туева хуча программ. О туевой хуче многие не знают, потому что они в основном с БД связаны, а вот на остальных языках много ли софта с БД, делфя по этому параметру все вместе взятые сделает и не надо говорить что БД - фу, люди не только в интернетах сидят, большинство как раз работают с базами данных.
> Еще TheBat, и туева хуча программ. О туевой хуче многие не знают,
> потому что они в основном с БД связаны, а вот на
> остальных языках много ли софта с БД, делфя по этому параметру
> все вместе взятые сделает и не надо говорить что БД -
> фу, люди не только в интернетах сидят, большинство как раз работают
> с базами данных."Профессиональный" кидатель dbgrid'ов на формы детектед.
> "Профессиональный" кидатель dbgrid'ов на формы детектед.Я когда это все время слышу то мне кажется что это от зависти, нет? Или кидать не получается? Так это мышкой же просто делается.
А так задачи то всякие бывают, некоторые решаются и киданием в основном, некоторые нет, а иногда по мере роста потребностей заказчиков и перерабатывать архитектуру приходится. Но если удается обойтись простейшими методами, то и хорошо (мне).
А у вас что не так?
Ну, и насколько я понимаю, на Делфи написан сам компилятор Делфи :)
> Ну, и насколько я понимаю, на Делфи написан сам компилятор Делфи :)на сях он написан.
>> Ну, и насколько я понимаю, на Делфи написан сам компилятор Делфи :)
> на сях он написан.Не знаю насчет компилятора (там еще с дельфи1 ноги растут, когда он с нуля делался и паскалевского компилятора на паскале понятно не было) но сама среда ессно на паскале.
А компилятор фреепаскаля с самого начала на паскале писался. Как и лазарь ессно.
на нем собираются тотал командер 8 выпускать...
> на нем собираются тотал командер 8 выпускать...Да, похоже дело идет именно к этому
Total Commander. Интервью с разработчиком
http://www.kv.by/index2011044301.htm- Ранее многократно вы публично заявляли, что закончили первый этап портирования Total Commander на Lazarus/Free Pascal. Как сейчас продвигается эта работа?
- Да, я веду такую работу.
> на нем собираются тотал командер 8 выпускать...к слову сказать коммандер на лазаре ребята сейчас пилят, до тотала понятно им еще далеко, но но многое уже работает и кроссплатформенный реально.
Вот САПР для прокладки кабельных трассhttp://shamangrad.net/project.php?act=view&prj=zcadhttp://sh...
> Вот САПР для прокладки кабельных трассЭто на Лазаре
а на Дельфях можно посмотреть напрмер тут
http://delphi.wikia.com/wiki/Good_Quality_Applications_Built...
в частности
KMPlayer MediaMonkey Help&Manual FastStoneImageViewer TotalCommander InnoSetup PowerArchiver BeyondCompare GetDataBack PhotoFiltreStudio FinalBurner CoffeeCupHTMLEditor RJ TextEd BSPlayer PSPad ZoomPlayer ConvertXToDVD FuturixImager IZArc PEExplorer ASPack DeepBurner TextAloud Editpad Multilizer TreeSize Dev-C++
> на нем собираются тотал командер 8 выпускать...Про тотал вопрос сложный, но, по личному опыту, в 95% случаев куда более важно то что написано ( алгоритмы и знания "как делать"), чем чистота кода и его красота. Чем проще язык и чем меньшими усилиями людей знающих "как делать", тем быстрее появится готовый продукт.