На чем написан гугл

Языки программирования, которые используют Google, Reddit и другие гиганты

На чем написан гугл. Смотреть фото На чем написан гугл. Смотреть картинку На чем написан гугл. Картинка про На чем написан гугл. Фото На чем написан гугл

Всевозможные рейтинги языков не дают возможности понять, какие технологии в реальности используются на популярных и сложных проектах. Исправляя этот недостаток, TechWorm опубликовал статью о распространённости языков программирования в крупнейших сервисах.

На чем написан гугл. Смотреть фото На чем написан гугл. Смотреть картинку На чем написан гугл. Картинка про На чем написан гугл. Фото На чем написан гугл

Поиск Google

Первая версия Google называлась BackRub и была написана на Java и Python. Сейчас фронт-энд Google написан на C и C++, а его известные поисковые роботы — на Python. Впрочем, из-за нестабильности роботов и заполнения индексов старой информацией они были переписаны на C++ и получили возможность инкрементальных обновлений.

Google Chrome

Популярный браузер написан на C++, Assembly и Python.

Adobe

Все продукты Adobe (Photoshop, Acrobat, Illustrator и т. д.) написаны на С/С++ и ActionScript, в интерфейсах используется JavaScript.

Microsoft

Word, Excel и Powerpoint написаны на C/C++, имеют встроенный движок VisualBasic, и VisualBasic использован для разработки интерфейсов. В разработке Windows 10 использовался C++, а ядро операционной системы работает на С.

Apple

Mac Os X написана на Objective C, а ядро, как и в предыдущем случае, на C. IO PnP подсистема Mac Os X использует Embedded C++.

Linux

Большая часть Linux написана на языке программирования C. Многие приложения используют Python, KDE написан полностью на C++. Ядра Linux используют Assembly.

AutoCAD

YouTube

Первоначально сервис писался на PHP, но затем (на раннем этапе развития проекта) был сделан выбор в пользу Python, на котором и продолжалась разработка до момента продажи Google.

Facebook

Значительная часть социальной сети написана на PHP, используется и XHP, а наиболее популярная среда — HihHop для PHP. Помимо этого, широко используются JavaScript и Erlang.

Dropbox

Популярное облачное хранилище в качестве ключевого языка программирования использует Python.

Quora

Основатели Quora, до этого работавшие в Facebook, выбрали для своего сервиса Python. LiveNode, одна из внутренних систем для управления отображением содержимого на веб-страницах, также частично написана на Python.

Reddit

Первоначально Reddit был написан на Common Lisp, но ещё в 2005 году переписан на Python — для большей гибкости и доступа к многочисленным библиотекам.

На чем написан гугл. Смотреть фото На чем написан гугл. Смотреть картинку На чем написан гугл. Картинка про На чем написан гугл. Фото На чем написан гугл

Хотите сообщить важную новость? Пишите в Телеграм-бот.

А также подписывайтесь на наш Телеграм-канал.

Источник

Почему Google использует язык программирования Java, а не Haskell?

Обычно люди жалуются насколько неудобно и непродуманно разработан язык программирования Java, а с другой стороны хвалят Haskell за его надежность и простоту в использовании. Учитывая огромную базу, которая принадлежит Google, было бы логичней использовать Haskell. КВ собрали самые интересные ответы пользователей сайта Quora.

Майкл О. Черч

На чем написан гугл. Смотреть фото На чем написан гугл. Смотреть картинку На чем написан гугл. Картинка про На чем написан гугл. Фото На чем написан гугл

Единственный аргумент, который обычно выдвигается людьми против Haskell, заключается в том, что в нем сложно разобраться. Но это не может быть веской причиной неиспользования данного языка, учитывая то, что на корпорацию работают одни из самых умных программистов во всем мире.

Так почему же Google выбрал Java вместо Haskell? И почему они настаивают на использовании языка программирования Go вместо Haskell или Idris сейчас? Запомните это историческое событие: Майкл О. Черч собирается защищать Google, критикуя один из своих любимых языков (Haskell).

В 1998 году исследование в области языков программирования считалось бессмысленным. Большинство великих идей, которые сейчас выходят на первый план в таких языках, как Clojure и Haskell, возникли уже в 1970-х и 80-х годах.

