Здравствуйте, Андрей Хропов, Вы писали:
АХ>Кроссплатформенность — да, с этим пока похуже, но Mono развивается. FW 1.1 уже полностью поддерживают насколько я знаю.
Цена этому — грош в базарный день. Пока MS не заявит, что а) не будет предъявлять _никаких_ притензий к mono и производным продуктам, использующим её собственные технологии; б) не возьмёт mono под опеку (если не денег, то ms-labs хотябы) — доверия (массового) к моно не будет
P.S. Если "угораздит" заняться собственным портированием .net на остальной зоопарк ОС не открывая исходников — будет ещё хуже
P.P.S. БГ фиг знает когда вещал, что собирается брать деньги за сервисы (правда, не брать за программы не обещал )Что ему стоит поддержать открытые моно и немерле?
Здравствуйте, Gajdalager, Вы писали:
G>А кода меньше будет.. В классе, допустим, 5 полей, которые по логике публичные, а строчек кода — мама дорогая! И все вида getField/setField, причем тривиальной реализаци.. Сразу и не видно, который делает чего, а который — только устанавливает..
Ну для этого регионы есть M>>И вообще мой опыт говорит, что как только ты сделаешь поле public буквально через пару дней придется оборачивать его в пропертю. G>Что, прям таки все или большинство?
Наверное все же не все, но большинство. процентов 80 M>>И вообще прямой доступ к переменным считаю злом.
G>Тоже так считал.. А потом подумал, ну какая разница — задаём мы значение поля через функцию или напрямую, если функция только то и делает, что присваивает полю значение? Правильно, только в размере кода и в том, что в случае функции нам можно будет добавить дополнительную логику безболезненно..
Ну и в пропертю можно будет добавить дополнительную логику не менее безболезненно
А функций может быть несколько. А пропертя она одна.
Здравствуйте, cl-user, Вы писали:
CU>Цена этому — грош в базарный день. Пока MS не заявит, что а) не будет предъявлять _никаких_ притензий к mono и производным продуктам, использующим её собственные технологии; б) не возьмёт mono под опеку (если не денег, то ms-labs хотябы) — доверия (массового) к моно не будет
А разве не это произошло после их недавнего "брудершафта" с Новеллом?
Здравствуйте, Mirrorer, Вы писали:
M>Здравствуйте, Gajdalager, Вы писали:
G>>А кода меньше будет.. В классе, допустим, 5 полей, которые по логике публичные, а строчек кода — мама дорогая! И все вида getField/setField, причем тривиальной реализаци.. Сразу и не видно, который делает чего, а который — только устанавливает.. M>Ну для этого регионы есть
Ну.. это.. как бы костылем попахивает...
G>>Тоже так считал.. А потом подумал, ну какая разница — задаём мы значение поля через функцию или напрямую, если функция только то и делает, что присваивает полю значение? Правильно, только в размере кода и в том, что в случае функции нам можно будет добавить дополнительную логику безболезненно.. M>Ну и в пропертю можно будет добавить дополнительную логику не менее безболезненно
Ну я это и говорю Единственное, что я утверждаю, что ИМХО лучше вместо тривиальной проперти
private int _code;
public int code {
get {return _code}
set {_code = value}
}
писать
public int code;
А потом когда реализация проперти будет нетривиальной, развернуть ее.. .Однако это ИМХО, к тому же голословное, поскольку я работаю на Жаве, где пропертей нет и чего-то могу не замечать..
Здравствуйте, Gajdalager, Вы писали:
G>Ну.. это.. как бы костылем попахивает...
Отчего же ? Не нравится — оберни регионом, чтобы не мешало выидеть общую картину. Я ими не пользуюсь, мне не мешает.
M>>Ну и в пропертю можно будет добавить дополнительную логику не менее безболезненно
G>Ну я это и говорю Единственное, что я утверждаю, что ИМХО лучше вместо тривиальной проперти G>
G>private int _code;
G>public int code {
G>get {return _code}
G>set {_code = value}
G>}
G>
G>писать G>
G>public int code;
G>
G>А потом когда реализация проперти будет нетривиальной, развернуть ее.. .Однако это ИМХО, к тому же голословное, поскольку я работаю на Жаве, где пропертей нет и чего-то могу не замечать..
Ну да на вкус и цвет товарища нет. Но когда кто попало может изменять паблик свойства, и это не контролируется —
Много часов было в свое время потрачено на отлавливание бага, который сводился к вопросу
"Какая с*%а это изменяет"? А изменялось поле в более чем надцати местах немаленького проекта. Все усугублялось тем, что я тогда был молод и неопытен, код был не мой, и вообще
бррр.. как вспомню, так вздрогну
... << RSDN@Home 1.2.0 Deep Purple — Concert for Group & ... Mov.3 >>
Здравствуйте, cl-user, Вы писали:
CU>Цена этому — грош в базарный день. Пока MS не заявит, что а) не будет предъявлять _никаких_ притензий к mono и производным продуктам, использующим её собственные технологии; б) не возьмёт mono под опеку (если не денег, то ms-labs хотябы) — доверия (массового) к моно не будет
Какие именно технологии MS используются в Mono?
Ы или не Ы? дефиниция. Разъяснение: Mono — open-source реализация ECMA CLI Стандарт ECMA CLI открытый, и каждый вправе реализовать CLI.
Здравствуйте, Андрей Хропов, Вы писали:
АХ>>>Вот тогда им и понадобится Mono. S>>Qt? АХ>Что Qt? У них уже есть приложение под .NET, которое хотят портировать.
Имхо лучше всетаки на кутэ пускай начинают... Ибо пока моно дождутся — уже и не надо будет. Либо, если уж так надо, пусть берутся помогать моно программить.
АХ>Да и Qt для коммерческого применения безумно дорог — от $4950 на 1 разработчика для 2 платформ (здесь).
С Qt это единовременное вложение (насколько я помню). Продукты же микрософта имеют привычку скачкообразно изменяться, требуя оплаты за новые версии.
Вдобавок, с кутэ можно вполне законно писать и тестировать первый проект на free, а при готовности продукта купить коммерческую кутэ непосредственно перед началом продаж.
АХ>А чтобы разрабатывать на Qt под Windows нормально придется все равно покупать Visual Studio.
Ну, скажу честно, редактора уровня VS под линух нет, хотя емаксовцы меня конечно щас камнями то позакидают
Кстати, очень подает надежды молодой QDevelop.
Итого — возможны вложения только в технику и в Qt.
S>>Значит, ему было нужно. АХ>Как видишь проект Mono не умер, а вполне себе развивается. Правда не так хорошо как хотелось бы...
Ну мне это, как понимаеш, не важно
S>>Чего именно не хватает? АХ>Как интегрировать в рамках, например, твоего Qt компоненты на Python и на C++? АХ>Без дополнительных усилий, просто взял и вызвал метод.
Если сможеш такое на С++, сделаеш и в Qt, но врядли будет переносимо... С помощью же кутэ такое не сделаеш.
АХ>А динамически объекты создавать можно по имени? АХ>типа как в .NET: АХ>А вообще как с рефлексией? АХ>А с версионностью компонентов как?
Объясни что это такое, и зачем оно нужно. Особенно про динамические объекты. Думал минут пять но так и не придумал куда можно их применить в реальной задаче.
Версионность то конечно еще можно понять для чего, так это имхо лучше делать на уровне проекта, а не на уровне библиотек.
АХ>Что такое o_0?
(( о_0 == 0_о ) ~= ( o0 == 0o )) ~= , но не так выражено
S>>>> И объяснить почему моно слабо пойдет под линуухом, это практически тоже самое, что объяснить виндузовцам — что на серваке не должно быть графики, а только консоль. АХ>>>На серваке должно быть то, чем удобно пользоваться. Лучше и то и другое. S>>Мне удобно пользоваться mc... Админу нашему удобно пользоваться mc. А еще ssh, telnet... Этого хватает с головой, поверь. АХ>Кому чего. Но я не админ, мне сложнее судить.
Тут все скатывается в
1. в удобство конфигурирования.
2. в дополнительной трате ресурсов графикой.
Поверь, мне тоже было удобно и приятно лпзить по менюшкам, тыкать в галочки и радиобаттоны, выбирать чтототам из списков... Но до тех пор, пока я не увидил нормальный текстовый конфиг. Например конфиг апача. Или ПХП. Да там во сто крат удобнее конфигурить.
А конфиг апитаблес взять если? Это даже не конфиг, это скрипт получается, и мне както трудно будет представить его в "терминах" пимпочек и галочек.
Трата ресурсов же — спорный на самом деле вопрос. Тестов я не проводил, но отталкиваюсь от вполне трезвой мысли — "Чем меньше ненужного запущено — тем меньше тратится ресурсов".
АХ>Но агитировать за технологии уровня 70-х годов...
Вот тут извини, но ты неправ. Наличие графики никак не влияет на современность используемых технологий. Или ты хочеш сказать что раз винду придумали в 93 (?), а ядро линуха начали писать в 70х — автоматически делает линух "устаревшей технологией"? В таком случае неправ вдвойне.
Здравствуйте, Sheridan, Вы писали:
АХ>>Кому чего. Но я не админ, мне сложнее судить. S>Тут все скатывается в S>1. в удобство конфигурирования. S>2. в дополнительной трате ресурсов графикой.
Графика больше не ресурс. И сеть тоже уже не ресурс.
S>Поверь, мне тоже было удобно и приятно лпзить по менюшкам, тыкать в галочки и радиобаттоны, выбирать чтототам из списков... Но до тех пор, пока я не увидил нормальный текстовый конфиг. Например конфиг апача. Или ПХП. Да там во сто крат удобнее конфигурить.
Каждому свое, а лысому — расческа. Bind конфигурял с его нормальным текстовым конфигом? Я к тому, что если в предметной области не сечешь, то тебе хоть текстовый, хоть 3-х мерный — толку никакого.
S>А конфиг апитаблес взять если? Это даже не конфиг, это скрипт получается, и мне както трудно будет представить его в "терминах" пимпочек и галочек.
Кому скрипт, а кому конфиг, который может быть привязан к определенному интерфейсу. А в плане конфига чистого iptables-save и iptables-restore. Правда, зависит от версии линухов, может и вообще, /ets/sysconfig/iptables получиться. Лично мне идея в скриптах иптаблеса не нравится. Может, конечно, временно такое быть, но лучше все описать декларативно.
S>Трата ресурсов же — спорный на самом деле вопрос. Тестов я не проводил, но отталкиваюсь от вполне трезвой мысли — "Чем меньше ненужного запущено — тем меньше тратится ресурсов".
А если еще процентов 95 остается?
S>Вот тут извини, но ты неправ. Наличие графики никак не влияет на современность используемых технологий. Или ты хочеш сказать что раз винду придумали в 93 (?), а ядро линуха начали писать в 70х — автоматически делает линух "устаревшей технологией"? В таком случае неправ вдвойне.
Ядро именно линуха, насколько я помню, начали в 90х писать. А по поводу графики — винда тут не пионер.
Здравствуйте, Turtle.BAZON.Group, Вы писали:
TBG>Графика больше не ресурс. И сеть тоже уже не ресурс. угу, и память — не ресурс, и винты не ресурс, и знаки тоже видимо не ресурс в итоге.
TBG>Каждому свое, а лысому — расческа. Bind конфигурял с его нормальным текстовым конфигом? Я к тому, что если в предметной области не сечешь, то тебе хоть текстовый, хоть 3-х мерный — толку никакого.
При чем тут сечеш — не сечеш? Я говорил про удобства.
TBG>Кому скрипт, а кому конфиг, который может быть привязан к определенному интерфейсу. А в плане конфига чистого iptables-save и iptables-restore. Правда, зависит от версии линухов, может и вообще, /ets/sysconfig/iptables получиться. Лично мне идея в скриптах иптаблеса не нравится. Может, конечно, временно такое быть, но лучше все описать декларативно.
Скрипт дает больше места для маневра (с)
S>>"Чем меньше ненужного запущено — тем меньше тратится ресурсов". TBG>А если еще процентов 95 остается?
А 5% значит не нужны? А если не остается? Скажем на серваке БД.
TBG>Ядро именно линуха, насколько я помню, начали в 90х писать. А по поводу графики — винда тут не пионер.
+
[RSDN@Home][1.2.0][alpha][668]
[Дороги судьбы, как правило, проселочные. [Авессалом Подводный]]
Здравствуйте, Sheridan, Вы писали:
S>Здравствуйте, Mirrorer, Вы писали:
M>>И вообще прямой доступ к переменным считаю злом.
S>Как скоро прямой доступ к пропертям начнеш считать злом?
см. Re[4]: Property Vs Public Field
Здравствуйте, Sheridan, Вы писали:
TBG>>Графика больше не ресурс. И сеть тоже уже не ресурс. S> угу, и память — не ресурс, и винты не ресурс, и знаки тоже видимо не ресурс в итоге.
К величайшемоу сожалению — да. Не за что теперь цепляться. Главно фишек быстрее накидать.
TBG>>Каждому свое, а лысому — расческа. Bind конфигурял с его нормальным текстовым конфигом? Я к тому, что если в предметной области не сечешь, то тебе хоть текстовый, хоть 3-х мерный — толку никакого. S>При чем тут сечеш — не сечеш? Я говорил про удобства.
Я про то, что удобства — это в квартире есть. А в конфиге потеряться или в менюшках и закладках — как-то неважно. Для кого-то удобнее одно, для кого-то — другое.
S>Скрипт дает больше места для маневра (с)
awk попробуйте.
TBG>>А если еще процентов 95 остается? S>А 5% значит не нужны? А если не остается? Скажем на серваке БД.
Здравствуйте, Mirrorer, Вы писали:
M>Ну да на вкус и цвет товарища нет. Но когда кто попало может изменять паблик свойства, и это не контролируется —
Действительно, спор о стиле — т.е. ни о чем.. Просто в коде
private int _code;
public int code {
get {return _code}
set {_code = value}
}
Здравствуйте, Turtle.BAZON.Group, Вы писали:
S>> угу, и память — не ресурс, и винты не ресурс, и знаки тоже видимо не ресурс в итоге. TBG>К величайшемоу сожалению — да. Не за что теперь цепляться. Главно фишек быстрее накидать.
S>>При чем тут сечеш — не сечеш? Я говорил про удобства. TBG>Я про то, что удобства — это в квартире есть. А в конфиге потеряться или в менюшках и закладках — как-то неважно. Для кого-то удобнее одно, для кого-то — другое.
Согласен.
S>>Скрипт дает больше места для маневра (с) TBG>awk попробуйте.
TBG>>>А если еще процентов 95 остается? S>>А 5% значит не нужны? А если не остается? Скажем на серваке БД. TBG>А зачем 95% простаивать?
А вот тут не понял...
Серваки они для чего покупаются? Чтобы делали нужное дело. Так зачем серваку заниматься параллельно с нужным делом еще и ерундой типа рисования красивых картинок на экране?
[RSDN@Home][1.2.0][alpha][668]
[Люди существуют друг для друга. [Марк Аврелий]]
Здравствуйте, Gajdalager, Вы писали:
G>Здравствуйте, Mirrorer, Вы писали:
M>>Ну да на вкус и цвет товарища нет. Но когда кто попало может изменять паблик свойства, и это не контролируется — G>Действительно, спор о стиле — т.е. ни о чем.. Просто в коде G>
G>private int _code;
G>public int code {
G>get {return _code}
G>set {_code = value}
G>}
G>
G>тоже ничего не контролируется
нет.
Но ничто не мешает при необходимости сделать так.
private int _code;
public int code {
get {return _code}
set {
Logger.Log(SomeContext, "Changed", value)
_code = value
}
}
И получить в логе все места где кто-то чего-то делает не того.
как такое сделать в случае
public int code;
... << RSDN@Home 1.2.0 Red Hot Chili Peppers — Deck The Halls >>
Здравствуйте, Sheridan, Вы писали:
TBG>>А зачем 95% простаивать? S>А вот тут не понял...
А зачем новый сервак покупать (а потом его настраивать), более мощный, если все равно 95% не будет использоваться?
S>Серваки они для чего покупаются? Чтобы делали нужное дело. Так зачем серваку заниматься параллельно с нужным делом еще и ерундой типа рисования красивых картинок на экране?
Ну если сервак закупался специально для обсчетов графики и отдачи на клиента, в том числе и того, что будет на экране..
Здравствуйте, Turtle.BAZON.Group, Вы писали:
M>>И получить в логе все места где кто-то чего-то делает не того. M>>как такое сделать в случае
M>>
TBG>AOP? pointcut?
Заместо добавления get/set городить AOP ?
Понятное дело, что если нам необходимо получить на шару логирование для ВСЕХ свойст, тогда АОП хорошо. Но если необходимо подсмотреть одно свойство...
... << RSDN@Home 1.2.0 Red Hot Chili Peppers — Nevermind >>
Здравствуйте, Turtle.BAZON.Group, Вы писали:
TBG>А зачем новый сервак покупать (а потом его настраивать), более мощный, если все равно 95% не будет использоваться?
А зачем тогда вообще сервак при таком раскладе? о_0
TBG>Ну если сервак закупался специально для обсчетов графики и отдачи на клиента,
Напомни ка мне... У 3д студии есть клиентские программки для обсчета графики. Ставиш на компы, настраиваеш студию на их использование, и они считают. Распредвычисления вбщем. Так вот, напомни мне — там разве крутится на экране то что они обсчитывают или просто иконка в трее (читай — просто процесс)?
TBG> в том числе и того, что будет на экране..
Кроме терминального сервака больше подобных задач в голову не приходит.
[RSDN@Home][1.2.0][alpha][668]
[Кот в перчатках мышь не поймает. [Б. Франклин]]