Вивчення мови програмування, спеціально розробленої для цієї компанії [закрито]


10

Чому б хтось розробив свою власну мову, щоб використовувати її тільки всередині цієї фірми, коли у вас є інші мови XY, які можуть допомогти вам у їх бібліотеках, логіці тощо? Чи не набагато простіше йти в потоці з чим-небудь іншим, а не розвивати власну мову?


6
Досить багато "нових" мов, які ми маємо в дикій природі, можуть використовувати бібліотеки, призначені для "старих" мов: наприклад: C ++ може використовувати C libs, Scala Kotlin та інші можуть використовувати будь-яку лібу, що працює на JVM, Typescript може використовувати JS libs. Тож наявність нової мови не означає втратити підтримку
ліб

3
Чому б ти побудував драгстера, щоб їхати перетягувати перегони, а не робити з запасом автомобіля?
candied_orange

3
Або, дійсно, досліджуйте причини та раціональні причини створення будь-якої мови програмування. Деякі люди вважають, що ви не справжній вчений-комп'ютер, поки ви не створили свою власну мову. Це схоже на те, щоб не бути справжнім інженером-хіміком, поки ви не створили порошковий порошок (і підірвали невелику частину свого будинку).
candied_orange

4
Ерланг також народився таким чином: якщо я не помиляюся, він був спочатку розроблений в Ericsson для внутрішнього використання.
Джорджо

3
Мова, спеціально розроблена для компанії, є дурною, з іншого боку, мова, спеціально розроблена для проблемної галузі, в якій компанія, можливо, іноді може бути дуже корисною. Ви знаєте, що ви маєте останнє, а не перше, коли дизайн та архітектура мови обмежуються лише тим, що полегшує вирішення / вираження проблемної області набагато простіше, іноді за рахунок корисності для програмування загального призначення.
Лежать Раян

Відповіді:


25

Це набагато простіше зрозуміти, коли ти розумієш, що це часто продукт тривалого процесу, а не хтось просто каже, "ми хочемо створити нову мову".

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

Все йде нормально. Але потім люди починають стикатися з проблемами, які не можуть бути вирішені мовою. Тож нові "функції" повільно додаються для вирішення цих проблем. Оскільки процес проходить повільно і функціонує нечасто, немає мотивації правильно розробляти ці нові функції, доки проблеми будуть вирішені.

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

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

Існує кілька мов, які розвивалися так, як це не пов'язано з конкретними компаніями кашель JavaScript кашель PHP кашель .


10
Чудова відповідь, і хоча у JavaScript є свої проблеми, я не думаю, що це справедливо ставити його в тому ж реченні, що і PHP. Це як би сказати: "Нам потрібно вигнати Білла і Теда з нашого мікрорайону, вони є злочинцями!" Але, Білл (JavaScript) - джейвалкер, а Тед (PHP) - серійний вбивця.
TheCatWhisperer

12
@TheCatWhisperer Я не згоден. JavaScript настільки ж поганий, або ще гірший, ніж PHP. Оскільки ВАМ ВИКОРИСТОВУВАННЯ (або трансляція) JavaScript, тоді як PHP можна сміливо ігнорувати.
Ейфорія

2
це в основному справедливий момент.
TheCatWhisperer

1
@Euphoric Давайте чекатимемо WASM , можливо, сцена зміниться тоді ...
Кролтан

@Kroltan +1 для WASM!
CraigR8806

15

Чи не набагато простіше йти в потоці з чим-небудь іншим, а не розвивати власну мову?

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

Іноді потоку немає. Нові мови існують через те, що хтось чухає свербіж, будь то мовний любитель, який просто хоче винайти щось нове або компанія, яка потребує задоволення тим, що вже існує.

Саме це сталося, коли Джон Бекус запропонував у 1953 р. Систему перекладу математичної формули IBM . Він хотів, щоб наукові користувачі спростили спосіб уточнення математичних формул, ніж їх написання на зборах. Цей фірмовий продукт став першою мовою програмування, яка не була збіркою, і ви знаєте його як Fortran.

Там, де Фортран був першим, хто пішов цим маршрутом, Ерланг - це майже дитина дитини-постерця. Ericsson хотів вдосконалити спосіб розробки програмного забезпечення для своїх телефонних комутаторів і винайшов мову для прототипування з особливостями, необхідними для того, що їм потрібно. Коли я вперше досліджував це, моїм виведенням було те, що його розробили люди з реальною проблемою, для вирішення яких не було б належного обслуговування жодна з інших мов, доступних у 1986 році. Ерланг залишався власником власного продукту, як ваш колега зіткнувся до тих пір, поки це не було відкритим джерелом понад десятиліття пізніше, і тепер це основна мова.

І Go, і Scala є відносно молодими мовами у грандіозній схемі речей, і цілком можливо, що мова, яка використовується у компанії вашого колеги, передує обом. Що йому потрібно зробити, це запитати про його історію, чому вона існувала і чому вона продовжує використовуватися.

Я провів десятиліття між 2003 і 2013 роками, працюючи в компанії, яка широко використовувала галузеве середовище, яке включало власну мову, що має своє коріння в кінці 1970-х. Хоча деякі новіші мови, можливо, були більш підходящими замінами (і гачки для них були прищеплені з часом), ця галузь інвестувала в це досить великі інвестиції та величезний масив добре перевіреного коду, що просто не було хорошого ділового випадку для переходу на щось інше.


-1

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

Подумай над цим. Ця нова мова, ймовірно, весь час ламається. Між аналізатором, компілятором, VM, лінкером, будь-яким іншим ... Зараз є тисячі помилок, з якими люди витратять години на налагодження випадкових проблем. Все для того, що, на їхню думку, потрібно, щоб інших мов не було.

C / C ++ використовується для запису операційних систем, як, ви знаєте, всіх. І все ж хтось подумав, що їм потрібно щось інше.


7
Мабуть, ви ніколи не бачили Котліна. Або Javascript, або C #, з цього приводу. Програмне забезпечення Fog Creek протягом багатьох років використовувало власну мову програмування під назвою Wasabi (заснована на VB) (хоча, правда, технічний борг нарешті наздогнав їх ). Тож, безумовно, є випадки, коли це справді працює.
Роберт Харві

1
Наскільки я пам'ятаю, C # народився після того, як Microsoft намагалася створити невідповідну реалізацію Java, її подали до суду і втратили. cnet.com/news/sun-microsoft-settle-java-suit Оскільки вони вже не могли назвати її Java, вони розробили власну мову, яка спочатку була дуже схожа на Java.
Джорджіо

1
"Ця нова мова, ймовірно, весь час ламається" - якщо ваш мовний дизайн дозволяє вам уникнути цілого класу помилок додатків, то це може бути прийнятним компромісом
Ерік

16
Коли-небудь чули про C? Повідомлялося, що він був розроблений в приміщенні лише для однієї операційної системи на одному комп’ютері. Чому компанія K&R просто не використала те, що було доведено, що було використано для запису операційних систем, таких як PL / 1, BCPL або Algol 68?
idrougge
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.