Как связана с память компьютера, железо с концептом ООП?
Как связана память компьютера с концептом ООП? У меня есть небольшое понимание что обьект это физическое занятие программой памяти. То есть когда мы пишем типа int a = 5; компьютер(или компилятор) выделяет под данную переменную скажем 32 бита информации, либо пишу Human human = Human(); компьютер(компилятор) выделяет в куче память. А вот зачем использовать наследование, полиморфизм, миксины, абстрактные классы, интерфейсы. Ну а если использовать не одинаковы ли они все по сути?
Ответы (1 шт):
Оптимизировать можно разные вещи. Да, низкоуровневое программирование экономит память компьютера (если правильно писать код). Но вы пробовали написать, например, на ассемблере, сложный проект (без "этого вашего ООП" и классов)? Там, где человек на высокоуровневом языке может довольно быстро написать довольно сложный код и этот код будет выполнять поставленную задачу пусть не оптимально, но с приемлемой производительностью (учитывая мощь современных компьютеров), сколько вам может понадобиться времени, чтобы написать такой же по функционалу код на экономичном ассемблере? Возможно, что когда вы этот код наконец-то напишете, он будет либо никому уже не нужен, либо компьютеры к тому времени будут такие мощные, что ну да - это будет забавно, если ваша программа будет умещаться, к примеру, в 16Кб памяти, но реально это будет всем пофик, если у компьютеров к тому моменту будут петабайты памяти. Люди до сих пор пишут прикольные демки на ассемблере, дико эффективно используя память и процессор, только об этом нынче знают лишь небольшое количество людей. Индустрии это совершенно не нужно. Деньги делаются там, где вы можете быстро написать востребованный продукт. Если он будет работать неэффективно, но никто этого не будет замечать, потому что памяти и мощности у современных компьютеров больше чем достаточно, то это отличный продукт, он будет хорошо продаваться, если он покрывает потребности пользователей. И кто быстрее написал такой продукт, тот и молодец, он все деньги и заработает.
В общем, нет никакого смысла оптимизировать то, что не имеет экономического смысла. Труд программистов, к примеру, стоит гораздо дороже, чем гигабайты памяти. А время вообще бесценно. Хороший продукт, не написанный вовремя, как бы прекрасен он не был, никому не нужен и никто его не купит.