Для когось із вас це може здатися дивним питанням.
Я хобі-програміст Java. Я розробив кілька ігор, програму AI, яка створює музику, іншу програму для малювання тощо. Це вам скаже, що я маю досвід програмування, але не в професійному розвитку бізнес-додатків.
Я бачу багато розмов на цьому сайті про продуктивність. Люди часто обговорюють, який би був найефективніший алгоритм в C # для виконання завдання, або чому Python повільний, а Java швидша тощо.
Я намагаюся зрозуміти: чому це має значення?
Є конкретні області обчислень, де я розумію, чому важлива продуктивність: ігри, де десятки тисяч обчислень відбуваються щосекунди в циклі постійного оновлення, або системи низького рівня, на які покладаються інші програми, такі як ОС та Віртуальний комп'ютер тощо.
Але для звичайних, типових бізнес-додатків високого рівня, чому важлива ефективність?
Я можу зрозуміти, чому це мало значення десятиліттями тому. Комп'ютери були набагато повільнішими і мали набагато менше пам’яті, тому вам довелося ретельно продумати ці речі.
Але сьогодні у нас стільки пам’яті запам'ятовується, а комп’ютери так швидко: чи це насправді важливо, якщо певний алгоритм Java є O (n ^ 2)? Чи насправді це змінить для кінцевих користувачів цього типового ділового додатка?
Коли ти тиснуш кнопку GUI у типовому бізнес-додатку і за лаштунками запускає алгоритм O (n ^ 2), в ці дні сучасних обчислень - ти насправді відчуваєш свою неефективність?
Моє запитання розділено на два:
- На практиці, чи сьогодні важлива робота в типовій звичайній бізнес-програмі?
- Якщо це так, будь ласка, наведіть мені приклади реального світу місць у такій програмі, де важлива ефективність та оптимізація.