The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Релиз компилятора Free Pascal 2.4.0, opennews (??), 02-Янв-10, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


109. "Релиз компилятора Free Pascal 2.4.0"  +1 +/
Сообщение от anonymous vulgaris (?), 12-Янв-10, 04:24 
>сторону Delphi/Pascal хочу отметить читабельность кода. Имеется ввиду не написание слов
>begin/end (это не читабельность, а тупость),

Для читаемости лучше всего EndDo, EndIf... Впрочем это можно частично исправить (увы только для человека, а не для компилятора)

end; //do
end; //if

Кстати кто считает что begin/end = {} советую глянуть сюда

int array[2][3]={{1,2,3},{4,5,6}};

>процедуры и переменные. Согласен что это не лаконично, но если в
>тексте C++ программы перед каждым объявлением переменной вписать var, то просмотр
>старого или чужого кода ускорится в разы.

Cи создавался во времена когда у мейнфреймов было 64к памяти. Экономили каждый байт. Это одна из причин нечитаемости. Вторая причина это то что Си на 50% не язык высокого уровня. Ну а C++ и Жаба хотя и делались совсем в других условиях, но мозг их творцов уже был изувечен навсегда.

>И чистый Си многие любят больше C++ из-за большей понятности кода ввиду меньшего
>количества сущностей и типов фиксированного размера.

Довольно странное сравнение вообще. Ну а типы у современного Си есть типа таких

Furthermore, an implementation may also define extended integer types such as int24_t or uint_least128_t.

>Хотелось бы конечно увидеть
>возможности C++ и Си в немного более читабельном варианте, то есть не
>доходя до многословности Паскаля - так сказать золотую середину.

Спорю что вы не первый это говорите. Вот только примеров якобы ненужной многословности Паскаля кроме знаменитого begin-end за 50 лет никто привести толком не может. Вы кстати любопытства ради как нибудь замените begin-end на {} и почитайте стало ли понятнее.

Обратные примеры тоже есть, скажем switch многословнее чем case.

И на С можно писать более читаемо. Но ни один сишник никогда не согласится что
например if(i!=0) более читаемо чем if(i)...

Ответить | Правка | Наверх | Cообщить модератору

110. "Релиз компилятора Free Pascal 2.4.0"  +/
Сообщение от Дмитрий Телегинemail (?), 12-Янв-10, 11:14 
>>И чистый Си многие любят больше C++ из-за большей понятности кода ввиду меньшего
>>количества сущностей и типов фиксированного размера.
>Довольно странное сравнение вообще.

Фиксированный размер типов упомянут в связи с тем что часто в С++ приходится изобретать свой тип размером с байт, 2 байта и т.п. - средства языка дают только относительные типы и только они подсвечиваются... соответственно самодельный тип именуется кому как вздумается и чтобы понять написанный кем-то алгоритм или искать ошибки придётся выяснять что же за типы были использованы, какой размерности... Тогда как в коде Си такие типы узнаются с одного взгляда.

Увеличенное количество сущностей в С++ думаю пояснять особо не надо, но добавлю что имелось ввиду ещё и переопределение операций. В итоге небольшой кусок программы на С++ получается шифровкой и чтобы понять написанное придётся просмотреть не один дополнительный файл, а в Си вы чаще видите сразу известные типы и операции.

Ответить | Правка | Наверх | Cообщить модератору

122. "Релиз компилятора Free Pascal 2.4.0"  +/
Сообщение от anonymous vulgaris (?), 14-Янв-10, 05:53 
>Фиксированный размер типов упомянут в связи с тем что часто в С++
>приходится изобретать свой тип размером с байт, 2 байта и т.п.

С и С++ не имеют встроенных типов размером с байт, 2 байта и т.п. Стандарт определяет только минимальную длину простых типов, а не реальную

The size of the arithmetic types varies across machines. By size, we mean the number of bits used to represent the type. The standard guarantees a minimum size for each of the arithmetic types, but it does not prevent compilers from using larger sizes. Indeed, almost all compilers use a larger size for int than is strictly required.

Поэтому в С99 сделали попытку определить тип фиксированной длины

intN_t An integer type whose width is exactly N bits

но он не обязателен к реализации, поэтому полагаться на его наличие нельзя.

>Увеличенное количество сущностей в С++ думаю пояснять особо не надо, но добавлю
>что имелось ввиду ещё и переопределение операций. В итоге небольшой кусок
>программы на С++ получается шифровкой и чтобы понять написанное придётся просмотреть
>не один дополнительный файл, а в Си вы чаще видите сразу
>известные типы и операции.

Именно переопределение операций в принципе позволяет повысит читаемость программы. Например +/-/* для 3D векторов.

Но как можно сравнивать объектный и необъектный языки?

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру