Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Что дают программисту новые фреймворки?


Автор: asdfg6 12.11.2013, 10:19
Для чего люди переходят на новые фреймворки?
По вашему мнению, новые фреймворки всегда лучше старых? 

Основная задача фреймворков - разработка форм графического интерфейса, который состоит из давно ставших стандартом компонентов.
 
Для пользователя они выглядят одинаково.

Никакого значимого сокращения объема работы по разработке форм фреймворки не принесли. Разработка формы "одной мышкой" так и не появилась. 


Автор: Earnest 12.11.2013, 10:46
Обычно новые фреймворки сопровождаются и обновлением компилятора, линкера, etc
Для меня это основная причина. Новая версия компилятора - лучшее соответствие стандартам, новые возможности и т.д.
А к оболочке привыкаешь быстро, хотя поначалу и раздражает. 
Программирование не сводится к разработке форм, хоть одной мышкой, хоть двумя, так что это вообще не задача для разработчиков фреймворков, 

Автор: asdfg6 12.11.2013, 12:15
Цитата(Earnest @ 12.11.2013,  10:46)
Обычно новые фреймворки сопровождаются и обновлением компилятора, линкера, etc
Новая версия компилятора - лучшее соответствие стандартам, новые возможности и т.д.

Сложно найти программиста, которому это важно. Мало кто знает и умеет использовать ключи компилятора и линкера. 
Скорее всего это какой-то бородатый линуксоид, а не программист, работающий в фреймворках.

Автор: bsa 12.11.2013, 13:19
Цитата(asdfg6 @  12.11.2013,  13:15 Найти цитируемый пост)
Сложно найти программиста, которому это важно.
Как раз наоборот. Нет программиста, которому это не важно.
Цитата(asdfg6 @  12.11.2013,  13:15 Найти цитируемый пост)
Мало кто знает и умеет использовать ключи компилятора и линкера.
А причем тут это? Среда разработки или скрипты фреймворка скрывают такие тонкости от разработчика.
Цитата(asdfg6 @  12.11.2013,  13:15 Найти цитируемый пост)
Скорее всего это какой-то бородатый линуксоид, а не программист, работающий в фреймворках.
"Бородатый линуксоид" фреймворки отрицает. А программы пишет или на Си, или на Perl.

Ты главное не путай себя и понятие "программист". Потому что "программист" - это профессия человека, который ей себе деньги на жизнь зарабатывает. Причем, скорее всего, он интересуется этой темой и в курсе последних тенденций.
А вот человек, который научился клепать в дельфях простые программки еще не программист.

Автор: asdfg6 12.11.2013, 13:26
Ключи как и версии компилятора и линкера скрыты от программиста, работающего в фреймворке.

Средний программист вообще не разделяет компилятор и линкер. Для него есть одна кнопка "собрать проект".

Автор: baldina 12.11.2013, 13:34
Цитата(asdfg6 @  12.11.2013,  13:26 Найти цитируемый пост)
Ключи как и версии компилятора и линкера скрыты от программиста, работающего в фреймворке

это только для того, кто
Цитата(asdfg6 @  12.11.2013,  13:26 Найти цитируемый пост)
Средний программист


Добавлено через 32 секунды
и пожалуй даже средний таки в курсе

Автор: xvr 12.11.2013, 13:37
Цитата(asdfg6 @  12.11.2013,  10:19 Найти цитируемый пост)
Основная задача фреймворков - разработка форм графического интерфейса, который состоит из давно ставших стандартом компонентов.

Тут имеем 2 утверждения, оба из них не соотвествуют действительности

Цитата(asdfg6 @  12.11.2013,  10:19 Найти цитируемый пост)
Разработка формы "одной мышкой" так и не появилась. 

Есть в законах Мерфи (если не ошибаюсь) замечательное утверждение -
Цитата

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

У программистов никогда не стояла цель 'разрабатывать формы одной мышкой'. Если у вас стоит такая цель - вы не программист  smile 

Автор: asdfg6 12.11.2013, 14:16
Цитата(baldina @ 12.11.2013,  13:34)
Добавлено @ 13:34
и пожалуй даже средний таки в курсе

Даже в Linux программисту обычно пофиг что делает линкер (make запускает всё что надо), не говоря о Windows где всё глубоко скрыто в среде разработки.

Автор: xvr 12.11.2013, 14:23
Цитата(asdfg6 @  12.11.2013,  14:16 Найти цитируемый пост)
Даже в Linux программисту обычно пофиг что делает линкер (make запускает всё что надо), не говоря о Windows где всё глубоко скрыто в среде разработки. 

Ни в Linux, ни в Windows ни одна среда разработки не скрывает от разработчика то, что у компилятора и линкера есть настройки, а наоборот - дает весьма богатый выбор для их изменения. Называется это все 'свойствами проекта', и только те, кто 'програмирует исключительно мышкой' об этом не знают  smile 

Цитата(asdfg6 @  12.11.2013,  13:26 Найти цитируемый пост)
Средний программист вообще не разделяет компилятор и линкер.

Это не 'средний программист', это 'мышкоблудец'  smile 

Автор: asdfg6 12.11.2013, 14:24
Цитата(xvr @ 12.11.2013,  13:37)
У программистов никогда не стояла цель 'разрабатывать формы одной мышкой'. Если у вас стоит такая цель - вы не программист  smile

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

Добавлено через 3 минуты и 9 секунд
Цитата(xvr @ 12.11.2013,  14:23)
Ни в Linux, ни в Windows ни одна среда разработки не скрывает от разработчика то, что у компилятора и линкера есть настройки, а наоборот - дает весьма богатый выбор для их изменения. Называется это все 'свойствами проекта'

Обычно стараются менять эти свойства как можно реже. 
Свойства проекта по-умолчанию подходят для большинства ситуаций.

Автор: baldina 12.11.2013, 15:15
Цитата(asdfg6 @  12.11.2013,  14:24 Найти цитируемый пост)
Обычно стараются менять эти свойства как можно реже.

а именно устанавливают один раз. но это не значит, что не в курсе

Автор: asdfg6 12.11.2013, 15:30
Устанавливают при создании проекта. Определяют какой будет проект - графическое, консольное приложение, библиотека, и т.д, остальное делает среда. 
Я не видел, чтобы программист под Windows руками выставлял ключи.

Автор: Amp 12.11.2013, 15:33
Оффтоп - твой старый аккаунт здесь забанили что ли?

Автор: asdfg6 12.11.2013, 15:37
Цитата(xvr @ 12.11.2013,  13:37)
Цитата(asdfg6 @  12.11.2013,  10:19 Найти цитируемый пост)
Основная задача фреймворков - разработка форм графического интерфейса, который состоит из давно ставших стандартом компонентов.

Тут имеем 2 утверждения, оба из них не соотвествуют действительности

В последнее время часто делают нестандартные компоненты GUI. Мне не нравятся такие программы, считаю что это вводит в заблуждение.

А какая еще цель у фреймворков? Другая задача фреймворков -  работа с БД. Но GUI и БД взаимосвязаны, т.к. чаще всего GUI пишется чтобы отображать и вносить данные в/из БД.

Автор: Guinness 12.11.2013, 15:43
Цитата(asdfg6 @  12.11.2013,  16:30 Найти цитируемый пост)
Я не видел, чтобы программист под Windows руками выставлял ключи. 

В смысле? Ручками писать ключики? В студии большинство ключей есть в виде свойств проекта. В qtcreator пишешь ключики в .pro файле или для moc в настройках проекта.
И да, если программист с этим не сталкивался, то он скорее всего в начале пути и рано или поздно до этого дойдет. Другой вопрос, IDE позволяют существенно упростить геморрой со сборкой проекта.
И да, я писал с точки зрения програмирования на плюсах, на других языках скорее всего может быть по другому.

Автор: asdfg6 12.11.2013, 16:50
Цитата(Guinness @ 12.11.2013,  15:43)
В студии большинство ключей есть в виде свойств проекта.

Такое впечатление, что вы давно не открывали свойства проекта в студии. 
В свойствах проекта в студии многие свойства пишутся тупо руками в виде строки (которая на самом деле представляет набор свойств). 
Вы понимаете все эти свойства?

Фреймворк по идее нужен чтобы писать программы с меньшими затратами времени, и чтобы снизить порог вхождения в программирование.

Грубо говоря писать программы под хороший фреймворк может и идиот.

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

Автор: xvr 12.11.2013, 17:03
Цитата(asdfg6 @  12.11.2013,  16:50 Найти цитируемый пост)
Такое впечатление, что вы давно не открывали свойства проекта в студии. 

О да, давненько я не брал в руки шашек ...  smile 
Открыл VS2010 (какая под руками была), проект на С++.
В Project->Properties->Configuration Properties нашлось 11 пунктов, из них 8 имеют подпункты (от 1 до 10 штук), на каждый из них открывается страница с настройками (от 3 до 20 шт на страницу).
При этом все настройки имеют вполне вменяемое короткое имя (оно видно сразу на странице) и более подробное - развернутое (оно показывается при выборе настройки).
Кроме того, последним подпунктом для компилятора и линкера идет страница с сгенерированной командной строкой их запуска, где перечисленны все опции, и их там можно подредактировать.

Цитата(asdfg6 @  12.11.2013,  16:50 Найти цитируемый пост)
Вы понимаете все эти свойства?

Если человек не в состоянии понять что есть что после 3го раза (короткое название/развернутое название/развернутый help в виде WEB страницы), то видимо к компьютеру его вообще подпускать нельзя (про программирование я умолчу)

Автор: asdfg6 13.11.2013, 08:14
Вот навскидку такая опция (на странице Common Properties, Framework and References)
Цитата

Copy Local Satellite Assemblies

Это вся доступная справка
Цитата

Copy Local Satellite Assemblies
    Specifies whether to automatically copy the satellite assemblies of the referenced assembly to the target location during a build. Only used if Copy Local is true.

У меня стоит false. Что будет, если поставить true? 
Для начала надо бы выяснить что такое Local Satellite Assemblies, но в MSDN этого нет.
Что куда и зачем будет копироваться?

Автор: baldina 13.11.2013, 10:42
Цитата(asdfg6 @  13.11.2013,  08:14 Найти цитируемый пост)
надо бы выяснить что такое Local Satellite Assemblies, но в MSDN этого нет

http://lmgtfy.com/?q=Local+Satellite+Assemblies&l=1

Автор: asdfg6 13.11.2013, 12:32
Найти в гугле не значит уметь использовать.

Автор: baldina 13.11.2013, 13:02
по ссылке описано и что это такое, и как его использовать. вкупе с комментарием в студии получается исчерпывающая картина. если вы этого не понимаете, значит надо читать сначала.
справка по опциям компилятора обычно тоже немногословна, т.к. предполагает определенный уровень знаний пользователя.

Автор: bsa 13.11.2013, 15:57
Цитата(asdfg6 @  13.11.2013,  09:14 Найти цитируемый пост)
Что куда и зачем будет копироваться?

Есть простое правило, если ты не понимаешь что это и зачем, то оно тебе не нужно.

Автор: asdfg6 13.11.2013, 19:10
Если показать пальцем на случайно выбранную опцию из свойств проекта в студии, и спросить случайно выбранного программиста зачем эта опция, то скорее всего он не даст внятный ответ. 

Разумеется, поиск в интернете и чтение МСДН для ответа на вопросэтому программисту не разрешается.

В свойствах проекта в студии сотни опций, и почему-то мне кажется, что на этом форуме мало кто знает их все.

Автор: bsa 13.11.2013, 21:19
Цитата(asdfg6 @  13.11.2013,  20:10 Найти цитируемый пост)
В свойствах проекта в студии сотни опций, и почему-то мне кажется, что на этом форуме мало кто знает их все.
Причину я указал выше. В большинстве случаев достаточно знать лишь базовые понятия, типа release и debug. Все остальное - это тонкий тюнинг, который делают только те, кому это действительно нужно или из праздного любопытства.

Автор: baldina 13.11.2013, 22:16
Цитата(asdfg6 @  13.11.2013,  19:10 Найти цитируемый пост)
на этом форуме мало кто знает их все

все никто не знает. это не нужно.
голова инженера это не хранилище для кучи фактов. факты зубрить не надо, для этого есть книги и интернет.
нужно знать концепции и принципы, тогда будет ясно какие факты и где искать. 

любой из отвечающих в этой теме за 5 минут разберется в любой опции так, чтобы полностью понять и объяснить, даже если задумался о ней впервые.

Автор: EgoBrain 14.11.2013, 07:55
Цитата(asdfg6 @  12.11.2013,  13:26 Найти цитируемый пост)
Средний программист вообще не разделяет компилятор и линкер. Для него есть одна кнопка "собрать проект


Цитата(asdfg6 @  12.11.2013,  14:16 Найти цитируемый пост)
Даже в Linux программисту обычно пофиг что делает линкер (make запускает всё что надо), не говоря о Windows где всё глубоко скрыто в среде разработки. 

Да? И что тогда будет делать человек назнающий ничего о работе линкера и компилятора когда сталкнется с ошибкой компоновки исполняемого файла из объектных? Напишит на форуме много глупых умозаключений и вопросов.


asdfg6, ты уже отклонился от темы перейдя на обсуждения настроек комплиятора и прочая. И вообще с первого поста непонятно сразу что ты речь ведешь о .NET Framework, а не об общном понятии. Версии .NET отличаются привнося новые пространства имен с новыми классами и кучей возможностей, GUI лишь малая доля.

Что касается настроек, в них часто приходится залазить, требования к проекту могут менятся, начиная от банального дебага и релиза, заканчивая подключением новых библиотек к проекту и настроек оптимизации. Еще зачастую приходится менять режим подключения внешних библиотек, либо включать их в исполняемый файл либо динамечки подгружать. Все это делается через свойства проекта. Бывает пишешь ты пишешь оконое приложение, например под DirectX что-то, понадобился тебе вывод текста на экран, но тебя обламывает тратить время на изучение возможностей набора текста средсвами DirectX, и ты решил выводить в консоль, полез в ствойста сменил тип на консольный. И всякие другие случаи. На стадии создания и дебагинга одни и теже свойста могут менятся несколько раз подряд.

Автор: asdfg6 14.11.2013, 08:19
Цитата(EgoBrain @ 14.11.2013,  07:55)
что тогда будет делать человек назнающий ничего о работе линкера и компилятора когда сталкнется с ошибкой компоновки исполняемого файла из объектных? Напишит на форуме много глупых умозаключений и вопросов.

А на этом форуме нет ни одного вопроса натему "почему выдается ошибка Unresolved external symbol"? Значит плохо понимают пацаны как работает линкер.

Автор: asdfg6 14.11.2013, 08:46
Цитата(EgoBrain @ 14.11.2013,  07:55)
GUI лишь малая доля.

Задача классов .NET Framework - считать и отобразить данные (в окне приложения или браузера), а это чистый GUI + запросы к БД.

WEB-программирование по указанной причине я тоже отношу к GUI.

Всю бизнес-логику программист пишет руками, и фреймворк никак в этом ему не помогает.

Какая ещё есть "большая доля"?

Автор: baldina 14.11.2013, 10:44
Цитата(asdfg6 @  14.11.2013,  08:46 Найти цитируемый пост)
Всю бизнес-логику программист пишет руками, и фреймворк никак в этом ему не помогает.

помогает, вы просто не умеете.
 smile 
все это напоминает очередной троллинг

Автор: bsa 14.11.2013, 15:59
Цитата(asdfg6 @  14.11.2013,  09:19 Найти цитируемый пост)
А на этом форуме нет ни одного вопроса натему "почему выдается ошибка Unresolved external symbol"? Значит плохо понимают пацаны как работает линкер. 
Которые? Которые задают или которые отвечают?

Автор: akizelokro 15.11.2013, 01:25
Цитата(asdfg6 @  12.11.2013,  10:19 Найти цитируемый пост)
Основная задача фреймворков - разработка форм графического интерфейса, который состоит из давно ставших стандартом компонентов.


Неверно. Рассмотрим хотя бы Visual Studio 2010, для примера, MFC. Кроме давно уже стандартных классов СButton и проч., я нашёл новые (возможно, для себя) классы СMFCButton и прочие, которые также, как я понял, уже стали стандартом. Также учтеные кой-где новые возможности, хотя бы на начальном уровне, такие как прозрачность. Отсюда - учесть изменения.


Цитата(asdfg6 @  12.11.2013,  15:30 Найти цитируемый пост)
Устанавливают при создании проекта. Определяют какой будет проект - графическое, консольное приложение, библиотека, и т.д, остальное делает среда. 
Я не видел, чтобы программист под Windows руками выставлял ключи. 


Есть и тип проектов на основе make-файлов. Так же порой приходится и портировать библиотеки.

Кстати, работал на первом чтоли фреймворке (графической среде разработки под Винду) и не задавался вопросом, почему я на него перехожу.  Потому что встроенный дебаггер (окно вывода). И всё достаточно удобненько и видно.
Причина - упростить себе жизнь, в фреймворках добавляют новые сервисы.


Цитата(asdfg6 @  12.11.2013,  15:30 Найти цитируемый пост)
Я не видел, чтобы программист под Windows руками выставлял ключи. 

Я видел. И не только давно.

Цитата(asdfg6 @  12.11.2013,  12:15 Найти цитируемый пост)
Сложно найти программиста, которому это важно. Мало кто знает и умеет использовать ключи компилятора и линкера. 
Скорее всего это какой-то бородатый линуксоид, а не программист, работающий в фреймворках.

Скорее всего, что надо уточнить, что все ключи и опции. Мало того, что они могут отличаться от компилятора к компилятору, так их действительно много. Но если знать, что они могут быть, их можно найти.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)