Така като те чета, май мислиш че основното в програмирането е да спазваш дисциплина, да знаеш какво се случва под кода ти и да го контролираш напълно. Видял си, че при скрипт езиците тези неща нямат голямо значение, и сега това те притеснява
Според мен дисциплината от този вид, както и да ти се налага да мислиш на едно ниво под кода който пишеш, са странични ефекти от несъвършените средства (вкл. езици) за програмиране. Налага се да го правиш, но колкото по-малко ти се налага, толкова по-добре. И основните умения на един програмист са по-скоро да имаш някакво алгоритмично мислене (т.е. да можеш да формулираш последователност от действия за решаване на проблем) и да изразяваш абстракции чрез средствата на езика.
Ако се замислиш, на какъвто и език да пишеш разчиташ страшно много на такива абстракции. Дори да пишеш на асемблер, не знаеш как са реализирани инструкциите на процесора (и това е различно при Интел и АМД например). Ако си мислиш че познаваш TCP/IP стека, вероятно се лъжеш: отново разчиташ на абстракции като това че TCP надеждно ще ти достави данните, или ще получиш грешка; без да се интересуваш от рутирането на пакетите например.
Скрипт езиците обикновено имат типове данни, те просто се проверяват по време на изпълнение, с някакъв набор от правила за неявно преобразуване. Ако тези правила са твърде много и твърде inconsistent, както е при PHP, това е проблем, да. Най-доброто за мен е да имаш право да указваш типа, без да си задължен, и езика да има механизъм за type inference...
П.П: Каквото и да си мислиш че е предикатен език, Лисп не е такъв.
|