Алим Алибаев: все очень зависит от конкретной задачи. Скажем можно обойтись flexbox-ами но тогда придется отказаться от поддержки IE (полифилы как бы есть но всеравно все грустно).
demosthenes.info/blog/844/Easy-Masonry-Layout-With... - вот пример на флексбоксах. Чистый CSS, никакого JS но IE10+. Это самый крутой способ из тех что есть сейчас (как с точки зрения простоты реализации так и с точки зрения скорости отрисовки).
Так же еще зависит от размера изображений. Если они вам не известны - становится сложнее задача. Приходится вводить какие-то рамки для изображений, центрировать их, обрезать и т.д.
larionov_n: Ну на примере того же списка пользователей. У вас есть $scope - это эдакая ViewModel, которая связывает вьюшки и контроллеры. Что бы отрендрить список пользователей нужно всего-лишь задать этот список в $scope (начиная кажется с версии 1,2 рекомендуется использовать Controller As синтаксис, тогда контроллер будет связан со скоупом через собственный контекст, это сильно упрощает в последствии отслеживание что кто вызывает и у кого просит).
<ul>
<li ng-repeat="user in users">{{ user }}</li>
</ul>
То есть за вывод списков и коллекций отвечает директива ng-repeat, она следит за изменениями в коллекции и выводит их при следующем цикле $digest (который и реализует слежку за изменениями объектов). Это один из основных моментов с которыми стоит разобраться - дата биндинг и скоупы. Если вам не страшно - можете залесть внутрь. Так же для понимания как вообще работают директивы и т.д. стоит почитать про сервис $parse и $compile.
larionov_n: по поводу CSS для оформления - курить в сторону БЭМ и модульной верстки.
По поводу ID для поиска - не понял что вы имеете в виду...
По поводу вложенности директив друг в друга - проблем нет никаких. МОжно строить иерархии директив, сложные UI компоненты реюзабельные...
В вашем случае все упрется не в "html атрибуты" а в "потратить недельки 2 на изучение документации". Это тоже нужно учитывать потому что если сразу начать ваять скорее всего по выходу получится неподдерживаемый монстр.
И все же раскройте ваши апасения по поводу "html атрибутов"?
p.s. Еще можно добавить в стэк технологий jade/haml. Я последние пару недель пересилил себя и решил таки попробовать - мне нравится.
kazmiruk: возможно для вас это будет новостью, но среди "не продвинутых" Java разработчиков (коих много) управление памятью сводится к try/catch OutOfMemoryException. Увы вижу такое постоянно.
Ну и да, нужно все же разграничивать php-кодеров и php-разраобтчиков. коих меньше. Говнокодить можно на чем угодно, на PHP просто проще и при этом скорее всего это даже будет работать.
bromzh: у фэйсбуков нет проблем с PHP, вообще никаких. Они его уже даже не используют в чистом виде давно. У ВК так же проблем нет, у них как была процедурная лапша так и осталась. Да и нагрузки на эти сайтики побольше будут чем у других. Вообще ставить в пример сайты из первой десятки по нагрузкам смысла нет вообще. Для таких ресурсов действуют совсем другие правила.
Я знаю что большинство разработчиков в целом, вне зависимости от ЯП не обладают должной квалификацией. Да, этот процент для языков типа C++ чуть ниже, но и там хватает. А если брать интерпритируемые языки (Java, C#, Ruby, Python, PHP, Javascript) - то тут все совсем плохо. Для Java есть свои сегменты где с квалификацией все хорошо, так же как и у c#. Но есть же и другие сегменты, где в силу популярности технологии понаприходило школьников.
То что вы описали должен знать каждый PHP-разработчик так как это основа языка. Работа с типами и прочее это самые базовые вещи. А называть школьника который попробовал сделать себе сайтик PHP-разработчиком у меня язык не поворачивается.
Нужно разграничивать. Есть же C++ разработчики которые не вкурсе как реализуются виртуальные методы их классов, что происходит под копотом у компилятора, не вкурсе зачем нужен кеш процессора, пайплайнинг и прочее. В PHP знать это не обязательно вообще (во всяком случае пока не введут JIT) так как повлиять на эти вещи довольно сложно. Скажем недавно много шума наделал коммит с отключением сборщика мусора в composer, и я то тут то там вижу комментарии аля "збс, попробую у себя на проекте" и вот тут понимаешь что люди не понимают как работает сборщик мусора. Но и половина Java разработчиков тоже не вкурсе как работает у них сборщик мусора и что вообще происходит под копотом у JVM.