Слухи про WinC++

http://www.zdnet.com/blog/microsoft/what-is-winc-and-how-does-it-figure-in-microsofts-bid-to-make-tools-a-2-billion-business/9359
  • Перевод
По интернету ходят невнятные слухи о неком WinC++. Толи это просто новое название Visual C++, толи нечто большее. Поскольку я заинтересован и озабочен тематикой Visual C++, то проявил к этой теме внимание. Мне попалась свежая статья от 4 мая «What is WinC++ and how does it figure in Microsoft's bid to make tools a $2 billion business?». Поскольку на русском языке пока про WinC++ тихо, я решил предложить Хабра-сообществу перевод этой статьи. Признаюсь, перевод вышел не очень, читается скучно. Поэтому многие, наверное, предпочтут познакомиться с оригиналом.

Прошу меня за эту статью не журить, как говорится первый блин комом. Полезное и главное в этой статье, пожалуй, то, что Microsoft явно не планирует хоронить Visual C++, а наоборот влить в это направление новые силы. На Си++ смотрят как на живой и развивающийся инструмент. Это радует (меня, по крайней мере :)).

Итак, собственно перевод статьи Мэри-Джо Фолли: Что такое WinC++ и как она связана со стремлением Microsoft поднять оборот продаж инструментов до 2 миллиардов долларов?



Аннотация


Корпорация Microsoft укрепляет позиции своих C++ продуктов и маркетинговую стратегию в связи с грядущим выпуском WinC++. Вот некоторые разрозненные сведения, которые мне удалось раскопать по этому поводу.

Теперь, когда пыль, поднятая на этой неделе Реорганизацией отделения серверной и инструментальной разработки внутри Microsoft, начала оседать, самое время перейти от вопроса «Кто?» к вопросам «Почему?» и «Как?».

Почему начальство Microsoft решило перевести группы девелопмент-маркетинга и евангелизма в ведомство главы подразделения разработчиков Сома Сомасегара?

«В Microsoft существует огромная проблема с соответствием в среде разработчиков», заявил один из моих знакомых, которому известны соображения корпорации. Только что просочившаяся из Hewlett-Packard информация о стратегии публичного облачного программирования (в которой особое внимание уделяется языкам Java, Ruby и «языкам с открытым кодом») как раз подтверждает этот тезис. В то время как языки C#, C++ и Visual Basic до сих пор имеют своих приверженцев, такие не имеющие поддержки Microsoft языки как Java, Ruby, Python, PHP и Objective-C уверенно держат свои позиции и развиваются так же быстро, если не быстрее.

Как видно из электронного письма Сомасегара в подразделение STB на тему реорганизации, компания прилагает определенные усилия, чтобы поднять оборот продаж Visual Studio с текущей отметки в 1 с лишним миллиард долларов до 2 миллиардов. (Visual Studio — один из немногих продуктов, помимо Windows и пакета Office, которые уже пересекли границу продаж в 1 миллиард долларов.)

Каким образом Microsoft собирается поднять доход независимо от своей устоявшейся команды разработчиков?

Один из способов, как мне кажется, это укрепить позиции «родных» инструментов для разработчиков, таких как Visual C++. Я обратила внимание, что WinC++ была вскользь упомянута в электронном письме Сомасегара. Выходит, что WinC++ станет новым названием Visual C++ — эта мысль подтверждается тем, что в одном из объявлений о приеме на работу в Microsoft имеется уточнение: «Команда Windows C++, также известная как команда Visual C++».

Мне стало интересно: неужели WinC++ не более чем всего лишь новое (и явно «заточенное» под бренд Windows) название старого компилятора?

Из другого объявления о работе в Microsoft я сделала вывод, что компания и в самом деле раскручивает идею о том, что язык C++ будет ключом к созданию приложений для грядущей версии Windows. Вот выдержка из того объявления о приеме на должность Руководителя группы проектов для WinC++:

«Впечатлены новыми возможностями приложений, которые открывают платформы Windows? Хотите сотрудничать и вдохновлять C++ разработчиков по всему миру на создание передовых, уникальных Windows-решений?»

(Такое заострение внимания на Windows напоминает мне о деятельности группы разработчиков Internet Explorer, которые тоже все больше и больше твердят о том, насколько IE 9 лучше/быстрее благодаря оптимизации под Windows 7, и так далее. Думаю, группа будет проводить такую же политику и в отношении IE 10, указывая на его «теперь улучшенную поддержку родного HTML» в механизме обмена сообщениями, тем самым отсылая к Windows 8 — наиболее подходящей для браузера платформе.)

Следующий вопрос: будет ли в планах у Microsoft сделать что-то большее, чем просто переименовать свой C++ продукт, и все-таки реализовать новую C++ функциональность в следующей версии пакета Visual Studio, которая, как ожидается, будет носить название Visual Studio 2012? Вроде бы да.

Вот выдержка из еще одного объявления о работе в Microsoft, где упоминается WinC++:

«Хотите помогать разработчикам создавать приложения на C++ для следующей версии Windows? Хотите подробно изучить новую версию COM (Component Object Model, модель составных объектов) и создавать контент, который сможет похвастаться своими возможностями? Хотите написать о новых моделях программирования для следующей версии Windows?»...

«Команда разработчиков активно вкладывает средства в инновации языка C++ и развитие „native“ кода, ставя целью создание масштабных и сложных проектов. Она также работает над технологиями, которые помогли бы C++ разработчикам пользоваться богатой средой разработки, сделав IDE (Integrated Development Environment, интегрированная среда разработки) масштабируемой в более широких пределах, более удобной для использования и, самое главное, способной быстро подстраиваться под нужды современных C++ разработчиков. Эти вложения непосредственно отразятся практически на всех программных продуктах Microsoft, равно как и продуктах многих топовых независимых вендоров. Мы приступаем к разработке ряда очень амбициозных и эффективных решений на нескольких фронтах, в том числе в сфере инноваций в языках и генерации кода.»

В еще одном объявлении о работе в Microsoft, относящемся к WinC++, упоминаются «новые разработки в языке C++ и технологии COM, которые выпускаются вместе с Visual Studio, а также описание обновлений существующих C++ библиотек, таких как Standard Template Library (Стандартная библиотека шаблонов).»

Вот еще несколько замечаний, возможно связанных с нашей темой:
  • Команда Chanel9, освещающего деятельность корпорации Microsoft, недавно выложила новый контент о C++.
  • В рамках реорганизации серверного и инструментального отдела, Microsoft перевела команду параллельного программирования и инструментальной разработки (во главе которой стоят Стив Тейксейра, Дэвид Каллахан и Шарох Мортазави) в «объединенное подразделение WinC++, PCP (возможно, параллельное и/или высокоэффективное программирование?) и UX под начальством Мохсена (Агсена).» Агсен занимает должность технического лидера, на данный момент работает в подразделении разработчиков, а в свое время сыграл весьма важную роль при создании технологии COM+ и Common Language Runtime (общеязыковая исполняемая среда). (В интервью Channel9 в феврале 2011 он рассказывал о «Возрождении C++».)
  • Создается ощущение, что Среда разработки Microsoft «Jupiter» для Windows 8, о которой я писала в блоге некоторое время назад в этом году, каким-то образом связана с подходом «XAML плюс native код». Возможно, C++ был одним из тех языков, поддержка которых была запланирована в Jupiter.
  • Может быть, есть также некая связь с Windows Embedded Compact 7 (и всеми мобильными телефонами и планшетами, которые работают на этой платформе), учитывая наличие поддержки C++/XAML в данной операционной системе.

Мне интересно, есть ли у вас, разработчиков, читающих этот пост, какие-то соображения, догадки или списки пожеланий, которыми вы хотели бы поделиться со мной и которые могли бы пролить свет на то, чем там занимается Microsoft? Что скажете по поводу всей этой болтовни о WinC++? Что бы еще вы хотели видеть в Visual Studio 2012?

Об авторе


