Неубедительное сравнение между программированием и нормальными языками.
Многие языки программирования имеют сходство с обычными разговорными языками. Некоторые из них имеют схожую структуру, синтаксис или грамматику; другие вместо этого имеют сопоставимую историю или сообщество.
Эта статья предназначена только для развлечения, поэтому не принимайте ничего на свой счет.
Питон и английский
Эти два языка имеют почти идентичный синтаксис. Они оба очень гибкие языки, так как они не требуют каких-либо указаний относительно рода прилагательных или переменных типов данных, а порядок слов иногда не имеет значения.
Есть даже случаи, когда фразы буквально совпадают:
if my_age is 10: print("You are 10!")
Кроме того, оба любят соединять слова с помощью тире, будь то классическое высокое тире -
или подчеркивание _
.
Более того, и Python, и английский являются кроссплатформенными языками, поскольку их можно использовать в любой стране, и почти каждый может на них говорить. Из-за их большого сообщества существует много разных диалектов и акцентов. Трудно писать стандартизированный и поддерживаемый код, когда каждый пишет так, как хочет.
Несмотря на их широкую популярность, они обычно не используются для больших и сложных систем, таких как философские трактаты, для которых предпочтительны более точные языки, такие как немецкий или латынь.
С++ и латиница
Они оба невероятно способные языки. Вы очень подробно выражаете любое понятие и прекрасно контролируете смысл своих предложений, просто изменяя несколько букв в зависимости от падежа.
unsigned int a = pointer; unsigned int a = *pointer;
У них настолько широкий набор слов, что вы не сможете выучить значительную их часть за всю жизнь. Также вам может понадобиться словарь (cppreference.com) для перевода некоторых выражений. Несмотря на это, есть несколько человек, которые могут говорить на нем естественно, не задумываясь.
Его часто преподают в школах, и ученики его ненавидят. Более того, большинство из них никогда не будут использовать его в своей карьере, если только им не придется работать со сложными текстами, такими как философские или медицинские трактаты.
Несмотря на то, что большинство людей пропускают его изучение, его синтаксис и понятия составляют основу многих современных языков, и изучающие его способны понимать слова, которые никогда не встречали, просто благодаря их этимологии.
Ява и немецкий
И Java, и немецкий — старые и особенно структурированные языки. Его синтаксис невероятно многословен, и вы не можете соединить несколько предложений, не повторяясь.
ArrayList<String> list = new ArrayList<String>();
Слова соединяются вместе, образуя сложные лексемы с более конкретным значением. Например, слово «наука», предмет, который вы изучаете в школе, — это «Naturwissenschaft» (Natur+wissen+schaft). Java имеет аналогичное соглашение об именах:
public ArrayList<String> getFirstNamesList() {/* ... */}
Другое сходство заключается в том, что даже простые понятия обычно выражаются длинными классами из-за строгой грамматики языка. По той же причине глагол должен занимать второе место в главном предложении и последнее место в относительном предложении, подобно тому, как Java-программисты будут кричать на вас, если вы напишете static public void main
вместо public static void main
.
С# и французский
Хотя он вдохновлен Java/немецким, этот язык также происходит от C++/латыни.
Германия исторически находится в конфликте с Францией по разным причинам. То же самое можно сказать о Java и C#, разработчики которых утверждают, что их язык лучше, чем его аналог.
internal static HttpRequest CreateConnectRequest (Uri uri) { var host = uri.DnsSafeHost; var port = uri.Port; var authority = String.Format ("{0}:{1}", host, port); var req = new HttpRequest ("CONNECT", authority); req.Headers["Host"] = port == 80 ? host : authority; return req; }
И французский/C#, и немецкий/Java имеют много общего, поскольку они разработаны в одной и той же области, но первый по своей конструкции проще и менее строг. Несмотря на это, Java всегда была намного популярнее, чем C#, точно так же, как Германия исторически и фактически более могущественна и экономически превосходит Францию.
АПЛ и арабский
Большинство людей не понимают ни слова на этом языке. И APL, и арабский язык основаны на нетрадиционном наборе символов, который значительно отличается от рекомендованного ASCII.
∇ inst MoveRequestData REQ;data;m;i;lcp;props;args;mask :Access public shared inst._PageData←⎕NS'' :If 0≠1↑⍴data←{⍵[⍋↑⍵[;1];]}REQ.Arguments⍪REQ.Data :If 0∊m←1,2≢/data[;1] data←(m/data[;1]),[1.5]m⊂data[;2] :EndIf i←{⍵/⍳⍴⍵}1=⊃∘⍴¨data[;2] data[i;2]←⊃¨data[i;2] :If 0≠⍴lcp←props←('_'≠1⊃¨props)/props←(inst.⎕NL-2) :AndIf 0≠1↑⍴args←(data[;1]∊lcp)⌿data args←(2⌈⍴args)⍴args i←lcp⍳args[;1] ⍎'inst.(',(⍕props[i]),')←args[;2]' :EndIf :If ∨/mask←'_'≠1⊃¨data[;1] args←mask⌿data :Trap 0 args[;1]←inst._PageData PrepareJSONTargets args[;1] ⍎'inst._PageData.(',(⍕args[;1]),')←(⊃⍣(1=⍬⍴⍴args))args[;2]' :EndTrap :EndIf :EndIf ∇
Только инсайдеры, которые с ним работают, могут его читать и писать. Более того, он принят только в одной части мира, поскольку его фактические варианты использования довольно ограничены. Обычно он используется в математических вычислениях, к которым арабы были весьма склонны.
JavaScript и испанский
Этот язык может быть изначально простым для изучения, но на самом деле его трудно освоить. Лишь немногие могут на самом деле говорить на нем надлежащим стандартизированным способом и писать код, который можно обслуживать.
Поскольку по-испански говорят во всем мире, JavaScript колонизировал почти все области, от веб-приложений и настольных приложений до серверных программ. Из-за большого сообщества существует множество различных диалектов и спецификаций браузеров. Кроме того, у каждого свой стиль написания кода, поскольку правила форматирования и подхода не очень строгие.
function acceptParams(str, index) { var parts = str.split(/ *; */); var ret = { value: parts[0], quality: 1, params: {}, originalIndex: index }; for (var i = 1; i < parts.length; ++i) { var pms = parts[i].split(/ *= */); if ('q' === pms[0]) { ret.quality = parseFloat(pms[1]); } else { ret.params[pms[0]] = pms[1]; } } return ret; }
Го и эсперанто
И го, и эсперанто — очень молодые языки. Они были созданы специально с учетом эффективности. Они разработаны таким образом, чтобы их было легко написать и понять, без необычного набора символов и элементов синтаксиса из уже существующих популярных языков.
func (u User) Allowed(url string, noModification bool) bool { var rule *Rule i := len(u.Rules) - 1 for i >= 0 { rule = u.Rules[i] isAllowed := rule.Allow && (noModification || rule.Modify) if rule.Regex { if rule.Regexp.MatchString(url) { return isAllowed } } else if strings.HasPrefix(url, rule.Path) { return isAllowed } i-- } return noModification || u.Modify }
Go/Esperanto обладает невероятным потенциалом стать основным языком благодаря своей стабильности и продуманной структуре. Несмотря на это, он так и не взлетел.
Ассамблея и этот индоевропейский язык
Кажется, что они являются корнем каждого языка. В каждой книге по истории упоминается, что древние народы говорили на этом индоевропейском языке, но на самом деле никто его не знает. То же самое можно сказать и об ассемблере, на котором основано все современное программирование, и его знают все, но понять могут лишь немногие элиты.
shl ebx, 16 shl ecx, 8 mov bx, cx shl edx, 2 mov bl, dl and ebx, 0x00ffffff or ebx, 0x80000000 mov eax, ebx mov dx, PCI_CONFIG_ADDRESS out dx, eax pop rax mov dx, PCI_CONFIG_DATA out dx, eax
Аппаратное программирование и рок-надпись
Они являются первой формой письменности, которая появилась. И аппаратное программирование, и надписи на камне постоянно хранят информацию в физическом материале, будь то специальная конфигурация транзистора, спаянная вместе, или символы, вырезанные в камне.
В настоящее время эти фрагменты истории выставлены в музеях для всеобщего обозрения. Тем не менее, все еще есть художники, которые вырезают камни или создают 8-битные компьютеры с нуля просто из страсти.
Надеюсь, вам понравилась эта статья. Я хотел бы знать, что вы думаете об этих матчах и есть ли у вас другие хорошие?
Спасибо, что прочитали!
Больше контента на plainenglish.io. Подпишитесь на нашубесплатную еженедельную рассылку здесь.