Здравствуйте, Zoringo, Вы писали:
Pzz>>Ну вообще-то говоря, понимание того, что написано в этих бумажках, не требует знания ни теории чисел, ни дискретной математики. Да и математиком быть не обязательно для понимания этих документов
Z>Дада, для того что б написать это обычно достаточно троля с форума, но мы не ищем легких путей)
Ну видишь ли, я действительно понимаю, что написано в этих бумажках. А с теорией чисел знаком весьма поверхностно.
А назвав меня троллем, ты показал, что 1) ты не можешь навести хотя бы поверхностные справки о собеседнике 2) ты дурно воспитан. Полагаю, свою репутацию ты тем самым слегка подпортил.
Здравствуйте, Pzz, Вы писали:
Pzz>А что в нем, простите, кроссплатформенного? Pzz>Нет, ну я не спорю, "Hello, World" на нем можно написать кроссплатформенно. Но ты попробуй написать на нем, ну, к примеру, програмку, которая делает HTTP-запросы, и что-нибудь полезное делает с ответами. Запросов делает много. Реально много. И по разным адресам. И чтобы работало одинаково хорошо в линухе и в венде.
Вот это да! А что кроме С++? Я серьёзно, без троллинга. C++ и boost.asio. Можно Qt взять.
На С++ сетевые системы безопасности и видеонаблюдения делают, всё только на нём. Видео, посланное по udp (с потерями) восстанавливают до смотрибельного состояния. Это уже посложнее, чем просто http.
Здравствуйте, Zoringo, Вы писали:
N>>Ну так это говорит нам только о том, что они не особо программировать умеют, потому, что сложно быть хорошим специалистом в двух сферах одновременно. N>>Я вот тоже систематически пишу на 10 языках — тонкости всех в голове не умеющаются, поэтому все, кроме с++ используются в относительно упрощённой форме.
Z>Весьма поверхностное суждение.
Опыт.
Z>Из последнего с чем сталкивался — lmdb, написана на С, не так давно, разработчик безусловно очень талантливый, просто взрослый дядечка.
Ну это же не говорит, что то, что он написал будет легко поддерживать и развивать? Нет никакого смысла использовать С, если есть техническая возможность использовать С++, это как бегать с одной стреноженной ногой — как хобби ок, но из бизнеса таких нужно гнать. Ну или не гнать, просто учитывать, что человек скорее алгоритмист, чем толковый программист — просто реально не каждому дано понять почему из деструкторов нельзя кидать исключения.
Здравствуйте, Nikе, Вы писали:
N>Здравствуйте, Zoringo, Вы писали:
Z>>Вы утверждали что они не умеют программировать, и я возразил с конкретным примером. N>Я сказал "не особо". N>В смысле, что они делают это хуже, чем проф.программисты: дороже из-за неэффективной разработки, сложной поддержки и меньшей управляемости кода.
"чем проф.программисты" ?)
Те те кто пишет на С — это по определению не проф.программисты?
снобизм такой некислый)
На мой взгляд они не менее профессиональные чем все остальные, хотя сам я именно на С++ программирую уже 17 лет как.
И про С++ можно сказать на самом деле все тоже самое — дорого, долго, поддерживать сложнее. Да задач требующих именно С++ осталось очень мало.
Здравствуйте, Nikе, Вы писали:
N>Здравствуйте, lpd, Вы писали:
lpd>>Неявность lock_guard это объективный недостаток, который усложняет чтения кода. N>Только для совершенно некомпетентных людей освоивших программирование на уровне школы.
На закрывающей скобке не написано, что она освобождает мьютекс, и что он вообще был захвачен. Поэтому lock_guard, как минимум, спорное нововведение. Я думаю, что оно не приживется, хотя стадный инстинкт многих программистов будет долго заставлять следовать за теми, кто это нововведение придумал, и использовать lock_guard где ни попадя.
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)
Здравствуйте, sergey2b, Вы писали:
N>>Ну так это говорит нам только о том, что они не особо программировать умеют, потому, что сложно быть хорошим специалистом в двух сферах одновременно. N>>Я вот тоже систематически пишу на 10 языках — тонкости всех в голове не умеющаются, поэтому все, кроме с++ используются в относительно упрощённой форме.
S>те вы хотите сказать человек не осилил
Ну а какие могут быть разумные причины? Либо оно должно запускаться на каком-то очень примитивном эмбедед, либо человек не осилил концепции языков высокого уровня.
Какие должны быть резоны у человека, чтобы писать скажем так:
Здравствуйте, Pzz, Вы писали:
Pzz>Ну вообще-то говоря, понимание того, что написано в этих бумажках, не требует знания ни теории чисел, ни дискретной математики. Да и математиком быть не обязательно для понимания этих документов
Здравствуйте, lpd, Вы писали:
N>>Твоя претензия к lock_guard говорит только и исключительно о плохом качестве оформления кода, похоже, что ты реализуешь огромные простыни с универсальными всемогутерами. lpd>Я предпочту немного более длинный код с unlock короткому, но сложному для пониманию.
Так я уже говорил про компетентность и уровень школьника.
Здравствуйте, sergey2b, Вы писали:
Pzz>>>Ну вообще-то говоря, понимание того, что написано в этих бумажках, не требует знания ни теории чисел, ни дискретной математики. Да и математиком быть не обязательно для понимания этих документов
N>>А ещё: С — кака.
S>если Си кака почему же тогда так активно используеться
Не только лишь все из тех, кто пытается программировать — реально в состоянии освоить его на уровне выше школьного?
Здравствуйте, Nikе, Вы писали:
N>Какие должны быть резоны у человека, чтобы писать скажем так:
Далеко не всегда блок фигурных скобочек совпадает с временем захвата мьютекса. И я лучше напишу unlock, чем буду добавлять специальный блок. Тем более, тогда бы пришлось каждый раз искать, где именно объявлен lock_guard, и был ли он вообще, т.к. в любом случае явные lock/unlock нагляднее неявных скобочек.
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)
Здравствуйте, Nikе, Вы писали:
N>С другой стороны, куча народа все эти html писали для себя, ок, это известная проблема неадекватной стандартной библиотеки для С++, однако, пусть даже у Go хорошая стандартная либа для html — если сервер должен не только его, но ещё и в логику — то тут С++ всё-равно выиграет, как более общий язык более высокого уровня.
Посмотри на любую свою достаточно большую программу. Какую долю ее занимает, собственно, логика, и какую — поддерживающая инфраструктура? Логика — это очень небольшая (но, возможно, сложная) часть кода. И (surprise!) вот именно для логики удобно использовать максимально простой язык программирования.
Под более высоким уровнем языка программирования обычно подразумевают степень его оторванности от абстракций, в терминах которых работает аппаратура компьютера. C++ — язык очень низкого уровня. Конечно, Go, с его встроенными прямо в язык ассоциативными таблицами, механизмом сопрограмм, каналами для коммуникаций между ними, с загнанной в гетто арифметикой указателей (которая там вообще нужна в очень редких случаях), с управлением памятью, не привязанной к стеку вызовов и сборкой мусора, с лямбдами и замыканиями — язык куда более высокого уровня, чем C++.
Желательно уметь написать документы еще более упоротые с точки зрения математики(английский не обязательно идеальный, есть кому вычитать если надо).
В общем полноценная научная работа полная приключений и экшина!
Рассматриваем разные варианты сотрудничества, но скорее всего начнем со сдельной формы оплаты.
Мы в принципе готовы рассматривать самые разные цифры, если говорить о частичной занятости то мы думаем о цифрах от 500$ до 5000$ в зависимости от профессионального уровня и понимания предметной области.
О нас: мы делаем "вот это все" с 2013-го года и мы НЕ занимаемся клонированием чужих блокчейн технологий, все то на чем мы базируем наши проекты написано нами с нуля.
Кстати, если вы опытный c/c++ разработчик с сильным бекграундом в криптографии(тогда вы скорее всего С разработчик) и с осторожностью интересуетесь "вот этим всем" — тоже можете написать.
Ну вообще-то говоря, понимание того, что написано в этих бумажках, не требует знания ни теории чисел, ни дискретной математики. Да и математиком быть не обязательно для понимания этих документов
Здравствуйте, Nikе, Вы писали:
N>Здравствуйте, Pzz, Вы писали:
Pzz>>Ну вообще-то говоря, понимание того, что написано в этих бумажках, не требует знания ни теории чисел, ни дискретной математики. Да и математиком быть не обязательно для понимания этих документов
N>А ещё: С — кака.
если Си кака почему же тогда так активно используеться
Здравствуйте, sergey2b, Вы писали:
N>>Не только лишь все из тех, кто пытается программировать — реально в состоянии освоить его на уровне выше школьного?
S>если посмотреть большенство секюрных проектов на Си S>в том числе и алгоритмически сложных
Ну так это говорит нам только о том, что они не особо программировать умеют, потому, что сложно быть хорошим специалистом в двух сферах одновременно.
Я вот тоже систематически пишу на 10 языках — тонкости всех в голове не умеющаются, поэтому все, кроме с++ используются в относительно упрощённой форме.
Здравствуйте, Pzz, Вы писали:
Pzz>Здравствуйте, Zoringo, Вы писали:
Z>>В общем мы разыскиваем математика, разбирающегося в криптографии, теории чисел, дискретной математике, понимающего к примеру о чем написано в таких документак как: Z>>https://lab.getmonero.org/pubs/MRL-0005.pdf Z>>http://zerocash-project.org/media/pdf/zerocash-oakland2014.pdf Z>>https://iota.org/IOTA_Whitepaper.pdf
Pzz>Ну вообще-то говоря, понимание того, что написано в этих бумажках, не требует знания ни теории чисел, ни дискретной математики. Да и математиком быть не обязательно для понимания этих документов
Дада, для того что б написать это обычно достаточно троля с форума, но мы не ищем легких путей)
Здравствуйте, sergey2b, Вы писали:
S>Здравствуйте, Nikе, Вы писали:
N>>Здравствуйте, Pzz, Вы писали:
Pzz>>>Ну вообще-то говоря, понимание того, что написано в этих бумажках, не требует знания ни теории чисел, ни дискретной математики. Да и математиком быть не обязательно для понимания этих документов
N>>А ещё: С — кака.
S>если Си кака почему же тогда так активно используеться
Главным образом по историческим причинам — в основном сильные низкоуровневые разработчики представители старой школы С, но я так же был свидетелем когда криптобиблиотека была написана на С человеком который С++ знает очень хорошо, на вопрос "почему" он сказал — "так принято". шах и мат)
Здравствуйте, Nikе, Вы писали:
N>Здравствуйте, sergey2b, Вы писали:
N>>>Не только лишь все из тех, кто пытается программировать — реально в состоянии освоить его на уровне выше школьного?
S>>если посмотреть большенство секюрных проектов на Си S>>в том числе и алгоритмически сложных
N>Ну так это говорит нам только о том, что они не особо программировать умеют, потому, что сложно быть хорошим специалистом в двух сферах одновременно. N>Я вот тоже систематически пишу на 10 языках — тонкости всех в голове не умеющаются, поэтому все, кроме с++ используются в относительно упрощённой форме.
Весьма поверхностное суждение.
Из последнего с чем сталкивался — lmdb, написана на С, не так давно, разработчик безусловно очень талантливый, просто взрослый дядечка.
Здравствуйте, Nikе, Вы писали:
N>Здравствуйте, Zoringo, Вы писали:
N>>>Ну так это говорит нам только о том, что они не особо программировать умеют, потому, что сложно быть хорошим специалистом в двух сферах одновременно. N>>>Я вот тоже систематически пишу на 10 языках — тонкости всех в голове не умеющаются, поэтому все, кроме с++ используются в относительно упрощённой форме.
Z>>Весьма поверхностное суждение. N>Опыт.
Z>>Из последнего с чем сталкивался — lmdb, написана на С, не так давно, разработчик безусловно очень талантливый, просто взрослый дядечка. N>Ну это же не говорит, что то, что он написал будет легко поддерживать и развивать? Нет никакого смысла использовать С, если есть техническая возможность использовать С++, это как бегать с одной стреноженной ногой — как хобби ок, но из бизнеса таких нужно гнать. Ну или не гнать, просто учитывать, что человек скорее алгоритмист, чем толковый программист — просто реально не каждому дано понять почему из деструкторов нельзя кидать исключения.
Вы утверждали что они не умеют программировать, и я возразил с конкретным примером.
То что С лучше чем С++ я не утверждал, а вы уже об этом начали спорить.... сами с собой)
Здравствуйте, Pzz, Вы писали:
Pzz>Здравствуйте, Zoringo, Вы писали:
Pzz>>>Ну вообще-то говоря, понимание того, что написано в этих бумажках, не требует знания ни теории чисел, ни дискретной математики. Да и математиком быть не обязательно для понимания этих документов
Z>>Дада, для того что б написать это обычно достаточно троля с форума, но мы не ищем легких путей)
Pzz>Ну видишь ли, я действительно понимаю, что написано в этих бумажках. А с теорией чисел знаком весьма поверхностно.
Pzz>А назвав меня троллем, ты показал, что 1) ты не можешь навести хотя бы поверхностные справки о собеседнике 2) ты дурно воспитан. Полагаю, свою репутацию ты тем самым слегка подпортил.
1. Я не называл тролем Вас, почему вы приняли это на свой счет — это остается вопросом
2. Я не называл Вас "на ты", поэтому дурно воспитаны скорее Вы чем я.
3. В данном случае справки наводить не было нужды, Ваш первый ответ был весьма красноречив, второй еще более)
Здравствуйте, Zoringo, Вы писали:
Z>Вы утверждали что они не умеют программировать, и я возразил с конкретным примером.
Я сказал "не особо".
В смысле, что они делают это хуже, чем проф.программисты: дороже из-за неэффективной разработки, сложной поддержки и меньшей управляемости кода.
Здравствуйте, Zoringo, Вы писали:
Z>2. Я не называл Вас "на ты", поэтому дурно воспитаны скорее Вы чем я.
Вы новенький на форуме и не знаете правил. Тут принято обращение на ТЫ. Обращение на ВЫ — это скорее: да кто ВЫ такой?
N>Ну так это говорит нам только о том, что они не особо программировать умеют, потому, что сложно быть хорошим специалистом в двух сферах одновременно. N>Я вот тоже систематически пишу на 10 языках — тонкости всех в голове не умеющаются, поэтому все, кроме с++ используются в относительно упрощённой форме.
Здравствуйте, Nikе, Вы писали:
N>Здравствуйте, Zoringo, Вы писали:
Z>>2. Я не называл Вас "на ты", поэтому дурно воспитаны скорее Вы чем я. N>Вы новенький на форуме и не знаете правил. Тут принято обращение на ТЫ. Обращение на ВЫ — это скорее: да кто ВЫ такой?
Спасибо за разъяснения, но я тут не новенький, и правила прекрасно знаю, в правилах указано что общаться с оппонентами нужно уважительно (несмотря на то насколько новый у человека аккаунт).
Новый акк используется в связи с тем что РФ криптовалюты регулируются непонятным образом.
Здравствуйте, Zoringo, Вы писали:
Z>"чем проф.программисты" ?) Z>Те те кто пишет на С — это по определению не проф.программисты?
Ну я их не считаю проф.программистами — опять же, если это не тяжкое требование специфичных платформ. Мы тут сами программировали железку на С — но там деваться некуда было, да и объём кода в целом мизерный.
Z>снобизм такой некислый)
Ну а как назвать тех, кто не осилил конструкции более высокого уровня?
Z>На мой взгляд они не менее профессиональные чем все остальные, хотя сам я именно на С++ программирую уже 17 лет как. Z>И про С++ можно сказать на самом деле все тоже самое — дорого, долго, поддерживать сложнее. Да задач требующих именно С++ осталось очень мало.
С++ нужен там, где нужен перфоманс, полно новых проектов с ним — тот же AI, комп. графика, VR и т.п. Ну и С++ по факту самый кросс-платформенный язык из всех промышленных, чем тоже ценен.
Да. Твои идеи?
Я могу ещё предложить как вариант:
— требование максимально быстрой компиляции.
— религиозные взгляды (как разновидность некомпетентности).
Я даже истории могу из жизни рассказать, когда официально крутые программисты, олимпиадники — в ответ на предложение использовать шаредпоинтеры и прочие средства безопасной разработки заявляли, что, цитирую: "на С++ нужно писать в С стиле. Если хочешь стиль Ява — используй Яву".
Естественно, что несмотря на хорошие показатели на олимпиадах — как программисты для бизнеса они были крайне паршивые, а поддержка продукта после них — такой болью, что это было связано с уходом череды других программистов.
Кстати, тут на форуме была как-то смачная история про то, что де не берём программистов старше 26 — это они же.
Просто нет никаких оснований, при возможности использовать RAII — его не использовать. Нет никаких оснований при возможности использовать new/delete с конструкторами — их не использовать. Они бесплатны — но делают код намного лучше. И то же самое по всем другим средствам. Если у людей есть возможность бежать на двух ногах, а они добровольно бегают на одной то этому должно быть очень и очень веское объяснение, с точки зрения бизнеса.
Здравствуйте, lpd, Вы писали:
N>>Какие должны быть резоны у человека, чтобы писать скажем так: lpd>Далеко не всегда блок фигурных скобочек совпадает с временем захвата мьютекса.
В 95+% случаев.
lpd>Тем более, тогда бы пришлось каждый раз искать, где именно объявлен lock_guard, и был ли он вообще, т.к. в любом случае явные lock/unlock нагляднее неявных скобочек.
Да, т.е. нехватка абстрактного программерского мышления и навыков грамотно организовывать код компенсируется избысточностью текста программы, высокой вероятностью создать критические ошибки и крайней сложности в поддержке простыней созданных любителями. Собственно всё как я и сказал. Это можно терпеть в том случае, если человек очень компетентен в какой-то сторонней сложной задаче. Это его не то, чтобы оправдывает, но заставляет смириться с этим из-за того, что количество и качество профессионалов крайне ограничено.
Здравствуйте, Nikе, Вы писали:
N>Здравствуйте, lpd, Вы писали:
lpd>>Далеко не всегда блок фигурных скобочек совпадает с временем захвата мьютекса.
N>В 95+% случаев.
В оставшихся N% случаев, видимо, предполагается добавлять искуственные блоки, а иногде еще и пытаться объединять разные функции, в которых мьютекс захватывается и освобождается.
lpd>>Тем более, тогда бы пришлось каждый раз искать, где именно объявлен lock_guard, и был ли он вообще, т.к. в любом случае явные lock/unlock нагляднее неявных скобочек. N>Да, т.е. нехватка абстрактного программерского мышления и навыков грамотно организовывать код компенсируется избысточностью текста программы, высокой вероятностью создать критические ошибки и крайней сложности в поддержке простыней созданных любителями.
Неявность lock_guard это объективный недостаток, который усложняет чтения кода. Хотя для hello world на шаблонах, наверное, выглядит неплохо.
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)
Здравствуйте, lpd, Вы писали:
N>>В 95+% случаев.
lpd>В оставшихся N% случаев, видимо, предполагается добавлять искуственные блоки, а иногде еще и пытаться объединять разные функции, в которых мьютекс захватывается и освобождается.
Ты сейчас предлагаешь говнокодить в 95% случаев, ради 5 для которых можно писать как хочешь?
Логика, что. Это конечно веский резон писать на С.
lpd>Неявность lock_guard это объективный недостаток, который усложняет чтения кода.
Только для совершенно некомпетентных людей освоивших программирование на уровне школы.
Здравствуйте, lpd, Вы писали:
lpd>На закрывающей скобке не написано, что она освобождает мьютекс, и что он вообще был захвачен. Поэтому lock_guard, как минимум, спорное нововведение. Я думаю, что оно не приживется, хотя стадный инстинкт многих программистов будет долго заставлять следовать за теми, кто это нововведение придумал, и использовать lock_guard где ни попадя.
Это RAII называется. Оно только при мне активно лет 18 используется. Я даже в этом примере самопал какой-то привёл, а не то, что в стандарт ввели.
Здравствуйте, Nikе, Вы писали:
N>С++ нужен там, где нужен перфоманс, полно новых проектов с ним — тот же AI, комп. графика, VR и т.п. Ну и С++ по факту самый кросс-платформенный язык из всех промышленных, чем тоже ценен.
А что в нем, простите, кроссплатформенного?
Нет, ну я не спорю, "Hello, World" на нем можно написать кроссплатформенно. Но ты попробуй написать на нем, ну, к примеру, програмку, которая делает HTTP-запросы, и что-нибудь полезное делает с ответами. Запросов делает много. Реально много. И по разным адресам. И чтобы работало одинаково хорошо в линухе и в венде.
Здравствуйте, Pzz, Вы писали:
N>>С++ нужен там, где нужен перфоманс, полно новых проектов с ним — тот же AI, комп. графика, VR и т.п. Ну и С++ по факту самый кросс-платформенный язык из всех промышленных, чем тоже ценен.
Pzz>А что в нем, простите, кроссплатформенного?
Мы про язык, или про библиотеки к нему?
Pzz>Нет, ну я не спорю, "Hello, World" на нем можно написать кроссплатформенно. Но ты попробуй написать на нем, ну, к примеру, програмку, которая делает HTTP-запросы, и что-нибудь полезное делает с ответами. Запросов делает много. Реально много. И по разным адресам. И чтобы работало одинаково хорошо в линухе и в венде.
Так, и в чём проблема? Вот стримеры на нём пишут, сервера к играм — ты их на яве предлагаешь делать или на чём?
Здравствуйте, Zoringo, Вы писали:
Pzz>>А назвав меня троллем, ты показал, что 1) ты не можешь навести хотя бы поверхностные справки о собеседнике 2) ты дурно воспитан. Полагаю, свою репутацию ты тем самым слегка подпортил.
Z>1. Я не называл тролем Вас, почему вы приняли это на свой счет — это остается вопросом
Потому, что это выглядело так, словно Вы назвали троллем именно меня.
Z>2. Я не называл Вас "на ты", поэтому дурно воспитаны скорее Вы чем я.
Здесь в среднем обращение на "ты" считается более вежливым, чем на "Вы". Наверное, это наследие ФИДО. Мне ведь все равно, какую кнопку нажать, а по незнакомому собеседнику сходу не угадаешь, какая кнопка ему больше понравится.
Z>3. В данном случае справки наводить не было нужды, Ваш первый ответ был весьма красноречив, второй еще более)
Здравствуйте, Nikе, Вы писали:
Pzz>>А что в нем, простите, кроссплатформенного? N>Мы про язык, или про библиотеки к нему?
Я про смысл твоих слов "самый кросс-платформенный язык из всех промышленных". Хотел бы понять, что ты имеешь ввиду.
N>Так, и в чём проблема? Вот стримеры на нём пишут, сервера к играм — ты их на яве предлагаешь делать или на чём?
Если бы я сейчас взялся писать сервер для игры, я бы, пожалуй, выбрал Go.
Здравствуйте, Pzz, Вы писали:
Pzz>>>А что в нем, простите, кроссплатформенного? N>>Мы про язык, или про библиотеки к нему?
Pzz>Я про смысл твоих слов "самый кросс-платформенный язык из всех промышленных". Хотел бы понять, что ты имеешь ввиду.
В смысле, что если мне нужно писать серьёзную программу (ядро программы) которое должно работать на как можно большем количестве устройств — то С++ фактически безальтернативен.
N>>Так, и в чём проблема? Вот стримеры на нём пишут, сервера к играм — ты их на яве предлагаешь делать или на чём?
Pzz>Если бы я сейчас взялся писать сервер для игры, я бы, пожалуй, выбрал Go.
Go нестандартен, да и критикуют его сильно за ту же неадекватную простынность — он разве не считается уже устаревшим?
Вообще можешь обосновать своё предложение чем-то кроме моды?
Здравствуйте, Nikе, Вы писали:
Pzz>>Я про смысл твоих слов "самый кросс-платформенный язык из всех промышленных". Хотел бы понять, что ты имеешь ввиду.
N>В смысле, что если мне нужно писать серьёзную программу (ядро программы) которое должно работать на как можно большем количестве устройств — то С++ фактически безальтернативен.
Что есть серьезная программа? Насколько на "как можно большем"? От кофемолки до мейнфрейма? Такие потребности довольно редко встречаются на практике.
Pzz>>Если бы я сейчас взялся писать сервер для игры, я бы, пожалуй, выбрал Go.
N>Go нестандартен, да и критикуют его сильно за ту же неадекватную простынность — он разве не считается уже устаревшим?
В каком смысле, не стандартен? Go — очень стабильный язык. Программа, написанная для Go 1.0 почти наверняка соберется современным компилятором вообще без изменений или с минимальными изменениями.
Что такое "неадекватная простынность"? Этого я вообще не понял.
N>Вообще можешь обосновать своё предложение чем-то кроме моды?
Да.
1. На Go просто приятно писать
2. Go очень жестко навязывает свой coding style. Для командной работы это — большой плюс.
3. Стандартная библиотеке Go содержит все необходимое для написания сетевых серверов
4. Именно вот для програм с интенсивным сетевым вводом-выводом runtime обеспечивает очень эффективный низкоуровневый ввод-вывод для всех поддерживаемых платформ
5. Программы, скомпилированные Go, очень удобно распостранять, на выходе получается статически слинкованный исполняемый файл с нулевыми внешними зависимостями
6. Go можно выучить за неделю — нет проблем с кадрами
Здравствуйте, Nuzhny, Вы писали:
N>Вот это да! А что кроме С++? Я серьёзно, без троллинга. C++ и boost.asio. Можно Qt взять.
Но в asio, насколько я в курсе, нету поддержки HTTP. И я не зря сказал про много запросов — Qt, я подозреваю, просто треснет в таком режиме.
В общем и целом, кросс-платформенность C++ сделана по принципу "какой-нибудь диалект C++ есть для любой платформы, а все остальное сами руками сделаете". С Си ситуация почти такая же, чуть-чуть получше, потому что сишный рантайм в среднем более неприхотлив.
N>На С++ сетевые системы безопасности и видеонаблюдения делают, всё только на нём. Видео, посланное по udp (с потерями) восстанавливают до смотрибельного состояния. Это уже посложнее, чем просто http.
Ты недооцениваешь сложность HTTP. Со всякими Connection Keep-Alive, MIME, поддержкой gzip'а и прочими редиректами там набегает достаточно много сложности.
Гоняние видео по UDP в моем анамнезе присутствует. В сочетании с динамической подстройкой битрейта, пробиванием дырок в NAT'е и с засовыванием этого видео в wifi с такими скоростями, с которыми официально оно туда не лезет от слова совсем. Так что я в курсе этой тематики
Здравствуйте, Pzz, Вы писали:
N>>Вот это да! А что кроме С++? Я серьёзно, без троллинга. C++ и boost.asio. Можно Qt взять. Pzz>Но в asio, насколько я в курсе, нету поддержки HTTP. И я не зря сказал про много запросов — Qt, я подозреваю, просто треснет в таком режиме.
Я пользовался стандартным примером. Модифицировал его для себя немного и работало. Но есть ещё и boost.beast. Видимо, это и есть эталонная работа с http из boost.
Pzz>Ты недооцениваешь сложность HTTP. Со всякими Connection Keep-Alive, MIME, поддержкой gzip'а и прочими редиректами там набегает достаточно много сложности.
Ок, я только слегка пользовался.
Pzz>Гоняние видео по UDP в моем анамнезе присутствует. В сочетании с динамической подстройкой битрейта, пробиванием дырок в NAT'е и с засовыванием этого видео в wifi с такими скоростями, с которыми официально оно туда не лезет от слова совсем. Так что я в курсе этой тематики
И ты реализовывал всё это на Go? Как-то не очень верится.
lpd>На закрывающей скобке не написано, что она освобождает мьютекс, и что он вообще был захвачен.
Там также не написано что сейчас будут вызваны деструкторы созданных объектов, и что они вообще были созданы где-то выше. Но это вовсе не означает что использовать объекты классов/структур это объективный недостаток, который усложняет чтения кода.
Здравствуйте, Nuzhny, Вы писали:
N>И ты реализовывал всё это на Go? Как-то не очень верится.
Нет, я реализовал это на чистом Си, потому что Go тогда в природе не было.
С другой стороны, сейчас бы я, наверное, для той user-space программы, которая на PC всем этим командовала, выбрал бы Go. Во всяком случае, если бы мне удалось это политически (увы и ой, те, кто распоряжаются деньгами, тоже имеют свое мнение при выборе технологий).
Здравствуйте, Muxa, Вы писали:
lpd>>На закрывающей скобке не написано, что она освобождает мьютекс, и что он вообще был захвачен. M>Там также не написано что сейчас будут вызваны деструкторы созданных объектов, и что они вообще были созданы где-то выше. Но это вовсе не означает что использовать объекты классов/структур это объективный недостаток, который усложняет чтения кода.
Linus Torvalds где-то называл неявность по сравнению с С одной из причин, почему ядро Linux не написано на C++.
Конкретно деструкторы я бы не критиковал, т.к. деструкторы в данном случае относятся к локальным переменным, к логике времени жизни которых все привыкли, и которые есть почти всегда, в отличие от мьютексов. А mutex относится к действиям, выполняемым программой, и я бы не смешивал логику мьютекса с логикой скобочек.
Преимущество lock_guard, что mutex_unlock легко забыть, нивелируется тем, что их не всегда можно использовать без добавления специальных скобочек, как я выше писал.
Вообще, lock_guard и auto — это не более чем синтаксический сахар, а я просто упомянул об их недостатках, которые тоже существуют, и являются препятствием для полного перехода на их использование.
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)
что скажешь насчет
— std:(i|o)fstream vs fopen/fclose
— try/catch/finally vs коды возврата
?
это тоже объективные недостатки, которые усложняют чтение кода.
Здравствуйте, Muxa, Вы писали:
M>что скажешь насчет M>- std:(i|o)fstream vs fopen/fclose M>- try/catch/finally vs коды возврата M>? M>это тоже объективные недостатки, которые усложняют чтение кода.
Исключения в добавок к кодам возврата могут быть полезны в высокоуровневых программах(например, в enterprise), и неявность оправдывается сложной логикой. Однако эту нишу заняли Java и C#, а C++ развивается в каком-то совсем другом направлении.
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)
Здравствуйте, lpd, Вы писали:
M>>это тоже объективные недостатки, которые усложняют чтение кода.
lpd>Исключения в добавок к кодам возврата могут быть полезны в высокоуровневых программах(например, в enterprise), и неявность оправдывается сложной логикой. Однако эту нишу заняли Java и C#, а C++ развивается в каком-то совсем другом направлении.
Он развивается в сторону обычного языка высокого уровня. Исключения работают в низкоуровневых системах так же хорошо, как и в высокоуровневых, если ты изучил что это такое вообще.
Твоя претензия к lock_guard говорит только и исключительно о плохом качестве оформления кода, похоже, что ты реализуешь огромные простыни с универсальными всемогутерами.
Здравствуйте, Nikе, Вы писали:
N>Здравствуйте, lpd, Вы писали:
N>Он развивается в сторону обычного языка высокого уровня. Исключения работают в низкоуровневых системах так же хорошо, как и в высокоуровневых, если ты изучил что это такое вообще.
В ядре Linux исключения не используются, в том числе из-за их скорости.
N>Твоя претензия к lock_guard говорит только и исключительно о плохом качестве оформления кода, похоже, что ты реализуешь огромные простыни с универсальными всемогутерами.
Я предпочту немного более длинный код с unlock короткому, но сложному для пониманию. Если код выполняет сколько-нибудь сложную логику, а не является искуственным примером, lock_guard в ряде случаев будет мешать.
Вообщем, это все синтаксический сахар и я не вижу смысла из-за него спорить. Можешь хоть на perl писать, если тебе это удобно.
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)
Здравствуйте, lpd, Вы писали:
N>>Твоя претензия к lock_guard говорит только и исключительно о плохом качестве оформления кода, похоже, что ты реализуешь огромные простыни с универсальными всемогутерами. lpd>Я предпочту немного более длинный код с unlock короткому, но сложному для пониманию. Если код выполняет сколько-нибудь сложную логику, а не является искуственным примером, lock_guard в ряде случаев будет мешать. lpd>Вообщем, это все синтаксический сахар и я не вижу смысла из-за него спорить. Можешь хоть на perl писать, если тебе это удобно.
Я, кстати, совсем не против малокомпететных программистов, мне неоднократно кучу денег отваливали за переписывание разных поделий с С на С++ с доводкой до необходимого уровня. Я так подозреваю, что отваливали даже больше, чем за разработку основы
Здравствуйте, lpd, Вы писали:
N>>Он развивается в сторону обычного языка высокого уровня. Исключения работают в низкоуровневых системах так же хорошо, как и в высокоуровневых, если ты изучил что это такое вообще. lpd>В ядре Linux исключения не используются, в том числе из-за их скорости.
Для их задачи — у них нормальная скорость, быстрее не сделаешь. Изучайте инструмент.
Здравствуйте, Nikе, Вы писали:
N>Здравствуйте, lpd, Вы писали:
lpd>>Вообщем, это все синтаксический сахар и я не вижу смысла из-за него спорить. Можешь хоть на perl писать, если тебе это удобно.
N>Я, кстати, совсем не против малокомпететных программистов, мне неоднократно кучу денег отваливали за переписывание разных поделий с С на С++ с доводкой до необходимого уровня. Я так подозреваю, что отваливали даже больше, чем за разработку основы
Ну напиши лучшую ОС, чем ядро Linux на C++ с lock_guard — тогда я бы тебя зауважал, раз уж это форум программистов.
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)
Здравствуйте, lpd, Вы писали:
N>>Я, кстати, совсем не против малокомпететных программистов, мне неоднократно кучу денег отваливали за переписывание разных поделий с С на С++ с доводкой до необходимого уровня. Я так подозреваю, что отваливали даже больше, чем за разработку основы
lpd>Ну напиши лучшую ОС, чем ядро Linux на C++ с lock_guard — тогда я бы тебя зауважал, раз уж это форум программистов.
Та у меня и без этого достаточно достижений. Ядро приличной ОС слишком сложная и долговременная задача для одного человека.
Несомненно ядро ОС только выиграло бы при переписывании, и скорее всего довольно сильно — переписывание делало программу лучше во всех случаях, но его держит в текущем состоянии тормозное комунити и сложность переписывания ядра системы — ядро на то и ядро, что оно должно быть очень стабильным.
Здравствуйте, Nikе, Вы писали:
N>Несомненно ядро ОС только выиграло бы при переписывании, и скорее всего довольно сильно — переписывание делало программу лучше во всех случаях, но его держит в текущем состоянии тормозное комунити и сложность переписывания ядра системы — ядро на то и ядро, что оно должно быть очень стабильным.
Может быть ядро Linux от переписывания на C++(урезаный) и выиграло бы. Только это занятие привело бы тебя к тому, что синтаксический сахар — не самое главное в программировании. Гораздо большую роль играет архитектура программы, и принципиальная расстановка lock_guard/auto и других фишек поздних C++ не имеет решающего значения.
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)
Здравствуйте, Pzz, Вы писали:
Pzz>Здравствуйте, Nikе, Вы писали:
N>>С++ нужен там, где нужен перфоманс, полно новых проектов с ним — тот же AI, комп. графика, VR и т.п. Ну и С++ по факту самый кросс-платформенный язык из всех промышленных, чем тоже ценен.
Pzz>А что в нем, простите, кроссплатформенного?
Pzz>Нет, ну я не спорю, "Hello, World" на нем можно написать кроссплатформенно. Но ты попробуй написать на нем, ну, к примеру, програмку, которая делает HTTP-запросы, и что-нибудь полезное делает с ответами. Запросов делает много. Реально много. И по разным адресам. И чтобы работало одинаково хорошо в линухе и в венде.
boost::asio в помощь — прекрасно работает на всех платформах, то о чем вы пишете в примерах доступно прям у них на сайте.
Здравствуйте, Pzz, Вы писали:
Pzz>Здравствуйте, Nuzhny, Вы писали:
N>>Вот это да! А что кроме С++? Я серьёзно, без троллинга. C++ и boost.asio. Можно Qt взять.
Pzz>Но в asio, насколько я в курсе, нету поддержки HTTP. И я не зря сказал про много запросов — Qt, я подозреваю, просто треснет в таком режиме.
Pzz>В общем и целом, кросс-платформенность C++ сделана по принципу "какой-нибудь диалект C++ есть для любой платформы, а все остальное сами руками сделаете". С Си ситуация почти такая же, чуть-чуть получше, потому что сишный рантайм в среднем более неприхотлив.
N>>На С++ сетевые системы безопасности и видеонаблюдения делают, всё только на нём. Видео, посланное по udp (с потерями) восстанавливают до смотрибельного состояния. Это уже посложнее, чем просто http.
Pzz>Ты недооцениваешь сложность HTTP. Со всякими Connection Keep-Alive, MIME, поддержкой gzip'а и прочими редиректами там набегает достаточно много сложности.
Pzz>Гоняние видео по UDP в моем анамнезе присутствует. В сочетании с динамической подстройкой битрейта, пробиванием дырок в NAT'е и с засовыванием этого видео в wifi с такими скоростями, с которыми официально оно туда не лезет от слова совсем. Так что я в курсе этой тематики
Я http знаю оч неплохо в том числе и о том что многие сервера не следуют rfc и под это приходилось затачиваться смотрев срцы мозиллы в свое время. Но то что вы говорите — это протокольный уровень, если вы его писали, то как раз это абсолютно платформено независимый код должен быть.
Здравствуйте, Zoringo, Вы писали:
Pzz>>Нет, ну я не спорю, "Hello, World" на нем можно написать кроссплатформенно. Но ты попробуй написать на нем, ну, к примеру, програмку, которая делает HTTP-запросы, и что-нибудь полезное делает с ответами. Запросов делает много. Реально много. И по разным адресам. И чтобы работало одинаково хорошо в линухе и в венде.
Z>boost::asio в помощь — прекрасно работает на всех платформах, то о чем вы пишете в примерах доступно прям у них на сайте.
boost::asio — это обертка к очень низкоуровневому интерфейсу, уровня сокетов. Я не зря сказал слово HTTP. От сокетов до HTTP — как от земли до луны.
Здравствуйте, Zoringo, Вы писали:
Z>Я http знаю оч неплохо в том числе и о том что многие сервера не следуют rfc и под это приходилось затачиваться смотрев срцы мозиллы в свое время. Но то что вы говорите — это протокольный уровень, если вы его писали, то как раз это абсолютно платформено независимый код должен быть.
По-хорошему, этот код должен быть библиотечным, потому что задача эта часто встречается. Причем если для клиентской стороны есть хотя бы lincurl (написанный на Си и довольно неудобный, но хоть как-то работает), то для серверной стороны вообще ничего вменяемого нет (про игрушечный libmicrohttpd и монструозный, а так же про http сервер, встроенный в монструозную glib я в курсе).
Здравствуйте, Pzz, Вы писали:
Pzz>boost::asio — это обертка к очень низкоуровневому интерфейсу, уровня сокетов. Я не зря сказал слово HTTP. От сокетов до HTTP — как от земли до луны.
beast существует довольно давно, а сейчас его вводят в состав буста. Он, правда, самопалом каким-то выглядит, но возможно его доведут.
С другой стороны, куча народа все эти html писали для себя, ок, это известная проблема неадекватной стандартной библиотеки для С++, однако, пусть даже у Go хорошая стандартная либа для html — если сервер должен не только его, но ещё и в логику — то тут С++ всё-равно выиграет, как более общий язык более высокого уровня.
Здравствуйте, Pzz, Вы писали:
N>>С другой стороны, куча народа все эти html писали для себя, ок, это известная проблема неадекватной стандартной библиотеки для С++, однако, пусть даже у Go хорошая стандартная либа для html — если сервер должен не только его, но ещё и в логику — то тут С++ всё-равно выиграет, как более общий язык более высокого уровня.
Pzz>Посмотри на любую свою достаточно большую программу. Какую долю ее занимает, собственно, логика, и какую — поддерживающая инфраструктура? Логика — это очень небольшая (но, возможно, сложная) часть кода. И (surprise!) вот именно для логики удобно использовать максимально простой язык программирования.
От логики зависит. Если совсем глобальный уровень, то да. А если всякие разнородные вещи, вроде работы с графикой, базы данных, игровая логик и т.п. то тут простота будет антипаттерном.
Pzz>Под более высоким уровнем языка программирования
Я забыл как мы перешли к Го от пинания С.
Здравствуйте, Nikе, Вы писали:
N>От логики зависит. Если совсем глобальный уровень, то да. А если всякие разнородные вещи, вроде работы с графикой, базы данных, игровая логик и т.п. то тут простота будет антипаттерном.
От архитектуры зависит. Если у тебя аккуратная архитектура, все культурно разнесено по своим уровням и про соседние уровни знает только то, что должно про них знать, и не более того, то именно логика будет довольно компактной (я не сказал при этом, что она будет простой).
Вот попробуй кому-нибудь словами рассказать, что делает твоя программа, не вдаваясь в низкоуровневые детали реализации — это и есть логика.
Ну а если, конечно, все между собой перемешано, как лапша, то логика будет размазана тонким слоем по всему коду, как соус по лапше.
func (littleEndian) PutUint16(b []byte, v uint16) {
_ = b[1] // early bounds check to guarantee safety of writes below
b[0] = byte(v)
b[1] = byte(v >> 8)
}
ни С ни С++ такой избыточности бы не создали
о каких тогда серверах и прочих можно говорить в сравнении с С/C++ ?
разве что в скорости стартапов для быстрого старта, а дальше нанимать плюсовиков что бы это переписывали на нормальный язык
Здравствуйте, reversecode, Вы писали:
R>у него такой уровень избыточности что .. быстрым в производительности он может быть разве что в сравнении с питоном R>но не С/C++
Раза в два он проигрывает Си. При чем тут уровень избыточности, непонятно, но компилятор евонный, в плане оптимизации, довольно наивный.
Питон проигрывает Си раз в 20.
R>разве что в скорости стартапов для быстрого старта, а дальше нанимать плюсовиков что бы это переписывали на нормальный язык
Дано: аренда нормального сервера стоит $300 в месяц. Зарплата хошего плюсовика составляет $120 в месяц. Для переписывания программы с Go на C++ надо потратить 3 человека-года.
Вопрос: сколько серверов должна загружать программа при нынешней нагрузке, чтобы переписывание ее на C++ было экономически оправданно?
заглянул в поддержку http в вашем рекламном ГОУ
ну че, для парсинга баб с порно сайтов и написания спам ботов может и сойдет
а для всего остального нужно писать свою либу http
так что если для С/C++ всегда можно найти +10500 либ
то для гоу придется изрядно поднапрячься
Здравствуйте, Zoringo, Вы писали:
Z>Желательно уметь написать документы еще более упоротые с точки зрения математики(английский не обязательно идеальный, есть кому вычитать если надо). Z>В общем полноценная научная работа полная приключений и экшина! ... Z>О нас: мы делаем "вот это все" с 2013-го года и мы НЕ занимаемся клонированием чужих блокчейн технологий, все то на чем мы базируем наши проекты написано нами с нуля.
Z>Салют друзья!
Z>Мы небольшая но бурно развивающаяся.... окей, шучу)
Z>В общем мы разыскиваем математика, разбирающегося в криптографии, теории чисел, дискретной математике, понимающего к примеру о чем написано в таких документак как: Z>https://lab.getmonero.org/pubs/MRL-0005.pdf Z>http://zerocash-project.org/media/pdf/zerocash-oakland2014.pdf Z>https://iota.org/IOTA_Whitepaper.pdf
Z>Желательно уметь написать документы еще более упоротые с точки зрения математики(английский не обязательно идеальный, есть кому вычитать если надо).
Z>В общем полноценная научная работа полная приключений и экшина!
Z>Рассматриваем разные варианты сотрудничества, но скорее всего начнем со сдельной формы оплаты. Z>Мы в принципе готовы рассматривать самые разные цифры, если говорить о частичной занятости то мы думаем о цифрах от 500$ до 5000$ в зависимости от профессионального уровня и понимания предметной области.
Z>О нас: мы делаем "вот это все" с 2013-го года и мы НЕ занимаемся клонированием чужих блокчейн технологий, все то на чем мы базируем наши проекты написано нами с нуля.
Z>Кстати, если вы опытный c/c++ разработчик с сильным бекграундом в криптографии(тогда вы скорее всего С разработчик) и с осторожностью интересуетесь "вот этим всем" — тоже можете написать.
Z>surkoffandrey собака на яндекс ру.
Z>Всем добра!