LINUX.ORG.RU

Билл Гейтс о свободном ПО


0

0

В письме посвященном необходимости обеспечивать максимально свободное взаимодействие программного обеспечения (interoperability aka UNIX-way) директор Microsoft отметил, что его компания всегда старалась следовать этому принципу, тогда как движение свободного ПО зачастую создает искусственные препятствия (цитата): "the open source development approach encourages the creation of many permutations of the same type of software application, which could add implementation and testing overhead to interoperability efforts."

Также в письме отмечается важность XML как основы взаимодействия ПО в будущем.

>>> оригинальное письмо

★★★

Проверено: Shaman007 ()
Ответ на: комментарий от anonymous

1. Могу я проверить в XML тип передаваемого параметра?
можно так, но реальная проверка будет всё равно в коде так как всё в xml - только стринги
<!ENTITY % Color "CDATA">
<!ENTITY % double "CDATA">
<!ENTITY % int "CDATA">
<!ENTITY % boolean "(false|FALSE|true|TRUE)">
<!ATTLIST CELL_STYLE
X %int; #REQUIRED
Y %Color; #IMPLIED
cell_valign (NONE|TOP|CENTER|BOTTOM) #IMPLIED
top_margin %double; #IMPLIED
units (%distance-measure-units;) #IMPLIED
border (right|bottom|both) #IMPLIED

2. Как проверить допустимость значений двух параметров в разных ветвях дерева? К примеру если параметер А=1 то параметер Б должен быть равен

A=1 implies B=3 equivalent to B!=3 implies A!=1

наверное копать надо в этом направлении
<!ATTLIST LIST
A (%Bne3;|1) #IMPLIED
B (%Ane1;|3) #IMPLIED>

но я не такой знаток (последний раз занимался xml 4 года назад)

Anode
()
Ответ на: комментарий от anonymous

Конечно > (define-form my-form (ancestor-form) > (user-id "User ID") > (customer-name "First & Last Name") > ...)

писать быстрее, но зато по тому XML становится понятно что ты пишешь. Вот скажите как я могу понять по вышенаписанному что мы описываем форму с именем "my-form" базирующаяся на "ancestor-form" что она имеет кучу итемов у каждого из которых есть внутреннее имя(в общем имя) и полное название(короче отображение)

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

anonymous
()
Ответ на: комментарий от Anode

А что, expat уже отменили? Хоть блин, по байту скармливай :-(

AlexM ★★★★★
()
Ответ на: комментарий от vm

2 vm
хорошо как мне кажется.
как раз xml в и был призван не потерять такой универсальности персистенса, только реализация слишком угловатая.

Раз уж вы заговорили у персистенсе. Кто этот термин поднял на знамёна - кажется Сан. Дык он 3 раза менял формат своей персистенс (и все костыли были от той несовместимости) и в 3 раз всё ломая - что-бы вы думали (у него был такой шанс исправиться) - выбрал xml.

для чего-чего, а персистенса лисп был-бы лучше (сохраняем только массив чисел и смотрим как раздувается файл и сколько новых символов появляется - тут уже привели <x>2</x><x>3</x> - метадаты в 7 раз больше чем самой даты! Если же как <x>2 3</x> - то на кой мне xml)

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

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

Хотя может ситуация меняется (discloser - 4 года не занимался xml)

Anode
()
Ответ на: комментарий от int19h

Вы забыли добавить, что функция должна быть не любая, а с отсутствующими побочными эффектами. :-).

AlexM ★★★★★
()
Ответ на: комментарий от Anode

Как насчет таких вещей как: XSD, XPath? (Вопрос к чудаку который лиспом предлагает все заменить :)

anonymous
()
Ответ на: комментарий от int19h

Опять таки, в стандарте языка, в котором об этом подумали, кроме хвостовой рекурсии подумали еще кое-над чем. И, боюсь, не все программисты поколения Жы будут готовы это "кое-что" принять. Все-таки, побочные эффекты рулят :-) Правда, конечно, по большей части - в бурьян :-)

AlexM ★★★★★
()
Ответ на: комментарий от baka-kun

А если придет кусок, у которого, кроме <props>...</props> есть еще <newprops>...</newprops>. Куда пойдет Ваша программа?

AlexM ★★★★★
()
Ответ на: комментарий от dsa

> XML - это реинкарнация старого доброго Lisp'а.

Так вот ты какой, северный олень!

AlexM ★★★★★
()
Ответ на: комментарий от anonymous

namespaces - это постоянные внутренние стринговые проверки парсером. Зачем такая избыточность? DTD ещё был как-то похож на BNF - строгое и логичное (мат) определение грамматики. XPATH напоминает WYSIWYG, но из -за количества усилий глазами, парсения/матчения при его написании - количество мозговых цыклов затрачивается думаю не меньше. Лучше ту энергию мозга в логическое формулирование грамматики потратить.

но это всё персональное отношение. Так сказать с точки зрения красоты. Не красиво это всё - к чему пришло. И не строго - тем более.

Anode
()
Ответ на: комментарий от anonymous

насколько я понимаю - xsd ничего не добавляет к старому-доброму DTD.
Он какой-то описательный. DTD пришёл из SGML. Могу ошибаться.

Anode
()
Ответ на: комментарий от Anode

>J2EE - зло.
игнорируйте - в след. раз ;) Работать надо. Извиняюсь.

Anode
()
Ответ на: комментарий от Anode

>J2EE - зло.

>начинаем новый флейм? ;)

Anode - зло!

Katode - зло!

vada ★★★★★
()
Ответ на: комментарий от majordomo

>>device(/dev/tun0)
>>{
>> media
>> {
>> duplex=full
>> speed=100
>> speed_q=Mbps
>> }
>>}

>>Вобщем, перед тем как говорить, посмотри на то, что ДО ТЕБЯ сделали.

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

Eugeny_Balakhonov ★★
()
Ответ на: комментарий от anonymous

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

Mauhuur
()
Ответ на: комментарий от anonymous

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

Mauhuur
()
Ответ на: комментарий от svu

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

Вообще, наиболее общая модель для этого дела - это логика первого порядка. Но только индусы и прочая шпана, кто сейчас в IT рулит, такое точно никогда заюзать не сможет - раз уж даже такое убожество, как XML им (и вам!) с таким трудом даётся...

Mauhuur
()
Ответ на: комментарий от Anode

Тебе показать ленивый парсер XML? Или и так поверишь, что они в дикой природе встречаются?

Mauhuur
()
Ответ на: комментарий от Anode

Гражданин хароший, ну нет в хвостовой рекурсии текущего состояния, нет совсем. На то она и хвостовая. Не позорьтесь и народ не смешите.

Mauhuur
()
Ответ на: комментарий от svu

Убогая мысль. Точнее, мысль нормальная, но реализованная убого. XML Infoset - очень банальное дерево, и более общие конструкции на него отображаются не без геморроя.

Mauhuur
()
Ответ на: комментарий от int19h

Концепт XSLT - поцня. На хера такое надо, когда у нас задаром есть информация о типах (Schema или хотя бы DTD), что позволит существенно всё заоптимизировать. За примером смотреть на http://www.cduce.org/

Mauhuur
()

Чего, блин, до XML докопались. Где надо, пусть живет.
Вон, даже ЦБ на XML переезжает. :)
Бил жалуется, типа, что пацаны ваяют много похожего софта,
из-за чего им же самим приходится все это поддерживать и напрягаться
из-за кучи сложностей при его взаимодействии (или я неправ?).
Это реально так и есть. Ежу понятно, что если кругом будет
один M$ Word, проблем с совместимостью форматов не будет.
За что он и борется. XML это будет или нет, пофиг. Главное,
не будет альтернативы. Они и так каждый офис формат меняют,
чтобы бежать от OpenOffice с компанией впереди паровоза.
Иначе их тут же сожрут. А ему милиарды свои жалко.
Он, вместо того, чтобы открыть стандарт (чтобы не было указанных
проблем взаимодействия), грешит на OpenSource, редиски типа нехорошие,
бабки стричь за просто так не дают, надо напрягаться.

anonymous
()
Ответ на: комментарий от Anode

