Microsoft: Всеобщая json'ификация?
От: Нахлобуч Великобритания https://hglabhq.com
Дата: 19.11.15 07:59
Оценка: +15 -10
Вот что это за непотребство такое?

{
  "dependencies": {
    "Microsoft.AspNet.ConfigurationModel": { "version": "0.1-alpha-*", "options": "private" },
    "FakeToolingPackage" : {"version": "0.1", "options": "dev"},
    "SomeProject": ""
  }
}

Туда же global.json, launch.json и т.д.

Какие такие инвалиды интеллектуального труда решили взять и заменить XML-конфигурацию на JSON?
HgLab: Mercurial Server and Repository Management for Windows
Re: Microsoft: Всеобщая json'ификация?
От: Sinix  
Дата: 19.11.15 08:08
Оценка: +3
Здравствуйте, Нахлобуч, Вы писали:

Н>Какие такие инвалиды интеллектуального труда решили взять и заменить XML-конфигурацию на JSON?

Хипстеры, сэр.

Если серьёзно, то большинство людей руками туда лезть будут не чаще, чем в нынешний xml. Какая разница?
Re[2]: Microsoft: Всеобщая json'ификация?
От: andrey82  
Дата: 19.11.15 08:12
Оценка: +4
Здравствуйте, Sinix, Вы писали:

S>Хипстеры, сэр.

S>Если серьёзно, то большинство людей руками туда лезть будут не чаще, чем в нынешний xml. Какая разница?

А аналоги XSD (для того же intellisense нужно вроде) и XSLT (хочу например html справку из XML .config файла делать) для json уже существуют? Или оно не надо?
Re[3]: Microsoft: Всеобщая json'ификация?
От: Sinix  
Дата: 19.11.15 08:18
Оценка:
Здравствуйте, andrey82, Вы писали:

A>А аналоги XSD (для того же intellisense нужно вроде) и XSLT (хочу например html справку из XML .config файла делать) для json уже существуют? Или оно не надо?

Тут как всегда: в студию автодополнение добавили (вплоть до имён и версий пакетов, если не забыл), проблемы остальных шерифа не колышут.

Чисто формально json-schema есть, но до xsd ей примерно как силуминовой отвёртке до мультитула. Аналогия удачная кстати, сценарии использования тоже отражает.
Отредактировано 19.11.2015 8:20 Sinix . Предыдущая версия .
Re[2]: Microsoft: Всеобщая json'ификация?
От: Нахлобуч Великобритания https://hglabhq.com
Дата: 19.11.15 08:19
Оценка: +11 -1
Здравствуйте, Sinix, Вы писали:

S>Если серьёзно, то большинство людей руками туда лезть будут не чаще, чем в нынешний xml. Какая разница?


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

А в XML было ж всё. И комментарии эти, и трансформации, и валидация.
HgLab: Mercurial Server and Repository Management for Windows
Re: Microsoft: Всеобщая json'ификация?
От: Sheridan Россия  
Дата: 19.11.15 08:44
Оценка: +7 -1 :)))
Здравствуйте, Нахлобуч, Вы писали:

Н>Вот что это за непотребство такое?

Ну имхо json это самый удобный вариант для конфигов. Категорически прост, древовиден, структуризован, типизирован и не так наворочен, как xml.
По личному опыту: xml трудно читать, количество скобок превышает все мыслимые пределы, закрывающие теги только мешают
Matrix has you...
Re[2]: Microsoft: Всеобщая json'ификация?
От: Нахлобуч Великобритания https://hglabhq.com
Дата: 19.11.15 09:12
Оценка: +10 -1
Здравствуйте, Sheridan, Вы писали:

S>Ну имхо json это самый удобный вариант для конфигов.

Нет.

S>Категорически прост,

INI еще проще.

S>древовиден, структуризован,

Допустим.

S>типизирован

Wat?

S>По личному опыту: xml трудно читать, количество скобок превышает все мыслимые пределы, закрывающие теги только мешают

Запилы вида [{},[[{{}, [] читать еще сложнее.

И нет комментариев, Карл! Конфигурационный файл без возможности добавить в него комментарий -- это зло в чистом виде.
HgLab: Mercurial Server and Repository Management for Windows
Отредактировано 19.11.2015 9:15 Нахлобуч . Предыдущая версия .
Re[2]: Microsoft: Всеобщая json'ификация?
От: Mamut Швеция http://dmitriid.com
Дата: 19.11.15 09:14
Оценка: 1 (1) +3
Н>>Вот что это за непотребство такое?
S>Ну имхо json ... типизирован

Нифига он не типизирован. Вернее, те два с половиной яваскриптовых типа, что туда прибиты гвоздями, сложно назвать типизацией.


dmitriid.comGitHubLinkedIn
Re[3]: Microsoft: Всеобщая json'ификация?
От: sambl4 Россия  
Дата: 19.11.15 10:03
Оценка: +1
Здравствуйте, Нахлобуч, Вы писали:

S>>Если серьёзно, то большинство людей руками туда лезть будут не чаще, чем в нынешний xml. Какая разница?


Н>Как по мне, так язык разметки, в котором нет поддержки комментариев, даже не должен и рассматриваться в качестве кандидатуры на использование в конфигурационных файлах приложения.


Стандартный ответ json-фагов — можно добавить свойство "Comment"

Н>А в XML было ж всё. И комментарии эти, и трансформации, и валидация.


Но вот использовалось всё это по разному. В нашем приложении я переделывал XML сериализацию на Json, так всё стало гораздо лучше! Потому что XML был сделан вообще ужасно — он использовался только для потокового чтения и записи, но что-то найти в нём было абсолютно нереально.
Re[3]: Microsoft: Всеобщая json'ификация?
От: Sheridan Россия  
Дата: 19.11.15 10:10
Оценка: :))) :)
Здравствуйте, Нахлобуч, Вы писали:

S>>Категорически прост,

Н>INI еще проще.
Он не древовиден. Не типизирован.

S>>типизирован

Н>Wat?
"строка", 1 — число

S>>По личному опыту: xml трудно читать, количество скобок превышает все мыслимые пределы, закрывающие теги только мешают

Н>Запилы вида [{},[[{{}, [] читать еще сложнее.
Нифига. {} — хэш ключ-значение, [] — массив

Н>И нет комментариев, Карл! Конфигурационный файл без возможности добавить в него комментарий -- это зло в чистом виде.

Это зависит от того — решит ли разработчик использовать комментарии. Как минимум можно игнорировать ключи "comment".
Моя реализация читателя/писателя — умеет
Matrix has you...
Re: Microsoft: Всеобщая json'ификация?
От: Kolesiki  
Дата: 19.11.15 10:53
Оценка: +8
Здравствуйте, Нахлобуч, Вы писали:

Н>Какие такие инвалиды интеллектуального труда решили взять и заменить XML-конфигурацию на JSON?


хихи Всё ровно наоборот: со времён хэмэлеизации прошло достаточно много времени, чтобы понять: XML не стал "большим всемогутером", ибо тяжеловесен, избыточен, неудобен, да и не может "абстрактный формат" вдруг стать "всеми понимаемым". Тот же *.ini — ВСЕ программы могут без труда его прочесть, а смысл? Без семантики (и поддержки самой программой) ЛЮБОЙ формат бесполезен.
Но в чём прекрасен JSON, так это в удобстве — он читаемый, ЛЕГКО (де)сериализуемый, поддерживает все мыслимые структуры (включая циклические), ну и его современное распространение говорит само за себя! Я его юзаю практически с первых упоминаний в сети (почти лет 10) — крайне удобно, все конфиги именно в нём. Думаю, формат заслужил свою славу, обидно только, что M$ тратит столько времени на "осознание очевидного". Тот же *.sln писал какой-то имбецил с питоном головного мозга, при всём том, что даже *.csproj — XML! Неконсистентность от тех, кто учит нас жить.
Re[2]: Microsoft: Всеобщая json'ификация?
От: Sinix  
Дата: 19.11.15 11:30
Оценка: +4
Здравствуйте, Kolesiki, Вы писали:

K>Но в чём прекрасен JSON, так это в удобстве — он читаемый, ЛЕГКО (де)сериализуемый, поддерживает все мыслимые структуры (включая циклические), ну и его современное распространение говорит само за себя!


Ну так сценарии использования у них разные, чего смешивать-то?

Как показывает практика, на более-менее сложных структурах json откровенно сливает.
И по удобству редактирования, и по тулзам, и по объёму выигрыш редко превышает 20%, и отсутствие комментов/дат тоже радости не добавляет.

Чтоб далеко не ходить: xml, json. На переносы строк в json внимания не обращаем — я их для читабельности оставил. Без них вообще каша получается.
Re[2]: Microsoft: Всеобщая json'ификация?
От: Философ Ад http://vk.com/id10256428
Дата: 19.11.15 11:34
Оценка: +3
Здравствуйте, Kolesiki, Вы писали:

K>Но в чём прекрасен JSON, так это в удобстве — он читаемый...

Мне приходилось сложные править XML'ки по 500 Kb весом, и их чтение не вызывало трудностей. Сложно себе представить такого же размера json, думаю, разобраться там будет нереально.


K> Я его юзаю практически с первых упоминаний в сети (почти лет 10) — крайне удобно, все конфиги именно в нём.

Всё зависит от размера и сложности конфигов. Шарповые проекты действительно сложными бывают, особенно когда нужна условная компиляция.

K>Тот же *.sln писал какой-то имбецил с питоном головного мозга...

О да, согласен.

K>Неконсистентность от тех, кто учит нас жить.


Кто нас только не учит жить
Всё сказанное выше — личное мнение, если не указано обратное.
Re[2]: Microsoft: Всеобщая json'ификация?
От: Слава  
Дата: 19.11.15 11:48
Оценка: 7 (3) +1 :))
Здравствуйте, Kolesiki, Вы писали:

K>Здравствуйте, Нахлобуч, Вы писали:


Н>>Какие такие инвалиды интеллектуального труда решили взять и заменить XML-конфигурацию на JSON?


K>хихи :) Всё ровно наоборот: со времён хэмэлеизации прошло достаточно много времени, чтобы понять: XML не стал "большим всемогутером", ибо тяжеловесен, избыточен, неудобен, да и не может "абстрактный формат" вдруг стать "всеми понимаемым". Тот же *.ini — ВСЕ программы могут без труда его прочесть, а смысл? Без семантики (и поддержки самой программой) ЛЮБОЙ формат бесполезен.


Когда ругают XML, обычно не знают, заменой чему он является

Итак:

  Ужаснуться
ISA*00*          *01*SECRET    *ZZ*SUBMITTERS.ID  *ZZ*RECEIVERS.ID   *030101*1253*^*00501*000000905*1*T*:~
 GS*HC*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X222~
   ST*837*0021*005010X222~
     BHT*0019*00*244579*20061015*1023*CH~
     NM1*41*2*PREMIER BILLING SERVICE*****46*TGJ23~
       PER*IC*JERRY*TE*3055552222*EX*231~
     NM1*40*2*KEY INSURANCE COMPANY*****46*66783JJT~
     HL*1**20*1~
       PRV*BI*PXC*203BF0100Y~
       NM1*85*2*BEN KILDARE SERVICE*****XX*9876543210~
         N3*234 SEAWAY ST~
         N4*MIAMI*FL*33111~
         REF*EI*587654321~
       NM1*87*2~
         N3*2345 OCEAN BLVD~
         N4*MAIMI*FL*33111~
       HL*2*1*22*1~
         SBR*P**2222-SJ******CI~
         NM1*IL*1*SMITH*JANE****MI*JS00111223333~
            N3*123 TEST STREET~
            N4*AUSTIN*TX*78701~
           DMG*D8*19430501*F~
         NM1*PR*2*KEY INSURANCE COMPANY*****PI*999996666~
           REF*G2*KA6663~
         HL*3*2*23*0~
           PAT*19~
           NM1*QC*1*SMITH*TED~
             N3*236 N MAIN ST~
             N4*MIAMI*FL*33413~
             DMG*D8*19730501*M~
           CLM*26463774*100***11:B:1*Y*A*Y*I~
             REF*D9*17312345600006351~
             HI*BK:0340*BF:V7389~
              AMT*F5*10~
              NM1*77*1*SERVICE FACILITY ABC*****XX*1234567890~
                N3*STREET ABC~
                N4*CITY*ST*12345~
              NM1*82*1*RENDERING*PROVIDER****XX*1234567890~
                PRV*PE*PXC*1G1000X~
             LX*1~
               SV1*HC:99213:AA:BB:CC:DD*40*UN*1*13**1**Y~
               DTP*472*D8*20061003~
             LX*2~
               SV1*HC:87070*15*UN*1***1:2:3~
               DTP*472*D8*20061003~
                NM1*82*1*RENDERING*PROVIDER****XX*3456789012~
                  REF*1G*12345~
             LX*3~
               SV1*HC:99214*35*UN*1***2~
               DTP*472*D8*20061010~
             LX*4~
               SV1*HC:86663*10*UN*1***2~
               DTP*472*D8*20061010~
             LX*5~
               SV1*HC:99213*40*UN*1***1~
               DTP*472*D8*20061003~
             LX*6~
               SV1*HC:87070*15*UN*1***1~
               DTP*472*D8*20061003~
             LX*7~
               SV1*HC:99214*35*UN*1***2~
               DTP*472*D8*20061010~
   SE*42*0021~
 GE*1*1~
IEA*1*000000905~


Это — X12, http://www.x12.org
Отредактировано 19.11.2015 11:49 Слава . Предыдущая версия .
Re[3]: Microsoft: Всеобщая json'ификация?
От: Michael7 Россия  
Дата: 19.11.15 12:30
Оценка: +1
Здравствуйте, Слава, Вы писали:

С>Когда ругают XML, обычно не знают, заменой чему он является

С>Это — X12, http://www.x12.org

А я думал, что SGML, чьим подмножеством он является (являлся поначалу), да и html тоже. Который появился раньше. Еще ASN.1 можно вспомнить.
Re[4]: Microsoft: Всеобщая json'ификация?
От: Mr.Delphist  
Дата: 19.11.15 13:50
Оценка:
Здравствуйте, sambl4, Вы писали:

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


В чём проблема с DOM + XPath? Если объёмы громадные, то что JSON, что XML будут тупить одинаково — нужна DB в качестве "искабельного" кэша.
Re[4]: Microsoft: Всеобщая json'ификация?
От: flаt  
Дата: 19.11.15 14:11
Оценка: +1 -1
Здравствуйте, sambl4, Вы писали:

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

Что "всё" и чем "лучше"? И как json облегчает задачу "что-то найти в нём"?

xml и json могут парситься потоково (sax), могут строиться во внутреннее представление (dom).
Ещё у xml есть XPath, к json тоже можно подобное прикрутить (даже готовые реализации есть).
XSLT — у json такого нет (ошибаюсь?), но можно на любом скриптовом языке накатать.
XSD — у json нет подобной валидации.

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

То, что xml не (так) удобен для JS-программистов, не умаляет его достоинств.

Ну а касательно легкости чтения — json всё же сложнее читать, особенно, если начать с середины — по закорючкам сложно выбраться на нужный уровень (привет, cdecl.org)!, а по открывающим и закрывающим тегам xml таки проще это сделать.
Re[3]: Microsoft: Всеобщая json'ификация?
От: Sheridan Россия  
Дата: 19.11.15 14:36
Оценка: :))) :)))
Здравствуйте, Sinix, Вы писали:

