я вот не могу представить как на python что-то большое писать... мне сложно оперировать модулями и прочими вещами. Интерфейсами изолировать систему, разделять ее - да без проблем. А с python если делать так же выходит сильно больше кода (если делать так как я считаю правильным и логичным). Лично я python использую исключительно для небольших вещей. Особенно люблю применять его в ресерчах по алгоритмам связанным с DSP.
dimonchik2013, shmitok: а питон... питон нежный, не поймите меня не правильно, его посмотреть да потыкать стоит в любом случае. Да и вообще покодить на еще одном языке программирования, желательно с другой идеологией, полезно для развития.
dimonchik2013: руби более востребован как раз таки из-за фишки с написанием тестов, это сродни религии. Тесты снижают риски так что для стартапчиков и прочего это важно. Другое дело что другия языки, в том числе и php, потихоньку подтягиваются. Хотя PHP еще далеко до этого уровня, но количество адекватных разработчиков растет что не может не радовать.
shmitok: лучшее решение - все же подтянуть английский. Хорошая новость в том что это более чем возможно совместить вместе с изучением программирования. И да, большая часть знаний не привязана к языку программирования. так что в принципе было бы неплохо либо взять сначала язык с хорошей культурой разработки и потом уже плясать по ситуации.
Николай: пререндринг на сервере в основном не на SEO расчитан (для ангуляра можно просто подсовывать статику из phantomjs). Тут больше уменьшение времени ожидания для пользователя.
howehohit: а еще проще вариант - nginx, гугл выпустил модуль для nginx-а который делает это все на уровне реверс-прокси, то есть вообще ничего не надо делать.
lega: я прекрасно знаю что такое фабрика и что такое Dependency injection container (я как бы еще на php пишу и у нас это тип в любом уважающем себе фреймворке есть).
То что вы называете не нужной оберткой я называю регистрацией сервисов в контейнере. И там все с этим хорошо.
lega: ангуляр тут не причем и никакие "обертки" он не навязывает. "сервис" обертка это не обертка, это вызов конструктора, когда все зависимости передаются явно внутрь. Но поскольку JS чуть более чем убог, и только с ES2015 можно делать удобно объекты (либо со штуками типа klass.js), то люди юзали как могли что могли. Ну и да, если вам надо возвращать не объект а функцию - то фабрика - норма вариант. Если вам надо иметь возможность конфигурить фабрику - то провайдер. Но в 99% случаев хваает сервиса.
Так что все хорошо у ангуляра, но да, легко можно выстрелить себе в ногу.
Арам Арамян: точнее не так, если у нас бизнес логика отделена от фреймворка, и UI поделен на компоненты, нет прямой работы с DOM - то проблема не настолько серьезная как вам возможно кажется.
Арам Арамян: ну как бы у меня 2-х летний опыт с 1.x и чуть чуть с 2.0 40-ые альфы, и могу сказать, что если у нас логика приложения написана нормально и структура приложения адекватна - все не так уж плохо. Но конечно можно легко сделать непереносимую апу.
DarthJS: у меня у одного модуля есть add.html и у другого есть add.html, и в итоге мне надо вводить нэймспейсы. С require я просто не парюсь + у меня появляются дополнительные штуки. Например так как я использую jade у меня реквайрится таки не html строка а JS функция. так что в моем случае все вообще православно. И в эту JS функцию я могу передать атрибуты директивы, и в зависимости от оных что-то сделать.
С HTML да, тупова-то. С jade и другими препроцессорами которые могут скомпилить разметку в js - весьма удобно.
DarthJS: ну не сказать что я в восторге, но это в принципе логично и способствует модульности проекта. с templateCache слишком много гемороя. А так - удобненько. Только я вместо html jade использую. Ну и потом с ES2015 модулями и system.js можно делать так же и стандарт это не запрещает.