The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Разработчики компилятора PCC начали процесс подготовки релиз..."
Отправлено Ytch, 02-Мрт-11 00:48 
>Видите ли, вопросы лицензий и затрат на освоение/обучение - они общие, не зависят от области. Более того, они общие для самых разных профессий, не только IT. Это типичная организационно-управленческая задача - как выяснить, какое средство для решения задачи лучше, при том, что само выяснение требует усилий. Т.е. средств, которые должны окупиться в будущем. И их давно научились решать, в сугубо материальных сферах (подумайте, например, о летчиках). В IT ничего принципиально нового не появилось.

На это можно очень много чего сказать. Много общих (и в основном правильных) слов. Рассмотрим маленький, чуть более узкий пример из жизни (моей в данном случае). Извиняйте, но конкретных названий не будет в силу NDA, да и ситуация повторялась уже не раз. Есть руководители "верхнего звена" (извините за избитый термин). Они принимают решение о вложении средств (денег, людей, времени) в новую платформу, включая и затраты на освоение и т. п. Но, во-первых, кто-то должен внести предложение начать использовать эту новую платформу, причем не просто сказать, а расписать все плюсы и минусы, оценку затрат, примерный расклад по времени и людям, показать прототипы и т. д. Кто это должен сделать? Правильно, технический специалист, например, я. И вот я, зная текущие задачи, оцениваю возможности используемой сейчас платформы применительно к задачам будущим (как к вполне реальным ближайшим, так и к прогнозируемым в дальнейшем) и прихожу к выводу, что текущая платформа не подходит. Сейчас-то она, вроде как, устраивает, и даже, поднапрягшись, ближайшие тоже можно сделать, но на большее она уже не тянет (А еще бывает, что просто микросхемы снимают с производства). Для "верхнего" руководства еще нет оснований что-то куда-то вкладывать (текущие задачи решаются, ближайшие тоже "закрыты"), а мои выкладки про проблемы в будущем это, конечно, серьезно, но от меня ждут не просто "обозначить проблему", а предложить конкретные решения (которые мне же и реализовывать и за которые мне же и отвечать). И вот я прикидываю будущую платформу (а это как бы не только тип процессора), а дальше? Дальше мне надо с ней разобраться и создать заготовки и черновики того, что станет потом "фреймворком" на котором мы будем делать новые разработки (ОС, библиотеки, загрузчики, утилиты и т. п.), причем, пока прототип этого "фреймворка" не будет реальным, а не умозрительным (а это значит, что все это надо реально написать/портировать/попробовать) ни о каком выходе с предложением новой платформы речи быть не может. На данном этапе я могу "выбить" денег, максимум, на покупку пары evaluation-kit'ов и на изготовление нескольких макетов. Второй момент в том, что текущие задачи никто не отменял, а, значит, времени на все это у меня особо нет. Я могу поручить разбираться кому-нибудь из студентов или молодых специалистов, но это как послать паренька из дворовой команды играть в высшей лиге. Выводы очень простые: на этот первый (и самый ответственный) этап мне нужны средства разработки, во-первых, максимально малобюджетные (потом, когда будет о чем говорить, можно будет и средства разработки за несколько десятков килобаксов поиметь и все остальное), а, во-вторых, максимально знакомые мне и, возможно, моей команде (минимизация затрачиваемого, неоплачиваемого по сути, времени). Этим условиям обычно удовлетворяет gcc. И на этом этапе это задачи уровня ведущего, а не "организационно-управленческие". Я могу, конечно, выбить денег и на "крутой компилятор" (по сути, под мой опыт), но дать 100% гарантию, что то, что я хочу поисследовать всех устроит (и за это время никто из моих коллег не предложит ничего еще лучшего) я не могу. Еще очень важный момент - с учетом моей текущей загрузки и неизвестных "граблях" в будущем я не могу точно прогнозировать сроки, через которые будет результат (опыт говорит о том, что даже опыт может не помочь), а, если "вложены деньги", то и спрос уже совершенно другой. А еще, в процессе исследований я же сам могу рассматриваемое и "закопать" по разным причинам (и так уже бывало), а "отсутствие результата - тоже результат" не совсем то, что ждут люди вложившие деньги. Чем кончаются многократно повторяющиеся ситуации типа "Акелла промахнулся" у классика расписаны довольно наглядно (а с gcc или чем-то еще, что не требует 20000$ чтоб только начать, я могу "промахиваться" сколько угодно, об этом и узнают-то только самые близкие).

>Подчеркиваю, именно какое _для решения задачи_ *лучше*. А не то, какие религиозные предпочтения в выборе средств у исполнителя. Подбирается то, что при заданных условиях будет решать задачу заказчика при устраивающих его затратах (если что, корректируется).

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

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

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

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


P.S.:
>Вы же пользуетесь первой же возможностью свернуть с общей/обсуждаемой темы, прикрываясь слабой осведомленностью собеседника в не особенно-то релевантной частной области. Это, мягко говоря, некорректно.

Если эта область не релевантна (по вашему мнению) и вы в ней некомпетентны, то некорректно как раз пытаться упорствовать именно в этой области.

P.P.S:
> И их давно научились решать, в сугубо материальных сферах (подумайте, например, о летчиках).

Про летчиков - не понял.

P.P.P.S: Если вы дочитали досюда (многа букаф все-таки получилось) и считаете что я опять "ушел от темы", что все это не имеет никакого отношения к вашему тексту и обсуждаемому вопросу, пожалуйста, не надо мне об этом писать. Сэкономим время друг друга.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру