LINUX.ORG.RU
ФорумTalks

Интервью с Дугласом Крокфордом - создателем JSON

 


3

2

Дуглас Крокфорд - американский программист, занимающийся разработкой с 80х годов, работал в компании Atari, на студии Lucasfilm, был основателем нескольких стартапов.

Известен созданием формата обмена данными JSON, разработкой линтера JSLint, минификатора JSMin, разработкой типа для представления десятичных чисел с плавающей точкой DEC64. Является участником комитета по стандартизации TC39, принимал активное участие в разработке спецификации ECMAScript 2015 (ES6). Автор нескольких книг по JavaScript.

Интервью на русском языке выложено на youtube-канале https://www.youtube.com/watch?v=WSqCpWYfTFU

Основные тезисы:
  • Программистом стоит быть только если вы любите программировать
  • Дуглас начинал свою карьеру в качестве разработчика видео-игр, но сам в игры не играет
  • JSON хорош тем, что он всегда останется таким, какой он есть. Но если бы Дуглас разрабатывал его сейчас, то он бы его еще больше упростил
  • TypeScript не нужен
  • Статическая и сильная типизация не нужна. Динамическая и свободная система типов дает больше выразительности, возможностей и экономит время
  • Дуглас не доволен множеством нововведений в JS и он пользуется только подмножеством языка, как всегда и декларировал. Ему не нравится реализация Promise и он считает сахар async/await лишним.
  • 20-ти летние сеньоры были всегда, даже во времена его молодости. Это не веяние моды
  • Он ничего не знает и никогда не слышал о таких компаниях как Тинькофф, Сбербанк, Авито и Яндекс
  • Тесты на знания алгоритмов при приеме на работу бесполезны. Программистов надо отбирать по примерам их кода.
  • Чтобы стать крутым нужно постоянно учиться


Последнее исправление: javascript (всего исправлений: 3)

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

гоните его!

alysnix ★★★
()

Ему не нравится реализация Promise и он считает сахар async/await лишним

Колбечную лапшу бы поразгребал за 20-летними сеньёрами, сразу бы по-другому запел.

crutch_master ★★★★★
()

Он ничего не знает и никогда не слышал о

Типичный америкос.

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

Типичный разраб.

Динамическая и свободная система типов дает больше выразительности

Типичная хипстерская макака.

system-root ★★★★★
()
Ответ на: комментарий от javascript

Пол Грэм того же мнения

гнать туда же, куда и первого!

alysnix ★★★
()

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

Вебмакака.

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

Читал его книжку, норм чел

Да? тогда сперва напоить чайком!..а потом гнать.

alysnix ★★★
()

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

Отличный пример того что в IT не должно быть авторитетов. Человек сделавший хорошую штуку в одном месте, в другом может быть некомпетентным ламом, которому не должны разрешать рот свой открывать.

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

хорошую штуку

Это ты про вырвиглазное говнище, которые из-за засилья жабаскриптовых макак отовсюду вытеснило красивый, человекочитаемый XML? Лучше б он ограничился высказыванием авторитетных мнений…

token_polyak ★★★★
()
Последнее исправление: token_polyak (всего исправлений: 1)
Ответ на: комментарий от javascript

«динамический тип» не дает возможность статически проверить и скомпилировать вызов метода. фактически все методы становятся «виртуальными», и искать актуальный надо в рантайме надо через его имя в какой-то типа мэпе имя->метод. то есть производительность немедленно падает, причем серьезно. куда там растет «выразительность» не совсем понятно, поскольку возможность налепить ошибок бескрайне возрастает. то есть жертвовать производительностью и большей корректностью ради какой-то «выразительности», может только человек некрепкого ума.

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

человекочитаемый XML

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

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

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

согласен. xml изобретали в наркотическом бреду..узнать бы кто это сделал…

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

Папилломавирус тоже весьма успешен.

Отличная демонстрация ложной аналогии.

javascript
() автор топика

Но если бы Дуглас разрабатывал его сейчас, то он бы его еще больше упростил

Интересно было бы взглянуть на эту упрощенную версию

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

Не думаю, что там что-то особенное. Он сказал только о количестве пунктуации. Например о том, что слишком много лишних кавычек.

Когда Крокфорд разрабатывал JSON, он был точным отражением синтаксического представления JS-объектов. С тех пор в js многое изменилось - кавычки в ключах стали необязательны в большинстве случаев, ввели висящие запятые и так далее. Если бы синтаксис js-объектов был таким во времена формализации json, то скорее всего это все было бы в нем отражено.

