Новая рубрика.

Сегодня мне в голову пришла «гениальная идея» сделать небольшой обзор языков программирования с которыми я когда-либо сталкивался. В процессе своей работы программист обычно сталкивается с различными языками программирования. Одни из них проходят мимо вместе с окончанием очередного проекта. Другие становятся надолго любимыми языками, на которых программист специализируется и «ест собаку».

В этой записи попробую перечислить языки программирования с которыми я сталкивался в той или иной степени.

  • Фортран (FORTRAN)
  • Бейсик (Basic)
  • Паскаль (Pascal)
  • Турбо Паскаль (Turbo Pascal)
  • Delphi (строго говоря не является языком программирования)
  • PHP
  • Visual Basic .NET

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

Правец 16.

Сегодня на просторах Интернета встретил фотографию компьютера «Правец 16» и вспомнил, что в далеком 1992 году начинал писать на нем свою первую коммерческую программу.

Фото Правец 16
Правец 16

Персональный компьютер «Правец 16»  — программный и аппаратный аналог IBM PC производился с 1984 по 1988 год в болгарском городе Правец. Сейчас я понимаю, что это был компьютер снятый с производства 4 года назад, но тогда для меня это был вполне нормальный компьютер не хуже тех, что стояли в университете для обучения студентов.

Интересный факт. Город Правец — это родина первого секретаря болгарской компартии Тодора Живкова, который при выборе места для завода по производству компьютеров выбрал своё родное село.  Впоследствии село стало городом. Так, что можно считать, что эти компьютеры производились в деревне.

Постижение рекурсии.

К третьему курсу университета, я как и положено студенту, считал, что знаю о программировании все и любую программу могу написать без проблем. Так вот на третьем курсе у нас появился предмет «Архитектура ЭВМ». Все лекции я обычно пропускал (не знаю как сейчас, а тогда была лафа в виде свободного посещения лекций), а с этим предметом обстоятельства сложились так, что мне пришлось сидеть на лекциях по независящим от меня причинам. К моему удивлению я обнаружил, что знаю о программировании далеко не все. Особенно поразил меня пример рекурсии.
Как написать программу для подсчета факториала числа n. Классический способ заключается в использовании цикла. Получается вот такая программка на языке Pascal.


function Fact( n : Integer) : Integer ;
var
  i : Integer ;
  f : Integer ;
begin
  f:=1 ;
  for i:=1 to n do  f:=f*i ;
  Fact:=f ;
end ;

Эта программа конечно работает, но можно написать более красивую программу с использованием рекурсии.


function Fact( n : Integer) : Integer ;
begin
  if n=0 then Fact:=1
         else Fact:=n*Fact(n-1) ;
end ;

Вторая программа позволяет понять, что в программировании есть много интересных моментов и программа это не просто сборник циклов и операторов ветвления. Для того что бы написать программу надо, себе четко представлять, как компьютер будет ее выполнять. К сожалению далеко не все программисты представляют себе это. В итоге на свет появляются чудовищно не эффективные программы, это отдельная тема для обсуждения.

Microsoft раздает Visual Studio 2010 почти даром.

Сегодня пришло письмо о том, что с 11 октября  Microsoft начнет раздавать Visual Studio 2010 почти даром. Почти даром заключается в скидке 60% на профессиональную версию. Получается цена в районе шести с половиной тысяч рублей, что в общем то адекватно нашим реалиям. Подробности можно прочитать на их  сайте http://www.microsoft.com/visualstudio/ru-ru/offers/. Вот бы другие разработчики (читай Embarcadero) последовали примеру Microsoft.

Вперед к интероперабельности в WCF.

Сегодня столкнулся с необходимостью создать заготовку кода для сервера WCF по имеющемуся WSDL файлу. Оказалась такая задача не решается при помощи встроенных средств Visual Studio. Я был очень расстроен этим фактом. Дальше оказалось, что найти в интернете решение данной проблемы не так просто, как кажется на первый взгляд. Большинство авторов рассматривают вопрос генерации клиента по WSDL файлу, а мне нужно было сделать заготовку для сервера. В итоге двух часов поиска я наконец нашел решение проблемы. Это специальный аддон к Visual Studio — WSCF.blue. Это небольшое и бесплатное дополнение делает заготовку кода для сервера Web-службы за несколько секунд.