powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / На чём лучше писать код при одинаковом количестве строк: на C или на C++?
25 сообщений из 474, страница 11 из 19
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
    #39494874
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вася Уткинdbpatchи ввести правило - один клиент, один процесс.
dbpatchИли ты всерьез считаешь, что количество кассиров на кассах должно быть равно числу покупателей в торговом зале?
«Одной из разновидностей шизофренического раздвоения личности выступает агрессивное и истерическое требование чего-либо у самого себя с принципиальным и систематическим отказом себе»
Общая психиатрия, М., 1966

себя проверить не пробовал?

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

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

так работает любая не шизофреническая огранизация - от банков, магазинов до каких ЕРКЦ. и это нормально, число обработчиков должно быть фиксировано, ибо рост числа оных лишь уменьшит общую пропускную способность - они будут мешать друг другу
в борьбе за общие ресурсы (в реальной жизни - в борьбе за, к примеру, общий принтер в зале, в виртуальной - за диск, свободную память, процессор, за базу данных, т.п.).
...
Рейтинг: 0 / 0
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
    #39494942
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_ruП осинтаксису языка, совершенно необязательно писать все define...handler в виде единого блока. Просто "оно само так получается". Наоборот, сишный try-catch вносит ненужное разнообразие. Вот есть у вас функция, которая получает блок данных предположительно соответствующих некоему формату, и пихает их в новый файл. Есть у неё два регулярно встречающихся особых случая. Один --- несоответствие формату, что проверяется вызовом валидатора перед открытием файла, и второй --- errno в файловой операции. Почему ветки кода для них должны быть записаны в разных концах функции? :)
Иван! Вы - хитрый баламут!
...
Рейтинг: 0 / 0
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
    #39494944
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbpatchAnatoly Moskovskyпропущено...

А если в демоне происходит, ну допустим ошибка в одном подкюченных сеансов - это тоже помереть? Вместе с тысячами других сеансов, где не было ошибки?

в том-то и дело, что это ок :)

полезно иногда смотреть по сторонам, как у других людей сделано. к примеру в Erlang и PHP (внезапно) подобное поведение является by-design.

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

т.е. там можно конечно обрабатывать исключения, но в базовой философии - это как раз не нужно делать, live-to-die, умри молодым :)

возвращаясь к "нашим баранам" - в Erlang все окружение полностью контролируется средой, dangling pointer не возможны в принципе, 100500 процессов это не тру процессы с точки зрения O/S, а самые обычные корутины и там это реально работает,
ибо среда выполнения это все контролирует.
Ну... при слове Erlang я напрягся как тигр перед броском.

Этот язык или парадигма вызывает у меня смесь удивления и восхищения. Но я прошу заметить
что писать Erlang и PHP через запятую не стоит. Слишком велика разница.

В тему обработки исключений. Нам не достаточно "пристреливать" процесс в случае краха Http
request. В большинстве высокоуровневых языков нам надо принимать решение.
...
Рейтинг: 0 / 0
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
    #39494945
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_ru
Код: plsql
1.
2.
3.
4.
5.
6.
{
declare exit handler for sqlstate "xxxxx" { обработчик состояний }
declare exit handler for sqlstate "yyyyy" { обработчик других состояний }
declare exit handler for sqlstate "*" { обработчик для всего, что неуспех }
код на случай выпадения счастливого билетика в виде нерукожопого админа, который сконфигурял-таки драйвер
}


Кстати по ходу мимо я замечу что в этом фрагменте кода нет иерархии обработчиков исключений.
...
Рейтинг: 0 / 0
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
    #39494949
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbpatchа проблему 100500 клиентов обычно решает рядом стоящий nginx - использовать апач для коммуникации с какой edge мобилкой за 2000 км слишком дорого - апачу проще отдать весь ответ nginx-у, а самому заняться другим клиентом-запросом, чем держать выделенный процесс десятки секунд просто для того, чтоб отдать десяток килобайт
Мне как-то пришлось пообщаться с игроделами которые кодят MMORG.
(Клиент на Unity, сервер - на Java). Так вот они везде используют netty.
Это веб-сервер и сокет сервер, работа которого базируется на том что
потоки привязаны не к сокетам а к т.н каналу (channel) сетевого стека.
Это мультиплексированный I/O только в концепции java.
...
Рейтинг: 0 / 0
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
    #39494952
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbpatchС какого перепугу? nginx априори стабилен, там нет прикладного кода, все переходы и диаграммы состояний детерменированы,
там просто нечему падать, ибо круг его задач (и пространство падений) жестко ограничен.
Ггггг. Был у меня один знакомый, который утверждал что в его коде нет ошибок, потому что он применяет определенный метод разработки.
Естественно там был баг на баге. Чувствую вы братья. По слепоте ))
...
Рейтинг: 0 / 0
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
    #39494973
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вася Уткинdbpatchи ввести правило - один клиент, один процесс.
dbpatchИли ты всерьез считаешь, что количество кассиров на кассах должно быть равно числу покупателей в торговом зале?
«Одной из разновидностей шизофренического раздвоения личности выступает агрессивное и истерическое требование чего-либо у самого себя с принципиальным и систематическим отказом себе»
Общая психиатрия, М., 1966
Согласен. Болеет или пьет!

Требуется доктор Ливси.

Кстати у меня год назад вышел конфликт с людьми, утверждающими, что проверка "черного ящика" по методу КА - идеальный метод, исключающий отладку.

В итоге я вспомнил начала комбинаторики и показал, что проверка КА есть функция с факториальной зависимостью от числа входных параметров.
...
Рейтинг: 0 / 0
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
    #39494984
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytoniv_an_ru
Код: plsql
1.
2.
3.
4.
5.
6.
{
declare exit handler for sqlstate "xxxxx" { обработчик состояний }
declare exit handler for sqlstate "yyyyy" { обработчик других состояний }
declare exit handler for sqlstate "*" { обработчик для всего, что неуспех }
код на случай выпадения счастливого билетика в виде нерукожопого админа, который сконфигурял-таки драйвер
}


Кстати по ходу мимо я замечу что в этом фрагменте кода нет иерархии обработчиков исключений.Ну вот, не дали приврать для красоты :( Вы правы, очень немногие системы не поленятся сами отсортировать хандлеры по иерархии в луче кода. И в чём-то их авторов можно понять. Во-первых, при добавлении сортировки теряется совместимость по ошибкам с системами более ленивых авторов. Во-вторых, синтаксис не запрещает кодеру хранимок написать маразм, с которым просто непонятно, что делать:

Код: plsql
1.
2.
3.
4.
5.
{
declare exit handler for sqlstate "xx*" { обработчик №1 }
declare exit handler for sqlstate "xxxxx", "*" { обработчик №2 }
код для получения signal-ов и чего-нибудь полезного
}


Обработчик №1 должен быть глубже в стеке, чем обработчик №2, ведь "xxxxx" --- более частный случай, чем "xx*". В то же время
Обработчик №2 должен быть глубже в стеке, чем обработчик №1, ведь "xx*" --- более частный случай, чем "*". И нельзя неявно заменить на
Код: plsql
1.
2.
3.
4.
5.
6.
{
declare exit handler for sqlstate "xx*" { обработчик №1 }
declare exit handler for sqlstate "xxxxx" { обработчик №2 }
declare exit handler for sqlstate "*" { клон обработчика №2 }
код для получения signal-ов и чего-нибудь полезного
}


и отсортировать, потому что для этого надо написать процедуру клонирования кода, а на это никто времени не даст. Тупо скопировать нельзя --- если в обработчике есть метка и goto, то после копирования будет ошибка duplicate label :)
...
Рейтинг: 0 / 0
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
    #39495075
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbpatchздесь же вопрос о том, как построить среду, который будет запускать априори unstable решения - прикладной код, который пишет один девелопер, и второй - не факт что хоть когда-нибудь ревьювит, а регрессионных и прочих тестов нет вообще.

причем так, чтоб и зависания сами решались, и утечки памяти - тоже сами как-то устранялись и не били OOM killerом по первым попавшимся под руку и т.п.Safe code и GC в богомерзких .Net/Java всех спасут.
...
Рейтинг: 0 / 0
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
    #39495083
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё бывают списки исключений, упомяну об этом навсякий.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
foreach (var item in items)
{
    try
    {
        Execute(item);
    }
    catch (Exception e)
    {
        throw new Exception("Ошибка обработки: " + item.Name, e /* <---- InnerException */);
    }
}
...
Рейтинг: 0 / 0
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
    #39495223
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskydbpatchС какого перепугу? nginx априори стабилен, там нет прикладного кода, все переходы и диаграммы состояний детерменированы,
там просто нечему падать, ибо круг его задач (и пространство падений) жестко ограничен.
Ггггг. Был у меня один знакомый, который утверждал что в его коде нет ошибок, потому что он применяет определенный метод разработки.
Естественно там был баг на баге. Чувствую вы братья. По слепоте ))

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

это просто отказо-дуркакоустойчивый системный компонент
...
Рейтинг: 0 / 0
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
    #39495230
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytondbpatchпропущено...


в том-то и дело, что это ок :)

полезно иногда смотреть по сторонам, как у других людей сделано. к примеру в Erlang и PHP (внезапно) подобное поведение является by-design.

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

т.е. там можно конечно обрабатывать исключения, но в базовой философии - это как раз не нужно делать, live-to-die, умри молодым :)

возвращаясь к "нашим баранам" - в Erlang все окружение полностью контролируется средой, dangling pointer не возможны в принципе, 100500 процессов это не тру процессы с точки зрения O/S, а самые обычные корутины и там это реально работает,
ибо среда выполнения это все контролирует.
Ну... при слове Erlang я напрягся как тигр перед броском.

Этот язык или парадигма вызывает у меня смесь удивления и восхищения. Но я прошу заметить
что писать Erlang и PHP через запятую не стоит. Слишком велика разница.

В тему обработки исключений. Нам не достаточно "пристреливать" процесс в случае краха Http
request. В большинстве высокоуровневых языков нам надо принимать решение.

Erlang как язык, ИМХО - полная ерунда. Я прочитал книги три по нему, и ни разу не "возбудился". Отсутсвие строк и даже for
Там не сам язык интересен, а принципы, заложенные в его базовое окружение/фреймворк/библиотеку.

Модель акторов, принцип обработки ошибок в т.ч.

Они в книгах описаны общими словами, можно даже не проникаться чудным Prolog образным синтаксисом.
...
Рейтинг: 0 / 0
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
    #39495236
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Кdbpatchздесь же вопрос о том, как построить среду, который будет запускать априори unstable решения - прикладной код, который пишет один девелопер, и второй - не факт что хоть когда-нибудь ревьювит, а регрессионных и прочих тестов нет вообще.

причем так, чтоб и зависания сами решались, и утечки памяти - тоже сами как-то устранялись и не били OOM killerом по первым попавшимся под руку и т.п.Safe code и GC в богомерзких .Net/Java всех спасут.

Не спасут, увы. Потому что они там безграмотно сделаны - GC он общий на всех, freeze the world и прочие не прикольные штуки в догонку. Проблемы с сотнями гигабайт кучи (слишком долго чистится и т.п.).

Причем оптимизационные припарки слабо помогают, сколько парни не тужатся.

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

Красота.

А Java/.NET - фуфуфу, не респект.

ARC (и SmartPointer в т.ч.) - тоже кстати не айс (промахи в кеши и в целом натужное рандомизированное хождение по объектам, хотя можно было бы "чистить" память одним махом - просто сбрасывая HWM в ноль в локальной куче завершившейся корутины/процесса.
...
Рейтинг: 0 / 0
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
    #39495255
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbpatchJava/.NET - фуфуфу, не респект.Java много лет была сначала совсем фуфуфу, потом просто фуфуфу, а потом Solr наглядно продемонстрировал, что и на Яве уже можно писать очень быстрые и масштабируемые вещи, было бы умение.
...
Рейтинг: 0 / 0
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
    #39495283
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rudbpatchJava/.NET - фуфуфу, не респект.Java много лет была сначала совсем фуфуфу, потом просто фуфуфу, а потом Solr наглядно продемонстрировал, что и на Яве уже можно писать очень быстрые и масштабируемые вещи, было бы умение.

чуваки с одноклассников тоже продемонстрировали https://habrahabr.ru/company/odnoklassniki/blog/139185/
как говорится - с чего начали, туда и пришли.

не убедительно.

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

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

но вообще это офтопик
...
Рейтинг: 0 / 0
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
    #39495358
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Развели флудильню...
...
Рейтинг: 0 / 0
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
    #39495455
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rudbpatchJava/.NET - фуфуфу, не респект.Java много лет была сначала совсем фуфуфу, потом просто фуфуфу, а потом Solr наглядно продемонстрировал, что и на Яве уже можно писать очень быстрые и масштабируемые вещи, было бы умение.

Ну, там же теперь Гай Стил заправляет, так что делает из говна конфетку...
...
Рейтинг: 0 / 0
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
    #39495457
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbpatchJava относительно хороша в классе веб приложений, прямо под них и заточена -


Ну не надо, а?
Заточена она под программирование утюгов и сковородок.
Для Web-приложений она -- не, ну применяется наверное иногда, но всё меньше и меньше.
Она для WEB-приложений малоудобна.
Для возможности разработки бизнес -приложений (т.н. бэкендов) на Java было сделано много усилий, и в этой нише она пока ещё вроде бы держится.
...
Рейтинг: 0 / 0
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
    #39495490
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivdbpatchJava относительно хороша в классе веб приложений, прямо под них и заточена -


Ну не надо, а?
Заточена она под программирование утюгов и сковородок.
Для Web-приложений она -- не, ну применяется наверное иногда, но всё меньше и меньше.
Она для WEB-приложений малоудобна.
Для возможности разработки бизнес -приложений (т.н. бэкендов) на Java было сделано много усилий, и в этой нише она пока ещё вроде бы держится.

я не имел в виду апплеты. а "бэкэнды" они в большинстве случаев веб ориентированные, в конечном итоге, так что не надо.
если вон глянуть все актуальные (развивающиеся в последнее время библиотеки) для Java - то там web торчит практически повсеместно (от Spring и далее).
...
Рейтинг: 0 / 0
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
    #39495559
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbpatchJava относительно хороша в классе веб приложений, прямо под них и заточена - относительно небольшой жизненный цикл веб реквеста позволяет быстренько нааллоцировать немного из кучи, и в конце так-же быстро прибить выделенное, пока оно не перекочевало в "долгую" кучу.

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

Cassandra - достаточно долгоиграющая. И непонятно что там и где закончилось "пшиком". И где есть
манифест или нота о том что дескыть "пшик" объявлен.

Ох вы и плут, коллега...
...
Рейтинг: 0 / 0
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
    #39495686
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivЗаточена она под программирование утюгов и сковородок.
Для Web-приложений она -- не, ну применяется наверное иногда, но всё меньше и меньше.
Она для WEB-приложений малоудобна.а что сейчас лучше для веб-приложений? Я новичок во всех этих веб-технологиях, но если на сервера приложений обычно деплоят war/ear-ники, то как дело обстоит с веб-приложениями, сделанными на других средствах?

Btw, http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html - рейтинг языков

Go пора учить?
...
Рейтинг: 0 / 0
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
    #39495705
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytondbpatchJava относительно хороша в классе веб приложений, прямо под них и заточена - относительно небольшой жизненный цикл веб реквеста позволяет быстренько нааллоцировать немного из кучи, и в конце так-же быстро прибить выделенное, пока оно не перекочевало в "долгую" кучу.

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

Cassandra - достаточно долгоиграющая. И непонятно что там и где закончилось "пшиком". И где есть
манифест или нота о том что дескыть "пшик" объявлен.

Ох вы и плут, коллега...
а есть ещё?
кстати там как раз используются все нативные штучки работы с памятью , и стоило тогда использовать язык с GC?
...
Рейтинг: 0 / 0
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
    #39495707
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати очень хорошо что был упомянут golang.

Если мы обсуждали недостатки программирования try-catch то мы должны были выставить в сравнение
Метод который принят в этом языке.

Иван! Где вы!
...
Рейтинг: 0 / 0
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
    #39495715
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКстати очень хорошо что был упомянут golang.

Если мы обсуждали недостатки программирования try-catch то мы должны были выставить в сравнение
Метод который принят в этом языке.

Иван! Где вы!Когда я смотрел на только-только свежеопубликованный go, в нём try-catch вообще не было. Ну, тоже метод :) Как там сейчас, через 10 лет --- не знаю, не смотрел, ибо что мне писать на платформе со stop-the-world GC?
...
Рейтинг: 0 / 0
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
    #39495717
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКстати очень хорошо что был упомянут golang.

Если мы обсуждали недостатки программирования try-catch то мы должны были выставить в сравнение
Метод который принят в этом языке.

Иван! Где вы!
ИМХО ужасно , нафиг такую муть
и призывы Ивана по возврату к бейсику не особо поддерживаю
...
Рейтинг: 0 / 0
25 сообщений из 474, страница 11 из 19
Форумы / Программирование [игнор отключен] [закрыт для гостей] / На чём лучше писать код при одинаковом количестве строк: на C или на C++?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]