ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
5 июля
130322
Evgeny_CD, Архитектор (06.09.2008 15:51, просмотров: 29466)
С++:: очередная субботная размышлизма. http://www.caxapa.ru/129811.html
http://www.bolero.ru/product-22323167.html
Купил я тут буку и надосуге зачитал C/C++. Программирование на языке высокого уровня Павловская Т.А. -> Протащился. Хорошая книга, легко легла на мой моск. Но от сути опечалился. 1. С++ всегда и везде позиционировался как методика ускорения разработки сложных программ и экономии ресурсов. Чет я как-то начинаю сомневаться в этом. Т.е. если есть аццкая "либа", в которой миллионы бангалорцев что-то там накропали, то используюя ее компоненты что-то работающее получается быстро. Но вот как оно работает - большое вопрос. Применительно к обычному С лично я натренировался достаточно быстро понимать, что именно стоит за той или иной конструкцией языка. И какие могут быть альтернативы. И выбирать тот или иной вариант по актуальному критерию - эффективность по размеру, скорость написания кода, скорость работы кода. Т.е. анализ каждой строки у меня занимает мгновения, моск сам парсит С исходник на законченные фрагменты. С++ для меня - это кроссворд. count << (i << j); Вот я до сих пор не могу привыкнуть, что первый << - это переопределенный оператор, а второй - это нормальный сдвиг. Лично я не могу быстро понимать, что стоит за той или иной конструкцией языка. Поскольку все это еще и контекстно зависимое - анализ каждой строки кода у меня занимает минуты :(( Путей два: либо забить на анализ, ограничить глубину мышления, и рабоваться тому, что оно "скомпилировалось и запустилось), либо тратить дикое время на анализ кода. Ей богу, на С быстрее. При работе в С++ нужно в голове держать гигантский контекст, куда больше, чем С. Без продвинутых систем разработки и визуализации кода С++ - пустая трата времени и денег. SlickEdit - это самая примитивная "минимальная" система, которая нужна для этого. Нужны куда более продвинутые системы - но где они? 2. STL - это реально круто!!! До меня начинают доходить принципы, по которым она построена. Возможно, С++ имеет смысл применять только ради STL. Но: * эффективность кода очень трудно понять. Поскольку за всем этим стоит куча уровней абстракции, то понять, во что все это откомпилится очень трудно. Для меня лично. * есть некое ощущение половинчатости С++. Вот есть Python, который жутко не эффективен с точки зрения исполнения, но писать на нем можно просто мгновенно. Тут все понятно - скоростью написания кода ты платишь за эффективность его исполнения. С++ с одной стороны, не так уж прост в использовании, но при этом ты еще и должен заботиться о менеджменте памяти и пр. "Немножко беременный". 3. С++ - это, вероятно, все-таки парадигма для "клиент-серверной" модели разработки Есть корпорация-монстр. Которая рожает мегалибы, доку к ним и тулзы для работы (M$ VC, например :) ) Ну и есть клиенты, которые хостятся на сервере, и исползуют ресурсы для своей жизни. Усе счастливы - клиенты платят серверу, а сервер обеспечивает конкурентоспособность клиента по отношению к "С мануфактуре". При этом "правила конкурентоспособности" сервер определяет сам. Я в который уже раз благодарен bialix_ за сылку насчет ядра Linux и С++. -->. Что касается парактики - я пока разочаровался в С++ с точки зрения embedded. Т.е. либо это сильно урезанная версия С++, которую, по большому счету, можно сделать путем надстроек над С, либо это мегамонстр, с которым никакой PIC32 не взлетит. Либо это PIC мегамонстр, имеющий супер либы, на которых все и живут. Но тогда PIC - твой выбор навеки. Естественно, на руку С++ играет массовый психоз на тему. Типа его все хотят. Также в очередной раз обогатился знаниями, которые помогли мне расширить представление о С.