Другие языки программирования и технологии
Подскажите, имею базовые знания с++, пишу консоль, хочется научиться писать графические приложения.
Я новичок в этом деле! С чего начать, по какому пути идти дальше, посоветуйте книги, работаю с VC++ 2010 за ранее спс)))
Дальше QT, GTK, ULTIMATE++. Для общего развития и понимания изнанки - книги по Лиспу и Хаскелль, структура и интерпретация компьютерных программ, компиляторы Ахо, банда 4-х (паттерны), операционные системы Таненбаума, устройство Linux, Windows Internals/Essentials и т. п. по оси, Effective/ More Effective C++, Elegant C++ для знания подводных камней и оптимизацией. Обязательно свежая литература по BOOST, STL. С течением времени, ознакомившись с функциональными и декларативными языками программирования, узрев преимущества акторного и реактивного программирования, автоматического управления памятью (NodeJS / Erlang / .NET-Mono) из лагеря сторонников С++ перейдешь в лагерь С++-хейтеров, ну или скептиков, это как повезет. Желательно прочитать несколько раз книгу "Веревка достаточной длины, чтобы выстрелить себе в ногу", ну и хорошую отрезвляющую статью (выражает дух времени, модернистские настроения и разочарование в плюсах) - "Почему объектно-ориентированное программирование провалилось". И да, осваивай RUST - этот язык станет полной заменой С++. Если серьезно системным программированием будешь заниматься - не закапывайся в прибитый гвоздями к какой-то архитектура ассемблер, вникай в виртуальный ассемблер для LLVM низкоуровневой виртуальной машины, на нее RUST и завязан.
Александр Нестеров
Стек Linux/BSD обязателен, основная ось для построения кластеров, суперкомпьютеров, распределенных масштабируемых систем, высокопроизводительные отказоустойчивые сервера, виртуализация и т. п. Грубо говоря на определенном уровне сложности написание кода на C++ себя не оправдывает, его потому и называют высокоуровневым ассемблером.
Александр Нестеров
Сравни код простейшего веб-сервера на Haskell, Erlang, пресловутом PHP или NodeJS с тем ужасом, который ожидает в вебе программиста C++. Настоятельно советую посетить сайт RosettaCode. Язык для разработки компиляторов и интерпретаторов не надо применять где попало. В прикладном программировании масса удобных и эффективных языков, которые производительность труда повышают, облегчают рефакторинг кода и обновление бизнес-моделей.
Определитесь, для какой ОС хотите писать приложения с GUI.
На винде гуй на С++ лучше всего писать под Winforms (IDE - Visual Studio) и VCL (IDE - C++ Builder).
cyberforum.ru/cpp-cli-winforms/thread1227810.html (здесь кое-что по Winforms)
Можно также писать гуй под чистый Windows API, без доп. библиотек
http://msdn.microsoft.com/ru-ru/library/bb384843.aspx (здесь хелловорлд под WinAPI)
http://code.msdn.microsoft.com/CppWindowsCommonControls-9ea0de64
Это тяжело и не годится для промышленного применения, но изучив на каком-то уровне WinAPI, вам будет легче понять Winforms и VCL, ведь они основаны на нем. К тому же WinAPI - это далеко не только GUI, и многое, что можно сделать с помощью WinAPI, нельзя сделать с помощью VCL и Winforms, и в таких местах кода все равно приходится применять WinAPI.
Возможно, помимо С++, стоит изучить также C#.
На нем будет удобнее писать под Winforms, а еще сможете писать под WPF (эта платформа предназначена для приложений со сложной графикой, вплоть до 3D).
Это уж сами смотрите и сравнивайте.
------------------
> Дальше QT, GTK, ULTIMATE++
А это все вам понадобится, если захотите писать GUI не на винде, а на линуксе.
Или писать кроссплатформенный GUI.
Но учтите, что кроссплатформенное всегда писать намного тяжелее, чем нативное, и инструменты для этого менее удобные и мощные. Так что я б советовал кроссплатформенное пока не трогать.
На винде гуй на С++ лучше всего писать под Winforms (IDE - Visual Studio) и VCL (IDE - C++ Builder).
cyberforum.ru/cpp-cli-winforms/thread1227810.html (здесь кое-что по Winforms)
Можно также писать гуй под чистый Windows API, без доп. библиотек
http://msdn.microsoft.com/ru-ru/library/bb384843.aspx (здесь хелловорлд под WinAPI)
http://code.msdn.microsoft.com/CppWindowsCommonControls-9ea0de64
Это тяжело и не годится для промышленного применения, но изучив на каком-то уровне WinAPI, вам будет легче понять Winforms и VCL, ведь они основаны на нем. К тому же WinAPI - это далеко не только GUI, и многое, что можно сделать с помощью WinAPI, нельзя сделать с помощью VCL и Winforms, и в таких местах кода все равно приходится применять WinAPI.
Возможно, помимо С++, стоит изучить также C#.
На нем будет удобнее писать под Winforms, а еще сможете писать под WPF (эта платформа предназначена для приложений со сложной графикой, вплоть до 3D).
Это уж сами смотрите и сравнивайте.
------------------
> Дальше QT, GTK, ULTIMATE++
А это все вам понадобится, если захотите писать GUI не на винде, а на линуксе.
Или писать кроссплатформенный GUI.
Но учтите, что кроссплатформенное всегда писать намного тяжелее, чем нативное, и инструменты для этого менее удобные и мощные. Так что я б советовал кроссплатформенное пока не трогать.
Для этого тебе нужна некая библиотека (например, MFC) для написания GUI-приложений.
Похожие вопросы
- могу ли я изучать С++ по шилдту, не имея базовых знаний языка С?
- Хочу создавать сайты,Научите!!!!Базовыми знаниями владею.
- ГДЕ ПОЛУЧИТЬ БАЗОВЫЕ ЗНАНИЯ ПРОГРАММИРОВАНИЯ
- Какие базовые знания нужны для изучения программирования ?
- На чем пишут графические движки для игр?
- Хватит ли мне базовых знаний с++ для разработки игр если подучу игровой движок? ( что знаю внутри вопроса)
- пишу мультимедийное приложение для ВУЗа, в нем будет текстовый конспект, схемы, чертежи, как всю эту программу назвать ?
- Какие именно базовые знания нужны для того чтобы начать учить языки программирования?
- Какой язык лучше учить новичку? Хочу поступить на программиста хоть с какими то базовыми знаниями
- Подскажите какой язык программирования можно освоить быстро, необходима возможность создания графического интерфейса.