> метадаты в 7 раз больше чем самой даты! Если же как <x>2 3</x> - то на кой мне xml)

Анод! Срочно собирай единомышленников и сокращайте синтаксис C. Тока представь

int main (int argc,char *argv[]){ return 0; }

или

i m (i a,c *a[]) { r 0;}

Вот эффекту то!

anonymous
()
Ответ на: комментарий от anonymous

Зачем синтаксис сокращать? Для этого Форт есть. Надо семантику оптимизировать. Тогда Лисп получится. И то, что на Цэ в 10k строк пишется, на Лиспе в 200-300 строк сожмётся...

Mauhuur
()
Ответ на: комментарий от Mauhuur

2Mauhuur
мда представляю:
всем учить quantification theory! писать - только в кванторах! SQL заменить на relational algebra! И вообще - если язык описан только BNF - отстой-только EBNF! не, я про type0 не говорю;))

и много вы напишете/программистов найдёте?
не ищет ли природа глобального максимума
M = anyRandomContextSensitiveLang * суммаПродуктивностиВсехВозможныхПрограммеров / processingTime ?

xml кстати тут тоже - и уменьшает второй множитель и увеличивает делитель :)

Anode
()
Ответ на: комментарий от anonymous

>Анод! Срочно собирай единомышленников и сокращайте синтаксис C. Тока представь

я имел в виду _некомпилированный_ xml (в бинарный меня ткнули вчера)
и стоимость хранения (или переправки по сети что всегда дорого)

Anode
()
Ответ на: комментарий от Mauhuur

По поводу XML в конфигурационных файлах:

1. Можно составить любой сложности конфиг. 2. Проверить правильность этого конфига. (как сейчас вы проверете правильно сформирован конфиг Apacha или PHP?) 3. Создать взаимоисключающие ветки и значения ключей. (к примеру правильность формирования виртуальных хостов у Apacha) 4. Задать ограничения на значения ключей и их значение по умолчанию или в результате неверно заданого значения или не допустимого.

anonymous
()
Ответ на: комментарий от Mauhuur

>Anode, чем зарабатывать геморрой и цирроз, сношаясь с XML, почитал бы R5RS, а?

когда вас оповещают (архитектор или клиент) что в данной коммуникации - будет xml - то будете зарабатывать и первое и последнее, к сожалению. Потом можно пропихнуть что-то своё, а потом все проблемы на твои инновации спишут, так как это было _не_как_у_всех_, нестандартно, а значит неправильно. Лучше не экспериментировать в индустрии, а прятаться лицензионными продуктами списывая с себя ответственность ;)
Индустрия - не академия ;)

Anode
()
Ответ на: комментарий от anonymous

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

Anode
()

XML - хороший универсальный формат для несерьёзных и малосерьёхных дел. Между прочим на нём основан формат OpenOffice.Org. А Билли совсем отупел. Я бы ему сказал, кто чинит препятствия. И по полочкам разобрал бы. Да, чувствуется, не поймёт он... Вот уже скока лет не понимает.

DMA
()
Ответ на: комментарий от Mauhuur

>Anode, ви таки ламир...

Mauhuur, а ви ламир _в_индустриальном_программировании_ - если всюду пихаете один язык...

Anode
()
Ответ на: комментарий от Anode

Ламир Anode, хвостовая рекурсия раскручивается в цикл даже компилятором GCC. Не позорьтесь, вы очень смешны и нелепы. Кстати, что за бред про один язык? Я их несколько десятков использую...

Mauhuur
()
Ответ на: комментарий от Anode

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

Mauhuur
()
Ответ на: комментарий от Mauhuur

>Ламир Anode, хвостовая рекурсия раскручивается в цикл даже компилятором GCC. Не позорьтесь, вы очень смешны и нелепы.

именно _хвостовую_ - не использовал.

>Кстати, что за бред про один язык? Я их несколько десятков использую...

вы пенсионер? Для опыта на каждом (не только синтаксис важен, а костыли в разных системах, как дебаггировать - от OS390 до линукса) - с вас любой работодатель потребует не меньше 5 лет - _на_каждом_, иначе вы не будете знать многих сопуствующих подводных камней.
Пример кода реальной проги (если говорите про несколько десятков - то возьмём 3: C, CPP, java, которые наверное входят в тот сет;), работающей в индустрии - в студию. Желательно - чтобы более миллиона юзеров. Ещё желательней - чтобы более полумиллиона (любых;) трансакций в день.

я десятков как вы в ответ не дам, но 3 _больших_ проекта (в работе, реально, он-лайн) - кину.

>Вот смешно, какой-то лопух мне тут про потребности индустрии вещает. Не стыдно? Рассказывать, какой вы подлец, и как говно заказчикам впариваете - это надо быть человеком совсем без комплексов.

по морде тебе за оскорбления не давали? Я тебя не оскорблял и тем более подлецом не называл. Это не ты антихрист случайно?

Anode
()
Ответ на: комментарий от anonymous

Даааа, теперь стало гораздо читаемее. Это при том что изначальная конструкция была примитивна как валенок. (1 2 (3 7) 4 5). А если бы было что либо посложнее, то в хмл'ном виде оно бы на два экрана разрослось!

ugoday ★★★★★
()
Ответ на: комментарий от anonymous

> Ничего страшного

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

ugoday ★★★★★
()
Ответ на: комментарий от anonymous

Ты таки думаешь, что у лиспа нет типов данных? Ты его воообще видел?

ugoday ★★★★★
()
Ответ на: комментарий от anonymous

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

ugoday ★★★★★
()
Ответ на: комментарий от dsa

Ты такой умный, череп не жмёт? А ну-ка напиши, чему равняется выражение <sum><value>1</value><value>2</value><minus> <value>4</value><value>5</value><value>6</value ><value>7</value></sum>

Для того, что ты хочешь требуется транслятор-телепат. На земле таких ещё нет. Если он будет, то его напишут не на хмл"е. А про отступы тебе уже рассказали.

ugoday ★★★★★
()
Ответ на: комментарий от dsa

Давно не следил за яваскриптом. Может он за этот год и дорос до scheme

Ответьте пожалуйста на вопросы:

(Вопросы (система типов (как определить типы данных: (код грея, троичное число, рациональная дробь, стек, планарное дерево, объединение множеств вышеперечисленных типов)) (как определить мат операции, работающие с этими типами. Например (let (a: rational int) = 1/2; let (b: rational int) = 1/3; let c = a + b; и после этого с будет равным 5/6?))) (pattern-matching (он вообще есть?)) (функции (хвостовая рекурсия,параллельная рекурсия, взаимная рекурсия, рекурсия высших порядков, мо\жет ли функция вернуть функциональное значение, поддержка функций высокого порядка, отображающие фу\нкционалы, поддержка замыканий)) (макросы (они вообще есть?))) (ооп (что с ним?))

ugoday ★★★★★
()
Ответ на: комментарий от dsa

> Да я emacs'а и на Lisp'е не напишу.

Вот в этом я ниразу не сомневаюсь.

>Только какое отношение это имеет к XML'ю, как языку позволяющему описывать другие предметно-ориентированные языки?

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

ugoday ★★★★★
()
Ответ на: комментарий от dsa

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

Так иди учись и не парь мозги окрущающим!

ugoday ★★★★★
()
Ответ на: комментарий от anonymous

>2. Проверить правильность этого конфига. (как сейчас вы проверете правильно сформирован конфиг Apacha или PHP?

В некоемом "правильном" конфиге параметр x не должен превышать сумму параметров y и z.

Чем тут поможет XML?

dsa
()
Ответ на: комментарий от ugoday

>>Только какое отношение это имеет к XML'ю, как языку позволяющему описывать другие предметно-ориентированные языки?

>Хреново он это делает, раз на нём ничего сложнее описания конфига ещё ничего не сделано. Был бы он таким рульным, как вы тут завываете,то был бы и емакс

зачем? То, что емакса нет на схеме, доказывает убогость схемы по сравнению с е-лиспом?

> и савфиш на хмл"е.

jsp,jelly

dsa
()
Ответ на: комментарий от anonymous

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

ugoday ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.