Яка природна мова має перевагу, коли мова йде про програмування? [зачинено]


21

Мовна відносність - це ідея, що мова формує те, як ми думаємо. Моє запитання полягає в тому, наскільки і в якій мірі це стосується програмування?

  • Чи деякі рідні, природні мови краще підходять для роздумів про програмування, ніж інші? Наприклад, чи можна сказати наступне коротше в не англійській мові? Select a pivot. Move all the items less than the pivot to one side of the list, and all the items greater than the pivot to the other side.
  • Чи китайськомовний програміст розглядає програмування в кардинально іншому об'єктиві, ніж англомовний програміст, або розбіжності зникають, коли обоє занурені в тему?
  • Деякі мови програмування та домени простіше думати на тій чи іншій мові. Наприклад, чи простіше вправити Рубі, якщо ти японець, тому що творець Рубі - японець?

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

Щоб вийти з цього шляху, однією мовою, яка явно має прагматичну перевагу, є англійська . Я думаю , що перевага має мало спільного з мовами програмування вибираючи англійські слова , такі як if, for, while, і do, так само , як музиканти , які не говорять на італійському не спіткнулася на такі слова , як форте . Це більше стосується спілкування ідей з іншими програмістами, оскільки англійська мова є лінгва-франкою в наші дні, принаймні у світі програмування. Наприклад, щоб задати запитання в StackOverflow, вам дійсно потрібно знати англійську мову і знати її досить добре, якщо ви хочете гарних відповідей. Хоча це звучить як імперіалістичне ставлення, воно справді є правдою на практиці.

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


2
Це ви можете сказати дуже просто будь-якому компетентному програмісту. Implement quick sort.
Джош К

Відповіді:


3

Ага, гіпотеза Сапіра-Ворфа проти гіпотези війни Хомського про глибоку структуру ...

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

Послівна «дика» мова може мати початкові труднощі із вираженням необхідних абстракцій першого порядку. Однак- проте! - люди можуть вивчати нові слова та нові поняття. Давньогрецька мова не починалася з філософських термінів; їх треба було винайти, а потім перенести на інші мови.

Вважаючи, що математика є універсальною, я постулюю, що сильна гіпотеза Сапіра-Уорфа є хибною.


"Математика застосовується філософія" Поясніть?
Френк Ширар

1
@Frank: Історично так було. Коли ви поглянете на короткий погляд на "основи математики", стає досить очевидним, що це філософсько обґрунтоване. Наприклад, весь інтуїціоністський аргумент.
Пол Натан

Я не заперечую, що деякі математичні питання, як ви говорите, є філософськими. Мені здається далеким стрибок від того, щоб сказати, що "Математика застосовується філософія".
Френк Ширар

@Frank: ну, якщо основи математики є філософськими, то, здавалося б, те, що виходить із основ, є також філософським. Ні? Так?
Пол Натан

1
@Frank: Жахливо, так? Я думаю, якийсь майор ліберальних мистецтв нюхає з латте. :)
Пол Натан

13

Я не знаю, що якась конкретна природна мова піддається кращому програмуванню (хіба що латинська?). Я знаю, що знання більше однієї мови досить потужне.

У своєму останньому інтерв'ю Дайкстра заявив (як передруковано у CACM, т. 53, № 8, стор. 44):

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


6

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

Раніше "Çekoslovakyalılaştıramadıklarımızdan mısınız?" що означає "Ви один з тих людей, яких ми не змогли зробити схожими на Чехословаччину?" була дуже популярною і прийнята як найдовше слово в турецькій мові. Однак суфікси запитань (mısınız в даному випадку) пишуться окремо, тому, хоч це одне слово, воно, схоже, два слова, коли слово пишеться. Крім того, більш легкі версії цього слова можна легко зробити, наприклад, "Çekoslovakyalılaştırabildiklerimizden miydiniz?". З цих причин слово втратило свою популярність, але воно все ще є популярним у Туреччині мовним твістером.

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

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

Або по-іспанськи ви б сказали «професор / професора», а по-німецьки - «Лерер / Леререн». У турецькій мові потрібно використовувати додаткові слова для позначення статі - подібно до англійської.
Учителем по-турецьки є öğretmen. Щоб вказати на вчительку, ви б сказали "kadın öğretmen" - жінка-викладач. Але незважаючи на німецьку мову, де - якщо не жіноче, додавши "-in" - за замовчуванням є чоловік, öğretmen не має статі, як і немає.

Інша річ, якої немає в турецькій мові, - такі статті, як "el / la", "the", "der / die / das" - так як зазвичай це лише інформація, яка вже доступна контекстом.
Але є слова, щоб виразити "це", "este / esta", "diese / dieses / diese", наприклад "bu".
Це додаткова інформація, оскільки вона вказує на певний об’єкт.


1
Без граматичного сексу, звідки беруться маленькі турки? (До речі, коли я побачив це питання, але перш ніж зазирнути сюди, я подумав про турецьку мову. Хоча я не розмовляю з цим, я чув про те, наскільки це регулярно.)
Рандалл Шульц,

Мабуть, синтаксис Smalltalk ще ближче до турецької, ніж до англійської: smalltalk.gnu.org/blog/zuluuuuuu/smalltalk-and-turkish
Френк Шірар

@Frank Shearer: час вивчити малу розмову!
VikingoS повідомляє про відновлення Моніки

@Randall Schulz: У мене з'явилося;) Я завжди змішую термін секс і стать ...
Вікінгос каже: Відновити Моніку

Я чув, що за певним дослідженням санскрит мав на увазі найбільш схожий на комп'ютерну мову, ви можете його гугл. Я не впевнений, наскільки це може бути правдою, але оскільки санскрит ніколи не брав участь як розмовна мова, а також тому, що її використовували серед академічних наук для технічних досліджень того часу, можливо, це не схоже на природні розмовні мови сьогодні. Турецька звучить дуже солодко для моїх вух (просто слухово), але якщо все це і санскрит розмовлятимуть як хлопчик мов програмування, це було б дуже нудно. Останнє, що я хочу почути, коли його запитують: "це хлопчик чи дівчинка?" є "так".
nawfal

2

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


1

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

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


0

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

Я врятував посилання, на який я натрапив днями, чи різні мови рівні в різних реаліях? які дотичні до неї дещо (читайте також коментарі). Деякі цікаві.

Все одно ...


-1

Англійська мова насправді досить ефективна і стисла. Переклад на більшість мов зробить ідею довше висловленою .

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


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

4
Але хіба складність символу не вище?
Joeri Sebrechts

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