Хто тут навчається Go? Чи інші компанії дивляться на його використання? Можливо, вона набуде широкого застосування?
Хто тут навчається Go? Чи інші компанії дивляться на його використання? Можливо, вона набуде широкого застосування?
Відповіді:
Що стосується мов програмування, то старе прислів’я "це не ти хто, це хто знаєш", безумовно, відповідає дійсності. C і C ++ були спонсоровані AT&T, Java нам привела Sun, сім'я .NET вийшла з Microsoft, і всі вони отримали велику популярність дуже швидко. Тоді у нас з'являються Objective-C і Python, які довгий час були навколо і залишалися дуже незрозумілими, поки Apple і Google не виявили їх, а потім раптом дійсно зняли. Але мови без головного спонсора, як правило, знемагають у невідомості, незалежно від того, наскільки вони хороші.
Google спонсорує Google. Тут не важко дійти правильного висновку. Дайте йому п’ять років, і це буде величезно.
Я насправді не думаю, що Go буде таким успішним. Причиною, чому вона не досягне великих мас, є те, що вона призначена для мови системного програмування.
Існує реальна потреба в системній мові з більш сучасними функціями. C і C ++ тут занадто пов'язані застарілим кодом та зворотною сумісністю, щоб значно покращити. Однак, я не думаю, що Go виконує цю роль у своєму теперішньому вигляді. Його дизайн занадто мінімалістичний. Незважаючи на те, що його модель одночасності є захоплюючою, вона приносить мало інших функцій від мов вищого рівня до системного світу. (Востаннє я перевіряв, що, правда кажучи, деякий час тому, у нього навіть не було винятків.) Крім того, принаймні, настільки, наскільки комп'ютерна мова з орієнтиром є хорошою мірою (це, мабуть, дуже приблизний показник), це не так майже так само швидко, як і "справжніми" системами мови.
Я вважаю , що мова з найкращим шансом , щоб заповнити порожнечу більш сучасних систем мови D . D технічно набагато сильніший за Го, але політично слабший. Це не підтримується великою корпорацією. Що йому дійсно потрібно, це деякі бібліотеки (це швидко вирішується зараз, коли мовна специфіка є стабільною) та додаток-убивця.
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 - це паралельність. Це мова, схожа на С, яка має потужну підтримку паралельних можливостей, яка відома лише з функціональних мов.
Я б сказав, що це головним чином залежить від бібліотек / служб / програмного забезпечення, які будуть створені в / для / з використанням Go. Люди використовують щось у трьох ситуаціях (питання порядку): коли у них практично немає іншого варіанту (Objective-C), коли їх оточення використовує це (FORTRAN), коли це полегшує їх життя (Ruby).
Можливо, це буде трохи пізно, але Go стає популярною мовою зараз і, швидше за все, увійде в мейнстрім, коли Google висуває її вперед. Його висувають як мову, яка використовується для систем і продуктів у Google, і її застосовують як мову для використання з Google App Engine. На бекенді будівлі Go є кілька дуже гострих людей, що покращують її. Є кілька дуже розумних і творчих людей, які працюють над сторонніми бібліотеками для Go.
Go заповнює порожнечу, яку інші мови ще не зовсім заповнили. Для мене я намагався заповнити цю порожнечу Перлом і купою обхідних шляхів і хитрощів. Я не вірю, що це ідеальна мова для всіх ситуацій і всіх людей, але, безумовно, це кандидат для досить великої кількості ситуацій. Наприклад, він чудово працює для веб-додатків, а також відмінно працює для настільних програм або додатків на сервері. Він робить таку фантастичну роботу з 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 та Ad-Serving, мають набагато більше користі для Google Go, ніж Ruby On Rails, принаймні в деяких контекстах.
Я зазирнув у Го, коли почув про це. Як повний початківець я все ще вивчаю мови для початківців (у моєму випадку Java, C #, Python та Scheme), які можна багато взяти на себе, але якби я не захопився такою кількістю різних мов, я б серйозно подумав
Я думаю, що на своєму рівні немає шкоди в тому, щоб знизити основи перед стрибком на естакадах. Хоча, якщо я добре пам’ятаю, коли я дивився вгору, я чомусь дуже приваблював Ерланг.
Я тільки що дивився на Go через це питання, тому я не можу коментувати, чи не буде він виходити як основна мова, але одна річ мене дуже схвилювала:
http://golang.org/doc/go_spec.html#Channel_types
Я вперше натрапив на концепцію каналів в Occam-pi, і мушу сказати, що це одна з найкращих концепцій програмування коли-небудь . Це робить одночасність здається такою простою, коли робити те саме на мові типу С іноді може бути болем.
З того, що я бачив (за 10 хвилин, які я подивився), Go виглядає, що намагається поєднати багато різних програм програмування, але це ризикує бути Джеком всіх торгів, майстрам жодної.
Я підозрюю, що чи стане вона мейнстрімом, залежатиме від того, чи сприйнять Google її як підтримувану мову для аппендину та / або GWT.
Бажаю, щоб Go став популярним.
Він сильний у синтаксисі. (Дізнайтеся про переваги у python, C, Java). Це добре для багатоядерного процесора. (Канал функціонує набагато краще, ніж програмування потоків). Дизайн запобігає падінню багатьох програмістів. (неправильний вказівник, той самий стиль кодування інструментом gofmt, запобігання змінному неініціалізованому помилку. Спочатку я спершу спробую це як python + C, але зі швидкістю близько 1/2 швидкості C.
Але, після глибокого вивчення, я виявив, що це може бути зручним для розвитку відмовостійкості та масштабованої архітектури
after
робити?