juan_gandhi: (Default)
Juan-Carlos Gandhi ([personal profile] juan_gandhi) wrote2010-02-10 04:28 pm

protocol to use

Тут уговорил коллег плюнуть на всю эту пропраетари хренопень и просто пользоваться джейсоном. Главное что удобно - какой бы у тебя ни был язык (хоть пролог) - пошел на json.org, скопировал зип с библиотекой (с сырцами), поставил - и работает. И на хрена все эти xml, yaml, rss, и прочая белиберда? Что ещё любопытно, это, собственно, означает победу языка джаваскрипт над всей этой хренопенью вообще.

Вот когда всякая апликация сможет интерпретировать джаваскрипт (т.е. будет внутри себя содержать интерпретатор лиспа), и когда народ осознает, что в джаваскрипте trampolining, folds, monads, shift/reset пишутся одной левой с закрытыми глазами, то возникнет вопрос: а на хрена нам весь этот тяжелый бред, наследие прошлого, который мы так упорно учили все эти годы? Все эти плапласы, джавы, шарпы, руби, пытоны, скалы - если достаточно Хаскеля для системных задач (написание ядра апликации) - и народу столько не надо будет, сколько сейчас роится, мучаясь с шарпами и плюсами, а сверху скриптовый язык джаваскрипт (может, его переименовать уже как-нибудь, бросив это дурацкое маркетинговое слово семнадцатилетней давности? назвать его веблисп, скажем? или просто лисп-2?)

Хмм... следует ли это всё изложить на десяти страницах крупным шрифтом с примерами?

[identity profile] besisland.livejournal.com 2010-02-11 12:35 am (UTC)(link)
Да.

[identity profile] orleanz.livejournal.com 2010-02-11 12:39 am (UTC)(link)
" назвать его веблисп, скажем?

Липс! Губы! Будет секси. И с языком связано ...

Я не издеваюсь, я сам его очень люблю и хочу в нем детально разобраться.

[identity profile] ivan-gandhi.livejournal.com 2010-02-11 12:44 am (UTC)(link)
Хорошая идея. И песен много про это дело. И в фольклор хорошо пойдёт.

(no subject)

[personal profile] petropavel - 2010-02-11 06:06 (UTC) - Expand

[identity profile] uncle-lex.livejournal.com 2010-02-11 12:43 am (UTC)(link)
По-моему, стоит. Уж очень интересно посмотреть, как это всё С# заменить может.

[identity profile] ivan-gandhi.livejournal.com 2010-02-11 12:45 am (UTC)(link)
Кстати, возникает уже такое ощущение, что всё это навеяно книгой "Дюна".

(no subject)

[identity profile] uncle-lex.livejournal.com - 2010-02-11 00:56 (UTC) - Expand

(no subject)

[identity profile] ivan-gandhi.livejournal.com - 2010-02-11 01:13 (UTC) - Expand

[identity profile] hill-report.livejournal.com 2010-02-11 01:02 am (UTC)(link)
кругом сплошное телевидение...(c)

а если я получил сообщение по сети, и в течение 25 миллисекунд мне надо отправить ответ. когда хоп запускается какой-нибудь haskell garbage collection который невозможно контролировать, и приехали.

чем больше я пишу на С++ тем больше люблю собак понимаю Страуструпа который решил запретить топологию automatic memory management

[identity profile] ivan-gandhi.livejournal.com 2010-02-11 01:14 am (UTC)(link)
Об аналогичном случае подробно может рассказать [livejournal.com profile] _navi_, который любит баловаться по долгу службы с real-time Java.

В целом-то, имхо, если preemptive interrupts нету, то всё это... всё это... всё это игрушки одни (имхо, конечно).

(no subject)

[identity profile] hill-report.livejournal.com - 2010-02-11 05:06 (UTC) - Expand

(no subject)

[identity profile] vit-r.livejournal.com - 2010-02-12 11:35 (UTC) - Expand

Пожалуйста, изложите крупным шрифтом с примерами!

[identity profile] schegloff.livejournal.com 2010-02-11 04:22 am (UTC)(link)
Мне за AJAX даже браться страшно, а может быть, и не так страшен черт?

Re: Пожалуйста, изложите крупным шрифтом с примерами!

[identity profile] ivan-gandhi.livejournal.com 2010-02-11 05:08 am (UTC)(link)
Хрен ли там браться. Два прихлопа три притопа. Главное - "существующие фреймуорки" послать. Потом, если захочется, взять - но начать со скелета. json.org на серверной стороне; eval на клиентской.

[identity profile] nivanych.livejournal.com 2010-02-11 05:09 am (UTC)(link)
Назревает революционная ситуация? ;-)

[identity profile] tretiy3.livejournal.com 2010-02-11 05:17 am (UTC)(link)
да. конечно следует.

[identity profile] mikkim08.livejournal.com 2010-02-11 06:09 am (UTC)(link)
Да, следует изложить ! Я бы с удовольствием почитал. Только боюсь, что код на хаскеле не пойму.

[identity profile] migmit.vox.com (from livejournal.com) 2010-02-11 06:11 am (UTC)(link)
У жабоскрипта есть свои недостатки. И их довольно много. Может, лучше бы тикль?
wizzard: (Default)

[personal profile] wizzard 2010-02-11 06:58 am (UTC)(link)
Следует. А вообще JS неидеален (нэймспэйсы бы ему, хотя бы)

Но мысль, мысль хороша.

[identity profile] buldozr.livejournal.com 2010-02-11 07:17 am (UTC)(link)
Зачем мучить людей Хаскелем, когда критичные внутренности можно тупо написать на C (чтобы оптимизация была видна без PhD по функциональному программированию), а сверху скриптовый язык - Javascript или Python?

[identity profile] alexott.livejournal.com 2010-02-11 08:37 am (UTC)(link)
критичные внутренности на С - вы издеваетесь?

(no subject)

[identity profile] buldozr.livejournal.com - 2010-02-11 10:35 (UTC) - Expand

(no subject)

[identity profile] alexott.livejournal.com - 2010-02-11 10:36 (UTC) - Expand

(no subject)

[identity profile] buldozr.livejournal.com - 2010-02-11 10:40 (UTC) - Expand

(no subject)

[identity profile] alexott.livejournal.com - 2010-02-11 10:53 (UTC) - Expand

(no subject)

[identity profile] buldozr.livejournal.com - 2010-02-11 11:12 (UTC) - Expand

(no subject)

[identity profile] alexott.livejournal.com - 2010-02-11 13:03 (UTC) - Expand

да! изложите пожалуйста

[identity profile] freedom_of_sea.livejournal.com 2010-02-11 07:49 am (UTC)(link)
я например впервые узнал что джаваскрипт это лисп. Но я конечно лузер.

Re: да! изложите пожалуйста

[identity profile] alexott.livejournal.com 2010-02-11 08:38 am (UTC)(link)
ну не лисп, а схема :-)

[personal profile] alll 2010-02-11 08:26 am (UTC)(link)
Изложить обязательно. Хотя бы для приведения умов к общему знаменателю.

А почему умение интерпретировать джаваскрипт означает интерпретатор лиспа внутри?

[identity profile] dkfl.livejournal.com 2010-02-11 09:21 am (UTC)(link)
хренасе, JS это Лисп?

[identity profile] orleanz.livejournal.com 2010-02-11 10:42 am (UTC)(link)
прочитайте короткую статью Крокфорда

JavaScript:
The World's Most Misunderstood Programming Language

http://www.crockford.com/javascript/javascript.html

цитата

Lisp in C's Clothing

JavaScript's C-like syntax, including curly braces and the clunky for statement, makes it appear to be an ordinary procedural language. This is misleading because JavaScript has more in common with functional languages like Lisp or Scheme than with C or Java. It has arrays instead of lists and objects instead of property lists. Functions are first class. It has closures. You get lambdas without having to balance all those parens.

(no subject)

[identity profile] ex-vdom.livejournal.com - 2010-02-12 09:20 (UTC) - Expand

[identity profile] buldozr.livejournal.com 2010-02-11 10:45 am (UTC)(link)
Противопоставлять JSON и XML, по-моему, некорректно (кстати, для XML библиотек уж точно больше). JSON годится, если нужно представлять произвольные структуры данных в виде текстового потока.

[identity profile] jakobz.livejournal.com 2010-02-11 10:48 pm (UTC)(link)
Больше библиотек, меньше, главное что они есть и для того, и для того, для всех языков и платформ.

Насчет сравнивать XML и JSON. Вот что есть такого в XML, чего нет в JSON?

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

XSLT? В топку, однозначно. Я тут пописал шаблонов к сайту на XSLT, теперь мне больно от одной мысли с ним еще раз связаться. Есть масса шаблонных движков с вменяемым синтаксисом и семантикой.

Неймспейсы? На практике они кроме как для XSLT и XSD нигде не требуются.

DOM? Я лучше уж все сразу десериализую в структуры данных моего языка, чем буду танцевать с DOM.

SAX? Если из десятимегабайтного XML нужно десять строчек достать - что-то где-то значит не так. Других применений не видел, т.к. если нужны все данные файла, используется сериализация. К слову, не вижу причин, по которым такое же нельзя сделать с JSON.

Или я упускаю чего?

(no subject)

[identity profile] buldozr.livejournal.com - 2010-02-12 06:40 (UTC) - Expand

(no subject)

[identity profile] sorhed.livejournal.com - 2010-02-12 10:55 (UTC) - Expand

(no subject)

[identity profile] jakobz.livejournal.com - 2010-02-12 12:17 (UTC) - Expand

[identity profile] vit-r.livejournal.com 2010-02-11 11:48 am (UTC)(link)
Десять лет назад я то же самое слышал про Оберон 2. Почти слово в слово.
И где сейчас тот Оберон?
А лет двадцать назад про Шлейер-Меллора, Пролог и пр.

Есть очень много объективных и необъективных причин, почему этим мечтам не суждено сбыться.

[identity profile] vit-r.livejournal.com 2010-02-11 11:49 am (UTC)(link)
"не суждено" - в смысле промышленном и коммерческом.

(no subject)

[identity profile] orleanz.livejournal.com - 2010-02-12 11:15 (UTC) - Expand

(no subject)

[identity profile] vit-r.livejournal.com - 2010-02-12 11:38 (UTC) - Expand

(no subject)

[identity profile] orleanz.livejournal.com - 2010-02-12 12:27 (UTC) - Expand

[identity profile] softmaster.livejournal.com 2010-02-11 03:38 pm (UTC)(link)
Присоединяюсь к предыдущим ораторам - изложите 10 страниц примеров плз %)

[identity profile] fantaseour.livejournal.com 2010-02-11 08:45 pm (UTC)(link)
yaml иногда быфвает ну очень удобен. конфиги писать всякие разные, схемы данных -- не писать же это на джейсоне...

на yml изящненько выходит... очень мне нравится, гораздо красивее хренопени.

[identity profile] ivan-gandhi.livejournal.com 2010-02-11 10:14 pm (UTC)(link)
А что бы и на джейсоне не написать? Отформатировать только грамотно.

(no subject)

[identity profile] fantaseour.livejournal.com - 2010-02-11 22:28 (UTC) - Expand

[identity profile] jakobz.livejournal.com 2010-02-11 09:54 pm (UTC)(link)
JSON вместо XML - согласен. Кроме случаев когда нужны неймспейсы, но случаи, когда нужны неймспейсы (XSLT, например) - в топку.

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

[identity profile] ivan-gandhi.livejournal.com 2010-02-11 10:08 pm (UTC)(link)
О, согласен по многим пунктам.

Насчёт неймспейсов уже чуть не десять лет пытаюсь втолковать - без толку.

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

(no subject)

[identity profile] buldozr.livejournal.com - 2010-02-12 06:49 (UTC) - Expand

(no subject)

[identity profile] ivan-gandhi.livejournal.com - 2010-02-12 07:18 (UTC) - Expand

(no subject)

[identity profile] buldozr.livejournal.com - 2010-02-12 17:38 (UTC) - Expand

[identity profile] http://users.livejournal.com/_san/ 2010-02-11 10:17 pm (UTC)(link)
Можно про monads на жабоскрипте поподробнее?

[identity profile] ivan-gandhi.livejournal.com 2010-02-12 07:15 am (UTC)(link)
http://www.ajaxwith.com/JavaScript-Monads.html

http://groups.google.com/group/scala-base/browse_thread/thread/a236ebce5977f29b/5b726d85a838b37b?show_docid=5b726d85a838b37b

[identity profile] cema.livejournal.com 2010-02-11 10:25 pm (UTC)(link)
Зачем джаваскрипту монады?

А так, конечно, json лучше. Хотя rss, ну или какой-то фид, всё-таки надо.

[identity profile] jakobz.livejournal.com 2010-02-11 11:46 pm (UTC)(link)
Вспомнил одну вещь. Если есть SOAP-вебсервис, то, как правило, он же может отдать XSD-схему запросов/ответов. По этой схеме для типизированного языка можно автоматически сгенерить что-то, через что удобно работать с сервисом. Например отмепленные на XML классы, в случае C#.

От этого нет никаких бонусов если сервис используется приложениями, написанными на одном и том же языке - проще написать один раз эти классы и везде использовать. Также от этого нет бонусов в случае, если есть только один статически типизированный язык, например в случае C# на сервере и javascript на клиенте.

Но если к сервису цепляются, из чего-то, написанного на другом типизированном языке, то это очень удобно. Такая получается кросс-платформенная типизация: схема сервиса меняется, на другой стороне обновляются прокси и компилятор проверяет не пихает ли кто float в int.

Для JSON я адекватной замены этому механизму не знаю. Даже если ее придумать, нужен будет четкий стандарт и инструментальная поддержка. А это далеко не так просто.

Так что в определенных случаях лучше все-таки SOAP.

[identity profile] internaldust.livejournal.com 2010-02-14 03:03 pm (UTC)(link)
по-моему единственным преимуществом xml перед json-ом следует иметь ввиду возможность определения локали для ноды.