Питер Сейбел - Кодеры за работой. Размышления о ремесле программиста

Здесь есть возможность читать онлайн «Питер Сейбел - Кодеры за работой. Размышления о ремесле программиста» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Санкт-Петербург, Год выпуска: 2011, ISBN: 2011, Издательство: Символ-Плюс, Жанр: Прочая околокомпьтерная литература, Программирование, Биографии и Мемуары, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Кодеры за работой. Размышления о ремесле программиста: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Кодеры за работой. Размышления о ремесле программиста»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Программисты - люди не очень публичные, многие работают поодиночке или в небольших группах. Причем самая важная и интересная часть их работы никому не видна, потому что происходит у них в голове. Питер Сейбел, писатель-программист, снимает покров таинственности с этой профессии. Он взял интервью у 15 величайших профессионалов: Кена Томпсона, создателя UNIX, Верни Козелла, участника первой реализации сети ARPANET, Дональда Кнута, Гая Стила, Саймона Пейтон-Джонса, Питера Норвига, Джошуа Блоха, Брэда Фицпатрика, создателя Живого Журнала, и других. Все они “подсели” на программирование еще в школе. Тогда, на заре зарождения отрасли, лишь в немногих учебных заведениях читались курсы по компьютерным наукам. Поэтому будущим гуру приходилось покорять профессиональные вершины самостоятельно, но всех их отличает творческое горение и полная самоотдача любимому делу.
Вы узнаете, что они думают о будущем программирования и как сами научились программировать, как, по их мнению, нужно проектировать ПО, как выбор языка программирования влияет на продуктивность и можно ли облегчить выявление труднонаходимых ошибок.

Кодеры за работой. Размышления о ремесле программиста — читать онлайн ознакомительный отрывок

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Кодеры за работой. Размышления о ремесле программиста», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Занимаясь чем-то подобным, небольшим, это может понять любой. Если что-то выкинуть, например язык и графику, то возникнет вопрос: где же тогда ядро? И это интересный вопрос, на мой взгляд.

Надеюсь, подобное исследование - хотя это и не совсем моя работа - может вдохновить компьютерные науки на изучение процесса создания ядра, на создание других ядер - еще более простых и унифицированных. Точно так же, как и в математике. Математика обнаружила, что очень многое можно упростить с помощью символов. И после этого можно начинать думать о более крупных конструкциях. По крайней мере, я надеюсь.

Сейбел:Говоря о ядре, вы имеете в виду программное ядро. В чем ключевая идея Lively Kernel?

Ингаллс:Под ядром я понимаю примерно следующее: вы сводите вместе достаточно материала, который может в каком-то смысле создавать себя или другие полезные вещи. Squeak, например, действительно способен создавать себя. Lively Kernel предполагает наличие JavaScript и кое-какой графики, но в итоге она позволяет редактировать графику, и вы можете создавать новые графические штуки и редактировать программы, создавая таким образом новые программы. То есть можно в итоге создать все приложения, которые вы хотели бы встроить в броузер.

Думаю, играя в эту игру, начинаешь в конце концов скрывать ненужные уровни. Вопрос только в том, где игровое поле. В случае Squeak весь язык является частью ядра, с собственным компилятором и интерпретатором байт-кода. И у него есть собственная графическая система -BitBlt - и все, что с ней связано.

Кажется, это важнейшая часть любого ядра, но ее можно убрать. Можно сказать: “Предположим, у нас динамический язык; предположим, у нас есть графика”. Раньше я бы подумал: “Ну и все тут”. Но это не так. Остается еще кое-что: как свести графику, чтобы сделать интересную среду пользовательского интерфейса? И как перевести программы и скрипты на такой уровень, чтобы можно было их изменять?

В поисках того, что запускалось бы без установки в броузере, я был вынужден взять то, что было в самом броузере. А что в нем есть? JavaScript и графическая среда. Это был шанс отойти на шаг и сказать: “Что ж, есть ядра языка, есть графические ядра и еще один тип ядра - самостоятельное ядро среды пользовательского интерфейса”.

Сейбел:И в Lively Kernel, и в Squeak, насколько я понял, немного с ними поиграв, часть этого ядра, которое не относится ни к языку, ни к графике, - это некое представление пользовательского интерфейса, которое можно программировать: все эти маленькие ручки, которыми можно управлять программно.

Ингаллс: Да.

Сейбел:Мне кажется, это запутывает. Я программирую или использую приложение? Хотелось бы, чтобы различия были более явными.

Ингаллс:Да, это палка о двух концах. И не думаю, что здесь есть простой ответ. Если говорить в целом, то прекрасно, что мы создаем компьютеры, которые позволяют любые изменения. Это и прямой доступ к памяти, и программирование. Мне важно, чтобы сохранялась живость, податливость, способность к изменениям. Если система динамичная и меняющаяся, то значительно проще ограничить ее и сказать: “Вот в этих рамках ничего изменить нельзя”, - чем разработать что-то статичное и неизменное и пытаться потом это использовать.

Взгляните на современное положение в веб-программировании: все начиналось с языка разметки текста, а затем в игру вступил JavaScript и сделал картину динамичной. Было бы намного проще начинать с динамичной графики, о которой уже в те дни все знали, и затем уже фиксировать изображения и выводить их на печать при необходимости.

Сейбел:Да, проще для всех, кроме тех, кто просто хотел ввести в Сеть немного текста.

Ингаллс:Видимо, так и есть. Но проще тогда добавить сверху слой вроде HTML. Думаю, базовые системы должны быть динамичными, насколько возможно. Затем можно наложить ограничения по типу или синтаксису - то, другое, третье, чтобы ее зафиксировать. Конечно, бывают ситуации, когда люди просто пользуются системой, и тогда нужна неизменность, а не гибкость. И даже, когда до них доходит, что система гибкая, это несколько пугает. Возьмем Lively Kernel: в том виде, как сейчас, это не то, что хотел бы получить конечный пользователь. Вряд ли кому-то захочется увидеть, как окно интерфейса внезапно наклоняется на 20 градусов.

Сейбел:Или проверять код кнопки, на которую пытаешься нажать.

Ингаллс:Да-да. На самом деле, это демоверсия для тех, кто хотел бы двигаться в этом направлении. И очень простая, можно добавить уровень, который сделал бы ее полезной, чтобы она не изменялась так сильно и малопонятно. Но да, это действительно компромисс между гибкостью и универсальностью, с одной стороны, и кодифицированно-стью и способностью использовать программу как справочник, чтобы она делала именно то, что вы от нее ожидаете, - с другой.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Кодеры за работой. Размышления о ремесле программиста»

Представляем Вашему вниманию похожие книги на «Кодеры за работой. Размышления о ремесле программиста» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Кодеры за работой. Размышления о ремесле программиста»

Обсуждение, отзывы о книге «Кодеры за работой. Размышления о ремесле программиста» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x