В конце 1990-х Haskell не был столь хорошо продуманным и стабильным языком программирования как сейчас. Реально ли было бы основать компанию масштаба Google при помощи Haskell в 2014 году? Наверное, да. У вас, скорее всего, возникнут некоторые несоответствия при работе с любой сервисной программой, но вы можете найти рынок сбыта, тем самым сделав свой вклад на основе открытого кода в качестве дополнительного дохода компании, и проблема решена. В конце 1990-х годов, когда вы только что рискованно вложили капитал и у вас не было времени на обучение 100 инженеров «непонятному» языку, который (в то время) не имел даже библиотечной поддержки? Наверное, нет. Обсуждение языка Haskell — еще один безнадежный разговор, который неизбежен с инвесторами и который отнимет у вас много времени, вместо того, чтобы качественно разрабатывать новый продукт.

Несмотря ни на что, язык C ++ должен был быть включен в белый список Google. Существует много способов использования данного языка, но даже в 2014 году ни один другой язык не работает также, как он. При создании чего-либо масштаба Google, понадобится язык управляемой памяти. Следует отметить, что людям нравится больше C, и они утверждают, что C ++ является функционально избыточным и ресурсоёмким программным обеспечением. Ведь Google не выгодно, чтобы большое количество программистов писали свои собственные хэш-таблицы и альтернативные строковые типы, поэтому компания (мудро) решила изменить C ++ в лучшую сторону настолько, насколько это возможно. И (хотя я раскритиковал ужасный Legacy Project) я нахожу большую часть кода C++ в Google очень хорошей и намного более наглядной, чем коды в «лучших» языках программирования типичных компаний.

Java (который ценится не так высоко, как C ++ в Google) попал в белый список путем приобретения. Если вы собираетесь поддерживать каждую недоработанную финансируемую кем-то операционную деятельность, то исполнитель оказывает услугу, а затем вы расходуете много Java. Таким образом, язык Java также можно включить в белый список.

Python числится в списке в качестве экспериментального языка «высокого уровня», но (по состоянию на 2011) его необоснованно не рекомендуют пускать в разработку.

Тем не менее, Google не может позволить себе быть лидером во всем. Является ли использование такого количества Java (за счет Clojure и Haskell) верным решением для технологического лидера? Конечно, нет. Подходит ли это для Google? Вполне возможно. Будем считать это бизнес-решением, о котором нам не известны все показатели. Ошибочно и опасно предположение, что одна компания (торгующая публично, которая подотчетна инвесторам) могла бы быть «технологическим лидером » по всем направлениям. Это лишь наше заоблачное ожидание.

Джонатан Полсон, инженер-программист в Google

На чем написан гугл. Смотреть фото На чем написан гугл. Смотреть картинку На чем написан гугл. Картинка про На чем написан гугл. Фото На чем написан гугл

У Google существует ряд веских причин не использовать Haskell.

Проделать все это — тонна работы, а ведь пришлось бы все это сделать по-новому для Haskell. Haskell также должен быть в состоянии поддерживать все стандартные API Google: MapReduce, буфер протокола, BigTable и т.д. И это еще один большой кусок работы.

С другой стороны, Haskell понадобятся также очень хорошие библиотеки. Есть ли у Haskell отличная поддержка i18n? SSL? Машинное обучение? Поддерживаются ли в надлежащем состоянии все эти библиотеки? А проверял ли кто-нибудь работу Haskell до тысячи машин и тысячи запросов в секунду? Хорошо ли он работает? Есть ли непредвиденные проблемы? Все это, наверное, невозможно, но очень рискованно.

Однако все существующие языки Google не собираются исчезать. Так что это просто «очередной язык» сотрудников Googlе, с которым придется иметь дело, и язык, который должна поддерживать рабочая группа обслуживания инфраструктур (если я создаю новую базовую API в Google, то я должен сделать также реализацию Haskell). Очевидно, что эти проблемы были решены.

Может быть, Google должен использовать Haskell. Может быть, нет. Но истинная причина заключается не в том, что Haskell слишком трудно освоить.

Тим Армстронг

На чем написан гугл. Смотреть фото На чем написан гугл. Смотреть картинку На чем написан гугл. Картинка про На чем написан гугл. Фото На чем написан гугл

Я не согласен с предположением, что Java — плохой язык программирования, и я могу назвать несколько причин, которые не зависят от того, какой язык быстрее.

Во-первых, модель использования Java гораздо проще, чем Haskell: довольно легко понять расходы центрального процессора данной части кода Java с тех пор, как он расположен недалеко от аппаратного обеспечения. Наблюдая за кодом Haskell, гораздо труднее предвидеть, будет ли компилирующая программа в состоянии оптимизировать код настолько, чтобы он отображался хорошо на оборудовании. Также нетривиально будет дать оценку использованию программы Haskell в пространстве, так как определение того, какие преобразователи были или не были оценены, часто требует довольно глубокого понимания языка. Бездействие Haskell является главным виновником в данной ситуации. Я хорошо разбираюсь в Haskell, но если бы передо мной была поставлена задача, пересмотреть код этого языка, то у меня возникли бы некоторые сомнения.

Во-вторых, JVM является хорошей платформой с качественным профилированием и средствами контроля, которые важны для проведения операций.

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

Источник

Язык Программного кода сайта Google — Поиска, Хрома и прочего

Гугл — одна из самых крупных IT-компаний в мире! И многие пользователи начинают интересоваться тем, а на каком языке написаны продукты данной фирмы (к примеру, хром, переводчик или же сам поиск)? Давайте разбираться!

На чём написан поиск гугл?

В настоящее время поисковая система гугл по большей части написана на языке программирования C++, однако в ней также используется и много других языков: php, GO (созданный лично компанией гугл), C#, html — это, собственно, сами веб-страницы и так далее.

На чем написан гугл. Смотреть фото На чем написан гугл. Смотреть картинку На чем написан гугл. Картинка про На чем написан гугл. Фото На чем написан гуглА вы слышали про это ⇓

Что насчёт Google Chrome?

Здесь уже немного сложнее. Начнём с того, что данный браузер — мультиплатформенный, то есть разрабатывался на несколько операционных систем .

И если для Windows используется C#, то для iMac нужен уже Objective-C. Даже несмотря на то, что обе ОС предназначены для ПК, код программы необходимо писать на разных языках.

На чем написан гугл. Смотреть фото На чем написан гугл. Смотреть картинку На чем написан гугл. Картинка про На чем написан гугл. Фото На чем написан гуглУдивительно: ⇓

На мобильных “операционках” всё работает также. Google Chrome для андроид написан на языке программирования Java, а вот для айфона — Swift.

Эти языки программирования выбраны не просто так, ведь они отлично подходят для определённых целей, обеспечивая быстродействия браузера и его функциональность.

В переводчике

Какой язык программирования был использован для гугл переводчика и прочих приложений?

На чем написан гугл. Смотреть фото На чем написан гугл. Смотреть картинку На чем написан гугл. Картинка про На чем написан гугл. Фото На чем написан гугл

Если рассматривать переводчик как приложение для мобильных устройств, то здесь ничего не меняется. Он написан на уже знакомых нам языках программирования: Java и Swift. Сайт гугл переводчика выполнен с использованием других разных языков программирования, а именно: PHP и Javascript.

Тоже самое касается и других сервисов от гугл по типу “Google Карты”, Хром или, к примеру, Gmail. Надеемся, что мы смогли помочь вам в решении этого вопроса! А если у вас остались вопросы, то смело обращайтесь к нам в комментариях…

Источник

Язык Go для начинающих

На чем написан гугл. Смотреть фото На чем написан гугл. Смотреть картинку На чем написан гугл. Картинка про На чем написан гугл. Фото На чем написан гугл

Цель этой статьи — рассказать о языке программирования Go (Golang) тем разработчикам, которые смотрят в сторону этого языка, но еще не решились взяться за его изучение. Рассказ будет вестись на примере реального приложения, которое представляет из себя RESTful API веб-сервис.

Передо мной стояла задача разработать бэкэнд к мобильному сервису. Суть сервиса довольно проста. Мобильное приложение, которое показывает посты пользователей, находящихся рядом с текущим местоположением. На посты пользователи могут оставлять свои комментарии, которые тоже, в свою очередь, можно комментировать. Получается своеобразный гео-форум.

Давно хотел попробовать применить язык Go для сколь нибудь серьезных проектов. Выбор был очевиден, благо что этот язык как нельзя лучше подходит для подобных задач.

Основные преимущества языка Go:

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

Итак, вернемся к нашей задаче. Хоть язык и не накладывает ограничений на структуру проекта, данное приложение я решил организовать по модели MVC. Правда View реализовывается на стороне клиента. В моем случае это был AngularJS, в перспективе — нативное мобильное приложение. Здесь я расскажу лишь об API на стороне сервиса.

Структура проекта получилась следующая:

Программа в Go разделяется на пакеты (package), что указывается в начале каждого файла. Имя пакета должно соответствовать директории в которой находятся файлы, входящие в пакет. Так же, должен быть главный пакет main с функцией main(). Он у меня находится в корневом файле приложения loctalk.go. Таким образом, у меня получилось 5 пакетов: conf, controllers, models, utils, main.
Буду приводить неполное содержание файлов, а только минимально необходимое для понимания.

Пакет conf содержит константы и настройки сайта.

Думаю, комментировать тут нечего. Функция init() вызывается в каждом пакете до вызова main(). Их может быть несколько в разных файлах.

В самом верху определяется имя пакета. Далее идет список импортируемых пакетов. Мы будем использовать пакет Martini. Он добавляет легкую прослойку для быстрого и удобного создания веб-приложений. Обратите внимание как импортируется этот пакет. Нужно указать путь к репозиторию откуда он был взят. А чтобы его получить, достаточно в консоли набрать команду go get github.com/go-martini/martini

Далее мы создаем экземпляр Martini, настраиваем и запускаем его. Обратите внимание на знак « := ». Это сокращенный синтаксис, он означает: создать переменную соответствующего типа и инициализировать ее. Например, написав a := «hello», мы создадим переменную a типа string и присвоим ей строку «hello».

Переменная m в нашем случае имеет тип *ClassicMartini, именно это возвращает martini.Classic(). * означает указатель, т. е. передается не само значение, а лишь указатель на него. В метод m.Use() мы передаем функцию-обработчик. Этот Middleware позволяет Martini делать определенные действия над каждым запросом. В данном случае, мы определяем Content-Type для каждого запроса. Метод m.Map() же позволяет привязать нашу структуру и использовать ее затем в контроллерах при необходимости (механизм dependency injection). В данном случае, я создал обертку для кодирования структуры данных в формат json.

Тут же мы создаем внутреннюю функцию Auth, которая проверяет авторизацию пользователя. Ее можно вставить в наши роуты и она будет вызываться до вызова контроллера. Эти вещи возможны благодаря Martini. С использованием стандартной библиотеки код получился бы немного другой.

Взглянем на файл errors.go пакета conf.

Язык поддерживает возврат нескольких значений. Вместо механизма try-catch, очень часто используется прием, когда вторым аргументом возвращается ошибка. И при ее наличии, она обрабатывается. Есть встроенный тип error, который представляет из себя интерфейс:

Таким образом, чтобы реализовать этот интерфейс, достаточно иметь метод Error() string. Я создал свой тип для ошибок ApiError, который более специфичен для моих задач, однако совместим со встроенным типом error.

Обратите внимание на — type ApiError struct. Это определение структуры, модели данных, которую вы будете использовать постоянно в своей работе. Она состоит из полей определенных типов (надеюсь, вы успели заметить, что тип данных пишется после имени переменной). Кстати, полями могут быть другие структуры, наследуя все методы и поля. В одинарных кавычках « указаны теги. Их указывать не обязательно. В данном случае они используются пакетом encoding/json для указания имени в выводе json (знак минус «-» вообще исключает поле из вывода).

Обратите внимание, что поля структуры написаны с заглавной буквы. Это означает, что они имеют область видимости за пределами пакета. Если написать их с прописной буквы, они экспортироваться не будут, а будут доступны только в пределах пакета. Это же относится и к функциям и методам. Вот такой простой механизм инкапсуляции.

Далее мы определяем предустановленные ошибки и заполняем их поля. Поля вида http.StatusBadRequest — это значения типа int в пакете http для стандартных кодов ответа, своего рода алиасы. Мы используем сокращенный синтаксис объявления структуры &ApiError<> с инициализацией. По другому можно было бы написать так:

Символ & означает получить указатель на данную структуру. Оператор new() так же возвращает указатель, а не значение. По-началу возникает небольшая путаница с указателями, но, со временем, вы привыкните.

Перейдем к нашим моделям. Приведу урезанную версию модели постов:

Здесь мы используем замечательный драйвер для MongoDb — mgo, чтобы сохранять данные. Для удобства, я создал небольшую обертку над api mgo — utils.NewDbSession. Логика работы с данными: сначала мы создаем объект во внутренней структуре языка, а затем, с помощью метода этой структуры, сохраняем его в базу данных.

Обратите внимание, что в этих методах мы везде используем наш тип ошибки conf.ApiError. Стандартные ошибки мы конвертируем в наши с помощью conf.NewApiError(err). Так же, важен оператор defer. Он исполняется в самом конце выполнения метода. В данном случае, закрывает соединение с БД.

Что ж, осталось взглянуть на контроллер, который обрабатывает запросы и выводит json в ответ.

Здесь мы получаем из URL id запрашиваемого поста, создаем новый экземпляр нашей структуры и вызываем на ней метод LoadById(id) для загрузки данных из БД и заполнения данной структуры. Которую мы и выводим в HTTP ответ, предварительно преобразовав в json нашим методом mu.Marshal(post).

Обратите внимание на сигнатуру функции:

Входные параметры нам предоставляет Martini с помощью механизма внедрения зависимостей (dependency injection). И мы возвращаем два параметра (int, []byte) — число (статус ответа) и массив байт.

Итак, мы разобрали основные компоненты и подходы, используя которые, вы сможете сделать эффективный RESTful API интерфейс в короткие сроки. Надеюсь, статья была полезна и вдохновит некоторых из вас заняться изучением замечательного языка Go. Уверен, за ним будущее.

Для изучения могу порекомендовать хорошую книгу на русском «Программирование на языке Go» Марка Саммерфильда. И, конечно, больше практиковаться.

Источник

Язык программирования Go: мнения и перспектива

На чем написан гугл. Смотреть фото На чем написан гугл. Смотреть картинку На чем написан гугл. Картинка про На чем написан гугл. Фото На чем написан гугл

Go – это язык программирования, который был разработан корпорацией Google. Часто его еще называют «Golang» – сокращение от «Google language». Это компилируемый и многопоточный язык, релиз которого состоялся в ноябре 2009 года, а самый свежий выпуск 1.6 датируется февралем 2016 года. Одной из ключевых фигур, которые принимали участие в создании Go, является Роб Пайк, известный разработчик языков программирования, а также операционных систем, в данный момент работающий в Google. Выступая на одной из конференций, он отметил, что язык Go – это попытка перенять лучшие стороны таких языков, как C++ и Java.

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

Применение Golang

Язык Go разрабатывался как язык для создания различных высокоэффективных программ, однако большинство программистов сходятся во мнении, что лучше всего он подходит для создания веб-приложений (в качестве back-end). При этом Go дает возможности писать и другие проекты, к примеру, Docker, InfluxDB и Kubernetes. По сути, применение языка Go ограничивается тремя основными направлениями: сетевое программное обеспечение, консольные утилиты и бэкенд.

Одной из отличительных особенностей языка является оригинальная система типов: в языке отсутствует наследование (один из принципов объектно-ориентированного программирования). Также в Go используется сокращенный синтаксис определения переменных и синтаксис анонимных функций.
Еще одна особенность этого языка – параллелизм, который заключается в том, что любая функция может быть выполнена одновременно с другой.

Так как Go является одним из молодых языков программирования, регулярно возникают обсуждения целесообразности его использования.

Плюсы языка Go

У языка Go есть несколько положительных черт, выделяемых программистами, которые на нем пишут.

Во-первых, это его простота. Язык Go разрабатывался в качестве замены C: его высокая производительность почти сопоставима с языком Си, но более простой синтаксис дает возможность разрабатывать приложения гораздо быстрее (к примеру, как на Python). При этом многие разработчики изучают этот язык после Python или PHP либо используют два языка в связке (Python/Go и PHP/Go). Упрощенный синтаксис облегчает не только написание своего собственного кода, но и чтение кода, написанного другими программистами, что особенно важно в командной работе. Эта особенность Go, в свою очередь, ведет к другому важному факту: быстрое освоение Go позволяет перевести внимание с изучения самого языка на изучение программирования в целом.

Тут необходимо сделать отступление и сказать о том, что желание создать простой язык программирования родилось у разработчиков Google неслучайно: изначально они задумывали Go как быстро изучаемый язык, который запросто могут выучить несколько не очень опытных программистов для того, чтобы затем вместе написать какое-нибудь приложение. Именно поэтому некоторые считают язык Go языком, пригодным для больших корпораций, где в разработке продуктов будет участвовать множество разных людей. Как уже было замечено выше, простой и понятный синтаксис ведет к тому, что программистам Go не нужно вводить какие-то другие стандарты, обозначения или комментарии – они и без этого отлично поймут код друг друга. Многословность Go радует одних разработчиков и огорчает других, но именно благодаря ей код Go читается так легко.

Поэтому некоторые компании (к примеру, CrowdStrike) сознательно переходят с других языков программирования на Go для того, чтобы в дальнейшем более легко расширять пул своих разработчиков.

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

В-третьих, Go это компилируемый язык, на котором можно быстро написать необходимое приложение. Go имеет такую же строгую статическую типизацию, как Pascal, но в то же время он имеет гораздо больший прикладной характер (и это роднит его с Python). Тут необходимо отметить высокую производительность Golang, которая характерна для компилируемых языков. Также в Go значительно облегчена кроссплатформенность.

Нельзя не отметить и четкую направленность языка: в отличие от PHP, на котором пишут большие проекты, Go больше предназначен для некрупных сервисов, которые необходимо быстро внедрить и которые должны отличаться чрезвычайной надежностью (так называемое robust software).

Развертка Go-приложения также выглядит намного проще, чем развертка приложения, написанного на PHP. Программируя на Go, вы можете создать артефакты для всех операционных систем или архитектур процессора, вам не нужно будет устанавливать Go на используемые вами сервера.

Синтаксис Go может быть непривычен тем, кто до этого программировал на PHP или Python. Если рассматривать код Go в сравнении с PHP, то Go не имеет объектов или классов, зато в нем есть структура, а точнее тип, который содержит именованные поля:

Еще одной причиной, по которой Go завоевывает все большую популярность, является наличие go fmt – инструмента, который помогает стандартизировать код. А использование go vet поможет вам найти возможные проблемы в коде. Иными словами, авторы языка Go попытались максимально упросить задачу разработки приложений на этом языке, особенно для новичков.

Именно поэтому многие на данный момент считают Go одним из лучших языков программирования и советуют изучать его не только студентам, но и школьникам. Кстати, такой прецедент уже был: учитель научил несколько 11-летних школьников писать и разбираться в коде на таком уровне, что они смогли написать генератор фракталов Мандельброта. А главное, для этого ему понадобилось всего 12-13 часов!

Минусы языка Go

В качестве негативной стороны Go часто называют его малую на данный момент распространенность – действительно, есть куда более распространенные языки программирования, которые используются для выполнения большинства задач. Значит ли это, что изучать Go не стоит? Совсем нет. Существует множество корпораций, которые используют язык Go в своих разработках. В первую очередь это, конечно же, Google Inc., а также Basecamp, BBC Worldwide, Canonical, DigitalOcean, Dropbox, eBay, Yahoo и многие другие компании по всему миру. Поэтому перспективы у этого языка программирования точно есть. Безусловно, программисты Go могут быть менее востребованы, чем, к примеру, PHP-разработчики, однако и конкуренция ниже, а значит, выше шанс найти интересную и хорошо оплачиваемую работу.

Те, кто пытаются предугадать перспективы языка Go, также говорят о другом минусе, который фактически является противоположностью предыдущего пункта: из-за легкости языка, а значит, и низкого порога вхождения, количество людей, программирующих на Go, будет расти в геометрической прогрессии, при этом качество кода и сами проекты будут оставлять желать лучшего. Похожая ситуация в начале XXI века случилась с PHP, когда на этом языке стало писать множество начинающих программистов, не очень волнующихся за работоспособность своего кода (и готовых получать небольшую плату за свой труд). Главное отличие PHP от Go на данный момент заключается в том, что PHP в итоге стал полноценным языком с богатой инфраструктурой и множество фреймворков, без знания которых вы едва ли найдете хорошую работу. Go же позиционируется как простой язык, поэтому перспективы его развития не очень определены.

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

Вывод

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

Источник

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

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