Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

Delphi - "рулез форева"!   Найти похожие ветки 

 
Дмитрий Белькевич   (2010-02-15 17:48) [80]


> & - это и означает "and".  см например названия компаний
> (Procter & Gamble и тому подобное)


Почему бы уже тогда не & а &&?


> или имеюттся в виду килобайты для хранения сорцов??


Ну - я думаю это имелось в виду.


 
DVM ©   (2010-02-15 17:48) [81]


> jack128_   (15.02.10 17:42) [77]


> или имеюттся в виду килобайты для хранения сорцов??

Имеется в виду процесс создания программы. Она ж должна была где то храниться, компилироваться, редактироваться. Это я где то читал давно, в книге по си какой то.

Вообще, есть много странных вещей, истинная суть которых уже потеряна за древностью лет. Например, почему в Windows Explorer первых версий не было секунд на часах в панели задач. Сейчас это кажется смешным - но из экономии ресурсов.


 
Кто б сомневался ©   (2010-02-15 17:51) [82]


> & - это и означает "and".


Нет ну то что автор языка пытался сократить по максимуму это видно сразу, только вот зачем, если это только усложняет чтение.
Ну ^ это xor - никакой логической связи нет.
Но зачем это надо было делать? Нет не из за размера исходников.
Basic придуман был в 63 году, С в 70. Фортран как здесь уже говорили раньше.


 
Игорь Шевченко ©   (2010-02-15 17:51) [83]

Дмитрий Белькевич   (15.02.10 17:45) [78]


>
> Посему неясно, зачем он вообще может быть полезен


> Под кроссплатформенность есть жава.


Ты наверное не в курсе, что .Net был создан в первую очередь, как альтернатива Java, потому что Java придуман не в MS

DVM ©   (15.02.10 17:22) [72]


> Потому что короче. Наследие си. Когда памяти были считанные
> килобайты было важно.


Совершенно не связано с памятью. Писать меньше - только и всего.
Конструкции получаются охватываемые взглядом и, соответственно, легче понимаемые, если синтаксис в голове держать, а держать его несложно, это вам не APL.


 
Дмитрий Белькевич   (2010-02-15 17:53) [84]


> Вообще, есть много странных вещей, истинная суть которых
> уже потеряна за древностью лет. Например, почему в Windows
> Explorer первых версий не было секунд на часах в панели
> задач. Сейчас это кажется смешным - но из экономии ресурсов.
>


Ну с этим можно согласиться, видел перевод от Гансмокера что ли или еще чей-то блог - вполне логичное объяснение по поводу секунд. Кстати, их до сих пор нет. Но так извращать язык имхо не было никакой критической необходимости. Как уже говорил - Фортран вполне себе и уже давно работал.


 
Кто б сомневался ©   (2010-02-15 17:56) [85]


> Конструкции получаются охватываемые взглядом и, соответственно,
>  легче понимаемые,


Ниче подобного, наоборот усложняется чтение. Об этом тот же Кладов говорил, бывший сишник в своей книге по КОЛ.
Те же { } хуже чем человеческие begin end, попробуй заметь.


 
Дмитрий Белькевич   (2010-02-15 17:56) [86]


> Ты наверное не в курсе, что .Net был создан в первую очередь,
>  как альтернатива Java, потому что Java придуман не в MS


В курсе. Я говорю, что реальной кросс-платформенности нет и, думаю, не будет (из-за политики MS).


 
Кто б сомневался ©   (2010-02-15 17:58) [87]

Знаете есть такой язык BrainFuck - вот это тот самый усложненный путь.
Легче читать Игорь?


+++++ +++++             initialize counter (cell #0) to 10
[                       use loop to set the next four cells to 70/100/30/10
   > +++++ ++              add  7 to cell #1
   > +++++ +++++           add 10 to cell #2
   > +++                   add  3 to cell #3
   > +                     add  1 to cell #4
   <<<< -                  decrement counter (cell #0)
]                  
> ++ .                  print "H"
> + .                   print "e"
+++++ ++ .              print "l"
.                       print "l"
+++ .                   print "o"
>++ .                   print " "
<< +++++ +++++ +++++ .  print "W"
> .                     print "o"
+++ .                   print "r"
----- - .               print "l"
----- --- .             print "d"
> + .                   print "!"
> .                     print "\n"


 
ANB   (2010-02-15 18:00) [88]


> Кто б сомневался ©   (15.02.10 17:56) [85]

Дело вкуса.
1) Мне легче читать и писать на C
2) Как IDE мне делфи нравится намного больше VS (ща сижу и плююсь, т.к. посадили на VS2008 насильно).
3) Так же по опыту знаю, что процент заваленных проектов на C# намного выше, чем на делфи. Собственно, на делфи я ни одного заваленного не видел. А на C# - либо вообще не пошел, либо такое убожество получилось - просто жуть.


 
@!!ex ©   (2010-02-15 18:01) [89]

