Pull to refresh
204
0
Виктор @mace

User

Send message
Да, конечно. Вообще весь проект IE9 был изначально начат в МС для того, чтобы надрать всем браузерам задницу в санспайдере. Отличный способ потратить несколько десятков миллионов долларов :)
Ох, извините. Был сбит с толку столь солнечным заголовком этой статьи :)
Мы с вами говорим о разных вещах.
Автор статьи по ссылке утверждает, что ІЕ9 оптимизирован под санспайдер. В доказательство этого он приводит один модифицированный тест из набора, на котором 3 предварительная версия браузера работает существенно медленнее, чем на оригинальном коде, хотя всем очевидно, что изменения в коде не должны никак влиять на функциональность теста. На основании этого он утверждает, что разработчики из МС применили оптимизацию под конкретный тест, чем вызывает бурю негодования пользователей Хабрахабра.
На деле же оказывается, что в текущей версии браузера этот финт ушами не работает и она отрабатывает модифицированый тест столь же быстро, сколь и оригинальный. На основании этого я утверждаю, что никакого заговора внутри МС нет и никто ничего не оптимизировал конкретно под санспайдер, а на самом деле это был обычный баг в оптимизаторе движка Javascript в браузере IE9, который, к тому же, давно исправили.
При этом я считаю, что если разработчики использовали санспайдер в качестве одной из метрик произодительности своего браузера в процессе разработки, то ничего плохого в этом нет. ИМХО ну очень глупо предполагать, что в коде IE9 есть условия вроде
if(IsSunspider == true) { 
  // work faster
}

Спасибо за внимание.
Я вообще безотносительно версий других браузеров интересовался. Просто попытался отрепродюсить у себя — не вышло, начал смотреть на версии и вот что очень удивило. В изначальном тесте тоже сравнивалась бета ІЕ с релизными версиями других браузеров.
Тут вопрос в том, что описанные модификации в тесте никак не влияют на текущую версию ІЕ, так что это очень похоже на баг, а не на какую-то оптимизацию.
Кстати, почему в результатах preview 3, если сейчас уже актуальна 6? Сдается мне, что это просто баг в одной из ранних версий IE9, который давно пофиксили.
Запустил я эти тесты с изменениями на своей машине:

Хром 7.0.517.44: 50.8 ms
ФФ 3.6.12: 69.6 ms
ІЕ 9 бета: 33.1 ms

ЧЯДНТ?
Несколько раз палился на примерно таком коде. Правда не в продакшене, а на олимпиадах, когда времени в обрез и можно писать грязный код.
for(int i=0;i<n;i++) {
  for(int j=0;j<n;i++) {
    // do something
  }
}
Вы не поверите, но таки есть редакция Windows Server 2008 R2 Server Core, в которой убрали графическую оболочку. Оставили один powershell, а он по мощности ничуть не уступает линуховым шеллам, а местами в силу своей обьектности даже удобнее.
Заскочите в магазин «Трембита» на Коперника 5. Поспрашивайте у продавцов, если повезет — должен быть. Если там не будет, то можете попытать счастья на вернисаже (сувенирный рынок около театра им. Заньковецкой). И то и другое место находится в центре. Только спрашивайте дрымбу, а не варган, больше вероятность, что вас поймут ;)
У нас во Львове в музыкальных магазинах продаются и на сувенирном рынке. Правда называется «дрымба».
Active Directory. Отдельный пароль нужен только для svn.
Я вам скажу по секрету, что в CLR тоже нет функций без классов. Когда вы пишете лямбду — компилятор создает анонимный класс и помещает лямбду в него как метод. Переменные, попавшие в замыкание становятся полями этого класса. Просто этой работой занимается не программист, а компилятор.
А пошаговая отладка такого кода в принципе возможна?
Такое впечатление, что недавно появилось либо его сильно уменьшили. За последние пару недель было сразу несколько прецедентов, когда статьи публиковали пачками по несколько постов, при чем авторы жаловались, что статьи надо разбивать на куски. Раньше я такого не наблюдал.
Кроме того, к примеру обьем вот этой статьи около 80 кб (мерял HTML), а вот этой — всего 35, при чем автор последней был вынужден разбить статью на три части, хотя при ограничении в 80 кб ему должно было хватить двух.
Я собственно к тому, что сейчас авторы обьемных статей либо заменяют часть текста картинкой либо разбивают статью на несколько частей. Первое вообще ад, так как нечитабельно и поиск по такому тексту не работает. Второе — неудобно, так как одна из наибольших ценностей Хабра, его комментарии оказываются в разных местах. К тому же, статьи появляются на главной в необязательно правильном порядке, что вносит еще больше путаницы.
Обидно, конечно, но не фатально

Если бы в джаве были фатальные неудобства, то она не была бы столь популярна. Благодаря событиям, свойствам и лямбдам код на шарпе выглядит куда более читаемым, компактным и простым. Это собственно и все их преимущество.
Почему раз сумели сделать анонимные классы, не сделали анонимных функций — загадка.
Кстати о лямбдах, я имею ввиду не только грубо говоря Func<int, int, int>, но и Expression<Func<int, int, int>> — в умелых руках этот механизм превращается просто в убийственную штуку.
Чем же он не такой элегантный?

Возможно я не до конца разобрался, но насколько я понял, аннотация в джаве — это всегда интерфейс, который не может содержать никакой логики, только данные. Атрибуты в шарпе — это полноценные классы, в которых можно (пере)определить некую логику. Самый простой пример, где это используется — Action Filters в ASP.Net MVC.
Динамики не нужны :-)
Вам, видимо, не нужны :) Я тоже редко пользуюсь, но иногда это просто замечательная вещь.
А про yield, using и checked exceptions сам хотел написать, но забыл :)
Ну, как правило в дотнете используют ms-sql. Хотя да, я с вами согласен, это не аргумент.
Ну это не недостаток языка, если он вобрал в себя все лучшее, что придумали до него. На самом деле очень рисковано пихать в мейнстрим язык фичи, которые перед этим не были обкатаны на каком-нибуть менее популярном языке.
Кстати, в 5 версии обещают офигенный новый синтаксис для работы с асинхронными вызовами — я такого не видел нигде пока.

Information

Rating
Does not participate
Location
Львов, Львовская обл., Украина
Date of birth
Registered
Activity