109: (Default)
109 ([personal profile] 109) wrote2006-11-07 01:33 am

[программистское, нах]

Вовиным постом навеяло.

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

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

статья в википедии изнемогает в битве Самсона с собственным членом: XML is a markup language. JSON is a data interchange format.

language, ага. программисты на языке XML, нах.

о, ещё отлично: It has been observed that JSON is a nearly functional subset of YAML.

так и тянется рука к пистолету написать nearly functional software. отличное название для стартапа, кстати.

[identity profile] yakov-sirotkin.livejournal.com 2006-11-07 09:55 am (UTC)(link)
JSON - родной формат для JavaScript, поэтому на ура работает в том же AJAX. Конечно, можно и XML распарсить, но какой в этом смысл? XML хорош для того, чтобы натравить на него XSLT или для прочтения человеком, программный парсинг или генерация XML никакой особой радости не доставляют.

[identity profile] j2sdk1-4-2-04.livejournal.com 2006-11-07 10:02 am (UTC)(link)
Если рассуждать в таком ключе - натравливание XSLT есть аццки ресурсоёмкий процесс. И опять таки удобный исключительно человеку :)

[identity profile] yakov-sirotkin.livejournal.com 2006-11-07 10:15 am (UTC)(link)
XSLT придумали для снижения трудозатрат, а не для экономии процессорного времени:)

[identity profile] j2sdk1-4-2-04.livejournal.com 2006-11-07 09:56 am (UTC)(link)
Неужели в эпоху повсеместной ксмлизации кто то использует что то иное для обменом данными ?

Исключая системы, критичные к обьёмам передаваемого.

[identity profile] insa.livejournal.com 2006-11-07 10:01 am (UTC)(link)
1. JS нормальный язык, писать на нем интересно удобно и приятно. При этом он довольно популярен - http://www.tiobe.com/index.htm?tiobe_index

2. Парсить XML на порядок сложнее чем JSON. Тупо нет смысла использовать тяжелый XML когде есть JSON.

3. XML - Extensible Markup Language. Language не обязательно Programming. К чему предрались?

4. YAML (http://en.wikipedia.org/wiki/YAML) к functional programming ни какого отношения не имеет (как и JSON). Это просто язык/формат сериализации.

Наверно стоит с начала разобраться в JS, JSON, Yaml а потом писать разоблачительные опусы.

[identity profile] unquaiz.livejournal.com 2006-11-07 10:36 am (UTC)(link)
+1. по всем пунктам.
но больше зацепило
markup language - всего лишь язык разметки.
это что получается: html is markup language - программисты на языке html?

[identity profile] ivan-gandhi.livejournal.com 2006-11-07 07:25 pm (UTC)(link)
XML, HTML are not programming languages, they are markup languages. :)

[identity profile] unquaiz.livejournal.com 2006-11-08 02:28 am (UTC)(link)
да я то в курсе :)

[identity profile] 109.livejournal.com 2006-11-09 02:58 am (UTC)(link)
both xml and json are data interchange formats. позабавила попытка авторов статьи избежать сравнения xml vs json по причине присутствия в аббревиатуре xml слова "language".

[identity profile] dmitriid.livejournal.com 2006-11-07 12:34 pm (UTC)(link)
+1

Добавлю еще вот это (http://www.rsdn.ru:80/Forum/?mid=2134330):

Мне всегда казалось, что основная проблема XML — плохое отображение на привычные структуры данных.
Т.е. "в жизни", грубо говоря, "встречаются" основные структуры данных — скаляр, вектор, словарь (и вроде как бы и все, учитывая их вложенность — элемент вектора может быть скаляром-вектором-словарем и т.п.)
А в XML — "именованный данные с аттрибутами". Отсюда вечные проблемы отображения:
[1,2,3] => <array><value>1</value><value>2</value><value>3</value></array>
или
[1,2,3] => <array values='1,2,3'>
или
[1,2,3] => <array><item value='1'><item value='2'><item value='3'></array>

то же самое и со словарями.
Т.е. для сериализации данных удобнее какая-нито хрень типа помянутого JSON или более продвинутого YAML, которые базируются именно на "естественных" для программера структурах данных.

С другой стороны, вокруг XML накоплен интересный опыт: XPath, XSD, XSLT и т.п. — это все крайне полезные идеомы (паттерны, если хотите), которые могут (и должны) быть применены к другим, более удобным языкам описания данных.


На JSON можно сразу eval напустить, а на ХМЛ что? ;)

Ну и JavaScript 1.7 (http://developer.mozilla.org/en/docs/New_in_JavaScript_1.7) тоже неплох.

[identity profile] 109.livejournal.com 2006-11-09 03:05 am (UTC)(link)
это как раз не проблема. общепринято value types делать атрибутами, а куаукутсу (reference) types - вложенными нодами, по очевидным причинам.

а второй вариант - это представление массива, сериализованного в comma-separated string, а не собственно массива, так что тут тоже проблем нет.

[identity profile] dmitriid.livejournal.com 2006-11-09 07:40 am (UTC)(link)
В том-то и дело, что "общепринято", "comma-separated string"... И то и другое не является как бы "о! именно то, что надо!". JSON (как минимум, для JavaScript'a) позволяет все это делать без лишних телодвижений. Да и eval() тоже рулит :))

куаукутсу - :)))) Возьму на вооружение

[identity profile] 109.livejournal.com 2006-11-11 02:18 am (UTC)(link)
мысль не дошла. "то, что надо" - это (цитирую) value types делать атрибутами, а reference types - вложенными нодами.

[identity profile] dmitriid.livejournal.com 2006-11-11 08:05 am (UTC)(link)
"Не верю" :)

Всяко в JavaScript удобнее работать с JSON'ом. eval рулит :)

[identity profile] areht.livejournal.com 2006-11-07 01:19 pm (UTC)(link)
2) XML - это не JSON.

http://xslt.webcode.ru/archive/8/ - хороший пример "для чего нужен XML"

[identity profile] 109.livejournal.com 2006-11-09 02:56 am (UTC)(link)
1. методология tiobe вызывает у меня сильные сомнения.

3. xml - это именно что data interchange format, слово language там misleading. а эти апологеты используют формальное присутствие слова language в аббревиатуре xml, чтобы отмежевать от него json и избежать таким образом сравнения.

2. подверждает, что я не зря прИдрался. таки сравниваем. действительно, зачем нужен xml, когда есть json? у самого-то никаких вариантов ответа нет, кроме "не нужен, когда есть json"? если подумать?

4. nearly functional comment.

5. да куда уж мне, разобраться.

[identity profile] darxeth.livejournal.com 2006-11-07 10:37 am (UTC)(link)
JS в некоторых местах красивее нормальных языков.
А никто в здравом уме не будет это конечно сильный аргумент.

[identity profile] ivan-gandhi.livejournal.com 2006-11-07 07:28 pm (UTC)(link)
Я так понимаю, это обычная жалоба человека на смену парадигм. Джаваскрипт же открыт программистами относительно недавно. Но изобретен-то он очень даже грамотными людьми. Просто он как бы опередил свое время.

[identity profile] 109.livejournal.com 2006-11-11 02:31 am (UTC)(link)
это я жалуюсь? это я вам, наоборот, раскрываю грядущую парадигму: javascript as intermediate language is dead. восьмой интернет эксплорер будет исполнять IL вместо джаваскрипта. а урлы будут выглядеть как http://server/page.cs

ибо никакого смысла нет генерировать IL, из которого генерировать javascript, который потом парсить во что-то ещё промежуточное, когда можно прямо сразу исполнять IL.

а мнения тех, кто пишет на джаваскрипте вручную, я рассматриваю примерно как наезды на С++ писателей на ассемблере. да две строчки можно на чём угодно написать. не об этом же речь.

[identity profile] migmit.livejournal.com 2006-11-07 11:01 am (UTC)(link)
JavaScript - один из самых нормальных языков.
А [livejournal.com profile] ivan_ghandhi пишет совершенно правильно - после знакомства, в частности, с JavaScript, писать на джаве становится неприятно.

[identity profile] yakov-sirotkin.livejournal.com 2006-11-07 11:16 am (UTC)(link)
Как можно сравнивать язык со строгой типизацией и без неё?

Re: Reply to your comment...

