M>>Второй вопрос: M>>Ткни в процитированном, где там речь про типизацию и, опять же, яваксрипт? K>Типизация — есть мнение, что в сообщение об ошибке нааписсано, что на сервер было передано пустое сообщение. Скорее всего, пустой POST. Естественно попытка построить по нему xml-html для трансфлрмации закончилась наблюдаемым весельем. K>А возможно это в первою очередь в результате использования языка где что null, что пустая строка, что ***, что....
Ну да, зачем думать головой, в блоге — да еще по-английски! — все написано. Значит ошибаться он не может.
Дано: трехзвенная система:
— тонкий клиент (теоретически — брузер в kiosk mode).
— сервер, получающий данные со стороннего сервиса (тот самый transform.php).
— сторонний сервис (http://position.brighton-hove.gov.uk/datebroker), что видно из сообщения слева.
Сервер на php вылетел по банальной причине:
— сторонний сервис не отвечает (таймаут при коннекте, ошибка слева)
— сторонний сервис поднялся, но пока не завелся (ошибки получения данных с пустыми собщениями во всех остальных) и/или
— тупо ошибка в формировании отсылаемых на этот сервис данных (видно из стектрейсов)
Причина появления ошибкок?
— криворукий программист забыл поставить try catch с обработкой ошибок подсоединения
— криворукий программист не подумал, что данные могут приходить в нверном формате, и не поставил насчет этого никаких проверок
Вопросы:
1. Как проблему "забыть поставить try/catch" поможет исправить C#/C++/Java/Ruby/Python/Erlang/любой-другой-язык-на-выбор?
Ответ: Никак
2. Как проблему "забыть поставить валидацию данных" поможет исправить C#/C++/Java/Ruby/Python/Erlang/любой-другой-язык-на-выбор?
Ответ: Никак
3. Как эта ошибка относится непосредственно к выбранным языкам программирования?
Ответ: Никак
4. Как из этой ошибки можно сделать далеко идущие выводы об overengineering'е и прочей бредятине, отцитированной по всему топику?
Ответ (для нормальных людей): Никак
Ответ (для фанатиков, у которых пелена ненависти застилает все вокруг и не позволяет рационально думать): Легко, потому что проще слушать голоса в голове, они позволяют этой самой голове не думать.
K>Вот цитата из исходного сообщения: K>What this shows is a broken arrivals computer system which has been completely over, and badly, engineered for the purpose of displaying information about the arrivals of buses to carry train passengers.
И эта цитата — бред
K>The designers/developers have chosen to build a browser based system with client-side Javascript pulling data asynchronously from a web service. Nothing wrong with that in principal, but for a non-interactive display-only, highly available message board system? I think not, as clearly demonstrated.
Тоже бред
K>Дальше аффтар исходного сообщения перечесляет причины по его мнению приводящие к указанному фееризму, в частности:
И дальше он выдает голословные утверждения (поскипанные), которые ни к описанной проблеме, ни к вебу к частности, не имеют никакого отношения.
Здравствуйте, WolfHound, Вы писали:
M>>Тогда Ur'а еще не было. Замени Nemerle на Ur, что изменится в том сценарии? Ни-че-го WH>Да тебе какой язык не покажи ты всегда заявишь что он из страны эльфов. WH>А что тебе еще остается... аргументов по существу у тебя нет.
А вот я помню времена, когда я рассказывал здесь же про функциональщину, котороя забавным образом напоминает твой любимый Ур.
И знаешь, что интересно. Ты тогда, с пеной у рта, втирал мне, какой клевый язык С++, и какое никому не нужное говно есть функциональщина.
И ведь что интересно — в твоей аргументации ровным счетом ничего не поменялось. Поменялись только ярлычки. Теперь функциональщина — круче самый крутых яиц. А пена — на месте.
Мне это доставляет .
Re: Наводит на определённые размышления. [hate]javacript[/ha
What a piece of work is a man! how noble in reason! how infinite in faculty! in form and moving how express and admirable! in action how like an angel! in apprehension how like a god! the beauty of the world! the paragon of animals!
Re: Наводит на определённые размышления. [hate]javacript[/ha
Здравствуйте, hardcase, Вы писали:
G>>А некоторые, среди которых ebay, linked-in, и Yahoo, не только хотят, а крутят. И что? H>Они крутят его не ради ради JS, а ради его реактивной архитектуры.
Твои фантазии излишни — там явно написано, зачем они его "крутят". В частности:
Node gives Azure users the first end-to-end JavaScript experience for the development of a whole new class of real-time applications.
Node.js is the execution core of Manhattan. Allowing developers to build one code base using one language – that is the nirvana for developers.
И кроме того, никакой особенной "реактивной архитектуры" в node.js нет, это обычная однопоточная браузерная виртуальная машина.
Re: Наводит на определённые размышления. [hate]javacript[/ha
Здравствуйте, konstardiy, Вы писали:
K>после прочтения этой новости чувствую себя бобладателем мощного аргумента за то, чтобы в законодательном порядке запретить всякие жабаскрипт, и иные языки ы error-prone level 9000 и выше.
Да ну. Чувак там просто не понял в песне слов.
То есть он наблюдает проявление кривого использования плохих вебтехнологий, и на его основе критикует прямое использование хороших вебтехнологий. Налицо разрывы в извилинах.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[5]: Наводит на определённые размышления. [hate]javacript[
Здравствуйте, konstardiy, Вы писали:
M>>Ткни в процитированном, где там речь про типизацию и, опять же, яваксрипт? K>Типизация — есть мнение, что в сообщение об ошибке нааписсано, что на сервер было передано пустое сообщение. Скорее всего, пустой POST. Естественно попытка построить по нему xml-html для трансфлрмации закончилась наблюдаемым весельем.
А што, типизированный язык в этом случае сработает как-то по другому?
K>Дальше аффтар исходного сообщения перечесляет причины по его мнению приводящие к указанному фееризму, в частности:
Там, прости, основная причина — отсутствие банальной обработки исключений и прямой вывод системного сообщения об ошибке пользователю. Если бы там вместо этого было написано си-шарповское "Null pointer exception", или "Key not found exception", или там "Connection time out" — тебя бы это больше порадовало?
What a piece of work is a man! how noble in reason! how infinite in faculty! in form and moving how express and admirable! in action how like an angel! in apprehension how like a god! the beauty of the world! the paragon of animals!
Re[7]: Наводит на определённые размышления. [hate]javacript[
M>>1. Как проблему "забыть поставить try/catch" поможет исправить C#/C++/Java/Ruby/Python/Erlang/любой-другой-язык-на-выбор? M>>Ответ: Никак WH>Если обращение к сервису возвращает что-то типа WH>
WH>variant RequestResult[Value]
WH>{
WH> | Result { value : Value }
WH> | Error { ... }
WH>}
WH>
WH>То компилятор программу не скомпилирует, пока ошибку не обработаешь.
Какой компилятор? Какого из языков, который существует в природе. Предлагаю на выбор: С/С++/Java/C#... Или имеется в виду некий компилятор несуществующих в природе (ну или хотя бы в коммерческой разработке) Nemerle/Ur?
M>>2. Как проблему "забыть поставить валидацию данных" поможет исправить C#/C++/Java/Ruby/Python/Erlang/любой-другой-язык-на-выбор? M>>Ответ: Никак WH>В нормальных языках данные описываются декларативно и сериализатор/десириализатор генерируются автоматически со всеми нужными валидациями. WH>Так что тут ну никак не забыть.
WH>Пример я тебе уже раз 300 показывал.
Ну да, да. Ur. В стране эльфов, безусловно, этот пример имел бы смылс. Только, увы, страны эльфов не существует. Есть этот, как его, реальный мир, в котором ни Ur'а ни Nemerle не видно днем с огнем.
Ну и да, ля любого языка можно написать генератор сериализатора с валидаций данных. И?
M>>3. Как эта ошибка относится непосредственно к выбранным языкам программирования? M>>Ответ: Никак WH>Наипрямейшим образом. Динамическая типизация сосет. WH>Кривая статика типа жабы и шарпа тоже. WH>Но с прямыми реализациями динамисты свои любимые языки сравнивать не хотят. WH>Ибо понимают, что шансов нет. Но признаться даже сами себе не могут.
Ну да. Если я сейчас задам вопрос "дай пример языков с 'прямой реализацией'" все будет идти строго по описанному сценарию
. Сказочники такие сказочники.
M>>4. Как из этой ошибки можно сделать далеко идущие выводы об overengineering'е и прочей бредятине, отцитированной по всему топику? WH>Если понять, как это можно на автомате исправить, эти выводы делаются автоматически. WH>Но фанам динамической типизации все пофиг.
Фан(атик?) тут только один — ты. Ну и сказочник вдобавок. Тут обсуждается реальная жизнь, а ты постоянно лезешь с рассказами про страну эльфов. Да, Ur/Nemerle — это круто. Ктот-то спорит? Тлько круты они строго и сугубо в теории, которая никому, кроме фан(атик)ов не интересна.
WH>У вас же прямые руки, железная дисциплина и вы все помните. WH>Причем даже в том метре кода, что писали не вы. WH>Ага, конечно.
Здравствуйте, Gaperton, Вы писали:
G>Здравствуйте, hardcase, Вы писали:
K>>>после прочтения этой новости чувствую себя бобладателем мощного аргумента за то
H>>Гы гы. А вот некоторые хотят вообще JS на сервере крутить
G>А некоторые, среди которых ebay, linked-in, и Yahoo, не только хотят, а крутят. И что?
Здравствуйте, Mamut, Вы писали:
M>1. Как проблему "забыть поставить try/catch" поможет исправить C#/C++/Java/Ruby/Python/Erlang/любой-другой-язык-на-выбор? M>Ответ: Никак
Если обращение к сервису возвращает что-то типа
variant RequestResult[Value]
{
| Result { value : Value }
| Error { ... }
}
То компилятор программу не скомпилирует, пока ошибку не обработаешь.
M>2. Как проблему "забыть поставить валидацию данных" поможет исправить C#/C++/Java/Ruby/Python/Erlang/любой-другой-язык-на-выбор? M>Ответ: Никак
В нормальных языках данные описываются декларативно и сериализатор/десириализатор генерируются автоматически со всеми нужными валидациями.
Так что тут ну никак не забыть.
Пример я тебе уже раз 300 показывал.
M>3. Как эта ошибка относится непосредственно к выбранным языкам программирования? M>Ответ: Никак
Наипрямейшим образом. Динамическая типизация сосет.
Кривая статика типа жабы и шарпа тоже.
Но с прямыми реализациями динамисты свои любимые языки сравнивать не хотят.
Ибо понимают, что шансов нет. Но признаться даже сами себе не могут.
M>4. Как из этой ошибки можно сделать далеко идущие выводы об overengineering'е и прочей бредятине, отцитированной по всему топику?
Если понять, как это можно на автомате исправить, эти выводы делаются автоматически.
Но фанам динамической типизации все пофиг.
У вас же прямые руки, железная дисциплина и вы все помните.
Причем даже в том метре кода, что писали не вы.
Ага, конечно.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[3]: Наводит на определённые размышления. [hate]javacript[
Здравствуйте, konstardiy, Вы писали:
A>>В статье нет аргументов. K>В статье показан конкретный пример, к чему приводит чрезмерное увлечение Javascript/JQuery/Css, говносервисами и прочей жудью...
Чрезмерное увлечение чем угодно приводит к печальным последствиям. Дальше-то что? Где аргументы?
Re[7]: Наводит на определённые размышления. [hate]javacript[
Здравствуйте, konstardiy, Вы писали:
K>В Javascript частенько просто нет ошибок для компиялтора там где они есть. Ну передали в метод reqdata вместо reqData и зер с ним. K>В нормальных языках эти виды насекомых отлавливается ещё на этапе компиляции. Если не на этапе AST (шутка).
Ага. Только в статье ни слова об этом, и картинка с расписанием автобусов не об этом, что мы тебе и пытаемся втолковать.
What a piece of work is a man! how noble in reason! how infinite in faculty! in form and moving how express and admirable! in action how like an angel! in apprehension how like a god! the beauty of the world! the paragon of animals!
Re[3]: Наводит на определённые размышления. [hate]javacript[
Здравствуйте, konstardiy, Вы писали:
K>Я считаю, что Javascript (и PHP, но он немного лучше) не самыми удачными/лучшими веб-технологиями. Он слишком error-prone.
А мне кажется, сама задумка web с его HTML, CSS и DOM такова, что ее уже ничем не испортить
Re[14]: Наводит на определённые размышления. [hate]javacript
M>>>>В данном случае грид ересекается с layout'ом и multicolumn-layout'ом, только называет все другими словами. WH>>>Что ты опять крутишься. Какие притензии к гриду? M>>Тебя Шеридан покусал? WH>Еще он пересекается с таблицей. Ты что сказать то хотел? WH>Какие конкретно притензии к grid? WH>Я подробно не читал но все выглядит логично.
Если бы он был единственным таким — еще можно было бы жить. Но параллельно с ним для решения тех же проблем идут еще два стандарта, которые местами пересекаются, местами — противоречат друг другу.
Нет, если переехать в страну эльфов и рассматривать это предложение изолированно, в отрыве от реальности, то да, это предложение не так уж и плохо. Но мы то живем в реальности, когда предстоящее сочетани grid + layout + multilayout дадут очень красивую картину ошибок в реализации в разных браузерах, по сравнению с которой проблемы с box-model покажутся раем земным.
Это все при том, что давно существуют средства создания сложных layout'ов в десктопных приложениях — это и всякие horizontal/vertical flow и anchor'ы и прочая и прочая, большинство из которых достаточно прозрачно могут быть перенесены в HTML/CSS. Вместо этого изобретается толпа противоречащих друг другу костылей с монструозными спецификациями, которые выглядят хорошо только на игрушечных примерах из спцификации.
Здравствуйте, WolfHound, Вы писали:
M>>1. Как проблему "забыть поставить try/catch" поможет исправить C#/C++/Java/Ruby/Python/Erlang/любой-другой-язык-на-выбор? M>>Ответ: Никак WH>Если обращение к сервису возвращает что-то типа WH>То компилятор программу не скомпилирует, пока ошибку не обработаешь.
А если ты забыл сказать об этом компилятору?
M>>2. Как проблему "забыть поставить валидацию данных" поможет исправить C#/C++/Java/Ruby/Python/Erlang/любой-другой-язык-на-выбор? M>>Ответ: Никак WH>В нормальных языках данные описываются декларативно и сериализатор/десириализатор генерируются автоматически со всеми нужными валидациями.
В фреймворках, не в языках.
M>>3. Как эта ошибка относится непосредственно к выбранным языкам программирования? M>>Ответ: Никак WH>Наипрямейшим образом. Динамическая типизация сосет. WH>Кривая статика типа жабы и шарпа тоже.
Типизация тут не при чём.
M>>4. Как из этой ошибки можно сделать далеко идущие выводы об overengineering'е и прочей бредятине, отцитированной по всему топику? WH>Если понять, как это можно на автомате исправить, эти выводы делаются автоматически. WH>Но фанам динамической типизации все пофиг.
Типизация тут не при чём.
Re[13]: Наводит на определённые размышления. [hate]javacript
? WH>Конечно. Про немерле тут вспоминают только хейтеры немерла. WH>Вы вообще ребятки забавные. Бегаете за мной по всему сайту и кричите "Немерле!" даже если я про него и не говорю.
Тогда Ur'а еще не было. Замени Nemerle на Ur, что изменится в том сценарии? Ни-че-го
Здравствуйте, Mamut, Вы писали:
M>Тогда Ur'а еще не было. Замени Nemerle на Ur, что изменится в том сценарии? Ни-че-го
Да тебе какой язык не покажи ты всегда заявишь что он из страны эльфов.
А что тебе еще остается... аргументов по существу у тебя нет.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Наводит на определённые размышления. [hate]javacript[/hate]
после прочтения этой новости чувствую себя бобладателем мощного аргумента за то, чтобы в законодательном порядке запретить всякие жабаскрипт, и иные языки ы error-prone level 9000 и выше.
Re: Наводит на определённые размышления. [hate]javacript[/ha
Здравствуйте, hardcase, Вы писали:
K>>после прочтения этой новости чувствую себя бобладателем мощного аргумента за то
H>Гы гы. А вот некоторые хотят вообще JS на сервере крутить
А некоторые, среди которых ebay, linked-in, и Yahoo, не только хотят, а крутят. И что?
Re[3]: Наводит на определённые размышления. [hate]javacript[
Здравствуйте, hardcase, Вы писали:
H>Они крутят его не ради ради JS, а ради его реактивной архитектуры.
В смысле non-blocking IO, когда ожидающующие ответа от БД или ФС и т. п. managed-потоки соскребаются с физическго потока и этот поток может обработать другой запрос?
К языку это имеет мало отношения, от языка требуется только поддержка способа передать функцию в качестве аргумента.
Re[2]: Наводит на определённые размышления. [hate]javacript[
Здравствуйте, konstardiy, Вы писали:
K>Здравствуйте, hardcase, Вы писали:
H>>Гы гы. А вот некоторые хотят вообще JS на сервере крутить K>файл "вообще" не найден. Не надо в меня 404 кидаться)
Чета буфер обмена меня подвел. Там была ссылка на node.js.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[5]: Наводит на определённые размышления. [hate]javacript[
Здравствуйте, konstardiy, Вы писали:
K>К языку это имеет мало отношения, от языка требуется только поддержка способа передать функцию в качестве аргумента.
Не только. Иначе бы весь дотнет мир не находился в трепетном ожидании async/await.
/* иЗвиНите зА неРовнЫй поЧерК */
Re: Наводит на определённые размышления. [hate]javacript[/ha
Exception 'HTTPInvalidParentException' with message 'Empty or too short HTTP message:""' in /var/www/html/transform.php:0 inner exception 'HttpRequestException' with message 'Could not connect to host' in /var/www/html/transform.php:153
?
Это — ошибка по центру. Ошибки по бокам можешь прочитать сам и попытаться ткнуть, где там Javascript.
Остальная статья — набор невнятных рассуждений и эмоций.
Здравствуйте, Gaperton, Вы писали:
G>Здравствуйте, hardcase, Вы писали:
G>>>А некоторые, среди которых ebay, linked-in, и Yahoo, не только хотят, а крутят. И что? H>>Они крутят его не ради ради JS, а ради его реактивной архитектуры.
G>Твои фантазии излишни — там явно написано, зачем они его "крутят". В частности:
G>
G>Node gives Azure users the first end-to-end JavaScript experience for the development of a whole new class of real-time applications.
G>
G>Node.js is the execution core of Manhattan. Allowing developers to build one code base using one language – that is the nirvana for developers.
G>И кроме того, никакой особенной "реактивной архитектуры" в node.js нет, это обычная однопоточная браузерная виртуальная машина.
Ладно бы этт one language был бы C#, ну или какой-нибудб ещё схожого типа, да даже F#, черт возьми... Но JS... Может это менеджеры среднего звена решили саботировать так проект, выбрав это убожество в качестве one language....
Кстати, ничего не имею против JSON, только Javascript вызывает у меня уныние.
А насчёт JSON — если его совсем немного расширить, то можно использовать даже вместо XAML.
Но это уже оффтоп.
Re[2]: Наводит на определённые размышления. [hate]javacript[
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, konstardiy, Вы писали:
K>>после прочтения этой новости чувствую себя бобладателем мощного аргумента за то, чтобы в законодательном порядке запретить всякие жабаскрипт, и иные языки ы error-prone level 9000 и выше. S>Да ну. Чувак там просто не понял в песне слов. S>То есть он наблюдает проявление кривого использования плохих вебтехнологий, и на его основе критикует прямое использование хороших вебтехнологий. Налицо разрывы в извилинах.
Я считаю, что Javascript (и PHP, но он немного лучше) не самыми удачными/лучшими веб-технологиями. Он слишком error-prone.
Re[2]: Наводит на определённые размышления. [hate]javacript[
Здравствуйте, Mamut, Вы писали:
M>Остальная статья — набор невнятных рассуждений и эмоций.
у JS и PHP много общего — отсутвтие вняшной типизации, например. Когда создавал тему, написать хотел Javascript и php, но "не пропечаталось", а теперь не исправить название темы.
Re[3]: Наводит на определённые размышления. [hate]javacript[
M>>Остальная статья — набор невнятных рассуждений и эмоций.
K>у JS и PHP много общего — отсутвтие вняшной типизации, например. Когда создавал тему, написать хотел Javascript и php, но "не пропечаталось", а теперь не исправить название темы.
Второй вопрос:
Ткни в процитированном, где там речь про типизацию и, опять же, яваксрипт?
A>>В статье нет аргументов.
K>В статье показан конкретный пример, к чему приводит чрезмерное увлечение Javascript/JQuery/Css, говносервисами и прочей жудью...
Здравствуйте, Mamut, Вы писали:
M>Второй вопрос: M>Ткни в процитированном, где там речь про типизацию и, опять же, яваксрипт?
Типизация — есть мнение, что в сообщение об ошибке нааписсано, что на сервер было передано пустое сообщение. Скорее всего, пустой POST. Естественно попытка построить по нему xml-html для трансфлрмации закончилась наблюдаемым весельем.
А возможно это в первою очередь в результате использования языка где что null, что пустая строка, что ***, что....
Вот цитата из исходного сообщения:
What this shows is a broken arrivals computer system which has been completely over, and badly, engineered for the purpose of displaying information about the arrivals of buses to carry train passengers.
The designers/developers have chosen to build a browser based system with client-side Javascript pulling data asynchronously from a web service. Nothing wrong with that in principal, but for a non-interactive display-only, highly available message board system? I think not, as clearly demonstrated.
Дальше аффтар исходного сообщения перечесляет причины по его мнению приводящие к указанному фееризму, в частности:
Development and maintenance tool immaturity
На жабаскрипте не возможна в принципе tool maturity, имхо
Script-kiddie mentality and inexperience
говнокод в сочетании со скрипто-игрушечной метальностью, присущей всем скриптовым языкам (присвоил строковой переменной сумму числа и undefined — ляляля, не работает, давай ещё раз стопицот прогоним, если не заработает, пойдём играть в WoW...)
Вот здесь я разе что поспорю в некоторой степени —
Too much focus on web design at the expense of robustness and reliability
Менеджер и маркетолог мастурбируют на то что нарисовал дизайнер, это нармально — работа у него такая — эстетическое наслаждение дарить людям (шутка). А по серьёзному — да, дизайнера не должно интересовать, на чём именно пишется система, ему просто надо сразу сказать, что система позволяет это, это и это, а летающие стразики, гоняющиеся за курсором лучше убрать, ибо тормозит и отлекает юзера от юзабилиити.
Re[4]: Наводит на определённые размышления. [hate]javacript[
Здравствуйте, Mamut, Вы писали:
M>Нет, он там не показан.
Цитата 1:
Whilst separating display logic from business logic is generally a good principle of software engineering, it is almost impossible to do using the current technologies favoured by the web software development industry today. Client-side code is being implemented in Javascript and is increasingly gaining more and more business logic because changing Javascript is easier that redesigning complex web services. This makes for very unreliable and unmaintainable software, and let us not forget that this business logic is available for all to see.
Цитата 2:
For almost thirty years, we have had highly graphical software development tools with more recently intellisense, edit-and-continue, source code analysis tools, memory checkers, garbage collectors etc.. We get almost none of this with Javascript, DOM and JQuery. Developing in these client-side web frameworks is like stepping back in time to a prehistoric age of software development.
Re[6]: Наводит на определённые размышления. [hate]javacript[
Здравствуйте, Hobot Bobot, Вы писали:
HB>А што, типизированный язык в этом случае сработает как-то по другому?
поскольку оно бы валилось ещё на клиенте, до отправки запроса, то больше шансов эта ошибка имела бы быть пойманой.
K>>Дальше аффтар исходного сообщения перечесляет причины по его мнению приводящие к указанному фееризму, в частности:
HB>Там, прости, основная причина — отсутствие банальной обработки исключений и прямой вывод системного сообщения об ошибке пользователю. Если бы там вместо этого было написано си-шарповское "Null pointer exception", или "Key not found exception", или там "Connection time out" — тебя бы это больше порадовало?
В Javascript частенько просто нет ошибок для компиялтора там где они есть. Ну передали в метод reqdata вместо reqData и зер с ним.
В нормальных языках эти виды насекомых отлавливается ещё на этапе компиляции. Если не на этапе AST (шутка).
Re[5]: Наводит на определённые размышления. [hate]javacript[
Здравствуйте, konstardiy, Вы писали:
K>Здравствуйте, Mamut, Вы писали:
M>>Нет, он там не показан.
K>Цитата 1: K>Whilst separating display logic from business logic is generally a good principle of software engineering, it is almost impossible to do using the current technologies favoured by the web software development industry today. Client-side code is being implemented in Javascript and is increasingly gaining more and more business logic because changing Javascript is easier that redesigning complex web services. This makes for very unreliable and unmaintainable software, and let us not forget that this business logic is available for all to see.
Зжесь написана бредятина
K>Цитата 2: K>For almost thirty years, we have had highly graphical software development tools with more recently intellisense, edit-and-continue, source code analysis tools, memory checkers, garbage collectors etc.. We get almost none of this with Javascript, DOM and JQuery. Developing in these client-side web frameworks is like stepping back in time to a prehistoric age of software development.
Здравствуйте, 0xC0DE, Вы писали:
G>>А некоторые, среди которых ebay, linked-in, и Yahoo, не только хотят, а крутят. И что?
CDE>Node.js is Cancer
CDE>Есть и такая версия )
Да этих ваших hate-hate можно в сети сколько угодно найти, по любой наперед заданной теме. Куча эмоций в нечале, надуманные соображения в середине, и безграмотные примеры в конце.
Node.js ставится за IIS или nginx. Ни к каким таким страшным непонятным проблемам, на наличие которых как бэ намекает автор статьи, это не приводит. И в сравнении с популярными сейчас скриптовыми веб-технологиями, вроде пыха или руби, node действительно быстрый, и это факт известный. Дополнительным удобством является использование одного языка на клиенте и сервере.
Учитывая это, на фоне существующих веб-технологий node смотрится вполне неплохо. Поэтому его и используют. Нет, это не говорит о том, что node хорош — меня лично от асинхронного стиля трясет. Это скорее характеризует состояние мэйнстрима в веб-разработке в целом. Убогий он.
Re[8]: Наводит на определённые размышления. [hate]javacript[
HB>Там, прости, основная причина — отсутствие банальной обработки исключений и прямой вывод системного сообщения об ошибке пользователю. Если бы там вместо этого было написано си-шарповское "Null pointer exception", или "Key not found exception", или там "Connection time out" — тебя бы это больше порадовало?
исключения в современных языках -- это дыра в статической типизации
Re[4]: Наводит на определённые размышления. [hate]javacript[
Здравствуйте, Mystic, Вы писали:
M>А мне кажется, сама задумка web с его HTML, CSS и DOM такова, что ее уже ничем не испортить
Ну, вот это-то точно неверно. Т.к. вы говорите про три совершенно разные задумки, сделанные разными людьми и в разное время.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: Наводит на определённые размышления. [hate]javacript[
Здравствуйте, Mystic, Вы писали:
K>>Я считаю, что Javascript (и PHP, но он немного лучше) не самыми удачными/лучшими веб-технологиями. Он слишком error-prone.
M>А мне кажется, сама задумка web с его HTML, CSS и DOM такова, что ее уже ничем не испортить
Здравствуйте, Lloyd, Вы писали:
L>А что вы имеете предложить взамен?
А предложить взамен можно много велосипедов. Как ещё более кривых, так и более прямых. Да-да, вокруг не одни криворукие идиоты. Наверняка найдётся гений, способный сделать аналог-конфетку. Но только всё равно ей пользоваться никто не будет, потому что есть для этого два препятствия. Первое — это долбанное консервативное сообщество т.н. "веб-программистов", которые завоют "а, ещё один велосипед, зачем нужен". Второе — это ещё более консервативное сообщество пользователей, у которых уже есть браузер, через который можно ходить в интернет (точнее, вконтактик). Думаю, что стоумовые парни, которые способны выкатить подобный велосипед, всё это понимают, потому и не выкатывают. Потому прямых (и непопулярных) альтернатив и нет. Некоторым хватает ума внедриться в стан врага и начать выпрямлять привычную связку.
Здравствуйте, Mamut, Вы писали:
M>Я уже один раз это говорю и повторю еще раз. Работающим компилятором сейчас никого не удивишь.
Глупость, повторенная дважды, умнее не становится.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[7]: Наводит на определённые размышления. [hate]javacript[
Здравствуйте, Mamut, Вы писали:
M>Самое смешное, что ты привел ссылку, на вырвиглазный звиздец, который даже не долен был рождаться.
Аргументов как всегда не будет?
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[8]: Наводит на определённые размышления. [hate]javacript[
Здравствуйте, konsoletyper, Вы писали:
K>Думаю, что стоумовые парни, которые способны выкатить подобный велосипед, всё это понимают, потому и не выкатывают. Потому прямых (и непопулярных) альтернатив и нет.
А еще у них есть дела поинтереснее.
Данную систему сделать довольно просто.
Нужно плясать от паттерна MVVM.
Модель живет исключительно на сервере. И все обращения к ней это обращения к серверу.
Модель вида и вид на клиенте.
Клиент состоит из следующих слоев:
1)Типизированный реактивный ДОМ. Он же модель вида.
Содержит исключительно данные. Никакой разметки. Никакого кода.
Изменение ДОМ порождает инкрементальное обновление всех следующих слоев.
2)Отображение ДОМ на контролы.
Язык похожий по семантики на XSLT.
Ибо делает ровно тоже самое.
Отображает одно дерево на другое.
3)Контролы. Могут содержать произвольную логику и менять ДОМ.
Контролы содержит логику лейаута.
И логику рендера. Которая работает на основе результатов лейаута.
Благодоря статической типизации уровни 2 и 3 можно скомпилировать в машинный код.
Причем разработчики не будут ограниченны стандартными контролами и смогут писать свои.
Все что для этого нужно это создать правила лейаута и ввести несколько примитивов для рендера.
Уровень 1 будет приходить с сервера в текстовом виде.
Парсер будет первым делом получать из него ссылку на уровень 2.
После чего управление будет передано в десерериализатор который проверит корректность того что пришло с сервера.
Все обращения к серверу будут статически типизированы.
Те прикладной код просто не сможет не проверить данные пришедшие с сервера.
K>Некоторым хватает ума внедриться в стан врага и начать выпрямлять привычную связку.
Пролистал по диагонали. Выглядит интересно.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[9]: Наводит на определённые размышления. [hate]javacript[
Здравствуйте, Mamut, Вы писали:
M>Это уже много раз было обсуждено в том же "Веб-программировании". Например, начиная отсюда: http://rsdn.ru/forum/web/3542043.aspx
Импликация однака. Для того, чтобы понять, о чем идет речь, надо знать и о других гридо-системах от W3c, которые все частично пересекаются друг с другом и не позволяют получить нужный резльтат удобным способом.
В данном случае грид ересекается с layout'ом и multicolumn-layout'ом, только называет все другими словами.
Здравствуйте, Mamut, Вы писали:
M>Импликация однака. Для того, чтобы понять, о чем идет речь, надо знать и о других гридо-системах от W3c, которые все частично пересекаются друг с другом и не позволяют получить нужный резльтат удобным способом. M>В данном случае грид ересекается с layout'ом и multicolumn-layout'ом, только называет все другими словами.
Что ты опять крутишься. Какие притензии к гриду?
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[12]: Наводит на определённые размышления. [hate]javacript
M>>Импликация однака. Для того, чтобы понять, о чем идет речь, надо знать и о других гридо-системах от W3c, которые все частично пересекаются друг с другом и не позволяют получить нужный резльтат удобным способом. M>>В данном случае грид ересекается с layout'ом и multicolumn-layout'ом, только называет все другими словами. WH>Что ты опять крутишься. Какие притензии к гриду?
Здравствуйте, Mamut, Вы писали:
M>>>В данном случае грид ересекается с layout'ом и multicolumn-layout'ом, только называет все другими словами. WH>>Что ты опять крутишься. Какие притензии к гриду? M>Тебя Шеридан покусал?
Еще он пересекается с таблицей. Ты что сказать то хотел?
Какие конкретно притензии к grid?
Я подробно не читал но все выглядит логично.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[7]: Наводит на определённые размышления. [hate]javacript[
Здравствуйте, Mamut, Вы писали:
K>>Некоторым хватает ума внедриться в стан врага и начать выпрямлять привычную связку.
M>Самое смешное, что ты привел ссылку, на вырвиглазный звиздец, который даже не долен был рождаться.
Ну не знаю. Чукча не веб-программист, чукча в последнее время вообще 1Сер. А тут на хабре ссылочка пробегала, показалось интересным. Но да, на хабре же одни школьники тусуются.
Re[7]: Наводит на определённые размышления. [hate]javacript[
Здравствуйте, WolfHound, Вы писали:
WH>То компилятор программу не скомпилирует, пока ошибку не обработаешь.
Есть в природе такой язык — java. В нём есть такая штука, как checked exception. У 99% java-программистов они вызывают жуткую ненависть.
Просто нужно помнить, что исключение в любом месте может выпасть. И писать соответственно.
WH>Наипрямейшим образом. Динамическая типизация сосет.
WH>Кривая статика типа жабы и шарпа тоже. WH>Но с прямыми реализациями динамисты свои любимые языки сравнивать не хотят. WH>Ибо понимают, что шансов нет. Но признаться даже сами себе не могут.
Просто все понимают, что о Немерле или хорошо или никак.
WH>Но фанам динамической типизации все пофиг.
Так жизнь всё на свои места расставляет. Раз в три года поднимают голову какие-то странные люди, которым единственное, чего не хватает для счастья — это типов. И то java-плагины забабахают, то возможность на других языках писать вместо JS, то Silverlight. И хор какой-то тут же петь начинает, что вот сейчас как заживём... А потом бах и рекомендация писать на HTML5. И так 15 лет подряд.
Здравствуйте, Mamut, Вы писали:
M>Это все при том, что давно существуют средства создания сложных layout'ов в десктопных приложениях — это и всякие horizontal/vertical flow и anchor'ы и прочая и прочая, большинство из которых достаточно прозрачно могут быть перенесены в HTML/CSS. Вместо этого изобретается толпа противоречащих друг другу костылей с монструозными спецификациями, которые выглядят хорошо только на игрушечных примерах из спцификации.
Ну а что за такие средства удивительные? Мой скромный опыт коснулся всего лишь таких фреймворков, как Windows Forms, Swing, SWT и GTK. Везде есть TableLayout (или GridBagLayout или ещё как). В свинге вон вообще породили такого монстра, как GroupLayout, который вообще ни в какой XML не загонишь адекватно, чтобы было хоть чуточку читабельнее — исключительно для визуального дизайна. В WinForms даже, который очень уж прибитый гвоздями и попиксельный, и то вкрутили жалкое подобие, которое всё равно никто не использовал. Уж даже не знаю, как люди обходятся одними только flow и anchor'ами (кстати, последние уже очень давно вполне реализованы в box model в CSS). А костыли изобретаются потому, что изначально веб был предназначен не для того, что чего он используется нынче, это потом люди понабежали и стали его насиловать во все дыры, так что пришлось производителями браузеров всячески угождать их хотелками и заверте... Вот подобные спецификации — это вполне адекватная реакция на творящийся бардак. А то, что их таких несколько принимается — это уже проблемы не этих спецификаций, а организационные проблемы одного комитета. Ну и плюс если бы всё это изначально вот так делалось дальновидно, то проблем бы не было, а то же надо совместимость сохранить с тем вырвиглазным чудищем, которое есть сейчас.
Re[15]: Наводит на определённые размышления. [hate]javacript
Здравствуйте, Mamut, Вы писали:
M>Если бы он был единственным таким — еще можно было бы жить. Но параллельно с ним для решения тех же проблем идут еще два стандарта, которые местами пересекаются, местами — противоречат друг другу.
Те проблема не в гриде, а в том, что вместе с гридом напринимали еще кучу байды. Я правильно понял?
На этом фоне твое заявление
Здравствуйте, Andrei N.Sobchuck, Вы писали:
ANS>Просто все понимают, что о Немерле или хорошо или никак.
Хейтеры немерла переводят любую тему на немерле даже если он в ней не упоминался.
ANS>Так жизнь всё на свои места расставляет. Раз в три года поднимают голову какие-то странные люди, которым единственное, чего не хватает для счастья — это типов. И то java-плагины забабахают, то возможность на других языках писать вместо JS, то Silverlight. И хор какой-то тут же петь начинает, что вот сейчас как заживём... А потом бах и рекомендация писать на HTML5. И так 15 лет подряд.
И как всегда динамисты сравнивают с жабой и шарпом... даже не смешно уже.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[9]: Наводит на определённые размышления. [hate]javacript[
Здравствуйте, WolfHound, Вы писали:
ANS>>Просто все понимают, что о Немерле или хорошо или никак. WH>Хейтеры немерла переводят любую тему на немерле даже если он в ней не упоминался.
А какой язык тут имелся в виду?
Но с прямыми реализациями динамисты свои любимые языки сравнивать не хотят.
Re[11]: Наводит на определённые размышления. [hate]javacript
?
Конечно. Про немерле тут вспоминают только хейтеры немерла.
Вы вообще ребятки забавные. Бегаете за мной по всему сайту и кричите "Немерле!" даже если я про него и не говорю.
В любом случае чтобы показать, что все твои "Никак"
не правда, достаточно показать один язык, где этих проблем нет.
Ибо любое утверждение опровергается одним фактом, который этому утверждению противоречит.
Но тебе же пофиг на логику. Все что противоречит твоей вере, объявляется фигней из страны эльфов.
А раз оно из страны эльфов то оно и не считается.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[12]: Наводит на определённые размышления. [hate]javacript
Здравствуйте, anonymous, Вы писали:
A>Твою ссылку обсуждали уже: ещё один никому не нужный фреймворк. По объективным причинам.
И какие же ты объективные причины там нашёл?
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[15]: Наводит на определённые размышления. [hate]javacript
M>>Тогда Ur'а еще не было. Замени Nemerle на Ur, что изменится в том сценарии? Ни-че-го WH>Да тебе какой язык не покажи ты всегда заявишь что он из страны эльфов. WH>А что тебе еще остается... аргументов по существу у тебя нет.
Нет, есл бы то показал существующие в реальном мире языки, я бы слова не сказал. А так появляешься ты весь на булой лошади, поливаешь всех вокруг навозом, и рассазываешь сказки о том, что по сценарию
Здравствуйте, hardcase, Вы писали:
H>Здравствуйте, Mamut, Вы писали:
M>>Какой компилятор? Какого из языков, который существует в природе.
H>Гугли F#, WebSharper.
Смотрю я на Websharper и вижу все то же самое: http://websharper.com/samples/Formlet если программисто ручками не напишет Validator.IsNotEmpty и т.п., щастя не видать.
Здравствуйте, Gaperton, Вы писали:
G>Ну, люди делятся на две категории. Те, кто понимают — и те, кто не понимают. Последним хоть кол на голове теши.
Это точно. Ты в очередной раз нихрена не понял о чем разговор.
Хотя это и не удивительно. Учитывая то, что тебе нравятся гуглоязыки
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[16]: Наводит на определённые размышления. [hate]javacript
Здравствуйте, Gaperton, Вы писали:
G>Мне это доставляет .
А меня доставляет то, что каждый раз, когда дело доходит до конкретики, ты сливаешь. Ынжынэр ты наш.
Помниться ты мне втирал, что нашлепка х86 не проблема. Но пришёл Зефиров и все тебе опошлил. С ним ты спорить не решился.
Потом ты мне втирал, что при работе с цветом достаточно линейных преобразований. После того как я показал тебе пару картинок ты просто пропал.
...
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[8]: Наводит на определённые размышления. [hate]javacript[
Здравствуйте, Andrei N.Sobchuck, Вы писали:
ANS>Так жизнь всё на свои места расставляет. Раз в три года поднимают голову какие-то странные люди, которым единственное, чего не хватает для счастья — это типов. И то java-плагины забабахают, то возможность на других языках писать вместо JS, то Silverlight. И хор какой-то тут же петь начинает, что вот сейчас как заживём... А потом бах и рекомендация писать на HTML5. И так 15 лет подряд.
Да, а "странные люди" — это MS, Sun, Google... Кого я еще забыл?
Та так — да, расставляет. Страшно же травмировать мосг(или что им мозг заменяет?) миллионам "веб-програмистов". Поэтому, ути-пути, всем писать на js, складывайте массив с обьектом, обьект с массивом, он всё простит.
Падает весь этот цирк часто, но к этому все настолько привыкли, что и проблемой не считают.