Re[14]: каналы и GC
От: so5team https://stiffstream.com
Дата: 17.10.18 09:33
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>>>Очень легко получить циклические ссылки.

S>>В каналах? Каким образом?
C>В коде, который их использует.

Каким боком это должно подтверждать выдвинутый ранее тезис: "Это всё вполне возможно на С++, хотя каналы будет немного сложно сделать без полноценного GC." ?
Re[22]: Go язык прёт?
От: Cyberax Марс  
Дата: 17.10.18 09:38
Оценка:
Здравствуйте, C0x, Вы писали:

C0x>>>libc так плоха?

C>>Да.
C0x>Чем?
Если быть точным, glibc плоха. Если скомпилировать обычное приложение на машине с Ubuntu 18.04, то оно не запустится на Ubuntu 16.04 из-за того, что символы в glibc версированы. Сейчас есть musl libc и Alpine, на которых тоже можно собрать статические С++ приложения, но это требует немалых прыжков и ужимок.

С Golang можно тупо скопировать один файл приложения и оно запустится.

Вдобавок, кросс-компиляция выглядит вот так: "GOOS=linux go build ...". Первыми у нас это заценили инженеры — можно написать и отладить код симуляции локально на MacBook, сделать бинарик и одной командой зафигачить на кластер на реальных данных.
Sapienti sat!
Re[15]: каналы и GC
От: Cyberax Марс  
Дата: 17.10.18 09:39
Оценка:
Здравствуйте, so5team, Вы писали:

C>>В коде, который их использует.

S>Каким боком это должно подтверждать выдвинутый ранее тезис: "Это всё вполне возможно на С++, хотя каналы будет немного сложно сделать без полноценного GC." ?
Нужно было написать: "Хотя код, активно использующий каналы иногда бывает сложно писать без GC".
Sapienti sat!
Re[16]: каналы и GC
От: so5team https://stiffstream.com
Дата: 17.10.18 09:42
Оценка: +1
Здравствуйте, Cyberax, Вы писали:

S>>Каким боком это должно подтверждать выдвинутый ранее тезис: "Это всё вполне возможно на С++, хотя каналы будет немного сложно сделать без полноценного GC." ?

C>Нужно было написать: "Хотя код, активно использующий каналы иногда бывает сложно писать без GC".

С таким же успехом можно было написать и "Хотя код, активно использующий динамическую память, иногда бывает сложно писать без GC".

К CSP-шным каналам отсутствие/наличие GC имеет очень косвенное отношение.
Re[23]: Go язык прёт?
От: C0x  
Дата: 17.10.18 10:34
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>С Golang можно тупо скопировать один файл приложения и оно запустится.


C>Вдобавок, кросс-компиляция выглядит вот так: "GOOS=linux go build ...". Первыми у нас это заценили инженеры — можно написать и отладить код симуляции локально на MacBook, сделать бинарик и одной командой зафигачить на кластер на реальных данных.


Кстати именно из за этого я и выбрал Го для своего проекта. Работаю на Винде, а собираю под линухи и копирую по фтп.
Re[31]: Go язык прёт?
От: StanislavK Великобритания  
Дата: 17.10.18 14:35
Оценка:
Здравствуйте, Hardballer, Вы писали:


SK>>Все равно не понятно. Без проблем можно кучу коннектов в одном потоке рулить. Как не крути потоки только лейтенси добавляют.

H>Добавляют только в том случае, если потоков больше физических ядер.
Вот и вопрос — нафига? Зачем иметь больше потоков, чем физических ядер?

H>Но это пока 384 ядра, года через 3-4 будет и 1024 физических ядер в рамках одного сервера.

Это совсем не противоречит тому, что я говорю. Я говорю, что потоков больше чем ядер быть не должно. Я не не говорил, что их должно быть меньше.
Если система проектирутеся так, что потоков больше, чем ядер, это всегда подразумевает как минимум переключение контекста и как максимум синхронизацию. И то и то — зло.

H>А мы к этому уже готовы сейчас, вот дайте такое железо-я это все эффективно, без переделки кода (чуть конфиги только крутану)-освою на все 100%.

H>Тема холиварная и все такое, поэтому дальше спорить не вижу смысла, но я уже сейчас готов к росту количества ядер в CPU в будущих серверах, все утилизирую начисто
Да нет, тут дело не в холиваре совсем. Честно я просто что-то не понию, вот и пытаюсь узнать. Может научусь чему-нить.
Re[23]: Go язык прёт?
От: m2l  
Дата: 17.10.18 18:04
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>С Golang можно тупо скопировать один файл приложения и оно запустится.

C>Вдобавок, кросс-компиляция выглядит вот так: "GOOS=linux go build ...". Первыми у нас это заценили инженеры — можно написать и отладить код симуляции локально на MacBook, сделать бинарик и одной командой зафигачить на кластер на реальных данных.
+1

И с внешними зависимостями здорово — тупо скопировал gohome и всё. Никаких развлечений с разными окружениями.
Re[11]: Go язык прёт?
От: m2l  
Дата: 17.10.18 18:18
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Планировщик, каналы и прочая обвязка есть в Boost.Fiber.

EP>То есть в Boost есть три библиотеки на тему stackful, начиная от низкого к более высокому уровню: Boost.Context, Boost.Coroutine, Boost.Fiber.
С тем же успехом все это достижимо и на чистом С, без плюсов и boost-а. Просто стоимость такого кода больше аналогичной функциональности в golang.
Re[23]: Go язык прёт?
От: Тёмчик Австралия жж
Дата: 18.10.18 00:03
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Вдобавок, кросс-компиляция выглядит вот так: "GOOS=linux go build ...". Первыми у нас это заценили инженеры — можно написать и отладить код симуляции локально на MacBook, сделать бинарик и одной командой зафигачить на кластер на реальных данных.

Когда-то кросс-компилировал C++ код под убунтой, это были кусочки для win32, lin 32, lin 64, mac i 64 и mac ppc 32, mac ppc 64- они складывались в жава апплет и оттуда дергались в зависимости от оси/браузера. Нужно было установить кросс-компиляторный build chain из официальной репы.
Re[26]: Go язык прёт?
От: chaotic-kotik  
Дата: 18.10.18 06:10
Оценка:
Здравствуйте, ·, Вы писали:


·> Не надо использовать блокировки в высокопроизводительных системах.


Большую глупость о высокопроизводительных системах написать сложно. Захват и освобождение uncontended мьютекса выполняется примерно за 10нс.
Re[12]: Go язык прёт?
От: chaotic-kotik  
Дата: 18.10.18 06:19
Оценка:
Здравствуйте, Cyberax, Вы писали:

KP>>Из личного опыта последних 2-х лет: разы проще и требования к разработчикам на Go на порядок ниже чем к плюсовым.

C>И при это Go-шники делают такой же качественный код.

Побуду адвокатом дьявола (не имею ничего против Go). Недавно зашел в группу по golang в telegram. Вы бы почитали их обсуждения. Это какое-то днище. Люди не знают даже стандартной библиотеки Go нормально, у большинства очень узкий кругозор и какие-то очень странные представления об окружающем мире. Из смешного, они тащат в проект только то, что написано на Go, например https://github.com/siddontang/ledisdb вместо Redis и BoltDB вместо LMDB. Судя по всему, основной контингент там состоит из бывших PHP/Ruby/Python/etc программистов.
Re[19]: Go язык прёт?
От: chaotic-kotik  
Дата: 18.10.18 06:32
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>1) Возможность полной независимости от libc.


это скорее минус, что будешь делать если ABI linux изменится?
Re[15]: Go язык прёт?
От: chaotic-kotik  
Дата: 18.10.18 06:39
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Благодаря макросам этот стиль структурно не сильно отличается от stackful корутин — это то что было уже давно.

EP>А сейчас, в нескольких мейнстрим компиляторах уже реализованны предложения stackless, причём уже несколько версий назад.

У корутин в С++ есть очень большой минус — отладка. Стектрейсов либо нет, либо в них невозможно ничего понять. Многие инструменты отладки не работают нормально с stackful корутинами, valgrind и санитайзеры могут довать false positives.
Re[13]: Go язык прёт?
От: Тёмчик Австралия жж
Дата: 18.10.18 07:00
Оценка:
Здравствуйте, chaotic-kotik, Вы писали:

CK>у большинства очень узкий кругозор и какие-то очень странные представления об окружающем мире.


У меня такое впечатление об идейных плюсниках. Огульно поливают всё, что не их божественный C++, значительная часть верует в исключительную скорость C++, при этом не знает базовых вещей CS как big-O, основные структуры данных и т.п.
Re[14]: Go язык прёт?
От: so5team https://stiffstream.com
Дата: 18.10.18 07:07
Оценка:
Здравствуйте, Тёмчик, Вы писали:

Тё>У меня такое впечатление об идейных плюсниках. Огульно поливают всё, что не их божественный C++, значительная часть верует в исключительную скорость C++, при этом не знает базовых вещей CS как big-O, основные структуры данных и т.п.


Высказал свое веское мнение спешиалистЪ, который Visitor освоил только проходя собеседование в 2016-ом году. Возможно, это мнение у вас сложилось поскольку вы общаетесь в среде себе подобных.
Re[15]: Go язык прёт?
От: Тёмчик Австралия жж
Дата: 18.10.18 07:13
Оценка:
Здравствуйте, so5team, Вы писали:

Тё>>У меня такое впечатление об идейных плюсниках. Огульно поливают всё, что не их божественный C++, значительная часть верует в исключительную скорость C++, при этом не знает базовых вещей CS как big-O, основные структуры данных и т.п.


S>Высказал свое веское мнение спешиалистЪ, который Visitor освоил только проходя собеседование в 2016-ом году. Возможно, это мнение у вас сложилось поскольку вы общаетесь в среде себе подобных.


О, типичный представитель нарисовался. Выучил названия, но ничего не понял.
Re[16]: Go язык прёт?
От: so5team https://stiffstream.com
Дата: 18.10.18 07:31
Оценка:
Здравствуйте, Тёмчик, Вы писали:

Тё>О, типичный представитель нарисовался.


Какие ваши доказательства?

Тё>Выучил названия, но ничего не понял.


Очень сложно понять как спешиалистЪ вроде вас, много лет говорящий про то, что он программирует на C++ и на Java, не знал про Visitor столько лет. Ладно бы вы на функциональных языках программировали, а про C++/Java только слышали краем уха. Так ведь нет.

Пожалуйста, объясните, как вам это удалось? Вероятно, работали в крупных конторах с хорошо налаженными процессами и эффективным менеджментом?
Отредактировано 18.10.2018 7:40 so5team . Предыдущая версия .
Re[13]: Go язык прёт?
От: C0x  
Дата: 18.10.18 07:43
Оценка:
Здравствуйте, chaotic-kotik, Вы писали:

CK> Из смешного, они тащат в проект только то, что написано на Go, например https://github.com/siddontang/ledisdb вместо Redis и BoltDB вместо LMDB. Судя по всему, основной контингент там состоит из бывших PHP/Ruby/Python/etc программистов.


Не знаю какую ты группу имеешь ввиду, возможно ту которая относится к курсу Go на Coursera. Я лично там писал что выбрал Го в частности из-за bbolt (аля boltDb).
Можешь смеяться сколько хочешь, а я вот объясню свою логику выбора: хочется не иметь НИКАКИХ внешних зависимостей в проекте! Хочется просто тупа скопировать 2 файла на новую VPS и сервис должен работать дальше, лучше и еще быстрее. Да вот такие у меня требования к момему собственному проекту! Хочу чтобы я тратил на развертываение 2 шага: купил VPS, скопировал файлы и запустил!

bbolt выбрал исключительно потому-что это первая ссылка которую выдает Гугл по встроенным базам в Го. По описанию я понял, что меня лично она устраивает. Искал какие-нибудь тесты, не нашел ничего толкового. Решил буду сам тестировать.


PS> Не нужно всех вокруг и в частности в сообществе Го считать идиотами. У многих есть конкретные требования и они стараются в них вписаться. А уж поверь и на Си и на SQL писать многие там тоже умеют. Я лично считаю признаком идиотизма и низкой квалификации если Сишник будет создавать Вэбсервис на Си, только потому-что он крутой Сишник.
Re[12]: Go язык прёт?
От: Sharov Россия  
Дата: 18.10.18 09:17
Оценка:
Здравствуйте, m2l, Вы писали:

m2l>С тем же успехом все это достижимо и на чистом С, без плюсов и boost-а. Просто стоимость такого кода больше аналогичной функциональности в golang.


А чем реализация в голанг на том же С будет лучше реализации на С для С?
Кодом людям нужно помогать!
Re[17]: Go язык прёт?
От: Тёмчик Австралия жж
Дата: 18.10.18 10:30
Оценка:
Здравствуйте, so5team, Вы писали:

Тё>>О, типичный представитель нарисовался.


S>Какие ваши доказательства?


Тё>>Выучил названия, но ничего не понял.


S>Очень сложно понять как спешиалистЪ вроде вас, много лет говорящий про то, что он программирует на C++ и на Java, не знал про Visitor столько лет. Ладно бы вы на функциональных языках программировали, а про C++/Java только слышали краем уха. Так ведь нет.


S>Пожалуйста, объясните, как вам это удалось? Вероятно, работали в крупных конторах с хорошо налаженными процессами и эффективным менеджментом?


Я Вам уже в который раз пытаюсь донести, что «знать про визитор» и «знать визитор»- две большие разницы. Примерно как Оля «знает про C++», а Петя «знает C++». Но Вы слишком узко-кругозорный, чтобы понять.

И кстати про C++ с Java- этим список далеко не ограничивается. Только вот на Go ещё не довелось.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.