Re[91]: ToString()
От: Sinclair Россия https://github.com/evilguest/
Дата: 22.12.04 11:39
Оценка:
Здравствуйте, slegkapjan, Вы писали:

S>А что может помешать вирусу модифицировать фреймворк и вызывать любые методы которые ему только вздумаются? Или же эта защита работает только для вриусов, написанных под .NET?

Да, только для вирусов, написанных на дотнет. К примеру, мы можем потребовать от кода, загружаемого на общественный сервер, быть написанным на .Net. При этом можно будет писать любой код, но работать будут только безопасные методы. Аналогичной возможности для С++ не существует.
S> При желании и для C++ можно придумать подобную защиту, и гораздо более действенную.
Попробуй. Можешь хотя бы на пальцах объяснить, как ты на С++ реализуешь код, принимающий решение о возможности вызова в зависимости от того, откуда сделан вызов?
S>А потому, что нельзя определить что-то через него же самого. Нельзя написать фреймворк для C# на C#!
Ну и что. Фреймворк для C# — это, собственно, та небольшая часть кода, написанная на, допустим, ассемблере. В чем разница?
S>>Ты написал, что любую C# программу ты сможешь заменить эквивалентной программой на С++, которая будет более быстрой. Тебе все еще неочевидно, что ты гонишь?
S>Скажи пожалуйста, а почему такое не может быть возможным?
Нет уж, это ты делаешь некоторое голословное утверждение. Будь любезен принести доказательство в студию. В науке, знаешь ли, действует презумпция недоказанности. Так что пока ты не приведешь метод, по которому ты выполнишь более быструю реализацию, аналогичную любой .Net программе, я буду считать твои заявления плодом религиозного экстаза.
S>Только воздержись пожалуйства от доказательств, содержащих такие гениальные идеи как неоптимизируемый код, самоускоряющиеся программы и проч. и проч.

S>>>А скажи пожалуйста, ты думаешь что можно в принципе написать фреймворк C# для любой платформы?

S>>Естественно! А что нам может помешать? Скажи пожалуйста, какие особенности C# могут помешать написать фреймворк на любой платформе?
S>Т.е. ты утверждаещь, что, положим, можно написать фреймворк для PIC? Или для палмы с 300 килобайтами хипа?
Именно это я и утверждаю. А почему бы, собственно, нет? JVM прекрасно работает на пальме. Чем .Net хуже?
S>Знаешь, есть такая функция GetProcAddress() Вполне можно сделать нечто подобное и для классов.
Знаю. Ты на приложение посмотрел? А теперь попробуй все же реализовать аналог на С++. Я даже не буду требовать, чтобы это работало для любых классов без доп. условий (как это работает в .Net). Иначе у тебя вообще ничего не получится. Попробуй-попробуй. И ты поймешь, что это не намного более удобно, чем реализация ООП с виртуальным множественным наследованием на макроассемблере.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[92]: ToString()
От: slegkapjan  
Дата: 22.12.04 12:15
Оценка: +1 -1
S>>А что может помешать вирусу модифицировать фреймворк и вызывать любые методы которые ему только вздумаются? Или же эта защита работает только для вриусов, написанных под .NET?
S>Да, только для вирусов, написанных на дотнет. К примеру, мы можем потребовать от кода, загружаемого на общественный сервер, быть написанным на .Net. При этом можно будет писать любой код, но работать будут только безопасные методы. Аналогичной возможности для С++ не существует.
Вполне можно модифицировать операционную систему, добавив такие возможности...

S>> При желании и для C++ можно придумать подобную защиту, и гораздо более действенную.

S>Попробуй. Можешь хотя бы на пальцах объяснить, как ты на С++ реализуешь код, принимающий решение о возможности вызова в зависимости от того, откуда сделан вызов?
См. выше. Просто поддержка будет не со стороны языка, а со стороны ОС -- что гораздо правильнее.

S>>А потому, что нельзя определить что-то через него же самого. Нельзя написать фреймворк для C# на C#!

S>Ну и что. Фреймворк для C# — это, собственно, та небольшая часть кода, написанная на, допустим, ассемблере. В чем разница?
Небольшой такой участочек, написанные на ассемблере, мааааленький, строк 200. Это самое гениальное твое высказывание после "ты гонишь". Мы всем отделом смеялись до коликов.

S>>>Ты написал, что любую C# программу ты сможешь заменить эквивалентной программой на С++, которая будет более быстрой. Тебе все еще неочевидно, что ты гонишь?

S>>Скажи пожалуйста, а почему такое не может быть возможным?
S>Нет уж, это ты делаешь некоторое голословное утверждение. Будь любезен принести доказательство в студию. В науке, знаешь ли, действует презумпция недоказанности. Так что пока ты не приведешь метод, по которому ты выполнишь более быструю реализацию, аналогичную любой .Net программе, я буду считать твои заявления плодом религиозного экстаза.
Неужели ты этого сам не понимаешь? Как ты думаешь, можно ли, например, переписать zlib целиком на .NET, так чтобы zlib не отстовал от реализации на Си?

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

Молодец, воздержался

S>>>>А скажи пожалуйста, ты думаешь что можно в принципе написать фреймворк C# для любой платформы?

S>>>Естественно! А что нам может помешать? Скажи пожалуйста, какие особенности C# могут помешать написать фреймворк на любой платформе?
S>>Т.е. ты утверждаещь, что, положим, можно написать фреймворк для PIC? Или для палмы с 300 килобайтами хипа?
S>Именно это я и утверждаю. А почему бы, собственно, нет? JVM прекрасно работает на пальме. Чем .Net хуже?
S>>Знаешь, есть такая функция GetProcAddress() Вполне можно сделать нечто подобное и для классов.
S>Знаю. Ты на приложение посмотрел? А теперь попробуй все же реализовать аналог на С++. Я даже не буду требовать, чтобы это работало для любых классов без доп. условий (как это работает в .Net). Иначе у тебя вообще ничего не получится. Попробуй-попробуй. И ты поймешь, что это не намного более удобно, чем реализация ООП с виртуальным множественным наследованием на макроассемблере.
Опять же, все что ты сказал сугубо субъективно. Вполне можно реализовать очень даже удобную, работоспособную систему.
Re[93]: ToString()
От: Курилка Россия http://kirya.narod.ru/
Дата: 22.12.04 12:24
Оценка:
Здравствуйте, slegkapjan, Вы писали:

S>>>Знаешь, есть такая функция GetProcAddress() Вполне можно сделать нечто подобное и для классов.

S>>Знаю. Ты на приложение посмотрел? А теперь попробуй все же реализовать аналог на С++. Я даже не буду требовать, чтобы это работало для любых классов без доп. условий (как это работает в .Net). Иначе у тебя вообще ничего не получится. Попробуй-попробуй. И ты поймешь, что это не намного более удобно, чем реализация ООП с виртуальным множественным наследованием на макроассемблере.
S>Опять же, все что ты сказал сугубо субъективно. Вполне можно реализовать очень даже удобную, работоспособную систему.

А теперь ответь на вопрос — сколько это займёт человекочасов, насколько это будет всё безглючнои оттестировано на реальных приложениях? Думаю это будет неслабое число человекочасов, далеко не с парой нулей
Re[93]: ToString()
От: Sinclair Россия https://github.com/evilguest/
Дата: 22.12.04 12:43
Оценка:
Здравствуйте, slegkapjan, Вы писали:


S>>Попробуй. Можешь хотя бы на пальцах объяснить, как ты на С++ реализуешь код, принимающий решение о возможности вызова в зависимости от того, откуда сделан вызов?

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

S>>Нет уж, это ты делаешь некоторое голословное утверждение. Будь любезен принести доказательство в студию. В науке, знаешь ли, действует презумпция недоказанности. Так что пока ты не приведешь метод, по которому ты выполнишь более быструю реализацию, аналогичную любой .Net программе, я буду считать твои заявления плодом религиозного экстаза.

S>Неужели ты этого сам не понимаешь? Как ты думаешь, можно ли, например, переписать zlib целиком на .NET, так чтобы zlib не отстовал от реализации на Си?
Нет, не понимаю. Твой вопрос не имеет никакого отношения к доказываемому утверждению. Заметь, что ты сделал два утверждения:
1. Для любой программы на C# существует эквивалентная программа на С++ с более высоким быстродействием.
2. Существуют программы на С++, для которых невозможно написать программу на C# с более высоким быстродействием.
Со вторым утверждением я не спорю. Можншь его не доказывать. Я прошу только доказать первое утверждение. Хинт: никакая программа на С++ не поможет в его доказательстве.
S>>>Т.е. ты утверждаещь, что, положим, можно написать фреймворк для PIC? Или для палмы с 300 килобайтами хипа?
S>>Именно это я и утверждаю. А почему бы, собственно, нет? JVM прекрасно работает на пальме. Чем .Net хуже?
Так, ну то есть этот пункт вопросов не вызвал?
S>>Знаю. Ты на приложение посмотрел? А теперь попробуй все же реализовать аналог на С++. Я даже не буду требовать, чтобы это работало для любых классов без доп. условий (как это работает в .Net). Иначе у тебя вообще ничего не получится. Попробуй-попробуй. И ты поймешь, что это не намного более удобно, чем реализация ООП с виртуальным множественным наследованием на макроассемблере.
S>Опять же, все что ты сказал сугубо субъективно. Вполне можно реализовать очень даже удобную, работоспособную систему.
И в третий раз говорю — попробуй вполне реализовать очень даже удобную, работоспособную систему. Пример приложения ты посмотрел? Доказательством справедливости можно считать
а) описание способ построения аналогичного приложения
б) само аналогичное приложение
Какой из способов ты выбираешь?
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[94]: ToString()
От: slegkapjan  
Дата: 22.12.04 13:11
Оценка: +1 -1
S>1. Для любой программы на C# существует эквивалентная программа на С++ с более высоким быстродействием.
Пусть нам дана некоторая программа на C#, реализующая некий алгоритм. Т.к. с точки зрения управляющих конструкций C# является подмножеством C++, то мы можем написать программу на C++ действующую схожим образом. Уже на этом уровне, C++ должен быть как минимум не медленнее C#, т.к. C++ язык более низкого уровня. Однако у C# есть замечательная штука -- GC которая будет запускаться раз в N тактов и притормаживать всю систему.

На остальное отвечу потом, сейчас времени нет.
Re[94]: ToString()
От: slegkapjan  
Дата: 22.12.04 13:15
Оценка: -1
S>>>Попробуй. Можешь хотя бы на пальцах объяснить, как ты на С++ реализуешь код, принимающий решение о возможности вызова в зависимости от того, откуда сделан вызов?
S>>См. выше. Просто поддержка будет не со стороны языка, а со стороны ОС -- что гораздо правильнее.
S>Не вижу выше никаких идей про то, как это можно было бы реализовать со стороны ОС. При этом так, чтобы можно было управлять этим из С++, не изменяя языка.
Что конкретно вызывает твои сомнения?
Re[95]: ToString()
От: Sinclair Россия https://github.com/evilguest/
Дата: 22.12.04 13:47
Оценка:
Здравствуйте, slegkapjan, Вы писали:


S>>1. Для любой программы на C# существует эквивалентная программа на С++ с более высоким быстродействием.

S>Пусть нам дана некоторая программа на C#, реализующая некий алгоритм. Т.к. с точки зрения управляющих конструкций C# является подмножеством C++, то мы можем написать программу на C++ действующую схожим образом. Уже на этом уровне, C++ должен быть как минимум не медленнее C#, т.к. C++ язык более низкого уровня. Однако у C# есть замечательная штука -- GC которая будет запускаться раз в N тактов и притормаживать всю систему.
Ага, ну что ж, идея ясна. Возможно, это действительно доказательство утверждения номер 1. Хотя я бы не стал утверждать этого категорично — вдруг найдется опровержение этого доказательства .
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[95]: ToString()
От: Sinclair Россия https://github.com/evilguest/
Дата: 22.12.04 13:47
Оценка:
Здравствуйте, slegkapjan, Вы писали:
S>Что конкретно вызывает твои сомнения?
Отсутствие внятной аргументации существования такого метода. Еще раз: Это не я сделал голословное утверждение. Это ты сделал утверждение о том, что можно реализовать намного более действенную защиту, чем CAS, на С++. Я пока не вижу, как это можно сделать, не воспроизводя весь .Net Framework.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[96]: ToString()
От: slegkapjan  
Дата: 22.12.04 14:56
Оценка: -1
S>Ага, ну что ж, идея ясна. Возможно, это действительно доказательство утверждения номер 1. Хотя я бы не стал утверждать этого категорично — вдруг найдется опровержение этого доказательства .
Ну это я просто так придумал, первое что пришло в голову.
В принципе, большую разницу дает то, что C++ более низкоуровневый язык, плюс всякие надстройки фреймворка тормозят.
Но C# не позиционируется как язык для реализации каких-то алгоримтически сложных задач, так что это вряд ли можно считать большим минусом.
Re[96]: ToString()
От: slegkapjan  
Дата: 22.12.04 14:57
Оценка: +1 -1
Здравствуйте, Sinclair, Вы писали:

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

S>>Что конкретно вызывает твои сомнения?
S>Отсутствие внятной аргументации существования такого метода. Еще раз: Это не я сделал голословное утверждение. Это ты сделал утверждение о том, что можно реализовать намного более действенную защиту, чем CAS, на С++. Я пока не вижу, как это можно сделать, не воспроизводя весь .Net Framework.
А скажи пожалуйста, на каком языка написан .netfw? На C++? Соответственно такое же средство можно реализовать и для C++ на самом C++.

Я все еще в цейтноте, поэтому постораюсь вечером из дома написать что-то более внятное.
Re[47]: Опять С++ vs С#
От: Eugeny__ Украина  
Дата: 28.12.04 14:44
Оценка:
Здравствуйте, VladD2, Вы писали:

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


V>>собственно, к этому вопросу я и вел


VD>А зачем он к этому велся? Что это не дает возможность писать игры на дотнете?


VD>Ты скачал игрушку — то? Как она сильно тормозит?


Кстати, как-то нам в офис приносили игрушку(3D стрелялка) на java. Вполне, кстати, приличная. Я хотел слить себе, поковыряться в ней, но толи заболел, толи еще какая-то напасть, вобщем теперь не могу достать, и названия не помню. Интересно просто внимательно на нее глянуть, хотя бы ради академического интереса. Никто название или ссылочку не кинет?
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Примеры в студию!
От: SilverCloud Россия http://rodonist.wordpress.com
Дата: 02.01.05 10:14
Оценка:
Здравствуйте, slegkapjan, Вы писали:

S>Для большиства операционок небольшая часть кода написана на ассемблере, остальное на C++.

S>

Примеры операционок на плюсах можно?
Who needs information?
Re[42]: Опять С++ vs С#
От: Astaroth Россия  
Дата: 05.01.05 18:39
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Про FastCGI никогда не слышал?


Лично я про неё слышал, но ни разу не пользовался. Хотя как-то раз чуть-чуть не пришлось.
Увидев в доке, что каждый скрипт нужно прописывать в конфиге апача, я так сильно испугался, что сумел переубедить человека, который очень хотел делать сайт на Perl+FastCGI
Может, конечно, я чего-нить не так понял, если так — то расскажите кто-нить, как это выглядит на самом деле.
WinAmp играет: (умолк пока)
http://livejournal.com/users/breqwas
Re[65]: ToString()
От: Astaroth Россия  
Дата: 05.01.05 18:49
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Да плевать ему на практику тысяч человек. Его теори незыблемы. Пробовать на практике ему в лом. Мне кажется все эти разговоры бессмысленны. Это упертость принципиальна. Надо завершать этот бессмысленный разговор.


5. Не допускается проявление грубого или неуважительного отношения к другим участникам форума. Оскорблять и обзывать собеседника, ставить под сомнение его профессиональную квалификацию, придираться к его нику, указывать на орфографические и синтаксические ошибки и т. д. запрещается.

WinAmp играет: (умолк пока)
http://livejournal.com/users/breqwas
Re[43]: Опять С++ vs С#
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 05.01.05 18:56
Оценка:
Здравствуйте, Astaroth, Вы писали:

A>Лично я про неё слышал, но ни разу не пользовался. Хотя как-то раз чуть-чуть не пришлось.

A>Увидев в доке, что каждый скрипт нужно прописывать в конфиге апача, я так сильно испугался, что сумел переубедить человека, который очень хотел делать сайт на Perl+FastCGI
A>Может, конечно, я чего-нить не так понял, если так — то расскажите кто-нить, как это выглядит на самом деле.

FastCGI это не конкретная технология, а принцип построения CGI-приложений.
http://en.wikipedia.org/wiki/Fastcgi

FastCGI is an extention to the CGI interface which keeps processes alive for multiple requests. The FastCGI interface uses a bidirectional connection, which can be extended across machines. The FastCGI interface also allows authentication a seperate CGI program. A single request could involve two or more CGI applications: One to authenticate, one to log the connection, and one to actually do the work. Multistage forms become much easier to code, and a large amount of parsing overhead is cut out.

... << RSDN@Home 1.1.4 beta 3 rev. 272>>
AVK Blog
Re[2]: C++ server pages
От: Astaroth Россия  
Дата: 05.01.05 19:06
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Что за выражения? Фу.


Кто бы говорил

VD>Рад за них. Я вообще всегда радуюсь маньякам и мазохистам. Вот только то, что на С++ сайты в основном не пишут говорит о том, что мазохистов и маньяков все же не много.


Ситуации разные бывают. Вдруг людям производительность сильно нужна? Или какая-нить специфичная либа... А если и то, и другое — то уже без вариантов
WinAmp играет: (умолк пока)
http://livejournal.com/users/breqwas
Re[66]: ToString()
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 05.01.05 19:28
Оценка:
Здравствуйте, Astaroth, Вы писали:

Подобные письма следует направлять на moderator@rsdn.ru, а не писать в форум
... << RSDN@Home 1.1.4 beta 3 rev. 272>>
AVK Blog
Re[86]: ToString()
От: bt  
Дата: 06.01.05 11:46
Оценка:
Здравствуйте, Sinclair, Вы писали:

...
S>И что же такого из плюсов нельзя реализовать на C#?

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

Я например не нашел в C# следущей возможности.

1. Переопределить для класса опрератор new

2. Переопределить для класса перегруженную версию оператора new,
который получает аргумент — указатель на область памяти (возможно ранее выделенную).
Re[50]: Опять С++ vs С#
От: Astaroth Россия  
Дата: 06.01.05 11:59
Оценка:
Здравствуйте, AndrewVK, Вы писали:

ГВ>> Да нет, по сути дела, никто не мешает и сейчас сделать некий аналог C++ server pages, и проблема в другом — не все хостеры будут рады такой технологии.

AVK>Ну то есть кто то все таки мешает?

Если я правильно понял, c++sp нужны тем, кому нужна сильно высокая производительность или написанные на cpp либы.
А таким людям безотносительно языка потребуется выделенный сервер.
Значит хостеры тут параллельны.
WinAmp играет: (умолк пока)
http://livejournal.com/users/breqwas
Re: Примеры в студию!
От: Rebus83 Россия  
Дата: 06.01.05 16:59
Оценка:
Здравствуйте, SilverCloud, Вы писали:

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


S>>Для большиства операционок небольшая часть кода написана на ассемблере, остальное на C++.

S>>

SC>Примеры операционок на плюсах можно?

BeOS — практически полностью, Symbian — практически полностью, Windows NT — некоторые части написаны на C++.
... << RSDN@Home 1.1.3 stable >>
Какая странная планета! — подумал Маленький принц. — Совсем сухая,
вся в иглах и соленая. И у людей не хватает воображения. Они только
повторяют то, что им скажешь...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.