Будущее языков без стандартов и без корпоративной поддержки - PullRequest
2 голосов
/ 06 марта 2009

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

Например, фортран и С пережили испытание временем. Они были популярны, но у них также была очень хорошая корпоративная поддержка, финансирование и стандартные спецификации (ANSI и ISO).

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

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

Ответы [ 9 ]

4 голосов
/ 06 марта 2009

Ruby популярен, хотя и не имеет корпоративной поддержки. И вот уже 14 лет.

Perl уже пережил 22 года и, вероятно, выживет еще несколько.

Python не имеет поддержки корпорации (хорошо, не знаю, рассчитываете ли вы на участие Google) , но это сделано для компаний из Fortune 500.

С другой стороны:

Паскаль получил корпоративную поддержку и умер.

Ada имеет поддержку корпорации и практически сокращена до DSL для авионики.

3 голосов
/ 06 марта 2009

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

  1. Производительность оборудования (т. Е. Скорость или память)
  2. Сложность аппаратного обеспечения (то есть одноядерный и многоядерный)
  3. Сложность программного обеспечения

Я думаю, что причина в том, что C выжил, заключается в том, что до последних нескольких лет все еще существовала реальная потребность в максимальной производительности во многих приложениях. Возможно, такая потребность всегда будет, но я думаю, что в последние несколько лет она становится все менее актуальной. Я думаю, что это всегда будет вокруг, но я был бы удивлен, если бы это широко использовалось 20 лет спустя; за последние пять лет его уже начали отстаивать в пользу C # / Java / etc.

Недавний (под которым я имею в виду последние пять лет или около того) рост числа языков, таких как Python, также является ответом на тот факт, что программное обеспечение стало более сложным, в то время как производительность стала меньшей проблемой. Поскольку потребители ценят «сейчас», существует огромный стимул развиваться быстро и беспокоиться о скорости позже, если вообще. Это очень сильно влияет на то, какой язык вы используете для разработки.

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

3 голосов
/ 06 марта 2009

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

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

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

Еще один способ выживания языка - подключить его ко всей системе. Просто посмотрите на Objective C, это язык Apple для всех продуктов Apple. Я думаю, что это путь. Разработайте систему, которая достойна своего языка.

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

1 голос
/ 06 марта 2009

Я не вижу доказательств того, что корпоративная поддержка или стандартизация достаточны, чтобы определить, выживает ли язык или нет. Есть много поддерживаемых корпорацией языков, которые не смогли закрепиться (на ум приходит ADA). Есть много стандартизированных языков (Common Lisp), которые также потерпели неудачу. С другой стороны, существует множество нестандартных не корпоративных языков, которые набирают популярность (Perl, PHP, Ruby). Кажется, здесь нет причинно-следственной связи.

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

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

  1. Хорошо ли это работает для моего проблемного домена?
  2. Достаточно ли сильна община, чтобы быть самосохраняющейся?

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

1 голос
/ 06 марта 2009

Языки выживают, пока они используются, и пока люди готовы их поддерживать. Люди часто готовы поддерживать язык, пока он используется. Если язык не используется, он умирает.

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

1 голос
/ 06 марта 2009

Сообщество открытого исходного кода стало больше похоже на огромную корпоративную компанию, не так ли?

1 голос
/ 06 марта 2009

Чтобы язык выжил, ему нужно несколько вещей:

  • Это должно решить проблему лучше, чем другие сопоставимые варианты. Это субъективный аспект: разработчики считают, что это лучше, и поэтому они принимают его.
  • Он должен иметь хорошую оснастку. Без хорошего инструментария язык никогда не зацепит массы.
  • Для этого нужно сильное сообщество. Сообщество, которое предоставляет помощь, помощь, компоненты и т. Д. И т. Д ...

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

1 голос
/ 06 марта 2009

Насколько я помню, у Фортрана не было корпоративной поддержки, пока он не был хорошо обоснован. C был поддержан AT & T, но им действительно было все равно, адаптирует ли это кто-то еще. И оба были хорошо известны, прежде чем они имели стандарты ANSI (также обратите внимание, что ANSI & ISO предоставляют Стандарт спецификации , а не реализации)

С другой стороны, IBM активно поддерживала и продвигала PL / I, и это так и не завоевало популярность. И правительство США пыталось заставить всех нас написать Аду, и это тоже не сработало.

Итак, что же работает? Хороший вопрос. Учить в школах это хорошо (Паскаль практически исчез, когда колледжи перешли на C ++ и Java). В последнее время "гудеть в сети" хорошо (привести: Java, Ruby)

0 голосов
/ 06 марта 2009

В то время как другие языки были почти убиты их корпоративной поддержкой = Delphi

...