Компания TIOBE Software представила (http://www.tiobe.com/index.php/content/paperinfo/tpci/index....) результаты ежегодного исследования популярности языков программирования. Индекс TIOBE не пытается найти самый лучший язык программирования по самому большому количеству написанных строк кода, а строит (http://www.tiobe.com/index.php/content/paperinfo/tpci/tpci_d...) свои доводы по изменению интереса к языкам, на основе анализа статистики поисковых запросов в таких системах, как Google, Google Blogs, Yahoo!, Wikipedia, MSN и YouTube.
В 2009 году наиболее значительный скачек популярности был отмечен для языков Google Go (http://www.opennet.me/opennews/art.shtml?num=24209) (сразу занял 13 место в рейтинге) и Objective-C (c 37 места на 12), также на 5 позиций вперед продвинулся язык Lisp, на две позиции выросла популярность языка PHP и на одну - языка Ruby. Заметно понизилась популярность языков Pascal и PL/SQL (понижение на две позиции в рейтинге), популярность языков Delph...URL: http://www.tiobe.com/index.php/content/paperinfo/tpci/index....
Новость: http://www.opennet.me/opennews/art.shtml?num=24970
Как я понимаю, обращения в поиск вызваны трудностями с возможно незнакомым и непонятным или новым языком, а не его популярностью.
>Как я понимаю, обращения в поиск вызваны трудностями с возможно незнакомым и
>непонятным или новым языком, а не его популярностью.Обращения в поиск вызваны туевой хучей разных факторов.
дак анализ поиска 100 процентов проводился по запросам гугля, как же лишний раз не пропиарить своё новое поделие
>Как я понимаю, обращения в поиск вызваны трудностями
>с возможно незнакомым и непонятным или новым языком,
>а не его популярностью.Кореляция есть: чем больше популярность языка, тем больше количество новичков и малоопытных програмистов, которые используют его => больше запросов в поисковиках.
День случайных чисел? netcraft, теперь эта хрень. Фороникса только не хватает.
Удивительно. Странно что C популярнее чем C++.
>Удивительно. Странно что C популярнее чем C++.У си своя ниша, где у него практически нет конкурентов.
C++ подтесняется Явой, objective C, C#...
К тому же по историческим причинам он занимал нишу языков более высокого уровня, которую сейчас осваивают Python, Ruby...
Чтобы правильно писать на С++ нужно быть разработчиком компиляторов. Сначала создаешь новый язык, пишешь его компилятор с помощью переопределения стандартных операторов С++, создавая новую иерархию типов, плодя тонны нестандартных сущностей, понятных только самому разработчику и то в течении пары недель, както это все умудряешься отладить и только потом можешь приступать к написанию собственно программы на этом новом языке.Не у всех есть способности для такой длинной цепочки. Практика показывает, маловато реальных работающих программ на нем пишут.
вы судите со своей колокольни? и при чем здесь "нужно быть разработчиком компиляторов"? бред какой-то. драйвера, высокопродуктивное ПО, числодробилки, видеообработка и прочее, вроде браузеров пишется на сях и плюсах.
Очередной неосиливший поклонник никому не нужных лиспа/хаскеля?
я полагаю, писатель дотнет...
Нет вы все трое не правы. Вообще то это не только мои мысли, это мой вольный перевод одного из многочисленных выступлений Страуструпа. С тех пор прошло лет 15, и я стотысячмиллионов раз в этом убедился на практике.Дотнету - нет! Наш выбор старый добрый С и ассемблер.
> С тех пор прошло лет 15, и... и многое изменилось и это утверждение перестало быть верным
> я стотысячмиллионов раз в этом убедился на практике.
у тебя практика узкая. Выходи за пределы своего огорода.
> Наш выбор старый добрый С и ассемблер.
Кто оплатит этот банкет понижения скорости разработки моего ПО в разы ? Ты ?
> Дотнету - нет!
С этим соглаcен.
Да-да. Обычно так рассуждают или джавовцы, или дотнетчики.
>Удивительно. Странно что C популярнее чем C++.Ничего странного. C++ - костыль с С.
>>Удивительно. Странно что C популярнее чем C++.
>
>Ничего странного. C++ - костыль с С.Наоборот всегда считал C пережитком прошлого (сам программировал и на C и на C++).
> Наоборот всегда считал C пережитком прошлого (сам программировал и на C и на C++).Ну и зря. Я, например, после лет 8-10 на C++ пересел обратно на чистый C и очень доволен.
>> Наоборот всегда считал C пережитком прошлого (сам программировал и на C и на C++).
>
>Ну и зря. Я, например, после лет 8-10 на C++ пересел
>обратно на чистый C и очень доволен.После того, как однажды в школьные годы (в прошлом веке, если что, не в прошлом году :-) ) я узнал об объектной модели в программировании и реляционной модели в хранении данных, мой мозг напроч отказывается мыслить иначе, считая это единственно естественными моделями. Здравый смысл подсказывает что я вполне могу быть неправ, и уж точно прав применительно не ко всем задачам, но вот я такой :-)
"обратно на чистый C" у меня ассоциируется с песней "нормальный чистый ДОС" - ностальгично, прикольно (до сих пор люблю в древностях покопаться, на даче специально держу единственный комп - 486-й), но применительно к решению задач реальной жизни малоэффективно.
> После того, как однажды в школьные годы (в прошлом веке, если что, не в прошлом году :-) ) я узнал об объектной модели в программировании и реляционной модели в хранении данных, мой мозг напроч отказывается мыслить иначе, считая это единственно естественными моделями.Тоже так думал пока не разобрался досконально как представляются объекты в объектноориентированных языках... в итоге пришёл к выводу, что на Си можно программировать думая объектами. В С++ нравится ещё и шаблонное программирование, но чистый Си более читабелен, а это огромный плюс и библиотеки Си часто более актуальны чем стандартные библиотеки С++ (имеется ввиду, что пришлось в одном С++ проекте под линукс использовать функции Си для работы с файлами, так как стандартные С++ные не открывали файлы более 2 или 4-х Гб).
тут я поддерживаю. поняв, как устроен с++ в памяти компа, легко по надобности переходить на си. но у меня тут разделение: мелкие проекты - си, большие проекты - плюсы. мне как-то проще работать с векторами структур и строками, чем изобретать колесо через malloc
>Тоже так думал пока не разобрался досконально как представляются объекты в объектноориентированных
>языках... в итоге пришёл к выводу, что на Си можно программировать
>думая объектами.+1 Все правильно. Думать объектами _когда_это_нужно_, т.е. когда текущую задачу удобнее всего решать с помощью объектов. А С++ делает использование объектов _обязательным_, в противном случае он мало чем отличается от чистого Си. Кроме того, С++ благополучно наследует все недостатки Си, добавляя к ним свои собственные. Вдумайтесь: Страуструп создал язык, в котором он _сознательно_ и _намеренно_ воспроизвел недостатки другого языка! Чего только не сделаешь чтобы твоим детищем стало пользоваться как можно больше народу! :) Поэтому я и не нахожу для С++ другого определения, кроме как "объектно-ориентированный костыль для Си"...
>В С++ нравится ещё и шаблонное программирование, но чистый
>Си более читабелен...+1 Парадоксально, но факт. Даже Паскаль, при всем его многословии, оказывается более читабельным.
>>+1 Парадоксально, но факт. Даже Паскаль, при всем его многословии, оказывается более читабельным.это говорит о том что вы не читали как разрабатывауются программы на инкрементальном Си
вы не читали советов Страуструпа по дизайну и моделированиючем отличается "чистый с неотмытими пятнами" Си от Си++ ??? правильно дизайном и моделированием
и в чистеньком Си порой ни дизайна ни модели нету там всё Сверху Внизпс: Си хорош тем кто не копается в ч
пс: Си хорош тем кто не копается в чужом коде
>[оверквотинг удален]
>это говорит о том что вы не читали как разрабатывауются программы на
>инкрементальном Си
>вы не читали советов Страуструпа по дизайну и моделированию
>
>чем отличается "чистый с неотмытими пятнами" Си от Си++ ??? правильно дизайном
>и моделированием
>и в чистеньком Си порой ни дизайна ни модели нету там всё
>Сверху Вниз
>
>пс: Си хорош тем кто не копается в чДаже и не знаю как охарактеризовать этот комментарий... Пук в лужу? :)
> ... в итоге пришёл к выводу, что на Си можно программировать думая объектами.Можно, только смысл. Пример: Недавно разбирался с motion, нописанном на с, там есть возможность работы с несколькими камерами. В промежутках между вызовами ф-ций (фильтрация шума, детект движения, etc.) контекст (структура, содержащая текущий кадр с камеры и служебная инфа) хранится в массиве, где каждая ячейка соответствует камере и передается вызываемой ф-ции среди ее параметров. ИМХО, явный кандидат на переход на ООП парадигму проектирования. Гораздо проще было бы написать класс, который хранит и обрабатывает кадр...
> библиотеки Си часто
> более актуальны чем стандартные библиотеки С++ (имеется ввиду, что пришлось в
> одном С++ проекте под линукс использовать функции Си для работы с
> файлами, так как стандартные С++ные не открывали файлы более 2 или
> 4-х Гб).А написать обертку и использовать ее религия не позволяет? :-)
флаги
-D_LARGEFILE_SOURCE -D_LARGEFILE_SOURCE64 -DLARGEOFFSET_BITS=64
не помогают?
> флаги
> -D_LARGEFILE_SOURCE -D_LARGEFILE_SOURCE64 -DLARGEOFFSET_BITS=64
> не помогают?Понятия не имею, не у меня подобные проблемы были! :-)
Но на будущее учту, если такая грабля возникнет.
ёпта это где такое открывать 4 гига сразу ?
> ёпта это где такое открывать 4 гига сразу ?Как вариант (из того, с чем работает "простой смертный"), при работе с видео. При рипаньи с DV-камеры объем видеофайла лехко превосходит 4 гига.
>После того, как однажды в школьные годы (в прошлом веке, если что, не в прошлом году :-) ) я узнал об объектной модели в программировании и реляционной модели в хранении данных, мой мозг напроч отказывается мыслить иначе...Вот это и есть один из самых больших недостатков С++. Он отучает программистов мыслить как-то иначе, чем квадратно-гнездовым способом, и внушает, что это и есть единственно правильный способ мышления.
>>После того, как однажды в школьные годы (в прошлом веке, если что, не в прошлом году :-) ) я узнал об объектной модели в программировании и реляционной модели в хранении данных, мой мозг напроч отказывается мыслить иначе...
>
>Вот это и есть один из самых больших недостатков С++. Он отучает
>программистов мыслить как-то иначе, чем квадратно-гнездовым способом, и внушает, что это
>и есть единственно правильный способ мышления.Все зависит от человека и желания учиться.
Трухин кончай спамить.
Не нужны твои идиотские бессодержательные реплики, дорогой студент-партнёр microsoft
Вы слишком много о себе думаете. Не нужен этот сайт MS. В MS ценится совсем и совсем другое. Это и написание технических статей, и выступление на конференциях, и тестирование продуктов, и исследования. Но уж никак не ваш сайт и ответы на форуме. Так что прошу прекратить указывать тут на мой статус - я везде и всегда пишу свое личное мнение.
>Вы слишком много о себе думаете. Не нужен этот сайт MS. В
>MS ценится совсем и совсем другое. Это и написание технических статей,
>и выступление на конференциях, и тестирование продуктов, и исследования. Но уж
>никак не ваш сайт и ответы на форуме. Так что прошу
>прекратить указывать тут на мой статус - я везде и всегда
>пишу свое личное мнение.я читаю опеннет лет 6 уже. без вас он был лучше, без обид.
здесь конечно много людей предвзято относятся к СПО, считая его лучшим даже там где он не у дел.
они также не правы как и вы. но расхваливать microsoft за "написание технических статей, и выступление на конференциях, и тестирование продуктов, и исследования." - это бред сивой кобылы. простите, но на msdn бывают порой такие ляпы в документации, что возникают вопросы "кто у них там работает??" вбейте в гугле "ошибка документации msdn" или "documentation bug msdn". На codeproject гораздо больше полезной информации чем на всем msdn вместе взятом.
Перевод на русский оставляет желать лучшего. Не то что в документации, вы в Windows 2003 настраивали IPSec? Уши не завяли у вас читать эту ересь? Хотя если человек не читал книг по криптографии, он скушает.. тестирование - это средствами бета-тестеров(дом. юзеров), к-ым подарят купон на скидку на win7 ? а исследования - это небось Singularity, со сверх-новой концепцией осестроения.. при этом дебажит его стэнфорд или какой-то универ точно не помню, при чем здесь МС тогда...
Практически на каждый ваш пост можно легко найти разумное опровержение. Это говорит о том, что либо вы плохо разбираетесь в теме, либо вы фанат МС, либо кто-то подогревает этот пыл...
Большая просьба: не пишите тут больше, я думаю здесь так считает большинство...
PS дорого для России продукция МС обходится, подумайте может хватит пиарить эту компанию и непереносимый(или по крайней мере сейчас имеющий проблемы с лицензией в этом плане) .Net.
Если МС вам платит - просто прекратите писать, надоело уже читать этот бред. Спасибо большое заранее. Я постралася вежливо дать вам понять, что вам здесь не рады. Спасибо за понимание.
Как можно радоваться или не радоваться чему-то в технологических обсуждениях? Ваша неприязнь к каким либо технологиям - это глубоко ваши проблемы. И открытые технологии - это не ваша собственность, чтобы позволять кому-то их обсуждать, а кому-то нет. Не интересно - не читайте то что я пишу. Не для вас. И мои интересы - это мои интересы. Мир многогранен, а не биполярен, как вам хочется.П.С. Ваша неприязнь ко мне как к личности запрещена правилами сайта.
>Как можно радоваться или не радоваться чему-то в технологических обсуждениях?Еще раз перечитайте свои сообщения и постарайтесь непредвзято ответить себе самому, можно ли это назвать обсуждением технологий.
извини, Apache говно. Почему? Да, я не использовал его и никогда не собираюсь, просто говно, потому что Apache Foundation растакие...Ответишь, аноним? ответить то хочется, только в случае написания такого о MS ответ расценят как рекламу. Я использую технологии Microsoft повседневно и очень очень доволен. Но это не тема этого ресурса... Не пишите разводящие флейм высказывания.
П.С. Это только пример, я уважаю Apache Foundation
>дорого для России продукция МС обходитсяработу найдите, легче станет. Я еще до учебы в вузе в 10 классе заработал на Office 2 дня ремонт поделав по объявлению в газете. Бедные вы бедные...
П.С.
Еще раз повторюсь - на этом сайте неприветствуется обсуждение закрытых технологий, и не нужно меня разводить тут на обсуждение .NET и др. Есть проблемы? Есть форумы MSDN - там я с удовольствием отвечу на ваши вопросы. А тут обсуждаем OpenSource...
В общем случае - да. Но в данном конкретном случае человек говорит уже о том, что не может мыслить как-то иначе, кроме как в рамках "объектной модели".
а мешает этому как раз нежелание учиться. Если человек не может мыслить - это говорит о многом. Объектная модель подходит для решения большинства задач очень хорошо, но в некоторых случаях например функциональным подходом можно добиться больше. И очень важно иметь возможность в одном решении совмещать подходы.
а чем вам мешала объектная модель?
А чем тебе помешало обещание не спамить после нового года?
если человек работает с микроконтроллерами, то и надобности в объекториентированном языке тоже особой надобности нет. да и возможностей создавать объекты при, скажем, 2кб памяти... есть еще и другие задачи, при которых можно без особых проблем обойтись функциональностью си. пример: вычисления, в которых существует только один "объект" с определенными данными и функционалом.
>если человек работает с микроконтроллерамито что для некоторых микроконтроллеров есть компилятор С - это уже большое достижение. Несомненно каждой задаче нужно выбирать лучшие средства реализации, а в данном случае просто выбора нет.
всегда есть выбор. в особых случаях или ассемблер, или си. или микс.
для каких микроконтроллеров нет компилятора си? o_O это, прежде всего в интересах самого производителя - поставлять не просто железку на рынок, но и минимальный суппорт в виде компайлера. иначе производитель просто обречен.
>всегда есть выбор. в особых случаях или ассемблер, или сиЭто не так - для многих микросхем C-компилятора просто нет. Да и функционально они слишком ограничены.
Для каких нет? Последние с каким я работал были производства Altera, названия не помню, но ни для одной компилятора C не было.
а вы случаем FPGAs с микроконтроллерами не путаете?
>а вы случаем FPGAs с микроконтроллерами не путаете?у нас именно FPGA называют микроконтроллерами. И тема курсовой на 5 курсе была: разработка ... устройства на FPGA микроконтроллерах ...
ну это шедевр. программируемую логику называть микроконтроллером! такого я еще не слышал. поделюсь завтра с коллегами по работе. посмеемся.
в принципе предмет для ВМКСС не совсем профильный, так что всякое бывает
>ну это шедевр. программируемую логику называть микроконтроллером! такого я еще не слышал.
>поделюсь завтра с коллегами по работе. посмеемся.ну ее то точно на C не попрограммировать)
вообще-то это совсем другой подход. это программирование логических элементов! их можно соединять вместе, комбинировать. даже умножать и делить. и делать с помощью них математические вычисления. даже подбирать пароли. только подход будет неизменен. это все равно что собирать схему. хороший и распространенный пример - step7 от siemens. относительно простые логические и математические программки можно запрограммировать даже на FPGA. потому как там в зависимости от самого чипа может быть достаточно широкий набор, начиная со сдвигов регистра, заканчивая таймерами. и даже компайлер реализован.
http://sourceforge.net/projects/fpgac/в конце концов это та же самая программа. только совсем другое ее представление. не больше.
>вообще-то это совсем другой подход. это программирование логических элементов! их можно соединять
>вместе, комбинировать. даже умножать и делить. и делать с помощью них
>математические вычисления. даже подбирать пароли. только подход будет неизменен. это все
>равно что собирать схему. хороший и распространенный пример - step7 от
>siemens. относительно простые логические и математические программки можно запрограммировать даже на
>FPGA. потому как там в зависимости от самого чипа может быть
>достаточно широкий набор, начиная со сдвигов регистра, заканчивая таймерами. и даже
>компайлер реализован.спасибо за разъяснение
>а вы случаем FPGAs с микроконтроллерами не путаете?я не специалист в этом, возможно нас учили в вузе этому не лучшим образом, по работе я далек от железок
>всегда есть выбор. в особых случаях или ассемблер, или сиЭто не так - для многих микросхем C-компилятора просто нет. Да и функционально они слишком ограничены.
Для каких нет? Последние с каким я работал были производства Altera, названия не помню, но ни для одной компилятора C не было.
>а чем вам мешала объектная модель?Мне, например, она ничем не помешала. А иногда даже помогает. Но объектная модель не единственная пригодная на все случаи жизни. К сожалению, многие программисты на С++ этого не понимают.
>>а чем вам мешала объектная модель?
>
>Мне, например, она ничем не помешала. А иногда даже помогает. Но объектная
>модель не единственная пригодная на все случаи жизни. К сожалению, многие
>программисты на С++ этого не понимают.А в чем тут вина модели или языка? Много чего в мире люди не понимают, учиться нужно
IMHO C++ сначала обогнал свое время, а потом все время за ним не поспевал
>>Удивительно. Странно что C популярнее чем C++.
>
>Ничего странного. C++ - костыль с С.надмножество С , то бишь С с классами
А "Go" как рванул!
Я почему-то про такой не слышал, надо почитать
>Я почему-то про такой не слышал, надо почитатьВот именно по этому он и рванул в статистике поисковых запросов.
Ну или по тому, что в английском такое слово есть :-)
Вот. Действительно, на плюсах труднее пишется. Я вот думаю часть проектов всё же на питон пересадить.
http://bsdhome.org/index.php/Когда_ООП_-_зло
Автору данной статьи следует внимательно относится к тексту. Цитата из текста выше: "Так если a=1 и b=1, то a+b=3..." Хороший программист, да.
Безусловно это очепятка и она исправлена уже. Исправить мне подсказал человек, который понял что я хотел сказать.
Посмотрите на стиль написания статьи, на орфографию. Приличные статьи пишутся не так. И анализ там производится обычно куда более тщательно.
>Посмотрите на стиль написания статьи, на орфографию. Приличные статьи пишутся не так.
>И анализ там производится обычно куда более тщательно.Предлагаю вам поправить что видите. Я буду только за. Да тут собственно не о статье как таковой речь. Собственно автор и не брался делать полный анализ. Изложить мысли-да. Принять советы от читателей-да. Учить кого то жить-нет.
Суть статьи наверное в самой нижней цитате с луркмора.
>Посмотрите на стиль написания статьи, на орфографию. Приличные статьи пишутся не так.
>И анализ там производится обычно куда более тщательно.На эту тему есть и другие статьи, с более приемлемым стилем и орфографией ;)
http://www.cs.loyola.edu/~binkley/772/articles/oopbad.htm
http://www.softpanorama.org/SE/anti_oo.shtml
http://en.wikipedia.org/wiki/Object-oriented_programming#Cri...
Ха, смешно!! Человек не осилил си++. Пишет - попробуйте разберитесь в чужом коде и т.д. и т.п., в нормально организованных проектах таких проблем не возникает. зачем плодить свои типы? да кроссплатформенность требует... . ну и так далее . Вообщем полный бред, чувак просто пьяный наверно был...
>Ха, смешно!! Человек не осилил си++. Пишет - попробуйте разберитесь в чужом
>коде и т.д. и т.п., в нормально организованных проектах таких проблем
>не возникает. зачем плодить свои типы? да кроссплатформенность требует... . ну
>и так далее . Вообщем полный бред, чувак просто пьяный наверно
>был...Он осилил. Но ведь не всё что осилил, то и полюбил? Осилил, но старается избегать. Там кажется так и напейсано.
походу статьи, это он так думает...
>зачем плодить свои типы? да кроссплатформенность требует...Вы всерьез считаете, что кроссплатформенность достигается путем создания новых типов? :)
:)) нет конечно. это лишь одно из средств для достижения кроссплатформенности...
Вы, просто, не поняли, что такое ООП. Поначалу это действительно трудно, ну а после более гибкого и легкого языка программирования,как С++, я не встречал, а самое главное легко читаемого, если Вы не сбились на процедурное программирование.
>Вы, просто, не поняли, что такое ООП. Поначалу это действительно трудно, ну
>а после более гибкого и легкого языка программирования,как С++, я не
>встречал, а самое главное легко читаемого, если Вы не сбились на
>процедурное программирование.Человек высказал свое мнение, и оно не лишено рационального звена.
Безусловно, есть задачи (напр. ГУИ), где ООП дает определенные преимущества,
но в других задачах (где при самой постановке проект проблематично разбить на
объекты) оно вводит только лишнюю путаницу.
Сейчас уже очевидно, что ООП не совершило той революции в программировании, которую ему
пророчили.
Что касается C++, то это скорее не язык ООП, а нагромождение всего. В него включены
и принципы ООП, и способы их обойти. Он претендует сохранить все преимущества
низкоуровневого си, и в то же время включает элементы высооуровневого управления объектами, шаблонами и т.д. Разные программисты используют разные подмножества возможностей языка. Он позволяет работать и часовой отверткой, и кувалдой. Плохо это или хорошо - судить самому программисту.
Язык мне и сейчас нравится (правда меньше, чем сам C). Тем не менее определеныые программы - гуи, сетевые протоколы пользовательского уровня и т.д. - на том же Питоне пишутся в разы быстрее и легче читаются.
безусловно согласен по всем пунктам
Честно, я тоже раньше был в такого мнения. но я приложил немало сил чтобы понять принципы ООП. Перелопатил кучу литературы - существует куча методов и способов "проектирования" программ и разбиения на объекты. Мне пока не встретилась нормальная книга по ООП. Я думаю, тут пока один выход - личный опыт.
Ну, а создатели С++ преследовали цель, дать возможность Си-программистам использовать ООП, и это у них отлично получилось.
Использовать процедурное программирование вперемешку с ООП - это тихий ужас, лучше что-то одно.
Да, и выделить объекты можно в любой задачи, как и разбить на подзадачи. но смешивать я бы вам не советовал.
> Мне пока не встретилась нормальная книга по ООП.По мне, так есть парочка:
* Г. Буч "Объектно-ориентированный анализ и проектирование. С примерами приложений на С++"
* Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес Приемы объектно-ориентированного проектирования. Паттерны проектирования.
После ознакомления с ними, большинство вопросов отпали сами собой.
> Я думаю, тут пока один выход - личный опыт.Ну это тоже не маловажно.
>Использовать процедурное программирование вперемешку с ООП - это тихий ужас, лучше
>что-то одно.почему? каждой задачи свои средства, причем часто нужно различать подходы в рамках одного проекта. И функциональный подход тоже важен.
>>Использовать процедурное программирование вперемешку с ООП - это тихий ужас, лучше
>>что-то одно.
>
>почему? каждой задачи свои средства, причем часто нужно различать подходы в рамках
>одного проекта. И функциональный подход тоже важен.прицепы проектирования различаются, по-этому нельзя.
принципы проектирования чего. Каким образом шаблоны и реализации вам мешают использовать разные концепции в проекте?
Это как раз то что хотел сказать автор статьи.
Это не проблемы С++, это проблемы программиста.
>Что касается C++, то это скорее не язык ООП, а нагромождение всего.
>В него включены
>и принципы ООП, и способы их обойти. Он претендует сохранить все преимущества
>
>низкоуровневого си, и в то же время включает элементы высооуровневого управления объектами,
>шаблонами и т.д. Разные программисты используют разные подмножества возможностей языка. Он
>позволяет работать и часовой отверткой, и кувалдой. Плохо это или хорошо
>- судить самому программисту.Очень точно подмечено. В одних случаях мы пользуемся отверткой, в других - кувалдой. А С++ - это такая часовая отвертка с приделанной к ней кувалдой...
только в случае, если программист сам приделал к кувалде отвертку.
В том-то и дело, что не программист, а Страуструп :)
я вот сбился. да так, что до сих пор количество задач, где бы я лично применил ООП, могу пересчитать по пальцам одной руки. глядя на популярность ОО-языков, спорить даже не пытаюсь -- видимо, большинству виднее. но вовремя разглядеть их преимущества как-то не случилось, а сейчас ставятся уже совсем другие задачи.
>Вы, просто, не поняли, что такое ООПЕсли речь именно об ООП, то ООП это скорее Smalltalk или Java (или даже тот же сишарп от плохиша Билли). А плюсЫ - это лишь одна из первых (и потому довольно корявых) реализаций ООП для промышленного программирования. В этом вопросе решение обеспечить совместимость с Си оказала плохую службу, хотя и упростила массовую миграцию программеров.
>>Вы, просто, не поняли, что такое ООП
>
>Если речь именно об ООП, то ООП это скорее Smalltalk или Java
>(или даже тот же сишарп от плохиша Билли). А плюсЫ -
>это лишь одна из первых (и потому довольно корявых) реализаций ООП
>для промышленного программирования. В этом вопросе решение обеспечить совместимость с Си
>оказала плохую службу, хотя и упростила массовую миграцию программеров.Я не понимаю, как можно не любить С++: он предоставляет такие возможности, он удивительно гибок и понятен, лаконичен и богат, строг и все разрешает - это просто чудо, а не инструмент. Как можно говорить, что он "корявый", может вам его нужно лучше узнать.
C++ это не ООП, ObjC читабельнее и лучше соответствует модели
>C++ это не ООПстолько нового узнаешь тут:)))
>>C++ это не ООП
>
>столько нового узнаешь тут:)))Юрий Владимирович!!!
Так можно без ганорара остаться!!!
Ваша задача: ВСЕСТОРОННЕ ПРОПАГАНДИРОВАТЬ C# КАК ОСНОВНОЙ ИНСТРУМЕНТ .NET!!!
А Вы чем занимаетесь?
>>>C++ это не ООП
>>
>>столько нового узнаешь тут:)))
>
>Юрий Владимирович!!!
>Так можно без ганорара остаться!!!
>Ваша задача: ВСЕСТОРОННЕ ПРОПАГАНДИРОВАТЬ C# КАК ОСНОВНОЙ ИНСТРУМЕНТ .NET!!!
>А Вы чем занимаетесь?вас игнорирую
Нанятого спамера игнорирую
> C++ это не ООП, ObjC читабельнее и лучше соответствует модели"Объектно-ориентированное проектирование" цитата из википедии:
"Объектно-ориентированное проектирование (ООП) — это часть объектно-ориентированной методологии, которая предоставляет возможность программистам оперировать понятием «объект», нежели понятием «процедура» при разработке своего кода. Объекты содержат инкапсулированные данные и процедуры, сгруппированные вместе, отображая т.о. сущность объекта. «Интерфейс объекта», описывает взаимодействие с объектом, то, как он определен. Программа, полученная при реализации объектно-ориентированного исходного кода, описывает взаимодействие этих объектов."
И, чего из этого нет в С++?!!
Т.ч., простите, Вы глупость ляпнули.
Автор опуса "Когда ООП - это зло" судя по всему заядлый "наколенко-писатель" Одна только фраза:"Надо быстро, решительно расстреливать за желание программиста разделить проект на как можно большее количество файлов. В них совершенно невозможно что либо искать. Скажете IDE найти себе нормальную? 1 из 10 проектов с несколькик учасниками используют одну IDE, которую смог бы взять и я, так что когда спрашиваею - " а чем вы пользуетесь? есть ли какие то файлы проекта, что бы открыть их в IDE?" получаеш ответ "неее, я в vim", или "нее, я в emacs" и подобные."
показывает 100% отсутствие культуры программирования. Искренний совет - почитай учебники и устройся на работу аутсорсером. Хотя бы жабокодером в серьезную контору. Причем исключительно ради экспириенса - в реально работающем коллективе тебя быстро обучат основам работы в команде.
>показывает 100% отсутствие культуры программирования. Искренний совет - почитай учебники и устройся
>на работу аутсорсером. Хотя бы жабокодером в серьезную контору. Причем исключительно
>ради экспириенса - в реально работающем коллективе тебя быстро обучат основам
>работы в команде.Ну вы же поймите, какая культура програмирования у людей в команде _в конторе_ и какая у людей, раскиданных по всему миру!? Да, на работе применяется у меня один на всех инструмент, считающийся стандартным. Но когда 50 человек, которые зачастую на одном языке общем не говорят, делают один код-кому вы лечите, дохтур?? В итоге, имея нестанрартизированную и неустаканную среду разработки-уровень вхождения в проект нового разработчика только повышается. Это касается отрытой разработки, повторяю, на работе как раз совсем по другому.
странно вообще. а у нас на работе тоже люди работают с разными редакторами. но это никому не мешает. вообще никому. проекты делаем базированными на cmake или qmake, синхронизируемся через svn и где здесь должны быть трудности? просто настройки для моего редактора остаются только на моем компе, они не относятся к проекту. обговоренные требования к написанию - Керниган и Ричи.
>показывает 100% отсутствие культуры программирования. Искренний совет...По-моему, это показывает 100% отсутствие культуры ведения дискуссии. Вы бы хоть как-нибудь обосновали свое утверждение, вместо того, чтобы давать снисходительные советы.
утверждения а-ля с++ - костыль си вообще не достоин внимания. видел программы, написанные на яве (в том числе, среди которых мне приходится переписывать на более адекватный язык программирования из-за проблем со скоростью обработки), которые безбожно вываливаются. так что, зная язык, написать стабильное решение для поставленной задачи, не составляет особого труда. одно дело, когда просто пишешь умножение двух матриц константного размера, и совсем другое - работа с динамическими параметрами и данными. на плюсах с этой задачей за счет ООП можно без особых сложностей справиться, четко разделяя, какие данные к каким объектам относятся.
а кривые программы могут писать на любом языке программирования.
>утверждения а-ля с++ - костыль си вообще не достоин внимания.Ну, значит с Вами об этом разговаривать не имеет смысла :)
сорри за очепятку. просто некоторые основополагающие принципы си, унаследованные плюсами, являются не только негативными, но и позитивными (называется компромис). доступ к памяти не проверяется, но за счет этого достигается высокая скорость при работе с памятью. уборки мусора нет, что заставляет писать качественнее свой код. работа с указателями и итераторами позволяет хорошо оптимизировать генерируемый код. для всех остальных трудностей, возникающих из-за отсутствия опыта работы, существуют утилиты для проверок качества кода (статических или динамических). дебуггерами я стараюсь вообще не пользоваться. я не хочу сказать, что я на столько мегакрут, просто пытаюсь лучше понять причины ошибок выдачей текстовых сообщений, если результаты ошибок на первый взгляд непонятны. да и искать дебаггером ошибку, когда перемножается ну очень много чисел, очень долго и нудно. проще посмотреть входные параметры.сами то на чем программите, ежели не секрет?
>просто некоторые основополагающие принципы си, унаследованные плюсами, являются не только негативными, но и позитивными (называется компромис).А зачем нужен этот компромис? Почему программист, мыслящий объектами, должен по старинке думать о том, сколько битов в памяти занимает его переменная или указатель? И зачем вообще нужны эти указатели, если мы переходим уже на такой высокий уровень абстракции как объекты и метапрограммирование? Я считаю, для каждого класса задач нужно использовать свой инструмент, специально для этого предназначенный. Это, кстати, больше соответствует и принципу Unix Way ;) А Страуструп попытался объять необъятное и сделал инструмент, которым можно и гвозди забивать и в мозгах поковыряться. В результате ни то ни то сделать удобно не получается. Сравните, например, как на С++ и на Перле можно получить и распечатать страницу с сайта.
use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET => 'http://slashdot.org/');
my $res = $ua->request($req);
print $res->content if $res->is_success;Логика ясна: создать юзерагента, создать запрос, выполнить его, в случае успеха распечатать результат. Всё.
URLStream url;
URLStream::Error status;
#ifdef CCXX_EXCEPTIONS
try {
#endif
status = url.get("http://slashdot.org/");
if (!status) {
while(!url.eof()) {
char buffer[1024];
url.read(buffer, sizeof(buffer));
int len = url.gcount();
if (len > 0)
cout.write(buffer, len);
}
}
#ifdef CCXX_EXCEPTIONS
} catch(...) {
// No response, we just want to print nothing
}
#endifА здесь начинается... Нужно определить буфер, отслеживать конец файла, учитывать поддерживаются ли исключения... И это называется "язык программирования высокого уровня"! :)
>сами то на чем программите, ежели не секрет?
Сейчас в основном на С[++] и Паскале.
я же написал, что есть и итераторы. это то же самое, что указатели, только уровень абстракции несколько другой. позволяет корректно работать со списками, векторами. что мешает сделать цикл от начала до конца вектора? и никаких дополнительных проверок на некорректность указателя и прочих заморочек. и итераторы - далеко не всё. есть и другие механизмы.
не нужно мешать в кучу задачи, которые решаются скриптовыми языками с другими. конечно, если нужно из одного формата перелопатить в другой, то что мешает применить перл или питон? задача, используемая часто (скажем, пару сотен раз в секунду) требует уже другого подхода. в примере на плюсах критичная часть - скорость соединения. или мне для этого использвать внешнюю функцию из перл библиотеки? o_O точно также, как дотнет и яву можно применять для определенного круга задач. но уж точно - далеко не для всех. а не как утверждают матетинговые клоуны и разводилы.
другое дело - в плюсах можно прикручивать функции без особого зазрения совести. плохо это или хорошо - зависит от подхода программиста. точнее - от решения
>я же написал, что есть и итераторы.Но ведь итераторы в С++ - это опять костыль! Сравните:
vector<int> the_vector;
vector<int>::iterator the_iterator;
...
the_iterator = the_vector.begin();
while( the_iterator != the_vector.end() ) {
...
++the_iterator;
}и аналогичный пример, ну, скажем, на Lua:
a = { ... }
for i, v in ipairs(a) do
...
endКак говорится, почувствуйте разницу! Ну не предназначался Си для легкой жизни с такими абстракциями. А в современных языках они были предусмотрены изначально.
>что мешает сделать цикл от начала до конца вектора?
И что это даст? В примере на Перле вообще обошлись без циклов :)
>точно также, как дотнет и яву можно применять для определенного круга задач.
Да-да, об этом я и говорю. А не объектная модель и С++ на все случаи жизни. Мои претензии к С++, собственно, заключаются в том, что он пытается вобрать в себя всё без разбора, начиная от встроенного ассемблера и кончая метаклассами и сборщиками мусора, и поэтому превратился в "генератор усложнений", как его назвал Эрик Реймонд.
>и аналогичный пример, ну, скажем, на Lua:это не соответствовало бы синтаксису языка. хотя, что-то подобное сделано в Qt. цикл foreach. от чего я, честно говоря, не в восторге. написание немногим короче, но не более.
ну и ассемблерные вставки делают не от хорошей жизни. и хорошо, что это возможно.
зная характер социальных сетей, это не рейтинг популярности, а рейтинг истерии :)
Почему опять подменяются понятия "популярный" и "интересуемый"? Популярным может быть Майкл Джексон, а _интересоваться_ можно хоть ВиаГРой.
Плохая новость.
Если человек гуглит вопрос по какому-то языку, то он в 99% его использует. Это и есть "интересуемость". Вот господа и посчитали количество запросов в которых фигурируют названия языков и получили результат т.е. "популярность"
по языку go все интересовались но никто не использует. Потому что он новый.Так что господа получили только интересуемость. Язык GO это просто доказывает для самых логически невнимательных
Некорректна оценка джаббы по количеству поисковых запросов. Это и язык программирования, и платформа, и еще всякое говно типа рекламы джабба игр, которое очень большой вклад делает.