LINUX.ORG.RU
ФорумTalks

ну тупыыыыые!

 ,


0

5

http://www.opennet.ru/opennews/art.shtml?num=43017

Зачем-то переписали DB с джавы на с++ и получили 10-кратное ускорение. Ну тупые! Разве они не знали, что надо подбирать железо под софт и просто докинуть памяти и побольше процессоров ставить?

★★★★★

Последнее исправление: cvs-255 (всего исправлений: 1)

1. Боян
2. В предыдущем топике по этой новости обсуждали, что тесты сомнительные и нужно смотреть на практике. Плюс, вроде, обсужали, что нанять джавистов и купить железо в разы дешевле, чем нанять плюсовиков, которые бы занимались разработкой проектов похожей сложности.

GblGbl ★★★★★
()

Можно было бы переписать на джаве и получить то же 10-кратное ускорение. Только помимо прочего ещё и значительно сократить число buffer overflows и прочей дряни.

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от GblGbl

Плюс, вроде, обсужали, что нанять джавистов и купить железо в разы дешевле, чем нанять плюсовиков, которые бы занимались разработкой проектов похожей сложности.

Не надо льстить плюсовикам - у них зарплата та же, что и у джавистов.

Pavval ★★★★★
()

Любому приличному Программисту известно, что программы на яве такие же быстрые, как и на плюсах!

anatoly
()
Ответ на: комментарий от anatoly

Конечно! Потому что их выполняет один и тот же Компьютер!

Pavval ★★★★★
()

Зачем-то переписали DB с джавы на с++ и получили 10-кратное ускорение

Не так. Зачем-то запилили свой собственный сетевой стек, напрямую работающий с сетевой картой, свою собственную очередь обработки пакетов вместо системной и прочие довольно специфичные вещи, и после этого получили 10-кратное ускорение. Язык здесь немного вторичен.

P.S. http://www.scylladb.com/img/network.png <----- вот это

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)

Мда, база данных с собственным сетевым стеком и прямой привязкой к драйверам сетевок карты. Воистину эталон для подражания.

morse ★★★★★
()
Ответ на: комментарий от Legioner

+1, никто не замечает слона в комнате, ключевое слово - «переписать», или синонимы «вычистить говно» или «использовать новые алгоритмы»

vertexua ★★★★★
()
Ответ на: комментарий от Legioner

Только помимо прочего ещё и значительно сократить число buffer overflows и прочей дряни.

А при чем тут C++?

asaw ★★★★★
()
Ответ на: комментарий от Legioner

При том, что в С++ легко допустить buffer overflow, расстрелять стек, чужую память и тд.

Написать херню и отстрелить ноги себе и вон тому парню — легко на любом языке. С другой стороны, более-менее опытные кодеры c++ редко допускают озвученные тобой ошибки. В c++ самое мерзкое — это внезапные UB.

Manhunt ★★★★★
()
Последнее исправление: Manhunt (всего исправлений: 1)
Ответ на: комментарий от Manhunt

Написать херню и отстрелить ноги себе и вон тому парню — легко на любом языке.

На Java хороший вопрос для собеседования с опытным разработчиком — как расстрелять память. На C++ — как не расстрелять память. Так что нет, не легко на любом языке. Иначе все писали бы на C++ до сих пор.

С другой стороны, более-менее опытные кодеры c++ редко допускают озвученные тобой ошибки.

А часто и не надо.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

На Java хороший вопрос для собеседования с опытным разработчиком — как расстрелять память.

Чтобы всё издохло в жуткой агонии, память расстреливать совсем не обязательно.

Manhunt ★★★★★
()
Ответ на: комментарий от EXL

Ура! Ещё один тред оправданий Java-программистов.

+1

andreyu ★★★★★
()
Ответ на: комментарий от vertexua

Это не совсем так, возможно в С - да, в С++ сейчас уже немного по другому все

for (int i = 0; j < 10; i++) {
  a[i] = 0xff;
}

Что тут не так? Что поможет не испортить стек?

Legioner ★★★★★
()
Ответ на: комментарий от vladimir_putin

Настолько бомбануло с фразы, что создал отдельный пост?
ЗЫ. кастую Kaschenko

Отлично, спасибо.
ТС,
1. Баян, есть на главной
2. Это ни разу не замена оригиналу, расписано там же.
3. Фишка в сетевом стеке, а не языке
4. Так что можешь продолжать бугуртить.

Kaschenko
()
Последнее исправление: Kaschenko (всего исправлений: 3)
Ответ на: комментарий от Legioner

Красавчик. Всегда хардкодишь размерности?

Pavval ★★★★★
()

Они ее переписали, этим собственно всё и сказано. Видимо с++ не подходит, чтобы на нем писать что-то новое, только code monkey для переписывания.

Tark ★★
()
Ответ на: комментарий от Legioner

Иначе все писали бы на C++ до сих пор

Там где нужна производительность все и пишут на С/С++ до сих пор, что не так?

mbivanyuk ★★★★★
()
Ответ на: комментарий от Legioner

При том, что в С++ легко допустить buffer overflow, расстрелять стек, чужую память и тд.

В джаве тоже есть 100500 способов выстрелить себе в ногу, это же не означает, что ими нужно пользоваться. Современный C++ позволяет вообще не думать о таких вещах, как buffer overflows, memory leaks и т.п. Поэтому все замечания подобного рода просто смешны.

asaw ★★★★★
()
Ответ на: комментарий от Manhunt

По ссылке null pointer dereference в С. И? В приличных проектах принято проверять указатели перед разыменованием, чтобы не получить по морде. Получить по морде - вполне defined behavior.

Pavval ★★★★★
()
Ответ на: комментарий от Pavval

В приличных проектах принято

Вообще-то по ссылке речь идёт об относительно приличном проекте.

Manhunt ★★★★★
()

Соседний тред тонко намекает. Хотя кресты тоже сомнительной нужности язык.

StReLoK ☆☆
()
Последнее исправление: StReLoK (всего исправлений: 1)
Ответ на: комментарий от Legioner

Какой-то странный вопрос. Во-первых, кто сказал, что именно стек? Во-вторых, в большинстве случаев сейчас используется range-based for loop (как и в джаве). В-третьих, используются специальные контейнеры вроде std::vector и std::array итерация по которым осуществляется с помощью итераторов. В-четвертых, вот была недавно тема: Опубликованы C++ Core Guidelines array_view - как раз про это. Так что C++ это действительно не C с классами, как многие продолжают думать.

asaw ★★★★★
()
Ответ на: комментарий от stevejobs

AGPLv3

ненужно

Почему бы? Граница лицензии проходит по границе процесса, поэтому тут сравнительно пофиг, пока не начинаешь патчить саму эту поделку.

x3al ★★★★★
()
Ответ на: комментарий от Legioner

Это тот самый печально известный подвид C++ программиста, работающего через «C с классами»?

Solace ★★
()
Ответ на: комментарий от kirk_johnson

NullPointerException полностью безопасен и ничего не портит. Он спокойно вылетит на определенный уровень залоггируется и система спокойно дальше будет работать. В отличие от.

Legioner ★★★★★
()
Ответ на: комментарий от asaw

Какой-то странный вопрос. Во-первых, кто сказал, что именно стек?

Я сказал. Пример же мой. Можно и кучу попортить, я не против.

Во-вторых, в большинстве случаев сейчас используется range-based for loop (как и в джаве).

А в меньшинстве используется индексированный доступ, как и в джаве. Даже в хорошем коде. А хороший код не везде.

В-третьих, используются специальные контейнеры вроде std::vector и std::array итерация по которым осуществляется с помощью итераторов.

По этим контейнерам интерация прекрасно осуществляется с помощью индексов, которые не проверяются и ничем не отличаются от сишного массива. А at никто не пишет.

В-четвертых, вот была недавно тема: Опубликованы C++ Core Guidelines array_view - как раз про это. Так что C++ это действительно не C с классами, как многие продолжают думать.

С++ это C с классами и шаблонами. То, что энтузиасты (мизерная доля от всех программистов на С++) пытаются на этом слепить безопасное подмножество языка, никуда не девает всё остальное (и всех остальных). Rust это не C с классами, это да. Тут соглашусь. А C++ это именно, что C с классами.

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от Legioner

for (int i = 0; j < 10; i++) {
a = 0xff;
}

Вижу С, не вижу C++.

Kroz ★★★★★
()
Ответ на: комментарий от Legioner

... А at никто не пишет. ...

Ну да, его просто так придумали. Ты просто пытаешься описать действительность такой, какой она тебе нравится, а она другая. И at() пишут, и статические подходы к контролю выхода за границы массива используют, если надо (можешь завидовать).

asaw ★★★★★
()
Ответ на: комментарий от Legioner

Кстати, в отличие от чего? В таком случае C не страшны segfaults - родительский процесс просто залоггирует ошибку и запустит новый.

asaw ★★★★★
()
Ответ на: комментарий от asaw

Кстати, в отличие от чего?

В отличие от одного процесса.

В таком случае C не страшны segfaults - родительский процесс просто залоггирует ошибку и запустит новый.

А с чего ты взял, что будет segfault? Это я примитивный пример привёл. В реальной жизни всё бывает куда сложнее. Попортили переменную выше по стеку. Вернулись, вернули клиенту неверный ответ. И дальше работаем. Отлавливать такую ошибку — врагу не пожелаешь.

Legioner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.