> [69] Eraser ©   (15.02.10 17:21)
> можно ли вызывать напрямую API хотя бы как это сделано,
> к примеру, в .NET? даже если можно, то теряется основной
> смысл QT, т.к. теряется кроссплатформенность. отсюда вывод,
> для приложений тесно взаимодействующих с ОС и сильно зависящих
> от окружения нет особого смысла и заморачиваться с лишними
> прослойками.

Виджеты QT сами по себе более прямые чем VCL.

Понятно, что если есть приложение на дельфи, то просто так брать и переписывать его на Qt эту бессмысленно.
Но вот ваш ROM Viewer, например, прекрасный кандидат на перевод под Qt, потому что ОС зависимых вещей в нем мало(или совсем нет), в отличии от сервера, а кроссплатформенность для него милое дело.
Кстати, что там с Mobile версией? Не в курсе?


 
Дмитрий Белькевич   (2010-02-15 18:02) [90]


> легче понимаемые, если синтаксис в голове держать


Как по мне - то читаемость (в среднем) у плюсов хуже чем у делфи. Если вылизывать сырцы под читаемость - может быть. Но всем ясно, что этим занимаются далеко не все.

Меня лично в плюсах убивает написание идентификаторов. Вот, например, код "в лоб" переведенный на делфи с плюсов:


Var
 l__INT__Length : Integer;
 l__CHAR__Result,
 l__CHAR__Name  : String;
 l__CHAR__Extension : String[10];
 l__INT__ExtStart,
 l__INT__k       : Integer;

Begin
   l__INT__Length := Length(p__PCHAR__Name);

   l__INT__ExtStart := 0;

   l__INT__k := 0;
   //
   // make the string to be not less then two chars
   //
   While l__INT__Length<2 Do Begin
       p__PCHAR__Name[l__INT__Length] :="0";
       Inc(l__INT__Length);
       p__PCHAR__Name[l__INT__Length]:=Chr(0);
   End;


10 лет расстрела :)

в коде у рихтера:

SetEvent(g__hEvent),
WaitForSingleObject(g_hFvent, INFINITE);

интересный, конечно, язык. количество подчёркиваний решает :)


 
@!!ex ©   (2010-02-15 18:03) [91]

> интересный, конечно, язык. количество подчёркиваний решает
> :)

В данном случае это пробелмы венгерской нотации, на которую много грязи льется постоянно, а не языка.


 
Дмитрий Белькевич   (2010-02-15 18:07) [92]


> В данном случае это пробелмы венгерской нотации, на которую
> много грязи льется постоянно, а не языка.


Я не говорю, что именно язык плох. Я говорю, что привычки писать на нём - плохие. Я понимаю, что так уж исторически сложилось и могло сложиться по-другому. Но - так как уже сложилось, то можно это и к минусам языка отнести. Мы же рассматриваем не сферический язык в вакууме, а реальное его применение. В Делфи же не сложилось почему-то. Хотя тоже могло.


 
Eraser ©   (2010-02-15 18:14) [93]

> [89] @!!ex ©   (15.02.10 18:01)


> Кстати, что там с Mobile версией? Не в курсе?

ответил по почте.

> Но вот ваш ROM Viewer, например, прекрасный кандидат на
> перевод под Qt

не спорю. возможно. но кроссплатформенная версия будет на джаве, по разным причинам.

> [90] Дмитрий Белькевич   (15.02.10 18:02)


> Как по мне - то читаемость (в среднем) у плюсов хуже чем
> у делфи.

это даже в MS осознали, см. C# - там все куда более наглядно и удобно.


 
Дмитрий Белькевич   (2010-02-15 18:16) [94]


> Ты наверное не в курсе, что .Net был создан в первую очередь,
>  как альтернатива Java, потому что Java придуман не в MS


Я представляю, в общих чертах - что и почему происходит. Я говорю с позиции разработчика, выбирающего платформу, а не с позиции MS.


 
@!!ex ©   (2010-02-15 18:17) [95]

> по разным причинам.

По каким, если не секрет?


 
Дмитрий Белькевич   (2010-02-15 18:17) [96]


> выбирающего платформу


Читать - выбирающего среду.


 
Дмитрий Белькевич   (2010-02-15 18:19) [97]


> это даже в MS осознали, см. C# - там все куда более наглядно
> и удобно.


Я даже догадываюсь, кто помог осознать :)


 
Кто б сомневался ©   (2010-02-15 18:19) [98]


> > Как по мне - то читаемость (в среднем) у плюсов хуже чем
>
> > у делфи.
>
> это даже в MS осознали, см. C# - там все куда более наглядно
> и удобно.


По сравнению с чем? С Delphi? В плане чего, синтаксиса? Если в плане синтаксиса, значит это маркетинговый отдел постарался.


 
Игорь Шевченко ©   (2010-02-15 18:20) [99]

Дмитрий Белькевич   (15.02.10 18:02) [90]


> Меня лично в плюсах убивает написание идентификаторов. Вот,
>  например, код "в лоб" переведенный на делфи с плюсов:


Переводчика не пробовал менять ?


> в коде у рихтера:


в коде у Рихтера все согласно стандарту Microsoft на именование. Практически весь Platform SDK содержит идентификаторы, поименованые таким вот образом.

Ну и что ?

Как ты понимаешь, грамматикой языка ни количество подчеркиваний, ни их наличие, ни регистр символов идентификаторов не регламентируется.
Если кому-то привычно писать с подчеркиваниями, а кому-то непривычно читать - кто им обоим доктор ?


 
Дмитрий Белькевич   (2010-02-15 18:32) [100]


> Переводчика не пробовал менять ?


Это - кусок сырцов примера использования библиотеки StarBurn. Уж не знаю чем они его переводили. Такое чувство - что каким-то софтверным конвертером.


> Как ты понимаешь, грамматикой языка ни количество подчеркиваний,
>  ни их наличие, ни регистр символов идентификаторов не регламентируется.
>


Нет. Но на деле получается - что большинство сырцов именно так и написаны.


> Если кому-то привычно писать с подчеркиваниями, а кому-то
> непривычно читать - кто им обоим доктор ?


Ну вот например:

SetEvent(g__hEvent),
WaitForSingleObject(g_hFvent, INFINITE);

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


 
Eraser ©   (2010-02-15 18:36) [101]

> [95] @!!ex ©   (15.02.10 18:17)


> По каким, если не секрет?

имеется опыт разработки, java куда более проверенная временем и устоявшаяся платформа, можно запускать прямо через браузер.


 
DVM ©   (2010-02-15 18:40) [102]


> SetEvent(g__hEvent),
> WaitForSingleObject(g_hFvent, INFINITE);

Это называется угадай количество подчеркиваний. Вообще уродство эти подчеркивания, не знаю какой это стандарт от MS, но че то в MSDN их не особо встретишь.


 
Игорь Шевченко ©   (2010-02-15 18:42) [103]

Дмитрий Белькевич   (15.02.10 18:16) [94]


> Я представляю, в общих чертах - что и почему происходит.
>  Я говорю с позиции разработчика, выбирающего платформу,
>  а не с позиции MS.


Позиция разработчика зависит от разрабатываемых программ и области их применения.


 
Дмитрий Белькевич   (2010-02-15 18:48) [104]


> Позиция разработчика зависит от разрабатываемых программ
> и области их применения.


И количества рекламной лапши развешенной на ушах у шефов конторы.


 
Игорь Шевченко ©   (2010-02-15 18:48) [105]

Дмитрий Белькевич   (15.02.10 18:32) [100]


> Это - кусок сырцов примера использования библиотеки StarBurn


Язык здесь как бы и не при чем. Если тебе дадут пример использования библиотеки FooBar на Delphi с подобными идентификаторами, ты, я надеюсь, не станешь делать выводы относительно языка Delphi вообще ?


> Нет. Но на деле получается - что большинство сырцов именно
> так и написаны.


Большинство виденных тобой сырцов, давай уж так говорить. То есть, какое-то подмножество неизвестного размера.


> SetEvent(g__hEvent),
> WaitForSingleObject(g_hFvent, INFINITE);
>
> Это у Рихтера - опечатка? Или это нормальное написание?
> Можно ли только по этим двум строкам сказать - код верный
> или нет? Я, честно говоря, так и не понял.


Как минимум, в приведенном коде используются два разных идентификатора
g__hEvent и g_hEvent. Ошибка это или намеренное введение читателей в заблуждение можно сказать, увидев бумажный вариант (ну или ссылку на него).

Точно так же, как идентификатор типа TForm1 отличается от идентификатора типа TTForm1


 
Игорь Шевченко ©   (2010-02-15 18:51) [106]

Дмитрий Белькевич   (15.02.10 18:48) [104]


> И количества рекламной лапши развешенной на ушах у шефов
> конторы.


