свежее интервью со страуструпом

Все, что вы хотели знать о программизме, но боялись спросить.
Аватара пользователя
ajkj3em
Маньяк
Сообщения: 2063
Зарегистрирован: 12 ноя 2006, 06:53

свежее интервью со страуструпом

Сообщение ajkj3em »

тут; типа для тех кто /. не читает

особенно грамотная часть - про инварианты и классы/интерфейсы.
Bjarne Stroustrup: My rule of thumb is that you should have a real class with an interface and a hidden representation if and only if you can consider an invariant for the class.

Bill Venners: What do you mean by invariant?

Bjarne Stroustrup: What is it that makes the object a valid object? An invariant allows you to say when the object's representation when it's good and when it isn't. Take a vector as a very simple example. A vector knows that it has n elements. It has a pointer to n elements. The invariant is exactly that: the pointer points to something, and that something can hold n elements. If it holds n+1 or n-1 elements, that's a bug. If that pointer is zero, it's a bug, because it doesn't point to anything. That means it's a violation of an invariant. So you have to be able to state which objects make sense. Which are good and which are bad. And you can write the interfaces so that they maintain that invariant. That's one way of keeping track that your member functions are reasonable. It's also a way of keeping track of which operations need to be member functions. Operations that don't need to mess with the representation are better done outside the class. So that you get a clean, small interface that you can understand and maintain.
"Бриан - голова" :)
Xa-xa
Пользователь
Сообщения: 81
Зарегистрирован: 06 июл 2003, 19:35
Контактная информация:

Re: свежее интервью со страуструпом

Сообщение Xa-xa »

drain bamage писал(а): Bjarne Stroustrup: What is it that makes the object a valid object? An invariant allows you to say when the object's representation when it's good and when it isn't. Take a vector as a very simple example. A vector knows that it has n elements. It has a pointer to n elements. The invariant is exactly that: the pointer points to something, and that something can hold n elements. If it holds n+1 or n-1 elements, that's a bug. If that pointer is zero, it's a bug, because it doesn't point to anything. That means it's a violation of an invariant. So you have to be able to state which objects make sense. Which are good and which are bad. And you can write the interfaces so that they maintain that invariant.
А смысл, доктор? :) Есть же Java, зачем еще один язык с более мощными секьюрити фичами?

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

1) Если хочется секьюрный язык -- он уже есть (Java).
2) Если хочется перформанс и те фичи, которых в джаве нет, да еще и секьюрити, то подход описанный выше -- не выход, так как оверхед на мониторинг действий программы и сравнение с шаблоном может быть огого (хотя у меня нет цифр и я могу быть здесь не прав).
Аватара пользователя
Marmot
Графоман
Сообщения: 38431
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

Re: свежее интервью со страуструпом

Сообщение Marmot »

Xa-xa писал(а):С другой стороны, в академии щас это модная тема (писать языки, которые включают описание действий программы как часть исполняемого файла),
А можно поподробнее, pls.?
Что имеется ввиду, просто metadata как в C#?
Или что-то покруче...

PS
А то я как-то не заметил этой тенденции... :oops:
Xa-xa
Пользователь
Сообщения: 81
Зарегистрирован: 06 июл 2003, 19:35
Контактная информация:

Re: свежее интервью со страуструпом

Сообщение Xa-xa »

Marmot писал(а):
Xa-xa писал(а):С другой стороны, в академии щас это модная тема (писать языки, которые включают описание действий программы как часть исполняемого файла),
А можно поподробнее, pls.?
Что имеется ввиду, просто metadata как в C#?
Или что-то покруче...

PS
А то я как-то не заметил этой тенденции... :oops:
Вот ссылка на профессора, который занимается секьюрными языками:
http://www.cis.upenn.edu/~stevez/research.html

Вот его презентация "Programming Languages for Information Security"
http://www.cis.upenn.edu/~stevez/jobtalk.ppt

Они в Корнеле вообще в плане языков продвинутые очень.

У нас в лабе тоже чем-то подобным занимаются -- PAID : Program-semantics Aware Intrusion Detection
http://www.ecsl.cs.sunysb.edu/paid/index.html
Аватара пользователя
ajkj3em
Маньяк
Сообщения: 2063
Зарегистрирован: 12 ноя 2006, 06:53

Re: свежее интервью со страуструпом

Сообщение ajkj3em »

Xa-xa писал(а):
drain bamage писал(а): Bjarne Stroustrup: What is it...
А смысл, доктор? :) Есть же Java, зачем еще один язык с более мощными секьюрити фичами?
смысл (по крайней мере цитаты) в том, что при "правильном" дизайне не все структуры должны быть классами в С++. причем понятно, что идея инвариантов к С++ жестко не привязана и легко распространяется на произвольные пары interface/implemnetations. для особо умных, кстати всплывает паралелль с базисами :)

ps. зачем он приплел секюрити я не совсем не понимаю. IMO основная фишка C++ - flexibility, то есть и возможно писать как на практически чистом С так и на нечто Java-like (включая gc). обычно пишут на чем-то среднем, за что С++ ников не любят ни С-шники ни Java-ники :)
Аватара пользователя
Marmot
Графоман
Сообщения: 38431
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

Re: свежее интервью со страуструпом

Сообщение Marmot »

drain bamage писал(а):... С++ ников не любят ни С-шники ни Java-ники :)
Ага, я вот их вообще с двух сторон не люблю :lol:
IMHO для OSes, drivers, VMs лучше С ничего нету
Для applications Java/C# - самое то

Для С++ остаются игрушки, да и те с ростом GHz перейдут на те же Java/C#

С++ это язык динозавр, большой, сильный но очень тяжёлый и уязвимый (мало защиты от дураков) :lol:
Аватара пользователя
Marmot
Графоман
Сообщения: 38431
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

Re: свежее интервью со страуструпом

Сообщение Marmot »

Xa-xa писал(а): Вот ссылка на профессора, который занимается секьюрными языками:
http://www.cis.upenn.edu/~stevez/research.html

Вот его презентация "Programming Languages for Information Security"
http://www.cis.upenn.edu/~stevez/jobtalk.ppt

Они в Корнеле вообще в плане языков продвинутые очень.

У нас в лабе тоже чем-то подобным занимаются -- PAID : Program-semantics Aware Intrusion Detection
http://www.ecsl.cs.sunysb.edu/paid/index.html
Ну, это пока модой назвать сложно, IMHO :-)
Я в плане языков больше на MIT ориентируюсь, там народ покруче будет, и понапористее btw...:-)
Аватара пользователя
папа Карло
Шарманщик
Сообщения: 8565
Зарегистрирован: 17 фев 2003, 15:04
Откуда: НН -> BC -> WA -> UT -> CA

Сообщение папа Карло »

работа у страуструпа такая, лекции читать и типа ученым быть :) вот поэтому и задвигает. :)
Xa-xa
Пользователь
Сообщения: 81
Зарегистрирован: 06 июл 2003, 19:35
Контактная информация:

Сообщение Xa-xa »

папа Карло писал(а):работа у страуструпа такая, лекции читать и типа ученым быть :) вот поэтому и задвигает. :)
Пришел Стас и все опошлил. :)
Аватара пользователя
папа Карло
Шарманщик
Сообщения: 8565
Зарегистрирован: 17 фев 2003, 15:04
Откуда: НН -> BC -> WA -> UT -> CA

Сообщение папа Карло »

Xa-xa писал(а):
папа Карло писал(а):работа у страуструпа такая, лекции читать и типа ученым быть :) вот поэтому и задвигает. :)
Пришел Стас и все опошлил. :)
Чего смеешся? :) Вы научники все такие. Вам лишбы теорию развести и задвинуть чего-нить 8)
Аватара пользователя
Marmot
Графоман
Сообщения: 38431
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

Сообщение Marmot »

Вот тут интересное обсуждение это интервью http://www.theserverside.com/home/threa ... d_id=21924
Я, кстати, полностью согласен с парнем по имени Mike Spille
Аватара пользователя
Picasso
Пользователь
Сообщения: 102
Зарегистрирован: 17 фев 2003, 18:24
Откуда: Due South

Сообщение Picasso »

папа Карло писал(а):работа у страуструпа такая, лекции читать и типа ученым быть :) вот поэтому и задвигает. :)
Он кстати до сих пор в AT&T сидит на Ньюджерщине, сениор технолоджи лид кажется его официалльный титул. Как-то даже слегка пересекались, но лично ему представлен к сожалению не был. Жаль, а то бы полез автограф просить :roll:
Аватара пользователя
ajkj3em
Маньяк
Сообщения: 2063
Зарегистрирован: 12 ноя 2006, 06:53

Сообщение ajkj3em »

Marmot писал(а):Вот тут интересное обсуждение это интервью http://www.theserverside.com/home/threa ... d_id=21924
Я, кстати, полностью согласен с парнем по имени Mike Spille
не знаю с каким из N постов ты там согласен, но его "sharp, sharp people" похоже какие-то слегка странные, если он видит их (вероятно около-production) проги coredump'ающимися налево и направо.
A big problem in a language with C++ is object-lifetime, object ownership, and invalid deletes.
Это малек .. ээ .. недальновидное флеймо-образное обобщение. The problem with C++ is (повторюсь) its flexibility.

object-lifetime и invalid deletes лечатся как известно reference counting'ом и/или template'ными wrapper'ами. object-ownership - следованием соответствующим соглашениям в datamodel или на крайний случай аналогами auto_ptr & co.

проблемы с heap vs stack variables - вообще детский сад из раздела для теоретиков .. короче w/ all due respect к тов. Michael'у - это типичный развод на флейм. "не нравится - не нюхай" .. сиди ковыряйся в своей песочнице :-p
Аватара пользователя
Marmot
Графоман
Сообщения: 38431
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

Сообщение Marmot »

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

Бей С++-ников, спасай IT industry!!! :lol:
Alexander Ch.
Завсегдатай
Сообщения: 284
Зарегистрирован: 04 мар 2003, 08:49
Откуда: Hamilton, Ontario

Сообщение Alexander Ch. »

Marmot писал(а):Ага, всё лечится, надо только не забывать колоться каждый день лекарствами...
Повторять аргументы не хочется, кто хочет тот найдёт их в в том же линке, это уже переходит в религиозный спор.

Бей С++-ников, спасай IT industry!!! :lol:
А кто может дать линк на "интервью Страуструпа" о том, что он С++ придумал, чтобы программеры не голодали? :lol:
Ответить