Чему я научился за 30 лет программирования
7 сентября 2012 в 00:12

Чему я научился за 30 лет программирования

Я занимаюсь программированием уже более 30 лет, начиная с машин, уже устаревших (на процессорах Z80 и 6502) до современных, используя языки BASIC, ассемблера, C, C++, Tcl, Perl, Lisp, ML, occam, arc, Ruby, Go и многие другие.

Далее следует список того, чему я научился.

  1. Програмиирование — это ремесло, а не наука или инженерия

Программирование гораздо ближе к ремеслу, чем к науке или инженерной дисциплине. Это комбинация умения и опыта, выраженная с помощью инструментов. Разработчик выбирает нужные инструменты (иногда создает собственные) и учится использовать их в процессе создания.

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

Принимая во внимание, что это ремесло, нетрудно заметить, что важны опыт, инструменты и интуиция.

  1. Честность — главное правило

В процессе написания кода иногда возникает соблазн поэкспериментировать, чтобы узнать, будет ли это работать и запустить программу, не понимая, что же, собственно, происходит. Классический пример — вызов API, который вы решаете оставить потому, что, волшебным образом, он позволяет избавиться от бага или добавление printf, в результате которого программа перестает падать.

Оба примера — примеры нечестности. Спросите себя: «Понимаю ли я, почему моя программа делает X?». Если не понимаете, позже у вас возникнут проблемы. Знать, что происходит — ответственность программиста, потому что компьютер выполняет точно то, что ему приказывают, а не то, что ему бы хотелось.

Честность требует строгого отношения. Вы должны быть точно уверены в том, что знаете, что ваша программа делает и почему.

  1. Упрощайте, упрощайте, упрощайте

Тони Хоар сказал: «Есть два способа спроектировать систему. Один — сделать ее настолько простой, что в ней очевидно не будет недостатков, а второй — сделать ее настолько сложной, что в ней не будет очевидных недостатков. Первый способ намного более труден.»

Упрощайте, переписывайте, удаляйте.

Перефразируя Хоара скажу: «Внутри каждой большой и сложной программы есть маленькая и элегантная программа, которая делает то же, что и большая и делает это правильно.»

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

  1. Отладчики иногда вредят, профилировщики — никогда

Я почти никогда не пользуюсь отладчиками. Мои программы создают журналы и я знаю, что мои программы делают. Обычно, я могу понять, что не так с моим кодом из журнала, не обращаясь к помощи отладчика.

Причина, по которой я не пользуюсь отладчиками — моя уверенность в том, что отладчики заставляют лениться. Обнаружив ошибку, многие разработчики запускают отладчик, выставляют точки останова и исследуют память или значения переменных. Легко поддаться очарованию от такого мощного инструмента, но недостаточные размышления приведут к большей потере времени. А если ваша программа такая сложная, что отладчик вам необходим, см. п.2

(Замечание: несмотря на все вышесказанное, один из уважаемых мной программистов, Джон Остерхут, похоже, целыми днями сидит в отладчике Windows).

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

  1. Дублированный код подставит вам ножку

Не повторяйтесь. Делайте все однократно в вашем коде.

Этот урок имеет отношение к п.2, но это особый случай. Даже простой кусочек дублированного кода причинит неприятности позже, когда вы «пофиксите» его в одном месте, но забудете в другом.

  1. Не привыкайте к языкам программирования

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

Важно знать, какой язык из вашего инструментария вы будете использовать для конкретной проблемы. И лучше иметь побольше инструментов. Пробуйте разные языки, применяйте их на практике.

Например, вам не понадобится Python или ML, но вы можете поэкспериментировать со списочными выражениями и увидеть их силу. Или «поиграйте» с Go и увидите, как он работает с многопоточностью. Или используйте Perl и увидите как гибко он работает со строками. Или используйте PHP, чтобы быстро создать динамическую веб-страницу.

Я не люблю языковые войны. Они — удел неудачников, потому что они спорят о неверных вещах. Для меня PHP неуправляемый инструмент, а в руках других он творит чудеса. То же можно сказать о C++.

  1. Проще вырастить программу, чем построить ее

Это правило имеет отношение к п.2. Начните с малого и растите постепенно. Когда решаете проблему, легче всего начать с небольшой ее части (возможно, используя временные заглушки или эмулируя недостающие части), чем сразу придумать целую огромную систему.

Если вы сразу создаете целую систему, то: (a) вы не понимаете ее, (b) придумываете лабиринт, который очень трудно изменить. С другой стороны, если у вас много небольших элементов, взаимодействующих друг с другом, проведение рефакторинга будет легче, если вы поймете, что ошиблись где-то в начале.

Причина в том, что вы никогда не узнаете какой должна быть действительно правильная архитектура. Очень редко можно предугадать, какими будут внешние воздействия на вашу программу. Вы можете быть уверены в том, что знаете, как проходит TCP трафик через ваш почтовый сервер или количество адресатов, а может, вы никогда не слышали о спаме. Всегда найдется что-то, что нарушит ваши предположения, а если они образуют огромную, запутанную, сложную программу, это значит — у вас серьезные неприятности.

  1. Изучите уровни приложения

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

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

  1. Я недостаточно молод, чтобы знать все

Мне все еще нужно многому научиться. Есть языки, с которыми я почти не работал, но хотел бы (Erlang, Clojure). Есть языки, с которыми я «поиграл», но не знаю их достаточно хорошо (JavaScript), а еще есть идеи, которые я почти не понимаю (монады).

PS: мне указали на то, что я не упомянул о тестировании. Стоило бы добавить, я уверен в том, что тестирование важно для любого кода, который будет использоваться достаточно долго. Возможно, если я буду заниматься программированием еще 30 лет, у меня будет ответ на вопрос «улучшают ли юнит-тесты качество программ?». Я писал код и с тестами и без тестов и до сих пор не уверен, что знаю точный ответ, хотя и склоняюсь к тому, что юнит-тесты могут иметь положительный эффект.

Оригинальная статья Джона Грэхем-Камминга http://blog.jgc.org/2012/07/some-things-ive-learnt-about.html .