Обычно шефы как-то с потенциальными исполнителями находят приемлемый баланс :) Было бы странно иначе, но этот аспект обсуждать неинтересно


 
@!!ex ©   (2010-02-15 18:51) [107]

> [105] Игорь Шевченко ©   (15.02.10 18:48)

Пример с TT не совсем корректен, т.к. проблема подчеркивания в том, что они сливаются в один.


 
Игорь Шевченко ©   (2010-02-15 18:53) [108]

@!!ex ©   (15.02.10 18:51) [107]

Не понял проблемы


 
Дмитрий Белькевич   (2010-02-15 18:59) [109]


> Пример с TT не совсем корректен, т.к. проблема подчеркивания
> в том, что они сливаются в один.


О чём собственно и речь.

TT или PP лучше чем ___ (это, кстати, сколько подчёркиваний? Чур не копипастить :))

Есть подозрение, что в конкретном случае проблема с распознаванием, т.к. и "hFvent" неверно распознан. Однако - семантика от этого не потерялась. Понятно - что там должна быть буква "E", а не "F". Сколько же там должно быть подчёркиваний - без остальных сырцов не ясно.


 
Игорь Шевченко ©   (2010-02-15 19:01) [110]


> Сколько же там должно быть подчёркиваний - без остальных
> сырцов не ясно.


Компилятор подскажет.


 
DVM ©   (2010-02-15 19:01) [111]


> Игорь Шевченко ©   (15.02.10 18:53) [108]


> Не понял проблемы

Неуемное использование данного символа создает проблемы как при чтении чужого кода так и использовании, т.к. визуально 2 __ отличаются от 3 ___ слабо, а некоторые умельцы применяют и 4 ____. Стоит забыть одно подчеркивание и проблемы обеспечены.


 
Игорь Шевченко ©   (2010-02-15 19:03) [112]

DVM ©   (15.02.10 19:01) [111]

А причем тут С(++) ? Или это только в этом языке, а в остальных не сливается ? :)


 
Anatoly Podgoretsky ©   (2010-02-15 19:09) [113]

> Кто б сомневался  (15.02.2010 17:18:08)  [68]

Они создавали язык для жрецов.


 
DVM ©   (2010-02-15 19:11) [114]


> Игорь Шевченко ©   (15.02.10 19:03) [112]


> А причем тут С(++) ?

си тут не при чем. Я говорю лишь о том что подход с  использованием подчеркиваний - плохой.


 
Anatoly Podgoretsky ©   (2010-02-15 19:11) [115]

> jack128_  (15.02.2010 17:42:17)  [77]

А && означает Procter && Gamble


 
Anatoly Podgoretsky ©   (2010-02-15 19:13) [116]

> Kerk  (15.02.2010 17:48:19)  [79]

Только эт в английском это @


 
Игорь Шевченко ©   (2010-02-15 19:14) [117]

DVM ©   (15.02.10 19:11) [114]


> Я говорю лишь о том что подход с  использованием подчеркиваний
> - плохой.


Нормальный. Обычно шрифт фиксированный, и один символ от двух вполне себе отличается. А если человек не может разобрать, сколько в книге с пропорциональным шрифтом подчеркиваний написано, это вовсе не повод обвинять язык/символы идентификаторов/Microsoft в злом умысле.
С тем же успехом он не разберет количество пробелов в символьной константе и уж точно(!) не сможет отличить пробел от табуляции.


 
Virgo_Style ©   (2010-02-15 19:16) [118]

Я боюсь приведений.

Приведений типов в C++.

i = (int)(((TListBox *)Sender)->Items->Objects[1]);

i:=Integer(TListBox(Sender).Items.Objects[1]);


 
@!!ex ©   (2010-02-15 19:22) [119]

> [118] Virgo_Style ©   (15.02.10 19:16)

к счастью это решается шаблонами. там более человечее приведением можно сделать.


 
Anatoly Podgoretsky ©   (2010-02-15 19:26) [120]

> DVM  (15.02.2010 19:01:51)  [111]

Это от привычки удваивать.



Страницы: 1 2 3 4 5 6 7 8 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.72 MB
Время: 0.079 c
2-1274344276
zamtmn
2010-05-20 12:31
2010.08.27
unicode->ascii


4-1237551600
mreg
2009-03-20 15:20
2010.08.27
Как отловить вызов WinApi функции?


4-1233576610
Wadimka
2009-02-02 15:10
2010.08.27
Как получить координаты окна кроме GetWindowRect


2-1271459822
rizhiy87
2010-04-17 03:17
2010.08.27
javascript вDelphi7


15-1265146204
Юрий
2010-02-03 00:30
2010.08.27
С днем рождения ! 3 февраля 2010 среда