The Cat
Искусственный Интеллект
(116182)
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++ потребуются годы.