>Да, наверно минимум зависимостей сделаем одной из главных политических линий. По прежнему не хочу давать советов.
Лишь скажу, то что выяснил на собственном трудном опыте. Хотя возможно вы это и без меня уже знаете.
В своих поисках оптимальных решений, я выяснил, что просто ставить цель в виде минимизации зависимостей оказывается еще не достаточно. Крайне важно учитывать еще и характер зависимостей.
Поучительным здесь может быть история многочисленных фреймворков на Руби. Когда-то RubyOnRails (не без влияния которого кстати создавался питоновский Django) считался очень модульным и легковесным по сравнению с существовавшими тогда монстрами на java. Однако в последствии ROR сам был подвергнут сильной критике, и теперь уже сам считается монстром. А разработчики фреймворков теперь уже похоже соревнуются, кто из них создаст наиболее легкий и слабозависимый проект.
Это конечно все отдельная тема разговора, могу лишь привести на вскидку заметку из неплохого блога одного рубиниста. Он выделяет два вида связности - coupling and cohesion.
"Why coupling is always bad / Cohesion vs. coupling" http://www.hokstad.com/why-coupling-is-always-bad-cohesion-v...
Хотя с позиций абстрактной математики и декларативного программирования это все выглядит гораздо прозрачнее.
>Да и просто, есть сила привычки, я, например, по максимуму стараюсь использовать консольные приложение, просто привык и мне так удобнее, оттого и писал, собственно проект
Это не просто сила привычки. Это скорее верная интуиция и не стоит это недооценивать.
Дело в том, что консоль имеет более эффективные математические модели, чем оконные системы. С точки зрения представления и обработки абстрактных данных. А следовательно, более эффективные и емкие реализации пользовательского интерфейса. Правда ценой понятности для пользователей с менее развитым абстрактным мышлением.
А о разнице между сложностью и понятностью я уже писал здесь в постах при обсуждении конфигурационных файлов.
Существует распространенное заблуждение, что якобы оконные, а тем более графические оконные интерфейсы, являются значительным техническим прогрессом по сравнению с консольными и потоковыми.
На самом деле это совершенно не так. Технический прогресс всего лишь позволил создавать более интуитивно понятные, имеющие аналогию с физическими объектами, но и более ресурсоемкие оконные интерфейсы. Однако близость к физической интерпретации делает "графику" на самом деле менее выразительной для абстрактных данных и логической обработки.
Консольные и потоковые интерфейсы имеют с этой точки зрения огромное преимущество. И могут быть реализованы на более "слабой" аппаратуре без потери всей их мощи. Потому они давно и использовались, а не потому что они якобы устаревшие. Кроме того, после волны ажиотажа вокруг "графики", все постепенно возвращается на круги своя.
Поэтому можно в этом направлении продолжать спокойно совершенствоваться и не бояться при этом "устареть". И это особенно актуально с развитием вычислительной техники все более в сторону мобильных устройств. В сторону сочетания вычислительной мощи и физической неприхотливости и абстрактности интерфейсов.
Что же касается привычек, то это наоборот, привычки обычно мешают освоить консоль как пользователям, так и разработчикам. Вернуться к "графике" можно в любой момент, вопрос - зачем.