LINUX.ORG.RU

Вторая часть интервью с Bjarne Stroustrup


0

0

Автор языка программирования C++ рассказывает о лучших примерах использования своего детища, об обобщённом программировании, о перспективах аспектно-ориентированного программирования, о сложностях изучения языков программирования и о невеждах, которые их используют, о том, что Java был во многом навязан общественности с помощью огромных бюджетов на рекламу и о многом другом.

Первую часть интервью можно прочитать здесь: http://www.techreview.com/InfoTech/17...

>>> Подробности

★★★★★

Проверено: Shaman007 ()

Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от Sectoid

Re: Вторая часть интервью с Bjarne Stroustrup

>"Ниасилил, многабукаф"? Понятно.

Читать умеем? Ничего нового автор не написал. Управление сложностью, domain analysis, subsystem recognition, commonality & variability, и соответсвующий анализ - это нихрена не многопарадигменность с точки зреня языка.

>Наличие шаблонов и позволяет применять сразу аж 2 парадигмы: шаблонное метапрограммирование (почитайте Александреску, удивитесь) и обобщённое программирование.

Сдуреть можно. Парадигмы где? Вы стандартыне методы анализа, которые учат любые студенты в курсе философии называете парадигмами программирования?

>Наследование, перегрузка, виртуальность - поддержка ООП.

Что вы вообще называете парадигмой программирования? В каком таком разрезе C++ - мультипарадигменный? Какие там хотя бы две?

r ★★★★★ ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от acefsm

Re: Вторая часть интервью с Bjarne Stroustrup

>ну и таких проблем в с++ до попы

под этим я имел ввиду не только недостатки языка, но и недостатки окружения языка: - компиляторы и их баги, библиотеки и их баги(даже stl и тот бажный) - до сих пор нет нормального IDE:

msvc2005+visual assist(глючит при поиске reference на member), со временем перестал вообще работать только подсветка оставалась(вылечил переустановкой студии и остального брахла), иногда неправильно показывает autocomplete, скудные средства рефакторинга кода

и в общем плохие впечатления от работы visual assist и особенно от скорости и прожорливости памяти msvc2005

slickedit 11: под linux какая то проблема с парсингом stl, а так вообще замечательный редактор, за исключением что не поддерживает msvc компилятор и коряво работает с его solutions, да и вообще еще тоже много проблем у него(достаточно взглянуть на его официальный форум)

vim - не IDE -), ибо универсальное средство для редактирования

про emacs не буду писать и так все знают -)

acefsm ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от Noord

Re: Вторая часть интервью с Bjarne Stroustrup

> Не особо поворотлива и пускается не везде где пускается opera.

Да? На чпуксах работает? А на аиксах? А на соляре 2.0? С айриксом у нее как?

r ★★★★★ ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от Ian

Re: Вторая часть интервью с Bjarne Stroustrup

> Хм... Читаю "Горький вкус Java"... Автор называет C++ низкоуровневым языком =)
Ну по сравнению с java & .net это так и есть =)

Atlant ★★★★★ ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от Noord

Re: Вторая часть интервью с Bjarne Stroustrup

> А теперь попробуем добавить в C++ средствами C++ сборщик мусора и автоматическое управление памятью, чтобы было прозрачно для программиста. У меня получилось.

Плиз! Покаж! Глянуть хочу! =)

Atlant ★★★★★ ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от Displacer

Re: Вторая часть интервью с Bjarne Stroustrup

>да, и парочку классов с полиморфизмом каких нибудь, потом повызывать. В общем твоё решение - это вызов Си из Си, а не с++ из Си. Это как вариант обходной иногда возможно, но не всегда.

main - http://www.everfall.com/paste/id.php?ihejosnceb5p foo.h - http://www.everfall.com/paste/id.php?f65l9ttr0ic9 foo.cpp - http://www.everfall.com/paste/id.php?rn8frph6hyvt

acefsm ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от Displacer

Re: Вторая часть интервью с Bjarne Stroustrup

>да, и парочку классов с полиморфизмом каких нибудь, потом повызывать. В общем твоё решение - это вызов Си из Си, а не с++ из Си. Это как вариант обходной иногда возможно, но не всегда.

main - http://www.everfall.com/paste/id.php?ihejosnceb5p

foo.h - http://www.everfall.com/paste/id.php?f65l9ttr0ic9

foo.cpp - http://www.everfall.com/paste/id.php?rn8frph6hyvt

acefsm ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от Noord

Re: Вторая часть интервью с Bjarne Stroustrup

>Прозрачно можно реализовать сборщик мусора, сигналы и прочее, что в язык C++ _НЕ ВХОДЯТ_. Ну нет c++ этого, а с помощью языка реализовать можно.

Можно, но только через ж.

>Чем не метаязык?

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

ival ★★ ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от magellan

Re: Вторая часть интервью с Bjarne Stroustrup

> Зато межплатформенна, и не на уровне исходных кодов, а гораздо лучше - на уровне бинарных кодов (точнее байт кодов).

Java is not cross-platform, Java is a platform...

no-dashi ★★★★★ ()

Re: Вторая часть интервью с Bjarne Stroustrup

Назвать Си подмножеством Си++ - это, извините, перебор. Гнать ссаными тряпками из IT.

glebofff ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от anonymous

Re: Вторая часть интервью с Bjarne Stroustrup

Используя GTK, QT или ещё чего, строк будет столько, же сколько и на java.
А вы вот напишите хотябы текстовую программу по выводу "Hello World!" на экран компьтера работающего под Free Dos, контроллера с LCD экраном и т.д.

NonHuman ★★★ ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от anonymous

Re: Вторая часть интервью с Bjarne Stroustrup

> А первым коммерческим компилятором с ООП был вообще turbo pascal 5.5. Тогда плюсы сообще никак не дышали. Я прекрасно помню то время (286/ 386 процессоры. Программы на TC / TP летали а проги на TC++ ползали как черепахи даже на 486). И нет этому никаких оправданий.

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

anonymous ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от Noord

Re: Вторая часть интервью с Bjarne Stroustrup

>>А за libjpeg подметает?

> Нет, а вам сложно сделать обертку которая будет представлять удобный объектный интерфейс и всё подеметать? Или опять в стиле C пишем?

В баню тормоз libjpeg, libavcodec быстрее жмёт. И обёртка на c++ проще, чем к libjpeg =)

anonymous ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от magellan

Re: Вторая часть интервью с Bjarne Stroustrup

>> Опятьже pthreads - С стиль. Взять кросплатформенную обертку и небудет проблем. (по крайней мере с win, unix (linux, mac))

> Ну опять же если есть эта обертка. Парень из параллельной группы пытался найти, в итоге написал свою

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

anonymous ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от Noord

Re: Вторая часть интервью с Bjarne Stroustrup

>> Ну Вы ведь не пишете имплементацию связанных списков каждый раз как она понадобится?

> Так сложно написать? На c++ 20 строк будет тупого кода.

Код в студию. Реализация контейнера типа список для произвольного типа данных в 20 строках c++ кода.

anonymous ()

Re: Вторая часть интервью с Bjarne Stroustrup

> Ага - они все шизонулись. Кернел хакеры шизонулись со своей buddy. Ребяты которые пишут долгоживущие серверные приложения (типа постгреса) - все как один больны на голову со своими MM. А всего то было просто использовать new/delete и все вопросы были бы решены....

PG на си написан вроде как? Штатно в си нельзя выделять структуры там, где захочется (в сегменте shm)

anonymous ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от Displacer

Re: Вторая часть интервью с Bjarne Stroustrup

> Гораздо правильнее использовать готовое, отлаженное и стандартное решение. Правда в некоторых случаях зависимости важны, да. boost, qt и там еще мало ли что качать ради консольной утилитки в 50 строк было бы прямо скажем, напряжно :)

Часто благодаря boost, qt и что там ещё 50 строк и получается. Без них - лисапед о многих кб кода.

anonymous ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от NonHuman

Re: Вторая часть интервью с Bjarne Stroustrup

> А вы вот напишите хотябы текстовую программу по выводу "Hello World!" на экран компьтера работающего под Free Dos, контроллера с LCD экраном и т.д.

freedos на arm7/9 ?

anonymous ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от no-dashi

Re: Вторая часть интервью с Bjarne Stroustrup

> Java is not cross-platform, Java is a platform...

Вот это более соответствует истине.

Компиляторы C++ разрабатывались ГОДАМИ, в них вложено столько трудов и идей, что транслятор C++ оказался поистине бриллиантовым. Себестоимость системного и тем более прикладного ПО на C++ в РАЗЫ выше, чем для типобезопасных языков и языков в управляемых средах. Сложность чего-то выдающегося, которое ещё можно написать на С++, ограничивается приложениями уровня MS Office, OpenOffice, JVM HotSpot. Всё, что выше и толще,- неподъёмно для С++. Конечно, можно развить модульность как в Си и Ada, но ООП-интерфейсы на C++ вряд ли способствуют пониманию взаимодействия частей сторонними программистами без прочтения талмудов документации. Поэтому большие системы, особенно распределённые пишутся на java, так как проще обозреть и понять архитектуру.

iZEN ★★★★★ ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от iZEN

Re: Вторая часть интервью с Bjarne Stroustrup

> Поэтому большие системы, особенно распределённые пишутся на java, так как проще обозреть и понять архитектуру.

А как большое с распределенным связанно?

anonymous ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от iZEN

Re: Вторая часть интервью с Bjarne Stroustrup

> Сложность чего-то выдающегося, которое ещё можно написать на С++, ограничивается приложениями уровня MS Office, OpenOffice, JVM HotSpot.

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

> Всё, что выше и толще,- неподъёмно для С++. Конечно, можно развить модульность как в Си и Ada,

Т.е. парадигма ООП в целом и C++ в частности по сравнению со структурным программированием на портабельном ассемблере - фигня полная?

> но ООП-интерфейсы на C++ вряд ли способствуют пониманию взаимодействия частей сторонними программистами без прочтения талмудов документации

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

anonymous ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от anonymous

Re: Вторая часть интервью с Bjarne Stroustrup

Столько бреда я давно не читал, спасибо повеселили ))) Половина понятия не имеет о чем говорит.

anonymous ()

Re: Вторая часть интервью с Bjarne Stroustrup

страуструп - душный болван :) только умолишенный математик мог додуматься до такого мракобесия, как С++. обидно, что наш соотечественник, страуструповский приспешник Кузнецов (если не ошибаюсь), соорудил такую же мракобесную STL.

P.S. пионерам просьба не беспокоить

--седайко стюмчик

sedajko_stjumchik ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от anonymous

Re: Вторая часть интервью с Bjarne Stroustrup

>парадигма ООП в целом и C++ в частности по сравнению со структурным программированием на портабельном ассемблере - фигня полная

согласен ;)

geek ★★★ ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от geek

Re: Вторая часть интервью с Bjarne Stroustrup

>> парадигма ООП в целом и C++ в частности по сравнению со структурным программированием на портабельном ассемблере - фигня полная

> согласен ;)

Как объяснить использование широкое ООП-приемов в ядре линукса, которое, как общеизвестно, написано на голом си (asm для mm и подобных вещей не в счёт)?

anonymous ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от acefsm

Re: Вторая часть интервью с Bjarne Stroustrup

>да кста, а какие проблемы вызова из С С++ кода ? -)

Иди вон расскажи это svu и geek-у, а то они который год протестуют против Qt именно потому, что её можно использовать из C++-программ, но нельзя изпользовать из C-программ.

MYMUR ★★★★ ()

Re: Вторая часть интервью с Bjarne Stroustrup

> Java был во многом навязан общественности с помощью огромных бюджетов на рекламу

Ой, вей! Беня наехал на Жабу? Беня таки не понимает, что аффтору языка С++ "место в дурке, либо на погосте" (с) проф.В.С.Луговский.

Беня не знает, что такое gc? Ну можно и не ассемблере проги пейсать, еще быстрее таки уже работать будут. Только вот не понимают "титеретики" от программирования, что нет таки в реальной жизни "программирования ради программирования". Для каждой фирмы важен гешефт как конечная цель.

Bioreactor ★★★★★ ()

Re: Вторая часть интервью с Bjarne Stroustrup

>> А теперь попробуем добавить в C++ средствами C++ сборщик мусора и автоматическое управление памятью, чтобы было прозрачно для программиста. У меня получилось.

> Сурьезно? И heap compaction оно делать умеет? А за libjpeg подметает?

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

anonymous ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от anonymous

Re: Вторая часть интервью с Bjarne Stroustrup

>Ну напишите C++ окошко с надписью Hello world. Под win32 и Linux. И под сотовый. Сравните код. Мы посмеёмся.

Насчет сотового не скажу, а вот для Win32/Linux/BSD/MacOS X получится что-то типа такого:

#include <QApplication>
#include <QLabel>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QLabel hello("Hello world!");
    hello.resize(100, 30);

    hello.show();
    return app.exec();
}

Можете начинать смеяться, ага.

MYMUR ★★★★ ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от NonHuman

Re: Вторая часть интервью с Bjarne Stroustrup

>А вы вот напишите хотябы текстовую программу по выводу "Hello >World!" на экран компьтера работающего под Free Dos, контроллера с >LCD экраном и т.д.

Free Dos ? Пожалуста ставим RTKerenel и работаем как с обычным C. Для LCD ищё проще просто читаем мануал по инициализации и тратим пару часов для написания библиотеки стандартный выражений!

И вообще опять всё в куче почему то оказалось. Сравнивать язык с платформой ну это уже история с бородой! По таким наклонностям можно сказать, что тут собралось скопище кодеров первогодок! А вот кто может сказать что напишет без проблем и в сроки систему в которой должена быть часть для embedded system, часть работать с базами данных и часть реализующая web service. Если есть такие что всё это делаю используя только С или С++ - ищите стену товарисчи.

Нада для кокретных задач искать инстурменты, а не для инструментария адаптировать задачи . . .

anonymous ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от sedajko_stjumchik

Re: Вторая часть интервью с Bjarne Stroustrup

Таки Стив Джобс послал в тухес Бенино поделие (оставив, правда этот недоязычок для мазохистов) и предлагает Objective C. (&& Java.)

http://ru.wikipedia.org/wiki/Objective-C

http://www.apple.com/macosx/leopard/xcode.html

Bioreactor ★★★★★ ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от anonymous

Re: Вторая часть интервью с Bjarne Stroustrup

>Как объяснить использование широкое ООП-приемов в ядре линукса

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

geek ★★★ ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от MYMUR

Re: Вторая часть интервью с Bjarne Stroustrup

>Иди вон расскажи это svu и geek-у, а то они который год протестуют против Qt именно потому, что её можно использовать из C++-программ, но нельзя изпользовать из C-программ.

мы не протестуем. Мы твёрдо убеждены, что библиотеки общего назначения писать на плюсах могут только больные на голову люди. Ну или те, кто не знает, что кроме плюсов есть ещё дофигища других ЯП (что говорит как минимум о необразованности)

geek ★★★ ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от Displacer

Re: Вторая часть интервью с Bjarne Stroustrup

>>> У с++ компиляторов несовместимый ABI. Стандартного средства вызывать с++ код из Си-кода не существует. extern "C" - как логично можно было бы предположить, как раз для обратной задачи.


дебильчик ! - берешь и вызываешь
c++ и с полностью совместны по ABI

anonymous ()

Re: Вторая часть интервью с Bjarne Stroustrup

>>> И самая шизонутая - мозилла со своими coding conventions, где хтэмэлом по белому написано - что самое первое правило C++ в таком большом проекте как мозилла - никакого C++, для сохранения портабельности кода. Им забыли объяснить про обертки мультиплатформенные, которые пишутся на раз.

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

anonymous ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от geek

Re: Вторая часть интервью с Bjarne Stroustrup

>Ну или те, кто не знает, что кроме плюсов есть ещё дофигища других ЯП (что говорит как минимум о необразованности)

Ну или те, которых "проблемы негров не волнуют" © =)))

MYMUR ★★★★ ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от Displacer

Re: Вторая часть интервью с Bjarne Stroustrup

>>> У с++ компиляторов несовместимый ABI. Стандартного средства вызывать с++ код из Си-кода не существует. extern "C" - как логично можно было бы предположить, как раз для обратной задачи.


дебильчик ! - берешь и вызываешь
c++ и с полностью совместны по ABI

anonymous ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от MYMUR

Re: Вторая часть интервью с Bjarne Stroustrup

Супер! "Неllo, world!" - это очень практически полезная программа. Ну а теперь веб-сервис на Qt.:) Или хотя бы компонент для объектно-реляционного отображения таблиц СУБД на сервере приложений в многозвенной архитектуре.

Bioreactor ★★★★★ ()

Re: Вторая часть интервью с Bjarne Stroustrup

Так, гхм. Эта... ну... интервью!
Да-да, мне понравилось.
Хорошая статья. Определённо.

Господа, вы продолжайте, извините за оффтоп...

BloodyEyes ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от anonymous

Re: Вторая часть интервью с Bjarne Stroustrup

>c++ и с полностью совместны по ABI

ну-ну. Покажи мне как из C вызвать ну хотя бы конструктор и деструктор класса. Без написания всяких оберток с заворачиванием класса в структуру и калякания врапперов

geek ★★★ ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от Bioreactor

Re: Вторая часть интервью с Bjarne Stroustrup

>> Таки Стив Джобс послал в тухес Бенино поделие (оставив, правда этот недоязычок для мазохистов) и предлагает Objective C. (&& Java.)


вообще-то Джобс предлагает Objective-C++
это так для дебилов, к сведению

anonymous ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от MYMUR

Re: Вторая часть интервью с Bjarne Stroustrup

>Ну или те, которых "проблемы негров не волнуют" © =)))

вообще-то любое ограничение использования библиотек в OSS-коммунити - это дурной тон, как минимум. В том числе и ограничения по вызову функций библиотеки из других ЯП. Хотя до КДЕшнегов это наконец-то дошло, и они часть сервисов DE переводят на c-библиотеки и сервисы.

Ждем когда дойдет до трольтеков =)

geek ★★★ ()

Re: Вторая часть интервью с Bjarne Stroustrup

> ну и где в C vtable out of the box?

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

Более того, в VFS можно даже найти признаки наследования =)

anonymous ()
Ответ на: Re: Вторая часть интервью с Bjarne Stroustrup от Bioreactor

Re: Вторая часть интервью с Bjarne Stroustrup

>Супер! "Неllo, world!" - это очень практически полезная программа.

Включи мозг и перечитай моё сообщение с хеловорлдом целиком, ВКЛЮЧАЯ ПРОЦИТИРОВАННУЮ ЧАСТЬ.

MYMUR ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.