Обновить
204
Виктор@mace

Пользователь

17
Подписчики
Отправить сообщение
SQL Server Compact (практически аналог SQLite по функционалу и принципам работы) существует уже очень давно. Преимущество SQL Express именно в том, что функционально эта СУБД аналогична решениям энтерпрайз уровня. Ограничения там есть, но они не функциоальные, а на обьем базы и количество используемых ядер процессора.
Я не верю, что господин amarao, опытный администратор, судя по профайлу, не знает об этом — а значит он просто троллит.
Откровеенно говоря, я был лучшего мнения о вас, как о IT-специалисте. Сравнить SQL Express с SQLite — это фактически расписатся в полной собственной некомпетентности в сфере RDBMS.
Отличный пример того, почему не стоит сразу кидатся использовать неутвержденные стандарты.
Мы чуть менее года назад думали о том, чтобы использовать Web SQL Database в одном из проектов для поддержки офлайн режима. К счастью вовремя отказались от этой идеи и спустя некоторое время узнали, что проект стандарта спустили в унитаз.
Клинопись — прорыв в информационных технологиях древнего мира.
Вы не учитываете динамики развития компании, которая находится в начале жизненного цикла. Возможно у владельцев есть основания думать, что через год она будет стоить не 6, а все 20 миллиардов.
А много вы знаете примеров действительно успешных гугловских сервисов, которые с нуля построили в компании, а не купили? Я навскидку могу вспомнить разве что поиск и почту. Зато есть примеры сервисов, начатых с нуля в компании, которые в итоге не взлетели. Из последних примеров — wave и buzz.
Лямбды в C# — это еще и Expression Trees. Совершенно убийственный инструмент в умелых руках.
Между прочим, может вы уберете чекбокс «только для подписчиков блога»? Статья очень хороша, хотелось бы иметь возможность дать на нее ссылку знакомым, которые не зарегистрированы на Хабре. Да и Гугл ее тогда сможет найти.
Спасибо за отличную статью! Давно присматриваюсь к PostSharp и другим средствам AOP. Скажите, а сама сборка Mono.Cecil требует установленного mono на машине или совместима с обычным виндовым .Net Framework? 4 версия с DLR поддерживается?
Кстати, небольшой хинт: на Хабре есть специальный тег для подсветки кода — <source lang=«csharp»>...</source>, работает вот так:
[TestMethodInterception]
public static void MethodToChange(string text)
{
    // skipped
    Dictionary<string, object> parameters = new Dictionary<string, object>();
    parameters.Add("text", text);
    // skipped
}
XML-комментариев на русском за глаза бы хватило. Зачем переводить еще и идентификаторы — не понятно.
Вас совершенно не беспокоят и не кажутся ужасными конструкции вроде списокДетей.Count, индекс.ToString() и List<Ученик>? Я уже молчу о том, что пока написал этот ужас, устал переключать раскладки.
C# поддерживает юникод в исходниках с самого рождения, то есть лет десять уже как. Другое дело — зачем это использовать? ИМХО, знание английского для разработчика необходимо примерно настолько же, насколько и знание базовых алгоритмов, структур данных и синтаксиса языка, на котором он пишет. Код, написанный с использованием кирилических идентификаторов выглядит ужасно:
<code class="csharp">public List<Ученик> СоздатьСписокУчеников(List<Ребенок> списокДетей) {
  var cписокУчеников = new List<Ученик>();
  for(int индекс = 0; индекс < списокДетей.Count; индекс++) {
    if(списокДетей[индекс].Возраст > 7) {
      cписокУчеников.Add(new Ученик { 
        Имя = списокДетей[индекс].Имя, 
        Фамилия = списокДетей[индекс].Фамилия, 
        СтроковыйИдентификатор = индекс.ToString() 
      });
    }
  }
  return cписокУчеников;
}
</code>

Извините, но это ппц. Мне противно смотреть на такой код. Сравните с этим же кодом на английском:
<code class="csharp">public List<Pupil> CreatePupilList(List<Child> childrenList) {
  var pupilList = new List<Pupil>(); 
  for(int i= 0; i < childrenList.Count; i++) {
    if(childrenList[i].Age > 7) {
      pupilList.Add(new Pupil{ 
        Name = childrenList[i].Name, 
        Surname = childrenList[i].Surname, 
        StringId = i.ToString() 
      });
    }
  }
  return pupilList;
}
</code>

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

А с этим что-нибуть пробовали?
А вы не пробовали ради интереса увеличить количество итераций раз так в 100? Это вполне может отфильтровать сайд-эффекты от того же JIT'a, которые возможно имеют место быть.
А в Украину не доставляете?
Аргументировать можете? Я не спорю, что возможно в среднем F# будет чуть-чуть медленнее (или быстрее), но если эта разница в пару процентов, то сами понимаете.
Естественно больше, но согласитесь, что аргумент «результирующие бинарники будут больше» звучит все таки менее драматично чем «F# тормозной, потому что генерирует не нативный код». К тому же последний как бы и не правда.
mono таки умеет компилится в нативный код со статически линковаными библиотеками. Я выше уже выложил ссылку на статью Мигеля двухлетней давности. Именно поэтому и возможны всякие MonoTouch'и, которые позволяют писать софт под те же айфоны, где никаких рантаймов моно никогда не было, нет и не будет.
Впрочем, наверное вы правы в том, что если уж писать софт для очень низкого уровня, то стоит выбирать для этого соответствующие инструменты.
Mono, кстати, умеет такое вообще из коробки без всяких 3rd-party утилит: tirania.org/blog/archive/2008/Nov-05.html
В F# это делает JIT перед каждым запуском программы. Далее выполняется все тот же нативный код. И, кстати, никто не отменял утилиты вроде ngen. Так что мимо.

Информация

В рейтинге
Не участвует
Откуда
Львов, Львовская обл., Украина
Дата рождения
Зарегистрирован
Активность