LINUX.ORG.RU

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


0

0

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

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

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

★★★★★

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

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

>получается что 6 лет он потратил на изучение одного языка а не программирования.

И это самая большая проблема C++. Если его надо изучать (не дабираться опыта и гуд практисес) - а именно изучать несколько лет....

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

> нет, вы будет расстреляны -)

<горестно> За чЬто?

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

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

Нет, просто у Бени фимоз мозга.

http://absurdopedia.wikia.com/wiki/C%D0%B8_%D0%BF%D0%BB%D1%8E%D1%81_%D0%BC%D0...

> обидно, что наш соотечественник, страуструповский приспешник Кузнецов (если не ошибаюсь), соорудил такую же мракобесную STL.

Таки Степанов будет.

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

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

И что, навыки оценки времени сходимости алгоритмов им транслируют прямиком в подкорку?

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

> И это самая большая проблема C++. Если его надо изучать (не дабираться опыта и гуд практисес) - а именно изучать несколько лет....

а если параллельно человек изучал lisp, ml, haskel, python, perl, пару другую ассемблеров, различные системы и среды, сравнивал, анализировал , то какому языку зачесть эти годы ?
али он сидел в темной комнате и учил страуструпа наизусть ?

PS
если человек знает только c++ увольте его немедленно. Зачем вам идиот который даже c++ не знает ?

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

> И это самая большая проблема C++. Если его надо изучать (не дабираться опыта и гуд практисес) - а именно изучать несколько лет....

При желании, его можно и всю жизнь изучать ("Учиться, учиться и учиться - это лучше, чем работать, работать и работать" -- (C) Народ ). А можно на Си++ писать программы, набираясь опыта и "гуд практисес".

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

> Хотя для дешевых взаимозменяемых кодеров

Дешевых "взаимоЗМеняемых" кодеров - это кто таки будут? Kikes c Брайтон-Бич что ли? Или coons?

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

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

а конкретнее? в чем проблемы то? в том, что int не объект или в возможности множественного наследования? в с++ много гемора, но он ниразу не там куда вы изволите тыкать.

>Посмотрите сколько существует книжек, посвященных лишь одному аспекту языка - шаблонам

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

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

Вот только чел-к проработавший с с++ достаточно долгое время, начинает напиминать молоток, который в любой проблеме видит гвоздь. Примеры того, что на perl или ruby можно писать куда более эффективный, в терминах человеко-часов, код никого не убеждают.

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

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

ха! золотые слова! и что стоило молоть тонну чуши, чтобы потом изречь нечто действительно стоящее?

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

>, то какому языку зачесть эти годы ?

Простой критерий - до появления boost и книжки Алекстандреску - сколько народу, которые годами писали на C++ использовали приемы, которые там описаны? Нисколько?

C++ это язык в котором удивительное рядом - и с каждым годом его все больше открывают - хотя языку 100 лет в обед.

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

> чел-к проработавший с с++ достаточно долгое время, начинает напиминать молоток, который в любой проблеме видит гвоздь.

Не понимаю, о чем ты. Знакомые любители Си++ на нем не зацикливаются. Кто-то любит Руби, кто-то (как я) Питон, кто-то - Перл.

> Примеры того, что на perl или ruby можно писать куда более эффективный, в терминах человеко-часов, код никого не убеждают

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

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

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

Reflection?

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

Кстати, на жабе теперь даже менюшки в блюрей-дисках делают, ибо переносимо и имеет больше возможностей, нежели html+css+js в хд-двд

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

>Кстати, на жабе теперь даже менюшки в блюрей-дисках делают

Она в симки засунута и банковские карты - javacard.

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

>>Кстати, на жабе теперь даже менюшки в блюрей-дисках делают

>Она в симки засунута и банковские карты - javacard.

Бу-га-га. Не знаю, как там в блюреях, но в симках и банкоских картах - это не Java, а огрызок, УБОГОЕ подмножество.

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

что касается шаблонов, то в подавляющем большинстве случаев там используются только 3 механизма - частичная специализация, рекурсия и наследование (сфинае не считаем). это чистая функциональщина. частичная специализация - это в чистом виде патен мэчинг, рекурсия и наследование и так понятно.

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

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

>чего только стоят многостраничные описания ошибки, генерирумые компилятором.

ха! согласен! и иногда эти ошибки казалось бы совершенно не в тему и сбивают с толку даже далеко не новичка.

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

>Reflection?

На rsdn.ru где то была статья как на с++ реализовать метаинформацию а плюсь ищё интерфейсы вот вам и рефлексия.

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

>Не знаю, как там в блюреях, но в симках и банкоских картах - это не Java, а огрызок, УБОГОЕ подмножество.

Убогое для чего? Для запуска q2? Када туда Qt засунут - позовете.

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

>На rsdn.ru где то была статья как на с++ реализовать метаинформацию а плюсь ищё интерфейсы вот вам и рефлексия.

ДЫк нихто не сомнева5ется что можно - MOC нихто не отменял равно как и препроцессор. Потенциальная возможность реализовать что либо ничего не стоит если этого никто не делает.

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

>На rsdn.ru где то была статья как на с++ реализовать метаинформацию а плюсь ищё интерфейсы вот вам и рефлексия.

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

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

>>Не знаю, как там в блюреях, но в симках и банкоских картах - это не Java, а огрызок, УБОГОЕ подмножество.

>Убогое для чего? Для запуска q2?

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

tailgunner ★★★★★
()

Кстати, кто там высказывал версию о том что JVM написана на C++ и у кого откуда такая трава? На С она написана, на С...

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

А когда я покажу программу, написанную на лиспе, ты убъёшь себя башкой об стену?

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

бей его, бей его! Народ на лоре не устает как всегда спорить на тему "у кого длиннее"... ) не надоело еще всем?

akira_ag
()

"People push what they know and what they have seen work; how could they do otherwise?"

Что ещё вам добавить...

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

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

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

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

Мы говорим вроде про vm а не про всю sdk... Плюс мне по ссылке ходить не положено - корпоративная политика =)

Спросил людей которые пишут jvm - сказали что на С написано )

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

Hotspot - это и есть VM, и писан он именно на C++, правда там дофига ассемблера, и такого C++, который практически тот-же ассемблер. Но там все раскидано по классам, есть шаблоны и т.д. Я его качал на посмотреть/подкрутить/пооптимизировать, правда пока не особо оптимизируется =).

> Спросил людей которые пишут jvm - сказали что на С написано )

Может они какой-то другой vm пишут, не сановский?

YesSSS ★★★
()

Золотые слова: "The idea of programming as a semiskilled task, practiced by people with a few months' training, is dangerous. We wouldn't tolerate plumbers or accountants that poorly educated. We don't have as an aim that architecture (of buildings) and engineering (of bridges and trains) should become more accessible to people with progressively less training. Indeed, one serious problem is that currently, too many software developers are undereducated and undertrained."

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

>Спросил людей которые пишут jvm - сказали что на С написано ) Очень часто при этом подразумевается что используется смешанный стиль (C/C++) Я обычно переспрашиваю :)

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

Оно конечно да... Но сравнение моста и, например, тетриса не совсем корректно... Да и не видел он наших водопроводчиков... Один гад у меня так все починил, что на следующий день половина ванны было заполнено водой самопроизвольно ;)

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

>позвольте напомнить - речь шла об интерфейсе. знаете что это такое?

Да. Но почему бы не поговорить о технологиях в целом?

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

>На rsdn.ru где то была статья как на с++ реализовать метаинформацию а плюсь ищё интерфейсы вот вам и рефлексия.

Это и на ассемблере можно. Как уже упоминали. Ассемблер - круче Си++? :)

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

> Но сравнение моста и, например, тетриса не совсем корректно...

Ну, мост надо сравнивать не с тетрисом, а с системой управления, скажем, Boeing767. А тетрис - с навесом на автобусной остановке.

> Да и не видел он наших водопроводчиков... Один гад у меня так все починил

Это быдлокодер от сантехники :)

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

>Ну, мост надо сравнивать не с тетрисом, а с системой управления, скажем, Boeing767

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

Поэтому навес на автобусной остановке тоже наврядли тетрис, хотя уже не Boeing :)

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

> Вот только чел-к проработавший с с++ достаточно долгое время, > начинает напиминать молоток, который в любой проблеме видит гвоздь.

Перевираете, батенька. Речь была о том, что если программист (С++) имеет только один инструмент - молоток, то каждую проблему рассматривает с точки зрения молотка, т.е. как шляпки гвоздей. В этом большая мудрость, заключенная в объектно-ориентированном мышлении (парадигме).

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

>Может они какой-то другой vm пишут, не сановский?

Сорри, стормозил ) IBMовский...

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

>>Reflection?

>Скажите, а где она _реально_ нужна?

Ну вообще я сталкиваюсь при работе с %Subj% проблемами по производительности, но в принципе она удобна для некоторых задач, например по Object-Relational Mapping (RDMBS). Когда сильно хочешь сказать класс такой-то (абсолютно лююой) иди как ты в БД или в файл XML )) и при этом скорость его помещения туда не сильно интересно )

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

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

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

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

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

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

>Ya rjal na ves avtobus, C++meta , bugoga ;)))

Альфекс..... Ты ведь ни в зуб ногой в С++. Фиг ли ты выступаешь, а?

Знаешь только С, ну и пиши на нем. Какого хрена ты обсуждаешь вкус еды, которую никогда не пробовал?

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

>Альфекс..... Ты ведь ни в зуб ногой в С++. Фиг ли ты выступаешь, а?

вот не надо :) я его знаю на базовом уровне, и то только потому что на нем ничего писать не хочу. НО C++ это не МЕТА язык, смешно, я валялся - метаязык - бугога ;) C++ это язык для узкого круга задач не более того, и никаким в нем meta и не пахнет.

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

>Скажите, а где она _реально_ нужна?

Например, чтобы JBForth мог выполнять из рантайма произвольные обращения к Java-классам :)

...

А так - вот реальный пример. Есть БД в SQL, где прописаны имена классов мобов в RPG. Нужно для каждого моба создать соответствующий объект. С reflection всё просто. Прочитали класс моба, сформировали из него строку с именем класса Java, создали класс, включили в обработку. Как без reflection? switch на сотню видов классов? :D

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