В основном я работал с JavaScript, но сейчас работаю с C #. Мне пришло в голову, что при программировании и учете иерархии объектов в обоих случаях я действительно не знаю, как выполняется код.
При написании иерархий «классов» в JavaScript я обнаружил, что программисты Java были шокированы определением этих иерархий, внешних по отношению к определению конструктора. Например:
function SomeConstructor() {}
SomeConstructor.prototype.someMethod = function() {}
var someItem = new SomeConstructor()
someItem.someMethod()
Это сильно отличается от того, как строится традиционный язык ООП (по крайней мере, с моим менее чем 2-летним опытом), например, на C #:
public class SomeClass{
public SomeClass() {}
protected void SomeMethod() {}
}
SomeClass someItem = new SomeClass();
someItem.SomeMethod();
Вопрос: фокусируются ли языковые парадигмы, такие как ООП, на повышении эффективности выполнения кода, вывода разработчика (т. Е. Простоты использования) или на то и другое?