Термин "Философия программирования" встречал только в русских переводах к западным изданиям. Например "Thinking in Java" как раз перевели как "Философия Java".
Имеет смысл говорить не о философиях языков программирования а о разных парадигмах программирования. Одни языки тяготеют к одним парадигмам, другие к другим. Многие языки являются мультипарадигменными. Парадигма определяет то, каким образом выражаются абстракции и действия над ними в коде.
Вообще, классификаций тут много. Например, можно разделить так - императивное / функциональное / логическое / ...
В императивном программировании программа - это последовательность инструкций, которые выполняются по порядку и могут читать и записывать данные из памяти, меняя их состояние.
В функциональном программировании программа - это комбинация вызова функций в математическом понимании. В отличие от императивного подхода, тут нет состояния, кроме результата вычисления функции.
Внутри императивного подхода можно выделить процедурное и объектно ориентированное программирование.
В процедурном программа выглядит как последовательность вызова процедур, которые манипулируют данными, хранящимися в структурах.
В ООП-подходе появляется сущность класса, который хранит состояние внутри себя и определяет операции (методы), которые позволяют получать доступ к этому состоянию и менять его. Программа в ООП-стиле - это совокупность вызовов методов классов.
Нужно понимать, что никто, например, не мешает писать на C++ хоть в процедурном, хоть в ООП, хоть в функциональном стиле.
Я упомянул лишь то, что сам часто встречаю на практике, не претендую на полноту ответа. За более подробной информацией рекомендую обратиться в википедию
Опять необоснованные камни в огород js.