Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Базарная площадь
  
О разделе

Основная страница

Группы обсуждений


Тематический каталог обсуждений

Архив

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  06:23[Войти] | [Зарегистрироваться]
Обсуждение темы:
Вопросы оптимизации кода

Тема открыта по просьбе жителей Королевства и посвящена обсуждению вопросов оптимизации кода. Выставляйте свои лучшие и худшие тексты и не стесняйтесь их обсуждать. В споре рождается истина. Или, по крайней мере, оптимизация.

Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру


Всего в теме 737 сообщений

Добавить свое сообщение

Отслеживать это обсуждение


Смотрите также обсуждения:
Тестирование проекта. Отладка.
  • Подводные камни
  • Централизованная обработка ошибок
  • Бета-тестирование
  • Давайте учиться на ошибках.
  • Почему программисты допускают ошибки?
  • Автоматизированные тесты для GUI
  • О системах контроля ошибок

  • <<<... | 437—388 | 387—338 | 337—288 | ...>>>
    Всего сообщений в теме: 737; страниц: 15; текущая страница: 8


    № 387   22-01-2007 22:20 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 386« (Geo)
    ___________________________
    я собственно на таком языке и программирую :) (Где всё инициализируется неявно)


    № 386   22-01-2007 12:23 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 384« (Max Belugin)
    ___________________________
    >>> А в дельфи мало того что есть переменная, так еще и ее состояние неопределено и по умалчанию там мусор
    Ну, никто не запрещает программировать на VB, где переменная любого типа заведомо инициализирована заведомо известно каким значением. А я как-то уже давно перестал допускать ошибки, обусловленные забывчивостью в отношении инициализации переменных.

    Кстати, вспомнилась старая хохма:
    Настоящие програмимисты не пишут на Паскале. Строгая типизация данных -- для людей со слаборй памятью.

    Можно перефразировать
    Настоящие программисты не пишут не Бейсике. Автоматическая инициализация переменных -- для людей со слабой памятью.

    P.S. Для особо серьезеых людй замечу, что каждый из двух предыдущих абзацев неявно заканчивается смайиликом ;-)
     Geo


    № 385   22-01-2007 09:31 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 383« (panda)
    ___________________________
    Как это может объяснить высказывание Сергея Рощина В контексте сообщения шла речь о подавлении Warning`ов. Так что лучше пусть будет одна лишняя строка, которая компилятором всё равно игнорируется, чем опастность нажить себе неприятность!
     Cep


    № 384   22-01-2007 07:24 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 383« (panda)
    ___________________________
    в C# нет никакого возвращаемого значения по умолчанию. Если ничего явно не возвращать, то код просто не скомпилируется. Соответственно нет такого типа ошибок. А в дельфи мало того что есть переменная, так еще и ее состояние неопределено и по умалчанию там мусор. Который в частом конкретном случае 0 но в военное время может достикать PI


    № 383   22-01-2007 06:37 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 382« (Max Belugin)
    ___________________________

    Ну и? Delphi тоже такие фокусы знает:
    [Warning] Unit1.pas(31): Return value of function 'TForm1.A' might be undefined

    Как это может объяснить высказывание Сергея Рощина: "Есть такая неприятная особенность, что если не проинициализировать function XXX:integer то чаще всего результат будет 0 и это вполне логично и на этапе отладки будет правильно, а на какой-нибудь десятый раз у пользователя в Магадане там будет нечто иное." ?


    № 382   22-01-2007 05:02 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 380« (panda)
    ___________________________
    в С++ и Java такое поведение и в магадане и в африке.... так что ловится на этапе компиляции (жабы под рукой нет нет, в C#

    test.cs(3,14): error CS0161: 'MainClass.a(int)': не все ветви кода возвращают значение )


    № 381   22-01-2007 04:32 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 378« (panda)
    ___________________________

    А кто-нибудь нарвется, используя булевские типы не по назначению.

    Хм, что-то в этом есть... :-)
     Ins


    № 380   22-01-2007 04:31 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 379« (Cepгей Poщин)
    ___________________________

    чаще всего результат будет 0 и это вполне логично и на этапе отладки будет правильно, а на какой-нибудь десятый раз у пользователя в Магадане там будет нечто иное. Дальше можно размышлять долгими полярными ночами о теории, практике и красивом коде :-)

    Меня знаете, что смущает в этой логике: как же в Магадане при этом работаю программы на C++ или Java? Там ведь пока return не скажешь, результат не присвоится.


    № 379   22-01-2007 02:25 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 373« (Ins)
    ___________________________
    Так и поступаю, использую директивы {$WARNINGS ON} и {$WARNINGS OFF} Но короче и нагладнее проинициализировать в начале result, кроме того есть вероятность, что {$WARNINGS ON} по ходу дальнейших исправлений потеряется, и предупреждения перестанут появлятся вообще.
    Многие привыкают присваивать в начале функции значение Result. Вот именно. Мало ли что там в будущем в условиях можно наворотить. Есть такая неприятная особенность, что если не проинициализировать function XXX:integer то чаще всего результат будет 0 и это вполне логично и на этапе отладки будет правильно, а на какой-нибудь десятый раз у пользователя в Магадане там будет нечто иное. Дальше можно размышлять долгими полярными ночами о теории, практике и красивом коде :-)
     Cep


    № 378   22-01-2007 00:47 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 373« (Ins)
    ___________________________

    Ага, честно. В том то и дело, что ну никак не нарвемся! :)
    Так это Вы не нарветесь. А кто-нибудь нарвется, используя булевские типы не по назначению. Например, так:

      ShowMessageFmt('%d', [Ord(False)]);
      ShowMessageFmt('%d', [Ord(True)]);
      B := Boolean(2);
      ShowMessageFmt('%d', [Ord(B)]);



    № 377   20-01-2007 16:13 Ответить на это сообщение Ответить на это сообщение с цитированием
    По моему Ins прав. Многие привыкают присваивать в начале функции значение Result. Во многих случаях это правильный стиль. Поэтому в приведенном выражденном случае делают присвоение автоматически.
    Действие по шаблону. Не слишком подходящему в данном случае, но в принципе правильному.


    № 376   20-01-2007 15:14 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 375« (Geniepro)
    ___________________________
    >>> Если бы этот программист хоть немного поработал на функциональных языках и привык к тому, что повторно присвоить значение переменной нельзя <...>
    Интересный момент. Я на функциональных языках не работад (Excel не в счет). Естественно, я привык иногда загонять в переменную промежуточные расчеты (для лучшей читаемости кода и, возможно, для поиска глюков при отладке). Однако такой способ реализации функции и у меня вызывает отторжение.

    Не убедительно ;-)
     Geo


    № 375   20-01-2007 13:57 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 366« (Geo)
    ___________________________

    Почему же чаще встречается первый вариант? Кто-нибудь задумывался над таким вопросом?

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

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

    :о))


    № 374   20-01-2007 12:05 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 373« (Ins)
    ___________________________
    >>> В том то и дело, что ну никак не нарвемся! :)
    Компилятор, как я понимаю, выдает свой варнинг исходя из того, что инициализация переменной Result происходит в операторе case, в котором нет раздела else. Соответственно, при таком подходе можно упустить какой-либо вариант. Вычислением логических выражение и определением их полноты компилятор не занимается.

    Честно говоря, меня это устраивает. Пусть он проверяет синтаксис и быстро компилирует это дело в EXE. А смыслом получившегося кода я займусь сам. А если представить себе противоположное... Компилятор, который работает два часа, чтобы в конце концов определить, что такая-то потенциальная ошибка на самом деле в данной программе никогда не наступит ;-)
     Geo


    № 373   20-01-2007 11:46 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 372« (Geo)
    ___________________________

    Компилятор просто честно и благородно предупреждает, что можем нарваться.
    Ага, честно. В том то и дело, что ну никак не нарвемся! :)

    А те, кому это давит на нервы, могут варнинги отключить ;-)

    О, это как раз про меня! ;)
    Так и поступаю, использую директивы {$WARNINGS ON} и {$WARNINGS OFF}
     Ins


    № 372   20-01-2007 11:38 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 371« (Ins)
    ___________________________
    А что плохого в этом варнинге? Компилятор просто честно и благородно предупреждает, что можем нарваться. Он (в отличие от программиста) не может понять, что третьего не дано ;-) А работе программы наличие варнинга при компиляции, насколько мне известно, ничуть не мешает.

    А те, кому это давит на нервы, могут варнинги отключить ;-)
     Geo


    № 371   20-01-2007 10:59 Ответить на это сообщение Ответить на это сообщение с цитированием
    Кстати, очень неприятно, что Delphi выдает
    [Warning] Unit1.pas(31): Return value of function 'Max' might be undefined
    на такую конструкцию

    function Max(a, b: Integer): Integer;
    begin
      case a > b of
        true: Result:=a;
        false: Result:=b;
      end;
    end;



    То же самое будет с другими перечислимыми типами, все значения которых можно перечислить в одном case. Приходиться либо использовать описанный Geo прием, либо вставлять в case..end else, что мне кажется не менее неестественным.
     Ins


    № 370   20-01-2007 10:54 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 367« (Антон Григорьев)
    ___________________________
    >>> А вообще - как-то мало я с чужим кодом работаю...
    Ну, я такое достаточно часто встречал, изучая примеры на VBA (Excel, Access). Будем считать, что это еще одна диверсия Микрософта против устоявшейся культуры программирования ;-)

    Ответ на »сообщение 368« (Ins)
    ___________________________
    >>> А я первый вариант использую часто <...>
    Это совсем другой случай. Задаем одно значение и потом проверяем все условия выхода с этим значением. Если не вывалились и дошли до конца, значит реультат прямо пртивоположный. Там это оправданная методика, позволяющая сделать код более читаемым. Я же говорю про абсолютно симметричный случай из двух вариантов. Будем считать, что виновата привычка ;-)

    Ответ на »сообщение 369« (panda)
    ___________________________
    >>> Потому что Вы плохо отстреливаете тех, кто так пишет ;)
    И чем я их буду отстреливать? МБР что ли? Никакое другое оружие просто не дострелит до США и не сможет поразить программистов Микрософта ;-)

    Господа, спасибо! Вы меня успокоили. А то я уже волноваться начал, что я такой дурак и не понимаю таких простых вещей. Оказалось, что дурак все же не я :-D
     Geo


    № 369   20-01-2007 10:35 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 366« (Geo)
    ___________________________

    Почему же чаще встречается первый вариант?
    Потому что Вы плохо отстреливаете тех, кто так пишет ;)
    Я вот хорошо отстреливаю, поэтому мне обычно второй вариант показывают :)


    № 368   20-01-2007 10:29 Ответить на это сообщение Ответить на это сообщение с цитированием
    А я первый вариант использую часто. Только немного не в таком виде. Допустим есть функция, которая выполняет какие-либо действия и возвращает true, если все прошло хорошо и false, если где-то по дороге произошел сбой.

    function SomeFunc: Boolean;
    begin
      Result:=false;
      {далее идет сложный алгоритм, построенный либо на if-then, либо на обработке исключений, и когда мы добираемся до конца алгоритма - выставляем Result:=true}
    end;


    А насчет таких коротеньких функциий, типа поиска максимального значения - возможно я бы тоже так поступил, чисто по привычке.
     Ins


    № 367   20-01-2007 08:29 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 366« (Geo)
    ___________________________

    Во втором варианте, вроде бы, при выполнении получается на один оператор меньше. Почему же чаще встречается первый вариант? Кто-нибудь задумывался над таким вопросом?

    Может быть, потому, что на одно слово "else" меньше? Набирать быстрее ;)

    А вообще - как-то мало я с чужим кодом работаю... А самому додуматься до первого варианта мне не удалось - если б не ваше сообщение, даже не знал бы, что такое бывает :))) Очень неестественным мне он кажется.


    № 366   20-01-2007 06:51 Ответить на это сообщение Ответить на это сообщение с цитированием
    Захотелось мне что-то потрепаться (побазарить ;-)) на околопрограммные темы. А заодно и тему поднять. А посему предлагаю на обсуждение вопрос.

    Пусть нужно реализовать функцию, которая в зависимости от условия возвращает либо одно, либо другое значение. Наиболее часто встречается примерно такой вариант (для простоты возьму функцию Max):

    function Max(N1,N2 : Integer) : Integer;
    begin
      Result:=N1;
      if N2 > N1
      then
        Result:=N2;
    end;


    Хотя мене более естественным кажется такой код:

    function Max(N1,N2 : Integer) : Integer;
    begin
      if N2 > N1
      then
        Result:=N2
      else
        Result:=N1;
    end;


    Во втором варианте, вроде бы, при выполнении получается на один оператор меньше. Почему же чаще встречается первый вариант? Кто-нибудь задумывался над таким вопросом?
     Geo


    № 365   15-10-2005 10:02 Ответить на это сообщение Ответить на это сообщение с цитированием
    К вопросу об оптимизациии- рекомендую посетить сайт
    http://www.fastcode.dk/fastcodeproject/fastcodeproject/index.htm
    функции и memory manager котрые там реализованы войдут в RTL Delphi 2006 (Dexter)


    № 364   14-10-2005 10:45 Ответить на это сообщение Ответить на это сообщение с цитированием
    Родной сайт Fowler'а хорош еще юмором. Например, выдержки из некоторых
    описаний инструментов рефакторинга.
    Smalltalk ... To all those who think that PhD projects are doomed to irrelevance.
    IntelliJ Idea  This is a fully fledged IDE.  (Все-таки птичник!)
    Together-J  ... Recently bought by Borland (or whatever they call themselves these days)
    Bicycle Repair Man  This at least gets a prize for the best name!

    Жаль, что в X-develop не упоминается Паскаль.


    № 363   14-10-2005 07:40 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 362« (Как слышно? Прием!)
    ___________________________
    >>>С появлением объектной технологии ... появилось большое количество плохо
    спроектированных, неэффективных и малопригодных к сопровождению и расширению приложений.
    Да, припечатал. Разумеется в дообъектную эпоху таких приложений не было :)



    № 362   14-10-2005 06:40 Ответить на это сообщение Ответить на это сообщение с цитированием
    IMHO, английская книжка в Палме удобнее русской бумажной,
    выписываемой через интернет и доставляемой нашей почтой.
    Впрочем, дело вкуса. Главный плюс - там больше ссылок по теме.

    Забавная реклама рефакторинга с уничижительной антирекламой ООП:

    "С появлением объектной технологии ... появилось большое количество плохо
    спроектированных, неэффективных и малопригодных к сопровождению
    и расширению приложений. Профессиональные разработчики программных
    систем все яснее видят, насколько трудно иметь дело с таким наследием".

    Как говорится, что у трезвого на уме, то у рекламщика на языке.


    № 361   14-10-2005 04:37 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 359« (Как слышно? Прием!)
    ___________________________

    Ссылочку по рефакторингу лучше было дать на
    www.refactoring.com , чем на магазин книжки.

    Что-то я там не нашел текста книги на русском языке. Плохо искал?
    И бумажная книга все-таки удобнее.


    № 360   14-10-2005 04:33 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 358« (Антон Григорьев)
    ___________________________

    Ну, я, например, не знаю, как, не подчёркивая это, отвечать на Круглом столе на многие вопросы, связанные с тем, как создавать, копировать и уничтожать объекты, почему после выполнения Free переменная не равна nil и т.п. Создать язык, в котором можно будет не знать, что переменная типа объект является указателем, вполне реально, но Delphi таким языком не является.
    Ну так это проблема в конкретных людях, которые не читают книг с базовыми знаниями по языку программирования. О том, что объекты в Delphi - динамические, опытный разработчик должен всегда помнить. А если помнит, то зачем делать себе напоминание в виде "крыжиков"?


    № 359   14-10-2005 03:22 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ссылочку по рефакторингу лучше было дать на
    www.refactoring.com , чем на магазин книжки.


    № 358   14-10-2005 02:03 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 357« (panda)
    ___________________________

    Зачем подчеркивать каждый раз, что переменная типа объект на самом деле является указателем?

    Ну, я, например, не знаю, как, не подчёркивая это, отвечать на Круглом столе на многие вопросы, связанные с тем, как создавать, копировать и уничтожать объекты, почему после выполнения Free переменная не равна nil и т.п. Создать язык, в котором можно будет не знать, что переменная типа объект является указателем, вполне реально, но Delphi таким языком не является.


    № 357   14-10-2005 01:33 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 353« (Geo)
    ___________________________

    У объектов есть методы. У методов есть реализация.
    Ну... если они не абстрактные :-)
    Почему бы в реализации методов объектов (низкоуровневое, с точки зрения ООП, программирование) не воспользоваться паскалевскими конструкциями с указателями на облесть памяти?
    Потому что смысла не имеет. Зачем подчеркивать каждый раз, что переменная типа объект на самом деле является указателем? Если так хочется низкоуровневости, давайте перейдем на С++ и будем писать **p++^=q++=*r-s


    № 356   14-10-2005 01:26 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 354« ()
    ___________________________

    Объект в дельфи - это указатель на область памяти.
    А в Java не так что ли?

    Если этого не знать, то тогда будешь делать
    А:=В, а не А.Assign(B).

    Если этого не знать, то нельзя вообще написать программу сложнее, чем "Hello, world".

    Сам обжегся на этом свое время.
    Хмм... А что Вам не позволило почитать умные книжки до того, как начнете программировать на Delphi?


    № 355   13-10-2005 13:15 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 354« ()
    ___________________________

    Ответ на »сообщение 352« (panda)
    ___________________________
    Объект в дельфи - это указатель на область памяти.
    Если этого не знать, то тогда будешь делать
    А:=В, а не А.Assign(B).

    Сам обжегся на этом свое время.
    Речь идет не о том, что есть объект в Delphi, а о том, как это описывать. Причём компилятору как раз по барабарабану, речь идет исключительно об удобстве.


    № 354   13-10-2005 10:06 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 352« (panda)
    ___________________________
    Объект в дельфи - это указатель на область памяти.
    Если этого не знать, то тогда будешь делать
    А:=В, а не А.Assign(B).

    Сам обжегся на этом свое время.
    Сообщение не подписано


    № 353   13-10-2005 09:17 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 352« (panda)
    ___________________________
    У объектов есть методы. У методов есть реализация. Почему бы в реализации методов объектов (низкоуровневое, с точки зрения ООП, программирование) не воспользоваться паскалевскими конструкциями с указателями на облесть памяти?
     Geo


    № 352   13-10-2005 07:37 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 351« (Geo)
    ___________________________

    Я просто хотел сказать, что поскольку Паскаль стараниями Борланда плавно перетекал в Дельфи, то некоторые приемы программирования разработанные в интерваое TurboPascal-6.0 -- Delphi 1.0 не потеряли своей актуальности до сих пор. Может быть и можно их избегать, но стоит ли?
    А я как раз посмотрел с другой стороны: у современного Паскаля (Delphi) очень много нововведений, сближающих его, например, с Java. Так может стоит оперировать понятиями более высокого уровня (объектами, а не указателями на память с данными)?


    № 351   13-10-2005 05:31 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 349« (panda)
    ___________________________
    Точно. Но спорить по глупому не хочется. Я просто хотел сказать, что поскольку Паскаль стараниями Борланда плавно перетекал в Дельфи, то некоторые приемы программирования разработанные в интерваое TurboPascal-6.0 -- Delphi 1.0 не потеряли своей актуальности до сих пор. Может быть и можно их избегать, но стоит ли?
     Geo


    № 350   13-10-2005 02:02 Ответить на это сообщение Ответить на это сообщение с цитированием
    »сообщение 349« (panda) Давайте уже точно определимся сколько должно выпасть волос, что бы признать человека лысым ;)))
     Cep


    № 349   13-10-2005 01:17 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 348« (Geo)
    ___________________________
    Это начинает походить на спор: "Кто сильнее: слон или кит" ;-)


    № 348   12-10-2005 05:59 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 347« (panda)
    ___________________________
    Пишу про ту версию Delphi, про которую знаю.

    А если продолжить сравнение, то в изначальном Паскале ООП вообще не поддерживалось. А в TP 6 уже были объекты (хоть и не классы). Так что, по-моему, разница между Паскалем Вирта и TP 6 все же больше, чем между TP 6 и Delphi.
     Geo


    № 347   12-10-2005 04:36 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 339« (Geo)
    ___________________________

    Совсем забыл дописать :-)
    А причем здесь Delphi 6? Официально сейчас продается только Delphi 2005. Так что не забудьте рассмотреть "class helpers".


    № 346   12-10-2005 04:30 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 343« (al_mt)
    ___________________________

    Ссылочку не подбросите?
    Пожалуйста: http://www.books.ru/shop/books/30436


    № 345   12-10-2005 04:27 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 339« (Geo)
    ___________________________

    >>> Delphi очень далеко ушел от Turbo Pascal.
    Ой ли? Разница между Delphi 6 и Turbo Pascal 6.0 ненамного больше, чем разница между Turbo Pascal 6.0 и Паскалем Вирта.

    ООП в Turbo Pascal 6.0 имеется

    В предыдущеем сообщении браузер сглючил :-(

    Так вот, как насчет ссылок на класс (class of), виртуальных конструкторов, методов класса (class procedure), единого предка всех классов, RTTI? Это было? А реализация интерфейсов (с точки зрения не COM, а именно ООП)? Это по-Вашему ничто?


    № 344   12-10-2005 04:22 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 339« (Geo)
    ___________________________

    >>> Delphi очень далеко ушел от Turbo Pascal.
    Ой ли? Разница между Delphi 6 и Turbo Pascal 6.0 ненамного больше, чем разница между Turbo Pascal 6.0 и Паскалем Вирта.
    ООП в Turbo Pascal 6.0 имеется

    А как насчет указателей на классы (class of),


    № 343   12-10-2005 04:08 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 338« (panda)
    ___________________________

    Ответ на »сообщение 333« (al_mt)
    ___________________________

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

    Ссылочку не подбросите?

    Неужели Вы сами ни когда так не писали? Сразу в ассемблере???
    Э... да. Как-то уж так получилось, что сразу. Ну или переписывал программы с бейсика на ассемблер. Однажды посмотрел Паскаль для Z80, но он мне не понравился.
    Угу... Что паскаль, что С для Z80 были ужасны и не работали :) Самый лучший вариант, был такой целочисленный компилятор васика, вот на нём с ассемблерными вставками. Или на чистом ассемблере... Но логику всё равно предварительно на "птичьем языке"...


    № 342   11-10-2005 13:21 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 341« (Geo)
    ___________________________

    Ответ на »сообщение 340« (Tricky)
    ___________________________
    Были приведены ссылки на официальные документы, в которых говорится, что начиная с Delphi 7 сам язык программирования называется Delphi


    да пофиг эти "официальные документы" - это маркетинговый ход. Паскалем он не перестал быть пока что, правда? Аналогично, как и Си - есть разные его модификации, есть разные компайлеры и среды разработки. Но от этого язык не перестал называться Си.


    № 341   11-10-2005 10:34 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 340« (Tricky)
    ___________________________
    >>> Delphi - это IDE. А язык программирования - Object Pascal.
    Неоднократно поднимавшийся вопрос. Были приведены ссылки на официальные документы, в которых говорится, что начиная с Delphi 7 сам язык программирования называется Delphi
     Geo


    № 340   11-10-2005 09:19 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 339« (Geo)
    ___________________________

    Ответ на »сообщение 337« (panda)
    ___________________________
    >>> Delphi очень далеко ушел от Turbo Pascal.
    Ой ли? Разница между Delphi 6 и Turbo Pascal 6.0
    ...разница между Turbo Pascal 6.0 и Паскалем Вирта.


    Господа!  Delphi - это IDE. А язык программирования - Object Pascal.
    поэтому сравнивая не путайте.
    Можно сравнивать оболочки (TP, "супервижн", BPW, IDE Delphi).
    А можно сравнить языки (Object Pascal, BP with objects, паскаль Вирта, etc). Это будут совершенно разные сравнения.


    № 339   11-10-2005 08:32 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 337« (panda)
    ___________________________
    >>> Delphi очень далеко ушел от Turbo Pascal.
    Ой ли? Разница между Delphi 6 и Turbo Pascal 6.0 ненамного больше, чем разница между Turbo Pascal 6.0 и Паскалем Вирта.

    ООП в Turbo Pascal 6.0 имеется
     Geo


    № 338   11-10-2005 07:51 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 333« (al_mt)
    ___________________________

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

    Неужели Вы сами ни когда так не писали? Сразу в ассемблере???
    Э... да. Как-то уж так получилось, что сразу. Ну или переписывал программы с бейсика на ассемблер. Однажды посмотрел Паскаль для Z80, но он мне не понравился.


    <<<... | 437—388 | 387—338 | 337—288 | ...>>>
    Всего сообщений в теме: 737; страниц: 15; текущая страница: 8


    Добавить свое сообщение

    Отслеживать это обсуждение

    Дополнительная навигация:
    Количество сообщений на странице

    Порядок сортировки сообщений
    Новое сообщение вверху списка (сетевая хронология)
    Первое сообщение вверху списка (обычная хронология)

    Перейти на конкретную страницу по номеру
      
    Время на сайте: GMT минус 5 часов

    Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
    Функция может не работать в некоторых версиях броузеров.

    Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
    Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

     
    © При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
    Все используемые на сайте торговые марки являются собственностью их производителей.

    Яндекс цитирования