На темной стороне луны не меньше места для стартапов


Читая статьи в интернете, и тот же Хабра, складывается видимость, что все стартапы и новые проекты в области IT, связанны только с последними инновациями, созданием сайтов и программированием под сотовые телефоны и гаджеты. Кажется, что большинство разработчиков использует php, а другие используют самые последние библиотеки и средства разработки.

Ситуация вполне в духе: «Опрос среди пользователей интернета показал, что у 100% из них есть интернет». А ведь огромная часть задач, связанная с разработкой программ остается здесь неосвещенной, хотя в них вкладываются не меньшие деньги и для них создается не меньшее количество инструментов. И естественно, это не меньшее поле для стартапов. Назвать их вот только инновационными не поворачивается язык. Однако менее ценными, полезными и прибыльными проекты на темной стороне луны от этого не становятся.



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

Можно написать о том, что вышла новая версия библиотеки Boost 1.42. Но никто не будет писать о выходе новой версии библиотеки ACIS 20.0, в которой гораздо больше нововведений, и которые просто так еще и не опишешь. Да и странно описывать эту крупнейшую библиотеку, знакомую всем разработчикам CAD-систем, и разрабатываемую вот уже 21 год. Нет в этом инноваций и, как следствие, шума, но деньги есть.

Можно написать и интересно прочитать о разработке и продвижении игры для iPhone со сверх коротким жизненным циклом. Но я не представляю, как интересно описать, о том как некую старую программу на Фортране пересобрали с использованием Intel Fortran Compiler 11 и стало хорошо. Я слышу как кто-то говорит, что Фортран мертв? Это просто шумиха инноваторов, продвигающих новые языки и инструменты. Они создают много шума, но занимают не весь окружающий мир, как кажется. Подумайте сами, если Фортран мертв, то зачем Intel вкладывается в хорошо оптимизирующий компилятор для него. Если Cobol мертв, то для кого предназначены курсы типа "COBOL .NET using Microsoft Visual Studio"? Нет в этом инноваций и, как следствие, шума, но деньги есть.

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

К чему я это все? К тому, что возможно не стоит гнаться за написанием очередной фитюльки для самого последнего гаджета, о котором сейчас все говорят. Те кто ищет тему для нового стартапа — оглянитесь! Есть множество областей, где люди тихо и спокойно делают свою работу, создают и поддерживают проекты, никак не афишируя свою деятельность. Им просто это не нужно. Тем кто поддерживает программы для PDP11 вовсе не надо вешать баннеры и участвовать в конкурсах инновационных проектов. Их клиенты найдут их сами, так как вынуждены искать решение своих проблем. То что об этой теме нет шума, вовсе не означает что это никого не интересует или тем более у клиентов нет денег.

Удачи в неинновационных стартапах. :)

70 Responses to “На темной стороне луны не меньше места для стартапов”

  1. Katasonov
    15.03.2010 в 21:07 »

    Вот когда я стану адмиралом, тогда я буду седой, улыбчивый и добрый, а сейчас не могу… Извините… (с) Е. Гришковец, «Как я съел собаку».

  2. А чего собственно Intel хотела сказать этим постом? Типа, то, что Intel не способна ничего сделать, кроме FORTRAN и x86?

    С переписыванием, кстати, история весьма сложная. Можно, конечно, ещё 20 лет фигачить софтину на FORTRAN, тратя рабочий день на то, что в более или менее продвинутом языке делается за час, а можно как бы повысить производительность труда. Вероятно, Intel это не выгодно. Если люди начнут переписывать свои программы, то зачем им нужна будет Intel с её дорогущими компиляторами? Отсюда, собственно, и призыв.

    А ситуация с оценкой стоимости программ, ещё более странная. Вот очень уж капиталистические американцы (среди них есть и другие разновидности) пекуться о том, чтобы код не переписывать, обосновывая это тем, что ‘заплОчено же ужО‘. При этом они тратят кучу денег на черезмерное усложнение инфрастркутуры, чтобы этот софт оставался работоспособным. Это, как минимум, странное поведени ‘серьёзных’ клиентов.

  3. Katasonov
    15.03.2010 в 22:04 »

    1) Intel ничего не хотел сказать. :) Я не сотрудник Intel. И вообще, как кто- нибудь сейчас обязательно отметит, это замаскированная реклама продукта PVS-Studio компании ООО «Системы программной верификации». :) ))

    2) «тратя рабочий день на то, что в более или менее продвинутом языке делается за час» — это очень далеко от истины. Высокоуровневый язык в реальности, в отличии от рекламы, редко сколь-нибудь существенно прибавляет скорости в написании кода. А для сложных алгоритмов, например в CAD системах или системах численного моделирования, так вообще нет разницы, написать код на Fortran, Си, Си++ или C#. Из потраченного времени 99% уйдет на обдумывание, рисункам на бумаге и тестировании, а не на написание кода.

    3) «Вероятно, Intel это не выгодно. Если люди начнут переписывать свои программы, то зачем им нужна будет Intel с её дорогущими компиляторами? Отсюда, собственно, и призыв.» — Еще раз. Я не сотрудник Intel. Ну и напридумывали Вы там себе… :) )) Просто уже надоело читать про бесконечные стартапы для сотовых телефонов и необходимости переписывать код. Возможно для тех же сотовых телефонов, это вполне и подход. Но для серьезных проектов — это не выгодно.

    4) Поддержка ПО обходится дешевле, чем переписывание. Вас ведь не удивляет, что люди по нескольку лет ездят на машине, будучи вынуждены при этом регулярно чтоо в ней чинить или по крайней мере заправлять, мыть и проходить ТО. А ведь можно было бы раз в месяц покупать новую. :)

  4. Katasonov
    15.03.2010 в 23:03 »

    1. Но блог же официальный. Или Intel не считает его частью своих PR? Просто интересно.

    2. Согласен с тем, что обдумывание и тестирование — это процентов 80 в сложных проектах. Но тогда не понятно, почему же переписывание считается затратным? Оно же — переписывание. Можно пользоваться автоматическими тестами по эталону и так далее. А вот насчёт того, на чём проще писать код… Со времён FORTRAN множество языков появилось заточенных именно под численное моделирование. С ещё более простой и гибкой работой с матрицами, с типизированностью, с кучей каких-то автоматизаций работы. Почему бы не писать на них?

    Конечно, понятно, что на FORTRAN удобнее писать вычислительные задачи, чем на Си, Си++, Си# и прочих подобных языка. Но существуют же… ох, забыл названия. В общем, языки сразу разрабатывавшиеся именно для описания вычислений. Там врождённый параллелизм, работа с матрицами и их сечениями, распределённые массивы и прочее, прочее, прочее, что существенно упрощает разработку именно программ для вычислений.

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

    3. Да я же в шутливой форме. А для сотовых телефонов другой возможности нет — там API разные.

    4. Вряд ли сравнение с машиной корректно. Информация — это не вещь. И чем раньше эта информация переписывается в более удобных терминах и на более удобном языке, тем, imho лучше. Вот, скажем, AMD, NVIDIA, Intel пишут свои реализации BLAS, и ничего, кажется, это и не особо смертельно. И пишут они их, скорее всего, на Си++, пользуясь перегрузкой операторов и шаблонами. Ну, а AMD и NVIDIA ещё свои языки для потокового программирования используют.

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

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

  5. 1. Блог официальный. Но заведующие им понимают, что если писать только посты в духе «вышел новый процессор xxx» и «прошла конференция yy, то блог будет пользоваться низкой популярностью. И приглашают сторонних авторов, что бы они разнообразили тематики и сделали блог более интересным. Естественно, писатели должны быть адекватными и положительно настроены к Intel. :) Кстати, таким человеком при умении и желании писать интересные посты, может стать каждый. В результате такого сотрудничества, Intel получает PR. Я в свою очередь получаю возможность с более основательной площадки иногда упоминать, чем я занимаюсь. Самореклама так сказать. :)

    2. Даже просто переписывание, это более чем на 50% разработки заново. Невыгодно. Почему? Потому, что при переписывании фактически пишется новая программа, которую вновь надо отлаживать. Переписывание в лоб с одного языка на другой не имеет смысла. Представьте, берем программу на фортране и начинаем переписывать на Си++, просто заменяя операторы и строя логику на основе все тех же операторов goto. Да, это просто, быстро, но бестолково. Поэтому будут появляться классы, заново переписываться циклы с goto и так далее. Как результат, будут допущены ошибки, которые нужно будет отладить. Тесты также придется адаптировать. В общем работы много, а результата мало. Потому обычно большие системы и не переписываются.

    По поводу разных волшебных языков, которые параллельны, заточены и так далее. Их этих языков действительно много разных. Вот только необходимое количество библиотек, существуют только для языков мамонтов. Это все те-же Fortran, Си, Си++. И в результате в большом проекте шаг в сторону сделать практически невозможно. Вот захотите Вы написать CAD-систему, на каком ни будь новомодном, ну не знаю, что выбрать. Пусть будет F#. С нуля писать алгоритмы глупо и мы берем, ACIS, которую я упоминал в статье. Вот только чтобы ее использовать, нам нужно будет создать прослойку для API. А одна единственная DLL из ACIS экспортирует по 10000 функций. Я не вру. И там таких DLL… А ведь мы одной этой библиотекой можем не обойтись. И зачем столько работы делать в пустую? А когда выйдет новая версия, нам опять править прослойку? И вот мы возвращаемся опять к нашему Си/Си++…

    По поводу примера распараллеливания DOS программы, вместо ее переписывания, Вы ошибаетесь. :) ) Как раз ВЫГОДНЕЕ ее параллелить и получать за это деньги. :) Знаете как много людей такими вещами занимаются

    4. Зачем переделывать то, что хорошо и стабильно работает? Ради красоты? Пример из другой области. Граната Ф-1 создана в 1939 году до сих пор используется в том же самом виде. Никому не приходит в голову менять ее дизайн или что-то еще. Зачем, если она и так отлично работает?

  6. Интел данным постом хотел сказать, что в России существуют высококвалифицированные профессионалы, которые при этом – интересные, творческие люди с активной жизненной позицией. Как Андрей Карпов, например, и как те другие 202 человека, которых данный пост не оставил равнодушными.

    Что же касается стартапов… Я бы так резюмировал данный пост: и на темной, и на светлой стороне Луны есть масса возможностей сделать что-то исключительное! И совершенно неважно, на чем вы пишите: PHP, Action script или C++ 0x… Главное — стремиться сегодня сделать что-то чуть лучше, чем вчера. И тогда никто не уйдет обиженным.

    Кстати, я намеренно не использую в комментариях слова «инновации», «высокие технологии», «вычислительные модели» и тому подобное. Хотя я как разаки работаю в Интел.

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

  8. у меня одноклассник на фортране или коболе писал(шет?). что-то там моделирует в области физики каких-то там частиц (он физик по образованию) сначала в каком то универе в голландии, сейчас в англию перебрался, вроде по тому же профилю… и все, больше никого из знакомых которые с этими языками работают не вспомню. поэтому и создается впечатление что они померли, хотя по словам товарища языки очень востребованные в определенных кругах и спецы в них денег стоят немалых. но кругом только и слышно «PHP, Ruby, Python, C#, Java, PHP, Ruby, Py…» и т.д. по кругу

  9. Andrey2008
    16.03.2010 в 02:21 »

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

  10. mikhanoid
    16.03.2010 в 02:58 »

    Поддерживаю. Для Фортрана написано огромное количество библиотек, содержащих всевозможные математические методы и модели. Написать на Фортране, к примеру, расчёт распределения температуры при турбулентном движении потока жидкости в сферическом слое — милое дело. А вот создавать хотя бы win-приложение с более-менее удобным интерфейсом, конечно, неудобно. Потому и используется только специалистами в предметной области. Зато и научиться писать на нём много легче, чем на том же С.

  11. Andrey2008
    16.03.2010 в 03:25 »

    В таком случае, разве не разумно использовать Fortran в тандеме с другим языком? Тем же C.

  12. mikhanoid
    16.03.2010 в 03:52 »

    Фактически, это и делается: например, благодаря F2PY, своеобразному мосту между фортраном и питоном, существует библиотека numpy, основа почти любого научного кода на питоне.

  13. Andrey2008
    16.03.2010 в 04:41 »

    Да, разумеется, для тех случаев, когда нужен интерфейс.
    А если математики пишут для себя, исключительно ради получения чисел, которые в дальнейшем будут обработаны чем-то ещё, используется чистый Fortran.
    Мы, например, решая уравнения теплопроводности, записывали числа в файл, а визуализировали решение с помощью Gnuplot, чтобы не создавать красивый интерфейс там, где нужен всего один график и есть достаточно сторонних средств для его построения.

  14. О. Вот как раз математикой заниматься на FORTRAN — это жуткое дело. Математика же не ограничивается дифференциальным исчислением. Всякие алгоритмы на графах, или в конечных полях, или алгоритмы, связанные с логиками различным, на FORTRAN очень тяжко писать.

  15. Аж ностальгия пробрала волшебный метод конечных элементов и Фортран :) )))

  16. pietrovich
    16.03.2010 в 06:16 »

    Очень высок порог вхождения для подобных разработок. Все хотят быстро срубить денег, здесь и сейчас. Отсюда и новые пятидолларовые фитюльки для гаджетов, и игры для мобильных платформ со сверхкоротким жизненным циклом.
    По сути есть два пути:
    1. Поддерживать разработки на морально устаревших языках и платформах, вкладывать туевы хучи денег в дорогостоящих уже изрядно постаревших и полысевших гуру-разработчиков, проводить конференции, писать посты на Хабре в надежде хоть какого-то притока свежей крови…
    2. Взять и всё переписать. Ну хорошо, пусть не всё, но хотя бы часть. Почему нет? Есть инструменты, которые прослужат ещё очень долго, но есть и то, что давно пора отправить на чердак к остальному устаревшему хламу. Деньги есть? Так объясните мне, какого чёрта тянуть за уши то, что одной ногой уже стоит в могиле и в скором времени останется лишь развлечением для гиков и энтузиастов?

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

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

  17. Что означают современные методы? Вместо старого компилятора Fortran использовать новый (Intel или Sun(Oracle Solaris)), то да. А переписать программу с Fortrana на Ruby или PHP — это уже моветон.
    Реинженеринг, тем временем вещь крайне дорогостоящая, и очень часто дешевле поддерживать то что работает.

  18. Mirabilis
    16.03.2010 в 08:01 »

    Ой. Вы чего? Давать пользователям новые возможности, чтобы они САМИ всё делали? Это ж совсем не рыночно :) Пользователь должен при переходе на новый процессор обязательно прибежать к поддерживателю и заплатить ему денюжку за то, чтобы ему дали новую версию. А в случае с Intel пользователь даже и не должен переходить на новый процессор. Поэтому, никакой свободы, вы что!?

  19. программист один, а баб — 4
    утка такая про abap 4)

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

    а в целом, путь последователей, наступающих на пятки инноваторам и идущих по их скелетам — тоже очень хорош

  20. Спасибо, просто как глоток свежего воздуха ;)
    Конечно же, очень наивно думать о том, что стартапы это серверные стойки, PR-менеджеры и карамельные логотипы.

    Вот, к примеру, есть такой зверь, как crystal 2009 (www.crystal.unito.it), пакет для моделирования новых кристаллических материалов для батарей, фотоэлементов, керамик и тп, поддерживается итальянскими программистами из Турина уже более двадцати лет, и каждые три года выходит новая версия (!), полностью на фортране, причем, так сказать, на острие науки реализованы последние алгоритмы, публикуемые в западных рецензируемых журналах. Если в России о нём знает несколько десятков человек, то это уже хорошо. А между тем, он используется в сотнях научных учреждений и R&D-департаментов разных компаний по всему миру.

Post Info

Back to top · Copyright © 2010 Renovation Blog