Тривиальные, но почему то этими тривиальными вещами не воспользовались, а вы их на блюдечке приносите. Вас не удивляет почему у военных есть секретность? почему ведущие антивирусные компании не трубят на всех углах КАК они лихо всех побеждают, не рассказывают как они это делают всем и каждому, не проводят семинары «вы все дураки, вирусы нужно писать вот так».
Наверно помните случай как американский подросток «косил» по морского котика и разместил фотографии в униформе на своей странице в фэйсбуке? его потом долго пытали. Когда его освободили люди в масках прокомментировали его поведение как «дебил, мы скрываем информацию о себе потому что идет война, не стоит дарить подарки врагу».
PS: то что для Вас очевидно, для какого нибудь писателя будет «О, надо же, щас ...»
Свои мысли я изложил чуть ниже… повторюсь — те кто писал этот код только учаться и многого еще не умеют. В комментариях большинство занято тем что рассуждают как сделать код более устойчивым к ошибкам и тем самым помогают в обучении пободным юнцам. Вопрос — зачем? свою гордость потешить? показать что Вы знаете как лучше писать зловлеров чем эти юнцы? :-)
Я всегда радовался тому что профессионалам Ваши 500 рублей не нужны, они заработают куда больше с меньшим кол-вом пыли, а вот натасканная молодежь может крови попить почти на пустом месте.
Предлагаю не подкидывать идеи, хороший инженер может сделать серьезный софт с высоким порогом взлома, те кто делал этот троян явно еще только учаться и я не хотел бы их натаскивать и подсказывать как нужно и не нужно делать.
Ок, вот ситуация — вы троян, шифруете себе файлы, шифруете, ключ не храните на винте, только в ОП. Тут система выключается, включается снова и шифрование нужно продолжить, Ваши действия?
Не воспринимайте на личный счет, я ничего не имею против Явы, хороший язык, делает свое дело, масса людей ни испытывают с ним сложностей и вовлечены в индустрию, с С/С++ такой фокус не прошел — за свою гибкость и скорость люди платят серьезными ошибками, а производители — высокими ЗП своим инженерам.
Но нужно помнить что и С/С++, С#, Ява лишь инструменты со своими плюсами и минусами и принимаясь за дело нужно их выбирать правильно. Вы что, станете со мной спорить, если я скажу, что на Java выполнить глобальный рефакторинг или даже переписать отдельный модуль системы будет в сотни раз проще, чем сделать то-же самое на С++?
Спорить не буду и уж тем более обсуждать цифры «в сотни раз» :-) Я работаю в компании которая разрабатывает свою электронику для кодирования видео, хранения и прочего прочего. В разработке задействованы и ява и C# и С и С++ и ассемблер, все на нужных местах, хорошее проектирование позволяет легко рефакторить код С++ модулей и проектов, плохое проектирование превращает рефакторинг в ужас на любом языке если это дело запустить.
Предлагаю завершить эту ветку дискуссии, меньше всего я хочел поучавствовать в священной войне :-)
Хотел лишь узнать мнение людей на счет заданных мной вопросов и я его узнал.
В С/С++ слишком просто выстрелить себе в ногу, а синтаксический сахар это лишь сахар. Профессионалы сделают все на ура и на том и на другом языке, только профи на С++ более редкое явление и стоят дорого, а не профи обходятся еще дороже, поэтому в больших системах бал и правят Ява и С# — порог вхождения низок, за тебя приберут где надо, позаботятся в меру сил, людей найти и оплатить проще.
На счет изменений — вы в это верите или знаете? Хорошая архитектура что на Яве что на С++ это хорошая архитектура, а плохая… ее сахар не спасет :-)
Вообще нет смысла сравнивать Си/Си++ и Яву это разные инструменты под разные задачи, и сравнения в скорости выполнения кода меня лишь умиляют, даже спорить нет смысла, только улыбаться, это разговор не о фактах, это разговор о вере.
Но даже с Явой или C# не стоит лениться, не стоит надеятся на всемогущий компилятор, думать надо, познавать, проверять и не циклиться на одном инструменте, часть большого проекта можно сделать на яве, часть на Си, часть на асме, но говорить что мы сейчас весь дом одним молотком построим потому что он удобен в руке и вообще я его так люблю это наивно.
Вы можете сделать GUI на яве, доступ к базам данных и прочее прочее, но ведь Вам и в дурном сне не привидится писать энкодер H.264 на яве, не будете Вы так же писать серьезный трехмерный движок на C#, не подходящие это инструменты.
Так если б я как та бангалорская деревушка — полгодика бы по-повышал производительность с 1 страницы аж до двух — мне бы тоже платили плошку риса в день, не?
Просто бы уволили, но платить ниже минимума не смогут по закону.
Вы очень прямолинейно восприняли мой вопрос :-) он в прочем был адресован не Вам, но так как видимо «ответа» от автора статьи я уже не получу, можем подискутировать с Вами.
Я очень часто в юности слышал фразу: компилятор большой — ему видней. Так обычно оправдывались самые темные уголки кода или просто нежелание разбираться в вопросе. Иногда это оправдано, иногда — нет. Грубо говоря, чтобы написать код на C, который будет производить такой же по производительности машинный код, надо всегда-всегда ставить эти макросы LIKELY/UNLIKELY. Как в ядре Linux.
Я правильно Вас понял что Ява обгонит по производительности аналогичный код написанный без LIKELY/UNLIKELY на С?
Скорее это просто мысли в слух нежеди претензия.
Очень много в нашей индустрии ругают своих коллег. На эту ситуацию можно посмотреть с другой стороны — заказчики возможно хотели 10 страниц в секунду за дешево, получили только 2, неудовлетворившись пошли уже к более квалифицированному инженеру из Германии (?), месячный оклад которого плюс соц. отчисления, налоги и прочее может прокормить маленькую деревушку в Индии в течении года.
Вопрос часто не стоит в качестве кода, а в том что требуется заказчику и насколько хороший результат он готов оплатить.
Ширше (или ширее) пользуйтесь готовыми библиотеками, вместо закатывания солнца вручную.
Они и пользовались во весь рост.
Результат оптимизации хороший, но так много статей «ОНИ vs Я» и так мало «посмотрите какой хороший код, мне бы так»
>>На самом деле, компилятор и JIC гораздо умнее ваших программистов и знает как лучше делать вещи.
Как интересно, можете детальнее раскрыть свою мысль?
Буду признателен если поясните в чем плюс явы для высоконагруженного игрового сервера?
Не сточки зрения евангелизма, а с точки зрения здравого смысла. Почему был выбран этот инструмент?
Спасибо за статью, навеяла воспомнинания о Ачинском глиноземном комбинате и автоматической системе пожаротушения разрабатывавшуюся на адамах, много схожих проблем было, от выравнивания до помех на линиях искажавших пакет так что и контрольная сумма не спасала.
Жаль что подобные материалы на Хабре редкость и почти что неформат.
Наверно помните случай как американский подросток «косил» по морского котика и разместил фотографии в униформе на своей странице в фэйсбуке? его потом долго пытали. Когда его освободили люди в масках прокомментировали его поведение как «дебил, мы скрываем информацию о себе потому что идет война, не стоит дарить подарки врагу».
PS: то что для Вас очевидно, для какого нибудь писателя будет «О, надо же, щас ...»
Я всегда радовался тому что профессионалам Ваши 500 рублей не нужны, они заработают куда больше с меньшим кол-вом пыли, а вот натасканная молодежь может крови попить почти на пустом месте.
PS: спасибо за переводы
Но нужно помнить что и С/С++, С#, Ява лишь инструменты со своими плюсами и минусами и принимаясь за дело нужно их выбирать правильно.
Вы что, станете со мной спорить, если я скажу, что на Java выполнить глобальный рефакторинг или даже переписать отдельный модуль системы будет в сотни раз проще, чем сделать то-же самое на С++?
Спорить не буду и уж тем более обсуждать цифры «в сотни раз» :-) Я работаю в компании которая разрабатывает свою электронику для кодирования видео, хранения и прочего прочего. В разработке задействованы и ява и C# и С и С++ и ассемблер, все на нужных местах, хорошее проектирование позволяет легко рефакторить код С++ модулей и проектов, плохое проектирование превращает рефакторинг в ужас на любом языке если это дело запустить.
Предлагаю завершить эту ветку дискуссии, меньше всего я хочел поучавствовать в священной войне :-)
Хотел лишь узнать мнение людей на счет заданных мной вопросов и я его узнал.
На счет изменений — вы в это верите или знаете? Хорошая архитектура что на Яве что на С++ это хорошая архитектура, а плохая… ее сахар не спасет :-)
Вообще нет смысла сравнивать Си/Си++ и Яву это разные инструменты под разные задачи, и сравнения в скорости выполнения кода меня лишь умиляют, даже спорить нет смысла, только улыбаться, это разговор не о фактах, это разговор о вере.
Но даже с Явой или C# не стоит лениться, не стоит надеятся на всемогущий компилятор, думать надо, познавать, проверять и не циклиться на одном инструменте, часть большого проекта можно сделать на яве, часть на Си, часть на асме, но говорить что мы сейчас весь дом одним молотком построим потому что он удобен в руке и вообще я его так люблю это наивно.
Вы можете сделать GUI на яве, доступ к базам данных и прочее прочее, но ведь Вам и в дурном сне не привидится писать энкодер H.264 на яве, не будете Вы так же писать серьезный трехмерный движок на C#, не подходящие это инструменты.
Просто бы уволили, но платить ниже минимума не смогут по закону.
Я всегда стремился отличать Веру от Знания, чего и Вам желаю.
Я очень часто в юности слышал фразу: компилятор большой — ему видней. Так обычно оправдывались самые темные уголки кода или просто нежелание разбираться в вопросе. Иногда это оправдано, иногда — нет.
Грубо говоря, чтобы написать код на C, который будет производить такой же по производительности машинный код, надо всегда-всегда ставить эти макросы LIKELY/UNLIKELY. Как в ядре Linux.
Я правильно Вас понял что Ява обгонит по производительности аналогичный код написанный без LIKELY/UNLIKELY на С?
Очень много в нашей индустрии ругают своих коллег. На эту ситуацию можно посмотреть с другой стороны — заказчики возможно хотели 10 страниц в секунду за дешево, получили только 2, неудовлетворившись пошли уже к более квалифицированному инженеру из Германии (?), месячный оклад которого плюс соц. отчисления, налоги и прочее может прокормить маленькую деревушку в Индии в течении года.
Вопрос часто не стоит в качестве кода, а в том что требуется заказчику и насколько хороший результат он готов оплатить.
Они и пользовались во весь рост.
Результат оптимизации хороший, но так много статей «ОНИ vs Я» и так мало «посмотрите какой хороший код, мне бы так»
Как интересно, можете детальнее раскрыть свою мысль?
Не сточки зрения евангелизма, а с точки зрения здравого смысла. Почему был выбран этот инструмент?
Жаль что подобные материалы на Хабре редкость и почти что неформат.