Вопросы ответить прежде, чем предложить использовать новый язык?

Одна вещь это мало известно, состоит в том, что объединения могут быть шаблонами также:

template<typename From, typename To>
union union_cast {
    From from;
    To   to;

    union_cast(From from)
        :from(from) { }

    To getTo() const { return to; }
};

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

17
задан skaffman 11 December 2010 в 21:45
поделиться

11 ответов

Производительность с языком не является ни единственным фактором, ни простым скаляром сама по себе. К важным вопросам относятся:

  • Насколько легко выучить язык, если он еще не знаком людям в команде?
  • Насколько легко стать экспертом в этом языке?
  • Есть ли у группы доступ к один или несколько языковых экспертов, у которых есть пропускная способность для необходимого наставничества?
  • Доступны ли хорошие учебные материалы (книги, блоги, учебные пособия) и каналы поддержки (форумы, IRC, списки рассылки)?
  • Имеется ли язык (или некоторая структура на этом языке) позволяет компетентному программисту писать программное обеспечение быстрее, чем то, что вы используете сейчас?
  • Насколько этот язык обслуживается? Насколько понятен синтаксис грамотному программисту, впервые сталкивающемуся с чужим кодом? (Подумайте об APL и Perl. )
  • Применим ли язык как-то лучше к вашей проблемной области, чем тот, который вы используете сейчас (например, функциональные языки для распределенных вычислений)?
  • Насколько хорошо язык / платформа удовлетворяет потребности бизнеса, не связанные со скоростью разработки ( например, производительность, масштабируемость)?
  • Какие есть доступные инструменты и сколько они стоят? Есть ли отладчик? IDE? Рефакторинг и поддержка модульного тестирования встроены в IDE? Инструменты управления сборкой и развертывания?
17
ответ дан 30 November 2019 в 09:59
поделиться

Ускоренный курс политики для инженеров ...

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

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

К сожалению, это мешает всем сложностям закона Дилберта и Паркинсона.

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

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

    • Вам лучше прототипировать систему по выходным и вечером и представлять ее как решенную проблему.
    • Сделайте акцент на параллельной разработке на Java / Clojure («при ​​необходимости, вся система может быть написана на Clojure Java»)
    • Приведите все аргументы Java, а затем скажите что-нибудь о «лучшем из обоих миров»
    52
    ответ дан 30 November 2019 в 09:59
    поделиться

    Что будет предлагать ваш новый язык, чего нет в существующем?

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

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

    2
    ответ дан 30 November 2019 в 09:59
    поделиться

    Как это повысит мою продуктивность?

    Если на этот вопрос нет ответа, пакуйтесь и идите домой.

    2
    ответ дан 30 November 2019 в 09:59
    поделиться

    В чем смысл? / Почему?

    Чем это облегчит мою работу?

    2
    ответ дан 30 November 2019 в 09:59
    поделиться

    Очень многое зависит от того, чем вы сейчас пользуетесь, на что переключаетесь и почему на это трудно ответить. Но они всегда важны:

    • Что я могу сделать, если выберу новый язык, который я не мог делать раньше?
    • Что я могу сделать быстрее, чем я могу сейчас, с новым языком?
    • Как все остальное будет команды справились с введением нового языка?
    • Если я уйду, сможет ли кто-нибудь еще, плохо знакомый с языком, продолжить с того места, где я остановился, без особых проблем?
    3
    ответ дан 30 November 2019 в 09:59
    поделиться

    Что такое бизнес-кейс?

    Это сводится к ROI (окупаемости инвестиций).

    Это касается не только производительности отдельного человека, но и:

    • всей команды

    • влияние на жизненный цикл продукта

    • ремонтопригодность

    и т. Д.

    3
    ответ дан 30 November 2019 в 09:59
    поделиться

    Насколько легко поднять трубку? Я считаю, что это не то важно.

    Есть ли поддержка IDE? Довольно важно, но вы можете работать и без него.

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

    3
    ответ дан 30 November 2019 в 09:59
    поделиться

    A good question to ask is what is the size of the community around the language/framework. For instance, ruby/rails has a significant community around it, which would make me more comfortable that I would not be "the first kid on the block" to have to deal with a particular problem.

    0
    ответ дан 30 November 2019 в 09:59
    поделиться

    Q1: Могу ли я нанять людей с этими навыками?

    Q2: Когда я звоню нашим менеджерам по работе с клиентами аутсорсинга и спрашиваю, сколько будет стоить типичный проект с фиксированной стоимостью, если он будет реализован в обычным способом или с использованием языка X, множитель больше единицы?

    Q3: Есть ли у всех в моем отделе любимый язык, который выполняет примерно ту же работу, что и мой любимый язык, и должны ли их любимые языки быть тоже используется? Каковы практические последствия этого?

    2
    ответ дан 30 November 2019 в 09:59
    поделиться

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

    0
    ответ дан 30 November 2019 в 09:59
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: