Що зумовлює прийняття чи ні нових мов програмування чи ні? [зачинено]


12

Я дуже хотів би зупинитися на тому, чому деякі нові мови програмування прийняті в основному, а інші залишаються відносно нішевими. Мені хотілося б дізнатися про такі речі, як конкретні випадки використання, зворотна сумісність або деякі нові функції, прості або складні труднощі з реалізацією. Конкретні приклади були б вдячні, але не будемо захоплюватися точним визначенням тут "мейнстріму" чи "ніші".



2
Шанс та корпоративна підтримка - великий фактор. steve-yegge.blogspot.com/2007/02/next-big-language.html
Робота

3
Не підходяще запитання для цього форуму
Ryan

Ну, для одного це не форум. І для двох, я думаю, що це цілком відповідає принципам для суб’єктивного питання.
DeadMG

1
Прийняття мови програмування обернено пов'язане з кількістю хипстерів, які ним користуються.

Відповіді:


18

Якби хтось насправді знав, вони були б дуже багатими людьми.

Це сказав, ось моя здогадка:

Доступність

BASIC - це жахлива маленька мова, яка з'явилася разом із (усіма?) ПК, коли вони вперше вийшли. Apple II (комп'ютер за замовчуванням для багатьох вищих навчальних закладів) та ATARI 400/800 (перший супердешевий домашній комп'ютер) обидва постачалися з BASIC.

Якщо у вас був апарат UNIX (або система AT&T V, або Berkeley), у вас був C. Якщо ви хочете запрограмувати машину, це вам довелося використовувати.

EDIT : З появою та повсюдності мережі, ця вимога перетворюється на:

  1. Скільки дистрибутивів Linux пакують недавню копію і наскільки вони добре її оновлюють? Чи подібні бібліотеки доступні для встановлення?
  2. Це легко встановити в Windows (XP | Vista | 7,8 ...)?
  3. Чи охоплені платформи Mac / iOS?
  4. Чи можна його встановити без труднощів у застарілому Unix?
  5. Після встановлення, як легко отримати доступ до сторонніх бібліотек, і чи можна легко оновити його?

Легкість переходу

Java - хороший приклад тут. Якщо ви знали програмування на C, Java не дуже далеко випереджала, і все ж вона дала багато функцій, яких не вистачало C, а C ++ не змогла забезпечити чистоту.

C ++ з очевидних причин був легким кроком вперед від C, і його було легко продати в управління як «покращений» C. C ++ мав додаткову перевагу бути зворотним сумісним з більшою частиною існуючої застарілої бази кодів C.

Perl являв собою об'єднання програм C, awk, sed та інших утиліт Unix, все в одному пакеті. До його появи більшість системних систем здійснювалася за допомогою скриптів оболонки, склеюючи все разом незадовільним чином. Зведення все під один процес із структурами даних та управління мовою, подібною С, було знахідкою.

Заповнює потребу

C зняв, тому що це дозволило вам забезпечити ефективність наближення до монтажу, не занурившись у специфічний для машини складний для збереження світ складання.

FORTRAN зняв, оскільки дозволив легко перекладати математичні ідеї в код, не втрачаючи деталей машини.

Так само і для LISP та символічних маніпуляцій.

Пітон виріс із необхідності "кращого" Perl. (Я тут упереджений, тому більше не скажу.)

PHP був по суті ОСНОВНИМ для Інтернету - він був встановлений за замовчуванням на багатьох веб-серверах, і було легко швидко зламати щось корисне.

Адвокація, база користувачів, внесений код

Звернімо увагу, Haskell не був би десь настільки популярний, як це для мови, що не використовується, якби не невтомне відстоювання своїх розробників та користувальницької бази.

Багато мов мають культ особистості, що стоїть за творцем (-оми) мови, і всі ми знаємо, хто вони.

FORTRAN має величезний набір встановленого і перевіреного математичного коду; те ж саме для Java та веб / систем-інтеграції / MVC-систем; те саме для Perl та CPAN; те ж саме для T E X та управління документами; тощо.

це фактор

Чомусь деякі мови, здається , мають достатню кількість нових , з достатньою кількістю кивок на стару , таким чином, щоб вона виглядала легкою або потрібною. Тобто це робить свою справу. І хто тільки знає, як це відбувається?


У всякому разі, це моя найкраща здогадка, чому деякі з них роблять. Щодо того, чому деякі не ... ну, якщо вони не відповідають вищевказаним критеріям, то, мабуть, тому вони і не змогли.


1
Визначальним фактором більшості ваших критеріїв є корпоративна підтримка . Java, можливо, забила, наприклад, простоту переходу, але без того, щоб хтось бажав нанести мільйони, рік у рік, як частина їх плану світового домінування, не ясно, яка різниця це мала би. Отже, ви маєте рацію, дуже багаті знають відповідь на це :-)
jaybee

4
@jaybee - не впевнений, що корпоративна підтримка мовою творців обов'язково допомогла. Фортран і С не особливо допомогли приїхавши з IBM / ATT. Здається, посилання Oracle активно шкодить Java. Basic, Perl, Python, Ruby тощо не мали корпорацій позаду. Підтримка внутрішньої корпоративної роботи у користувача / замовника є важливою, але це слід довго після того, як вона стане повсюдною.
Мартін Бекетт

