Re[11]: Что посоветуете как аналог С++
От: FR  
Дата: 20.06.13 09:18
Оценка:
Здравствуйте, gandjustas, Вы писали:

N>>Примеры в студию!

G>Сходи на MSDN глянь как в WinRT делать асинхронные вызовы в C++, а потом сравни с .NET и JS.

Тут http://msdn.microsoft.com/ru-ru/magazine/hh781020.aspx не так страшно как ты описываешь
Понятно что сахара с неявными продолжениями как в C# нет, но и на лямбдах, хоть и корявые они
в C++, вполне нормально.
Re[15]: Что посоветуете как аналог С++
От: FR  
Дата: 20.06.13 09:32
Оценка:
Здравствуйте, gandjustas, Вы писали:

MTD>>Не сложней, чем на Java, например.

G>Неправда твоя. Покажи как сделать продолжения и при этом не устраивать аццкие пляски с деаллокацией памяти.

В boost есть Coroutine

Микрософт в PPL поддерживает и асинхронность:
http://msdn.microsoft.com/en-us/library/dd492427.aspx
http://msdn.microsoft.com/en-us/library/dd492627.aspx
Re[16]: Что посоветуете как аналог С++
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 20.06.13 09:33
Оценка:
Здравствуйте, jazzer, Вы писали:

I>>Ну да, это ж я рассказываю как кругом всё шоколадно.


J>Нет, ты рассказываешь, что у тебя в проекте гонокод, и смело экстраполируешь это наблюдение на вообще все проекты на С++.


У меня в проекте нет С++ наверное с 2007го, иногда залажу посмотреть в сторонние проекты, так что ты промахнулся мимо унитаза
Re[14]: Что посоветуете как аналог С++
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 20.06.13 09:35
Оценка:
Здравствуйте, MTD, Вы писали:

I>>Вопросы перформанса уже давно стали большим, чем подсчет тактов процессора.


MTD>Опять бла-бла-бла. Ну и в чем конкретно в данных случаях преимущество перед плюсами? Или .Net чтобы данные прочитать диск не раскручивает, а из астрала их берет?


Например внятная асинхронщина.

I>>И как то глядя на винду с лялихом, совершенно не очевидно, что "не будить процесс" это легко.


MTD>Нет, это очень легко. Сам можешь посмотреть.


Результатов как то не наблюдаю
Re[17]: Что посоветуете как аналог С++
От: jazzer Россия Skype: enerjazzer
Дата: 20.06.13 09:37
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, jazzer, Вы писали:


I>>>Ну да, это ж я рассказываю как кругом всё шоколадно.


J>>Нет, ты рассказываешь, что у тебя в проекте гонокод, и смело экстраполируешь это наблюдение на вообще все проекты на С++.


I>У меня в проекте нет С++ наверное с 2007го, иногда залажу посмотреть в сторонние проекты, так что ты промахнулся мимо унитаза


ну ок, в соседнем проекте. Смелости твоих экстраполяций это не меняет.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[18]: Что посоветуете как аналог С++
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 20.06.13 09:47
Оценка:
Здравствуйте, jazzer, Вы писали:

J>>>Нет, ты рассказываешь, что у тебя в проекте гонокод, и смело экстраполируешь это наблюдение на вообще все проекты на С++.

I>>У меня в проекте нет С++ наверное с 2007го, иногда залажу посмотреть в сторонние проекты, так что ты промахнулся мимо унитаза

J>ну ок, в соседнем проекте. Смелости твоих экстраполяций это не меняет.


Сторонние это не соседние, а именно сторонние. Это значит, если непонятно, что ни я, ни команда, ни контора где я работал к ним не имели никакого отношения.
Re[19]: Что посоветуете как аналог С++
От: jazzer Россия Skype: enerjazzer
Дата: 20.06.13 10:01
Оценка: +3
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, jazzer, Вы писали:


J>>>>Нет, ты рассказываешь, что у тебя в проекте гонокод, и смело экстраполируешь это наблюдение на вообще все проекты на С++.

I>>>У меня в проекте нет С++ наверное с 2007го, иногда залажу посмотреть в сторонние проекты, так что ты промахнулся мимо унитаза

J>>ну ок, в соседнем проекте. Смелости твоих экстраполяций это не меняет.


I>Сторонние это не соседние, а именно сторонние. Это значит, если непонятно, что ни я, ни команда, ни контора где я работал к ним не имели никакого отношения.


Да пофиг. Беда в том, что ты по этим проектам делаешь космического масштаба выводы обо всех плюсовых проектах и плюсовых программерах.

Хотя, имхо, аргументация в стиле "С++ ущербен, я даже знаю несколько проектов с гонокодом внутри" несколько неубедительна, не находишь?
Потому что, ты не поверишь, наверное, но я тоже знаю несколько таких проектов, и в некоторых я даже имел сомнительное удовольствие работать.
И причина гонокодности была чисто административной.
Причем они не все были на С++, некоторые на Java. И почему же это я не делаю таких экстраполяций в отношении программеров на других языках...
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[14]: Что посоветуете как аналог С++
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 20.06.13 10:07
Оценка: +1
Здравствуйте, MTD, Вы писали:

I>>Ты получил внятный ответ — популярные десктоп приложения были написаны еще задолго до 2005го года. Дотнет на тот момент, если не понятно,еще пешком под стол ходил.


MTD>Стало быть их нет?


Кого нет ? Популярных приложений вообще раз два и обчелся, на десктопе такие приложения живут и развиваются по десятку лет и больше. А вот специализированых приложений вполне себе хватает. Софт навроде CAD сгодится ?

> C 2002 года, за 11 лет, всего одно приложение — Paint.NET? В тоже время сколько новых популярных приложений на умирающих плюсах появилось?


Ничего нового 'популярного' даже на плюсах не появилось.
Re[16]: Что посоветуете как аналог С++
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 20.06.13 10:17
Оценка: -1 :)
Здравствуйте, jazzer, Вы писали:

I>>>>В общем случае надо организовать корректную схему многопоточного взаимодействия, асинхронщину всякую. Вот это на с++ крайне сложно.

MTD>>>Не сложней, чем на Java, например.
G>>Неправда твоя. Покажи как сделать продолжения и при этом не устраивать аццкие пляски с деаллокацией памяти.

J>1. Передавать объекты по значению — вопроса деаллокации вообще не возникнет.

J>2. Передавать shared_ptr — все сдохнет автоматизированно.

J>хз что из этого ты называешь "аццкими плясками"


Хорош гнать пургу. Открой короутины буста

Boost.Coroutine is implemented around a stack switching model; that is, every time a coroutine is entered, the following actions are carried:

The caller instruction pointer and callee clobbered registers are saved on the caller stack (this is done automatically as part of the call to the context switching routine respectively by the compiler and by the CPU).
the set of callee save registers are saved by the context switching routine on the caller stack.
The caller stack pointer is saved inside the caller context structure. This structure is stored on the coroutine context if a yield_to or yield is being performed, else it is also on the caller stack.
The callee stack pointer is retrieved from the callee context structure and set as current stack pointer.
Callee save registers are popped from the callee stack.
The context switching routine returns, restoring automatically from the new stack the called coroutine instruction pointer and clobbered registers.


Про другому асинхронщину, многопоточность и тд в с++ не сделать.
Re[17]: Что посоветуете как аналог С++
От: jazzer Россия Skype: enerjazzer
Дата: 20.06.13 10:19
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, jazzer, Вы писали:


I>>>>>В общем случае надо организовать корректную схему многопоточного взаимодействия, асинхронщину всякую. Вот это на с++ крайне сложно.

MTD>>>>Не сложней, чем на Java, например.
G>>>Неправда твоя. Покажи как сделать продолжения и при этом не устраивать аццкие пляски с деаллокацией памяти.

J>>1. Передавать объекты по значению — вопроса деаллокации вообще не возникнет.

J>>2. Передавать shared_ptr — все сдохнет автоматизированно.

J>>хз что из этого ты называешь "аццкими плясками"


I>Хорош гнать пургу. Открой короутины буста

I>Про другому асинхронщину, многопоточность и тд в с++ не сделать.

Да что ты говоришь! Открой для себя Boost.Asio.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[18]: Что посоветуете как аналог С++
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 20.06.13 10:30
Оценка: -1
Здравствуйте, jazzer, Вы писали:

I>>Хорош гнать пургу. Открой короутины буста

I>>Про другому асинхронщину, многопоточность и тд в с++ не сделать.

J>Да что ты говоришь! Открой для себя Boost.Asio.


Это низкоуровневый отстой.
Re[19]: Что посоветуете как аналог С++
От: jazzer Россия Skype: enerjazzer
Дата: 20.06.13 10:32
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, jazzer, Вы писали:


I>>>Хорош гнать пургу. Открой короутины буста

I>>>Про другому асинхронщину, многопоточность и тд в с++ не сделать.

J>>Да что ты говоришь! Открой для себя Boost.Asio.


I>Это низкоуровневый отстой.


Убедительность аргументации повергла меня в трепет.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[20]: Что посоветуете как аналог С++
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 20.06.13 10:32
Оценка:
Здравствуйте, jazzer, Вы писали:

J>>>ну ок, в соседнем проекте. Смелости твоих экстраполяций это не меняет.

I>>Сторонние это не соседние, а именно сторонние. Это значит, если непонятно, что ни я, ни команда, ни контора где я работал к ним не имели никакого отношения.

J>Да пофиг. Беда в том, что ты по этим проектам делаешь космического масштаба выводы обо всех плюсовых проектах и плюсовых программерах.

J>Хотя, имхо, аргументация в стиле "С++ ущербен, я даже знаю несколько проектов с гонокодом внутри" несколько неубедительна, не находишь?

Если бы проектов было несколько, всё было бы очень даже хорошо.
Re[20]: Что посоветуете как аналог С++
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 20.06.13 10:46
Оценка:
Здравствуйте, jazzer, Вы писали:

I>>Это низкоуровневый отстой.


J>Убедительность аргументации повергла меня в трепет.


Покажи мне аналог в asio для вот для такого псевдокода

private async void handler(object sender, TaskArgs args)
{
    string result = await new Task(() => Download(args.Url), args.Cancellation);

    textBox.Text += result;
}



Итого — функция которая асинхронно скачивает файлик, показывает его и дает возможность отменить скачивание. Всех библиотек можешь использовать только asio и мульку для скачивания.
Re[16]: Что посоветуете как аналог С++
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 20.06.13 10:56
Оценка:
Здравствуйте, FR, Вы писали:

FR>Здравствуйте, gandjustas, Вы писали:


MTD>>>Не сложней, чем на Java, например.

G>>Неправда твоя. Покажи как сделать продолжения и при этом не устраивать аццкие пляски с деаллокацией памяти.

FR>В boost есть Coroutine


Boost.Coroutine is implemented around a stack switching model; that is, every time a coroutine is entered, the following actions are carried:

The caller instruction pointer and callee clobbered registers are saved on the caller stack (this is done automatically as part of the call to the context switching routine respectively by the compiler and by the CPU).
the set of callee save registers are saved by the context switching routine on the caller stack.
The caller stack pointer is saved inside the caller context structure. This structure is stored on the coroutine context if a yield_to or yield is being performed, else it is also on the caller stack.
The callee stack pointer is retrieved from the callee context structure and set as current stack pointer.
Callee save registers are popped from the callee stack.
The context switching routine returns, restoring automatically from the new stack the called coroutine instruction pointer and clobbered registers.


По моему это есть всяких сортов пляски. Хотя я не уверен, давно пора пляски с памятью и стеком сделать частью языка С++, как это было сделано со смартпоинтерами. Тогда уж точно нельзя будет придраться
Re[17]: Что посоветуете как аналог С++
От: FR  
Дата: 20.06.13 11:04
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>По моему это есть всяких сортов пляски. Хотя я не уверен, давно пора пляски с памятью и стеком сделать частью языка С++, как это было сделано со смартпоинтерами. Тогда уж точно нельзя будет придраться


Как будто код с async который ты чуть выше привел не занимается за кулисами тем же самым.
Re[16]: Что посоветуете как аналог С++
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 20.06.13 11:04
Оценка:
Здравствуйте, FR, Вы писали:

FR>Здравствуйте, gandjustas, Вы писали:


MTD>>>Не сложней, чем на Java, например.

G>>Неправда твоя. Покажи как сделать продолжения и при этом не устраивать аццкие пляски с деаллокацией памяти.

FR>В boost есть Coroutine

А пример использования есть?
Корутины и продолжения не одно и тоже, но стоит глянуть как оно реализовано.

FR>Микрософт в PPL поддерживает и асинхронность:

FR>http://msdn.microsoft.com/en-us/library/dd492427.aspx
FR>http://msdn.microsoft.com/en-us/library/dd492627.aspx
Угу, посмотри примеры. Как минимум 10 строк, там где C# укладывается в одну. И это еще нету передачи данных между асинхронными вызовами.

Я об этом и говорю, вся стройность RAII рассыпается из-за продолжений.
Re[12]: Что посоветуете как аналог С++
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 20.06.13 11:08
Оценка:
Здравствуйте, FR, Вы писали:

FR>Здравствуйте, gandjustas, Вы писали:


N>>>Примеры в студию!

G>>Сходи на MSDN глянь как в WinRT делать асинхронные вызовы в C++, а потом сравни с .NET и JS.

FR>Тут http://msdn.microsoft.com/ru-ru/magazine/hh781020.aspx не так страшно как ты описываешь

FR>Понятно что сахара с неявными продолжениями как в C# нет, но и на лямбдах, хоть и корявые они
FR>в C++, вполне нормально.

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

Сразу код станет нечитаем совершенно.

А без этого никак. Никто тебе в UI потоке не позволит ожидание завершения IO делать.
Re[21]: Что посоветуете как аналог С++
От: FR  
Дата: 20.06.13 11:08
Оценка:
Здравствуйте, Ikemefula, Вы писали:


I>Покажи мне аналог в asio для вот для такого псевдокода


Если взять микрософтовский WinRT/PPL будет точно также с учетом того
что нет C# сахара с неявными продолжениями, вместо них придется выписывать
явные лямбды, вот первый пример здесь примерно на эту же тему.
Re[15]: Что посоветуете как аналог С++
От: MTD https://github.com/mtrempoltsev
Дата: 20.06.13 11:10
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>Кстати, да, сколько? Сколько новых популярных десктопных приложений появилось на плюсах за последние годы?


Много. Только из того, что у меня сейчас открыто: Google Chrome, Skype, Virtual Box, Qt Creator.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.