Ответить
  • sevenstreet Junior Member
    офлайн
    sevenstreet Junior Member

    68

    13 лет на сайте
    пользователь #617881

    Профиль
    Написать сообщение

    68
    # 18 октября 2012 17:39 Редактировалось sevenstreet, 1 раз.
    VitaliyBoris:

    sevenstreet:

    Если из C# искусственно убрать конструкцию 'foreach', то изготовить ее средствами самого C# было бы невозможно

    Ага, конечно:

    код выделить все
    var enumerator = getInt().GetEnumerator();
    while(enumerator.MoveNext())
    {
    int n = enumerator.Current;
    Console.WriteLine(n);
    }

    будет ли данная конструкция работать для любых типов?
    можно ли ее оптимизировать - распараллелить для любых типов архитектур: неважно MPI или multi-core или еще что-то?
    годная, кошерная конструкция foreach в годном языке на это способна

    Добавлено спустя 4 минуты 10 секунд

    Игорь Зеттич:

    unostar:

    На самом деле лучше изучать английский язык и уе..ть из этой страны как можно быстрее.

    Почитайте как живут программисты, уехавшие из России/Беларуси в Германию и США. Шило на мыло, т.к. вы там иностранец-иммигрант. Расходы там огромные, девушек красивых там нет просто (генетика), уволить вас там могут не задумываясь за два опоздания. Недавно была статья по американскую ЗП в силиконовой долине в $150k/year и куда она уходит у среднестатистического жителя той силиконовой долины. Стремиться нужно жить здесь, а работать на "них". В итоге можно легально (на девбае была статья о том, как у нас легально работать на фрилансе - 12% налогов это не так и много), поиметь европейскую ЗП и жить тут припеваючи, и вас не будут касаться ни политика, ни экономика.

    P.S: 4 знакомых программиста уехали забугор. Они стали жить хуже, чем жили тут и перспектив жить хорошо у них нет на ближайшие лет 10. Один в Германии получает 4K евро, 2К из которых уходит на налоги и страховку.

    я совсем забыл вот о чем: зарплата программиста, это хорошо, конечно, но главное-то - это [stock options] & [bonus]
    последнее не везде бывает, первое тоже
    я сомневаюсь, что в Беларуси где-то дают сток компании

    субарит
  • zettich Onliner Auto Club
    офлайн
    zettich Onliner Auto Club

    5564

    22 года на сайте
    пользователь #7853

    Профиль
    Написать сообщение

    5564
    # 18 октября 2012 17:46

    sevenstreet, я сказал к чему нужно стремиться - работать тут на них, получать зарплату их :-)

  • sevenstreet Junior Member
    офлайн
    sevenstreet Junior Member

    68

    13 лет на сайте
    пользователь #617881

    Профиль
    Написать сообщение

    68
    # 18 октября 2012 18:17
    Игорь Зеттич:

    sevenstreet, я сказал к чему нужно стремиться - работать тут на них, получать зарплату их :-)

    Вы либо не понимаете, либо путаете
    зарплата - фиксирована
    сток опшынз - нет [теоретически]
    те программисты, которые начинали в 1979 году с Биллом Гейтсом или чуть позже с Сергеем Брином или еще чуть позже с Марком Цукербергом - давно уже миллионеры
    получая зарплату - миллионером не стать

    субарит
  • zettich Onliner Auto Club
    офлайн
    zettich Onliner Auto Club

    5564

    22 года на сайте
    пользователь #7853

    Профиль
    Написать сообщение

    5564
    # 18 октября 2012 19:04

    sevenstreet, то есть уезжая за границу имеется потенциальная возможность стать миллионером? допустим. развивайте мысль дальше.

  • sevenstreet Junior Member
    офлайн
    sevenstreet Junior Member

    68

    13 лет на сайте
    пользователь #617881

    Профиль
    Написать сообщение

    68
    # 18 октября 2012 19:37

    можно и никуда не уезжать и либо развить свою идею, либо оказаться в нужном месте в нужное время рядом с теми, у кого есть идеи, которые могут принести дивиденды
    но всего вероятнее дивиденды получатся, если уехать (IMHO)

    субарит
  • Vadim1242 Senior Member
    офлайн
    Vadim1242 Senior Member

    3075

    16 лет на сайте
    пользователь #158799

    Профиль
    Написать сообщение

    3075
    # 18 октября 2012 20:06 Редактировалось Vadim1242, 1 раз.

  • sevenstreet Junior Member
    офлайн
    sevenstreet Junior Member

    68

    13 лет на сайте
    пользователь #617881

    Профиль
    Написать сообщение

    68
    # 18 октября 2012 20:41
    Vadim1242:

    sevenstreet,

    Не в обиду. Но вероятность разбогатеть предложенным вами способом не многим более, чем с помощью лотерей.

    Предложите свой план.

    Мой одноклассник реализовал свою идею, правда, не в программировании, а в прикладной физике, и купил дом с дохода за один год - фактически за две или три продажи прибора, который он сперва задизайнил, а потом имплементировал в железе, а примеров, когда программисты из exUSSR продавали company stock и с этого дохода покупали дома - очень много.

    субарит
  • olezha_ Senior Member
    офлайн
    olezha_ Senior Member

    1269

    16 лет на сайте
    пользователь #204133

    Профиль
    Написать сообщение

    1269
    # 18 октября 2012 20:55

    sevenstreet, такое чувство, что компиляторы и интерпретаторы пишут не на ЯП, а из воздуха они появляются. сейчас foreach в шарпе написан на плюсах, собираются компилятор перевести на шарп. не любую структуру можно обработать с помощью foreach, а вы почему-то очень сильно на это делаете акцент(в шарпе, если я правильно помню, должен наследоваться интерфейс Iterable или что-то в этом духе). человек вам привел пример из нескольких строк, который показывает простейшую реализацию. Если вам надо много типов данных, в плюсах есть темплейты, void указатели...уверен, в шарпе есть тоже что-то типа этого. как правило все функции языка можно реализовать на этом же языке.

    Добавлено спустя 20 минут 31 секунда

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

  • Vadim1242 Senior Member
    офлайн
    Vadim1242 Senior Member

    3075

    16 лет на сайте
    пользователь #158799

    Профиль
    Написать сообщение

    3075
    # 18 октября 2012 22:24 Редактировалось Vadim1242, 5 раз(а).

  • zf210 Senior Member
    офлайн
    zf210 Senior Member

    1573

    17 лет на сайте
    пользователь #144444

    Профиль
    Написать сообщение

    1573
    # 18 октября 2012 22:39 Редактировалось zf210, 1 раз.
    Игорь Зеттич:

    zf210:

    скажу про простого инженера с зп в 100Кбаксов в год

    вы уверены? Google больше других IT-компаний платит разработчикам ПО — $128 тыс. в год. это грязными (без учета налогов). интересно было бы послушать мнение человека, который переехал в США/Европу и честно (без предрассудков, что "из страны надо валить" и без боязни ударить в грязь лицом) рассказать о своей жизни. ибо истории есть разные.

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

    Добавлено спустя 2 минуты 59 секунд

    Vadim1242:

    sevenstreet,

    Не в обиду. Но вероятность разбогатеть предложенным вами способом не многим более, чем с помощью лотерей.

    Добавлено спустя 5 минут 54 секунды

    Игорь Зеттич,
    У меня в планах года через три уехать.
    И дело не в деньгах. Мне здесь на жизнь хватает. Мне просто в Беларуси не нравится. Не нравится, что у нас 80% населения это быдло, ждущее халявы. Не нравится, что у нас важнее всего показуха и статистика. И то, что за меня везде пытаются все решать.

    вот то-то и оно, та же причина покинуть БацкаЎшчыну.

  • sevenstreet Junior Member
    офлайн
    sevenstreet Junior Member

    68

    13 лет на сайте
    пользователь #617881

    Профиль
    Написать сообщение

    68
    # 18 октября 2012 22:57
    olezha_:

    sevenstreet, такое чувство, что компиляторы и интерпретаторы пишут не на ЯП, а из воздуха они появляются. сейчас foreach в шарпе написан на плюсах, собираются компилятор перевести на шарп. не любую структуру можно обработать с помощью foreach, а вы почему-то очень сильно на это делаете акцент(в шарпе, если я правильно помню, должен наследоваться интерфейс Iterable или что-то в этом духе). человек вам привел пример из нескольких строк, который показывает простейшую реализацию. Если вам надо много типов данных, в плюсах есть темплейты, void указатели...уверен, в шарпе есть тоже что-то типа этого. как правило все функции языка можно реализовать на этом же языке.

    Давайте мухи отдельно, а котлеты отдельно
    вот язык, а вот некая реализация его компилятора,
    а рядом - другая реализация компилятора того же языка

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

    вот в том-то и дело, что в нормальном языке foreach позволяет обрабатывать любой тип, любой.

    в С++ у templates очень много своих собственных ограничений, любой ли тип данных можно положить в STL container?
    даже несмотря на то, что C++ templates Turing-complete, очень ограничены

    реализуйте на С++ парсер регулярного выражения пользуясь только средствами языка
    причем все должно работать быстро - линейное время выполнения

    регулярное выражение задано в виде константной строки

    субарит
  • Vadim1242 Senior Member
    офлайн
    Vadim1242 Senior Member

    3075

    16 лет на сайте
    пользователь #158799

    Профиль
    Написать сообщение

    3075
    # 18 октября 2012 23:26 Редактировалось Vadim1242, 1 раз.

  • zapad3 Senior Member
    офлайн
    zapad3 Senior Member

    1262

    18 лет на сайте
    пользователь #93379

    Профиль
    Написать сообщение

    1262
    # 19 октября 2012 01:05
    Yurij_56:

    какие книги посоветуете для изучения java?

    Стандартно - Б. Эккель, "Философия жабы" в качестве первой

  • sevenstreet Junior Member
    офлайн
    sevenstreet Junior Member

    68

    13 лет на сайте
    пользователь #617881

    Профиль
    Написать сообщение

    68
    # 19 октября 2012 01:31 Редактировалось sevenstreet, 2 раз(а).
    Vadim1242:

    sevenstreet:

    причем все должно работать быстро - линейное время выполнения

    :-?

    Это конечно неправильно. Но обычно вопрос стоит так: "Все должно работать" О скорости начинают задумываться, когда припрет.
    И когда, глядя в код, видишь по костылю от каждого, кто успел в этом коде полазить, то и самому нет желания что-то исправлять. Ведь проще дописать костыль в пару строк, чем переделывать логику с нуля.

    P.S. Это я про серверные приложения. Может десктопные хоть как то стараются оптимизировать :)

    это конечно правильно
    про то, что может не работать, и речи быть не может
    должно работать быстро, именно быстро
    иначе понабигает толпа индусов, которые сделают медленно, зато дешевле

    именно скорость выполнения программ определяет зарaботок программиста
    там, где возможны компромиссы скорости, там возможен и компромисс в зарaботке
    а если программка на бирже бегает, типа ultra high frequency trading, где естественно Java не канает [а в правильных местах и С++ тоже не канает], там нет компромиссов, регулярные выражения должны быстро работать короче

    субарит
  • olezha_ Senior Member
    офлайн
    olezha_ Senior Member

    1269

    16 лет на сайте
    пользователь #204133

    Профиль
    Написать сообщение

    1269
    # 19 октября 2012 02:35
    sevenstreet:

    Давайте мухи отдельно, а котлеты отдельно
    вот язык, а вот некая реализация его компилятора,
    а рядом - другая реализация компилятора того же языка

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

    вот в том-то и дело, что в нормальном языке foreach позволяет обрабатывать любой тип, любой.

    в С++ у templates очень много своих собственных ограничений, любой ли тип данных можно положить в STL container?
    даже несмотря на то, что C++ templates Turing-complete, очень ограничены

    реализуйте на С++ парсер регулярного выражения пользуясь только средствами языка
    причем все должно работать быстро - линейное время выполнения

    регулярное выражение задано в виде константной строки

    Уже все давно реализовано в Boost::Regex.
    В Вашем случае котлеты из мух...как вы можете отделять компилятор от конструкций языка? на каждый язык есть стандарт, по которому и работает компилятор либо интерпретатор. Сначала парсит, а потом реализовывает в машинных кодах или IL.
    И вы снова меня не слушаете. foreach не работает с ЛЮБЫМ типом данных...ну не с любым :) тип должен быть перечисляемым, это обязательное условие. Поверьте, я это очень хорошо знаю. В питоне нет привычного for, там только foreach. И работает он там, где есть итератор, способный проходить по элементам объекта. отсюда и типы - итерируемые. Вот именно с ними foreach и работает.

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

  • Vadim1242 Senior Member
    офлайн
    Vadim1242 Senior Member

    3075

    16 лет на сайте
    пользователь #158799

    Профиль
    Написать сообщение

    3075
    # 19 октября 2012 07:30 Редактировалось Vadim1242, 1 раз.

  • sevenstreet Junior Member
    офлайн
    sevenstreet Junior Member

    68

    13 лет на сайте
    пользователь #617881

    Профиль
    Написать сообщение

    68
    # 19 октября 2012 18:42
    olezha_:

    sevenstreet:

    Давайте мухи отдельно, а котлеты отдельно
    вот язык, а вот некая реализация его компилятора,
    а рядом - другая реализация компилятора того же языка

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

    вот в том-то и дело, что в нормальном языке foreach позволяет обрабатывать любой тип, любой.

    в С++ у templates очень много своих собственных ограничений, любой ли тип данных можно положить в STL container?
    даже несмотря на то, что C++ templates Turing-complete, очень ограничены

    реализуйте на С++ парсер регулярного выражения пользуясь только средствами языка
    причем все должно работать быстро - линейное время выполнения

    регулярное выражение задано в виде константной строки

    Уже все давно реализовано в Boost::Regex.
    В Вашем случае котлеты из мух...как вы можете отделять компилятор от конструкций языка? на каждый язык есть стандарт, по которому и работает компилятор либо интерпретатор. Сначала парсит, а потом реализовывает в машинных кодах или IL.
    И вы снова меня не слушаете. foreach не работает с ЛЮБЫМ типом данных...ну не с любым :) тип должен быть перечисляемым, это обязательное условие. Поверьте, я это очень хорошо знаю. В питоне нет привычного for, там только foreach. И работает он там, где есть итератор, способный проходить по элементам объекта. отсюда и типы - итерируемые. Вот именно с ними foreach и работает.

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

    про Boost::Regex - смотрим например сюда http://lh3lh3.users.sourceforge.net/reb.shtml

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

    Буст регексп не используется в серьезных задачах, типа data mining

    "Поверьте, я это очень хорошо знаю" - похоже на заклинание шамана.
    не верю

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

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

    Добавлено спустя 5 минут 23 секунды

    Vadim1242:

    sevenstreet,
    Вы тут пытаетесь религиозную войну вести?

    olezha_:

    где естественно Java не канает [а в правильных местах и С++ тоже не канает]

    Меня это типа должно расстроить?

    Я работаю и получаю за это деньгу. Работы хватает. И будет хватать еще долго. Если вдруг станет мало, переучусь на тот язык, который востребован. Мне все равно, что это будет.

    при чем тут Вы?
    тема посвящена выбору первого языка программирования

    Вы свой выбор сделали
    может, кто-то прочтет эту тему и С++ выучит для того, чтобы знать, как НЕ НАДО программировать
    и обратит внимание на хорошие, годные, но не столь разрекламированные языки высокого уровня

    деньгу Вы получаете сейчас, а что будет через год или два или пять? не задумывались, что Вас можно заменить более молодыми и дешевыми молодыми выпускниками?

    субарит
  • olezha_ Senior Member
    офлайн
    olezha_ Senior Member

    1269

    16 лет на сайте
    пользователь #204133

    Профиль
    Написать сообщение

    1269
    # 19 октября 2012 22:40

    sevenstreet,

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

    вот именно...foreach работает со списком...а то, что там может храниться, инкапсулировано в реализации списка.

    для разного железа с разными возможностями будут компиляторы разные
    язык один, вход на компилятор один, а выхлоп разный, ассемблерный и машинный код разный, время исполнения разное, все разное. Поэтому компилятор/интерпретатор - это одна сущность, а язык другая. На чем по-Вашему написана столь любимая Java? Не на Java ли?

    как выхлоп связан с парсером??? вы хотите сказать, что в зависимости от того, под какое железо мы собираем приложение, сорцы будут парситься по-разному?
    и не понимаю, к чему та ссылка...вы предлагаете Perl юзать? ну уж нет)))
    да и для Data Mining юзать плюсы - это уж совсем как-то...ну не знаю, лично я бы не стал)))
    Vadim1242, не знаю, почему вы за это уцепились, но это совсем не камень в ваш огород. Вы используете эти языки, ну что ж, хорошо, но в современных реалиях, новые задачи с их помощью решать проблематично. Хотя был, есть и будет круг проблем, которые решаются именно с помощью этих технологий, и никаких других.

  • sevenstreet Junior Member
    офлайн
    sevenstreet Junior Member

    68

    13 лет на сайте
    пользователь #617881

    Профиль
    Написать сообщение

    68
    # 19 октября 2012 23:28
    olezha_:

    sevenstreet,

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

    вот именно...foreach работает со списком...а то, что там может храниться, инкапсулировано в реализации списка.

    для разного железа с разными возможностями будут компиляторы разные
    язык один, вход на компилятор один, а выхлоп разный, ассемблерный и машинный код разный, время исполнения разное, все разное. Поэтому компилятор/интерпретатор - это одна сущность, а язык другая. На чем по-Вашему написана столь любимая Java? Не на Java ли?

    как выхлоп связан с парсером??? вы хотите сказать, что в зависимости от того, под какое железо мы собираем приложение, сорцы будут парситься по-разному?
    и не понимаю, к чему та ссылка...вы предлагаете Perl юзать? ну уж нет)))
    да и для Data Mining юзать плюсы - это уж совсем как-то...ну не знаю, лично я бы не стал)))
    Vadim1242, не знаю, почему вы за это уцепились, но это совсем не камень в ваш огород. Вы используете эти языки, ну что ж, хорошо, но в современных реалиях, новые задачи с их помощью решать проблематично. Хотя был, есть и будет круг проблем, которые решаются именно с помощью этих технологий, и никаких других.

    представьте, что у нас такой процессор, в котором отсутсвует стек,
    и (допустим на мгновение!) есть некая имплементация "С" компилятора, которая каким-то образом переводит source code в машинные коды нашего безстекового процессора.

    Допустим, что мы не используем ни рекурсию, ни ничего другого, где стек необходим в нашем source code

    Как по-вашему, будет отличаться [abstract syntax tree] для процессора Интел или Спарк со стеком и вот этого процессора без стека?

    Оптимизатор и занимается именно тем, что по-разному (в том числе в зависимости от железа) обрабатывает AST, построенное компилятором
    Boost.Regex - медленный, вот что показывает ссылка.

    субарит
  • olezha_ Senior Member
    офлайн
    olezha_ Senior Member

    1269

    16 лет на сайте
    пользователь #204133

    Профиль
    Написать сообщение

    1269
    # 19 октября 2012 23:59

    то, что буст тормозная - полностью с вами согласен. но на безрыбье...вы и сами понимаете))
    даже в вашем примере, исходный код будет таким же...стандарт ЯЗЫКА не изменится. конечно, выходной код будет коренным образом отличаться. но все же...ЯП - это вполне себе удобная абстракция, которая избавляет нас от мыслей об архитектуре.было время, я кодил под ARM...на все том же Си...ничего не изменилось в коде, язык остался тем же. изменились подключаемые библиотеки и сборка.