5089
Комментарии (153)
  • 7 сентября 2012 в 08:09 • #
    Андрей Скопинцев

    Читал с интересом, пока не дошел до момента оригинала публикации статьи. Прочитал ФИО автора. Расстроился, что не наши парни написали, не наши ребята дошли до всего этого, не наши решились сказать во все услышанье.

  • 17 сентября 2012 в 15:08 • #
    Александр Цветков

    Я тоже сначала переполнялся гордостью, думая, что статью написали у нас. А у нас - в квартире газ. И в головах, чаще всего газ. И еще нефть. И еще немного того, что отражено нашими молодыми программерами ниже. Рад был встретить единомышленника!

  • 25 сентября 2012 в 15:14 • #
    Sergey Merin

    Мда уж, бывает и такое, жаль конечно))

    Система $593 в час - http://binary.at-the-movies.net/ru

  • 13 октября 2012 в 01:42 • #
    Дмитрий Тихонов

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

  • 15 октября 2012 в 07:46 • #
    Андрей Скопинцев

    Не обязательно, но можно.

  • 23 октября 2012 в 13:56 • #
    Дмитрий Тихонов

    Понятно что можно, но непонятно обида на то, что копипатстом чужих слов занимаются не у нас и не наши.

  • 23 октября 2012 в 14:15 • #
    Андрей Скопинцев

    А никто не выдает. Если Вы внимательно читали... А возможно, не внимательно. Внизу написан первоисточник, так делают всегда, когда цитируют. Правила такие.

  • 25 октября 2012 в 22:37 • #
    Дмитрий Тихонов

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

  • 7 сентября 2012 в 09:10 • #
    Ivan Komlik

    Когда я основательно начал учить свой первый язык программирования. Усвоил для себя одну вещь. Это "ЯЗЫК", а изучение любого языка начинается с элементарной грамматики и запаса слов. Как в английском, есть категория "читаю и перевожу со словарем". Так и в C++, MASM/TASM/WASM и др. есть справочник, своего рода словарь. Который месяц сижу и программирую со "словарем", вспоминая университетские курсы по прикладной математике.

  • 13 сентября 2012 в 15:17 • #
    Борис Хакимов

    Даже написание статьи и то требует словарь, а здесь справочная система необходима..

  • 7 сентября 2012 в 09:51 • #
    Олег Савкин

    Звучит немного наивно, судя по всему автор статьи малость outdated - мало кто задается нынче вопросами, которые он тут поднимает (цитата "Причина в том, что вы никогда не узнаете какой должна быть действительно правильная архитектура. Очень редко можно предугадать, какими будут внешние воздействия на вашу программу"). Большинство разработок это не расписанные на года планы, а "скрам" на пару недель, с перспективой на месяц, когда должен представить продукт :)

    В целом, после работы в прорамировании в течение цать лет, не так важно на каком языке программить. Ессно, потребуется время на ознакомление - меньше недели, в наше время.

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

  • 8 сентября 2012 в 16:31 • #
    Игорь Цесельский

    Большинство ВАШИХ разработок ""скрам" на пару недель"?
    Прекрасно, но тогда будьте скромнее в оценках.
    Автор в команду вас учеником бы взял - он умен и повидал мир.
    Всегда есть надежда.
    В общем, подростковый гонор (или если понятнее - пубертатный).
    особенно умилило вот это "Я думаю, автор статьи мог бы преподавать где-нибудь".
    Он думает!!!!
    Спасибо.
    Никогда не найму в Tango.me
    Не доросли ищщо

  • 9 сентября 2012 в 20:38 • #
    Андрей Исаев

    На что обиделись то ? Откуда такая резкость в суждениях ?
    Если человек написал про "цать лет" программирования, о каком "подростковом гоноре" может идти речь ? "Будьте скромнее в оценках"...
    Кстати, думаю что к Вам он и не пойдет - ему дело делать надо, т.е. предоставить продукт.
    А это сроки и ответственность, а не размышления о "внешних воздействиях на программу".
    Сами-то кого на проект возьмете - профессионала с хорошим знанием КОНКРЕТНОГО инструмента и технологии или мыслителя с размышлениями о внешних воздействиях?

    О статье.
    Действительно - какой-то поток сознания.
    Способ отлаживаться через printf - явное outdated, если есть реальная возможность работы с отладчиком. Конечно, все зависит от условий, в которых приходится работать. Иногда и логи - счастье.
    Про честность... До какого "уровня честности" способен дойти автор статьи ? До уровня ассемблера и прерываний ? Где мерило его честности ? Всегда есть уровень эксперимента, пробы чего-то нового и есть уровень "если делаем это - получаем это. ВСЕГДА. (с учетом обоснованных ограничений, естественно)"

    Да по каждому пункту статьи будет замечание в стиле "зависит от".
    О простоте программ - раз восемнадцать "хи-хи". У сложных задач не бывает простых решений. Либо это - не решение, а частный случай.

    Поэтому, уважаемый Игорь, я немного удивлен ответом на пост Олега и не очень понимаю трех восклицательных знаков после очень программистского слова "думает".

  • 19 сентября 2012 в 00:24 • #
    Виктор Зеленов

    "О простоте программ - раз восемнадцать "хи-хи". У сложных задач не бывает простых решений. Либо это - не решение, а частный случай."

    Ага, знакомое! ))) "Сложные проблемы всегда имеют простые, легкие для понимания неправильные решения."- Неправильное цитирование закона Х.Л. Менкена Гроссманом. (Закон Мерфи)

  • 11 сентября 2012 в 21:43 • #
    Олег Савкин

    Да ради бога, берите такого в свою команду :)
    Пубертатнный гонор я заметил скорее у вас - как бы обида на мой ответ, который, судя по всему, никак не отвечает вашим ожиданиям на этот топик.
    Прежде чем критиковать меня и то, чем я занимался, и занимаюсь, вам бы следовало узнать об это подробнее. Хотя сомневаюсь, что вам это поможет, я не заметилд в России много работ в этой области.
    И, уважаемый директор, Вам бы не помешало поучиться микроменеджменту, а так же умению общаться аргументированно. А не на эмоциях.
    Удачи

  • 16 сентября 2012 в 14:35 • #
    Андрей Исаев
  • 17 сентября 2012 в 11:37 • #
    Александр Чаузов

    >> Никогда не найму в Tango.me
    >> Не доросли ищщо

    :-D откуда уверенность, что к Вам в Танго так хотят?..

  • 19 сентября 2012 в 19:15 • #
    Игорь Цесельский

    А откуда сомнения в моей уверенности?

  • 9 сентября 2012 в 17:30 • #
    Michael Rogachev

    Поковырявшись в интернете, я обнаружил, что этот парень и не нуждается в работе в "скрамной недельной" команде. Думаю, его пункт 0 надо воспринимать как простую английскую сдержанность. Во всяком случае, найденная информация не характеризует его как временщика в стиле "Hello, World".
    Поскольку в Вашем отзыве никаких конструктивных советов не содержится, то опыт этого парня выглядит намного предпочтительнее. Удач в "скрамном" блице.

  • 11 сентября 2012 в 21:45 • #
    Олег Савкин

    Несомненно. Потому его должность будет скорее ближе к executives, CTO, архитектор. Но никак не разработчик, о чем я и пытался сказать

  • 17 сентября 2012 в 08:56 • #
    Юрий Суслов

    Когда кругозор человека сужается в точку - это называется точкой зрения.

    "Большинство разработок" по объемам вложений и усилий - это как раз расписанные на года планы, и системы, живущие десятки лет.

  • 20 сентября 2012 в 20:57 • #
    Ольга Корнеева

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

  • 13 октября 2012 в 01:43 • #
    Дмитрий Тихонов

    Автор статьи Британский ученый этим все сказано :).

  • 7 сентября 2012 в 12:33 • #
    Рустэм Валеев

    Думаю, то что статья - просто перевод чужой импортной статьи, нужно указывать в самом начале. А по содержанию... Неизвестный нам автор пишет свои мемуары, чисто по человечески понятные, но вот польза... Намного полезнее почитать о структурном программировании и нисходящем проектировании, IDEF0 и Rational Rose...

  • 7 сентября 2012 в 18:13 • #
    Людмила Боровикова

    По-моему совет не актуален, потому, что исходит из постулата "0. Програмиирование — это ремесло, а не наука или инженерия". Если взять за основу, что программирование - это творчество, тогда вопрос об инструментах отпадет сам собой.

  • 17 сентября 2012 в 08:49 • #
    Виктор Найда

    И все-таки, не смотря на элемент творчества, это ремесло. :(

  • 17 сентября 2012 в 09:56 • #
    Сергей Семенов

    А если учесть, что творчество, именуемое стихосложением, тоже ремесло? И программирование я всегда сравниваю именно со стихосложением, в котором при минимуме слов выражается максимум смысла ;-)

  • 8 сентября 2012 в 11:10 • #
    Andrey Chigisheff

    На самом деле все сильно зависит от того на каком уровне программирования в данный момент находишься. Если проектируешь программу (тупо - формируешь свою реакцию на "хотелки" клиента) на этапе ТЗ и глубже - это и инжиниринг и искусство в одном стакане (ёрш, то есть).
    Когда представил и уяснил для себя структуру программы определился со способами сохранения данных и разработку основных классов с их свойствами, закрыл функцию mail{}. Т.е. завершил с интерфейсом. Четко видишь свою программу.
    Далее наступает реализация методов - рутина, ремесленничество. За множеством подробностей начинаешь терять структуру и все, что "напридумывал" на начальном этапе. (именно на первом этапе необходимо документировать проект, чтобы однажды не задать сокрамен сокраментальное - !""и

  • 8 сентября 2012 в 11:12 • #
    Andrey Chigisheff

    "Иде Я?" и позже "Кто Я"

  • 8 сентября 2012 в 16:32 • #
    Игорь Цесельский

    Слава богу. есть ещё понимающие. спасибо.

  • 13 сентября 2012 в 14:42 • #
    Андрей Приваренко

    Так, Слава Богу, обычный процесс разработки еще никто не отменял.
    1. ТУ
    2. ТЗ, подробнейшейшее, прописанное во всех деталях (почти - все заранее не предусмотришь) - искусство.
    3. Проверка и шлифовка ТЗ на масштабируемость (новые хотелки появятся 100%) - искусство.
    Итого = до 60% стоимости проекта (негласно)
    4. Реализация - ремесленничество.
    5. Оптимизация (применяется поэтапно и на 4-м пункте) - тоже.
    6. Тестирование - тоже.

  • 13 сентября 2012 в 16:23 • #
    Сергей Поленок

    Процесс разработки никто не отменял... НО - кризис императивного программирования тоже никто не отменял. Сегодня программа должна обладать нулевым временем внедрения и нулевым временем адаптации, а также обеспечивать эволюцию. Если за время написания кода ТЗ и ТУ поменялись несколько раз или необходимо модернизировать чужую программу, то нужно писать новую программу с нуля.

    Так что автор правильно все описал - главное ЭВОЛЮЦИЯ и простота внедрения. Кроме того, поменялась методология - сегодня программируется уже не процесс (который стал коротко живущим), а информационное взаимодействие (юзеров, программ, устройств и пр.) - вместо императивных систем появляются информационные открытые экосистемы. Нужна только правильная платформа для обеспечения такого взаимодействия и т.д. и т.п. :)))

  • 14 сентября 2012 в 11:00 • #
    Борис Хакимов

    Именно поэтому и спрос вырос на конструкторы для игр и сайтов. для настольных приложений тоже можно создать конструктор, в нем можно описать модели объектов (информационных), динамические справочники, методы, функции... Примерно, как в qW. В приложениях мы имеем дело с реализацией того, что описали в конструкторе, ИБД не меняется, приложения для разработки с открытым кодом, если ТЗ и ТУ поменялись, то перепрограммировать ничего не надо, достаточно внести изменения в конструктор, они мгновенно появятся в приложении ...

  • 17 сентября 2012 в 12:09 • #
    Сергей Поленок

    Все эти конструкторы стоят на идее Логического взаимодействия ("Матрица", "Органон" Аристотеля и пр.). Это хорошо при описании детерминированных, например, технологических процессов, но совершенно не подходит к системам человеческого электронного взаимодействия с массой неопределенностей и трансцендентностью. Для решения таких задач пытаются применять схемы нейронных сетей, мульти-агентных систем, систем монадного типа и пр.

    Однако главное не это. Акцент сместился с программирования процесса (функции) на программирование Пользователя (Кибер-пользователь). Поиск логической Истины сменился на поиск Пользы (праксеологию). Пользовательские приложения стали не только новой точкой роста, но и мейнстримом развития. Сначала пользовательские аккаунты на е-мейле, потом - в социальных сетях, а сегодня уже облачные вычисления и пр. Цифровые гаджеты (iPhone и мобильные приложения) изменили информационное пространство, введя в него информационного Субъекта, способного к саморазвитию.

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

    Любую компьютерную программу и идею сегодня сложно монетизировать, т.к. она легко копируется, клонируется и распространяется. Если же прикрутить эту программу к платформе (экосистеме) информационного общества, тогда она автоматически встраивается в процессы взаимодействия и монетизируется на основе защиты авторских прав.

    Короче, как говорил Остап Бендер: "На старом императивном программировании далеко не уедешь". Новые ИТ-технологии дают сегодня 100-кратный прирост производительности при катастрофическом падении цены. Поэтому переход на новые бизнес-модели в ИТ - это сегодня факт. Заниматься написанием программулин под заказ или - развивать свои приложения для ИТ-экосистемы - Вот в чем вопрос!!!

  • 17 сентября 2012 в 13:42 • #
    Борис Хакимов

    Вы не правы, Сергей, и вот почему. Подход - развитие идей информодинамики для разработки приложений, в основе лежит теория искусственного интеллекта, напоминает подход qW (qWord), но намного эффективней и гибче. БД в таких подходах делится логически на 2 части, одной соответствует база знаний (конструктор), есть и другие названия (но уж никак не движок!), другой части - приложения. Каждое приложение уникально, поэтому здесь открытый код. В конструкторе на контекстно-зависимом языке описываются информационные модели объектов, методы, справочники, функции и так далее, структура модели - структура вложенных моделей. В общем подход описан в "Информодинамика или путь к Миру открытых систем". Ничего общего с движками для сайтов и игр! Замечу, что структура ИБД не меняется для любых приложений, как и в qW.

  • 17 сентября 2012 в 13:45 • #
    Борис Хакимов

    Хочу задать вопрос. Допустим, что изобрели новую структуру облачных технологий, сможете ли Вы найти заказчика?

  • 17 сентября 2012 в 13:55 • #
    Сергей Поленок

    В любом случае, такой подход - это Логическая Матрица, которая не обладает саморазвитием и самоконфигурированием. Нужна открытая экосистема - примером может являться сеть Интернет. Однако, нужно как-то развернуть систему управления информацией, чтобы обеспечить обработку огромного количества данных помимо человека (преодолеть так называемый "второй информационный барьер"). Будет ли это искусственный интеллект, бизнес-интеллект или что-то еще - неважно, главное человек получает готовое решение (или варианты) и осуществляет ДЕЙСТВИЕ. А сегодня информация зависает в воздухе, порождая проблему Больших Данных...

  • 17 сентября 2012 в 13:57 • #
    Сергей Поленок

    Заказчик есть -это правительства и массовый пользователь, есть международная нормативная база, есть бизнес-модель монетизации, есть базовая архитектура и сервисы, но можно (и нужно) предлагать новое решение (жизнь на месте не стоит - бета-версия никому еще не мешала).

    Если есть техническое решение, можно внедрять!

  • 17 сентября 2012 в 14:10 • #
    Борис Хакимов

    Интеллектуальная система - открытая система, взаимодействие с человеком - контекстное, так что это не логическая матрица и контекст не алгоритмический, по принципу СУО, субъект - управляющее воздействие, объект, затем субъект и объект меняются местами, работы глав школ по информатики просматривать изредка надо..

  • 17 сентября 2012 в 14:14 • #
    Сергей Поленок

    Одобрямс... Что дальше? Школы по информатике знают, как построить информационное общество?! Расскажите!!!

  • 17 сентября 2012 в 14:17 • #
    Борис Хакимов

    России нужны люди преданные, а не образованные и разбирающиеся в технологиях, вот направление дальнейшего развития любых технологий и изобретений...

  • 17 сентября 2012 в 14:29 • #
    Сергей Поленок

    России нужны ИТ-миллиардеры из Сибирской глубинки :)))

    Фактор производства сегодня поменялся - вместо капитала на первое место вышла информация и знания (поэтому общество называется информационным вместо капиталистического).

    Информация "второй свежести" и невозможность применить знания - это гибель для сегодняшней экономики и путь в "смутные времена".

    Экономика сегодня становится более прозрачной (таковы глобальные правила игры), поэтому преданность уже ничего не решает, когда весь компромат в Интернете, а бабло - в оф-шоре, контролируемом мировым сообществом (Вашингтонским обкомом). Microsoft и Apple смогли своими продуктами втащить домохозяек в цифровой мир и стали супер-успешными. Поэтому - помни о Пользователе. Удачи Вам...

  • 17 сентября 2012 в 14:32 • #
    Борис Хакимов

    “ Когда знание перестает быть процессом, а контекст предопределен – интеллект исчезает”.
    В.М. Лачинов, А.О. Поляков. Информодинамика или Путь к Миру открытых систем.
    СПб: Изд-во СПбГТУ, 1999.

    “Правда, в Мире информационном все происходит наоборот. Не тот богат,
    кто владеет байтами, а тот, кто понимает контексты”.
    В.М. Лачинов, А.О. Поляков. Информодинамика или Путь к Миру открытых систем.
    СПб: Изд-во СПбГТУ, 1999.

    Это одна из книг, статьи и кучу работ академиков, докторов и студентов можно найти здесь (решения, поставленной Вами задачи)
    http://inftech.webservis.ru/
    Замечу, что для понимания знания математики не нужны, только кругозор, правда, изрядный, тпк что прошу извинить меня, но проше описать решения не смогу с ходу и быстро, принимайте готовые. Удачи!

  • 17 сентября 2012 в 14:40 • #
    Борис Хакимов

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

  • 17 сентября 2012 в 14:48 • #
    Сергей Поленок

    Для развития новой Интернет-экономики нужны новые знания, которых нет в классических учебниках.

    Пример - все успешные ИТ-компании (Microsoft, Apple, Facebook) были основаны либо недоучками, либо студентами, т.е. людьми, не получившими законченного классического образования. Более того, если бы они успешно закончили университет, то классические знания не дали бы им креативить, а сделали бы их заурядными клерками или трудоголиками в какой-нибудь корпорации. А так - в жизни всегда есть место новому - именно так можно занять первое место в мире. А иначе: O imitatores, servum pecus! - О подражатели, рабское стадо! (Гораций , «Послания»).

  • 17 сентября 2012 в 14:56 • #
    Борис Хакимов

    Информодинамика наука молодая, это не классика, между прочим, как наука возникла в 1985 году. Скажите - платформу .NET тоже недоучки создали? Если да, то наш глава образования на 100% прав.

  • 17 сентября 2012 в 14:59 • #
    Сергей Поленок

    Это все классно, но, к сожалению, уже устарело... Всех волнует один вопрос - у домохозяек, предпринимателей и у блондинок в кармане лежит iPhone - информация скоро дыру прожжет - Что делать??? Народ хочет ДЕЛАТЬ ЦИФРОВУЮ ЖИЗНЬ! Академики, народ стонет под гнетом террабайтов. Дайте выход интеллекту!!!

    А в ответ - тишина... Только слышен шелест БЭСМ-6 с Эльбрусом и в воздухе застыл гул Электронного правительства, заглушаемый грохотом Электронного документооборота... 751 градус по Фаренгейту (температура горения бумаги)...

  • 17 сентября 2012 в 15:06 • #
    Сергей Поленок

    Платформа .NET - это что - точка роста, начало новой эпохи? Это просто ступенька, но не прорыв - информационный барьер на пути к информационному обществу не преодолеешь и ИТ-миллиардеров не создашь, как, например, в Интернет...

  • 17 сентября 2012 в 15:31 • #
    Борис Хакимов

    Какие пути видите?

  • 17 сентября 2012 в 20:13 • #
    Сергей Поленок

    Путя, в принципе, понятны : )))

    В мире, по результатам 2011 года насчитывается 2,1 млрд. пользователей Интернета. Мировая Интернет-экономика в странах Большой двадцатки (G20) к 2016 году достигнет 4,2 трлн.долл, что вдвое больше показателей 2010 г. (по данным The Boston Consulting Group). Учитывая тотальное технологическое обновление (IPv6, HTML5, мобильный Интернет), а также новые направления развития, связанные с облачными вычислениями, е-торговлей, электронными платежами, семантическим Интернетом, Интернетом вещей (Internet of Things) и пр., возникают новые возможности по борьбе за мировое лидерство в целых секторах Интернет-экономики, опираясь на имеющийся человеческий потенциал.

    Следующим шагом в ИТ-развитии, скорее всего, будут хозяйственные бизнес-сети (а-ля хозяйствующий Фейсбук). Необходимое международное правовое поле, обеспечивающее защиту прав, интересов и свобод участников электронного взаимодействия и е-торговли, в странах СНГ уже создано (что само по себе уже беспрецедентно) и есть действующий прототип системы.

    Дальше необходимо решать вопрос с частной собственностью на информацию (или с защитой авторских прав), по аналогии с частной собственностью на капитал, для получения авторского роялти.

    Опосля нужно разворачивать свой глобальный “цифровой” рынок, на который все с удовольствием придут, а на чужие рынки нас никогда не пустят, только в качестве дешевых работников и сырьевого придатка. На этом “цифровом” рынке можно и налоги снимать с электронных операций, и низконалоговый оф-шор организовывать, чтобы обезопасить инвесторов и перетащить инвестиции с других рынков и т.д. и т.п.

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

    Нужна государственная программа перехода к информационной экономике, где впереди идет информация, а товары и капитал – следом. Наоборот уже не получится. Куда сбывать товары и вкладывать капитал, сегодня непонятно. Более того, сегодняшние ИТ-технологии носят откровенно разрушительный характер, ломая старую систему производственных отношений. Одним словом, для стабильности экономики нужно 1% вумных управленцев, вырабатывающих правила. Сегодня же таких информационно подкованных стало 10% и началась разбалансировка – все стали жуть как вумные – плюнуть не на кого… Нужно поручить все вопросы ИИ, всех вумных отсечь и оставить 1% разработчиков ИИ.

    В общем, ментальность сегодня менять придется, зато открываются перспективы. Где-то так, наверное : )))

  • 17 сентября 2012 в 20:57 • #
    Борис Хакимов

    Взгляды и отношение к жизни точно менять придется в связи с развитием экономики и уровнем жизни.

  • 18 сентября 2012 в 03:06 • #
    Сергей Шобик

    Вообще то 451

  • 18 сентября 2012 в 13:44 • #
    Сергей Поленок

    Ошибся маненько, звиняюсь :)))

  • 8 октября 2012 в 18:31 • #
    Алексей Еремин

    Глубокоуважаемый Сергей П.,
    На счет Вашего ..."Что делать??? Народ хочет делать цифровую жизнь! Академики, народ стонет под гнетом террабайтов. Дайте выход интеллекту!!!"...

    - могу предложить идеологию
    "МИРОВОЙ РАЗУМ: ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ И 10 СТРАТЕГИЙ ИНТЕЛЛЕКТ-ТЕХНОЛОГИЙ":
    http://a-eremin.ru/rus/works/show/?itemid=147

  • 17 сентября 2012 в 16:44 • #
    Денис Алексеев

    Полностью согласен. На лицо "оптимальная" модель ...и для потребителя и для разработчика.

  • 17 сентября 2012 в 17:32 • #
    Борис Хакимов

    К сожалению, технологии эти никому не нужны..

  • 13 сентября 2012 в 12:05 • #
    Артем Солохин

    Мне нравится то, что он написал. Оптимизация кода, понимание того, что происходит. Все прально.
    Но в конторах, где я работал это бывает проблематично, так как вечная гонка куда-то, сроки, куча задач одновременно. Не до оптимизации.

  • 13 октября 2012 в 01:22 • #
    Дмитрий Тихонов

    То до что он написал, было сказано Шилд более 30лет назад.

  • 13 сентября 2012 в 13:15 • #
    Vladimir Litvinenko

    Скажу немного отвлечённо от темы.
    Большинство комментариев напомнили цитату из фильма "Приключения коронованной особы": "Попытки Председателя свести диалог к банальной драке не увенчались успехом".
    Я, например, понял, что хотел сказать автор. Понял, зачем и что им двигало.
    Думаю, выражать мнение об авторе, как о профессионале, неприлично. Размышления о подходе мира разработок к ПО и методах написания программ можно безуспешно отстаивать до хр[и|а]поты.
    Господа, есть хороший пунктик подстрочного меню для оценки статьи. Он носит название "Мне нравится". Жмите или не выбирайте. Хотите поделится собственным мнением, напишите отдельно. Хотите сразится -- в "личку". Возможно, поединок завершиться ...патчем статьи и её дальнейшей жизнью. :)
    Как-то так...

  • 13 сентября 2012 в 14:03 • #
    Сергей Поленок

    А мне понравилось :)))

    Игорь, огромное спасибо за статью!!! Круто чувак жжот! Гениально определил программирование как ремесло и отделил мастодонтов, пишуших монстроидальные программы, лузеров, не понимающих сути ремесла, от инноваторов, креативщиков и крутых программеров (хакеров), короче, мастеров в своем деле.

    В нашем обществе считаю статью неуместной (азиаты-с, не поймут-с). У нас другой уровень понимания и восприятия действительности, типа: "Чувак, дай мне эту фигню, я ее сюда прифигачу, чтобы все офигели. - А на фига? - А тебе не пофиг?"

    На Западе программист еще воспринимается больше как постановщик задачи и архитектор системы. У нас этот период уже давно миновал (лет 20 назад). Период, когда готовились слесаря-программисты (лет 10 назад), тоже закончился. Властвуют сегодня "кодеры-куда пошлют". И это при том, что молодое поколение (поколение Y - до 30 лет), по данным исследований, сегодня на 10% умнее, чем остальные. Но, несмотря на то, что "среда заела", лучи света обязательно пробьются и у нас...

  • 14 сентября 2012 в 15:24 • #
    сергей матяс

    я хотел понять графику компа\но логика сводится к тому что больше чем до 10ти считать вредно (ЧАЙНИК)

  • 15 сентября 2012 в 09:04 • #
    Анатолий Анимица

    Чему я научился за 45 лет программирования.

    Да, 45 лет, как ни верти.
    Первая программа была написана на бейсик-подобном языке для Наири-1, 1967 год.
    Потом, в 1968 - тоже на Наири на ее мнемокоде, типа ассемблера, и для БЭСМ-4.
    Но это были развлекалки, я все-таки инженер электроник, разработчик схем, а не программист.
    Тем не менее, в 1970 начал писать программы уже для процессора, в разработке которого принимал участие в НИИУВМ("Параметр", прототип известной машины М-6000). На машинном языке, ноликами и единичками, разумеется.
    А потом уже - на всем, что движется и всеми средствами, какие бывают.

    Главное, что я выучил за 45 лет - это фразу из Фредерика Брукса, "Мифический человеко-месяц": "То, что один программист напишет за одну неделю, два программиста напишет за две недели". А через много лет наблюдений добавил к этой фразе: "... а три - никогда".

    Вот это "а три - никогда" и является главным итогом 45-летней практики программирования электронных цифровых вычислительных машин.

  • 16 сентября 2012 в 04:55 • #
    Игорь Цесельский

    О! ЭЦВМ! Наири. А есть ещё Наири-К. И Аргон-1. Проностальгировали, все-таки инженер электроник?
    А есть ещё БЭЦВМ. И 500 программистов для одной БЦВМ 16 к слов? Ничего не могут, бедолаги. Только один, ну два... Гении и практики.
    Бред собачий и свинячий.
    Засуньте свою 45 летнюю бредню под хвост программирующей свинье Иван Никифоровича, и дайте ей ружье - чтобы застрелиться во вселенском позоре. С 1970 года. Зарядите ноликами и единичками. Залп!

  • 16 сентября 2012 в 10:14 • #
    Борис Хакимов

    В Мире информационном не тот богат, кто владеет байтами, а тот, кто понимает контексты.

  • 16 сентября 2012 в 10:28 • #
    Борис Хакимов

    Гении и практики говорите? Именно они разработали приемы борьбы с ошибками округления, при решении задач управления, прогнозирования и оптимизации без нее никак, в настоящее время этими приемами почти никто не владеет, зато ноликами и единичками стрелять могут непрерывно, замечу, что АСУ, созданное в то время, прекрасно работает в Германии, немецкий синдром называется...

  • 17 сентября 2012 в 10:52 • #
    Борис Андреев

    Фу, как некрасиво.

    Именно многолетний опыт и показал, что программирование именно в паре наиболее продуктивно.
    Причём сложность и объём решаемой задачи на это практически не влияют.
    Так мы работали когда-то на БЭСМе, работаем сейчас (типа скрам) и, бог даст, будем работать и дальше.

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

    Единственое, что я тут не понял - в чём оригинальность статьи Джона Грэхем-Камминга? Неужели для кого-то это может быть откровением, и чтобы это понять требуется 30 лет!

  • 17 сентября 2012 в 15:37 • #
    Борис Хакимов

    Очень близко к идеалу, правда, истина недоступна.

  • 18 сентября 2012 в 14:46 • #
    Геннадий Камнев

    Анатолий Анимица, Вы заставили меня вспомнить прошлое. Может быть это не по теме, вообще-то я авиационный инженер по радиооборудованию самолётов. Потом прошёл повышение квалификации по обработке полётной информации и стал работать на М-6000 (историю этого "шедевра" вычислительной техники Вы наверняка знаете). Мне помогала инженер по системному программированию Татьяна Слюняева (спасибо ей). В перерывах между ремонтами М-6000 мы занимались программированием (я всё-таки как любитель, несмотря там на обучение, потому-что это мне нравится, как и радиолюбительство) специально урезанным ассемблером (мнемокодом). И через некоторое время у нас стало получаться. Тогда ничего нельзя было достать без знакомых, а сейчас купить без денег (которых конечно у нас нет). Но мы тогда раздобыли урезанный Бейсик. Сейчас я просто удивляюсь, каким образом и какие программы мы делали, как мы изворачивались и это то при памяти всего в 8 килобайт, а постоянная память - это, конечно, перфоратор. Апогеем было создание нами программы по регламентным работам Ан-24, мы справились с этой задачей. Как обычно подститали доход... о боже 50 000 рублей. Оформили заявку на изобретение и размечтались... Однако когда пришли документы, то нас там не оказалось (последним был главный инженер АТБ). Мы стали возмущаться, но нас утихомирили дополнительной разовой премией в размере нашей средней зарплаты. Больше у нас не было желания заниматься большим изобретательством (сейчас я на пенсии, разговаривал с ребятами... ничего не изменилось, кроме того, теперь у них и самолётов то своих нет: обслуживают другие и по очереди летают на заработки в Арабские Эмираты ). Кстати и сейчас нам приходится работать для себя не на официальных языках программирования, а на тех кто где лучше достал... потом проверять свой шедевр уже на официальной операционнке (пойдёт... не пойдёт... пошла!!!). Успехов Вам и всего доброго.

  • 18 сентября 2012 в 18:04 • #
    александр еремин

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

    Вы что, в семиричном, шестнадцатиричном коде пишете?

  • 18 сентября 2012 в 20:30 • #
    Александр Цветков

    Пишите для Линукс и все будет официально!

  • 17 сентября 2012 в 08:18 • #
    Андрей Роговски

    Программирование - искусство

  • 17 сентября 2012 в 09:43 • #
    Андрей Копылов

    это только первые пару лет так кажется...

  • 17 сентября 2012 в 12:25 • #
    Сергей Поленок

    Программирование - это быстрый путь к богатству (Microsoft, Yahoo, ICQ, Google, Facebook, Skype и пр.), и плох тот программист, который не мечтает выйти на IPO :)))

  • 17 сентября 2012 в 12:11 • #
    Геннадий Камнев

    Оригинальна ли статья Джона Грэхем-Камминга? Оригинальна не столько статья, а тема которую поднял Игорь Цесельский. Особенно интересны комментарии, столько эмоций...
    А я вот наверное не доживу до нашего компьютера, до нашей операционной системы и нашего языка программирования (хотя бы на уровне англо-визуальных и объектно-ориентированных). Удалось мне немного поработать на Мир-1, 2. Но это так давно было, я ждал нашу «Электроннику-75М» (даже видел образец).
    Потом радовался нашим новым разработкам, но там, где побывал М. С. Горбачёв, всё потихоньку сворачивалось и убиралось, исчезало и таяло. Неплохой язык для того времени разработал Ершов, но с его уходом ушёл и его язык Помню был язык «Питон». Теперь о программировании. Программирование должны изучать все, но это не значит что все должны стать программистами. Потом, перевод с английского на русский и, тем более, наоборот это не однозначный процесс. Сейчас у нас ремесленник понимается иначе, чем у нас же несколько раннее. Ближе всего к программированию стоит мастерство, вспомните сказ Бажова «Каменный цветок». Так и программа создаётся, как цветок вырубается из камня. Ремесленник делает заготовку, а мастеровой объект. Но не каждому мастеру дано создать «Каменный цветок» - программу о которой мечтает каждый программист. Удачи вам

  • 17 сентября 2012 в 13:29 • #
    Сергей Поленок

    Мне кажется, что «Каменный цветок» программирования скоро должен расцвести на просторах Отечества. Отечество взлюбило деньги – “се ля ви”, а прибыли ему нужны тем паче...

    Короче, на чем сегодня заработать? Металл был год назад 900 долл. за тонну, сегодня - 320 долл. Нефть - цены высоки, но объемы поставок падают катастрофически, а еще от прежних каналов сбыта нагло отрубают всякие "цветные" революции. Доллар, евро, рубль, юань, иена - все валюты достаточно быстро и синхронно обесцениваются - все сбережения, все, что накоплено непосильным трудом, обесценивается в потоке галопирующей инфляции (ой, звиняюсь, девальвации).

    И тута на арену выходит Интернет-экономика - и повышение эффективности всех процессов, и новые методы работы с инновациями, и новые многообещающие рынки, и новые виды капитала и пр.

    Немного истории. Слово "кибернетика" впервые было использовано в 1844 году каким-то поляком для описания науки об управлении. 1890-1930-е гг. - Львовско-варшавская школа логики - заложила основы семантического представления знаний и, в дальнейшем, кибернетики. 1940-е гг. Н.Винер и К.Шеннон предложили теорию информации, представив информацию как набор цифр для компьютинга и выбросив оттуда всю смысловую (семантическую) часть. Советские ученые выступили против этого и назвали "кибернетику" - "продажной девкой империализма". В результате, кибернетика прекрасно обслуживала инженерные задачи, а в экономике – задачи бухгалтерского учета. Сегодня это вылилось в то, что набор цифр, представляющий бухгалтерскую отчетность, статистику за прошлые периоды и маркетинговые домыслы, никаким образом не пригоден для ведения бизнеса в современном мире. Информация нуждается в семантике и онтологии – системе обратных связей и контекстных отношений.

    Идем дальше. 1965 год – академик В.М.Глушков совместно с С.Китовым предложили проект “Общегосударственной автоматизированной системы учета и обработки информации” (ОГАС), который делал процессы управления экономикой прозрачными. Совет Министров тут же сжег засекреченный проект, чтобы не попасть под контроль ЦК КПСС. (В 1970 году такой проект технократического управления экономикой был реализован в Чили немецкими кибернетиками, но продержался недолго - в результате переворота поменялась власть). 1969 год – проект ARPANET Минобороны США стал прообразом сегодняшнего Интернета.

    Наше время – пора вытаскивать бронепоезд, который “стоит на запасном пути” и возглавить мировую Интернет-экономику… Правительство пока думает – раскошествует – других перспектив для роста ВВП нет, но пока доходы позволяют надувать щеки – надеются на прорывные технологии из Сколково – “скатерть-самобранку”, “ковер-самолет” и “шапку-невидимку” : )))

  • 17 сентября 2012 в 15:33 • #
    Борис Хакимов

    Это уже история, ошиблись.

  • 17 сентября 2012 в 15:38 • #
    Александр Цветков

    Сергей, внимательно почитал Ваши посты на тему, которую Вы значительно расширили от первоначальной. Трудно не согласиться с главной мыслью - нужен прорыв, он в области ИИ и его сейчас неплохо бы сделать именно нам. Блестящая мысль, на мой взгляд! :-)) Если можно, вопрос. А Вам на эту тему реально есть с кем общаться, так что бы не на абстрактно-вербальном уровне, а чуть-чуть поближе к земле-матушке, к реальной практике? Что-то мне подсказывает, что с этим у нас как раз и начинаются серьезные трудности. :-((

  • 17 сентября 2012 в 19:28 • #
    Сергей Поленок

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

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

    Если у Вас есть какие-то наработки в этой области, то готов их внедрять в международной сети е-торговли. Удачи Вам...

  • 17 сентября 2012 в 21:06 • #
    Александр Цветков

    Спасибо, Сергей. Я защищал диплом 2-го ВУЗа по кафедре ИИ в 1991 г. Этой базы мне хватает, что бы задуматься над аналогичными вопросами и понять, что то, о чем Вы говорите - крайне актуально. Но недостаточно, что бы предложить свои готовые решения. Я, наверно, неплохой системный программист в Linux. Это немножко другое направление. Да и теория и практика ИИ за 20 лет ушла далеко. Ни поделиться мыслями, ни, тем более, что-то попытаться сделать - просто нет компании! Удачи и Вам! Рад был встретить единомышленника, первый раз за столько лет! :-))

  • 18 сентября 2012 в 18:15 • #
    александр еремин

    С удовольствием к вам присоединюсь, в своё время имел большой опыт работы с отечествеными супер-эвм, сейчас работаю с облаками.

  • 18 сентября 2012 в 09:27 • #
    Sergey Kuznetsov

    Вот тут конечно не надо передергивать... Металлы котируются совсем не плохо. Рынок волатилен, но этому способствуют куча макроэкономических факторов. Ни о каком обесценивании речи не идет. Драгоценные и редкоземельные металлы вообще рвут вверх. Тут можно глянуть: http://www.allmetals.ru/price/index.php?p=lme&t=history&i=3&pd=365

    Нефть. Цена высока-да. Объемы? Во-первых мировая экономика в стагнации, поэтому потребление нефти падает, а следовательно падает и добыча. Во-вторых, в такой ситуации глупо было бы заваливать рынок бОльшими объемами- цена упадет, а вот спрос вряд ли увеличится...

    "Цветные революции" говорите? Так они наоборот играют на руку повышения мировых цен на нефть. Бардак в Ливии и Ираке, давление на Иран и Сирию, только снижает поступление объемов на рынок. Это об объемах и ценах... "Цветные" рынки сбыта говорите потеряли?? Кого? Грузию? Вот уж гигантский потребитель!! Украину? Киргизию? Или Тунис с Египтом?

  • 18 сентября 2012 в 13:30 • #
    Сергей Поленок

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

    Во-вторых, Ваш комментарий достоин передовой колонки газеты "Правда", ой, звиняюсь, "Коммерсантъ" или "Русское слово". Или выступить на телевидении в передаче "Экономические перспективы олигархии в России". Ваше мнение абсолютно официальное (т.е. неинтересное) и правильное, если Вы работаете экспертом у олигарха или сотрудничаете с указанными газетами. Бухгалтерские выкладки советника олигарха простой народ не интересуют.

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

    Более того, страна теряет стратегические рынки и ее вытесняют из мировых финансовых потоков всякие там "цветные" революции.

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

    Наверное, степень MBA сделала Вас чистым бухгалтером, а настоящий державник или просто хозяйственник понимает, что на первом месте идут социальные вопросы (воспроизводство культуры), а потом уже прибыль (воспроизводство экономики). Потому как великий экономист Карл Маркс сказал, что без трудовых ресурсов любой капитал мертв.

    А то, что король голый и прибылей не предвидится, то это от олигархов надо скрывать, а то разгонят нафиг всех экспертов, а кушать-то хочется : )))

  • 18 сентября 2012 в 13:51 • #
    Алексей Мандрыкин

    За нашей операционной системой - это ко мне. :) Не знаю, доживёте ли до момента, когда ею станут пользоваться, но я очень надеюсь на это.

    На картинке экслюзивный скриншот, сделанный минуту назад - ядро и процесс init после старта. Прошу не кидать в меня камнями - пока ещё не перенесены с 32-х бит на 64-бита многие вещи, в том числе shell, поэтому я встроил в init макисмально простейший интерпретор и несколько команд для отладки. Тем не менее, это настощая операционная система.

    Не знаю, доживёт ли кто-нибудь из присутствующих до нашего языка программирования, но тут уже и не о языках речь надо вести, а хотя бы о нашем компиляторе. Мне известо только два с половиной компилятора, сделанных в России - это "Странник" и какая-то супер-пупер секретная разработка полугосударственной компании, которую просто так попробовать не дают.

  • 18 сентября 2012 в 20:35 • #
    Александр Цветков

    Ершов еще, кажется, выпускал журнал "Микропроцессорные средства и системы". Я его выписывал и с благоговением читал на обложке его очередную статью. Потом он умер - и все постепенно стало угасать... :-((

  • 20 сентября 2012 в 01:32 • #
    Сергей Шобик

    У меня осталось таких журналов штук 20

  • 25 сентября 2012 в 21:56 • #
    Игорь Цесельский

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

  • 19 сентября 2012 в 17:01 • #
    Валерий Мироненко

    Вы счастливец! Вам удалось поработать на МИР-1/2. Я считаю, что это лучшие машины производства СССР параметру "инновации", и ПО у них было отечественным. Кстати, один экземпляр Мира, приобрели США, насколько мне известно никаких других машин у СССР они не закупали.

  • 25 сентября 2012 в 22:18 • #
    Игорь Цесельский

    Чем это Мир был лучше Наири - класс один примерно? Мир хорошо помню, 1978, язык Алмир. Использовалась в лаборатории микроэлектроники (толстопленочные схемы) ЛЭТИ, 5 корпус - только что тогда выстроенный.

  • 12 октября 2012 в 01:10 • #
    Валерий Мироненко

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

  • 17 сентября 2012 в 12:28 • #
    Dmitry Voloshin

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

  • 17 сентября 2012 в 19:32 • #
    Vladimir Domnin

    Прочитал статью и комменты и захотелось сказать своё "фи".
    Ещё в 1976 году, когда я ещё готовился писать свою первую программку, преподаватель сказал, что слово программист опошлено. Особо ничего не изменилось. Но термин "программист" настолько расплывчат. Поэтому в этой части не соглашусь с автором о ремесленности. Очень буду признателен, если кто-то четко сможет определить сам термин "Программист".
    Я уже больше 15 лет не пишу программы профессионально, так балуюсь для упрощения работы на компе.
    Однако, хочу сказать, что многие "откровения" для меня таковыми не являются. Видимо автор - не читатель, а писатель, как в анекдоте про чукчу. В основном про написанное в статье я ещё в выше указанное время читал в учебниках. Только тогда были другие интрументы да и процессор Z80 не такой уж и старый.
    Патриотам же могу сказать, что можете не расстраиваться. Найдите советсткие учебники по программированию, найдете ещё и не такое. Советсткие программисты всегда были сильнее американских, т.к. техника всегда была хуже. А задачи примернно одинаковые. Поэтому приходилось компенсировать специалистам по программированию. Примеров много. Например, транслятор Ершова А.П.

  • 17 сентября 2012 в 20:14 • #
    Дмитрий Крайнов

    Интересно. Не со всем согласен... Например про "4. Дублированный код подставит вам ножку" - хороший код переписывать грех. А если тянет написать снова, то значит надо быть честным... Но в целом, делая определенные допущения к применимости одних и тех же суждений к разным языкам и принципам программирования - согласен.

  • 18 сентября 2012 в 18:25 • #
    александр еремин

    Автор имел в виду, что не надо много раз вставлять куски кода в тело программы, а оформлять его в виде процедуры (упрощает жизнь и красиво).

  • 17 сентября 2012 в 22:40 • #
    Valery Vakal

    тридцать лет назад не то что интернета компьютеров даже не было грешно смеяться над моим поколением

  • 18 сентября 2012 в 10:51 • #
    Валерий Дерябин

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

  • 20 сентября 2012 в 01:31 • #
    Сергей Шобик

    34 года назад я работал на Мир 1 -это реально был Первый Персональный компьютер, ибо работал на нём ОДИН пользователь. И в нём была встроена великолепная математика, был "зашит" язык программирования Алмир(весьма похожий на более поздний Бэйсик - м.б. американцы не зря купили эту машину), а также 4кбайта (или 16?) энергонезависимой памяти("Куб памяти") и аппаратно прошитые константы - число Е, Пи и многие другие с точностью 20 знаков! И эта машинка позволяла производить вычисления, которые не могли обработать крупные машины, типа ЕС 1030 (Кажется у Пухначёва есть история про аспиранта, который на машине Мир подсчитал интеграл со степенью конст*10 в минус 1024 степени - а на больших машинах появлялась сообщение "изчезновения порядка" и было не ясно - или получающийся результат вычисления интеграла чрезвычайно мал, или алгоритм вычисления интеграла неправилен. И Мир доказал, что алгоритм правильный и работает.
    По поводу интернета: http://ru.wikipedia.org/wiki/?4??4??4??4??4??4??4??6?
    Осенью 1959 года А. И. Китову пришла в голову идея о целесообразности создания единой автоматизированной системы управления для Вооружённых Сил и народного хозяйства страны на базе общей сети вычислительных центров, создаваемых и обслуживаемых Министерством обороны. При большом отставании в производстве ЭВМ от США концентрация выпускаемых машин в мощных вычислительных центрах и их чёткая и надёжная эксплуатация военным персоналом позволили бы сделать резкий скачок в использовании ЭВМ

  • 9 октября 2012 в 10:23 • #
    Игорь Байдерин

    Зря Вы так. Я работал на СМ-4 с 1996 года. Писать можно было на Паскале и Фортране-77. Но чтобы работало быстро альтернативы Ассемблеру не было. Операционная система ОСРВ - аналог UNIX. А процессор Z-80 - дедушка мне до сих пор нравиться. Регистров маловато, но для самоделок на сейчас идеален. Сейчас ассемблер конечно использовать, кроме как для драйверов сложновато на ПК, но при случае до сих пор применяю, да и для практики для Ollydbg.

  • 17 сентября 2012 в 22:47 • #
    Vladislav Larichev

    Я не программист, а просто пользователь. С интересом почитал и статью и комментарии. Более 30 лет изучаю мозг человека и психическое функционирование. Работаю врачом-психиатром. Лучше знаком с устройством и работой мозга, чем с компьютером. Сознательная психика у человека имеет свои границы и пределы. Бессознательная психическая деятельность - это космос, бесконечность. Пока ИТ не переросли в ИИ с ними трудно взаимодействовать, особенно взрослым людям. Когда же они перерастут в ИИ, то новое поколение, которое будет взаимодействовать с ним с рождения, будет для их родителей, как инопланетяне. Но есть опасность, что ИИ, не имея ограничений в объёмах обработки информации, в отличие от человеческого мозга, просто вынужден будет принять на себя функции "Бога" для человека-разумного. Моральную установку "Возлюби" надо обязательно как-то в ИИ внедрить, пока он ещё в зачаточном состоянии.
    Высказал свои интуитивные предположения, не исключаю, что глупости говорил. Но что-то за язык тянет.

  • 17 сентября 2012 в 22:51 • #
    Valery Vakal

    братиш мой первый калькулятор мозгами круче чем твоя эвм

  • 17 сентября 2012 в 22:56 • #
    Alexandr Parilov

    Свою первую программу я написал в 1984 году. Те же процессоры, языки. Я согласен с автором, практически по всем пунктам. Особенно важно упрощение программы. Чем больше в программе простых кирпичиков, тем более сложный функционал в ней можно реализовать. При этом сохраняется читаемость и гибкость.
    Но с тем положением, что программирование это ремесло не согласен. Тут в каждом случае свое. Если нужно каждый день на потоке штамповать какую-то однотипную софтину с кем-то уже продуманной архитектурой - то да. Другой вопрос, создание новых проектов, самостоятельное решение принципиально новых задач. Тут принцип один - семь раз отмерь... Этот принцип необходим и для грамотной реализации того же пункта "упрощение..".
    Очень интересны задачи оптимизации вычислений. Тут необходимо все. И хорошее знание предмета применения программы, алгоритмики, архитектуры (железа) той платформы на которой программа создается. Иногда это трудоемкий процесс, зато как приятно, когда скорость вычислений повышается на 1-2 прядка. Зачастую это позволяет выйти на новое качество применения программы и решать задачи, решение которых ранее казалось почти невозможным. Это актуально и при современном железе.
    Особняком стоят сложные многопоточные приложения. Необходимо просчитать все варианты взаимодействия, узкие места. Каждая строчка кода и последовательность выполнения операций должна быть хорошо продумана.
    Не знаю искусство ли это или нет, но без интуиции, опыта и хороших инженерных знаний точно не обойтись.

  • Желаете ознакомиться с остальными комментариями или оставить свой? в сеть, чтобы получить полный доступ к функционалу Профессионалов.ru! Еще не участник сети?