Re[35]: Сишарпкапец наступает
От: Sheridan Россия  
Дата: 11.03.09 15:08
Оценка:
kochetkov.vladimir однажды (11 марта 2009 17:47) писал в rsdn.flame.comp:

> C>Нет, там .NET-овцы тоже утверждали, что потребности в колбасе нет.

> Раз овца, значит Долли, раз множественное число, значит много, раз много и Долли, значит клоны, раз много клонов, значит стадо... Граждане! Он вас стадом тупых клонированных овец
> обозвал!
Чтото поздновато ты спохватился...

--
Бортовой журнал
Posted via RSDN NNTP Server 2.1 beta
Matrix has you...
Re[34]: Сишарпкапец наступает
От: kuj  
Дата: 11.03.09 15:12
Оценка: -1
Здравствуйте, Cyberax, Вы писали:

C>>>Ответил в другом письме.

MK>>Я честно говоря вообще не увидел связи между ComboBoxModel и DependencyObject. Давай лучше так. Вот у меня есть "модель документа". Как оно используется?
C>Вот у тебя есть список элементов — реализуешь ListBackedListModel, и твой комбо-бокс будет отображать элементы этого списка.

C>А можешь реализовать BindingListModel, которая занимается binding'ом к другому свойству.


Иными словами кривой костыль.
Re[35]: Сишарпкапец наступает
От: Cyberax Марс  
Дата: 11.03.09 15:19
Оценка:
Здравствуйте, MxKazan, Вы писали:

C>>Вот у тебя есть список элементов — реализуешь ListBackedListModel, и твой комбо-бокс будет отображать элементы этого списка.

C>>А можешь реализовать BindingListModel, которая занимается binding'ом к другому свойству.
MK>Я ничего не понял. Для меня WPF — это прежде всего шаблонность. Возможность через XAML изменять визуальное представление любого элемента управления без всякой строчки кода, используя любые примитивы.
Это лишь способ сериализации свойств контролов. Есть аналогичные решения для Java, только вот не особо прижились.

MK>Ничего не стоит за 10 минут сворганить гибрид ListView с ListBox'ами в качестве item'ов, где элементы ListBox'а располагаются по горизонтали, а не по вертикали... И это только малая часть. Как это решается в Swing?

Таблицы и списки с кастомными контролами — сколько угодно. Просто их rendering делегируется нужному элементу:
http://www.java2s.com/Code/Java/Swing-Components/RadioButtonTableExample.htm

MK>>>Конкретнее, без теории, ближе к практике.

C>>Single Responsibility Principle. Нефиг в класс String добавлять методы "validate email".
MK>Если в моём конкретном проекте класс String должен уметь валидировать email, то почему-бы и нет?
Это не задача для класса строк (или его легковесного наследника).
Sapienti sat!
Re[17]: Сишарпкапец наступает
От: criosray  
Дата: 11.03.09 15:30
Оценка:
Здравствуйте, Sheridan, Вы писали:

>> Тогда уж:

>>

>> ФФ — страшный тормоз уже по сравнению со всем под маком и линухом

S>Осторожнее с рекурсией

Где Вы там узрели рекурсию?
Re[18]: Сишарпкапец наступает
От: Lloyd Россия  
Дата: 11.03.09 15:33
Оценка:
Здравствуйте, criosray, Вы писали:

>>>

>>> ФФ — страшный тормоз уже по сравнению со всем под маком и линухом

S>>Осторожнее с рекурсией

C>Где Вы там узрели рекурсию?


Существует ФФ для линукса, следовательно ФФ — страшный тормоз по сравнению с ФФ в том числе.
Re[34]: Сишарпкапец наступает
От: criosray  
Дата: 11.03.09 15:38
Оценка: +2
Здравствуйте, Cyberax, Вы писали:

C>>>Ext. methods часто используются для нарушения SRP.

MK>>"Вы это по матерному, а-ли по научному" (c) Куклу
MK>>Конкретнее, без теории, ближе к практике.
C>Single Responsibility Principle. Нефиг в класс String добавлять методы "validate email".

String.ValidateEmail это просто плохой пример. Хорошим будет String.Reverse().

Фишка extension methods в том, что они позволяют очень просто реализовывать fluent интерфейс без существенных модифицаций существующих классов.
Re[19]: Сишарпкапец наступает
От: kuj  
Дата: 11.03.09 15:43
Оценка: +1 :))
Здравствуйте, Lloyd, Вы писали:

>>>>

>>>> ФФ — страшный тормоз уже по сравнению со всем под маком и линухом

S>>>Осторожнее с рекурсией

C>>Где Вы там узрели рекурсию?


L>Существует ФФ для линукса, следовательно ФФ — страшный тормоз по сравнению с ФФ в том числе.


Бредятина.

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

Так понятно?
Re[36]: Сишарпкапец наступает
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 11.03.09 15:50
Оценка: 1 (1)
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, MxKazan, Вы писали:


C>>>Вот у тебя есть список элементов — реализуешь ListBackedListModel, и твой комбо-бокс будет отображать элементы этого списка.

C>>>А можешь реализовать BindingListModel, которая занимается binding'ом к другому свойству.
MK>>Я ничего не понял. Для меня WPF — это прежде всего шаблонность. Возможность через XAML изменять визуальное представление любого элемента управления без всякой строчки кода, используя любые примитивы.
C>Это лишь способ сериализации свойств контролов. Есть аналогичные решения для Java, только вот не особо прижились.
В WPF xaml определяет внешний вид элемента, в SWING видимо такого нет.

MK>>Ничего не стоит за 10 минут сворганить гибрид ListView с ListBox'ами в качестве item'ов, где элементы ListBox'а располагаются по горизонтали, а не по вертикали... И это только малая часть. Как это решается в Swing?

C>Таблицы и списки с кастомными контролами — сколько угодно. Просто их rendering делегируется нужному элементу:
C>http://www.java2s.com/Code/Java/Swing-Components/RadioButtonTableExample.htm
А без кода такое возможно?

MK>>>>Конкретнее, без теории, ближе к практике.

C>>>Single Responsibility Principle. Нефиг в класс String добавлять методы "validate email".
MK>>Если в моём конкретном проекте класс String должен уметь валидировать email, то почему-бы и нет?
C>Это не задача для класса строк (или его легковесного наследника).
Естественно это не его задача. Поэтому и выносят такие методы в экстеншен.
Re[35]: Сишарпкапец наступает
От: criosray  
Дата: 11.03.09 16:05
Оценка:
Здравствуйте, criosray, Вы писали:


C>String.ValidateEmail это просто плохой пример. Хорошим будет String.Reverse().

Вот еще хороший пример:


        /// <summary>
        /// Creates a formatted list of items based on the passed in format
        /// </summary>
        public static string ToFormattedList(this IEnumerable list, ListType listType) {

            string outerListFormat = "";
            string listFormat = "";

            switch (listType) {
                case ListType.Ordered:
                    outerListFormat = "<ol>{0}</ol>";
                    listFormat = "<li>{0}</li>";
                    break;
                case ListType.Unordered:
                    outerListFormat = "<ul>{0}</ul>";
                    listFormat = "<li>{0}</li>";
                    break;
                case ListType.TableCell:
                    outerListFormat = "{0}";
                    listFormat = "<td>{0}</td>";
                    break;
                default:
                    break;
            }


            return string.Format(outerListFormat, ToFormattedList(list, listFormat));
        }

        /// <summary>
        /// Creates a formatted list of items based on the passed in format
        /// </summary>
        /// <param name="list">The item list</param>
        /// <param name="format">The single-place format string to use</param>
        public static string ToFormattedList(IEnumerable list, string format) {

            StringBuilder sb = new StringBuilder();
            foreach (object item in list) {
                sb.AppendFormat(format, item.ToString());
            }

            return sb.ToString();

        }

    /// <summary>
    /// Types of HTML Lists
    /// </summary>
    public enum ListType {
        Ordered,
        Unordered,
        TableCell
    }


А вот использование (aspx view):


<%=names.ToFormattedList(ListType.Unordered)%>
Re[37]: Сишарпкапец наступает
От: Cyberax Марс  
Дата: 11.03.09 16:06
Оценка: +1
Здравствуйте, gandjustas, Вы писали:

C>>Это лишь способ сериализации свойств контролов. Есть аналогичные решения для Java, только вот не особо прижились.

G>В WPF xaml определяет внешний вид элемента, в SWING видимо такого нет.
XAML — это просто формат сериализации графа объектов, заточенный под сериализацию контролов. В Swing'е аналогичное делается с помощью кода.

Есть и чистые XML-решения типа XAML, но они не получили распространения.

C>>Таблицы и списки с кастомными контролами — сколько угодно. Просто их rendering делегируется нужному элементу:

C>>http://www.java2s.com/Code/Java/Swing-Components/RadioButtonTableExample.htm
G>А без кода такое возможно?
Можно, например на JavaFX (который не совсем код).

Это же просто вопрос организации связей между объектами.

C>>Это не задача для класса строк (или его легковесного наследника).

G>Естественно это не его задача. Поэтому и выносят такие методы в экстеншен.
Такие методы нужно выносить в отдельные сервисы.
Sapienti sat!
Re[38]: Сишарпкапец наступает
От: criosray  
Дата: 11.03.09 16:11
Оценка:
Здравствуйте, Cyberax, Вы писали:


C>>>Это лишь способ сериализации свойств контролов. Есть аналогичные решения для Java, только вот не особо прижились.

G>>В WPF xaml определяет внешний вид элемента, в SWING видимо такого нет.
C>XAML — это просто формат сериализации графа объектов, заточенный под сериализацию контролов. В Swing'е аналогичное делается с помощью кода.
XAML это в первую очередь стандарт.

G>>Естественно это не его задача. Поэтому и выносят такие методы в экстеншен.

C>Такие методы нужно выносить в отдельные сервисы.

Ну так и есть. Просто они оформляются в виде extension methods. Банально удобно. Очень удобно.
Re[28]: Сишарпкапец наступает
От: drol  
Дата: 11.03.09 16:22
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>>>То что под Виндой куча кривого софта — не оправдывает кривость установщика .NET FW. Что мешало сделать его как Sun JVM?

D>>Спасибо, но лучше не надо. Та ещё кривень...
C>Чем?

Глюки при установке Java Plug-in. Глюки при установке в добавление к уже установленным JDK/JRE. Особенно если они другой "большой" версии, тут вообще бывали совсем жёсткие эффекты. Ну и мой любимый номер: у ихнего инсталлятора нет отдельной msi-базы для поддержки удаления. Они держат весь дистрибутив в этом качестве. И это полный капут, после года эксплуатации с апдейтами в этом бедном каталоге инсталлятора запросто накапливаются гигабайты. Очень "смешно" бывает в случае какой-нибудь виртуализации...

C>Для клиентов её вообще не ставим — она без установки идёт вместе с приложением. Приложение обычным NSIS'ом ставится.


Вот я и говорю — не ставили Вы её, родимую, en mass. Тащить с собой каждый раз тоже ничего хорошего. В итоге на машинах вечно по n-штук JRE разбросано в разных местах...
Re[38]: XAML и WPF
От: Qbit86 Кипр
Дата: 11.03.09 16:23
Оценка: 4 (2)
Здравствуйте, Cyberax, Вы писали:

C>XAML — это просто формат сериализации графа объектов, заточенный под сериализацию контролов. В Swing'е аналогичное делается с помощью кода.


XAML — это не просто ценный мех. Кроме графа объектов там есть ещё расширения синтаксиса XML — синтаксис привязок в атрибутах:
<ItemsControl DataContext="{Binding ElementName=orderSelector, Path=SelectedItem}" ... />

Прикрепляемые свойства (атрибуты не того объекта, в котором написаны):
<TextBlock DockPanel.Dock="Top" Text="Orders" />

Ресурсы, словари, стили, шаблоны и прочие кошерные вещи, которые не имеют никакого отношения к сериализации.
Глаза у меня добрые, но рубашка — смирительная!
Re[36]: Дежа вю
От: vit.rsdn  
Дата: 11.03.09 16:48
Оценка:
Читая г-на Cyberax нон-стоп ловлю какое-то "дежа вю" и связано оно с Делфи
когда-то тоже делфисты на каждому углу кричали "зато у нас есть куча компонент на все случаи жизни" (Cyberax тоже самое кричит про джава-библиотеки). Увы, как язык джава сильно отстал от шарпа. Шарп бурно развивается ,стирая постепенно грань между функциональщиной и императивностью. Оно и неудивительно, МС вкладывает кучу денег в исследования и разработку. Развивается бурно и сам дотнет-фреймворк, дополняясь морем полезных классов. Бурно растут разлиные опен-соурс проекты для дотнета. Sun же пока считает убытки. Не до джавы ему, однако. Еще пару-тройку лет, и джаве, увы, будет уготована роль некогда могучего и популярного делфи. Уж очень похожа ситуация, уж очень похожи аргументы сторонников "тогда" и "сейчас".
Re[38]: Сишарпкапец наступает
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 11.03.09 16:52
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, gandjustas, Вы писали:


C>>>Это лишь способ сериализации свойств контролов. Есть аналогичные решения для Java, только вот не особо прижились.

G>>В WPF xaml определяет внешний вид элемента, в SWING видимо такого нет.
C>XAML — это просто формат сериализации графа объектов, заточенный под сериализацию контролов. В Swing'е аналогичное делается с помощью кода.
"аналогичное" и "с помощью кода" слегка противоречат друг другу.

C>Есть и чистые XML-решения типа XAML, но они не получили распространения.

Значит им до "типа XAML" очень далеко.

C>>>Таблицы и списки с кастомными контролами — сколько угодно. Просто их rendering делегируется нужному элементу:

C>>>http://www.java2s.com/Code/Java/Swing-Components/RadioButtonTableExample.htm
G>>А без кода такое возможно?
C>Можно, например на JavaFX (который не совсем код).
Ну и где оно работает? Да и не SWING это вообще.

C>Это же просто вопрос организации связей между объектами.

Любая программа "просто вопрос организации связей между объектами".

C>>>Это не задача для класса строк (или его легковесного наследника).

G>>Естественно это не его задача. Поэтому и выносят такие методы в экстеншен.
C>Такие методы нужно выносить в отдельные сервисы.
Ну так они и выносятся, вызов через точку — сахар, чтобы не помнить все имена сервисов.
Re[38]: Java-пкапец наступает
От: vit.rsdn  
Дата: 11.03.09 17:07
Оценка:
имеет ли господин Cyberax мнение, относительно того, почему первоначально любофф гугла к джаве, окончилась так быстро?
выпустили GWT, частично gmail на джаве сделали, и — всё. С++ и Python — вот языки на которых пишут в гугле.
ну, с плюсами понятно.
а вот, чего джаву задвинули и вместо неё Python? видимо, не читали рсдн.ру(КСВ и посты г-на Cyberax) гугловцы и не в курсе, что джава — это мегакруто и там есть библиотечки на все случаи жизни (ну, там есть и багов много, но г-н Cyberax предложил их считать недокументированными фичами )

П.С. как-то уверенности в будущем питона существенно больше, чем в будущем джавы. Увы.
Re[39]: Java-пкапец наступает
От: Cyberax Марс  
Дата: 11.03.09 17:44
Оценка: +2
Здравствуйте, vit.rsdn, Вы писали:

VR>имеет ли господин Cyberax мнение, относительно того, почему первоначально любофф гугла к джаве, окончилась так быстро?

