Английский это строго типизированный язык

от автора

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

Поделюсь своим миксом паттернов в области изучения английского языка, программирования, философии. То есть рассматриваю изучение английского языка, как изучение строго типизированого языка программирования.

В строго типизированном языке программирования строковая переменная объявляется как:

string s = "abc" тип имя = значение 

В английском языке переменная обьявляется как:

имя тип значение John is a driver

Имя переменной — Джон, тип переменной — IS (тип БЫТЬ), значение — Водитель. То есть в английском языке когда надо присвоить какому-то обьекту какое-то координатно- материальное свойство, используется тип БЫТЬ (англ BE).

Когда надо присвоить обьекту свойство движения, используется тип ДЕЛАТЬ (англ DO)

имя тип значение John does exercises

Имя — Джон, тип — ДЕЛАТЬ (англ DO), значение — зарядка. То есть сообщается что объект Джон находится в движении, которое имеет смысл зарядки.

Когда надо присвоить объекту свойство владения, используется тип ИМЕТЬ (англ HAVE).

имя тип значение John has a car

Имя — Джон, тип ИМЕТЬ (англ HAVE), значение — машина. Сообщается что Джон имеет машину.

Вообще любой объект описывается тремя типами значений. И это явно выражено в английском языке. Слова BE, DO, HAVE, использование которых русским людям не особо понятно, это типы значений БЫТЬ, ДЕЛАТЬ, ИМЕТЬ. Здесь для понимания включается паттерн из философии:

  • Объект может БЫТЬ: где-то(по координатам в пространстве или времени); каким-то(материальные свойства: цвет, форма, температура, твердость; роль)

  • Объект может ДЕЛАТЬ что-то(действие, движение).

  • Объект может ИМЕТЬ что-то.

Например есть следующий текст: «Джон водитель. У него есть машина. Он ездит на работу каждое утро. Джон живет в деревне. Джон был в отпуске давно»

«Джон водитель» это утверждение описывающее роль объекта, то есть это утверждение типа БЫТЬ(BE). Переводим на английский. Работаем по схеме ИМЯ ТИП ЗНАЧЕНИЕ. JOHN IS a DRIVER.

«У него есть машина» это утверждение описывающее владение объектом, то есть типа ИМЕТЬ(HAVE). Переводим на английский. Работаем по схеме ИМЯ ТИП ЗНАЧЕНИЕ. JOHN HAS a CAR.

С объявлением переменных разобрались. Теперь рассмотрим объявление функции возвращающей результат. В языке людей функция возвращающая результат это вопрос. Задавая вопрос мы хотим получить ответ, то есть какое-то значение. И как написано в заголовке статьи, английский это строго типизированный язык, и обьявляя функцию, необходимо указать тип возвращаемого значения.

string function(){};  тип тело_функции Is John a driver?

Здесь англоязычный человек задавая вопрос со слова IS, сразу типизирует ожидаемый ответ по типу БЫТЬ. То есть он спрашивает о материально-координатных свойствах объекта Джон.

Does John go to the gym?

Здесь спрашивающий типизирует мозг собеседника на выдачу ответа типа ДЕЛАТЬ(DO). То есть каким Действием занимается.

Думаю доказал типизацию английского языка. Идем далее. Язык JavaScript при обьявлении переменной не требует указывать тип.

let s = 'abc';

В русском тоже переменные не типизируются.

Иван водитель имя значение Иван идет имя значение

Я хобби программист и пишу код мало. Но выработал такое правило именования переменных: переменная типа String должна начинаться на «s»; переменная типа integer на «i»; boolean на «b» и т.д. Например

string sTemp = "abc"; int iTemp = 1; bool bTemp = true;

Это сразу в коде позволяет увидеть с каким типом данных работает переменная. А для массива использую приставку «arr», для двумерного «arr2»

string[] arr_sTemp = {«a», «b», «c»};

string[,] arr2_sTemp = {{«a», «b»},{«c», «d»}}

То есть с помощью приставки к имени переменной, я типизирую ее для себя для своего восприятия типа переменной. Такая типизация переменных по приставкам и окончаниям есть в русском языке. Окончание «ый» это тип БЫТЬ (краснЫЙ). Окончание «ть» это тип ДЕЛАТЬ (бежаТЬ). Различные предлоги типизируют координаты в пространстве. «НАстольный тенис» в русском, гораздо информативнее чем просто «table tennis». То есть русский язык типизируется приставками и окончаниями переменной. Английский типизируется отдельными словами и их всего 3 (be, do, have). Поэтому английский проще и это язык международного общения.

Ну и напоследок функция типа boolean возвращает ответ типа «ИСТИНА/ЛОЖЬ» или «ДА/НЕТ». Функцию типа boolean можно маркировать приставкой «boo»

boolean booTemp = true;

В русском языке логическая функция или вопрос подразумевающий ответ «ДА/НЕТ», тоже маркируется приставкой «boo».

bool booDeshPyt(sdrink temp) {  if (temp == "whiskey") {  return boodu; }  return neboodu;  }  

🙂


ссылка на оригинал статьи https://habr.com/ru/post/648785/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *