Кто здесь учится го? Другие компании хотят использовать его? Это может стать широко используемым?
Кто здесь учится го? Другие компании хотят использовать его? Это может стать широко используемым?
Ответы:
Когда дело доходит до языков программирования, старая поговорка «это не тот, кто вы есть, а тот, кого вы знаете», безусловно, верна. C и C ++ были спонсированы AT & T, Java была предоставлена нам Sun, семейство .NET произошло от Microsoft, и все они стали очень популярными очень быстро. Затем у нас есть Objective-C и Python, которые были довольно долгое время и оставались неясными, пока их не обнаружили и не раскритиковали Apple и Google соответственно, а затем внезапно они действительно взлетели. Но языки без основного спонсора имеют тенденцию томиться в безвестности, независимо от того, насколько они хороши.
Go спонсируется Google. Здесь нетрудно прийти к правильному выводу. Дайте ему пять лет, и это будет огромно.
Я на самом деле не думаю, что Go будет таким успешным. Причина, по которой он не достигнет больших масс, заключается в том, что он предназначен для языка системного программирования.
Существует реальная потребность в системном языке с более современными функциями. C и C ++ слишком ограничены унаследованным кодом и обратной совместимостью, чтобы улучшать их значительно. Тем не менее, я не думаю, что Go выполняет эту роль в ее нынешнем виде. Его дизайн слишком минималистичен. В то время как его модель параллелизма впечатляет, она приносит немного других функций из языков более высокого уровня в мир систем. (В прошлый раз, когда я проверял, что, правда, было некоторое время назад, у него даже не было исключений.) Кроме того, по крайней мере, в той степени, в которой игра «Сравнение компьютерных языков» является хорошей мерой (по общему признанию, это очень грубый показатель), это не так. почти так же быстро, как должен быть «настоящий» системный язык.
Я считаю , что язык с лучшим шансом , чтобы заполнить пустоту более современных систем языка D . D технически намного сильнее, чем Go, но политически слабее. Это не поддержано крупной корпорацией. Что действительно нужно, так это некоторые библиотеки (это быстро решается сейчас, когда языковая спецификация стабильна) и приложение-убийца.
foo, err := SomeFunc()
становится обычным делом Для серьезных проблем или мест, где ошибка не работает, вы можете использовать panic()
и recover()
. Тем не менее, они намеренно используются очень редко; нет способа передать исключения в стек, если стек очень короткий, а короткие стеки являются обычным явлением, когда существует много параллельных потоков.
Я изучаю Go и да, он используется продуктивно, помимо Google и Heroku.
Go, безусловно, хороший язык для системного программирования. Простой код как в C, мощные структуры как в C ++ и функции безопасности как в Java. Так как это очень молодой язык, много хороших вещей от других языков были унаследованы:
i := 1
вместо того int i = 1
, func f(x, y, z int)
вместо того , чтобы void f(int x, int y, int z)
, type Foo struct { a, b int }; bar := Foo{1, 2}
вместоclass Foo { int a; int b; Foo(int a, int b) { this.a = a; this.b = b; } } /* ... */ Foo bar = new Foo(1, 2);
Учитывая все эти приятные вещи, а также безопасность и производительность, известные только для статически типизированных языков, многим людям из сообщества динамических языков понравился Go. В большинстве случаев Go-код не намного длиннее Ruby-кода, но в любом случае более безопасен и лучше структурирован.
Но, в конце концов, я полагаю, что убийственный аргумент в пользу Go - параллелизм. Это C-подобный язык, который имеет мощную поддержку параллелизма, известную только из функциональных языков.
Я бы сказал, что это в основном зависит от библиотек / сервисов / программного обеспечения, которые будут созданы в / для / с использованием Go. Люди используют что-то в трех ситуациях (порядок имеет значение): когда у них практически нет другого выбора (Objective-C), когда их окружение использует это (FORTRAN), когда это облегчает их жизнь (Ruby).
Это может быть немного поздно для этого, но Go становится популярным языком сейчас и, вероятно, войдет в мейнстрим с Google, продвигая его вперед. Он выдвигается как язык, используемый для систем и продуктов в Google, и выдвигается как язык для использования с Google App Engine. Есть некоторые очень острые люди на бэкэнде, строящем Го и улучшающем его. Есть некоторые очень умные и изобретательные люди, работающие над сторонними библиотеками для Go.
Go заполняет пустоту, которую не заполнили другие языки. Для меня я пытался заполнить эту пустоту Perl и кучей обходных путей и уловок. Я не верю, что это идеальный язык для всех ситуаций и для всех людей, но он, безусловно, является кандидатом на довольно большое количество ситуаций. Например, он отлично работает для веб-приложений, а также отлично подходит для настольных приложений или серверных приложений. Он делает такую фантастическую работу с HTTP и WebSocket (что означает, что вы можете вообще пропустить Apache или nginx), и в то же время отлично работает на Windows, Linux и OS X как для демонов, так и для обычных старых настольных приложений. Прямо сейчас единственная ситуация, в которой мне это не удается - это приложения для Android, которые, я надеюсь, скоро будут исправлены. Я использую его для настольных приложений Windows, настольных приложений Linux и веб-приложений на основе Linux.
Я полагаю, что пройдет несколько лет, прежде чем он действительно достигнет мейнстрима, но он доберется до этого. Я думаю, что для этого нужно собрать больше сторонних библиотек, так же, как число и выбор, которые Perl имеет с CPAN. Это будет там.
Что значит «мейнстрим»? Не зная этого, очень трудно ответить на этот вопрос. Давайте посмотрим немного на это.
Есть много возможных определений. Вот несколько из них:
Управленческий взгляд:
Взгляд разработчиков:
Карьерный взгляд:
Учитывая все вышесказанное, я бы сказал, что единственный честный ответ, вероятно, «слишком рано, чтобы сказать», но я считаю, что лучший показатель любой реальной долголетия - это число маленькихпредприятия, которые используют язык. Большие организации все очень хорошо - они могут даже быть необходимыми для роста языка или системы инструментов из-за масштаба инвестиций, которые они могут применить - но они довольно склонны к прохождению моды (за некоторыми исключениями). В отличие от этого, если малый бизнес строится вокруг использования языка для предоставления продуктов и услуг, он, скорее всего, захочет внести свой вклад в обеспечение того, что он все еще сможет сделать это в будущем. Они также формируют основу сильного рынка труда в этом районе, а также спроса на инструменты. Как ни странно, это несколько индикаторов мейнстрима в моем списке (возможно, больше, в зависимости от прихотей менеджмента).
Итак, сколько людей за пределами Google используют Go для своей работы? Понятия не имею. (Я не. Мои потребности в настоящее время хорошо удовлетворяются смесью Java, C и Tcl. YMMV.)
Это уже более популярно, чем некоторые языки.
Возможно, что Go является самым важным языком за 20 с лишним лет. Это действительно дает некоторые большие преимущества с точки зрения огромных наборов данных, которые представляют социальные сети, облачные вычисления, поиск и мобильные устройства.
Такие сайты, как Facebook, Twitter, Linkedin, YouTube и рекламные сети, гораздо шире используют Google Go, чем Ruby On Rails, по крайней мере в некоторых контекстах.
Я заглянул в Go, когда услышал об этом. Как начинающий я все еще изучаю языки для начинающих (в моем случае Java, C #, Python и Scheme), которые очень важны, но если бы я не был поглощен таким большим количеством различных языков, я бы серьезно задумался над этим.
Я полагаю, что на моем уровне нет ничего плохого в том, чтобы опустить основы, прежде чем прыгать на подножки. Хотя, если я правильно помню, когда я смотрел вверх по Го, меня почему-то очень тянуло к Эрлангу.
Я только что посмотрел на Go из-за этого вопроса, поэтому я не могу прокомментировать, будет ли он широко распространённым языком, но одна вещь меня просто по-настоящему взволновала:
http://golang.org/doc/go_spec.html#Channel_types
Я впервые столкнулся с концепцией каналов в Occam-pi, и должен сказать, что это одна из лучших концепций программирования в мире . Это делает параллелизм таким легким, что выполнение одного и того же в языке C-типа иногда может быть затруднительным.
Из того, что я видел (за 10 минут, которые я посмотрел), Go пытается объединить множество различных концепций программирования, но при этом есть риск, что он станет мастером на все руки, а не мастером.
Я подозреваю, что станет ли он мейнстримом, будет зависеть от того, примет ли Google его в качестве поддерживаемого языка для appengine и / или GWT.
Желаю, чтобы Go стал популярным.
Это мощный в синтаксисе. (Узнайте о преимуществах Python, C, Java). Это хорошо для многоядерных процессоров. (Функция канала намного лучше, чем программирование потоков). Конструкция предотвращает многие ловушки программиста. (неверный указатель, тот же стиль кодирования инструментом gofmt, предотвратить ошибку неинициализированной переменной. Сначала я пробую сначала, так как это python + C, но со скоростью около 1/2 скорости C.
Но, после глубокого изучения я обнаружил, что это может быть подходящим для разработки отказоустойчивости и масштабируемой архитектуры
after
за ход?