Навскидку могу предположить, что рост памяти студии сублинеен при увеличении числа проектов… Сейчас не поленился открыть 2 солюшена: один на 50 проектов, второй — на 182. Проекты из солюшена #1 — это подмножество проектов из солюшена #2. Далее я по полчаса работал в каждом из них, в.т.ч. используя функции решарпера. Итог: солюшен #1: 725 MB; солюшен #2: 841 MB;
182 проекта в общем солюшене, Core i5 2310, 8Gb RAM — полет нормальный :) Запускается по личным ощущениям на ~20% дольше, но потом разница практически незаметна
Покрытие юнит-тестами незнакомого кода — это безусловно хорошая практика. Но далеко не всякий код хорошо тестируем (более того, если он хорошо тестируем, возможно он не так уж и плох) и зачастую приходится провести некислый такой рефакторинг, чтобы этой самой тестируемости добиться =)
Доступность кадров, надёжность toolchain, полнота библиотек, успешный практический опыт — это проблемы, которые возникают перед любым новым языком программирования. Причем, редко когда язык занимает абсолютно новую нишу, но удалось же в свое время PHP потеснить Perl, а потом ASP.NET и Ruby / RoR, в свою очередь, потеснить PHP.
Вот объяснение, предложенное вами во втором абзаце, на мой взгляд выглядит достаточно разумно и многое объясняет =)
Хм, конечно, наиболее интересен был бы любой опыт коммерческой разработки на D, ежели таковой имеется =) Если вы про тип приложения — мне лично интересно, как язык проявляет себя в разработке GUI-приложений практически любого рода.
Кстати, глянул ваш профиль, увидел статьи про D. Почитал. Т.к. судя по-всему с языком вы знакомы достаточно плотно, я конкретизирую свой вопрос: можете рассказать о проектах, написанных на D?
В общем случае никак, разумеется =) Я вот о чем: имеем язык N, язык этот не эзотерический и не предназначенный для решения узкого круга специфических задач. Авторами языка позиционируется как альтернатива плюсам. Многие, в.т.ч. автор статьи, утверждают, что он удобнее плюсов, и приводят ряд аргументов, часть из которых для меня звучит разумно. Отсюда у меня и возникает резонный вопрос: почему язык не популярен? Вопрос, кстати, ни разу не риторический, мне на самом деле это интересно =)
Вот меня давно волнует следующий вопрос: если язык так хорош, почему он до сих пор не попал в мейнстрим, в особенности учитывая то, что он вроде как для мэйнстрима и планировался? Как бы с одной стороны понятно, что не помешала бы поддержка кого-нибудь крупного, но, с другой стороны — а почему ее до сих пор нет? И еще вот интересно: может кто из хабрасообщества участвовал в разработке реального проекта на D? Если так — реквестирую хотя бы краткую выжимку такого опыта!
P.S. Вот сейчас специально глянул и не нашел ни одной вакансии «разработчик D» в Москве — поправьте меня, если это не так
В свое время у нас один из преподавателей говорил — «невозможно по-настоящему объяснить ООП человеку, который ни разу в жизни не писал программы больше 1000 строк». Смотрю на пример многих своих бывших однокурсников, и думаю, что он был очень даже прав! =)
И еще, учитывая, что разговор про детей (школьников?) — есть смутное ощущение, что человеку, который возможно никогда в жизни не станет профессиональным программистом, важнее получить основы императивного мышления, чем представление о доминирующей парадигме в современной коммерческой разработке ПО.
> Как по мне, так студентам надо давать на первом курсе какую-нибудь нереальную или очень сложную прикладную задачу, которую они не осилят, а уж потом давать теорию, которая им поможет ее решить.
Вот это, кстати, отличная мысль! Не думаете попробовать претворить ее в жизнь, раз уж осели на кафедре в качестве аспиранта?
З.Ы. Помню сам на первом курсе очень неплохо прокачался, пытаясь написать программу, которая бы интегрировала произвольную функцию, вводимую с клавиатуры =)
Языку — вряд ли. Вы почитайте про тот же Powershell хотя бы тут, и сделайте выводы ;) С другой стороны, Вы могли бы выложить сырцы компилятора в открытый доступ, и / или написать пару статей о его разработке — думаю, что от такого труда однозначно была бы польза!
Спасибо за рекомендацию, почитаю обязательно!
Кстати, я вот может путаюсь в терминологии, но как я понимаю, VSTO — это как раз-таки инфраструктура для создания надстроек под .NET + боекомплект PIA для взаимодействия с COM-компонентами офиса. В смысле, что надстройка не создается целиком как COM-компонент, но от взаимодействия с COM мы все равно никуда не уходим?
На самом деле я сам был удивлен. Если посмотреть доку на MSDN, там есть подозрительные свойства Context, Parent и Tag, но лично у меня во время выполнения они все время были равны null.
С другой стороны, это может быть пинком в сторону неких Best Practices, поскольку у меня в результате получились что-то вроде MVP, что само по себе неплохо.
Вот объяснение, предложенное вами во втором абзаце, на мой взгляд выглядит достаточно разумно и многое объясняет =)
В любом случае, спасибо за развернутый ответ =)
P.S. Вот сейчас специально глянул и не нашел ни одной вакансии «разработчик D» в Москве — поправьте меня, если это не так
И еще, учитывая, что разговор про детей (школьников?) — есть смутное ощущение, что человеку, который возможно никогда в жизни не станет профессиональным программистом, важнее получить основы императивного мышления, чем представление о доминирующей парадигме в современной коммерческой разработке ПО.
Вот это, кстати, отличная мысль! Не думаете попробовать претворить ее в жизнь, раз уж осели на кафедре в качестве аспиранта?
З.Ы. Помню сам на первом курсе очень неплохо прокачался, пытаясь написать программу, которая бы интегрировала произвольную функцию, вводимую с клавиатуры =)
Нет, вручную, т.к. там машин, на которых это добро надо было развернуть, было совсем немного.
Кстати, я вот может путаюсь в терминологии, но как я понимаю, VSTO — это как раз-таки инфраструктура для создания надстроек под .NET + боекомплект PIA для взаимодействия с COM-компонентами офиса. В смысле, что надстройка не создается целиком как COM-компонент, но от взаимодействия с COM мы все равно никуда не уходим?
С другой стороны, это может быть пинком в сторону неких Best Practices, поскольку у меня в результате получились что-то вроде MVP, что само по себе неплохо.