VR>выпустили GWT, частично gmail на джаве сделали, и — всё. С++ и Python — вот языки на которых пишут в гугле.
Умм... Как насчёт Android'а?

В Гугле вообще много чего пишут на Java — Adwords, Google Apps и т.д.

VR>ну, с плюсами понятно.

VR>а вот, чего джаву задвинули и вместо неё Python?
Это просто означает, что в Гугле _не_ _только_ на Java пишут

Как-то нормальные защитники Java не утверждают, что это один язык, который всё должен заменить.
Sapienti sat!
Re[39]: Сишарпкапец наступает
От: Cyberax Марс  
Дата: 11.03.09 17:49
Оценка: +1
Здравствуйте, gandjustas, Вы писали:

G>>>А без кода такое возможно?

C>>Можно, например на JavaFX (который не совсем код).
G>Ну и где оно работает?
Там где есть Java.

G>Да и не SWING это вообще.

Именно что Swing JavaFX — это просто обёртка над ним.

G>>>Естественно это не его задача. Поэтому и выносят такие методы в экстеншен.

C>>Такие методы нужно выносить в отдельные сервисы.
G>Ну так они и выносятся, вызов через точку — сахар, чтобы не помнить все имена сервисов.
Это неправильный сахар.
Sapienti sat!
Re[37]: Дежа вю
От: Cyberax Марс  
Дата: 11.03.09 17:55
Оценка: +1
Здравствуйте, vit.rsdn, Вы писали:

VR>когда-то тоже делфисты на каждому углу кричали "зато у нас есть куча компонент на все случаи жизни" (Cyberax тоже самое кричит про джава-библиотеки).

Так ведь, действительно, компоненты были...

VR>Увы, как язык джава сильно отстал от шарпа. Шарп бурно развивается ,стирая постепенно грань между функциональщиной и императивностью. Оно и неудивительно, МС вкладывает кучу денег в исследования и разработку.

Sun зато вкладывает кучу денег в исследования и разработку самой JVM. Она до сих пор намного технологичнее .NET VM остаётся — в Java более умные gargage collector'ы, есть адаптивная оптимизация (технология HotSpot), и т.д.

А прикладными языками там занимаются отдельные товарищи.

VR>Развивается бурно и сам дотнет-фреймворк, дополняясь морем полезных классов. Бурно растут разлиные опен-соурс проекты для дотнета. Sun же пока считает убытки. Не до джавы ему, однако. Еще пару-тройку лет, и джаве, увы, будет уготована роль некогда могучего и популярного делфи. Уж очень похожа ситуация, уж очень похожи аргументы сторонников "тогда" и "сейчас".

Вообще-то, если ты не заметил, Дельфи превратился именно в .NET

Там даже автор один и тот же.
Sapienti sat!
Re[29]: Сишарпкапец наступает
От: Cyberax Марс  
Дата: 11.03.09 18:07
Оценка:
Здравствуйте, drol, Вы писали:

D>Глюки при установке Java Plug-in. Глюки при установке в добавление к уже установленным JDK/JRE. Особенно если они другой "большой" версии, тут вообще бывали совсем жёсткие эффекты.

Не встречал.

D>Ну и мой любимый номер: у ихнего инсталлятора нет отдельной msi-базы для поддержки удаления. Они держат весь дистрибутив в этом качестве. И это полный капут, после года эксплуатации с апдейтами в этом бедном каталоге инсталлятора запросто накапливаются гигабайты. Очень "смешно" бывает в случае какой-нибудь виртуализации...

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

C>>Для клиентов её вообще не ставим — она без установки идёт вместе с приложением. Приложение обычным NSIS'ом ставится.

D>Вот я и говорю — не ставили Вы её, родимую, en mass. Тащить с собой каждый раз тоже ничего хорошего. В итоге на машинах вечно по n-штук JRE разбросано в разных местах...
Мы сейчас как альтернативу используем WebStart — никаких проблем. Пользователь идёт на java.com и делает download. Отдельный дистрибутив — для клиентов без инета.
Sapienti sat!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.