
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
вполне оправданная причина, случай в котором можно выстрелить себе в ногу

Kirill
12.03.2017
20:13:06

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

Diskord
12.03.2017
20:24:21
А да, ещё вопрос
Го же можно под ведроид?

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

Google

Ighar
12.03.2017
20:27:14

Roman
12.03.2017
20:27:44
cordova?

Ighar
12.03.2017
20:28:12

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

Ighar
12.03.2017
20:30:30

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

Diskord
12.03.2017
20:31:50
Он сокращает время разработки?

Kirill
12.03.2017
20:33:31

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, это чрезвычайно опасно, например можно неправильные данные, т.е. мусор записать в БД или ещё какую нибудь хрень вернуть просто изза забытой проверки ошибки
по всей видимости эта библиотека экспериментальная ("The Go Mobile project is experimental"), я бы не стал на ней серьёзное решение пилить, лишь разве побаловаться


Semyon
13.03.2017
04:07:40

Google

Andrew
13.03.2017
04:42:35

Олег
13.03.2017
05:11:06

Мерлин
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 маст хев

Phil
13.03.2017
11:16:41

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
Например, от того, что (к примеру) в яндексе будут кодить на js, мне никаким боком (разве что яндекс не будет выкладывать на github написанные по пути либы и багрепортить в апстирим)...

Мерлин
13.03.2017
11:59:08
(хотя в случае js не понятно куда дальше)

Google

Phil
13.03.2017
11:59:41

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 сравнивать вообще нельзя, разные ниши, разные технологии, разные языки

N
13.03.2017
12:20:55

Roman
13.03.2017
12:21:51

N
13.03.2017
12:22:43
планировщик и его процессы в 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 обновить