Re[8]: Следующий язык программирования
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 26.09.05 13:17
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

AVK>>Базовые парадигмы одинаковы (конечно, оба в большей степени императивны).


PD>Вот об этом я и говорю, а ты меня понять не хочешь.


А я говорю о другом. О том что сходства базовых парадигм совсем недостаточно, чтобы считать языки одинаковыми.

PD> Мы же немного в другом форуме, и мой ответ Зверьку — отнюдь не продолжение дискуссий в форуме по .Net. В том. что в .Net есть отличия от того, что было раньше — не спорю. Но назвать эти отличия новыми в том плане, как об этом писал Зверек — ИМХО это уж слишком.


Почему слишком? Если Зверек написал про эти языки, значит от спрашивал именно про такие отличия. Более кардинальных в любом случае не будет. Индустрия живет эволюционно. Все революционные языки постигла участь кулуарных проектов. ИМХО в будущем ситуация не изменится.

PD>Да понимаю я вас всех прекрасно. Вам создали специальные правила, мне они не по душе, я в них вижу больше оверхеда, чем пользы, вот и пытаюсь понять, как в этой среде писать эффективную программу, а мне в ответ тыкают, что я , дескать, идеи не понимаю.


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

PD>Andrew, хватит. Я эту парадигму прекрасно понимал еще тогда, когда вопросы свои задавал. И готов не спорить.


Не заметно, если честно

PD> Но только до тех пор, пока эти рамки меня серьезно ограничивать не станут. А начнут ограничивать (по эффективности, к примеру) — пошлю я все эти рамки куда подальше, и буду делать так, как мне хочется, под свою ответственность. Вот меня и интересовало — есть ли способ эти рамки послать ?


Есть. Но будет только хуже. Микроскопом конечно можно гвозди заколачивать, но уж больно неудобно.

PD>Хочешь аналогию ? Для паскальщика или с-шника в языке средств всяких сколько угодно на всякие действия. А мне надо понять, как в Паскале или С ассемблерную вставку сделать — для максимальной эффективности. Я об этом и спрашиваю. А мне в ответ — а зачем тебе команда mov, когда в языке есть замечательный оператор присваивания!


Ты так и не понял, что тебе отвечали. Ты заранее предлагаешь решение (выдернутое из С++) и требуешь, чтобы реализовали именно так. Когда тебе говорят, что надо по другому, ты не соглашаешься. Я тебе сейчас массу задач могу предложить, которые легко решаются на .NET и приводят к горам кода на С++. There is no silver bullet!!!

PD>>> Считать такой идеей управляемый код я никак не могу,


AVK>>Вот в этом и проблема. С верой спорить бессмысленно.


PD>Ну уж верой это не назвать. Я вообще-то Фома неверующий . Просто уж слишком серьезное заявление для такого нововведения.


Оно обосновано. Остается только допустить тень сомнения в своей правоте и попробовать разобраться.

AVK>>Что такое etc? Под это можно подвести массу языков. Если же ограничится С++ и Delphi, то пожалуйста:

AVK>>Интерфейсы как сущность языка

PD>Появились в Java.


Ну так Java, в отличие от С++, очень близка по идеологии к .NET (я сам бывший Java'ист). Но ты ведь и Java не очень хорошо знаешь? И Зверек упоминал их обоих вместе.

>>управляемый верифицируемый код, CAS (Code Access Security)


PD>Да, не помню, кажется я этого не видел раньше.


Я тоже.

PD> Но это все на одну тему — защита.


Это демонстрация возможностей управляемого кода.

PD> А то, что защиту я не считаю особо серьезным нововведением — я уже сказал.


Зря.

>> yield, анонимные методы (они же лямбда функции)


PD>Ну тогда надо признать, что появление template в C++ — тоже радикальное нововведение.


Да, конечно.

>>Reflection, Reflection.Emit,


PD>Зачатки этого Reflection — RTTI C++, Object Pascal


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

PD>О господи! Еще раз объясняю — не собираюсь я набивать шишки.


Ну собираешься или нет это другой вопрос .

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


Нет, не истина. Это опыт применения.

PD> Меня просто интересует, есть ли способы в нужный момент эти правила обойти, приняв ответственность на себя. Не волнуйся — никаких шишек при этом не будет. В конце концов, не скажешь же ты что я некорректно делаю, если интерфейс пользователя я вынесу в C#, а для математики напишу обыкновенную DLL на C++ и там буду делать как всегда делал ?


Ну так и пиши. Интероп в .NET вполне приличный.
... << RSDN@Home 1.2.0 alpha rev. 617>>
AVK Blog
Re[7]: Следующий язык программирования
От: achp  
Дата: 26.09.05 13:19
Оценка: 2 (1)
Здравствуйте, Пацак, Вы писали:

П>Значит я и правда стал подзабывать. Не напомнишь вкратце, что это?


Отсечение — это воспрещение отката. За счёт этого механизма можно ограничивать поиск ответа и проводить описываемую здесь политику деградации цели. Разумеется, всё это требует достаточно аккуратного составления базы знаний.

Извини, но пример я приводить и искать не стану — лень.
Re[4]: Следующий язык программирования
От: Зверёк Харьковский  
Дата: 26.09.05 13:20
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>>>Зверёк, а не стоит ли попытаться определить, что такое "совершенно новые".


Ну, идея в общем такая.
Писали-писали на асме — появился Фортран — все поняли, что можно и нужно использовать языки высокого уровня.
Писали-писали на структруных языках — появился С++ — все понял, что можно и нужно писать на ОО-языках.

было X — появились Java и C# — все поняли, что Y ?
(теоретически, Y == "использование байткода"?)

Но вопрос не в том. Вопрос в том — что должно появиться, чтобы "все поняли, что...")
FAQ — це мiй ай-кью!
Re[3]: Следующий язык программирования
От: Павел Кузнецов  
Дата: 26.09.05 13:23
Оценка:
AndrewVK,

> E> возможность передавать в функцию блок кода в качестве параметра.


> Лямбда-функции?


Полагаю, не совсем, т.к. лямбда это, все-таки, больше именно функция, а не блок кода.

> Так они и в Питоне тож есть.


Возможно, в Питоне скоро не будет.
Posted via RSDN NNTP Server 2.0 beta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[3]: Следующий язык программирования
От: Пацак Россия  
Дата: 26.09.05 13:26
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

PD>>А вот если дадите мне принципиально новый язык и убедите, что им заниматься стоит — я отрину все, что я знаю, вспомню себя в молодости и начну его изучать, как будто я ничего не знаю.


ЗХ>Взгляните все же на руби и питон


Насчет руби ничего не скажу (не видел), а что появилось такого уж нового в питоне?
Ку...
Re[9]: Следующий язык программирования
От: Pavel Dvorkin Россия  
Дата: 26.09.05 13:33
Оценка:
Здравствуйте, AndrewVK, Вы писали:


AVK>А я говорю о другом. О том что сходства базовых парадигм совсем недостаточно, чтобы считать языки одинаковыми.


Я что, считал Фортран и С++ одинаковыми ?


AVK>Почему слишком? Если Зверек написал про эти языки, значит от спрашивал именно про такие отличия.


Он и про Фортран написал, и про Питон и т.д.

>Более кардинальных в любом случае не будет.


Кто его знает...

>Индустрия живет эволюционно. Все революционные языки постигла участь кулуарных проектов.


Я бы так категорически не стал утверждать.

>ИМХО в будущем ситуация не изменится.


Поживем — увидим.

AVK>Правильно тыкают. Потому что ты не хочешь воспринимать то, что тебе пишут в ответ.


Я уже сто раз воспринял, а вот мои ответы воспринять ты не хочешь. Есть бог — молитесь ему, не верите в евангелие как оно написано, от и до — в ад!

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

Я не бывший, я настоящий . Вот фортранщик я, точно, бывший.


AVK>Есть. Но будет только хуже. Микроскопом конечно можно гвозди заколачивать, но уж больно неудобно.


Вот я и хотел знать — есть ли или нет. А уж будет хуже или нет мои проблемы. Еще раз объясняю — микроскопом я буду микробов изучать. Но если надо гвоздь забить, жизненно надо, а ничего, кроме микроскопа нет — ну что же, забью микроскопом


AVK>Ты так и не понял, что тебе отвечали. Ты заранее предлагаешь решение (выдернутое из С++) и требуешь, чтобы реализовали именно так. Когда тебе говорят, что надо по другому, ты не соглашаешься.


Я уже не знаю, как еще объяснять. Никогда не думал, что это так сложно, хотя 20 лет преподаю. Еще раз — все я понял. Что не надо так делать — понял. Что парадигма здесь другая — понял, Что я все неправильно делаю — понял. Что я ничего не понимаю, по вашему мнению, тоже понял. Достаточно ?

А если да, ответьте мне на вопрос — можно ли в этой среде делать не так, парадигму нарушать и неправильно по ее мнению делать ? Это все, что я хочу знать. Можно или нет ? И если можно, то как ? Неужели трудно понять, что я хочу ? Если, конечно, не вести себя как верующий, которого спрашивают, можно ли изложить евангелие более понятным языком и кое-что в нем поправить, а он в ответ — в ад тебя за такое !


PD>>Ну тогда надо признать, что появление template в C++ — тоже радикальное нововведение.


AVK>Да, конечно.


Да, тогда у нас на каждом шагу сплошные революции. По одной каждый год.

PD>>Зачатки этого Reflection — RTTI C++, Object Pascal


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


И там, и тут принцип колеса. В этом — никаких отличий. В этом плане — никакой революции, а в плане двигателя — да.

Все, сорри, ухожу домой. У нас уже 20:30
With best regards
Pavel Dvorkin
Re[4]: Следующий язык программирования
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 26.09.05 13:38
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

>> E> возможность передавать в функцию блок кода в качестве параметра.


>> Лямбда-функции?


ПК>Полагаю, не совсем, т.к. лямбда это, все-таки, больше именно функция, а не блок кода.


А в чем разница?
... << RSDN@Home 1.2.0 alpha rev. 617>>
AVK Blog
Re[10]: Следующий язык программирования
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 26.09.05 13:44
Оценка: +1
Здравствуйте, Pavel Dvorkin, Вы писали:

>>Индустрия живет эволюционно. Все революционные языки постигла участь кулуарных проектов.


PD>Я бы так категорически не стал утверждать.


Тогда приводи пример революционного языка, благосклонно воспринятого индустрией. Я таких не знаю.

AVK>>Правильно тыкают. Потому что ты не хочешь воспринимать то, что тебе пишут в ответ.


PD>Я уже сто раз воспринял


Не заметно.

AVK>>Есть. Но будет только хуже. Микроскопом конечно можно гвозди заколачивать, но уж больно неудобно.


PD>Вот я и хотел знать — есть ли или нет. А уж будет хуже или нет мои проблемы. Еще раз объясняю — микроскопом я буду микробов изучать. Но если надо гвоздь забить, жизненно надо, а ничего, кроме микроскопа нет — ну что же, забью микроскопом


Видимо большинству форума такая философия мазохиста непонятна

PD>Я уже не знаю, как еще объяснять. Никогда не думал, что это так сложно, хотя 20 лет преподаю. Еще раз — все я понял. Что не надо так делать — понял. Что парадигма здесь другая — понял, Что я все неправильно делаю — понял. Что я ничего не понимаю, по вашему мнению, тоже понял. Достаточно ?


Нет. Надо еще научится не делать одну и ту же ошибку в следующий раз.

PD>А если да, ответьте мне на вопрос — можно ли в этой среде делать не так, парадигму нарушать и неправильно по ее мнению делать ? Это все, что я хочу знать. Можно или нет ?


Можно все. Вопрос в количестве усилий, которые на это нужно потратить.

PD>>>Ну тогда надо признать, что появление template в C++ — тоже радикальное нововведение.


AVK>>Да, конечно.


PD>Да, тогда у нас на каждом шагу сплошные революции. По одной каждый год.


Радикальное нововведение != революция. Революция это когда отбрасывают все старое. А когда к старому добавляют что то новое, это эволюция.

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


PD>И там, и тут принцип колеса. В этом — никаких отличий. В этом плане — никакой революции, а в плане двигателя — да.


Вот и с рефлекшеном так. С точки зрения идеи похоже, с точки зрения возможностей несопоставимо.
... << RSDN@Home 1.2.0 alpha rev. 617>>
AVK Blog
Re[5]: Следующий язык программирования
От: Пацак Россия  
Дата: 26.09.05 13:44
Оценка:
Здравствуйте, AndrewVK, Вы писали:

ПК>>Полагаю, не совсем, т.к. лямбда это, все-таки, больше именно функция, а не блок кода.

AVK>А в чем разница?

В наличии возвращаемого значения?
Ку...
Re[6]: Следующий язык программирования
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 26.09.05 14:05
Оценка:
Здравствуйте, Пацак, Вы писали:

ПК>>>Полагаю, не совсем, т.к. лямбда это, все-таки, больше именно функция, а не блок кода.

AVK>>А в чем разница?

П>В наличии возвращаемого значения?


Это вряд ли.
... << RSDN@Home 1.2.0 alpha rev. 617>>
AVK Blog
Re[7]: Следующий язык программирования
От: Пацак Россия  
Дата: 26.09.05 14:06
Оценка:
Здравствуйте, AndrewVK, Вы писали:

П>>В наличии возвращаемого значения?

AVK>Это вряд ли.

Почему?
Ку...
Re[5]: Следующий язык программирования
От: GlebZ Россия  
Дата: 26.09.05 14:10
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>А в чем разница?

Рекурсия?

С уважением, Gleb.
Re[8]: Следующий язык программирования
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 26.09.05 14:27
Оценка:
Здравствуйте, Пацак, Вы писали:

П>>>В наличии возвращаемого значения?

AVK>>Это вряд ли.

П>Почему?


Ну потому что оно может быть и там и там.
... << RSDN@Home 1.2.0 alpha rev. 617>>
AVK Blog
Re[6]: Следующий язык программирования
От: GlebZ Россия  
Дата: 26.09.05 14:28
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>Типичный софизм: если нет наследования, то некоторые заменяют его copy-paste; значит отказ от наследования в ряде случаев приведет к copy-paste.

Термин софизм означает предположение. А так как это уже было — то это опыт. А если это повторится, то это будут грабли.

>> Что лучше?


ПК>Лучше использовать разнообразные patterns, значительная часть которых направлена на ослабление связей, в т.ч. за счет отказа от наследования.

Поговорим о паттерне Composite? Нельзя смотреть на одно и закрывать глаза на другое.

С уважением, Gleb.
Re[9]: Следующий язык программирования
От: Пацак Россия  
Дата: 26.09.05 14:28
Оценка:
Здравствуйте, AndrewVK, Вы писали:

П>>Почему?

AVK>Ну потому что оно может быть и там и там.

Да, но в лямбде оно вроде обязано быть, разве нет?
Ку...
Re[6]: Следующий язык программирования
От: GlebZ Россия  
Дата: 26.09.05 14:39
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>Это и называется умер. Можешь спросить у тех, кто писал на VB, и теперь не может скомпилировать свои продукты новой студией, и не может использовать идиомы из VB в VB.Net.

Насчет идеом я бы не сказал. Их и так там было немного. Но матрасик они все-таки подставили. Чтобы не больно было падать.

>> В данном случае больше подходит аналогия с MC++.

ПК>В чем аналогия? MC++ тоже умер: C++/CLI развитием MC++ тоже не является, хотя при его создании и использовался опыт, полученный в результате MC++.
Вот с этим абсолютно согласен. Об этом и говорю.

С уважением, Gleb.
Re[5]: Следующий язык программирования
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 26.09.05 14:47
Оценка:
Здравствуйте, AndrewVK, Вы писали:

>>> Лямбда-функции?


ПК>>Полагаю, не совсем, т.к. лямбда это, все-таки, больше именно функция, а не блок кода.


AVK>А в чем разница?


См. описание lamba в Python Tutorial:

4.7.5 Lambda Forms

By popular demand, a few features commonly found in functional programming languages and Lisp have been added to Python. With the lambda keyword, small anonymous functions can be created. Here's a function that returns the sum of its two arguments: "lambda a, b: a+b". Lambda forms can be used wherever function objects are required. They are syntactically restricted to a single expression. Semantically, they are just syntactic sugar for a normal function definition. Like nested function definitions, lambda forms can reference variables from the containing scope:

>>> def make_incrementor(n):
...     return lambda x: x + n
...
>>> f = make_incrementor(42)
>>> f(0)
42
>>> f(1)
43


Блоки кода в Ruby не имеют подобных ограничений.

Так же можно посмотреть статью Мартина Фаулера о closure. Там в конце есть ссылки на реализацию closure в языке Python (Closures in Python (part 1), Closures in Python (part 2), Closures in Python (part 3)). Я не большой знаток Python, но мне кажется, что как только с помощью lambda в Python потребуется сделать что-то более сложное, чем одно выражение, так приходится объявлять локальные вспомогательные классы и функции.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[10]: Следующий язык программирования
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 26.09.05 14:57
Оценка: 2 (1) -1
Здравствуйте, Пацак, Вы писали:

AVK>>Ну потому что оно может быть и там и там.


П>Да, но в лямбде оно вроде обязано быть, разве нет?


Ну в классическом понимании наверное, поскольку лямбда это выражение. Но уже анонимный метод в дотнете совсем не обязан (а лямбда в С# 3.0 обязана).
... << RSDN@Home 1.2.0 alpha rev. 617>>
AVK Blog
Re: офтоп
От: Глеб Алексеев  
Дата: 26.09.05 15:02
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:


ЗХ>Был сегодня на факультете одного университета
Автор: Зверёк Харьковский
Дата: 29.03.05
, хлопотал о будущей кандидатской.

ЗХ>Зашибись* там все. Всего каких-нибудь лет 20 — и он может быть выберется из ж*пы.

Так вроде бы ФП не в наших университетах развивается.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: офтоп
От: Зверёк Харьковский  
Дата: 26.09.05 15:04
Оценка: :)
Здравствуйте, Глеб Алексеев, Вы писали:

ЗХ>>Был сегодня на факультете одного университета
Автор: Зверёк Харьковский
Дата: 29.03.05
, хлопотал о будущей кандидатской.

ЗХ>>Зашибись* там все. Всего каких-нибудь лет 20 — и он может быть выберется из ж*пы.

ГА>Так вроде бы ФП не в наших университетах развивается.


...почему я и назвал свое сообщение "офтоп" .
Просто только что вернулся из ВУЗа, и ощущение болота меня в очередной раз впечатлило
FAQ — це мiй ай-кью!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.