пятница, 30 ноября 2007 г.

Tcl

Не так давно мне в книжном магазине попалась книга Азбука Tcl за какие-то смешные деньги. Ну я не удержался и купил её. Программиста-прагматика я уже дочитал и решил приняться за эту книгу. Никаких откровений там нет, зато есть описание основных возможностей языка. В целом довольно любопытно. Отличительных особенностей я пока заметил две - интеграция с GUI библиотекой Tk и ориентированность языка на работу со строками и списками.

понедельник, 26 ноября 2007 г.

Программист-прагматик.

Я сейчас читаю книгу Э.Ханта и Д.Томаса Программист-прагматик. Путь от подмастерья к мастеру". Вещь весьма интересная. В этой книге поднимаются вопросы, относящиеся не к какому-то конкретному языку или технологии, а к подходу к разработке в целом. Многие вещи, о которых идёт речь, я уже давно(и небезуспешно) использую. Многое перекликается с идеями, почерпнутыми в других, прочитанными мной, книгах. Кое-что противоречит им =).
Очень хорошо написано по поводу саморазвития. В книге предложены несколько принципов, которым стоит следовать:

  1. Учите(как минимум) по одному языку программирования в год.

  2. Читайте по однойтехнической книге ежеквартально.

  3. Читайте книги не относящиесяк технической литературе.

  4. Повывшайте квалификацию на курсах.

  5. Участвуйте в собраниях локальных групп разработчиков.

  6. Экспериментируйтес различными операционными средами.

  7. Оставайтесь в курсе событий.

  8. Подключайтесь к информационным сетям.



Могу сказать, что большую часть из перечисленного в этом списке я делаю. К сожалению, у меня нет возможности посещать курсы. Зато все остальное вполне достижимо.

Нововведения в C# 3.0

Интересная статья о новинках языка C#. Несколько интересных моментов:

  1. Implicitly typed variables (неявно типизированные переменные)
  2. Даёт возможность создавать переменные не указывая явно их типа. При этом тип переменной будет зафиксирован во время компиляции.
  3. Object and collection initialization (инициализация объектов и коллекций)
  4. Задание полей классов и содержимое коллекций можно задавать декларативно.
  5. Extension methods (методы-расширения)
  6. Можно создавать методы не являющиеся членами класса, но с таким же синтаксисом их вызова.


Есть ещё несколько нововведений, являющихся по сути "синтаксическим сахаром". Действительно серьёзная новинка - Linq(Language Integrated Query). Это технология обработки данных на уровне языка, позволяющая обращаться к локальным данным с помощью запросов.

Visual Studio и многоядерность

До сегодняшнего дня я думал, что Visual Studio фактически не использует возможности, предоставляемые многоядерностью(многопроцессорностью). По умолчанию при наличии нескольких ядер распаралеливание компиляции происходит только по проектам. А ведь уже давно тот же IncrediBuild умеет распаралеливать компиляцию по отдельным файлам. И вот сегодня я узнал, что у майкрософтовского компилера есть волшебный ключик /MP. После его добавления в настройки проекта магическим образом компиляция стала занимать не 61, а 38 секунд. А это 60% выигрыш.

среда, 21 ноября 2007 г.

Microsoft Visual Studio 2008

Майкрософт таки разродился новой версией Visual Studio. Сегодня будем качать Express версию, а завтра посмотрим, чего там есть нового и хорошего... И сколько исходников в проекте придётся в связи с этим исправлять =)

понедельник, 12 ноября 2007 г.

Ruby

Недавно я решил заняться изучением ещё одного языка программирования. Среди подходящих вариантов я рассматривал D, Perl, Ruby и Python. От D я отказался в силу того, что этот язык по своим возможностям не слишком превосходит(как мне показалось) гораздо более распространённые C# и Java. Кроме того, хотелось изучить скриптовый язык с динамическкой типизацией. В конечном итоге я остановился на Ruby. Уже написал свой "HelloWorld!", простенький парсер конфигов и программку, загружиющую из интернета данные с использованием прокси. =)

суббота, 10 ноября 2007 г.

Школьные задачки

Купил сегодня сборник задач по программированию за 170р. Всего в нём 1600 вопросов разного уровня(по крайней мере так написано на обложке =) ). Классная вещь! Я смогу сэкономить кучу времени при подготовке к урокам. Задачи охватывают большое количество тем и могут быть использованы вне зависимости от используемого языка. Хотя я качестве языка преподавания выбрал C, в котором нет булевого типа, что накладывает свой отпечаток.
Книга состоит из 16 глав, каждая из которых содержит в себе задачи и вопросы, относящиеся к определённому разделу( например Условный оператор, Строки символов, Одномерные массивы, Случайные числа).
Большая часть задач достаточно простые и не предполагают сложных решений. Но есть и задачи повышенной сложности. Первая задача в теме Рекурсия требует написания рекурсивной функции вычисления факториала(кстати именно её я демонстрировал, когда объяснял эту тему ). В одной из задач повышенной сложности требуется написать рекурсивную функций, проверяющую является ли число простым. Аналогичным образом организованы и другие главы.