В итоге получилось бы то, чем сейчас является JSON5.

javascript
() автор топика

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

Время экономит. Время создателей описания и компиляторов языка.

GPFault ★★
()
  • TypeScript не нужен
  • Статическая и сильная типизация не нужна. Динамическая и свободная система типов дает больше выразительности, возможностей и экономит время
  • Ему не нравится реализация Promise и он считает сахар async/await лишним.

Дед сильно сдал. Он и раньше иногда странное ляпал, но не в таком количестве.

В жисоне до сих пор комментариев нельзя, стыдоба.

Vit ★★★★★
()

TypeScript не нужен

Как же приятно это слышать.

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

neversleep ★★
()
Последнее исправление: neversleep (всего исправлений: 2)
Ответ на: комментарий от Vit

В жисоне до сих пор комментариев нельзя, стыдоба.

В жисоне никогда и не будет. Он и говорит, что стабильность и неизменность формата - это главное преимущество.

Комментарии есть в JSON5.

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

Когда Крокфорд что-то ляпает, хочется глаза протереть и спросить, писал ли он на яваскрипте что либо длиннее ста строк. Он реально много полезного сделал, но о программировании частенько сущий ад извергает.

Жисон5 не взлетел.

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

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

Вряд ли бы он стал делать такие заявления в паблик голословно. Да и за плечами у него огромный опыт не только на js же.

Жисон5 не взлетел.

Значит, комментарии в жисоне никому и не нужны.

javascript
() автор топика
Последнее исправление: javascript (всего исправлений: 1)
Ответ на: комментарий от Vit

писал ли он на яваскрипте что либо длиннее ста строк

Так ведь если жабоскрипта получается больше ста строк это значит что что-то изначально было сделано неправильно. :)

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

Вряд ли бы он стал делать такие заявления в паблик голословно. Да и за плечами у него огромный опыт не только на js же.

Ссылки на авторитет не могут пофиксить откровенный бред.

Насчет того какой он программист… Из того что помню - его собственный линтер быстренько сдулся, в пользу jshint, который потом тоже сдулся в пользу eslint.

Ну то есть он выдает какие-то мощные концепции, но по части программирования выглядит бледновато.

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

Значит, комментарии в жисоне никому и не нужны.

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

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

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

Я про то, что JSON сам по себе все равно никак не изменится - это априори невозможно, ибо он должен быть обратно совместим именно в плане поддержки старых парсеров, а не только поддержкой старого формата новыми парсерами. Так или иначе JSON с комментариями - это был бы отдельный формат. Такой уже есть - JSON5, и с комментариями и с блекджеком. И он ровно как JSON когда-то, реализован отдельной библиотекой как PoC. Если бы он взлетел и стал бы повсеместно применяться, как в свое время JSON, его бы так же протащили везде нативно. Но он не взлетел и не применяется, а значит комментарии никому не нужны.

С wasm’ом опять неверная аналогия. Это как раз пример того, как потребность привела к унификации. Все пытались так или иначе затащить низкоуровневое программирование в браузер, кто-то NAPI, NaCL, кто-то asm.js - то есть все пытались использовать, потому что была потребность. И эту потребность удовлетворили.

А json с комментариями никто не использует. Выходит и потребности такой нет.

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

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

javascript
() автор топика
Последнее исправление: javascript (всего исправлений: 3)
Ответ на: комментарий от javascript

он как раз и сказал, что те, кто говорят о том, что большие программы можно писать только на статических языках, а динамические для этого не пригодны - лжецы.

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

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

красивый, человекочитаемый XML

/0

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

С wasm’ом опять неверная аналогия. Это как раз пример того, как потребность привела к унификации.

Ты еще скажи, что яваскрипт взлетел благодаря потребности в нем. Язык-то никогда звезд с неба не ловил.

А json с комментариями никто не использует. Выходит и потребности такой нет.

IMHO ты «систематическую ошибку выжившего» задвигаешь.

Если все едят кактус, это не значит что жрать кактусы нормально и что кактусы надо нахваливать.

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

Это только в последние годы хоть как-то наладилось. А до 2015 было сраное говно и стагнация. Но JS уже выплыл и всех победил на вебе.

Vit ★★★★★
()
Последнее исправление: Vit (всего исправлений: 1)

Так вот из-за кого вместо божественного xml теперь везде используется хипстерское угробище - json.

Reset ★★★★★
()

TypeScript не нужен

Чертовски прав.

Тесты на знания алгоритмов при приеме на работу бесполезны. Программистов надо отбирать по примерам их кода.

Есть ведь ещё адекватные люди. Надо ему ненадолго возглавить какую-нит HR службу, чтобы вытряхнуть из них всю ту фигню, что они творят.

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

Только неучи называют простейший код с обходом массивов «алгоритмами».

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

Ты еще скажи, что яваскрипт взлетел благодаря потребности в нем. Язык-то никогда звезд с неба не ловил.

Разумеется благодаря потребности. Но не в нем, а во встраиваемом языке для веб-платформы. JS победил заслужено во вполне конкурентной борьбе. Сам Айк везде и на форумах и у себя в твиттере пишет, что 10 дней на разработку (которые на самом деле занимали три месяца), а 10 дней это срочный релиз - были обусловлены тем, что если бы не они - победил бы VBScript. И даже после этого, IE вышел на пьдестал лидера на долгие годы и поддержка VBS в нем была все это время. В те же еще 90е предпринимались попытки (еще даже до js) запилить в браузер python, были PoC в виде плагинов, но ничего не вышло, потому что питон изначально не встраиваемый язык. Были и другие попытки.

Да и после JS была куча конкурентов в виде каких-нибудь java-апплетов (они в браузерах тоже появились раньше жса), сервелайта, и даже кроссбраузерного флеша. И возможностей пилить PoCи других языков во все браузеры тоже была долгие годы как на тарелочке, но этим никто не пользовался или попытки оказывались неудачными.

JS победил на своем поле вполне заслужено, и эволюционировал со временем в соответствии с потребностями. То, что почти никто не увидел в свое время потенциала в этой нише и не решился соревноваться - это не проблемы жс.

А потребность разумеется была, и он ее закрыл.

«систематическую ошибку выжившего» задвигаешь.

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

Если все едят кактус, это не значит что жрать кактусы нормально и что кактусы надо нахваливать.

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

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

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

javascript
() автор топика
Последнее исправление: javascript (всего исправлений: 3)
Ответ на: комментарий от Reset

Миллионы мух и не ошибаются. Для них то, о чем ты думаешь - это полезная и естественная среда. Ты же не считаешь, что ты ошибаешься, когда носишь, например, одежду. Ну, а если ты лезешь в то, что является для мух естественным, а для тебя нет - то ошибку допускаешь ты, а не мухи идиоты.

Или ты себя тоже считаешь мухой, но которой при этом не приятен навоз?

javascript
() автор топика
Ответ на: комментарий от Vit

В жисоне до сих пор комментариев нельзя, стыдоба.

А смысл в комментариях при обмене данными? Кто их читать будет?

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

Надо ему ненадолго возглавить какую-нит HR службу

Он и рассказывает это из своего опыта о том, как собеседовал кандидатов.

Сейчас Крокфорд в основном книжки пишет. Говорит, в данный момент пишет книжку по математике, которая будет как JSON для мира, где был только XML, только о математике.

javascript
() автор топика

создателем JSON

Вообще, выглядит так, будто взял старый добрый питоний dict и заменил True на true, а False - на false...

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

крупинку того, что приносил ему Эдди.

Я щитаю, надо сменить пароль Эдди, организовать экспедицию на Кавказ и насильно залогинить Эдуарда.

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

Вообще-то он просто взял буквально синтаксис описания объектов из JS, времен ES3, и исключил из него литерал функциональных объектов, оставив только базовые примитивы и сами объекты. Первая версия функции JSON.parse - это eval, буквально. При чем тут питон вообще, если сама аббревиатура JSON декларирует что откуда взялось.

javascript
() автор топика
Последнее исправление: javascript (всего исправлений: 2)
Ответ на: комментарий от javascript

JS победил на своем поле вполне заслужено, и эволюционировал со временем в соответствии с потребностями. То, что почти никто не увидел в свое время потенциала в этой нише и не решился соревноваться - это не проблемы жс.

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

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

Ты уже выдвинул ложную предпосылку («никем не использовалось»), и поэтому хочешь не корректных доказательств, которые выглядят логичными только в твоей голове.

Под свершившиеся факты можно подогнать абсолютно любую теорию. Ты вот подгоняешь утверждение, что если жысон выплыл, то он идеален, а все остальное не выплыло потому что ненужно. В таких процессах столько рандома, что объяснять их логикой - надо быть большим оптимистом, с непоколебимой верой во все хорошее.

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