Tuesday 15 July 2008

Первые впечатления

Итак, делюсь первыпи впечатлениями, как ощущения после перехода с Ruby на C#. Пока всё, с чем я столкнулся, это неудобства:

Null class.
Отсутствие null как объекта. Затрудняет жизнь многочисленными провернками на null. Паттерн introduce null object не особо спасает. Писать для каждого класса нулевой объект не радует. Можно ли реализовать 1 общий класс, от которого всё наследуется?
System.Linq библиотека
Вроде бы удобная вещь, но! Она была нагло спислизана с ruby, причём сделано это очень криво. Зачем-то нужно было менять названия методов. Плюс были портированы не 1 в 1. В результате имеем:
Method alternatives
RubyC#
array.collectarray.select
array.selectarray.Where
array.detect ( = array.select.first )array.first
array.join( token )String.join(array, token)
Как видим, join метод стал вдруг методом String класса.
Много лишних слов
public overrride static void methodName() vs. def self.method_name
Консоль
Отсутствие консоли, где можно быстренько потестить какой-нибудь метод.

Или я просто предвзято отношусь к C# и Microsoft?

Friday 11 July 2008

Моё рабочее место

Так как недавно только сменил работу, и в памяти ещё осталось прошлое рабочее место, то напишу про оба: прошлое и настоящее.

Прошлое:
Программировал на ruby on rails. Использовал:
ОС: Ubuntu.
С тех пор, как я пересел на неё, прошло уже 4 года (4.10 была первая версия, выпущена соответственно в октябре 2004 года). Понравилась с первого взгляда. Теперь её использую повсюду.
Программы:
Jedit
Просто лучший редактор для программирования. Главное уметь пользваться и правильно настроить плагины. И, конечно, abbreviations.
Plugins:
SideKick
Позволяет создавать и работать с проектом, а не набором файлов.
JDiff
Очень удобный диффер, ищет различия посимвольно. Можно настроить игнорирование нескольких подряд идущих пробелов.
RubyPlugin
Незаменимая вешь для работы с руби
RE Tester
Удобно тестить регулярные выражения прежде чем их писать в код
XSLT
При работе с XML. Позволяет тестить xPath.
trac
Очень удобный багтракер. Имеет встроенный вики (например, для спецификации и/или документации). Интегрируется с svn.
svn
Контроль версий обязателен :). Пока пользовал только svn, интересно попробовать Git
Firefox
А как же без него-то программирование для веб?
Plugins:
Firebug
Без него сейчас не обходится ни одна разработка под web
YSlow
Позволяет тестировать скорость загрузки страниц
Web Developer
Позволяет отключать некоторые элементы страницы. Опять же нужен для тестирования
Console2
Этим пока не пользовался, но поставил на всякий случай. Изучаю...
Настоящее:
Программирую на C#, asp.Net. Использую всё те же Firefox, JEdit, плюс:
ОС: Windows
Что и следовало ожидать :). Очень непривычно. Почему под убунту нельзя было? :)
Программы:
Visual Studio 2008
Вещь, конечно, на редкость глючная, но без неё никак.
ReSharper
Когда-то давно (в университете) использовал IntelliJIDEA для Java. Руки быстро вспомнили старые шорткаты :)
TotalCommander
Двупанельный файловый менеджер. Намного удобнее обычного эксплорера