Уже прошло около полугода, как я выпустил первую версию компонента файлового браузера для .NET (File Explorer) в виде бета версии. За это время у меня уже появилось несколько человек, которым понравился компонент и они предложили свои услуги по тестированию, за что я отдал им бесплатное разрешение на использование компонентом. Самое интересное, что все они не из России, что странно, ведь я в основном пока рекламировал компонент только через свой блог.
Прошло пол года и я за это время просто молча обновлял компонент на сервере, но не обновлял версию, потому что это оставалась все еще бета версия. Вчера же я решил поставить первую точку в разработке пакета File Explorer Control .NET и выложил на сайт очередной апдейт, который назвал финальной первой версией. Информация на русском языке по компоненту доступна здесь: .NET компонент файлового браузера
Пакет состоит из двух компонентов FileExplorerControl и FileListView. Первый из них построен на базе пользовательского элемента управления, что позволяет создать уникальные возможности по рисованию элементов списка. Компонент FileListView построен на базе классического ListView, что придает ему классический вид и функционал. Данные компоненты будут очень удобны и полезны тем, кто программируте WinForms приложения.
Буквально вчера мы говорили о гордости и сегодня прекрасный пример гордости для нашей страны в сфере ИТ. Команда из Санкт-Петербургского государственного университета информационных технологий, механики и оптики стала чемпионом по программированию. Ну разве не предмет для гордости? Для меня да, потому что это значит, что наше образование не на столько плохое. Это значит, что наши ребята еще не все наркоманы и алкоголики и способны выигрывать чемпионство. Наши команды заняли так же 3-е и 4-е места.
Я рад за ребят и поздравляю их с таким достижением. Я уверен, что эти ребята, когда закончат институт будут создавать программы, которыми можно будет гордится. Для кого будут создавать - это другой вопрос (их же могут забрать и в штаты). Но я надеюсь, что они найдут свое место в мире ИТ и может быть кто-то из них станет будущим Биллом.
Мои поздравления ребятам и удачи.
Это достаточно интересный вопрос - какой же язык программирования изучать. Всегда говорил, что изучать нужно несколько языков. И это скажу вам не только я, потому что нельзя класть яйца в одну карзину. Я абсолютно не жалею, что когда-то изучал Delphi и если он будет набирать в популярности, я смогу найти себе работу. Я немного знаю Java, C++ и сейчас вплотную работаю с C#, потому что он на подъеме. Тут нужно задать себе вопрос - а для чего ты учишь язык программирования? Если для того, чтобы писать программы для себя, то ты сам себе хозяин и волен выбирать то, что тебе нравится. Если нравится Delphi, то используй его и не обращай ни на какие тесты внимания.
Популярность языка определяется теми, кто волен выбирать среду разработки и язык. Благодаря этим людям, Delphi, Java или любой другой может стать популярным, а может умереть не смотря на все свои преимущества. Если ты начальник ИТ отдела и тебе нужно выбрать язык, то выбирай то, что лучше знаешь или что лучше подходит для задачи, ведь задачи бывают разные. Да, нужно смотреть на перспективу и нужно быть уверенным, что язык программирования не умрет уже завтра. Но не стоит заглядывать слишком далеко, потому что в дальней перспективе может умереть все.
Когда-то был популярен язык С и никто не думал, что ему можно придумать замену. А она нашлась - С++. Уже долгое время С++ был стандартом в разработке пользовательского интерфейса, но на наших глазах все меняется. Для большинства задач все больше используют C# в связке с WinForms или WPF. При этом C++ постепенно будет сдавать позиции. Он не умрет, но будет сдавать. Не удивлюсь, если через 10 лет С++ заменит C# или F#, но это может быть (именно может, но не факт что будет) и только в отдаленной перспективе.
Меня очень часто спрашивают по почте, что я думаю о будущем среды разработки Delphi. Я ничего не думаю и не могу тут ничего предсказать, но могу сказать про настоящее - популярность Delphi падает и в нашей стране в том числе. В России/Украине позиции борландовских продуктов всегда были достаточно сильными, но все меняется.
Узнать популярность языка программирования сложно, но я сегодня нашел один способ. Он не точный, но очень показательный. Заходим на Ozon и бегом в раздел Языки и системы программирования. Сортируем результат по бестселлерам и получаем, что первая книга по Delphi будет моя Библия и она будет аж на 15-й позиции. Следующая книга по Delphi на 18-й позиции. Ты еще хочешь знать будущее Delphi? Это не очень точный метод, потому что тут скрыто очень много факторов, но пример очень показателен.
Или у меня дежавю, или мне уже приходило несколько писем от ikrik0719@mail.ru. Я пытаюсь ответить, но мне возвращаются ошибки о том, что письмо не доходит. Человек пишет, что я его игнорирую, но по почте я никого не игнорирую, я просто не могу ответить. Если неправильно введен ящик, то я не виноват. Раз другого варианта нет, то отвечу уважаемому ikrik0719 прямо через блог:
Уважаемый ikrik0719, твой пример с отчетом в Excel откомпилируется без проблем, а вот выполнится с ошибкой. Ты после создания коннекта с Excel сразу обращаешся к рабочей книге WorkBooks, но ее не существует. Нужно сначала создать рабочую книгу. Вот корректный пример создания коннекта к Excel из Delphi:
XLApp := CreateOleObject('Excel.Application'); XLApp.Visible := True; XLApp.WorkBooks.Add; // создание книги XLApp.WorkBooks[1].WorkSheets[1].Name := 'Отчет';
Выделенной строки у тебя в коде нет, но без нее будет ошибка.
Я только недавно узнал, что в Visual Studio 2008 можно именовать переменные и имена методов кириллицей. Это произошло случайно, когда я писал очередную главу книги и назвал пункт меню по-русски и когда я создавал обработчик события для него, то заметил какое-то идиотское название метода создатьToolStripMenuItem_Click. Я до такой степени привык именовать переменные и методы английскими словами, что для меня это выглядело просто уродливо. Я даже представить себе не могу, как такой код читать и поддерживать.
Самое страшное, что этот код откомпилировался и работал без проблем. Почему это страшно? Теперь пойдут исходные коды на немецком, итальянском и даже китайском. Представляешь, как международное комюнити будет читать, и поддерживать этот код? Уже ясно, что английский язык давно стал языком программирования (о как загнул), или если быть политкорректнее, то языком программистов.
Лично я никогда не буду именовать переменные на русском. Оказывается, Delphi 2007 вроде бы тоже можно писать на русском. Я сам не проверял, потому что у меня просто нет Delphi 2007.
Сегодня меня спросили, какой код у клавиши со знаком ~. Вот чесно, я не знаю. Я вообще клавиши не запоминаю. Если нужен код клавиши, то создаю пустое приложение, создаю обработчик события OnKeyНужныйобработчик для формы и там пишу что-то типа:
if (Key>0) then exit;
Это нужно, чтобы оптимизатор не оптимизировал параметр, через который передается код клавиши. Или можно в свойствах проекта отключить оптимизацию. Теперь ставим точку останова, запускаем приложение и нажимаем кнопку, код которой нужно узнать. Наводим мышкой на переменную (или выделить ее и нажать Ctrl+F7) и смотрю ее значение.
Вчера получил письмо от читателя о том, что его обвиняют на форуме, что он умеет только компоненты расставлять. У меня сразу столько мыслей полетело на эту тему. Неужели это так позорно уметь расставлять компоненты? Неужели это плохо? А может так говорят те, кто не умеет расставлять компоненты? Компонентное программирование - это следующий шаг после объектного и он позволяет двигаться вперед быстрее и предоставлять продукт быстрее. А скорость разработки и время выхода на рынок очень важны в наше время. Я всегда использовал чужие разработки и буду использовать в будущем, потому что не стыжусь этого.
Использование чужих разработок позволяло мне создавать множество проектов в одиночку. Да, тогда я допустил ошибку - погнался за кучей зайцев одновременно и должным образом поймал только двоих (только две программы реально продавались). С другой стороны, всегда есть неудачные проекты и никогда не угадаешь, какой проект пойдет, а какой провалится. Если бы я все писал сам, то не смог бы написать и 20 процентов своих программ и не факт, что среди этих процентов оказалась бы успешная программа. На разработку ушло бы больше времени, а выход программиста одиночки на рынок последним равносилен самоубийству. Пока бы я писал весь код сам в одиночку, мой конкуренты убежали бы в будущее.
Сейчас в ящик упало письмо, с просьбой помочь исправить косяк с выводом в StringGrid, У парня по щелчку в сетке StringGrid производились расчеты с выводом информации в сетку. Самая главная сложность у парня было вывести именно в сетку.
Первое, что меня поразило - это код. В нем использовались метки Label и оформление было ужасно. Если так сейчас учат, то мне жаль парня, потому что его на работу не возьмут после такой учебы. Но еще больше, меня поразил следующий код:
Вчера на сайте Heapar Software я выложил новый компонент для .NET программистов, и для работы с файловой системой: File Explorer Control .NET. Компонент позволяет просматривать файловую систему, ее директории и файлы, а так же запускать нужный файл.
Пока это только один компонент, но в будущем я планирую расширить его до целого набора компонентов, связанных с работой с файловой системой. Так что в скором времени можно ожидать обновлений.
Для России и стран СНГ данный продукт будет распространяться совместно с Essential Library .NET, поэтому ссылки на регистрацию у обоих продуктов на один и тот же сайт. Купив Essential Library .NET, ты получаешь File Explorer Control .NET и наоборот. Это так сказать цена на рекламный период. В будущем я возможно разделю проекты в регистрации и каждый из пакетов придется регистрировать по отдельности.