Мэри Джо пишет статьи в сфере компьютерной индустрии более 25 лет в различных изданиях и веб-сайтах, а также является частым гостем на радио, телевидении и подкастах, где она обсуждает любые вопросы, связанные с корпорацией Microsoft. Она является автором книги Microsoft 2.0: How Microsoft plans to stay relevant in the post-Gates era (John Wiley & Sons, 2008) (Microsoft 2.0: Как Microsoft планирует сохранить свою роль в эпоху «Пост-Гейтса» (Издательство John Wiley & Sons, 2008).
Метки:
Поделиться публикацией
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама
Комментарии 129
  • +5
    А как же дотнет?
    • +15
      Не managed единым. Сейчас я не вижу нормальных инструментов для разработки GUI-шных приложений под native api. А ведь писать различные мелкие трояны утилиты на дотнете — это просто издевательство над пользователем.
      • +13
        Qt&C++ отличное решение.
        • +7
          Qt — набор костылей для стремительно устаревающего С++

          недаром Qt сползает в сторону QML, WebKit и JavaScript
          • +10
            Я вам ооочень рекомендую продолжать думать так же, мне будет гораздо легче искать работу.
            • 0
              рекомендовать это ваше право, я сам на Qt разрабатываю коммерческий проект, понимаю о чем говорю
              • 0
                >понимаю о чем говорю
                Вот у меня как-то не сложилось такого впечатления, но вы это не теряйтесь и не обращайте на меня внимания, кто я такой что бы что-то вам советовать, вы ведь разрабатываете, подумать только, аж коммерческий проект, не то что я тут на хабр зашел пописать, убедите все свое руководство перейти на что-нить «новое», «современное» ruby, там erlang отличное решение, ещё F# можно, ну подумаешь в несколько раз медленнее, кадров не найдешь, но ведь зато как прогрессивно то будет, а скорость разработки ну совсем не такая как на этом дохлом С++.
                • 0
                  Qt выбран не от большой любви и прогрессивности, а как действительно кроссплатформенный фреймворк. Альтернатив-то практически нет. Все остальное или не дотягивает по функциональности или малопопулярно
                  • +1
                    Ну суть в чем, с++ не устаревает и не устареет никогда, или когда изменятся базовые принципы программирования, но это судя по всему не случится никогда. Другое дело что для спец задач придумать спец язык гораздо лучше. Это мы как раз и видим в QML. Глупо ведь описывать на с++ запрос к данным, гораздо лучше это сделать через sql, то же самое и с задачами где требуется активная манипуляция нетипизированными данными, например web, я очень смутно себе представляю как на с++ можно сделать автоматический мапинг данных с http запроса в структуры данных. Никто же не говорит что с изобретением скейтборда велосипеды устареют, так и тут. Видел как писали свои предметно-ориентированные языки, но никто не говорил что с++ устареет.
                    GUI действительно проще писать, а может даже скорее описывать, на каком либо DSL языке, но это никак не связанно с с++. Есть другая причина перехода на SDL, а именно: когда есть ограниченный легкий и понятный интерфейс для манипуляции чем либо гораздо сложнее разбить себе лоб неправильными действиями и легче найти более дешевые кадры для этого. Ведь программирование GUI и это достаточно скучная рутинная работа.
                    • 0
                      Суть в том что спектр задач, решаемых на С++ неуклонно сужается, и из универсального языка он превращается в узко специализированный, как это случилось с ассемблером. Именно это я и понимаю под устареванием
                      • +4
                        До узко специализированного ему ещё ох как далеко, но в общем да, круг задач становится меньше, точнее как его сначала начали пихать везде где надо и где нет, а потом сделали специализированные решения, скорее так дело было. Но в любом случае это не устаревание. Специализация что ли. Мы же не говори что второй закон Ньютона устарел после открытия СТО.
                        • 0
                          А я как-то не вижу, что сужается. Вернее в одном месте сужается (его всё реже используют как… хм… клей), но в другом расширяется — всё больше пишут библиотек/модулей, которые между собой связываются другим языком или просто биндятся к нему.

                          P.S. Я про C/C++ как про одно говорю.
          • +2
            Для троянов есть консольный компилятор, winapi и майкрософтовский(!) make.

            Наработки товарищей из microsoft research по языкам программирования к сожалению используют только в managed.
            • –2
              зато любое .NET приложение уместится в 640 Кб на диске. Гейтс таки прав был :)
              • +2
                Вообще неэффективность расходования памяти дотнетом меня жутко бесит. Такое чувство, что сколько ему ядер, гигагерц и гигабайт не давай — сожрет всё и не подавится. Изоляцию кода необязательно делать через managed-исполнение, мы же в защищенном режиме работаем…
                • +3
                  На хабре были статьи про оптимизацию приложений как в потреблении памяти, так и производительности.

                  Может просто стоит научиться пользоваться интструментом сначала?
                  • +2
                    Вы просто не умеете его готовить.
                    • 0
                      Для embeded систем — возможно и да, но для совсем харкорных решений на чипах и то, там и с++ жирен, в почете голый с.
                      Managed (.net, java) — давно уже обосновался и на телефонах, и на серверах финансовых бирж. И уже лет 10 я не слышал притензий по прожорливости при разработке корпоративных приложений.
                    • 0
                      Гейтс никогда не говорил про 640 кб памяти.
                      • +3
                        это уже не важно
                    • +3
                      Многие удивятся, но делфи (ныне RAD Studio) до сих пор жив и на нем развиваются вполне современные реальные проекты. Даже вот пару лет назад Юникод появился ;-) Одна беда x64 пока в бета-тестировании, обещают к осени. Это действительно до сих пор удобный инструмент для быстрого создания native приложений.
                      • 0
                        еще бы кроссплатформенности VCLю…
                  • +3
                    хотелось бы видеть в новом языке простоту С# и скорость С++
                    • +9
                      Какой новый язык? Налепят наклейку «революционно!» и все, старый добрый C++ готов к новым подвигам.
                      • 0
                        печально, но так и будет. И еще объявят откровением какую-нибудь новую фишку, которая 10 лет назад уже была в Delphi7
                      • +1
                        D? :)
                        • 0
                          да, что-то вроде этого. но с поддержкой Microsoft
                          • НЛО прилетело и опубликовало эту надпись здесь
                          • +3
                            Если взять Visual C++ 6.0, немножко подобновить, чтобы работала без проблем на современных системах, то можно выпускать ее в составе Visual Studio 2012. И опытные программисты будут рады (так как вернется ТА САМАЯ система), и новички (так как увидят скорость и стабильность среды). А если еще и MSDN тех времен выпустить…
                            • +3
                              Допилили бы MFC до юзабельного уровня. А то он застрял в лихих девяностых.
                              • 0
                                Это похоже и собираются сделать.
                              • +23
                                Это макросовое безумие уже невозможно допилить, только закопать )))
                                • +4
                                  В идеале что-то вроде старого доброго VCL. C компиляцией в native-код и поддержкой пары-тройки популярных языков. Что-то такое было у Borland Codegear Embarcadero, но сейчас оно как-то слабоюзабельно.
                                  • +2
                                    при всём уважении к VCL лучше бы они сделали компиляцию из .NET в native код. Вот это была бы бомба.
                            • +3
                              Установленная vc 6.0 до сих пор не редкость.
                              • НЛО прилетело и опубликовало эту надпись здесь
                            • +1
                              В статье упоминаются «новые разработки в языке C++». А как же стандарты?? Они хотят язык переделать/доделать или это неточный перевод и имелось в виду «разработки НА языке С++»? Кто-нибудь может уточнить? Или это будет новый язык, который не С++, но похож, а посему и стандарту следовать не надо?
                              • +5
                                вполне себе в стиле майкрософт — взять стандарт и добавить несовместимых с другими бракомпиляторами фич.
                                • +1
                                  А потом начать продвигать его на роль стандарта…
                              • +4
                                Нативные инструменты разработки MS давно не обновляла и ничего нового и удобного не предлага, чтоб на C++ написать нормальное приложение во вменяемый срок надо тянуть с собой какой-нибудь фреймворк и соответствущие либы. Я так понял речь идет о создании аналога некоего Objective C, но для Win платформы. Я только за.
                                • 0
                                  Подозреваю о кросс-компиляции на phone-платформу…
                                • –4
                                  Автор не читала никогда о
                                  en.wikipedia.org/wiki/Singularity_%28operating_system%29
                                  • +7
                                    автор писала много раз про Singularity
                                  • +3
                                    Из другого объявления о работе в Microsoft я сделала вывод, что компания и в самом деле раскручивает идею о том, что язык C++ будет ключом к созданию приложений для грядущей версии Windows. Вот выдержка из того объявления о приеме на должность Руководителя группы проектов для WinC++:

                                    «Впечатлены новыми возможностями приложений, которые открывают платформы Windows? Хотите сотрудничать и вдохновлять C++ разработчиков по всему миру на создание передовых, уникальных Windows-решений?»


                                    Поражают выводы барышни. Это причем тут раскручивание и «ключ» к обычному маркетинговому объявлению?

                                    Насколько я понял, статья укладывается в то, что нас ждут новые фишки в VS 2012.
                                    • +10
                                      WinC++ звучит как термин из 90-х.
                                      • +11
                                        Когда сейчас к каждому фильму приделывают надпись 3D, то тоже выглядит как из 90х (Duke Nukem 3D, Doom 3D и т.д.)
                                        • +1
                                          Всё новое — хорошо забытое старое.
                                        • –6
                                          компания прилагает определенные усилия, чтобы поднять оборот продаж Visual Studio с текущей отметки в 1 с лишним миллиард долларов до 2 миллиардов.

                                          У меня есть революционная идея которую я готов бесплатно им предложить для достижения вышеозначенной цели: взять 10% от денег которые они тратят на раскрутку и нанять вменяемого юзабилити-специалиста.

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

                                          • +1
                                            По поводу скорости люто бешено плюсую, очень уж раздражает временами…
                                            • +4
                                              а мы то дураки даже под Qt на студии разрабатываем, а оно вон чё оказывается
                                              • +4
                                                А я каждый день на метро езжу. Наверное питерское метро идеально.
                                                • 0
                                                  А кто говорил про идеальность? Или в Питере есть другое метро?
                                                  • 0
                                                    я тоже не говорю что для разработки под C++ и Windows есть что-то лучше (но не возьмусь утверждать что нет). Только описываю своё видиние UI VS сравнивая её решения с решениями в других desctop приложениях.
                                                    • 0
                                                      ну так сравнивайте. В ваших коментах не упомянута ни одна другая IDE
                                                      • 0
                                                        Почему именно IDE? IDE объядиняет в себе множество компонентов которые используются и в других продуктах. Мне не приходилось много пользоваться другими IDE, т.е. здесь мне сравнивать не с чем.

                                                        Но мне и не нужно ни с чем сравнивать, чтобы понять что окошко свойств, в котором может быть много текста должно уметь растягиватся, а edit-combo не должно менять своё значение на какое-то другое* когда я пытаюсь выделить текущее значение двойным кликом.

                                                        Ну я не знаю сколько ещё примеров нужно привести чтобы вы поверили что юзабилити тестирование MS проводило на инопланетянах.
                                                        • 0
                                                          *какое-то другое это следующее по списку, но это нaдо просто знать, догадатся никак.
                                                          • +2
                                                            Другие IDE вообще получается, его не проводили. Потому как слышал много мнений, что VS лучший в своём классе продукт именно по юзабилити, жаль что заточен под малое число языков, не говоря о платформах.
                                                            • +1
                                                              много работал в Delphi(RAD), VS, QT Creator. Немного в Эклипсе. Студия пожалуй самая нормальная IDE из них. Не идеал, но удачный компромис.
                                                • –1
                                                  у меня работает нормально VS2010 + Resharper 5 + пару плагинов. Core 2 Duo 2400Mhz, 4GB RAM
                                                  Солюшены 6+ проектов, строк кода не мало
                                                  • +4
                                                    VS2010 SP1+ Resharper 5. Core 2 Duo (не помню какой), 4GB RAM
                                                    Солюшен 1 проект.

                                                    Я вижу задержку между нажатием клавиши и её появлением на экране.
                                                    • +1
                                                      На Acer ноуте с 1 гигом оперативки и WinXP стоит CS2010 SP1 Ultimate.
                                                      У меня открывается и работает все отлично и быстро. Задержек между нажатием и появлением на экране не наблюдаю.

                                                      Дальше письками меряться будем?
                                                      • –1
                                                        Похожая конфигурация у меня на лаптопе (Lenovo N300), солюшн из 20 проектов летает, никаких задержек.
                                                        • 0
                                                          Мне кажется, в решарпере проблема. У меня студия летала, пока я себе не поставил его.
                                                        • +1
                                                          какой то адский ксенон с 16 ядрами, 12 гигов ddr3 оперативки, как комментатор сверху «я вижу задержку между нажатием клавиши и её появлением на экране.»
                                                          Сам сижу и не понимаю, откуда блин?
                                                          • –1
                                                            Значит что-то в фоне работает тяжелое.
                                                            Обычо студия через 10-15 секунд выдает сообщение о загрузке.
                                                            Если этого нет, то это может быть ReSharper что-то там большое индексирует.
                                                            Проблема с «задержкой» у меня появляется только при добавлении к проекту больших (больше 3-5 Мб) XML файлов данных, которые почему-то начинает ииндексировать ReSharper. Но это всегда можно увидеть по индикатору в левом нижнем углу и там же остановить.
                                                        • 0
                                                          Я ещё могу понять что мой коментарий минусуют, но mephisto?!

                                                          Люди из MS, палитесь.
                                                          • +1
                                                            Ну накидайте явные ляпы, а не просто языком молите, а?
                                                            • 0
                                                              Это тема для статьи.

                                                              Один пример: MSVS это единственный известный мне текстовый редактор который умеет копировать пустую строчку.
                                                              • +1
                                                                В чём бага?
                                                                • 0
                                                                  Это не бага, а издевательство:

                                                                  1. Копируешь строчку (Ctrl+C), прокручиваешь на несколько экранов, ставишь курсор на место вставки, жмёшь Ctrl+V. — Ой, случайно нажал на Ctrl+C (они рядом), в буфере пустая строка.

                                                                  Прокручиваешь назад, goto 1
                                                                  • 0
                                                                    Ну не знаю, я за несколько лет ни разу не сталкивался.
                                                                    Ещё есть?
                                                                    • +2
                                                                      Есть конечно :) Напирмер такая мелочь: не все окна свойств растягиваются. Двадцать первый век блин!
                                                                      Злит то, что большинство недостатков легко фиксятся, но похоже всем пофиг.

                                                                      Ну а вашей хорошей моторике можно только позавидовать :)

                                                                      Впрочем о не идеальной моторике многих людей было известно все создателям текстовых редакторов, поэтому они добавили один if в обработчик копирования.
                                                                      — Как эту проблему решили в MS: они сделали настройку(!)* «Не копировать пустую строчку» — это вместо того чтобы сделать сразу нормально.

                                                                      *К сожалению о существовании этой опции я узнал только год назад,
                                                                      • –1
                                                                        > Есть конечно :) Напирмер такая мелочь: не все окна свойств растягиваются. Двадцать первый век блин!
                                                                        Хм, приведите пример, если можно.

                                                                        — Как эту проблему решили в MS: они сделали настройку(!)* «Не копировать пустую строчку» — это вместо того чтобы сделать сразу нормально
                                                                        А Вам не кажется, что стоило бы потратить пару-тройку часов на изучение IDE в которой Вы работаете, прежде чем предъявлять такие претензии.

                                                                        Я регулярно веду курсы по Visual Studio и в течение первых полутора-двух часов прохожу все основные комбинации клавиш и базовые настройки. И после этого у большинства не возникает никаких вопросов.
                                                                        • 0
                                                                          Хм, приведите пример, если можно.
                                                                          Project Properties, Tools->Options на вскидку.
                                                                        • 0
                                                                          На сайтах майкрософта пробовали жаловаться?
                                                                          Там разработчики вполне себе отвечают.
                                                                        • 0
                                                                          Вот ещё яркий пример: содержимое большинства окон (например список файлов проекта) не прокручивается колёсиком пока на него не переведёшь фокус. Меня как-то слабо волнует что это стандартное поведение ListView, это не удобно.
                                                                        • +1
                                                                          Зачем прокручивать назад? Есть же Ctrl + "-" для перемещения на одну из предыдущих позиций курсора, и Ctrl + Shift + "-" для обратного перемещения.
                                                                          • 0
                                                                            Это здорово (без сарказма). Я вот про них не знал.
                                                                            Но наличие расширенного способа навигации не решает проблему, а маскирует её.
                                                                            • +3
                                                                              То, что вы не знали про настройку и про шорткаты — это не проблема IDE, а проблема чисто ваша. Оно конечно понятно, что не барское это дело маны читать, но IDE то, строго говоря, ни при чём.
                                                                              • 0
                                                                                Ну да. «В наших автомобилях, с 12:00 до 15:00 поворот руля влево поворачивает машину вправо. Не наша вина что вы попаи в аварию, документацию надо было читать.»
                                                                                • –2
                                                                                  Ещё скажите, что вы на автомобиль документацию не читали, перед тем, как сели за руль. Если так — то у меня аргументов нет, я сдаюсь.
                                                                                  • 0
                                                                                    Не важно что написано в документации, но я машину как в примере выше не куплю никогда, а вы, видимо, вполне можете, ещё и будете убеждать окружающих что всё норм если приноровится.
                                                                                    • –1
                                                                                      Так не покупайте, не заставляет же никто.
                                                                                    • 0
                                                                                      Я не читал. Её не было
                                                                            • +3
                                                                              Откройте для себя Ctrl-Shift-Insert (вставляет по очереди предыдущие состояния буфера обмена).
                                                                              • 0
                                                                                Дополнительные возможности это хорошо, но зачем ломать привычки пользователей?
                                                                                Собственно см. мой комментарий выше.
                                                                                • +1
                                                                                  Ну, для того, чтобы не ломать привычки и сделали флажок в настройке. Я, к примеру, часто копирую строку, не выделяя её, и думаю, что не одинок в этом.
                                                                                  • 0
                                                                                    На счёт привычки спорить бесполезно.
                                                                                    Но вот за создание таких привычек нужно отрывать руки, и вот почему:

                                                                                    Новое поведение (вроде нигде больше оно не используется):
                                                                                    1) Обманывает ожидания тех, кто привык к старому.
                                                                                    2) Провоцирует ошибки (при промахе V<->C)
                                                                                    3) Вообще не очевидно (проводится операция над невыделенным текстом).

                                                                                    Будь они умнее они бы или не стали делать такую фичу вообще (уверен, никто бы не расстроился). А будь ещё умнее, сделали бы её Word-like (выделение строки по тройному клику) — длиннее но самоочевидно.
                                                                                    • 0
                                                                                      Это не новое поведение, оно для Вас является новым.
                                                                                      Я вообще не использую мыши при работе с IDE и мне вот очень удобно именно такой способ брать строку в буфер, не пытаясь наживать всякие Ctrl-Home + Shift-End.
                                                                                      • –1
                                                                                        И вообще, что мешает Вам поставить вот этот плагин:
                                                                                        visualstudiogallery.msdn.microsoft.com/59ca71b3-a4a3-46ca-8fe1-0e90e3f79329/

                                                                                        У меня он, например, стоит :)
                                                                                    • 0
                                                                                      Студия тем и отличается от блокнота, что в ней есть дополнительные возможности. Если бы их не было — её бы никто не покупал.
                                                                                    • НЛО прилетело и опубликовало эту надпись здесь
                                                                                    • 0
                                                                                      Это не баг, это фича!!! :)
                                                                                      Пишу с нетбука и Студии нет под рукой, но в Options -> Text Editor есть настройка «Do not copy empty text into clipboard» (как-то так примерно), включив которую Вы больше не сможете скопировать пустой текст в буфер обмена.
                                                                                      Причем эта настройка еще с 2005 студии есть :)
                                                                            • 0
                                                                              А выпустим ка свой С++, только с блекжеком и шлюхами COM+'ами и XAML'ами :)
                                                                              • +1
                                                                                Так Managed C++ уже давно выпущен.
                                                                              • +5
                                                                                Недошли. У меня в 2004 году было такое ощущение, что Майкрософт перестали обновлять unmanaged среду разработки, только потому, что в очень скором времени появится полностью managed операционка, на которую они всех и загонят. В этом я убедился и того более, когда увидел первую бэту 2005 студии. Собственно говоря — дотнет рос и ширился, как дрожжи в печке. А вот из всех плюсов неуправляемого кода я заметил только тот небольшой факт, что стали лучше поддерживаться юникодовые строки.

                                                                                Собственно говоря, прошло шесть лет. Полностью управляемой операционки пока нет. Первый шаг к тому — Windows 7 Mobile. Но ей пока не до десктопа. Так что, никаких грандиозных нововведений разработчики неуправляемого не получали уже много лет.

                                                                                Теперь, моя мысль такова — данный ход от Майкрософт — последняя бочка мёда в ложке дёгтя для неуправленцев. Неуправляемое ещё будет существовать в течении 5-ти лет, а потом уже уйдёт на покой. И вот на эти пять лет они и решили выпустить хорошую, годную, верную платформу, которая сможет удовлетворить тех разработчиков, которым критически нужна скорость и возможность делать меморилики.

                                                                                P.S. Не то, чтобы неуправляемое — это высшее зло вселенной. Нет. Просто оно уже устарело. И Майкрософт на него ставку делать не хочет.
                                                                                • +4
                                                                                  Меморилики можно делать и в управляемой среде.
                                                                                  • 0
                                                                                    Да, до этого я не дошёл. Мне ещё есть чему поучиться.
                                                                                    • +2
                                                                                      Ничего, я вот и до мемори ликов в неуправляемой среде не дошёл.
                                                                                      • +2
                                                                                        Ну до этого не далеко идти — просто забудьте как-то отписаться от ивента когда объект уже не нужен — вот и готов «меморилик».

                                                                                        Смешно? А ведь насколько часто я в больших проектах вижу что-то типа button.onclick += ..., и никаких "-=". Особенно весело когда добавляют лямбду к другому объекту с замыканием на какое-то свойство первого объекта.

                                                                                        Так что проще простого — это только один из кучи простейших способов поиметь меморилики в менеджд среде.
                                                                                        • –1
                                                                                          Смешно? А ведь насколько часто я в больших проектах вижу что-то типа button.onclick += ..., и никаких "-=". Особенно весело когда добавляют лямбду к другому объекту с замыканием на какое-то свойство первого объекта.
                                                                                          А зачем резрегистрировать обработчик, если не «особенно весело»?
                                                                                          Я часто добавляю динамически обработчики при динамическом создании контролов внутри формы (или веб-страницы): тут нет внешних привязок и нет проблем для сборщика мусора.
                                                                                          • +1
                                                                                            У Вас эти контролы удаляются? Если только добавляются то все нормально — при удалении формы, контролы удалятся. А вот если у вас динамически появляются-пропадают контролы на форме и Вы не отписываетесь от события, то это как краз совершенно классический пример мемори лика.

                                                                                            Псевдо-код демонстрирующий:
                                                                                            Form form = new Form();
                                                                                            void DoNothing() {
                                                                                               for (var i = 1; i<10000; i++) {
                                                                                                  var c = CreateCoolControl();
                                                                                                  form.Controls.Add( c );
                                                                                                  // тут мы решили что надо удалить (или прошло некоторое время)
                                                                                                  form.Controls.Remove( c );
                                                                                               }
                                                                                            }
                                                                                            Control CreateCoolControl() {
                                                                                               var control = new CoolControl();
                                                                                               // тут мы "настраиваем" наш контрол
                                                                                               control.Title = ....
                                                                                               form.OnPaint += control.onPaint(); // вешаем событие - вроде как часть конфигурирования
                                                                                               return control;
                                                                                            }
                                                                                            

                                                                                            с первого взгляда довольно чисто, но вот после DoNothing-а памяти чуток уменьшится.
                                                                                            • –1
                                                                                              Здесь всё понятно, но я не вижу в Вашем коде
                                                                                              что-то типа button.onclick += ...

                                                                                              В случае:

                                                                                              Public Form frm = new Form();

                                                                                              void AddControl() {
                                                                                              Button b = new Button();
                                                                                              b.OnClick += new MouseClickEvent(a, e => MsgBox.Show(a.Text));
                                                                                              frm.Controls.Add(b);
                                                                                              }

                                                                                              void DeleteControl (Button c) {
                                                                                              frm.Controls.Remove©);
                                                                                              }


                                                                                              … вроде бы проблем быть не должно.
                                                                                              • +1
                                                                                                Ну зачем же так к словам придиратся? онклик — это так, первое что в голову пришло как пример ивента.

                                                                                                Более реальные примеры когда динамические контролы вешаются на форму — это Resize, Activated, тот же Paint и т.д. Я такое не так уж редко встречал когда забывали отписаться.
                                                                                      • +3
                                                                                        можно и не делать, она сама их сделает
                                                                                        • 0
                                                                                          Точно также, как делать вменяемые сборщики мусора в неуправляемой среде. А фактически же при вызове delete в плюсах память тоже не высвобождается сразу, а просто помечается как свободная.
                                                                                          • +1
                                                                                            Да бог с ней с управлением памяти, не такая уж огромная проблема. В плюсах тоже сейчас фактически мало, кто руками за памятью следит. Фишка managed в очень хорошем RTTI, которого в плюсах вовсе и нету. Зато за счет отсутствия полноценного RTTI плюсы жрут меньше памяти и быстрее работают.
                                                                                            Впрочем в Qt есть и RTTI и автоматизированное управление памятью, но синтаксис конечно не такой стройный, ибо фичи сделаны через эмуляцию. Но в целом это работает очень хорошо, если забить на некоторые проблемы с синтаксисом (ну например злые конструкции типа QMetaMethod::invoke()).
                                                                                            • 0
                                                                                              В Qt чтоб сделать удобно сериализуемый класс, нужно заюзать как минимум три макроса (Q_OBJECT, Q_PROPERTY, Q_DECLARE_METATYPE), написать два дополнительных конструктора да еще и qRegisterMetaTypeStreamOperators() не забыть. И сами операторы написать. И все равно ручками придется перебрать всё проперти. Жесть как она есть.

                                                                                              Я прям тоскую по VCL, насколько там все естественно и удобно сериализовалось. Хотя .NET конечно выигрывает у VCLя в этом плане.
                                                                                              • 0
                                                                                                Вообще-то вы сейчас способ через задницу описали. Через QMetaProperty оно делается на раз два три без каких-либо доп требований от класса, кроме Q_PROPERTY и Q_OBJECT. Поэтому увы, надо доки читать перед тем, как вбросы делать ;)
                                                                                                А qRegisterMetaTypeStreamOperators() и два оператора плюс пустой конструктор нужен для производных от QVariant'а.
                                                                                                Короче смешались в кучу люди, кони!
                                                                                                • 0
                                                                                                  А как простите десериализовать объект если не известно что это за объект? Через QVariant
                                                                                                  • 0
                                                                                                    Так же как и сериализовывать ёлки палки. Про Q_DECLARE_METATYPE не слышали?
                                                                                                    • +1
                                                                                                      Я вообще-то про него и написал. Так вот чтобы Q_DECLARE_METATYPE применить классу, унаследованному от QObject? в нем должен быть дефолтный конструктор и конструктор копии, это раз.

                                                                                                      Второе, есть у вас, скажем QDataStream. Там лежит некий серилизованный объект, неизвестно какой, знаем что QObject. Как вычитав ЭТО создать объект нужно класса?
                                                                                                      Очевидно вычитать в QVariant. Для чего придется регистрировать потоковые операторы при помощи qRegisterMetaTypeStreamOperators().
                                                                                                      Либо при записи самому пихать идентификатор класса и самому его анализировать при чтении, что уже какбэ лисапед.
                                                                                                      • 0
                                                                                                        >Я вообще-то про него и написал. Так вот чтобы Q_DECLARE_METATYPE применить классу, унаследованному от QObject? в нем должен быть дефолтный конструктор и конструктор копии, это раз.

                                                                                                        За конструктор копии в QObject'е надо сразу яйца отрывать!!! Отсюда и все проблемы. QObject'ы надо сериализовывать и десериализовывать через QMetaProperty и никак иначе!
                                                                                                        • 0
                                                                                                          Все это и называется КОСТЫЛЯМИ. А все потому что С++ не поддерживает нормальную RTTI

                                                                                                          сравните с так вами нелюбимым VCL:

                                                                                                          TMyClass = class(Tcomponent)
                                                                                                          // достаточно поместить нужные свойства в секцию…
                                                                                                          published
                                                                                                          property prop1…
                                                                                                          property prop2…
                                                                                                          end;
                                                                                                          • 0
                                                                                                            и чем это отличается от Q_PROPERY? только тем, что БОЛЬШИМИ БУКВАМИ?
                                                                                                            • 0
                                                                                                              Q_PROPERTY, Q_OBJECT, Q_DECLARE_METATYPE и все остальное
                                                                                                • +1
                                                                                                  Только Qt в отличии от VCL не RIP.
                                                                                                  • 0
                                                                                                    VCL скажем так не в мэйнстриме. Тем не менее сильно сомневаюсь что на VCL меньше живых проектов чем на Qt.
                                                                                                    • 0
                                                                                                      Это уже всё legacy, на Qt же куча новых проектов стартует ибо реально замены пока нету. Java — это немного не то, да и не умеет она под нативный look&feel подстраиваться.
                                                                                                      • 0
                                                                                                        Я выше писал что Qt действительно замены нет, из-за настоящей кроссплатформенности
                                                                                                        • 0
                                                                                                          А я выше описал, что ваши проблемы возникают не из за косяков в Qt а из за того, что вы не теми инструментами для задачи пользуетесь. Вот у меня сериализация и десериализация QObject'ов почему-то практически без телодвижений происходит, интересно почему же?
                                                                                                          • 0
                                                                                                            а я и не говорю что в Qt косяки, просто иначе как костылями в С++ не сделаешь. Ребята из nokia и trolltech сделали все что могли
                                                                                          • +8
                                                                                            А как скоро выйдет Turbo WinC++?
                                                                                            • +6
                                                                                              Microsoft, просто купите visual assist добавьте фичи IDE которые есть для managed языков или в visual assist.
                                                                                              • +8
                                                                                                Плюсую. Ёбаный стыд, с точки зрения проектов C++/CLI студия VS2010 — это такой большой блокнот: ни IntelliSense, ни анализа кода, ничего

                                                                                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.