Re[46]: Работа - с чего начать: С++ или С#?
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 07.05.09 03:11
Оценка: 1 (1) +2 -1 :)
Здравствуйте, gandjustas, Вы писали:

G>>>Может всетаки уже стоит признать что в С++ в обозримом будущем не будет нормальных лямбд.

ГВ>>Знаешь, это очень сильное колдунство — признавать отсутствие наличествующего. "Видишь суслика? А его нет!"
G>Точно, ты ведь до сих пор не признаешь что нету и не будет в С++ нормальных лямбд, а в других языках есть.

Круто, давно не встречал фраз, построенных таким образом. Ты меня, правда, за ребёнка держишь? Или за подчинённого, которого можно заставить верить в любую ахинею? Ладно, шутка, не обижайся.

Теперь — по топику.

Я признаю наличие в других языках других реализаций лямбд. Но я не считаю "единственно нормальной" реализацию лямбд в каком-то определённом языке, или их наборе. Например, то, что лямбды в "других" языках непременно требуют вовлечения GC я считаю изъяном их реализации, пусть и повсеместно встречающимся. Я, например, знаю, что использование лямбда-выражений не всегда требует отдельного управления жизненным циклом замкнутых переменных. Отсюда, я не думаю, что непременное привлечение GC — "нормально", т.е., сродни эталону.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[46]: Ещё Addon
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 07.05.09 03:31
Оценка:
G>Точно, ты ведь до сих пор не признаешь что нету и не будет в С++ нормальных лямбд, а в других языках есть.

Ты только функциональщикам не говори о "нормальности" лямбд, допускающих побочные эффекты. Могут и на смех поднять.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[47]: Работа - с чего начать: С++ или С#?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 07.05.09 05:33
Оценка: +1
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Я признаю наличие в других языках других реализаций лямбд. Но я не считаю "единственно нормальной" реализацию лямбд в каком-то определённом языке, или их наборе. Например, то, что лямбды в "других" языках непременно требуют вовлечения GC я считаю изъяном их реализации, пусть и повсеместно встречающимся. Я, например, знаю, что использование лямбда-выражений не всегда требует отдельного управления жизненным циклом замкнутых переменных. Отсюда, я не думаю, что непременное привлечение GC — "нормально", т.е., сродни эталону.

А другие варианты есть? Явное управление временем жизни не подойдет, надеюсь это понятно.
Re[48]: Работа - с чего начать: С++ или С#?
От: criosray  
Дата: 07.05.09 06:35
Оценка:
Здравствуйте, gandjustas, Вы писали:


G>А другие варианты есть? Явное управление временем жизни не подойдет, надеюсь это понятно.


Вариантов нет. Не спорьте с ним — пустая трата времени.
Re[44]: Работа - с чего начать: С++ или С#?
От: Sinclair Россия https://github.com/evilguest/
Дата: 07.05.09 08:16
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Ну ё-моё, ты хоть прочти то, чему возражаешь:


ГВ>

Больше того, даже два использования какой-нибудь коротенькой лямбды типа "x >= SOMETHING_LOW && x <= SOMETHING_HIGH" уже побуждают сделать вместо неё обычную функцию или функтор, и обращаться к ним по собственному имени.

И что? От двукратного прочтения фигня фигней быть не перестанет.
Потому, что два использования коротенькой лямбды типа "x >= SOMETHING_LOW && x <= SOMETHING_HIGH" побуждают к вот такому:

var isWithinRange = (int x) => x >= SOMETHING_LOW && x <= SOMETHING_HIGH;

А вовсе не к обычной функции или функтору. Потому, что так — удобно.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[40]: Работа - с чего начать: С++ или С#?
От: CreatorCray  
Дата: 07.05.09 09:14
Оценка: :)
Здравствуйте, VladD2, Вы писали:

VD>Для особо одаренных повторяю. Нет никакого С++0х. С++0х — это рабочее название черновика.

Камрад, от того, что ты твердишь "нету его" он не исчезнет.
Он есть, и используется. Это факт.

VD>А в "кампилирах" есть еще свойства и поддержка COM. И что с того?

Это к терапевту.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[42]: Работа - с чего начать: С++ или С#?
От: CreatorCray  
Дата: 07.05.09 09:14
Оценка:
Здравствуйте, VladD2, Вы писали:

ГВ>>В компиляторах много чего есть, но не всё из этого планируется к принятию в виде стандарта.

VD>Оно уже 11 лет планируется. Так что говорить о чем-то будет можно только когда стандарт выйдет. О чем я и говорил.
Ты так цепляешься за жалкую отмазку "еще не вышел" как будто больше сказать нечего.
Какая мне например разница, вышел он или нет. Гораздо важнее что уже есть реализация в промышленных компиляторах.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[44]: Работа - с чего начать: С++ или С#?
От: CreatorCray  
Дата: 07.05.09 09:14
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Никаких расширений пока нет. Речь идет о бэтах которые не зарелизятся до 2010 года.

Ты это интелу расскажи, а то пацаны не в курсе.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re: Работа - с чего начать: С++ или С#?
От: max-maxtor Россия www.rsdn.ru
Дата: 07.05.09 11:31
Оценка: :)))
Здравствуйте, niellune, Вы писали:

N>Здравствуйте! Нужен ваш совет))

N>Но php мне уже мало и он мне порядком надоел, хочется развиваться дальше.

Купи надувную бабу.
Re[41]: Работа - с чего начать: С++ или С#?
От: VladD2 Российская Империя www.nemerle.org
Дата: 07.05.09 11:45
Оценка: :))) :)
Здравствуйте, CreatorCray, Вы писали:

VD>>Для особо одаренных повторяю. Нет никакого С++0х. С++0х — это рабочее название черновика.

CC>Камрад, от того, что ты твердишь "нету его" он не исчезнет.
CC>Он есть, и используется. Это факт.

Есть он только в твоем воображении. То что кто-то использует черти что созданное на основе черновиков — это их личная инициатива. Не более того.

VD>>А в "кампилирах" есть еще свойства и поддержка COM. И что с того?

CC>Это к терапевту.

Умора, клиенты психиатров отправляют к терапевтам.
Ладно, разговоры в подобном ключе меня не интересуют.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[42]: Работа - с чего начать: С++ или С#?
От: CreatorCray  
Дата: 07.05.09 12:10
Оценка: +2 :)
Здравствуйте, VladD2, Вы писали:

VD>Умора, клиенты психиатров отправляют к терапевтам.

Во!
Теперь узнаю старого доброго ВладД2.

VD>Ладно, разговоры в подобном ключе меня не интересуют.

Симметрично.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[45]: Работа - с чего начать: С++ или С#?
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 07.05.09 12:38
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Потому, что два использования коротенькой лямбды типа "x >= SOMETHING_LOW && x <= SOMETHING_HIGH" побуждают к вот такому:


S>
S>var isWithinRange = (int x) => x >= SOMETHING_LOW && x <= SOMETHING_HIGH;
S>

S>А вовсе не к обычной функции или функтору. Потому, что так — удобно.

Гы-гы.

auto isWithinRange = [](int x) -> bool { return x >= SOMETHING_LOW && x <= SOMETHING_HIGH; }


vs.

inline bool isWithinRange(int x) { return x >= SOMETHING_LOW && x <= SOMETHING_HIGH; }


Обрати внимание, функцию с именем isWithinRange невозможно подменить в рантайме.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[48]: Работа - с чего начать: С++ или С#?
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 07.05.09 12:50
Оценка:
Здравствуйте, gandjustas, Вы писали:

ГВ>>Я признаю наличие в других языках других реализаций лямбд. Но я не считаю "единственно нормальной" реализацию лямбд в каком-то определённом языке, или их наборе. Например, то, что лямбды в "других" языках непременно требуют вовлечения GC я считаю изъяном их реализации, пусть и повсеместно встречающимся. Я, например, знаю, что использование лямбда-выражений не всегда требует отдельного управления жизненным циклом замкнутых переменных. Отсюда, я не думаю, что непременное привлечение GC — "нормально", т.е., сродни эталону.

G>А другие варианты есть? Явное управление временем жизни не подойдет, надеюсь это понятно.

Да варианты-то самые обыкновенные: от отсутствия специального управления, до подсчёта ссылок и опционального (!) GC. Пойми, я не против GC самого по себе, я не люблю, когда мне его навязывают в обязательном порядке. Вот в маленькой локальной лямбде:

int upper = ...;
it = find_if(v.begin(), v.end(), [=](int x) -> bool { return x >= 0 && x <= upper; })


на фига GC? Здесь вполне достаточно снапшота по значению. Её вообще имеет смысл всю инлайнировать (кстати, я охотно допускаю, что JIT именно так и поступит). И ещё в десятках ситуаций, когда время существования вовлечённых объектов гарантированно превышает время существования лямбды — зачем GC? Зачем GC вообще ставить в известность о том, что ты создаёшь какую-то там лямбду, когда ты на 100% уверен, что она будет удалена до того, как пропадут использованные ей объекты?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re: Работа - с чего начать: С++ или С#?
От: max-maxtor Россия www.rsdn.ru
Дата: 07.05.09 13:04
Оценка: +1 :))
Здравствуйте, niellune, Вы писали:

N>Здравствуйте! Нужен ваш совет))

N>Дело в том что мне нравится язык C++ и меня интересует есть ли сейчас возможность устроиться куда-нибудь на начальную позицию?
N>В каких областях сейчас применяется C++?

N>Может легче сначала пойти на С#, а потом перейти на С++ или сразу искать вакансии С++

N>Просто мне кажется, что объем знаний С++ требуется гораздо больший, а хочется работать и набираться опыта..

N>У меня есть опыт работы на php, причем не только web, а еще что-то вроде создания системы документооборота)

N>Но php мне уже мало и он мне порядком надоел, хочется развиваться дальше.

Моё мнение C# не очень хорошее решение, если вы не собираетесь связать свою судьбу с виндовс на каком-то относительно непродолжительном участке времени. C++ поддерживается всеми платформами. Ждёт его судьба бейсика. Это моё виденье данной проблемы.
Re[42]: Работа - с чего начать: С++ или С#?
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 07.05.09 13:06
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Есть он только в твоем воображении. То что кто-то использует черти что созданное на основе черновиков — это их личная инициатива. Не более того.


А Microsoft с Intel-ом и не знают, что они отсебятину несут.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[49]: Работа - с чего начать: С++ или С#?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 07.05.09 13:09
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

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


ГВ>>>Я признаю наличие в других языках других реализаций лямбд. Но я не считаю "единственно нормальной" реализацию лямбд в каком-то определённом языке, или их наборе. Например, то, что лямбды в "других" языках непременно требуют вовлечения GC я считаю изъяном их реализации, пусть и повсеместно встречающимся. Я, например, знаю, что использование лямбда-выражений не всегда требует отдельного управления жизненным циклом замкнутых переменных. Отсюда, я не думаю, что непременное привлечение GC — "нормально", т.е., сродни эталону.

G>>А другие варианты есть? Явное управление временем жизни не подойдет, надеюсь это понятно.

ГВ>Да варианты-то самые обыкновенные: от отсутствия специального управления, до подсчёта ссылок и опционального (!) GC. Пойми, я не против GC самого по себе, я не люблю, когда мне его навязывают в обязательном порядке. Вот в маленькой локальной лямбде:


ГВ>
ГВ>int upper = ...;
ГВ>it = find_if(v.begin(), v.end(), [=](int x) -> bool { return x >= 0 && x <= upper; })
ГВ>


ГВ>на фига GC? Здесь вполне достаточно снапшота по значению. Её вообще имеет смысл всю инлайнировать (кстати, я охотно допускаю, что JIT именно так и поступит). И ещё в десятках ситуаций, когда время существования вовлечённых объектов гарантированно превышает время существования лямбды — зачем GC? Зачем GC вообще ставить в известность о том, что ты создаёшь какую-то там лямбду, когда ты на 100% уверен, что она будет удалена до того, как пропадут использованные ей объекты?


Простые случаи мало интересуют, они будут отлично оптимизироваться JIT. Наличие или остуствие GC там никакой роли не играет.
В более сложных случаях, когда требуется GC, подсчет ссылок дает оверхед, как и опциональный GC.
Не получится сделать в C++ сборщик мусора, сравнимый по быстродействию с .NETовским.

В итоге пришли к тому же: С++, даже в новом стандарте, позволяет эффективно использовать только подмножество лямбд.
Re[50]: Работа - с чего начать: С++ или С#?
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 07.05.09 13:23
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Простые случаи мало интересуют, они будут отлично оптимизироваться JIT. Наличие или остуствие GC там никакой роли не играет.


Я очень рад, если это так.

G>В более сложных случаях, когда требуется GC, подсчет ссылок дает оверхед, как и опциональный GC.


Величина этого оверхеда — вопрос с трудно предсказуемым ответом.

G>Не получится сделать в C++ сборщик мусора, сравнимый по быстродействию с .NETовским.


Ой, сомневаюсь.

G>В итоге пришли к тому же: С++, даже в новом стандарте, позволяет эффективно использовать только подмножество лямбд.


Угу, то есть тезис о неполноценности лямбд в C++ снимается повестки дня. Уже что-то. А то, что там где-то что-то побыстрее, где-то что-то помедленнее — так на то они и разные языки: C++, C#, Java, Haskell... Чтобы где-то выигрывать по отношению друг к другу, где-то проигрывать.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[46]: Работа - с чего начать: С++ или С#?
От: samius Япония http://sams-tricks.blogspot.com
Дата: 07.05.09 13:25
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Гы-гы.


ГВ>
ГВ>auto isWithinRange = [](int x) -> bool { return x >= SOMETHING_LOW && x <= SOMETHING_HIGH; }
ГВ>


ГВ>vs.


ГВ>
ГВ>inline bool isWithinRange(int x) { return x >= SOMETHING_LOW && x <= SOMETHING_HIGH; }
ГВ>


ГВ>Обрати внимание, функцию с именем isWithinRange невозможно подменить в рантайме.


Лямбды удобнее тем, что их можно сочетать вместе с замыканиями в то время когда функцию придется передавать толпу параметров.
Re[51]: Поспешимши
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 07.05.09 13:25
Оценка:
ГВ>Угу, то есть тезис о неполноценности лямбд в C++ снимается повестки дня.

Имел в виду "тезис о принципиальной неполноценности лямбд в C++0x".
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[47]: Работа - с чего начать: С++ или С#?
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 07.05.09 13:27
Оценка:
Здравствуйте, samius, Вы писали:

ГВ>>Обрати внимание, функцию с именем isWithinRange невозможно подменить в рантайме.

S>Лямбды удобнее тем, что их можно сочетать вместе с замыканиями в то время когда функцию придется передавать толпу параметров.

В данном случае я отвечал на вполне определённый выпад Синклера.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.