Языки высокого уровня были задуманы, чтобы облегчить программирование по сравнению с ассемблером и машинным кодом. В этом они достигли достаточно больших успехов. Но для их использования существовало еще одно ограничение – скорость компиляции кода. Поэтому в языках высокого уровня остались элементы, которые нужны только компилятору, но не нужны человеку.
Однако сейчас производительность обработки текста программы (компиляции) уже не имеет решающего значения, а каждый введенный программистом символ, наоборот, стоит все дороже и дороже. Поэтому некоторые элементы оформления кода можно считать морально устаревшими.
Объявление библиотек и структуры объектов
В целях повторного использования кода программа делится на модули или классы.
Чтобы собрать эти объекты вместе, нужно указать компилятору, где их искать.
Самый логичный с точки зрения программиста вариант – указать, где расположена библиотека ядра, несколько личных библиотек, причем все это указывать в проекте.
В самой программе достаточно указать только имя класса. Библиотеки должны быть проиндексированы, чтобы по имени класса определить, есть ли он в библиотеке и должна ли подключаться библиотека. В любом случае имя класса уникально.
Однако что мы видим на практике?
В Паскале, в Си++ и в Java программист должен явно указывать, какие библиотеки использовать (uses, include и import соответственно).
Особенно страшно дело выглядит в Си++ - программист должен указывать еще и заголовочные файлы (с расширением H), следить, чтобы заголовочные файлы не включались дважды. Одно это отталкивает от Си++, несмотря на все преимущества ООП.
В Java можно включать библиотеки верхнего уровня, при этом подбиблиотеки включаются автоматически – по сути, подключаются лишние библиотеки ради упрощения написания кода. Подход хороший, но не идеальный. Идеально было бы определять библиотеки автоматом, по составу классов.
Конечно, использование IDE немного нивелирует эти проблемы, но IDE все равно не решает всех проблем, в любом случае человек видит этот лишний, по сути, мусорный код, и тратит на него свое внимание. Программа в любом случае может лучше человека определить, какие модули нужны.
Поэтому нужно запретить явное указание библиотек человеком для улучшения читаемости и скорости ввода программ.
Объявление интерфейса вместе с реализацией
Если объявлять интерфейс класса отдельно от реализации, как это принято в Си++ и Паскаль, код программы увеличивается и по сути, дублируется. Ничто не мешает компилятору собрать объявление из реализации класса. В Java это поняли и поэтому код стал лаконичнее и прозрачнее. В Си и Паскале при изменении интерфейса приходится менять еще и реализацию, т.е. делать никому не нужную, излишнюю работу.
Объявление переменных
В этом плане отстает только Паскаль. Только в угоду компилятору локальные переменные можно объявлять только в начале процедуры, хотя ничто не мешает определить, сколько локальных переменных используется в процедуре и отвести под них необходимое место.
Однако сейчас производительность обработки текста программы (компиляции) уже не имеет решающего значения, а каждый введенный программистом символ, наоборот, стоит все дороже и дороже. Поэтому некоторые элементы оформления кода можно считать морально устаревшими.
Объявление библиотек и структуры объектов
В целях повторного использования кода программа делится на модули или классы.
Чтобы собрать эти объекты вместе, нужно указать компилятору, где их искать.
Самый логичный с точки зрения программиста вариант – указать, где расположена библиотека ядра, несколько личных библиотек, причем все это указывать в проекте.
В самой программе достаточно указать только имя класса. Библиотеки должны быть проиндексированы, чтобы по имени класса определить, есть ли он в библиотеке и должна ли подключаться библиотека. В любом случае имя класса уникально.
Однако что мы видим на практике?
В Паскале, в Си++ и в Java программист должен явно указывать, какие библиотеки использовать (uses, include и import соответственно).
Особенно страшно дело выглядит в Си++ - программист должен указывать еще и заголовочные файлы (с расширением H), следить, чтобы заголовочные файлы не включались дважды. Одно это отталкивает от Си++, несмотря на все преимущества ООП.
В Java можно включать библиотеки верхнего уровня, при этом подбиблиотеки включаются автоматически – по сути, подключаются лишние библиотеки ради упрощения написания кода. Подход хороший, но не идеальный. Идеально было бы определять библиотеки автоматом, по составу классов.
Конечно, использование IDE немного нивелирует эти проблемы, но IDE все равно не решает всех проблем, в любом случае человек видит этот лишний, по сути, мусорный код, и тратит на него свое внимание. Программа в любом случае может лучше человека определить, какие модули нужны.
Поэтому нужно запретить явное указание библиотек человеком для улучшения читаемости и скорости ввода программ.
Объявление интерфейса вместе с реализацией
Если объявлять интерфейс класса отдельно от реализации, как это принято в Си++ и Паскаль, код программы увеличивается и по сути, дублируется. Ничто не мешает компилятору собрать объявление из реализации класса. В Java это поняли и поэтому код стал лаконичнее и прозрачнее. В Си и Паскале при изменении интерфейса приходится менять еще и реализацию, т.е. делать никому не нужную, излишнюю работу.
Объявление переменных
В этом плане отстает только Паскаль. Только в угоду компилятору локальные переменные можно объявлять только в начале процедуры, хотя ничто не мешает определить, сколько локальных переменных используется в процедуре и отвести под них необходимое место.
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(100) Ну почему же молчал? Пост (12) в той ветке.
Раньше высказаться не мог, т.к. был забанен.
А глумлением над русским языком я называю "стихи" и "песни" Александра Венгера.
Мама и школа меня учили, что стихами и песнями называются несколько другие лингвистические конструкции.
Раньше высказаться не мог, т.к. был забанен.
А глумлением над русским языком я называю "стихи" и "песни" Александра Венгера.
Мама и школа меня учили, что стихами и песнями называются несколько другие лингвистические конструкции.
Это решение
(110) Т.е. я так понимаю, что лежишь на диване и фильмы ты смотришь сугубо профессионально? Или может мусор выносишь тоже профессионально, а вот когда на шашлыки едешь, то там все разговоры тоже профессиональные? Бедняга:-)))
З.Ы. Ковчег построил любитель, а Титаник - профессионалы:-))))
З.Ы. Ковчег построил любитель, а Титаник - профессионалы:-))))
Это решение
(110) Вип, расслабся чуток:-))) Смех продлевает жизнь, а смех над собой делает тебя еще и мудрее:-)))
Бедный, бедный дядя Вип,
Жизнь уходит - все сидит.
Все ругает и все ..бииип..,
Только зря он так прилип.
К монитору так прилип,
Профик в нем огнем горит.
Ну не может он иначе,
Бедный, бедный дядя плачет:-)))
Он все шепчет, все не может.
Хочется пожить ведь тоже.
Только профик в нем никак
Не способен на оттяг:-)))
...
Бедный, бедный дядя Вип,
Жизнь уходит - все сидит.
Все ругает и все ..бииип..,
Только зря он так прилип.
К монитору так прилип,
Профик в нем огнем горит.
Ну не может он иначе,
Бедный, бедный дядя плачет:-)))
Он все шепчет, все не может.
Хочется пожить ведь тоже.
Только профик в нем никак
Не способен на оттяг:-)))
...
Это решение
Стихосложение на почве устаревших элементов языков высокого уровня"
Да без проблем, мое пособие по бейсику... :)
Всегда команду помни ту,
Что основная - GO TO!!!
Когда Вас в гости позовут,
Не забывайте про INPUT:
Ты инженер или студент -
Используй оператор END
... и что-то там еще... не помню уж, лет в 26 написал
Это решение
Начинаю разводить ;)
1. 2 Венгер. vip прекрасно играет на гитаре и поет, так что не надо его в одностороннем развитии упрекать. И он тебя почти в два раза страше, так что охолонись
2. 2 vip. Харе просто, он осознает ;)
1. 2 Венгер. vip прекрасно играет на гитаре и поет, так что не надо его в одностороннем развитии упрекать. И он тебя почти в два раза страше, так что охолонись
2. 2 vip. Харе просто, он осознает ;)
Это решение
Внимание! Не забывайте отмечать решение на ваш вопрос, если оно найдено. Это повысит ваш рейтинг на форуме.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот