?

Log in

No account? Create an account
Разбираю гуманитарные вопросы на винтики, функции, алгоритмы. Оживляю технологии
Совмещаю гуманитарный и технический пласты знаний в единое мировоззрение
Пересмотр подхода к разработке ПО 
11th-Jul-2015 12:21 am

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

Аппаратные комплексы производства МЦСТ, такие как Эльбрус-4С, выпускаются малыми тиражами, персональные машины на их основе на порядок дороже и менее производительны. В первую очередь сказываются технологический разрыв и серийность производства.

Операционные системы, судя по всему, будут на основе открытых разработок и, притом, их устаревших версий. От свежих или платных крупнейших комплектов разработки (язык-среда-библиотеки-фреймвоки) нас вероятно отрежут. Системы жизненного цикла изделий (промышленность) придётся использовать свои, да и то не все. Например, T-Flex использует ядро SolidWorks и не сможет развиваться, если поставщик разорвёт договор. Если ли полные комплексы собственной разработки жизненного цикла, мне не известно. САПР есть.

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

У нас два выхода в этом русле истории.
1. Стремительно отставать или сдаваться.
2. Идти своим путём.

Что значит идти своим путём?
1. Переосмыслить подход к автоматизации в сочетании с переосмыслением производственных, персонально-вычислительных, социальных задач. Пересмотреть методологию.
2. В связи с вышеописанным. Оценить назревающие проблемы для отраслей народного хозяйства. Важность и спешность их решения.
3. Решение первого этапа. Оценить расход вычислительного времени на задачи, переориентировать имеющиеся вычислительные ресурсы на ключевые задачи (видимо, в первую очередь, пострадает сфера развлечений). Переориентироваться решение методом наращивания аппаратной производительности на оптимизацию программного кода.
4. Решение второго этапа.
4.1 Резко сократить номенклатуру средств и подходов разработки. Десятки ЯП, сотни фреймвоков, огромное количество стилей - всё это ест ресурсы, давая гораздо меньший "конкурентный" выхлоп.
4.2 Начать разработку многослойной (по уровням абстракции и, соответственно, размерам классов описываемых задач) программной компонентной базы.
4.3 Наиболее низкоуровневые, абстрактные, ресурсоёмкие компоненты описываются на уровнях, приближенных к машинному коду. Более узкие, менее критичные компоненты можно описывать на более высокоуровневых средствах разработки.

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

Комментарии 
10th-Jul-2015 07:17 pm (UTC)
Как не программиста, меня давно поражает современное ПО. Затрачиваемые на него ресурсы превышают некие разумные предположения
по объему кода - примерно на 1,5 порядка (т.е. в десятки раз)
по производительности (скорости работы) - примерно на два порядка
по затратам на разработку (человеко-часы) - на два порядка
по оплате программистов - в разы
Перемножение этих показателей дает фантастические цифры.

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

Пункт 4.3 не совсем понял :)
11th-Jul-2015 01:38 pm (UTC)
Интересный у вас подход - вроде бы сами признаете что разработкой ПО не занимаетесь и не понимаете как эта отрасль работает, но уверенно делаете категорические утверждения что в ней все неправильно и ту же самую работу можно выполнять в десятки раз быстрее.

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

Так в любую отрасль можно придти и сказать "я конечно ничего не знаю о том как вы работаете но твердо уверен что все можно сделать в десятки раз лучше и быстрее".
11th-Jul-2015 02:38 pm (UTC)
А где же я написал, что не занимаюсь разработкой? Я написал, что я не программист. Поскольку вроде как электронщик на текущий момент. Кроме того, я не говорил, что не понимаю, как эта отрасль работает - представляю в общих чертах три основные источника проблем, и некоторые неосновные.
А влезать в как бы не свою область мне приходилось потому, что существующие программные продукты предельно не устраивали. И если за две недели собственной работы получаю результат, устраивающий не только меня, но и многих других, и заменяющий профессиональную программу (написанную специально под данный случай, но оказавшуюся недееспособной) за несколько тысяч уе и с двумя талмудами мануалов - наверное, хоть какое-то право так рассуждать у меня есть :)
А Вы разработкой чего конкретно занимаетесь? (просто вопрос, интересно)

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

Edited at 2015-07-11 05:58 pm (UTC)
12th-Jul-2015 05:12 am (UTC)
Вы де-факто полностью переформулировали исходный комментарий. Вместо

>Как не программиста, меня давно поражает современное ПО. Затрачиваемые на него ресурсы превышают некие разумные предположения

У вас получилось

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

С этим я спорить не буду. Многие современные программы действительно пишутся крайне неэффективно.

Но это не проблема разработки ПО - аналогичные вещи происходят во всех областях жизни.

Это скорее общее несовершенство мира.

Но проблемы с отдельными программами которые пишутся неэффективно это далеко не то же самое что системные проблемы со всем современным ПО.

>А Вы разработкой чего конкретно занимаетесь? (просто вопрос, интересно)

Скучный деловой софт, который не увидит никто кроме моих коллег и заказчиков, ничего принципиально интересного.

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

Мне так не кажется. Наоборот мне кажется что большая часть софта становится со временем намного лучше.

Windows 7 лучше чем Windows XP, Windows XP лучше чем Windows 95, та лучше чем Windows 3.11 и лучше чем DOS.

Android 4.x лучше чем Android 2.x, а то в свою очередь намного лучше Windows Mobile (старой, доплиточной, был у меня наладонник на ней в свое время).


Internet Explorer 11 лучше чем Internet Explorer 6. Хотя Firefox еще лучше чем IE11.

Notepad++ нынешней версии намного лучше чем той, что была пару лет назад (точных номеров не помню). И само собой намного лучше оригинального Notepad.

Wordpress 4.x чем Wordpress 2.x.

Ряд новых программ вообще не с чем сравнивать в прошлом просто не было аналогов Evernote например или Dropbox. Или Steam.

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

Само собой это не отрицает того что у некоторых программ новые версии хуже. Ну чтобы далеко не ходить Windows 8 или Windows Phone.

Но в целом софт лучше.

Так что каких-то именно системных проблем которые охватывали бы разработку ПО в целом я не вижу.

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

Кто же с этим спорит. Только пока у нас идет движение в обратном направлении.

Недавно была например грустная новость которую не заметил никто кроме специалистов - Яндекс не выдержал конкуренции с Google и тихо свернул разработку своей альтернативы Android. Кривенькой конечно и малобюджетной, но все-таки.

Государство это полностью проигнорировало и продолжило распил бюджетных средств на бессмысленных проектах вроде Спутника.

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

Собственно компании вроде Xiaomi уже пытаются ее делать для китайского рынка.

Собственно одна из важнейших вещей в ИТ - это правильная постановка проблемы.

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

И случается это даже у мировых лидеров.

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

Вот например ваша проблема

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

Вы не разу не задумывались в чем именно она состоит?

Почему никто не делает и не продает качественный софт в данной профессиональной сфере?

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

Edited at 2015-07-12 08:18 am (UTC)
12th-Jul-2015 05:33 am (UTC)
>Если то, что Вы делаете, весьма практично - я только порадуюсь, поскольку такого мало.

Практично и хорошо - это две разные вещи.

Известная в среде программистов поговорка - софт можно делать:

1. Дешево
2. Быстро
3. Качественно

А теперь выберите любые ДВА пункта.

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

Такие проблемы невозможно решить техническими средствами, только организационными.
11th-Jul-2015 04:52 am (UTC)
Насчет софта -- похоже. Хотя с ворованным софтом проблем будет меньше. Crack и перевод у нас делать умеют давно.
Железо, как и до того, будет идти с востока.
15th-Jul-2015 02:09 pm (UTC)
Пока Запад может добиться и значительного уменьшения поставок с Востока, становления их "серыми". Фабрики всё одно завязаны на Запад.

Ломанный софт - это не про то, прикрывать можно, в принципе, доступ к свежему, начиная с ОСей, драйверов, фреймвоков.
15th-Jul-2015 02:49 pm (UTC)
Еще лет 10 назад (сейчас просто не знаю) основная часть железа в рос. магазинах состояла из партий, забракованных западными заказчиками, где процентов 70 были годными (по правилам браковки). Эти партии продавались нашим оптовикам по цене мусора, разбраковывались и продавались в магазинах по обычным ценам. Кто сейчас помешает?

Софт: покупается легально 1 шт., тиражируется. Как и сейчас.
11th-Jul-2015 01:48 pm (UTC)
Развивать разработку софта нужно вне зависимости от конфронтации с западом - поскольку это одна из тех отраслей экономики, которые и делают общество богатым. Странно что вы этого не понимаете и привязываете эту задачу только к санкциям.

В реальности она должна изначально ориентироваться на глобальную экономику - даже если мы будем изолированы от Запада все равно остается масса других стран вроде Китая или Индии.

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

>Начать разработку многослойной (по уровням абстракции и, соответственно, размерам классов описываемых задач) программной компонентной базы

Это вообще что? Зачем это нужно? Можно до бесконечности разрабатывать некие многослойные абстрактные многокомпонентные системы - это одна из классических ловушек проектирования ПО в которую попадались многие ведущие мировые компании. Даже термин специальный есть "архитектурные астронавты".

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

Развивать надо именно экосистемы в целом. В прочем это запредельно сложна задача в решении которой даже у Китая успехи невелики. У нас же вообще нет никакой системной политики в этом направлении. Все существующие в реальности экосистемы американские.
11th-Jul-2015 03:00 pm (UTC)
Причем тут богатство общества. Собственно ПО - банально вопрос стратегической безопасности, прежде всего. Экономические вопросы довольно вторичны, хотя и значимы.
12th-Jul-2015 05:16 am (UTC)
Если для вас богатство общества второстепенно, то для меня нет. Как мне кажется это первостепенный вопрос.

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

Все остальное средства - включая стратегическую безопасность. Стратегическая безопасность нужна для того чтобы обеспечить людям хорошую жизнь, а не наоборот.
15th-Jul-2015 02:16 pm (UTC)
> Развивать разработку софта нужно вне зависимости от конфронтации с западом

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

> это одна из классических ловушек проектирования ПО

Это не ловушка, а переход от корпорационного индивидуализма к коллективизму и другим моделям организации. За счёт чего можно снизить трудозатраты. А в большей перспективе, так и вовсе уйти от тупика существующего подхода к разработке.
В рамках корпорации такой путь излишне затратен, в рамках, хотя бы, страны - уже нет.
11th-Jul-2015 02:14 pm (UTC)
идея наверное хороша, но я не могу припомнить ни одного ЯП, созданного в России. в СССР тоже вряд ли, но тогда это намного тяжелее было делать.

к заслугам можно разве что отнести хороший софт для разных ЯП, который делает питерский джетБрейнс (Идея для джавы, Вебшторм для жск), но это пока только среда разработки для языка, не сам язык. проблема же в том, чтобы все продумать или успевать добавлять потом, плюс крайне желательна обратная совместимость. языков-то много, но весь мир вользуется небольшим набором популярных языков, оставляя непопулярные либо для стартапов, либо просто без внимания. плюс не забывайте об огромной конкуренции всяких фреймворков, баз данных и библиотек. с нуля догонять - так никогда и не догонишь. хотя может так получиться, что на каком-то приемлемом уровне (банковское ПО, сайты, правительственные базы данных) оно как-то могло бы работать, если бы об этой проблеме начали думать заранее. но почему-то мне кажется, что никто и не ставил себе такой цели. вспоминается случай с программистом, который смог сделать лекую прошивку биоса и показал, как дискета с кодовым словом, либо иным образом попавшая на диск, превращает комп или сервер в груду металла. показал вроде в Питере в ФСБ, подразумевая что уж Интел-то и не такое может сделать. но всем плевать было еще в 2007(или 2009, не помню точно), думаю время упущено.
12th-Jul-2015 05:26 am (UTC)
А зачем придумывать свой язык программирования, аналогичный уже существующим? Просто чтобы было? У нас что слишком много сил и средств, которые больше некуда потратить?

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

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

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

Все это скучная, дорогая и муторная реальность которая сильно отличается от красивых мечтаний об абстрактных глобальных системах и ЯП.
12th-Jul-2015 08:14 am (UTC)
так то оно так, но ваше предложение - все равно что сказать "математикой пользоваться не будем, только арифметику оставим". арифметика хороша чтобы считать товары в магазине, а как быть всякими сложными вычислениями типа ракет? так же и с яп - создать 1С можно, но для решения серьезных задач типа многопоточности или систем реального времени (ну например полет той же ракеты) без своего ЯП, библиотек и без гениаьлных умов не обойтись. ну либо пользоватся тем что есть, но оно принадлежит Ораклу/Гуглу/МС, т.е. отключат в любой момент.
This page was loaded Nov 18th 2018, 8:58 am GMT.