Подписки MSDN на пользователя, а не для каждого устройства поэтому, пока Вы - единственный человек, использующий их, я думаю, что необходимо быть свободны использовать их дома. Я не знаю, что любое дифференцирование применяется к рабочему месту, если, конечно, Ваше рабочее место само не устанавливает такое правило.
От http://msdn.microsoft.com/en-gb/subscriptions/aa948867.aspx :
Подписки MSDN лицензируются для люди , кто может установить предоставленное программное обеспечение без ограничения . Программное обеспечение, предоставленное через Подписки MSDN, лицензируется для дизайна, разработки, теста и демонстрации Ваших приложений.
См. также http://msdn.microsoft.com/en-gb/subscriptions/aa948864.aspx .
Два принципиально разных подхода к типам в языках программирования - это статические типы и динамические типы . Они позволяют использовать самые разные парадигмы программирования, и каждая из них имеет свои преимущества и недостатки.
Я настоятельно рекомендую отличную статью Криса Смита What to Know Before Debating Type Systems для получения дополнительной информации по этому вопросу.
] Из этой статьи:
Система статических типов - это механизм, с помощью которого компилятор проверяет исходный код и присваивает метки (называемые «типами») частям синтаксиса, а затем использует их, чтобы сделать вывод о поведении программы. Система динамических типов - это механизм, с помощью которого компилятор генерирует код для отслеживания типа данных (по совпадению, также называемых «типом»), используемых программой. Использование одного и того же слова «тип» в каждой из этих двух систем, конечно, не совсем случайно; однако лучше всего понимать это как имеющее своего рода слабое историческое значение. Большая путаница возникает из-за попыток найти мировоззрение, в котором «тип» действительно означает одно и то же в обеих системах. Это не так. Лучший способ подойти к проблеме - признать, что:
- В большинстве случаев, статические и динамические типы.
- Тем не менее, статические типы не ограничиваются проблемами, решаемыми динамическими типы.
- Динамические типы не ограничиваются проблемами, которые могут быть решены с помощью статические типы.
- По своей сути, эти две техники совсем не одно и то же.
Я бы начал с рекомендации прочитать сообщение Стива Егге о том, что слабый набор достаточно сильна , а затем его сообщение о динамических языках наносят ответный удар . По крайней мере, с этого вы должны начать!
Давайте проведем несколько сравнений преимуществ / недостатков:
Динамические языки:
Статические языки:
Чтобы немного усложнить ситуацию, учтите, что такие языки, как C #, становятся частично динамическими (в любом случае ощущается) с конструкцией var или такими языками, как Haskell, которые статически типизированы, но кажутся динамичными из-за вывода типа.
Главное, чтобы вы избегали большой избыточности, которая возникает из-за того, что программист «объявляет» то, то и другое. Аналогичное преимущество может быть получено за счет определения типа (например, boo ), но не так дешево и гибко. Как я писал в прошлом ...:
полная проверка типов или вывод требует анализа всего программа, которая может быть вполне непрактично - и останавливает то, что Ван Рой и Хариди в своем шедевре "Концепции, методы и модели Компьютерное программирование ", звоните" полностью открытое программирование ». Цитата из сообщения мой 2004 года выпуска: "" "Я люблю объяснения Ван Роя и Хариди, стр. 104-106 их книги, хотя я могу или может не согласиться с их выводами (которые в основном внутренняя разница крошечная - они указать на Оз и Алису как на совместимые языки без и со статическими набора соответственно), все баллы они делают хорошие. Самое главное, Я считаю, что способ динамической печати допускает настоящую модульность (сложнее с статическая типизация, так как дисциплина типа должен применяться в модуле границ), и "исследовательский вычисления в вычислительной модели, которая объединяет несколько программ парадигмы ».
« Рекомендуется динамическая типизация », они заключить, "когда программы должны быть как как можно более гибкий ". Рекомендую чтение Agile Manifesto понять, почему максимальная гибкость решающий в большинстве реальных прикладное программирование - и поэтому почему в упомянутом реальном мире а не в более академических кругами доктора Ван Роя и доктора Хадиди двигаться, динамический набор обычно предпочтительнее, и не такая уж мелочь поскольку они имеют значение. Тем не менее, они, по крайней мере, показывают больше осведомленность о проблемах, посвящая 3 отличные страницы обсуждения это, за и против, чем почти любой другая книга, которую я видел - большинство книг четко очерчены и сформированы приоритет так или иначе, поэтому обсуждение редко бывает таким сбалансированным как это;).
Динамические языки программирования в основном делают во время выполнения вещи, которые другие языки делают во время компиляции. Это включает расширение программы путем добавления нового кода, расширения объектов и определений или изменения системы типов во время выполнения программы, а не компиляции.
http://en.wikipedia.org/wiki/Dynamic_programming_language
Вот несколько общих примеров
http://en.wikipedia.org/wiki/Category:Dynamic_programming_languages
И чтобы ответить на ваш исходный вопрос:
Они медленные, вам нужно использовать базовый текст редактор, чтобы написать их - никаких подсказок Intellisense или кода, их, как правило, очень сложно писать и поддерживать. НО самый известный (javascript) работает практически в каждом браузере в мире - я думаю, это хорошо. Давай назовем это широкая совместимость ». Я думаю, вы, вероятно, могли бы получить интерпретатор динамического языка для большинства операционных систем, но вы определенно не смогли бы получить компилятор для нединамических языков для большинства операционных систем.