S>Как показывает практика, на более-менее сложных структурах json откровенно сливает.

Ты хотел сказать — xml.

Даже по твоим ссылкам видно:
S>Чтоб далеко не ходить: xml, json. На переносы строк в json внимания не обращаем — я их для читабельности оставил. Без них вообще каша получается.
В xml каша из тегов, в json чётко видно что к чему
Matrix has you...
Re: Microsoft: Всеобщая json'ификация?
От: vsb Казахстан  
Дата: 19.11.15 15:57
Оценка: 3 (1) +17 -1 :)))
Это называется мода. Был нормальный XML. Кучу инструментов для него придумали: простой декларативный DTD, мощнейшая XML Schema, какие-то Schematron-ы, XSLT и многое другое. Чуть ли не программы можно уже писать на этом XML-е. Но нет, он стал немоден, каждый уважающий себя студентик начал плеваться, как же так, в великом JavaScript-е ведь его неудобно использовать, какие-то XPath-ы надо учить, мне бы попроще чего, а давайте прямо этот жаваскрипт возьмём и запишем в файл. Лисперы тут икать начали.

Моё имхо — XML в текущий момент это шикарный инструмент. С прописанной грамотной XML Schema та же Intellij Idea позволяет писать этот XML практически как Java — на лету проверяет соответствие схеме, вываливает правильные автодополнения, ну ё-моё, чего ещё надо-то? А JSON — убожество, которое можно юзать только пока размер документа крошечный. А когда окунаешься в реальный мир и видишь там
                      }
                    }
                  }
                ]
              }
            }
          ]
        }

то хочется немного старого доброго XML-я с закрывающими тегами.
Отредактировано 19.11.2015 16:00 vsb . Предыдущая версия .
Re[2]: Microsoft: Всеобщая json'ификация?
От: Sheridan Россия  
Дата: 19.11.15 17:02
Оценка: +1 -7
Здравствуйте, vsb, Вы писали:

vsb> А когда окунаешься в реальный мир и видишь там

vsb>то хочется немного старого доброго XML-я с закрывающими тегами.

А казалось бы, всего лишь навсего нужно открыть в редакторе с подсветкой блоков. Так нет же, ведро жидкого же вылить надо.
Matrix has you...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.