Протягом багатьох років я розглядав питання про те, що я вважаю "низьким рівнем" мов. Для мене це означає C і збірку. Однак у мене ще не було часу на це, і це ніколи не було необхідним.
Тепер, оскільки я не бачу ніякої необхідності, я відчуваю, що мені слід або просто запланувати якийсь момент часу, коли я буду вивчати тему, або відкинути план назавжди.
Моя позиція
Останні 4 роки я зосереджувався на "веб-технологіях", які можуть змінюватися, і я розробник додатків, який навряд чи зміниться.
У розробці додатків я думаю, що зручність - це найважливіше. Ви пишете програми, які "споживають" користувачі. Чим більше цих прикладних програм, тим більше цінності ви виробили.
Щоб досягти хорошої зручності використання, я вважаю, що такі речі є життєздатними
- Хороший дизайн : продумані функції, доступні через продуманий інтерфейс користувача.
- Правильність : Найкращий дизайн нічого не вартий, якщо він не виконаний правильно.
- Гнучкість : Додаток A повинен постійно розвиватися, щоб його користувачі не переходили на інший додаток B, який має нові функції, які A міг би реалізувати. Програми, що вирішують ту саму проблему, не повинні відрізнятися за особливостями, а за філософією.
- Продуктивність : Продуктивність сприяє гарному користуванню. Додаток завжди ідеально реагує і виконує свої завдання досить швидко (виходячи з їх частоти). Значення оптимізації продуктивності за межами моменту, коли це помітно користувачеві, сумнівне.
Я думаю, що програмування низького рівня не допоможуть мені в цьому, крім продуктивності. Але писати цілий додаток мовою низького рівня задля продуктивності - для мене передчасна оптимізація.
Моє запитання
Що може навчити мене програмування низького рівня, яких інших мов не навчив би мене? Чи щось мені не вистачає, чи це просто навик, який дуже мало корисний для розробки додатків? Будь ласка, розумійте, що я не ставлю під сумнів значення C і збірки. Просто в моєму повсякденному житті я дуже щасливий, що всі тонкощі цього світу відбираються та управляються для мене (в основному шарами, написаними на C / C ++ та самих зборах). Я просто не бачу жодних понять, які могли б бути для мене новими, лише деталі, які мені доведеться набити головою. То що в мені це?
Мій висновок
Дякую всім за відповіді. Треба сказати, мене ніхто не здивував, але принаймні зараз я впевнений, що відмовлюся від цієї сфери інтересів до тих пір, поки не виникне потреба в цьому.
Наскільки я розумію, написання цього монтажу для процесорів, оскільки вони використовуються в сучасних процесорах, не тільки непросто складне, але й ризикує призвести до більш низької продуктивності роботи, ніж аналог C. Оптимізація вручну майже неможлива через OOE, тоді як ви не отримуєте всі види оптимізацій, які компілятор може робити автоматично. Також код є або портативним, оскільки він використовує невеликий підмножина доступних команд, або оптимізований, але тоді він, ймовірно, працює лише в одній архітектурі.
Написання С вже майже не є таким необхідним, як це було раніше. Якби я писав заявку на C, я би так само використовував перевірені та встановлені бібліотеки та рамки, що дозволило б мені реалізувати підпрограми копіювання рядків, алгоритми сортування та інший матеріал, що служить вправ в університеті. Мій власний код виконуватиметься швидше ціною безпеки типу. Я ні прагну переосмислити колесо в ході нормальної розробки додатків, ні намагаюся налагодити, переглядаючи основні смітники: D
В даний час я експериментую з мовами та перекладачами, тому, якщо я хотів би щось опублікувати, я вважаю, що Поставимо робочу концепцію на C, хоча C ++ може так само добре зробити трюк.
Ще раз дякую всім за відповіді та вашу проникливість.