Изходният код е за всички. Ако само говорите английски - Алтернативен изглед

Изходният код е за всички. Ако само говорите английски - Алтернативен изглед
Изходният код е за всички. Ако само говорите английски - Алтернативен изглед

Видео: Изходният код е за всички. Ако само говорите английски - Алтернативен изглед

Видео: Изходният код е за всички. Ако само говорите английски - Алтернативен изглед
Видео: Трябва ли ти граматика, за да говориш на английски 2024, Може
Anonim

Във връзка с 30-годишнината на Световната мрежа тази година, езиков експерт от списание Wired разсъждава за настоящето и утре на езиците за програмиране, отбелязвайки, че дори много големи езици с дълга литературна традиция не са станали основа за широко разпространен изходен код. Трябва да знаете английски. Независимо от това ситуацията може да се промени - в следващите 30 години.

Световната мрежа отбелязва своята 30-годишнина тази година, така че бяха изхарчени доста пиксели, спорещи за „първоначалните обещания в мрежата“- включително идеята, че можете да кликнете върху бутона „изглед на източника“на всяка страница и лесно да разберете защо тя показва точно това, което виждате. Ето първата уеб страница, която самоукият уеб сайт Glitch възпроизведе в чест на годишнината, за да ви покаже как можете да преминете към изходния код и да видите, че някои части са маркирани и

(може би сте се досетили какво означава това "параграф"). Изглежда доста просто - но вие четете това на англоезичен уебсайт от гледна точка на носител на английски език.

Сега си представете, че това е първата уеб страница, която сте виждали в живота си и нямате търпение да надникнете зад кулисите и да разберете как работи. Но вместо словесните етикети, с които сте запознати, се сблъсквате с версията, която създадох - тя не се различава от оригинала, с изключение на това, че изходният код е базиран на руски, а не на английски. Аз не говоря руски и ако вие например направите същото, ще и двете, и, и ще ви предизвика едно и също желание да опитате да направите нещо самостоятелно?

На теория език за програмиране може да бъде създаден въз основа на всякакви символи. Компютърът не се интересува. Тя вече изпълнява невидима програма за преводачи, която превежда всички тези ваши IF-та или в нули и такива, с които оперира, и бихме получили същите резултати, ако вземем картофените емоджи вместо IF или мистериозния средновековен кириличен глиф от XV век, мултиокуларното „О Вместо. Фактът, че езиците за програмиране често приличат на английски, само подсказва, че бедният ни, смъртен човешки мозък може по-лесно да запомни думи, които вече знаем.

Но само няколко от нас вече знаят думите, които обозначават тези команди - тези, които говорят английски. Така че "първоначалните обещания на мрежата" бяха само обещания за англоговорящите потребители, независимо дали те са носители на езика или хора с достъп до общо елитно образование, продуктът на който е владеене на английски като втори език в хора, които не доминират английски. …

Вярно, компютърните програми и платформите за социални мрежи са налични днес на 30-100 езика, но какво да кажем за самите инструменти, които могат да ни помогнат да станем създатели, а не само потребители на изчислителни инструменти? Дори не се застъпвам за писането на програмни езици на малки и рядко използвани езици (въпреки че би било чудесно). Дори много големи езици, които имат обширна литературна традиция и са езици на регионалната търговия, като китайски, испански, хинди и арабски, все още не са станали основа за широко разпространен изходен код.

Доколкото знам, има само четири езика за програмиране, които са достъпни навсякъде в многоезичен формат. Не 400. Четири (4).

Две от тях са специално проектирани за обучение на деца на програмиране: Scratch и Blockly. Разработчиците на Scratch дори проведоха проучване, което показа, че децата се научават да кодират по-лесно, ако изходният код се основава на техния собствен език, отколкото тези, които се забиват в опит да научат друг език. Какво ще се случи, когато тези деца пораснат? Възрастни, които не владеят чужди езици, ще трябва да избират от два други продукта, налични на различни езици: формули на Excel и wiki код.

Промоционално видео:

Да, можете да програмирате електронни таблици, като използвате всеки език, предоставен за интерфейса на програмата. Както в Excel, така и в Google Sheets можете да напишете например = IF (условие, value_if_true, value_if_false) или можете да въведете испанския еквивалент = SI (prueba_lógica, valor_si_es_verdadero, valor_si_es_falso) или да използвате десетки други езици. [Включително руски: IF (value, value_if_true, value_if_false - ed.)] Това може да не е първото нещо, което идва на ум, когато мислим за програмния код, но табличните програми по принцип могат да се използват като машина на Тюринг, и такова използване на локални версии може да бъде икономически оправдано.

По подобен начин можете да редактирате Wikipedia и други уики сайтове, като се възползвате от факта, че wiki кодът съществува на много различни езици. Основните уики команди не са специфични за всеки език (например, когатое затворена в квадратни скоби), но по-сложните команди използват думи на местния език. Например, когато проектирате таблица с данни за даден човек, в англоезичната Уикипедия ще има параметри "name =" и "birth_place =", които в българската версия на Wikipedia изглеждат като "name =" и "rodin-mesto =".

В допълнение към тези четири широко достъпни многоезични кодове за програмиране има няколко десетки, може би дори около сто, езици за програмиране, налични на един или два езика, различни от английски, като Qalb (арабски), китайска версия на Python, Farsinet (персийски)), Системата за програмиране на Hindawi (бенгалски, гуджарати и хинди) и дори латинска версия на Perl. Някои неанглийски езици за програмиране датират от ерата на изградените от правителството компютри с размер на помещенията - например няколко езика за програмиране от съветската епоха, базирани на руски, както и многоезичният ALGOL 68 (1960) и 4-то измерение (1980) … Но много по-нови езици като Python, Ruby и Lua са разработени в държави, които не говорят английски (Холандия, Япония и Бразилия),но все пак ключовите команди на тези езици са английски. По този начин първоначалното обещание на Интернет звучи по-скоро като заплаха за много хора: говорят английски или се спускат в интернет.

Тези езици съществуват съвместно, защото е лесно да се превежда от един програмен език на друг. Предлагат се много преобразуватели на езици за програмиране - можете да добавите фрагмент на JavaScript и да получите Python версия, или да добавите фрагмент на Markdown и да получите HTML версия. Те не са особено трудни за създаване. Езиците за програмиране имат ограничени, добре дефинирани речници без неяснота или културни нюанси, които затрудняват автоматичния машинен превод на естествени езици. Познавайки еквивалентите от около сто команди, можете автоматично да замените една с друга за всяко парче код.

Това е толкова лесно да се превеждат езици за програмиране, че някои глупаци го правят от време на време от любов към изкуството или да се смеят, когато създават така наречените езотерични езици за програмиране. Например, LOLCODE се моделира на мемори на котките на lolcats, така че програмата се отваря с командата HAI (PREVIOUS - ed.) И се затваря с KTHXBAI (кратко за „добре, благодаря, чао“: „bye bye“- ed..), а Whitespace (Space) е напълно невидим за човешкото око и се състои от символи, които не могат да се отпечатват: интервал, спиране на табулатори и захранване на линии. Има дори Pikachu, език за програмиране, направен изцяло от pi, pika и andpikachu, така че самият Pikachu би могъл - теоретично - да се освободи от онези проклети преподаватели на Pokémon и вместо това да вземе високоплатена работа на програмист.

Когато създадете Pokemon превод на вашия код, това звучи абсурдно. Когато превеждате код за милиардите хора по света, които не говорят английски, достъпът до високоплатени работни места и възможността ръчно да настроите собственото си устройство вече не са предимство. Фактът, че изходният код зависи от английския език, лишава хората от това предимство и от гледна точка на технологията на кодиране това е напълно ненужно.

Но езикът на програмиране не се отнася само до техническите му характеристики, той е общност от хора. Четирите широко разпространени многоезични кодове са имали по-голям късмет с такава общност, отколкото отделните езици за програмиране, които не са английски, но те все още са малко. Има и други полезни ресурси, които ще трябва да посетите, когато отчитате грешки в Google. Както и да е, по дяволите, първо трябва да разберете как да използвате този език на компютъра си. Ето защо беше толкова важно, че първият уеб браузър позволяваше редактиране, а не само сърфиране, поради което Glitch настоя толкова много, че потребителят да може да редактира изходния код направо от прозореца на браузъра и в този случай беше лесно да се получи помощ. Но къде е грешката за останалия святне говоря английски? Как можем да направим интернет още по-удобен за хората, които просто го опознават сега (или които го използват като потребители през последното десетилетие), отколкото беше за първите му посетители?

Ето защо не губя надежда: в средновековна Европа, ако искаш да овладееш изкуството да пишеш, трябваше да научиш нов език заедно с него. Писането означава латински. Писмеността на местния диалект - родният език, който хората вече говореха - стоеше някъде в кулоарите и беше неразвита. Защо да се притеснявам да се пише на английски или френски? Няма какво да се чете по тях, докато латинският ви дава достъп до интелектуалната традиция на езика на международната комуникация.

Понякога, гледайки назад към тази историческа епоха, се чудим защо хората се притесняват от цялата тази латиница, когато те просто могат да пишат на езика, на който са говорили. По онова време изучаването на латински език, за да се научим да пишем, беше толкова логично, колкото днес изучаването на английски език, за да се пише код, въпреки че сега знаем, че децата се учат да четат много по-бързо, ако първо се учат на родния си език. … Аргументите за английски код, които виждам в сайтове като Stack Overflow, озвучават тази идея: защо просто да не науча английски? Това ви дава достъп до цялата технологична традиция.

Известно е, че доминирането на писането на латински език е приключило. Изкуството да пишеш се е разпространило и на други езици. Възможността за създаване на изходен код не зависи повече от познаването на английския език, отколкото самата технология за писане беше свързана с латински. Предлагам да започнете с коригиране на начина, по който говорим за езици за програмиране, които имат думи от общи езици. Първият сайт не е написан на HTML, а на английски HTML. Фрагментът от код, който се появява в долната част на първия уебсайт, предоставен от Glitch, не е написан на Javascript, а на английски „Javascript.“Когато ги наричаме основно английски, става все по-очевидно че можем да променим ситуацията - можем да си представим свят, в който също има руски HTML или суахили "Javascript",където нямате присъщо предимство на кода за учене, ако се случи, че родният ви език е английски.

Този свят все още не съществува. Може би в следващите 30 години ще го създадем.

Gretchen McCulloch е местен лингвист от Wired, съавтор на езиковия подкаст Lingthusiasm и автор на „Защото интернет: Разбиране на новите правила на езика”, който трябва да излезе на 23 юли 2019 г. от Ривърхед (Пингвин).

Препоръчано: