@gogolang

Страница 179 из 1630
Kirill
12.03.2017
20:08:39
ты видел, в каком ты чате?

ainu
12.03.2017
20:10:37
defer func(){ recover() }()

Roman
12.03.2017
20:10:40
ты видел, в каком ты чате?
бляха муха, читай контекст, был приведён пример, что мол если не проверишь ошибку то undefined behaviour noga, err := nogostrel.Shoot()

Kirill
12.03.2017
20:10:59
если не проверишь ошибку — не соберется

Google
Roman
12.03.2017
20:11:59
если не проверишь ошибку — не соберется
разве? а помоему ошибку можно и игнорировать, но проблема в том что если с возвратными данными продолжить работу то получится undefined behaviour

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

ainu
12.03.2017
20:13:36
Вот в пхп, яваскрипт можно выстрелить в ногу при помощи. If md5($pass) =="0abacab22..."

Из-за нюансов в преобразовании типов

В go даже int и uint не сравнишь

Kirill
12.03.2017
20:14:29
и люди пошли делать довольно уродские if (true == $abc)

Roman
12.03.2017
20:23:02
https://play.golang.org/p/G1_DNE9bEX
в твоём случае это unused variable, это не считается, взгляни на мой вариант: https://play.golang.org/p/5Ay4ObtgkP

Diskord
12.03.2017
20:24:21
А да, ещё вопрос

Го же можно под ведроид?

Roman
12.03.2017
20:26:15
Го же можно под ведроид?
в смысле на андройд? нет смысла, тут уже писали что Go для GUI приложений не подходит, поскольку у него нет библиотек и прочего связанных с GUI

нет доступка к Android API, нет SDK

Google
Roman
12.03.2017
20:27:44
cordova?

Ighar
12.03.2017
20:28:12
cordova?
вот хз, наверное плагины, да

Roman
12.03.2017
20:29:34
вот хз, наверное плагины, да
не знаю насколько они хорошо поддерживают Android АPI, но если ты из Web то тебе действительно будет легче на HTML5 писать приложение, Go тут совсем не причём, он тут негоден

Roman
12.03.2017
20:30:50
мы разрабатываем приложение на C++ Qt, отличная среда для GUI приложений, а Go мы используем в бэкэнде для серверной части

Greg
12.03.2017
20:34:13
В одну сторону

Ибо в другую - адь

Roman
12.03.2017
20:34:48
1. он прост, когда у тебя команда из более десятка разработчиков и все они разного уровня опыта и знаний то Go действительно наиболее продуктивен, ов нём нет сложных элементов современных языков, нет отвественности за память (memory management), модульность и пакеты 2. он достаточно производительный и не жрёт память как Java 3. на нём легко писатъ конкуррентные системы, когда у тебя на нескольких ядрах разные асинхронные процессы, которые порой пересекаются и т.д. короче concurrent programming

в твоем примере уже естественный отбор
ну я согласен что такое бывает чрезвычайно редко.. я тоже не вижу в этом проблемы, когда программист не имбицил то он не забудет проверить ошибку, но тем не менее, сам язык позволяет undefined behaviour, в C++ если не словить exception то будет просто крах, а тут не крэш а undefined behaviour, это чрезвычайно опасно, например можно неправильные данные, т.е. мусор записать в БД или ещё какую нибудь хрень вернуть просто изза забытой проверки ошибки

не дезинформируй, есть gomobile
возможно тут я не прав конечно, вопрос лишь в надёжности даноого middleware'а, можно ли доверять

по всей видимости эта библиотека экспериментальная ("The Go Mobile project is experimental"), я бы не стал на ней серьёзное решение пилить, лишь разве побаловаться

В go даже int и uint не сравнишь
а зачем сравнивать? компилятор не позволит тебе мешать типы

Semyon
13.03.2017
04:07:40
если не проверишь ошибку — не соберется
Ну вот чего ты обманываешь-то, про _ тактично забыл?

Google
Andrew
13.03.2017
04:42:35
Ну вот чего ты обманываешь-то, про _ тактично забыл?
Ну вот чего ты обманываешь то! Не проверил ошибку - ошибка компилятора. А '_' - это не 'не проверил', а 'специально проигнорировал'.

Мерлин
13.03.2017
06:55:38
Ну вот чего ты обманываешь то! Не проверил ошибку - ошибка компилятора. А '_' - это не 'не проверил', а 'специально проигнорировал'.
На самом деле ничто не мешает мне забить на ошибку как специально, так и случайно, если это единственное возвращаемое значение

Andrew
13.03.2017
06:56:39
Тоже верно.

Похоливарим? https://m.habrahabr.ru/company/wrike/blog/323550/

Constantine
13.03.2017
11:12:34
дарвин и программирование

ты уверен, что стоит это читать?)

врайк конечно хороши, у меня заочный знакомый там работает. но я хз )

ainu
13.03.2017
11:12:53
Я почитал. Там мало и неочём

Constantine
13.03.2017
11:13:19
ну вот. доверюсь мнению коллеги

Max
13.03.2017
11:13:19
А о чем холиварить?

Constantine
13.03.2017
11:13:30
в интернете кто-то не прав

Max
13.03.2017
11:13:44
в интернете кто-то не прав
А в чем не прав то?

ainu
13.03.2017
11:14:02
TL;DR: Следующего большого языка программирования не предвидится Похоже, что дело обстоит именно так. Новых естественных островов, на которых мог бы закрепиться свежий лидер, похоже не планируется, а эксперименты по созданию новых языков не могут побороть инертность индустрии разработки. Пожалуй, это не так уж и плохо.

Constantine
13.03.2017
11:14:05
придумай сам )

ainu
13.03.2017
11:14:09
Мейнстримные языки с нами всерьез и надолго, и их знание всегда пригодится. При этом, новые языки вроде Rust или Go тоже имеют перспективу, возможно, не как замена всего и вся, но как инструмент для решения интересных задач.

Constantine
13.03.2017
11:14:12
в чем )) в этом и суть холиваров )

ainu
13.03.2017
11:14:15
Поехали.

Constantine
13.03.2017
11:14:24
да фигня

голанг загнется через пару лет

Google
Constantine
13.03.2017
11:14:39
раст тоже

во фронтенде будет elm

Phil
13.03.2017
11:14:52
а давно вы вообще свежий язык программирования видели?

Constantine
13.03.2017
11:14:56
в бекенде все те же игроки, типа питона

наркоманы обколятся хаскелом и будут на нём писать. староверы на кложе

jvm маст хев

Anton
13.03.2017
11:17:42
~ 9 лет go, не?

Max
13.03.2017
11:17:59
8, судя по вики

Phil
13.03.2017
11:18:06
нет

ну т.е. чисто формально да

если не учитывать, что это мажорная версия Alef 1992 года

Мерлин
13.03.2017
11:23:55
Имхо, Go как ЯП вообще хоть как-то стал попуоярен только последние года три

Phil
13.03.2017
11:24:28
с докером примерно

Мерлин
13.03.2017
11:25:36
У меня вообще есть гипотеза, что кажому новому языку нужен свой "докер"

в смысле, продукт для программистов, который будет "продавать" этот язык ещё неохваченным кодерам

Andrew
13.03.2017
11:47:45
У меня вообще есть гипотеза, что кажому новому языку нужен свой "докер"
Ну не знаю, мне кажется, что успех Go с докером не связан.

Например, от того, что (к примеру) в яндексе будут кодить на js, мне никаким боком (разве что яндекс не будет выкладывать на github написанные по пути либы и багрепортить в апстирим)...

Мерлин
13.03.2017
11:59:08
Например, от того, что (к примеру) в яндексе будут кодить на js, мне никаким боком (разве что яндекс не будет выкладывать на github написанные по пути либы и багрепортить в апстирим)...
То, что в яндексе кодят на js, тебе конечно пофигу. А вот если на js была бы написана какая-нибудь убер крутая система, скажем, для артефактов, которую конечно же надо настраивать с помощью скриптов на js, то это дало бы нехилый буст к популярности этого языка

(хотя в случае js не понятно куда дальше)

Google
Phil
13.03.2017
11:59:41
У меня вообще есть гипотеза, что кажому новому языку нужен свой "докер"
так оно и есть. даже термин есть killer app. тот же руби до бейзкамра и RoR был никому ненужной пародией на перлопитон

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

Andrew
13.03.2017
12:07:04
У меня зашёл когда я о нём начитался на хабре. Кто тамошним авторам проплатил - не знаю ?

Roman
13.03.2017
12:18:53
посмотрел я на Swift GCD, самая обычная future библиотека, насколько я понимаю если гоурутину заблокировать runtime автоматически отложет её в сторону и будет выполнять другие гоурутины пока та не проснётся, в GCD такого нет, там если задание на dispatch queue выполняется и делает например syscall или запрос на бд то блокирует основной системный поток на котором исполняется, в это время другой work элемент не может выполняться, бредятина

в очередной раз убеждаюсь что Swift и Go сравнивать вообще нельзя, разные ниши, разные технологии, разные языки

Roman
13.03.2017
12:21:51
во-первых на сисколах блокируется все и везде на время выполнения. в остальном тоже не все так как ты пишешь
когда syscall блокирует горутину golang scheduler переключается на другие гоурутины чтоб не блокировать процессор

N
13.03.2017
12:22:43
когда syscall блокирует горутину golang scheduler переключается на другие гоурутины чтоб не блокировать процессор
и тут не так работает все. шедулер отцепляет этот P-процесс, который выполняется в отдельном системном треде и создает новый системный тред и процесс шедулера

планировщик и его процессы в Go работают поверх обычных системных ниток, ничем работа в этих нитках не отличается от работы в нитках в Swift. сискол блокирует системную нитку хоть тресни и это не меняется нигде

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

если говорить про Swift то там очереди есть serial и concurrent

Мерлин
13.03.2017
12:27:44
На самом деле для меня главной причиной, по которой я мало интересуюсь свифтом , это то, что с инструментарием под что-то, кроме макоси, у него швах

так-то язык очень интересный

(хотя руст гораздо привлекательнее, да)

N
13.03.2017
12:29:33
(хотя руст гораздо привлекательнее, да)
да, но не лежит душа у меня к нему, уж очень не по душе минимализм так скажем языка - все на каких-то сокращениях

Roman
13.03.2017
12:30:58
может быть syscall'ы действительно блочат системные потоки, но всё остальноё - нет

N
13.03.2017
12:35:41
может быть syscall'ы действительно блочат системные потоки, но всё остальноё - нет
потому что сеть в Go работает поверх IOCP/epool/kqueue, там блокировки хоть и есть но очень незаметные на системные вызовы связанные с тем, что я перечислил. Тоже самое делается и под Swift без проблем. Все везде одинаково, магии никакой в Go нет. На момент любого системного вызова поток приостанавливается на время его выполнения будь то 1ns или 1sec

Roman
13.03.2017
12:36:54
ну а как-же context switching? когда в Go только 3 регистра меняются в то время как меняя системный поток нужно 16 обновить

Страница 179 из 1630