1
@Martin Beckett: у вас може бути точка. Я думаю, хоча, що хоча всі види планет можуть бути вирівняні для того, щоб мова потрапляла до критичної маси, "сучасним" способом чивви цих планет у відповідність, здається, є спалювання готівки. Наприклад, Марк використовує Haskell в якості прикладу - він може мати чудову, голосову базу користувачів, але GHC виграє для них безліч аргументів. Такі компілятори, як GHC, коштують грошей.
jaybee

@jaybee - багато везіння. Але для класних нових веб-мов це важливо маркетинговим навиком творця / раннього асистента.
Мартін Бекетт

11

Мови стають популярними, оскільки вони мають перевагу перед існуючими мовами в потрібній місцевості.

Java

  • Автоматичне управління пам’яттю (порівняйте з C ++ і C)
  • Мова / API, вбудований у Threading
  • Працює на віртуальній машині (це означає, що розробники можуть використовувати Windows на розроблювальних машинах для тестування та розгортання програми без змін на Linux / Unix).
  • Мережеве програмування набагато простіше, ніж у тих мовах, які були найпопулярнішими раніше (C ++ і C), а Java вийшла, коли Інтернет почав користуватися популярністю.

PHP

  • Полегшили розробку веб-сторінок
  • Вбудована підтримка підключення до баз даних MySQL
  • Не потрібна компіляція, і було легко включити скрипти прямо у свої HTML-файли.

JavaScript

  • Тільки мова для веб - браузерів.
  • Веб-браузери все частіше використовуються як тонкі клієнти (веб-додатки).
  • Мобільний код - простий у розгортанні та без установки

Ціль-С

  • Мова для середовища Mac OS X та iPhone. І iPhone досяг величезного успіху.

Рубін

  • Разом з Ruby on Rails - веб-рамкою, значно спростила веб-розробка з MVC.

C #

  • Мова для середовищ Windows за останні десять років. Практично всі API Microsoft прості у використанні з C # напр., Winforms та WPF і WCF.

ActionScript

  • Тільки мова для Addobe Flash / Flex, який мав величезний успіх для медіа - контенту в мережі Інтернет і то , що JavaScript не міг впоратися.

Ерланг

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

1
Модель одночасності Ерланга не є унікальною, вона просто відрізняється від тієї, якою користуються потворні імперативні мови :). Скала має той же тип. Аналогічно Clojure та Haskell спеціалізуються на STM.
альтернатива

4
@mathepic: Щоправда, але всі ці мови новіші, ніж Ерланг. Тож це було неповторно для Ерланга на початку - як і майже всі перелічені функції ягнів. Гарні ідеї варто вкрасти.
Йонас

1
C # - мова .net. Я думав, що Windows насправді написано на c ++. Я помиляюся в цьому. Я б сказав, що C # став популярним завдяки використанню мови, яку люди вже знали (C), за допомогою нової основи, яка спростила розробку потужних додатків за допомогою інструмента редактора, який був потужним, простим у використанні та враховував потреби розробників та фактичне використання.
SoylentGray

1
@Chad C # не має нічого спільного з C
альтернатива

1
@mathepic - Я працював над програмуванням на C, C ++ та C #. Я можу сказати, що C # все-таки зберігає свої корені c, наскільки це номеклатура. Зрозуміло, він вийшов за межі С, що не означає, що він не використовує мову.
SoylentGray

5

Я буду циніком: гроші і приходжу з цим, маркетинг.

Не випадково C # підтримується Microsoft, Java - Oracle та Apple - Objective C. Тільки Google Go Go поки що не піднявся.

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


Треба погодитись і поширити: Buzzwords, управлінське звернення, великі імена, захоплюючі звучання. Якщо ви не погоджуєтесь, я дам вам одне ім’я: COBOL.
СФ.

1
C # і Obj-C не так підтримуються, як "доручені". Програмувати програми для Windows на c ++ за допомогою лише apis, що постачається MSFT, і важко, а AFAIK лише obj-C дозволений на мобільних платформах для яблук. З іншого боку, позов на Oracle щодо виробників Android може завдати шкоди Яві
Мартін Бекетт

1
@Martin - Ви в значній мірі правильні WRT Obj-C. Технічно ви можете використовувати такі речі, як Appcelerator Ttanium, щоб використовувати інші мови для написання додатків, але він все одно перетворюється на Obj-C для розгортання (і це було боротьбою за те, щоб отримати це навіть). Apple заборонить майже все інше (навіть PhoneGap пройшов чітку лінію).
Shauna

3

З одного боку, це маркетинг, точніше презентації, блоги тощо. Важливо мати функції, з якими звичайні програмісти можуть мати відношення і бачити переваги над тим, що вони знають (Java проти C ++ - збирач сміття проти управління пам'яттю). Нарешті, але не менш важливим є обмеження для входу в систему - приклади, хороша документація, безпроблемна установка, хороша спільнота та підтримка, яскравий розвиток.


1

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

Unix був написаний на C, так само, як і інструменти для Unix, коли C був дуже молодим і розвивався.

Анаконда (програма встановлення RedHat) була написана в Python, коли Python був молодий і не користувався популярністю сьогодні.

Це те, про що я можу згадати. Цей список може торкнутися кожної з мов, які пережили свої роки формування.

Тоді широкомасштабне прийняття в університетах може допомогти мові довголіття. Java дуже популярна в університетах як мова викладання. Певною мірою цей статус користуються і Лісп, і діалекти Ліспа.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.