Как выбор языков программирования помогает успеху программных продуктов? - PullRequest
0 голосов
/ 06 апреля 2010

При оценке успеха таких продуктов, как iPhone, iPad, Google, Twitter, YouTube и т. Д., Существуют ли объективные критерии для определения важности языков программирования, используемых для их создания?

Ответы [ 3 ]

6 голосов
/ 06 апреля 2010

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

1) Статья Пола Грэма Превышение средних значений объясняет выбор Lisp как причину, по которой он мог постоянно превосходить конкурентов, разрабатывающих аналогичные приложения на C ++.

2) Это очень известное сравнение двух веб-серверов, Apache, написанный на C, и Yaws, написанный на Erlang , сравнивающий то, как они обрабатывают много одновременных соединений. Apache умирает после 4000 одновременных подключений, но Эрланг продолжает пыхтеть вместе с отсутствием деградации во время ответа с 80000 одновременными подключениями. Yaws работает так хорошо, потому что Erlang был спроектирован с нуля с учетом высокой доступности, параллелизма и масштабируемости.

Из-за высокой масштабируемости телекоммуникационные компании, такие как Nortel и Verizon, предпочитают писать свое программное обеспечение для маршрутизации вызовов на языке Erlang, а не C.

3) MUMPS практически обо всем.

4) замечательный доклад Google Tech , написанный Робом Пайком, объясняет, как он разработал язык с нуля, чтобы облегчить написание оконных систем для операционных систем раннего поколения.

1 голос
/ 07 апреля 2010

Есть ли у вас объективные знания о том, насколько важен язык программирования?

Нет.

Но я знаю это, когда вижу.

0 голосов
/ 06 апреля 2010

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

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

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

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

...