Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Delphi - приемущества и недостатки, принимаются различные высказывания 
:(
    Опции темы
Snowy
Дата 13.10.2006, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 9
Всего: 484



Цитата(MAKCim @  13.10.2006,  16:47 Найти цитируемый пост)
У каждого свое мнение
Именно. Поэтому люди и выбирают разные языки.

Цитата(MAKCim @  13.10.2006,  16:47 Найти цитируемый пост)
Ну и зря (что не перешли)
Ни капельки не жалею. Это и не было моей целью. Я всего лишь хотел освоить ещё один язык.
Зато теперь это помогает мне свободно читать MSDN smile

Цитата(MAKCim @  13.10.2006,  16:47 Найти цитируемый пост)
А можете в двух словах назвать причину аллергии?
Мне просто очень не удобно на нём писать.
Я не собираюсь спорить на тему, что хуже, а что лучше.
Я попробовал. Написал парочку программ для самотеста. Постоянное ощущение дискомфорта отбило желание продолжать.
Я писал на разных басиках, паскале, асме. Даже яву осваивал. А вот плюсы ну никак не пошли.
На яве я тоже написал пару самотестовых приложений. И мне даже вполне понравилось.
А вот от плюсов стойкий дискомфорт. Явно не мой язык.

Цитата(MAKCim @  13.10.2006,  16:47 Найти цитируемый пост)
не такой гибкий Pascal/ObjectPascal (по сравнению с тем же С/С++), не выразительный
Гм. Примеры пожалуйста...

Добавлено @ 17:03 
Цитата(MAKCim @  13.10.2006,  16:55 Найти цитируемый пост)
Почему эти возможности вначале скрывают от населения?
Их не скрывают. Почему детей сначала учат печатным буквам, а потом письменным? И почему из некоторых потом всё равно получаются "врачи"?

Цитата(MAKCim @  13.10.2006,  16:55 Найти цитируемый пост)
И стиль написания тоже
Скорее не вырабатывает, а перенимается от коллег.

Добавлено @ 17:06 
Цитата(Snowy @  13.10.2006,  17:01 Найти цитируемый пост)
Почему детей сначала учат печатным буквам
Кстати. Я пишу печатными smile Письменными неудобно, неразборчиво и медленнее smile
PM MAIL   Вверх
MAKCim
Дата 13.10.2006, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



Цитата

Гм. Примеры пожалуйста...

Все складывается, как дом, из маленьких кирпичиков
В качестве примеров банальные
Код

int a, b, c;
a++;
a+=1
++b;
b += ++a;
a = b = c;
while (*a++ = *b++);
char (*(*x[3])())[5];

Код

struct A
{
    struct A* next;
    struct A* prev;
};

Код

for (int i=0; i < 10; ++i) {}

Код

void F(int a, ...)
{
}

аналоги на Pascal?


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Snowy
Дата 13.10.2006, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 9
Всего: 484



Более короткая запись - не означает гибкость smile
Это всего лишь повышает скорость набора. И то... Это зависит от IDE.
Зато потом куда приятней читать нормальный код, а не сокращённый.
Ч-ть с-й текст иног. быв. few затр-но... Но можно, если приноровиться.
Но я предпочитаю нормальную полноценную запись - её удобней читать.
А набивать... Набивание кода занимает так незначительно времени, что сокращать его нет смысла.
А тем более за счёт увеличения времени последующего разбора.
Это один из спорных моментов между этими языками. И в нём я определённо придерживають точки зрения профессора Вирта smile

Добавлено @ 17:34 
Цитата(MAKCim @  13.10.2006,  17:25 Найти цитируемый пост)
аналоги на Pascal?
В сокращённом виде только часть.
Остальное, где объединение нескольких операций в одну - ИМХО кака.
Логика должна быть чётко видна, а не разбирать, что у тебя делается сначала, а что потом. Ой, не угадал, оказалось, что это сначала.
Подобные вещи ведут к ошибкам.
Поэтому в дельфи такие вещи не приветствуются. Строгая запись исключает подобные ошибки.
А желание уложиться в несколько символов, вместо 2-3 строк ну никак неоправдано.

Добавлено @ 17:42 
Код

var a,b,c: integer;
begin
  inc(a);
  inc(a,1);
  b := b + a; inc(a);
  b := c; a := b;
  // дальше боюсь ошибиться с переводом
end;

Код

type 
  PA = ^TA;
  TA = record
    next, prev: PA;
  end;

Код

i := 0; while i < 10 do inc(i);


Это не совсем понял:
Код

procedure F(a: integer, ...)
begin
end;

PM MAIL   Вверх
MAKCim
Дата 13.10.2006, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



Цитата

Более короткая запись - не означает гибкость

Еще раз повторяю все строится из маленьких кирпичиков
Это тоже можно отнести к гибкости языка
Цитата

Но я предпочитаю нормальную полноценную запись - её удобней читать.

Вы считаете что
Код

++a;
int b = array[index++];
...

неполноценные записи?
Цитата

А набивать... Набивание кода занимает так незначительно времени, что сокращать его нет смысла.

Да дело здесь не в сокращении. Это всего лишь отдельные примеры
Может поначалу въехать во все "красОты" языка будет сложно, но потом это себя оправдает
Мне кажется нелогичным писать
Код

inc(a);

вместо
Код

++a;

слова procedure, function, begin, end, ...
это дико надоедает и никак не препятствует появлению ошибок
Цитата

Логика должна быть чётко видна, а не разбирать, что у тебя делается сначала, а что потом. Ой, не угадал, оказалось, что это сначала.

Гадать не надо, надо знать, в этом весь прикол

Добавлено @ 17:57 
Snowy
вы считаете что это
Код

type 
  PA = ^TA;
  TA = record
    next, prev: PA;
  end;

более интуитивно понятнее чем
Код

struct A
{
    struct A* next;
    struct A* prev;
};

?
Цитата

Код

b := b + a; inc(a);


неправильно
скорее
Код

inc(a); b:=b + a;

Цитата

// дальше боюсь ошибиться с переводом

Цитата

Код

char (*(*x[3])())[5];


массив [3] из указателей на функцию, возвращающую указатель на массив [5] из char

Это сообщение отредактировал(а) MAKCim - 13.10.2006, 17:58


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
skyboy
Дата 13.10.2006, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 1
Всего: 260



раз уж ушли в обсуждение синтаксиса, то скажи, MAKCim, какой результат выполнения след. программы:
Код

int c,b,a= 5;
b= ++a++ + a++;
c= ++a++ * 2;

Что будет в с, а что будет в b?
Вообще, разве в стандарте есть четкое определение  порядка вычислений префиксных и постфиксных операндов? А если у тебя процедура inc, то её работа(логика работы) уж точно не зависит от реализации в конкретном компиляторе.

Добавлено @ 18:22 
я сейчас кодю на  JavaScript и по полной использую такие конструкции. Но считать их более красивыми/удобными только оттого, что они короче вызова функций/процедур я бы не стал..

Добавлено @ 18:25 
и ещё: надо бы отделить зерна от плевел, и конкретную реализацию компилятором от потенциала языка. например, если невозможно написать по подобию с
Код

struct A
{
    struct A* next;
    struct A* prev;
};

такое
Код

  TA = record
    next, prev: ^TA;
  end;
 то это ещё не значит, что язык не позволяет(хотя, все может быть - спецификации языка в ркуах не держал ещё), вполне возможно что это всего лишь ограничение компилятора.
PM MAIL   Вверх
Snowy
Дата 13.10.2006, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 9
Всего: 484



Цитата(MAKCim @  13.10.2006,  17:51 Найти цитируемый пост)
Мне кажется нелогичным писать inc(a) вместо ++a
Ну тогда можно спорить и с асмом - там тоже inc smile

Цитата(MAKCim @  13.10.2006,  17:51 Найти цитируемый пост)
слова procedure, function, begin, end, ...это дико надоедает и никак не препятствует появлению ошибок
кому надоедает? Всё четко видно и понятно.
А Code completion ускоряет процесс набора. Пишу pro[Enter] - готово procedure. Пишу beg[Ctrl+J] - готово begin end;

Цитата(MAKCim @  13.10.2006,  17:51 Найти цитируемый пост)
вы считаете что это
type
   PA = ^TA;
  TA = record
    next, prev: PA;
  end;
более интуитивно понятнее чем
struct A
{
    struct A* next;
    struct A* prev;
}
?
Нет, но ничем не хуже.

Цитата(MAKCim @  13.10.2006,  17:51 Найти цитируемый пост)
b := b + a; inc(a);
неправильно скореекод
inc(a); b:=b + a;
А я ждал этого комментария - этим я хотел показать типичный пример ошибки. Про что я и писал smile

Цитата(MAKCim @  13.10.2006,  17:51 Найти цитируемый пост)
char (*(*x[3])())[5];
массив [3] из указателей на функцию, возвращающую указатель на массив [5] из char
Это мало того, что не понятно, но также нелогично и опасно!
Вот такие вещи - это не гибкость - это минус языку.
Код должен быть строго читаем, понятен и безопасен.
Это разумеется с точки зрения Delphi. У плюсов другой взгляд на это, который я очень не разделяю.
Именно строгость и чёткость языковых конструкций мне очень нравится в дельфи.
Люблю, когда код строгий, чёткий, логичный и читается только с одним толкованием.
Если написано так, то никаких условностей - так и есть.
В коде должен быть порядок, а не бардак, в котором конечно можно всё найти, но только хозяину.
PM MAIL   Вверх
Void
Дата 13.10.2006, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 11
Всего: 173



Цитата(skyboy @  13.10.2006,  20:20 Найти цитируемый пост)
Вообще, разве в стандарте есть четкое определение  порядка вычислений префиксных и постфиксных операндов?

Есть. Есть абсолютно четкое указание на то, что приведенный выше код имеет неопределенное поведение. Реальная сложность и грабли C++ отнюдь не в таких «страшилках» с кучкой операторов.

А вообще, тема бесперспективная абсолютно.


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
nerezus
Дата 13.10.2006, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

А можете в двух словах назвать причину аллергии?
 Работа с указателями через жопу. это ИМХО.
Нормальный указатель - это тот, который не замечаешь.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
MAKCim
Дата 13.10.2006, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



Цитата

раз уж ушли в обсуждение синтаксиса, то скажи, MAKCim, какой результат выполнения след. программы:

Такой код не скомпилируется
А вообще вещи подобные
Код

a=++a + a;

есть undefined behaviour
Цитата

Вообще, разве в стандарте есть четкое определение  порядка вычислений префиксных и постфиксных операндов? А если у тебя процедура inc, то её работа(логика работы) уж точно не зависит от реализации в конкретном компиляторе.

++<variable> - возвращается <variable> + 1
<variable>++ - возвращается <variable>
Цитата

Ну тогда можно спорить и с асмом - там тоже inc

в asm-е по-другому нельзя - там команды
Цитата

кому надоедает?

Мне и еще много кому
Цитата

А я ждал этого комментария - этим я хотел показать типичный пример ошибки. Про что я и писал 

Все зависит от знания языка
Цитата

Это мало того, что не понятно, но также нелогично и опасно!
Вот такие вещи - это не гибкость - это минус языку.

Про непонятно согласен, это был пример того, чего в Pascal-е наверное не напишешь
Про минус языку - не согласен категорически (без комментариев)


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Snowy
Дата 13.10.2006, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 9
Всего: 484



Народ, мы тут не обсуждаем, какие плюсы плохие.
И даже не сравнение с плюсами.
Смысл в том, что дельфи - мощная полнофункциональная система.
И вряд ли кто-либо докажет мне обратное.
PM MAIL   Вверх
skyboy
Дата 13.10.2006, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 1
Всего: 260



Цитата(Void @  13.10.2006,  17:54 Найти цитируемый пост)
Есть абсолютно четкое указание на то, что приведенный выше код имеет неопределенное поведение. 

 smile (смех из-под стола)
Цитата(Void @  13.10.2006,  17:54 Найти цитируемый пост)
Реальная сложность и грабли C++ отнюдь не в таких «страшилках» с кучкой операторов.

Я и не называл это сложностью. Просто когда прозвучало, что такое решение "круто и удобно" я(со своей колокольни, естественно) показал(ну, попытался smile), в чем это "не круто" и "не удобно". Сам против С ничего не имею, хотя имею дело скорее с его "потомками". Да и тема этой holy-war не "Опозорим С++", а "Delphi - примущества и недостатки" smile

PM MAIL   Вверх
Void
Дата 13.10.2006, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 11
Всего: 173



Цитата(skyboy @  13.10.2006,  21:34 Найти цитируемый пост)
(смех из-под стола)

Что ж тут смешного? Стандарт говорит: «Не лезь, башка снег попадёт, совсем мёртвый будешь». Всяко лучше, чем молчаливо подразумевать непонятно что.


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
Alexeis
Дата 13.10.2006, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



Void, Хорошо когда стандарт говорит вот это точно можно, а это точно нельзя ИМХО.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Snowy
Дата 13.10.2006, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 9
Всего: 484



Это к тому, что строгость языковых конструкций не позволяет таких вольностей, а требует чёткой интерпретации.
И это я не считаю минусом, а наоборот - плюсом.
Способность языка писать неопределённые конструкции далеко не плюс.
Код должен быть понятным, однозначным и легкочитаемым.
Так что это явно не минус дельфям. Но и не минус плюсам, которые это позволяют - никто не заставляет писать таких конструкций.
Ковыряться в таком коде - явно занятие не из приятных.
PM MAIL   Вверх
nerezus
Дата 13.10.2006, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Самый реальный минус в делфи для меня - синтаксис =(


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.0845 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.