Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Embarcadero RAD Studio XE4

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

Открыть новую тему     Написать ответ в эту тему

AlekXL



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 
Если мне память не изменяет, то LGPL делает послабления в части открытия кода по сравнению с GPL. Но все очень не просто. Если просто используется код под LGPL, то такой код можно использовать как угодно (конечный продукт может быть под любой проприетарной лицензией). Если код под LGPL изменяется, то либо исходники всего продукта должны быть открыты, либо должна использоваться динамическая линковка и открыть можно только измененные части.  
..библиотеки. На самом деле, это неверно, думается.
LGPL тебует от программиста/издателя предоставить возможность замены библиотеки на новую/модифицированную. Так что либо динамическая линковка, либо ты должен предоставить объектные файлы своей программы. Так что на деле всегда нужно использовать динамическую линковку.

Цитата:
 
ну и еще мелочь, что xGPL регулирует только распространение программ. Если ты пишешь прогармму для своей фирмы - вообще можешь менять как хочешь.  

это относится и к GPL v2, и к вебсервисам также, и даже к out-of-process COM, кажется это называли "GPL loophole".
А вот v3 уже просекла фишку и требует раскрывать код даже в случае вебсервиса(нет ASP loophole остался и в GPLv3)
 
GPLv3 это апофеоз копилефта: пока можно было Opensource "понарошку" , многие лицемерили, поддерживая его, но к 3-й версии предельно все прояснилось, так что даже Торвальдс устрашился.

Всего записей: 792 | Зарегистр. 24-04-2008 | Отправлено: 17:21 10-06-2013 | Исправлено: AlekXL, 18:31 10-06-2013
deks



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
питерский офис занимается только разработкой

 
Да, это "гнездо" огненной обезьяны! Именно туда свалил Крюков!)

Всего записей: 857 | Зарегистр. 09-10-2003 | Отправлено: 17:41 10-06-2013
AlekXL



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
кстатии, вопрос по наследованию helper так и не решен в XE4?

Всего записей: 792 | Зарегистр. 24-04-2008 | Отправлено: 18:30 10-06-2013
HeMet

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
кстатии, вопрос по наследованию helper так и не решен в XE4?

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

Всего записей: 212 | Зарегистр. 05-09-2007 | Отправлено: 19:46 10-06-2013
AlekXL



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Марко Канту где-то писал, что хелперы они считают низкоуровневой фичей, которая скорее всего будет подвержена изменениям. Короче говоря, это инструмент для них, а не пользователей.
для них должно быть важно, что думают пользователи, а не что они себе думают.
Надеюсь, у них хватит ума не вводить всякие регрессивные изменения, вроде immutable stings. Я даже написал в блоге Канту, "типа ненадо", да. Там практически все отзывы по поводу immutable стрингс негативные. Вот и поглядим, какой стороной к нам Эмба повернется.
 
--
и да, наследование record хелперов(а в class helpers вроде работает) все еще не реализовано в XE4

Всего записей: 792 | Зарегистр. 24-04-2008 | Отправлено: 20:47 10-06-2013 | Исправлено: AlekXL, 21:05 10-06-2013
valgreesh



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HeMet
Чего-то революционный настрой этих чудозвонов меня пугает...
 
Добавлено:

Цитата:
и да, наследование хелперов все еще не реализовано в XE4  

Зато реализовано в FPC

Всего записей: 292 | Зарегистр. 30-11-2011 | Отправлено: 20:48 10-06-2013
AlekXL



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Зато реализовано в FPC  

вот как? мне все нравится в FPC, кроме отсутсвия анонимов. Их ведь даже в транке нет.  
Я , грешным делом, считал анонимы тяжелым, медленным и избыточным "сахаром", но как дело дошло до многопотока - свое мнение изменил.
что же до record helper, то нафиг их тогда. В конце концов, можно использовать "черную магию" old objects

Код:
 
TmyOverlapped=object
 fAncestor:Windows._Overlapped;
 procedure amethod();virtual;
end;
 
TmyOverlapped2=object(TmyOverlapped)
 procedure amethod();override;
end;
 

ведь они бинарно совместимы, полагаю. Только вот поддерживаются ли они в IOS compiler?

Всего записей: 792 | Зарегистр. 24-04-2008 | Отправлено: 21:00 10-06-2013
valgreesh



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AlekXL

Цитата:
мне все нравится в FPC, кроме отсутсвия анонимов

Сейчас они в дельфях все равно неполноценные - этакие недокложуры. На компиляторах с ARC'ом другое дело, но вроде бы ARC пока только для мобильных ОС.
 

Цитата:
что же до record helper, то нафиг их тогда. В конце концов, можно использовать "черную магию" old objects  

Хелперы решают (ну по крайней мере уменьшают) большую проблему - отсутствие раннего декларирования для записей.

Код:
 
Type
 
 Rec1 = Record
 End;
 
 Rec2 = Record
 End;
 
 Rec1Helper = Record Helper for Rec1
  Procedure Proc(AValue : Rec2);
 End;
 

Без хелпера тут ну вообще ни как.

Всего записей: 292 | Зарегистр. 30-11-2011 | Отправлено: 21:12 10-06-2013
AlekXL



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Сейчас они в дельфях все равно неполноценные - этакие недокложуры. На компиляторах с ARC'ом другое дело, но вроде бы ARC пока только для мобильных ОС.
 

поясните.. Что с ними не так?
 
И кстати вопрос, существует ли какой-нибудь TWebbrowser для OSX на Delphi? Вроде для ios есть какой-то, хотя там методов и событий - с гулькин нос...

Всего записей: 792 | Зарегистр. 24-04-2008 | Отправлено: 21:29 10-06-2013
valgreesh



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AlekXL

Цитата:
поясните.. Что с ними не так?  

Автоматического управления временем жизни объектов нет.
 

Цитата:
И кстати вопрос, существует ли какой-нибудь TWebbrowser для OSX на Delphi?

Из коробки нет, но помнится была обертка над хромиумом для FMX.

Всего записей: 292 | Зарегистр. 30-11-2011 | Отправлено: 21:34 10-06-2013
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
http://stackoverflow.com/questions/9327111/is-there-a-web-browser-component-for-use-in-firemonkey-application
 
Добавлено:
http://www.webdelphi.ru/2013/03/delphi-for-ios-komponent-twebbrowser-dlya-firemonkey/
 
Добавлено:
https://webfmx.thinrdp.net/
 
Добавлено:
https://forums.embarcadero.com/thread.jspa?threadID=85701

----------
/не мы такие, жизнь такая/

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 21:48 10-06-2013
AlekXL



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Автоматического управления временем жизни объектов нет.  
ну сам объект-аноним как раз использует подсчет ссылок, разве нет?
Что же ARC в общем, то сдается мне, это грабли. Ибо утечка памяти - проблема гораздо меньшая, чем неправильное(скажем, двойное) ее освобождение. Я сам использую TInterfacedObject и интерфейсы и подсчет ссылок. Но - не везде. А нубам и вовсе бы это запретил под страхом расстрела.
 

Цитата:
Из коробки нет, но помнится была обертка над хромиумом для FMX.
Есть даже две обертки :
DCEF3 и DCEF1 aka delphiChromiumEmbedded. Второй упомянутый поддерживает FMX, работы ведутся, ага. Вот только OSX поддержки вроде бы нет.
А ведь это идеальное решение проблем с тормозами FMX - ты просто используешь jquery и Webkit для  построения интерфейса, который ни разу не тормозит ни на какой платформе. И в ж.. FireMonkey
X11

Цитата:
http://stackoverflow.com/questions/9327111/is-there-a-web-browser-component-for-use-in-firemonkey-application

устарело, да и см. выше в этом посте

Цитата:
http://www.webdelphi.ru/2013/03/delphi-for-ios-komponent-twebbrowser-dlya-firemonkey/
да, я тоже использую гугл. Но этот TWebbrowser для IOS, а не OSX

Цитата:
Добавлено:
https://webfmx.thinrdp.net/
 
Добавлено:
https://forums.embarcadero.com/thread.jspa?threadID=85701
 

это все не то. Там нет встроенного клиента. Это просто сервер+обвязка, то бишь Danasnap REST, что я уже делал, и что  можно сделать самому, используя фришные компоненты, насколько я знаю.
Это часть решения, причем наиболее простая.
 

Всего записей: 792 | Зарегистр. 24-04-2008 | Отправлено: 21:55 10-06-2013 | Исправлено: AlekXL, 22:03 10-06-2013
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ну и вот http://www.cybelesoft.com/webfmx/

----------
/не мы такие, жизнь такая/

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 21:58 10-06-2013
valgreesh



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AlekXL

Цитата:
ну сам объект-аноним как раз использует подсчет ссылок, разве нет?

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

Цитата:
И в ж.. FireMonkey

Вот именно

Всего записей: 292 | Зарегистр. 30-11-2011 | Отправлено: 22:01 10-06-2013
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Если код под LGPL изменяется, то либо исходники всего продукта должны быть открыты, либо должна использоваться динамическая линковка и открыть можно только измененные части.

 
Как-то это казуистикой попахивает. Следи за руками:
 
Левой рукой форкаем Qt, меняем что надо, и выкладываем как отдельный публичный LGPL-проект.
Правой рукой скачиваем релиз этого проекта и линкуем его в проприетарный код.
ЧЯДНТ?
 
Кстати, на англо-форумах меня уверяли, что с научной(?) точки зрения статическая или динамическая линковка не важна для определения, является ли проект чем-то цельным (т.е. derivative), или симбиозом (т.е. mere aggregation).
 
Видимо линковки быть не должно вообще, делай ручками через LoadLibrary и пойнтеры
 
 

Цитата:
но объекты захваченные в контекст  

в смысле копии объектов? в Дельфи нет конструктора копирования. Захвачиваются не объекты, а ссылки на них, копии пойнтеров.
 
В типовом дельфийском однопоточном коде
 

Код:
 
Создать;
try
  ...
  Вызвать (кложу);
  ...
finally
  Освободить;
 

 
это проблем не принесёт. Указатель на труп технически будет висеть до конца процедуры, но он не будет активирован. (в отличие от DisposeOf в XE4 - вот от этой придумки мне страшно. Новичков просто жалко, дай бог их не будет :-D )
 
Другое дело OTL или другая передача наружу созданной функции, тут да, могут быть сюрпризы. Но они могут быть не только от этого, а от любого предположения о состоянии среды.  

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 23:45 10-06-2013 | Исправлено: Arioch1, 23:52 10-06-2013
valgreesh



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Arioch1

Цитата:
Как-то это казуистикой попахивает

Не претендую на истинность, в этих лицензиях сам чертСтолман ногу сломит...
 

Цитата:
в смысле копии объектов?

Копии указателей разумеется.
 

Цитата:
В типовом дельфийском однопоточном коде  

Этот код слишком примитивен Он не демонстрирует ценность кложур, а ценность именно в сохранении контекста. А там, где кложура будет применяться по назначению, вопрос о жизни объектов будет возникать постоянно. Вот и получается, что смысла использовать кложуры в нынешнем виде не очень то много, разве что в совсем простых случаях.

Всего записей: 292 | Зарегистр. 30-11-2011 | Отправлено: 00:21 11-06-2013
AlekXL



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Левой рукой форкаем Qt, меняем что надо, и выкладываем как отдельный публичный LGPL-проект.
Правой рукой скачиваем релиз этого проекта и линкуем его в проприетарный код.
ЧЯДНТ?  
все верно. Если QT под LGPL без изъятий и дополнений.
 

Цитата:
Кстати, на англо-форумах меня уверяли, что с научной(?) точки зрения статическая или динамическая линковка не важна для определения, является ли проект чем-то цельным (т.е. derivative), или симбиозом (т.е. mere aggregation).  
это не вопрос науки, а вопрос правоприменения, а прецедентов мало.
 В сущности, как говорят британские ученые "англо-форумы" можно безнаказанно воровать даже GPL код, если только с этого не рубить огромную кучу бабок.  
А если у тебя куча бабок, ты get sued за любой чих.  
 

Цитата:
Видимо линковки быть не должно вообще, делай ручками через LoadLibrary и пойнтеры  
позднее связывание все равно является связыванием. Но лицензия мутная, причем ее намеренно такой сделали.
valgreesh

Цитата:
. Вот и получается, что смысла использовать кложуры в нынешнем виде не очень то много, разве что в совсем простых случаях.
вовсе нет. Просто нужно использовать интерфейсы, динамические массивы, и строки.  
Если уже дорос до многопотока, причем не в додНете, а в нативе, будь любезен соответсвовать. Если  хотите большей безопасности, то идите в доднет. Там как раз по росту песочница, причем - навечно.
Я не хочу, чтоб мне навязывали, что и как делать.
 
 
 
Добавлено:

Цитата:
в отличие от DisposeOf в XE4 - вот от этой придумки мне страшно. Новичков просто жалко, дай бог их не будет :-D  
а вообще можно выключить ARC на ios? Потому что мой код вызовет проблемы с этой фичей.

Всего записей: 792 | Зарегистр. 24-04-2008 | Отправлено: 00:50 11-06-2013
valgreesh



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AlekXL

Цитата:
Просто нужно использовать интерфейсы, динамические массивы, и строки

Именно, как раз из-за неумения дельфей рулить жизнью объектами и приходится извращаться с интерфейсами/интерфейсными обертками.
 

Цитата:
Если уже дорос до многопотока, причем не в додНете, а в нативе, будь любезен соответсвовать

Если это ко мне, смею заверить, что дорос и очень давно. Именно опыт позволяет видеть недостатки реализаций тех или иных вещей. И именно опыт дает возможность оценить преимущества управляемого жизненного цикла объектов. Это объективная оценка. А вообще, я паскали люблю, иначе не сидел бы в дельфийской теме, однако - "Платон мне друг, но истина дороже".

Всего записей: 292 | Зарегистр. 30-11-2011 | Отправлено: 01:07 11-06-2013
AlekXL



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Именно, как раз из-за неумения дельфей рулить жизнью объектами и приходится извращаться с интерфейсами/интерфейсными обертками.  
нет, это неверно. Я использую интерфейсы в том числе и для того, чтобы ослабить связь между частями проекта. Более того, при помощи интерфейса я устанавливаю контракт, ясно читаемый, между этими частями. И используя Delphi Spring, я абстагирую реализацию некоторых классов.
 

Цитата:
Именно опыт позволяет видеть недостатки реализаций тех или иных вещей. И именно опыт дает возможность оценить преимущества управляемого жизненного цикла объектов
управляемого не тобой, не так ли? Впрочем концепцию strong vs weak link  я бы не назвал простой, тем более что weak link, как я понял, может указывать на что попало. Так что будут и залоченные в памяти взаимно ссылающиеся объекты, и попытки дерефенса освобожденной памяти.
  А если нужно запихнуть ссылку на объект в Pointer или NativeInt?  
Такая магия бывает необходима, скажем, для WinApi, или TVirtualDrawTree. Логика работы ARC в этом случае может быть еще сложнее, чем в обычном случае: сначала нужно сделать явный инкремент, а потом всюду следить,чтобы нигде не произошел неявный декремент.
 
ARC это благо, если нам дадут выбор, где и как его использовать. А насильно навязанный ARC - мне не нужен, я против. Я хочу _полной обратной совместимости.

Всего записей: 792 | Зарегистр. 24-04-2008 | Отправлено: 01:26 11-06-2013 | Исправлено: AlekXL, 01:35 11-06-2013
HeMet

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
для них должно быть важно, что думают пользователи, а не что они себе думают.  

А пользователи должны читать документацию и если там написано "не используйте это в своем коде - оно не для вас" (вольный перевод: "Class and record helpers provide a way to extend a type, but they should not be viewed as a design tool to be used when developing new code."), значит так оно и есть.
Пользователи могут извращаться на тысячу и один лад, вплоть до использования трижды упразднённого object, потому что инструмент, который они не должны были использовать не работает так, как им хочется. А разрабам Delphi потом тяни лямку.

Всего записей: 212 | Зарегистр. 05-09-2007 | Отправлено: 09:35 11-06-2013
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Embarcadero RAD Studio XE4


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru