LINUX.ORG.RU

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


0

0

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

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

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

★★★★★

Проверено: Shaman007 ()
Ответ на: комментарий от Bioreactor

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

Вы хотели посмотреть на простой кроссплатформенный helloworld в окошке на С++? Вам предоставили варианты, смотрите. > Ну а теперь веб-сервис на Qt.:) Или хотя бы компонент для объектно-реляционного отображения таблиц СУБД на сервере приложений в многозвенной архитектуре.

А это уже денег стоит. Плати, тебе хоть на лиспе напишут.

anonymous
()
Ответ на: комментарий от Bioreactor

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

ТЗ в студию. Оценим стоимость, получу аванс --- и вперёд.

MYMUR ★★★★
()
Ответ на: комментарий от geek

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

Т.е. без ООП все хоть в каком-нибудь виде равно туго? :)

anonymous
()
Ответ на: комментарий от geek

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

Хм, то есть ты легко можешь из С воспользоваться либами любого другого языка (python, java, c#, lisp, ....) и только гаццкий C++ ограничивает твою свободу? Я правильно тебя понял?

MYMUR ★★★★
()
Ответ на: комментарий от geek

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

Не только инкапсуляцию, но и полиморфизм. Причем в основном как раз полиморфизм, а инкапсуляцию - так, следствие использования struct-типов :-)

no-dashi ★★★★★
()
Ответ на: комментарий от anonymous

>Т.е. без ООП все хоть в каком-нибудь виде равно туго? :)

причем тут туго? Структуры тоже можно считать ООП-приемом - всё зависит от точки зрения. Мне стоит наверное напомнить, что инкапсуляция - это не главное в ООП, да? :)

geek ★★★
()
Ответ на: комментарий от no-dashi

>Не только инкапсуляцию, но и полиморфизм. Причем в основном как раз полиморфизм, а инкапсуляцию - так, следствие использования struct-типов :-)

а struct-типы следствие использования полиморфизма, да? кто на ком стоял? ;)

geek ★★★
()
Ответ на: комментарий от Sectoid

>шаблонное метапрограммирование (почитайте Александреску, удивитесь)

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

Sun-ch
()
Ответ на: комментарий от sedajko_stjumchik

>только умолишенный математик мог додуматься до такого мракобесия, как С++.

Вы случайно не на PHP пишете?

anonymous
()
Ответ на: комментарий от pronvit

>недавно тут с Objective-C познакомился - вот это вещь!

Obj-C - это C с маленькой надстройкой и большим гемором (одно то, что все объекты аллокируются на хипе и при этом отсутствует гц и невозможно реализовать всякого рода смат ройнтеры - дорогого стоит!), плюс тормоза от x10 и более при вызове методов (хэш тэйбл лукап).

>а с++ мощный, спору нет, но малость кривоватый..

было бы любопытно услышать в чем кривизна. не просветите?

anonymous
()
Ответ на: комментарий от anonymous

>было бы любопытно услышать в чем кривизна. не просветите?

Существуют "чистые" ооп языки, типа типа Simula, SmallTalk, а С++ самый грязный хак в истории программирования, отсюда вся его монстроидальная сложность, помесь кенгуру и жирафа. Посмотрите сколько существует книжек, посвященных лишь одному аспекту языка - шаблонам. К примеру, описание макросов в лиспе, куда более мощной технологии, можно уместить на пару страниц.

Sun-ch
()
Ответ на: комментарий от acefsm

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

АБ это часть семантики и в стандарте они все перечислены. в жаба конечно нет АБ, однако есть куча гамна, которая нигде не объявлена и ходит в виде легенд и наставлений (например проблема += и т.п.).

anonymous
()

Мда... Java, C++, C, C# ... главное хвост! ) p.s. И бабосы...

akira_ag
()
Ответ на: комментарий от acefsm

>и вообще вам не кажется или не представляется какая либо картина о языке когда о нем пишут кучу книг где описаны узкие места (мины )

узких мест полно в любом языке (в той же жаба их тоже полно).

>по моему это не нормально, даже фанатично

то, что пишут кучу книг? это свидетельствует о популярности, а не о фанатизме. в любом случае, как я уже заметил выше, если не хотите читать кучу книг и знать про АБ - читайте статдарт (ибо он есть в отличии от), однако все АБ понятны на интуитивном уровне: например ненадо иметь много в башке чтобы знать, что нельзя разименовывать нулевой указатель - ибо АБ!

anonymous
()
Ответ на: комментарий от anonymous

> C++ это фикция. Фантом

Перекрестись - может, он исчезнет, и станет тебе счастье.

> А первым коммерческим компилятором с ООП был вообще turbo pascal 5.5. Тогда плюсы сообще никак не дышали.

Да неужели? GNU C++ родом примерно из 1987. Zortech C++ вовсю продавался в 1988. Не говоря уже о более ранних Cfront от AT&T (или ты не считаешь его за компилятор C++?)

> Я прекрасно помню то время

Это твое личное мнение.

> Программы на TC / TP летали а проги на TC++ ползали как черепахи даже на 486)

Маленькая поправка - программы на TC/TP работали не быстрее программ на TC++, но вот компилятор TC++ был намного медленнее TC/TP, да. На TurboVision это хорошо проявлялось.

Кстати - Turbo C++ существенного распространения не получил и был быстро заменен Borland C++

tailgunner ★★★★★
()

Да, еще из Си++ без проблем можно вызывать Java :-D

anonymous
()
Ответ на: комментарий от anonymous

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

При чем тут shm? Или весь постгрес живет в shm?

r ★★★★★
()
Ответ на: комментарий от anonymous

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

РЕЛАП написан на фортране.

argin ★★★★★
()
Ответ на: комментарий от acefsm

>вот опять проблема - контроль за порядком жизни Singleton's -), осталось тока александреску зачитать про singletons и его трюки

точнее автоматический контроль за временем смерти. так ведь пойнт то в том, что есть такие трюки и они работают! в жаба при теж же проблемах ни одного решения! поэтому некоторые особо продвинутые жапщики ( хотя они не только жапщики, а и С++ и нетом не брезгают) как мр. Род Джонсон и К вообще считают синглтоны плохой практикой (антипатеном).

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

а где их меньше?

anonymous
()
Ответ на: комментарий от anonymous

>о, что пишут кучу книг? это свидетельствует о популярности, а не о фанатизме. в любом случае, как я уже заметил выше, если не хотите читать кучу книг и знать про АБ - читайте статдарт (ибо он есть в отличии от), однако все АБ понятны на интуитивном уровне: например ненадо иметь много в башке чтобы знать, что нельзя разименовывать нулевой указатель - ибо АБ!

спасибо уже давно прочитал и стало противно от этих костылей для языка в виде того же boost

acefsm
()
Ответ на: комментарий от anonymous

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

в lisp -)

acefsm
()

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

если они есть, они кому-то нужны. и ни всё ли вам равно, кто на чём пишет, кто что при этом курит и какие браузеры на чём написаны. не парьтесь.

asgard
()
Ответ на: комментарий от acefsm

>даже stl и тот бажный

ага, в стандарте баги прописаны! не нужно гнать чепуху. или в жаба или нете нет багов? или их меньше?

>вылечил переустановкой студии и остального брахла

ай малацца! ( хотя лечится проще - удалением интелисенсовских файлов ). мне вот только одно непонятно, как это через 10 лет существования такой замечательной муйни как жаба, ее присутствие на компутерах составляет 0.001% от общего количества софта там присутствующего? и это при том, что там НЕТ АБ, ЕСТЬ нетбинс и иклипс и идеа с чудным коуд-кэмплекшном, с туево хучей безглючных библиотек и гц с хип-компактингом, а все, приложения написаны на низкоуровневом С и С++.

anonymous
()

ребят, пишите еще, очень интересно

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

сдерживайте себя ребята, читать не приятно. конструктив приветствуется.

ps. в таких флейм образующих топиках стоит ставить ограничение на посты анонимусами

gra
()
Ответ на: комментарий от tailgunner

>А программировать пробовал? Или настолько противно было, что не стал?

программировал и фанател раньше сильно по с++

сейчас скорее отрицательные эмоции к с++ чем положительные

acefsm
()
Ответ на: комментарий от anonymous

>>даже stl и тот бажный

>ага, в стандарте баги прописаны! не нужно гнать чепуху. или в жаба или >нете нет багов? или их меньше?

причем тут стандарт?

и что есть стандарт, но многие ли компиляторы его поддерживают полностью? ни одного

есть много реализаций stl и в каждой свои грабли

просто вы так говорите от того что не спотыкались об такие вещи

acefsm
()
Ответ на: комментарий от anonymous

>У меня всегда висит Azureus и всегда что-то качает/отдаёт.

>А приплюснутые проги приходится постоянно перегружать (а чаще всего они сами падают). Браузер на яве - вот хотел бы. Нету приличного.

Есть и у меня такое дело. Azureus внимания никакого не требует. А вот тот же aMule периодически падает. Правда, это скорее вопрос не языка, а культуры программирования вообще. Ибо mldonkey, написанный на O'Caml падает у меня тоже часто. Даже в виде демона :)

KRoN73 ★★★★★
()
Ответ на: комментарий от acefsm

>> А программировать пробовал? Или настолько противно было, что не стал?
> программировал и фанател раньше сильно по с++
> сейчас скорее отрицательные эмоции к с++ чем положительные

а к кухонным ножам вы то-же эмоции испытываете ? а к апельсинам ? а к бананам ?
ну ка, интересно, какие эмоции вы испытываете к бананам ?

anonymous
()
Ответ на: комментарий от Sun-ch

> К примеру, описание макросов в лиспе, куда более мощной технологии, можно уместить на пару страниц.

Макросы Лиспа, при всей их мощи, - всего лишь макросы. Шаблоны - вещь куда более мощная и _проверяемая_ (статический контроль типов, pattern matching и всё такое). Это, наверное, можно сделать и в Лиспе, но описание займет отнюдь не пару страниц. Кстати - описание макросов даже Scheme - отнюдь не пара страниц, не гворя уже о Common Lisp.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>Шаблоны - вещь куда более мощная и _проверяемая_ (статический контроль типов, pattern matching и всё такое).

ну ка поподробней про проверяемую и про все такое

acefsm
()
Ответ на: комментарий от iZEN

>Компиляторы C++ разрабатывались ГОДАМИ, в них вложено столько трудов и идей, что транслятор C++ оказался поистине бриллиантовым.

gcc - один из лучших (соответствие стандарту) компиляторов - раздают даром. мс вс - похуже, но тоже даром. комо - самый лучший - 20$. бриллианты нынче дешевы. (дешевле чем мегабайты и даже чем гигагерцы)

>Себестоимость системного и тем более прикладного ПО на C++ в РАЗЫ выше, чем для типобезопасных языков

она конечно выше (т.к. нормальных программистов на С++ меньше и поэтому стоят они дороже. <<по крайней мере в штатах>> ), но не уж конечно не в разы.

>Конечно, можно развить модульность как в Си

от мля! это какая же в С есть модульность какой нет в С++?

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

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

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

дурь и маразм.

anonymous
()
Ответ на: комментарий от tailgunner

Пару страниц с примерами, и человек уже может писать что-то сам, а в случае с с++ это пара книжек, только тогда можно получить реальную пользу.

Sun-ch
()
Ответ на: комментарий от acefsm

> ну ка поподробней про проверяемую и про все такое

Да вроде в книжках всё распиано... Ты же бывший программист на Си++ - должен знать. Как простейший пример - если в шаблоне к объекту применяется операция someop, а в типе, с которым шаблон инстанциреутся, этой операции нет, то компилятор выдает ошибку. Насколько я понимаю, в Лиспе это будет ошибка времени выполнения.

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

tailgunner ★★★★★
()
Ответ на: комментарий от seiken

>Для мобильных устройств существует Symbian, винда ME и Linux, Java же на мобильных телефонах - просто бесполезная примочечка.

Сам ты бесполезная примочечка. Найди мне Symbian, Винду (кстати, с каких пор там ME? O_0) и Linux под Nokia 6230i

PashaKustov ★★
()
Ответ на: комментарий от Sun-ch

> Пару страниц с примерами, и человек уже может писать что-то сам, а в случае с с++ это пара книжек

ЧУШЬ. Простые шаблоны - не сложнее Сишных макросов, а сложные - в любом языке придется книжки читать.

tailgunner ★★★★★
()
Ответ на: комментарий от Sun-ch

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

слабоват моск то видать. до скатед хайэраки не добрался?

anonymous
()
Ответ на: комментарий от asgard

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

Sun-ch
()
Ответ на: комментарий от Sun-ch

> приходит молодой чел после универа, где его 6 лет обучали всяким трюкам и фокусам с с++, а просто вещи типа оценить время сходимости алгоритма в терминах О, не может,

Ну а если бы его обучали трюкам и фокусам Java (Delphi, FoxPro) - было бы лучше? Качество образования - это другая проблема.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>Ты же бывший программист на Си++ - должен знать

я не бывший -)

>Как простейший пример - если в шаблоне к объекту применяется операция someop, а в типе, с которым шаблон инстанциреутся, этой операции нет, то компилятор выдает ошибку

просто хотел услышать это от вас

acefsm
()
Ответ на: комментарий от tailgunner

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

Sun-ch
()
Ответ на: комментарий от Sun-ch

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

только не надо про заводы с китайцами и деревни индусов -)

acefsm
()
Ответ на: комментарий от seiken

> Java же на мобильных телефонах - просто бесполезная примочечка.

Ваше мнение очень таки авторитетно. Ви донесите это выдающееся открытие до Nokia, Sony Ericson, LG, Samsung & etc.. А то они там никак не могут понять, что "Java же на мобильных телефонах - просто бесполезная примочечка" (c)

Bioreactor ★★★★★
()
Ответ на: комментарий от Sun-ch

> Пару страниц с примерами, и человек уже может писать что-то сам, а в случае с с++ это пара книжек, только тогда можно получить реальную пользу.

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

anonymous
()

Да, у стариков - и трава тоже старая, на редкость выдержанная и забористая :)

Gharik
()
Ответ на: комментарий от acefsm

>что есть стандарт, но многие ли компиляторы его поддерживают полностью? ни одного

комо - общепризнано 100%, метроверк и жцц (>4.0.1)- около того.

>есть много реализаций stl и в каждой свои грабли

назовите грабли в стл от жцц 4.1.1 сейчас мало где в жцц есть грабли - ибо прошла эра мс вц 6.0 или борланда. если компилятор не реализует стандарт, сложно на нем реализовать стандартную библиотеку.

>просто вы так говорите от того что не спотыкались об такие вещи

хех! еще как спотыкался!

anonymous
()
Ответ на: комментарий от Sun-ch

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

Если мы говорим об обучении (а мы же о нем говорим?), то Java - не лучший выбор ИМХО. Слишком многое он прячет, и слабоват в обобщенном программировании. Хотя для дешевых взаимозменяемых кодеров - самое то, но кроме дешевых кодеров нужны люди, которые могут оценить сходимость в терминах O 8)

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