Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

Интервью с легендой C# Эриком Липпертом

Anna | 17.06.2014 | нет комментариев
Материал взят из журнала DotNetCurry посвященному спецтехнологиям основанным на платформе .NET.

Дорогие читатели, мы дюже рады видеть Эрика Липперта в этом номере журнала DNC. Эрик не нуждается в представлении людям приятелем с C#, но для остальных Эрик знаменит своей работой в команде разработчиков компилятора языка С#. Он посвятил существенную часть своей карьеры компании Microsoft, работая на разных должностях. До того как придти в Microsoft, Эрик работал в компании Watcom. Наши «старички» помнят Watcom как компанию, которая сотворила дюже отличные компиляторы для языков C и Fortran. В реальное время Эрик работает в компании Coverity, помогая создавать продукты статического обзора кода.



DNC: Здорово Эрик, мы дюже рады видеть тебя тут, совместно с нами.

EL: Спасибо. Я рад быть тут.

DNC: Ты работал в Microsoft длинных 16 лет. Опиши свое путешествие (если это дозволено так назвать) от стажировки до работы над VBScript, JScript, VSTO (Visual Studio Tools for Office) и становление основным разработчиком команды компилятора языка C#.

EL: Я подрос в Ватерлоо, интересовался наукой и математикой с раннего возраcта, так что для меня было обычным пойти в институт Ватерлоо. Помимо того, у меня были родственники в штате, и я теснее знал ряд академиков, и как вы сказали, будучи студентом, я работал в компании UW, которая являлась дочерней компании Watcom. UW имела хорошую программу обучения, одну из самых крупных во каждому мире, через которую мне удалось получить три стажировки в Microsoft, в команду разработчиков языка VisualBasic. Они с радостью продлили мне предложение о работе, когда я завершил стажировку, и я остался в подразделении разработки инструментов на протяжении каждой своей карьеры в компании Microsoft.

DNC: До того как ты начал стажировку в Microsoft, объективно предположить, что в ранние годы ты получил много отличных советов от старших инженеров. Какой из этих советов явился лучшим советом по программированию, тот, что ты когда-либо получал?

EL: Я получал много отличных советов от старших инженеров на протяжении каждой своей карьеры, не только в её начале; Microsoft поощряет формальное и неформальное наставничество. Я где-то незадолго говорил о лучшем совете в карьере, что получил его в Microsoft: в тезисе, как стал экспертом в предметной области, я отвечаю на столько вопросов пользователей, насколько могу. Но сказать какой из советов по программированию был лучшим не так легко. Я так много узнал в Microsoft — мирового специалиста по дизайну языков программирования, обзору продуктивности и многих других пророческой, что мне трудно назвать что-то одно.

Одна вещь запомнилась мне еще до того как я попал в Microsoft. В один день, много лет назад, Брайн Керниган выступал с докладом о программировании в UW. На одном слайде был показан код, с которым было что-то не так. Он был некорректен, от того что комментарий к коду и сам код не соответствовали друг другу. Керниган задал вопрос: что на самом деле работает — код либо комментарии к нему? Я все еще задаю себе данный высокопарный вопрос, когда пытаюсь осознать код, содержащий ошибку; Зачастую бывает, что комментарии вводят в заблуждение, так как они устарели либо легко первоначально были нехорошо написаны, в тоже время Зачастую бывает, что комментарии правильны, и вам даже не нужно вникать в код, содержащий ошибку. Отчет Кернигана всецело изменил моё отношение к комментированию кода. С этого времени я пытаюсь писать комментарии, которые поясняют цель некоторой части кода, до того как пытаюсь объяснить, как он работает.

DNC: Когда твоя команда начала разрабатывать C#, какие основные цели ты преследовал? Рад ли ты тому, каким языком C# стал?

EL: Если быть Добросовестным я начал работу над C#, когда основные доктрины C# 3.0 были серьезно выработаны и развиты. Я следил за C#-ом с момента его возникновения, больше 10 лет назад, но я не был частью команды C# 1.0 либо C# 2.0.

Когда мы говорим о целях, я усердствую различать «бизнес» цели от «технических»; они узко связаны, но являются разными. С точки зрения бизнеса основной целью C# было и есть создание богатого языка, тот, что разрешал бы получить все превосходства платформы .NET и больше того усовершенствовать нынешнее представление экосистемы Windows в целом. Лучшие инструменты влекут за собой больше производительных разработчиков, больше плодотворные разработчики создают лразработан с учетом недостатков языков C/C . Разработчики C# 1.0 проделали отменную работу; чай довольно сложно организовать переполнение буфера либо сделать утрату памяти либо применять переменную до её инициализации либо нечаянно применять одно и тоже имя, для абсолютно различных пророческой. Но то, что подлинно было поучительным для меня позже перехода в компанию Coverity, так это то, что множество ложных конструкций, которые Coverity проверяет на C/C идентично отлично применимы в современных языках, таких как Java и C#.

