Yura
В Го ксть больше способов выстрелить себе в ногу, чем в Java, но все-таки сложнее, чем в большинстве других языков.
Anonymous
а го он вообще для чего?
Yura
Ну насколько я понял в го довольно толстые бинарники
Не понял, при чем тут "управляемость кода"
Yura
а го он вообще для чего?
В основном, для любых сетевых сервисов. Точно пока что не доя gui, и с высшей математикой пока напряги.
🏳️ Phil
из-за всяких GC
вообще нет. Go не использует динамические библиотеки и абсолютно всё льет в себя
Anonymous
Точнее он же не в одной с ними нише?
Yura
Вроде интересно, но С++ и Си он не заменит?
Если тебе нужно выжать каждый такт, то не заменит. Если хочешь написать в три раза быстрее пожертвовав третью производительности цпу, то вполне заменяет
Yura
Я, например, выкинул nginx и звменил его серваком на Go. Раздает видео на video.mail.ru . Считается это заменой C/C++ ?
Anonymous
это смысл?
Yura
К чести признать, одноклассники сделали тоже самое, но на Java.
🏳️ Phil
Если тебе нужно выжать каждый такт, то не заменит. Если хочешь написать в три раза быстрее пожертвовав третью производительности цпу, то вполне заменяет
Ну не третью. Ладно уж. Так скажем оно сильно быстрее того же твистед или gevent на питоне получается аж на глаз заметно
Yura
это смысл?
В то время, когда я это делал, nginx многое не умел из того, что нужно было. И часть до сих пор не умеет.
Anonymous
Но учить его вторым к питону, не вариант?
Yura
Но учить его вторым к питону, не вариант?
Почему? Они очень похоже по духу.
Roman
вообще нет. Go не использует динамические библиотеки и абсолютно всё льет в себя
я насколько понял это не ненадолго, с версии 1.8 появились плагины, это ничто иное как shared library, ddl, so, называю как угодно
Мерль
Вроде интересно, но С++ и Си он не заменит?
Он заменит (уже много где заменил) их в области производительных веб сервисов. Он гораздо проще, на нём проще писать асинхронный код и сложнее выстрелить себе в ногу
Yura
Ты найдешь Go вполне родным для себя, если знаешь Python и хоть немного C.
🏳️ Phil
Мы against C/C++ говорим, а не Python.
Ну это все равно не треть
hamper 𓅝
Мне кажется как замена всяким сям лучше раст подойдет (драйверы всякие писать или бд всякие), а го для вебсервисов и утилит разных удобен, там где раньше ноджс использовался например.
Yura
Ну это все равно не треть
Я специально уточнил "по ЦПУ"
Yura
Если сервис стоит в io, то разница будет минимальна.
🏳️ Phil
Я специально уточнил "по ЦПУ"
так по ЦПУ тоже не треть. с какого будунища-то треть?
Roman
Точнее он же не в одной с ними нише?
в некой степени Go заменяет C/C++, но только в определённых направлениях, часто это серверный софт (не во всех сферах естественно, C++ возможно ещё лет 20 ничто не заменит полностью)
Anonymous
А что с джавой?
🏳️ Phil
Из личного опыта.
"на донышке" :))) Но давай потеотеризируем. Там в плюсе только рантайм. Треть ли это?
Yura
На С можно написать в полтора раза производительнее, но писать придется в два-три раза дольше
🏳️ Phil
А почём ты мой опыт меряешь?
ммм... стандартные 30?
Yura
ммм... стандартные 30?
Прости, что значит "сиандартные 30"?
🏳️ Phil
Прости, что значит "сиандартные 30"?
30 серебрянников :) Ты спросил почем, я назвал стандартную мзду для таких штук
🏳️ Phil
так ладно, мне надоело в кофе-хаузе, пойду домой ;)
Yura
Приятного вечера!
ainu
Легко. noga, err := nogostrel.Shoot()
ainu
Стреляй по ногам как хочешь, но не забывай err проверять
ainu
Это я сарказмирую. Не видел языка, где сложнее выстрелить в ногу.
Kirill
import java.lang.reflect.Field; public class Main { public static void main(String[] args) throws Exception { Class cache = Integer.class.getDeclaredClasses()[0]; Field c = cache.getDeclaredField("cache"); c.setAccessible(true); Integer[] array = (Integer[]) c.get(cache); array[132] = array[133]; System.out.printf("%d", 2 + 2); } }
ainu
Что это? Почему 132=133?
Kirill
Kirill
итого — 2 + 2 = 5
Anonymous
Хотите сказать, что в ГО такого нет?)
Kirill
Хотите сказать, что в ГО такого нет?)
ну — покажи, раз думаешь, что есть
ainu
Хотите сказать, что в ГО такого нет?)
Сделай код который который заставит 2+2 вернуть 5
Anonymous
пример же не 2 + 2
Kirill
пример же не 2 + 2
пример — именно 2 + 2 = 5
ainu
А я знаю как:)
Kirill
А я знаю как:)
игрища с utf?
ainu
Import f fmt type fmt struct {} func (f fmt) Println (){ f.Println(5) } fmt.Println(2+2)
ainu
Тьфу f повторилось но суть понятно
Kirill
так-то и nil переопределяли
ainu
Это целенаправленное прицеливание в ногу с предварительной подготовкой
Kirill
ainu
На самом деле
ainu
https://play.golang.org/p/KO-KBTcVbC
ainu
На этом можно сыграть
ainu
На целочисленности
ainu
https://play.golang.org/p/SgDRPXPz2K
Kirill
ты видел, в каком ты чате?
ainu
defer func(){ recover() }()
Roman
ты видел, в каком ты чате?
бляха муха, читай контекст, был приведён пример, что мол если не проверишь ошибку то undefined behaviour noga, err := nogostrel.Shoot()
Kirill
если не проверишь ошибку — не соберется
Roman
если не проверишь ошибку — не соберется
разве? а помоему ошибку можно и игнорировать, но проблема в том что если с возвратными данными продолжить работу то получится undefined behaviour
Roman
вполне оправданная причина, случай в котором можно выстрелить себе в ногу
ainu
Вот в пхп, яваскрипт можно выстрелить в ногу при помощи. If md5($pass) =="0abacab22..."
ainu
Из-за нюансов в преобразовании типов
ainu
В go даже int и uint не сравнишь
Kirill
и люди пошли делать довольно уродские if (true == $abc)
Roman
https://play.golang.org/p/G1_DNE9bEX
в твоём случае это unused variable, это не считается, взгляни на мой вариант: https://play.golang.org/p/5Ay4ObtgkP
Anonymous
А да, ещё вопрос
Anonymous
Го же можно под ведроид?