Здравствуйте, shasa, Вы писали:
E__>>Ты точно ничего не путаешь? Кто сказал, что в си нужно объявлять переменные только в начале блока? S>Эээ... как бы да, если быть точнее после того как хотя бы одна переменная была использована, объявлять переменные нельзя (это касается Си).
в C99 стало можно объявлять не только в начале блока.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, CreatorCray, Вы писали:
E__>>>Ты точно ничего не путаешь? Кто сказал, что в си нужно объявлять переменные только в начале блока? S>>Эээ... как бы да, если быть точнее после того как хотя бы одна переменная была использована, объявлять переменные нельзя (это касается Си). CC>в C99 стало можно объявлять не только в начале блока.
мне что-то кажется, что у него компилятор С99 не очень поддерживает
Здравствуйте, Ikemefula, Вы писали:
MC>>Лисп прекрасно живет и развивается в своем комьюнити. И будет так же жить и развиваться в ближайшие 50 лет. [...]
I>Пусть развивается. Он за пределами стат-погршности, всего то.
I>Нужен интрумент для решения текущих задач бизнеса, а Лисп — нет, не нужен.
Так сказал Ikemefula!
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
B>>Это может быть любой язык, поддерживающий препроцессор
TC>Ну, в общем да )). Но все же хотелось услышать конкретные предположения о языке( платформе, фреймворке ). Короче что за чудо и откуда?
VCC is a tool that proves correctness of annotated concurrent C programs or finds problems in them. VCC extends C with design by contract features, like pre- and postcondition as well as type invariants.
Здравствуйте, Ikemefula, Вы писали: I>Нужен интрумент для решения текущих задач бизнеса
У всех разные задачи и, соответственно, применяются разные инструменты их решения. Где-то нужна профессиональная команда и высокотехнологичные средства разработки, навроде лиспа. А чтобы торговать контентом почтовых ящиков клиентов — и программировать-то ничего не надо. Jedem das Seine.
Здравствуйте, Antikrot, Вы писали:
A>компилятор или coding guidelines вполне может иметь своё мнение по этому вопросу. позови посмотреть когда будешь доказывать им свою точку зрения.
Сдается мне, товарищ еще ни разу не нарывался на функции в пару-тройку тысяч строк и без локальных переменных
Здравствуйте, Mr.Cat, Вы писали:
I>>Нужен интрумент для решения текущих задач бизнеса MC>У всех разные задачи и, соответственно, применяются разные инструменты их решения. Где-то нужна профессиональная команда и высокотехнологичные средства разработки, навроде лиспа.
V>Автоматическая перерисовка — зло.
Это еще почему? Зло оно только в случае классической виндовой архитектуры и библиотек, так как может хреново выглядеть из-за частых перерисовок. В WPF все иначе, и это реально удобнее.
Здравствуйте, Vamp, Вы писали:
IID>>Тем не менее это не мешает "мясо" библиотеки писать на С++, а наружу выставлять pure-С API. Вон, в винде дофига юзерленда именно так сделано. V>Ну это кривизна необыкновенная. Когда два С++ класса общаются между собой на C, и лишены возможностей взимодействовать с использованием возможностей С++. И то, как это сделано в ВинАПИ, кстати, есть тоже кривулина.
+1. Причем не понятно, почему сторонники С# так "любят" спорить о пропертях, как по мне, херня на постном масле, полезная в C#, но не особо ненужная в С++, а вот отсутствие стандартизированной модульности в С++ на уровне бинарных модулей, вот это реальный минус С++.
Здравствуйте, Aleх, Вы писали:
A>Теоретически, среда разработки может подсказывать, что там происходит на самом деле. А вообще, в С++ много конструкций с неочевидной семантикой (использование перегруженных операторов). Многие поклонники Си говрят, что они по этой причине не переходят на С++. Если же грамотно использовать все эти фитчи, предоставляющие альтернативную семантику для привычных конструкций, проблемы не будет. Проблема в программистах недостаточно знающий язык или недостаточно хорошо умеющий проектировать интерфейсы классов.
По-моему, проблема не столько в наличии выделенного, сколько в том, что их много...
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, CreatorCray, Вы писали:
I>>>>>Я не сильно слежу за ассистом. он умеет ли он (2005я) CC>>>>Не могу представить когда в C++ может понадобиться аналог пункта "Convert"
I>>>Ну так в с++ нет такого понятия как интерфейсы, проперти, индексеры, эвенты и тд. I>>>Есть сущности аналогчные перечисленым, но на уровне инструментов они не поддерживаются, этот код ты лопатишь руками. CC>>Лопатишь это как то громко сказано. В языке всей этой ботвы нет. Этот функционал обеспечивается библиотеками.
I>Вот приведи сюда код который пропертю реализует и покажи средства инкапуляции филда в пропертю.
Это в С++ сделать возможно, а вот ты приведи код который позволяет в компайлтайме узнатьсуществование филды/метода у класса ивыбрать дальнейший алгоритм компиляции.
Compiler can be as trained AI but can't compose music.
Antheil piano jazz sonata. Я болен ПГМ.
Здравствуйте, shasa, Вы писали:
S>Здравствуйте, abdul.zycor, Вы писали: AZ>> ... В общем приводите свое мнение, высказывайтесь, только без лишнего фанатизма пожалуйста. S>Да я бы не стал никогда писать на чистом си или сипипи. Если мне не надо конструктора в объекте я объявлю струтуру, нужен конструктор объявлю класс. Нет смысла все функции прятать в методы. Нет смысла обявлять все переменные в начале блока, как в си, а есть смысл объявлять по мере необходимости. В общем чистота программы в плане написания на си или на сипипи ненужна.
Святая простота..
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, ollv, Вы писали:
I>>Вот приведи сюда код который пропертю реализует и покажи средства инкапуляции филда в пропертю. O> Это в С++ сделать возможно,
Ты код покажи, желательно, что бы строчек было поменьше.
O>а вот ты приведи код который позволяет в компайлтайме узнать существование филды/метода у класса ивыбрать дальнейший алгоритм компиляции.
Если тебе надо только для компиляции, то это к доктору. Если тебе нужно решить кое какую задачу, это совсем другое.
Здравствуйте, frogkiller, Вы писали:
I>>Есть в с++ нечто, что рождает монстров вроде буста и стл, и благодаря им так и сложилось с серверами.
F>На самом деле ни буст ни стл не являются необходимым условием написания программ, даже таких хитрых, как промышленный веб-сервер. Ни что не мешает с нуля сделать свои библиотеки с преферансом и гетерами — так как это обычно делают на голом С, типичный пример apache и его apr + apr-util.
F>Ну, если учесть, что компилятор, который нормально умеет компилировать под разные платформы всего один, и он один и тот же для c и c++ хотя да, некоторые плюсовые плюшки могут где-то не заработать.
F>Имхо никакой разницы нет — поддержка этих языков практически одинакова.
F>Опять-таки ситуация с С и С++ в этом плане практически одинакова. И она не является препятствием для написания серверов
Просто подумай, почему STL начала широко применяться практически сразу после выхода первых версий. Без наличия пространной документации.
Что такое изучение ворнингов компилятора на vc 4.2 например? — ну п... полный!
Что этих мышей заставляло и заставляет плакать и колоться???
Я бы разделил программистов на 2 группы:
первая — уже поняли, что STL (и boost, и ему подобные расширения) не имеют альтернативы в других языках
вторая — мне их жалко...
Конкретный пример из личной практики.
Крайне глючная DLL (примерно 50000 строк гавнокода, писалась 1.5 года, все ошибки "плавающие", в debug не воспроизводятся) "на чистом C" переписана на 70% функционала примерно за 2 недели. Причем практически "на автомате", без мучительных усилий. Прошел год — еще не видел ни одной ошибки (при отлаженной системе транспортировки багов). Ах, да. Был ли "рефакторинг". Из старых исходников актуальны были примерно 1-2% кода, остальное сделано просто по описанию функционала.
Здравствуйте, bazis1, Вы писали:
B>Здравствуйте, abdul.zycor, Вы писали:
AZ>>В общем приводите свое мнение, высказывайтесь, только без лишнего фанатизма пожалуйста. B>C++ позволяет сильно автоматизировать и упрощать многие вещи (та же работа со строками или STL). Это не означает, что на C++ нельзя написать код, идентичный по производительности коду на C и при этом занимающий в 2 раза меньше строк. Но означает, что для того, чтобы написать громоздкое приложение на C надо писать много кода, на C++ для этого достаточно пару раз не задуматься о последствиях и поюзать стандартные конструкции кривым способом.
Не понял, что "означает". Почему обязательно надо юзать "кривым способом" (а какой прямой).
B>Например, хэш-таблицу для повторяющихся строк на C можно реализовать, вручную распихав строки в едином блоке без дублирования совпадающих подстрок и сделав вычисление хэшей. Займет это N строк. На C++ все можно реализовать аналогично низкоуровнево, займет это меньше N строк и будет иметь красивую модульную структуру. НО всегда найдется программист, который поюзает std::map<std::string, std::string>, не вьезжая в принцип его работы, чем увеличит требуемый размер памяти в разы.
Претензии к map или string? К памяти? Вообще там не въезжая можно породить с десяток решений под разные требования (и все не "кривые").
Насколько я в курсе, std::map<std::string, std::string> хотя бы работает. Если тот же автор то же самое ручками писать начнет. Ой-ой.
Просто не раз видел, какой бред можно написать, например вместо sort -> unique.
Вплоть до создания временных таблиц на SQL и выполнения каких-то мутных select. С полным утоплением в г... всех зависимостей, т.е. при изменении требований вообще неясно где копать.
B>На практике получается, что объяснить программистам, как писать компактный и производительный код на С++ сложнее, чем запретить им пользоваться чем-либо кроме C. Увы.
B>Примерно как с автопилотом. Если в течение всего полета следить за курсом, картой, маяками и поддерживать направление вручную, полет пройдет по плану. Если задать в автопилоте план полета с координатами, полет также пройдет нормально. Но если пустить к управлению немотивированного "быдлокодера", он выставит на автопилоте примерный курс и уйдет спать, в результате чего ошибка в 1 градус при указании курса выльется в стокилометровый уход от цели.
AZ>Всем привет! Не так давно стал изучать программирование для unix систем.
c++ не очень надёжный язык, не собрано достаточно статистики,
имеет некоторые неявные нюансы на этапе разработки.
системы реального времени и бортовые системы пишут в основном на c.
марсоходы, которые >3 лет ездили по марсу
собраны на powerpc 120 и осрв vxworks (язык c),
ядро vxworks имеет статистику более 30 лет
и поэтому считается наиболее отказоустойчивой осрв