[identity profile] migmit.livejournal.com 2006-11-07 11:27 am (UTC)(link)
Не понял. Это в Java нестрогая типизация?
Или вы про злосчастный оператор "+" в JavaScript?

[identity profile] yakov-sirotkin.livejournal.com 2006-11-07 12:51 pm (UTC)(link)
В Java-то строгая, а вот про JavaScript я, честно говоря, сомневаюсь...

+1

[identity profile] mr-aleph.livejournal.com 2006-11-07 12:56 pm (UTC)(link)
Ну как это обычно у нас делается...
"Фу мерзкая, строгая типизация",
"О, майн либен, уточка, кря-кря..."


[identity profile] ivan-gandhi.livejournal.com 2006-11-07 07:35 pm (UTC)(link)
А где строгая типизация? В джаве с дженериками? Частично. Параметрический полиморфизм в доступной для населения форме.

Вообще, когда программисты научатся отличать типы от классов, настанет типа новая эра. Не знаю только, когда это произойдет. Тогда загадки типа "как определить equals для крашеных точек" будут иметь очевидный ответ. Не зависящий от вкусов и образования отвечающего и спрашивающего.

[identity profile] yakov-sirotkin.livejournal.com 2006-11-07 08:22 pm (UTC)(link)
А можно для тупых, чем отличается тип от класса?

[identity profile] archie-kot.livejournal.com 2006-11-07 11:07 pm (UTC)(link)
кстати да, мне тоже очень интересно. то есть, чую, что отличаются. и слова даже разные. а вот чем отличаются - не понимаю. форвардните, плз, ответ афтара, буде таковой случицца

[identity profile] 109.livejournal.com 2006-11-11 02:19 am (UTC)(link)
типы бывают классами, а бывают и нет.

[identity profile] ingas.livejournal.com 2006-11-25 05:06 am (UTC)(link)
Тип - это только interface.
Класс - это interface + implementation.

Более ясно это понятно в различии между subtyping и subclassing.
Subclassing - нормальное наследование.
Subtyping - наследование только интерфейса. Полезно, например, если надо сделать замену тяжелого класса легким. (В COM единственный вариант)

В С++ некрасиво сделано определение интерфейса как абстрактного класса, поэтому многие C++ программисты subtyping не понимают интуитивно.

Вообще, я не понял коммента выше о том, что generic-и нарушают строгую типизацию.
Вообще то, generic-и и придуманы для ее сохранение.

[identity profile] 109.livejournal.com 2006-11-11 02:37 am (UTC)(link)
А где строгая типизация?

читать про строгую/слабую и статическую/динамическую типизацию здесь: http://en.wikipedia.org/wiki/Type_system

а то как-то неудобно даже.

[identity profile] 109.livejournal.com 2006-11-11 02:39 am (UTC)(link)
ну то есть сильную/слабую. тьфу.

[identity profile] lazy-one.livejournal.com 2006-11-07 11:10 am (UTC)(link)
А) сцылку на фаерАнт плз.
Б) а чем не язык? Не говорится же "programming language" - говорится "markup language", а XML как markup - так вполне language...

[identity profile] gds.livejournal.com 2006-11-07 06:01 pm (UTC)(link)
ХТГ!

[identity profile] mr-aleph.livejournal.com 2006-11-07 01:02 pm (UTC)(link)
и на чем же (не к ночи будет помянуто) пишутЪ нормальные Люди?

[identity profile] sply.livejournal.com 2006-11-07 01:26 pm (UTC)(link)
Небольшая мешанина или сильно "вкусовых", или просто плохо продуманных выводов. Извини, но не стоят эти размышления, чтобы их еще и через коммьюнити пропогандировать.

[identity profile] sply.livejournal.com 2006-11-07 01:26 pm (UTC)(link)
s/пропог/пропаг/. конечно

[identity profile] kukutz.livejournal.com 2006-11-07 04:05 pm (UTC)(link)
mjl69> 98.5% of dna is considered to be junk dna with no known purpose. maybe it's xml tags.

[identity profile] syarzhuk.livejournal.com 2006-11-19 03:31 pm (UTC)(link)
O!

IMHO - JS простой и удобный.

[identity profile] ivanvr.livejournal.com 2006-11-08 03:20 am (UTC)(link)
Я не нем пишу всякое барахло и горя не знаю.