Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Консоль или WinForm???

Ara Soft Ученик (16), на голосовании 9 лет назад
Учу C плюс плюс по книгам но все примеры консольные и у самого получается писать только консольные а вроде консоль нигде не нужна везде формы так зачем учить консольные проги если везде оконные???
Голосование за лучший ответ
The Cat Искусственный Интеллект (116182) 9 лет назад
Консольные проги реализуют ваш алгоритм и позволяют выполнять его в автоматическом режиме. Окошечные проги для этого не годятся в принципе -- некому мышку нажимать.

Фишка в том, что не надо никуда переходить -- какая задача -- такое и приложение, оконное или консольное.
Ara SoftУченик (16) 9 лет назад
А стоит ли переходить на оконные
The Cat Искусственный Интеллект (116182) Если вы пишете интерактивную прогу -- другое дело.
Максим Оракул (94771) 9 лет назад
по консольным проще учить алгоритмы, само программирование..
меньше лишних не нужных телодвижений, типа создания кнопок и окошек вывода результата..
Просветленный (26673) 9 лет назад
Не бывает такого, чтобы что-то одно было однозначно лучше другого и точка.

Большинство современных приложений имеет GUI.
И иногда это даже не уровень Winforms, а уровень WPF, + есть мобильные ОС, где консольных приложений не бывает вообще.
Но если приложение имеет GUI, это не значит, что оно не имеет консольных компонентов.
Яркий пример: Visual Studio. Вроде бы гуевое приложение. Гуевый редактор кода, гуевые вкладки, гуевый конструктор форм. Все это компоненты не могут быть консольными и должны быть гуевым.
Но вот собственно компилятор, который код преобразует в EXE, это не гуевая часть гуевой Visual Studio, а отдельный EXEшник, и он не имеет GUI.
Почему?
Потому что это функционально не самостоятельное приложение, а отдельный гибкий встраиваемый компонент, выполняющий лишь определенную функцию - компиляция. Он предполагает работу совместно с IDE, причем не обязательно Visual Studio, можно создать свою IDE на базе того же компилятора.
Во-вторых, попробуйте написать компилятор и попробуйте написать такую IDE, как Visual Studio. Представьте, сколько кода в первом и во втором. А теперь представьте, что весь этот код - это один-единственный исходник из 100500 файлов. Каково потом найти в нем нужное, чтобы внести изменения? Сколько времени займет компиляция всего этого исходника целиком, при малейшем изменении любой его части? Очень много. Это еще одна причина, зачем проект разбивают на модули с разным функционалом.
Вот Chromium толком не разбит на модули, в целях безопасности и прочего, и из-за этого его 10-гигабайтовый исходник очень сложно заставить скомпилироваться без ошибок, и на это уходит вплоть до нескольких сутов.

Для экспериментов с алгоритмами в общем одинаково подходят как GUI, так и консоль.
Часто приходится экспериментировать с несколькими вариациями алгоритмов сразу. Тогда лучше сделать гуевое приложение с несколькими кнопочками, по 1 алгоритму на кнопку, и жать их. Также GUI более гибок для визуализации результата работы алгоритма.

Очевидно, что главный упор в изучении следует делать на GUI, и в книгах по-хорошему должно быть больше GUI, чем консольного. Хотя бы потому, что эта тема куда сложнее и обширнее.
Ирэн Ницше Искусственный Интеллект (213247) 9 лет назад
А не надо учиться по книгам.
Конечно, программист должен уметь написать консольное приложение и иногда это удобнее.
Но научиться их писать - это один-два дня (и то для людей, которые весь день где-то работают и программируют только в свободное время).
А вот научиться писать с графическим интерфейсом - это значительно дольше и сложнее. Поэтому надо включать это в обучение. А книги, где так не сделано - выкинуть.
zhodzky Просветленный (49005) 9 лет назад
Графический интерфейс не входит в стандарт языка. Для его реализации используются или API операционной системы напрямую или сторонние библиотеки (QT, MFC и др.). Соответственно реализовать его можно совершенно по разному.
На мой взгляд лучше вначале научиться хорошо программировать в консоли. После этого освоить создание графического интерфейса будет не сложно. Программирование в консоли позволяет сосредоточится на языке и алгоритмах что важно во время обучения.
Те же кто сразу бросается на графический интерфейс часто забывают про алгоритмы и потом испытывают проблемы при решении алгоритмических задач.
На базовом уровне освоить Windows Forms можно за пару дней, а на то чтобы научиться хорошо программировать на C/C++ потребуются годы.
Наглый Еврей Гуру (3778) 9 лет назад
ТОЛЬКО GTK ТОЛЬКО ХАРДКОРЬ!!
Похожие вопросы