DNC: Мы слышали ты разработал одну из первых фан страниц романа «Властитель колец». Расскажи нам подробнее, как это случилось, а так же о своих интересах в книгах и кино.

EL: Мой папа прочитал мне Хоббита, когда я был дюже молод; с этих пор я стал увлекаться писателем Толкиеным; я собирал его автобиографию и это было моим хобби, когда я был подростком. Когда я постигал математику в UW в ранних 1990-ых, глобальная паутина (WWW) была чем-то новым; в один день я занимался «серфингом по интернету» и я обнаружил фан страницу для подлинного сериала Звездный путь. Я подумал, что это будет хорошей идеей сделать что-то схожее для Толкиена, я обыскал каждый интернет, что не заняло у меня много времени в 1993 году и обнаружил все FTP-сайты, новостные группы и еще много чего о Толкиене, и сотворил примитивную веб-страницу, которая была легко комплектом ссылок и положил её на сервер клуба компьютерных наук GOPHER. С ростом веба, все огромнее и огромнее людей связанных с ним присылали мне адреса своих страниц. Я продолжал добавлять все огромнее и огромнее ссылок, пока их не стало слишком много. Я перестал поддерживать эту страницу и, в конце концов, мое членство подошло к концу. Я думаю, вы все еще можете обнаружить её в архиве Интернета.

Дело в том, что в то время такие компании как Open Text и Google начали индексировать интернет и их алгорифмы поиска рассматривали такие вещи как: как длинно страница существовала, как Зачастую она изменялась с течением времени, и как много внешних ссылок на неё было. Даже позже того как я перестал её энергично поддерживать показатели у страницы были на высоком ярусе. В итоге, в течение многих лет моё имя было первым, когда делали запрос по «Толкиену». Когда был представлен фильм, многие люди именно это и делали. В итоге я завершил тем, что дал интервью нескольким газетам, получил e-mail от одного из внуков Толкиена, Jeopardy (заокеанское наименование программы «Своя игра») для проверки фактов некогда мне позвонили, спросив «Кто такие Энты?». Мне было дюже радостно.

Тем не менее, в те дни я читал дюже немного фантастики и фэнтази. Огромная часть моего чтения в свободное время посвящена научно-знаменитым книгам.

Я люблю глядеть фильмы и приглашать друзей для их просмотра, наши ночные выборы фильмов бывают дюже различными. Один месяц мы глядим фильмы, номинированные на Оскар, иной месяц фильмы ужасов.

// Один из методов определить, что язык подлинно становится огромным, это когда пользователи отправляют запрос на новейший функционал, а он теснее у вас есть.


Вот три маленькие функции, о которых знают не так много людей.

  • Вы можете добавить приставку «global:» к имени пространства имен, Дабы принудить алгорифм разрешения имен начать поиск с пространства имен, помеченного словом global. Это благотворно в обстановки, когда у вас раздор между глобальным пространством и локальным пространством либо типом. К примеру, если ваш код находится в нехорошо названном пространстве имен «Foo.Bar.System», тогда обращение к «String» в «Foo.Bar.System» приведет к ошибке. Если добавить префикс «global:System.String» то String будет искаться в глобальном пространстве имен System.
  • C# воспрещает «проваливаться» из одной сегменты оператора switch в иную. Что люди не знают так это то, что вам необязательно применять слово break в всякой сегменты. Вы можете принудить оператор провалиться из одной сегменты в иную, применяя метки. Вы можете также закончить секцию switch с поддержкой goto, return, throw, yield break, continue либо даже безмерным циклом.
  • И последняя мудрая функция, которую немного кто знает: вы можете комбинировать применение объединяющего null операторов, Дабы получить значение первого не пустого элемента в последовательности выражений. Если у вас есть переменные x, y, и z типа int? тогда итогом выражения x??y??z ??-1 будет первое из x, y либо z не null число либо -1 если они все равны null.


Я Зачастую говорю о странных особенностях языка в своем блоге, следственно навестите его, если хотите огромнее примеров.


Источник: programmingmaster.ru

Оставить комментарий
БАЗА ЗНАНИЙ
СЛУЧАЙНАЯ СТАТЬЯ
СЛУЧАЙНЫЙ БЛОГ
СЛУЧАЙНЫЙ МОД
СЛУЧАЙНЫЙ СКИН
НОВЫЕ МОДЫ
НОВЫЕ СКИНЫ
НАКОПЛЕННЫЙ ОПЫТ
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB