У меня также нет степени CS, так что это может не иметь никакого смысла.

Недавно, совершив прыжок веры в свою жизнь и карьеру, я заключил договор с самим собой, чтобы выучить еще один язык программирования к концу лета (или зимы, если вы живете в южной половине земного шара). Я обдумывал несколько вариантов, таких как Ruby, Python и даже Elixir.

Я наткнулся на Go после того, как вспомнил, как один из моих коллег на учебном курсе по кодированию, который я посещал, часто упоминал этот язык. После некоторых исследований в языке меня привлекли не такие технические аспекты, как параллелизм или поддержка многоядерности. Что мне больше всего понравилось в Go, так это история о том, почему и как появился этот язык. Существующие языки не соответствовали их потребностям, поэтому они просто сделали самую крутую вещь и создали свой собственный. Они собрали одни из самых блестящих умов в области компьютерных наук и предоставили им ресурсы для создания Go. Они намеревались создать язык, который будет масштабироваться и поддерживать крупномасштабные приложения, что вполне объяснимо тем, что нужно Google.

Я также никогда раньше не использовал ни язык C, ни язык со статической типизацией.

Это все еще молодой язык, но его будущее безумно яркое. Помимо Google, его уже начали использовать такие организации, как The New York Times, The BBC и Netflix (вместе с этими компаниями).

Это лаконично

Создатели/авторы Go (Роб Пайк, Кен Томпсон и Роберт Гриземер) думали о читабельности, когда разрабатывали его. В настоящее время у меня нет никаких подробностей, чтобы указать на краткость языка, но пока что мое общее впечатление таково, что он пытается быть предельно простым, как современный язык программирования (он был создан в 2007 году).

‘Go’ 'For’ It

Опять же, это мой первый опыт работы с языком, производным от C, и у меня не было опыта работы ни с компилируемым языком, ни с языками со статической типизацией (хотя TypeScript находится на моем радар). Я еще не продвинулся далеко в плане освоения синтаксиса, но я был рад воспринять их соглашения при инициализации и выполнении базового цикла for. Ниже я написал цикл for в Go из примера из отличной книги Калеба Докси Введение в программирование в Go вместе с сопоставимым циклом for в JavaScript. :

Синтаксис Go приятный и лаконичный, в то время как базовый или грубый метод написания цикла for в JavaScript не так элегантен. Я говорю, что циклы JavaScript for некрасивы, потому что я использовал функции более высокого порядка функции в течение нескольких месяцев, и я привыкли к красивым функциям вроде map.

Моя способность создавать краткие и четкие функции в Go, несомненно, будет улучшаться и развиваться по мере того, как я продолжаю знакомиться с языком. Пока что мне все нравится, хотя он и не такой красивый, как Ruby.

Это нижняя функция или объектно-ориентированное программирование

До сих пор, поскольку JavaScript был моим первым языком, я познакомился с двумя парадигмами программирования, продвигаемыми сообществом, — объектно-ориентированной и функциональной. При изучении и изучении основного синтаксиса Go я обнаружил, что он не подпадает ни под один из них. Это процедурный язык программирования, и это прекрасно объясняет, почему это так. Честно говоря, некоторые из них для меня чепуха. Как я часто упоминал выше (вероятно, до отвращения к этому моменту), у меня нет никакого формального образования в области компьютерных наук (пока), но, надеюсь, этот путь в изучении Go я приду к понять эти преимущества и нюансы этих вариантов дизайна.

И так…

Вот некоторые наблюдения, которые я сделал как разработчик JavaScript, изучающий Go и их второй язык программирования. Я должен заявить, что я посещал учебный курс по кодированию и не имел абсолютно никаких знаний в области компьютерных наук, поэтому прошу прощения, если здесь есть какие-то неправильные термины. Я знаю, что есть критика языка, но это не статья о преимуществах языка или о том, почему это лучший язык. Мой путь к изучению Go продвигается постепенно, и я с нетерпением жду возможности углубиться в язык.