Сайт как свадебный торт. Заказали и ешьте. А то торт потом после испекания ещё допиливают, обсуждают. Комедия.
Подавляющее большинство пекарен, предлагающих изготовление свадебных тортов (одна — по собственному опыту), в погоне за выгодой поступают недобросовестно: пользуясь жесткостью сроков, малой вероятностью отказа от работы, они экономят на исходных продуктах и объеме работ — все равно заказчикам приходится забирать то, что состряпали. И к другим не пойдешь — сроки уже вышли. И рынок переполнен, так что для каждой такой пекарни найдутся клиенты, на которых можно будет сэкономить.
Похоже, аналогичная ситуация происходит и с веб-студиями.
> Разное: отображение статистики внутренней страницы для W3C
Вторая строка W3C часто получает таймаут. По-видимому, дело в том, что запросы отсылаются параллельно, и сервер валидации как-то их прореживает. Возможно, второй запрос нужно отсылать с некоторой задержкой. А вот сами ссылки, на которые переход идет по клику, совпадают.
Еще, возможно, стоит кэшировать результаты, а то при каждом открытии поп-апа они загружаются, а для W3C ответ приходит небыстро. В случае кэширования добавить кнопку «Обновить».
Результат W3C Validator хотелось бы получать для конкретной страницы, а не для домена.
При запуске на этой странице сейчас валидируется корневая: validator.w3.org/check?uri=habrahabr.ru
— вывело полученный объект. Вы какой версией jQuery и какой функцией получаете? Можно использовать getJSON, либо посмотреть параметры jQuery.ajax, которые она устанавливает (обработка ошибок должна быть через возвращаемый Deferred).
Согласен, что не ограничивается. Но, стандартная библиотека, содержащая много таких специализированных структур данных, будет большой по объему и медленно прогрессирующей. Какой в этом смысл для быстро развивающихся веб-приложений? Кто эту библиотеку будет поддерживать, ведь на это необходимы немалые ресурсы?
Сейчас есть много маленьких открытых библиотек, каждая из которых предоставляет строго определенные функции и слабо зависима от других библиотек, как по коду, так и по сообществу разработчиков. За счет этого возникает конкуренция и развитие, появляются новые библиотеки, более эффективно реализующие уже известную функциональность.
Один из примеров: Crossroads.js — одна из реализаций паттерна Route/Dispatch — паттерн довольно стандартный для веб-приложений, можно было бы включить в «стандартную» библиотеку. Но, раз появляется такое большоеколичество альтернативных реализаций, значит, какая-то одна из них многих не устраивает. А из альтернатив обычно можно выбрать наиболее подходящую для Вашего ПО, и не быть загнанным в рамки стандартной библиотеки.
Другой пример: succint trie для эффективного хранения массивов слов вряд ли войдет в «стандартную» библиотеку — слишком специализировано (далеко не всем нужно хранить большие массивы слов). Но, тем не менее, для Вашего прикладного ПО такая функциональность может понадобиться, и вы ее подключите без проблем при необходимости.
Обычно, если Вы находите замену для функций, реализованных в рамках стандартной библиотеки, то последняя становится больше грузом, от которого невозможно избавиться, чем полезным подспорьем. И, опять же, обычно, бывает так, что заменяются не все функции, поэтому полностью избавиться от нее полностью невозможно. Да, можно организовать «стандартную» библиотеку в виде модулей — но тогда они по сути ничем не будут отличаться от уже существующих и, зачастую, признанных сообществом, открытых библиотек.
Никто не мешает крупным компаниям выпускать свои библиотеки и разрабатывать стандарты. Например, компания Zend вообще переписала движок PHP, а также разработала собственный фреймворк, который стал популярным в настоящее время, поэтому можно назвать его одним из стандартов в среде PHP. Google, в свою очередь, разработала Closure Library для JavaScript — чем не стандарт, который может принять разработчик при поиске средства реализации того или иного проекта.
Еще одно следствие наличия одной «стандартной» библиотеки — невозможность в короткие сроки предложить что-то, возможно, лучшее, взамен: огромные усилия требуются создателям Mono при повторной реализации созданной Microsoft'ом «стандартной библиотеки», чтобы обеспечить совместимость прикладных программ.
Подводя итоги: я за то, чтобы в базовой функциональности было только самое необходимое. Пусть разработчики движков хотя бы о реализации этого договорятся между собой. Остальное должно оставаться почвой для конкуренции.
P.S. Насколько я знаю, CIL — это объектно-ориентированный ассемблер, то есть для него определена только архитектура виртуальной машины и система команд. Классы и объекты, входящие в «стандартную библиотеку» (например, Microsoft .NET) — это уже более высокий уровень. Они предназначены для исполнения на этой виртуальной машине и будут предоставлять некий программный интерфейс в её терминах, а реализованы будут либо на CIL, либо, в угоду оптимизации, написаны или скомпилированы из CIL в процессоро-зависимые инструкции.
Стандартной библиотеки для делания чего? В JavaScript есть встроенные в язык массивы, словари, определены операции над ними, определены классы и объекты для работы со строками, со временем, есть математические функции.
Это то, что касается непосредственно языка. Всё остальное — варианты использования этого языка в различных средах. Классы и объекты, описывающие среду исполнения, могут различаться.
Например, в node.js может, в отличие от браузера, не быть понятия Window, зато будет HttpServer — какой смысл всё это включать в одну, «стандартную» библиотеку?
Все-таки, доступ к железу будет обеспечивать ядро Linux. А браузер будет обращаться к драйверам, к файловой системе (это уже далеко не железо) — точно так же происходит и в нынешних ОС.
Единственное отличие — графический интерфейс реализован с помощью веб-движка. Все равно существует прикладная программа «Браузер» (пусть, написанная с использованием веб-технологий), которая использует графический интерфейс (читайте, встроенный веб-движок + фреймворк Gaia) для отображения элементов управления и веб-страниц.
Может, не совсем по существу, но все же не стоит вводить читателей в заблуждение такими фразами:
не имеет операционной системы в традиционном понимании этого слова
и, в то же время,
Boot2Gecko — полностью открытая платформа на базе ядра Linux.
Операционная система, в традиционном понимании этого слова, — это прослойка между аппаратурой и прикладными программами. Её не может не быть на устройстве.
habrahabr.ru/post/142060/#comment_4751527
lmgtfy.com/?q=i2p+%D0%BA%D0%B8%D1%82%D0%B0%D0%B9
forum.i2p2.de/viewtopic.php?t=7040
Подавляющее большинство пекарен, предлагающих изготовление свадебных тортов (одна — по собственному опыту), в погоне за выгодой поступают недобросовестно: пользуясь жесткостью сроков, малой вероятностью отказа от работы, они экономят на исходных продуктах и объеме работ — все равно заказчикам приходится забирать то, что состряпали. И к другим не пойдешь — сроки уже вышли. И рынок переполнен, так что для каждой такой пекарни найдутся клиенты, на которых можно будет сэкономить.
Похоже, аналогичная ситуация происходит и с веб-студиями.
www.youtube.com/watch?v=mT3vfSQePcs
www.youtube.com/watch?v=vXjVFPosQHw
www.slideshare.net/nzakas/scalable-javascript-application-architecture
На пустых вкладках открывается пустой поп-ап.
> Разное: отображение статистики внутренней страницы для W3C
Вторая строка W3C часто получает таймаут. По-видимому, дело в том, что запросы отсылаются параллельно, и сервер валидации как-то их прореживает. Возможно, второй запрос нужно отсылать с некоторой задержкой. А вот сами ссылки, на которые переход идет по клику, совпадают.
Еще, возможно, стоит кэшировать результаты, а то при каждом открытии поп-апа они загружаются, а для W3C ответ приходит небыстро. В случае кэширования добавить кнопку «Обновить».
P.S.
<div class="kitajskiyKod ...
— это сильно!При запуске на этой странице сейчас валидируется корневая: validator.w3.org/check?uri=habrahabr.ru
— вывело полученный объект. Вы какой версией jQuery и какой функцией получаете? Можно использовать getJSON, либо посмотреть параметры jQuery.ajax, которые она устанавливает (обработка ошибок должна быть через возвращаемый Deferred).
Текст сам делается прозрачным, и ему добавляется тень под цвет текста.
Ну а идея и реализация понравились, красиво.
Сейчас есть много маленьких открытых библиотек, каждая из которых предоставляет строго определенные функции и слабо зависима от других библиотек, как по коду, так и по сообществу разработчиков. За счет этого возникает конкуренция и развитие, появляются новые библиотеки, более эффективно реализующие уже известную функциональность.
Один из примеров: Crossroads.js — одна из реализаций паттерна Route/Dispatch — паттерн довольно стандартный для веб-приложений, можно было бы включить в «стандартную» библиотеку. Но, раз появляется такое большое количество альтернативных реализаций, значит, какая-то одна из них многих не устраивает. А из альтернатив обычно можно выбрать наиболее подходящую для Вашего ПО, и не быть загнанным в рамки стандартной библиотеки.
Другой пример: succint trie для эффективного хранения массивов слов вряд ли войдет в «стандартную» библиотеку — слишком специализировано (далеко не всем нужно хранить большие массивы слов). Но, тем не менее, для Вашего прикладного ПО такая функциональность может понадобиться, и вы ее подключите без проблем при необходимости.
Обычно, если Вы находите замену для функций, реализованных в рамках стандартной библиотеки, то последняя становится больше грузом, от которого невозможно избавиться, чем полезным подспорьем. И, опять же, обычно, бывает так, что заменяются не все функции, поэтому полностью избавиться от нее полностью невозможно. Да, можно организовать «стандартную» библиотеку в виде модулей — но тогда они по сути ничем не будут отличаться от уже существующих и, зачастую, признанных сообществом, открытых библиотек.
Никто не мешает крупным компаниям выпускать свои библиотеки и разрабатывать стандарты. Например, компания Zend вообще переписала движок PHP, а также разработала собственный фреймворк, который стал популярным в настоящее время, поэтому можно назвать его одним из стандартов в среде PHP. Google, в свою очередь, разработала Closure Library для JavaScript — чем не стандарт, который может принять разработчик при поиске средства реализации того или иного проекта.
Еще одно следствие наличия одной «стандартной» библиотеки — невозможность в короткие сроки предложить что-то, возможно, лучшее, взамен: огромные усилия требуются создателям Mono при повторной реализации созданной Microsoft'ом «стандартной библиотеки», чтобы обеспечить совместимость прикладных программ.
Подводя итоги: я за то, чтобы в базовой функциональности было только самое необходимое. Пусть разработчики движков хотя бы о реализации этого договорятся между собой. Остальное должно оставаться почвой для конкуренции.
Это то, что касается непосредственно языка. Всё остальное — варианты использования этого языка в различных средах. Классы и объекты, описывающие среду исполнения, могут различаться.
Например, в node.js может, в отличие от браузера, не быть понятия Window, зато будет HttpServer — какой смысл всё это включать в одну, «стандартную» библиотеку?
Единственное отличие — графический интерфейс реализован с помощью веб-движка. Все равно существует прикладная программа «Браузер» (пусть, написанная с использованием веб-технологий), которая использует графический интерфейс (читайте, встроенный веб-движок + фреймворк Gaia) для отображения элементов управления и веб-страниц.
и, в то же время,
Операционная система, в традиционном понимании этого слова, — это прослойка между аппаратурой и прикладными программами. Её не может не быть на устройстве.