Author Topic: Delphi, QIP и быдлокодерство  (Read 29401 times)

0 Members and 1 Guest are viewing this topic.

Offline myst

  • Posts: 35581
Но #define вместо нормльных констант и inline-функций тоже не айс.
:o :o :o :o :o :o
:o В C++-то?! :o
 :o :o :o :o :o :o

Offline addewyd

  • Posts: 1664
  • Gender: Male
Паскаль и паскалеподобные языки богомерзки и уродливы по своей природе.
С++ рулит!
та же хрень вид сбоку


насколько нужно любить дельфи, чтобы лесенки типа

   do begin
      if ... then
           ... begin
              ... begin
                 
                  end;
             end;
      end;
   end;
кто заставляет такие лесенки строить?


Offline Алексей Гринь

  • Blogger
  • *
  • Posts: 24115
  • Gender: Male
кто заставляет такие лесенки строить?
Алгоритм

a {
  b {
    c {
      d {
        e {
        }
      }
    }
  }
}вы не запутываетесь?

У меня так:

bla blablabla()
{
     if(blabla == blabla)
     {
           blabla();
           bla(blabla, 0);
           
           if(blaabla != blabla)
                blablabla();
     }
}

В паскалях типа так:

procedure blablabla(): bla
begin
   if blabla = blabla then
   begin
       blabla();
       bla(blabla, 0);
           
       if blaabla <> blabla then
          blablabla();
   end;
end;

Вот фиг знает, первое намного читабельнее, во втором случае визуально бегины и енды оч плохо отличимы от имён переменных и функций, вырвиглаз же

Неговоря уже о том, что приходится писать руками в 3-5 раз больше буков
肏! Τίς πέπορδε;

Offline Karakurt

  • Posts: 20358
  • Gender: Male
Они же цветом выделяются! :D
͡° ͜つ ͡°

Offline злой

  • Posts: 11494
  • Gender: Male
Асм рулит:

        MOV AL, 3
        MOV EBX, EAX         
        XOR AH, AH
        MOV AL, 3
        MOV BX, AX             
        XOR EAX, EAX
        MOV AH, 3
        MOV EBX, EAX           
        SUB EBX, EBX
        MOV BL, DL
        MOV ECX, EBX           
        MOV EBX, 0
        MOV BL, DL
        MOV ECX, EBX           
        MOV BL, DL
        XOR EBX, EBX           
Разбейте проблемы на подпроблемы (с)

Offline arseniiv

  • Posts: 14931
    • ::
Вот фиг знает, первое намного читабельнее, во втором случае визуально бегины и енды оч плохо отличимы от имён переменных и функций, вырвиглаз же
(выделено мной)
Если вы пишете в Блокноте ;D В "нормальных" средах всегда ключевые слова вяделяются (а у вас не выделяются? :o)
А, уже Karakurt сказал.

А первое - скорее всего дело привычки. Я {} так же хорошо читаю, как и begin…end. Вроде бы :donno:

:o :o :o :o :o :o
:o В C++-то?! :o
 :o :o :o :o :o :o
Ну, в том предложении Алексей Гринь говорил, что C лучше C++...

Offline Алексей Гринь

  • Blogger
  • *
  • Posts: 24115
  • Gender: Male
В "нормальных" средах всегда ключевые слова вяделяются
Говорили о языке, теперь снова о среде. Воистину поцкакалисты не отличают язык от среды.

Предлагаю вариант — использовать ключевые слова begin, bgein, end, nde, edn, ebgin, но для наглядности в среде раскрашивать в разные цвета (розовый, малиновый).
肏! Τίς πέπορδε;

Offline arseniiv

  • Posts: 14931
    • ::
;D
Извините, что привёл среду, но и вы сказали, что эти слова схожи с просто идентификаторами - входя в зависимость от сред, потому что кто знает, может, в гипотетической среде набранные ключевые слова превращаются в смайлики?

Offline Алексей Гринь

  • Blogger
  • *
  • Posts: 24115
  • Gender: Male
Просто на деле получается невнятный костыль (якобы для улучшения читаемости), который прикрывается другими костылями (подсветка в IDE, якобы архикрутая фишка). Смысл? Легче сразу перейти на Си :)
肏! Τίς πέπορδε;

Offline myst

  • Posts: 35581
Вот фиг знает, первое намного читабельнее, во втором случае визуально бегины и енды оч плохо отличимы от имён переменных и функций, вырвиглаз же
Вырвиглаз лечится нормальным форматированием исходного текста. Это справедливо для любого языка.

Offline Алексей Гринь

  • Blogger
  • *
  • Posts: 24115
  • Gender: Male
Вырвиглаз лечится нормальным форматированием исходного текста
По моим наблюденим, у дельфифилов отступ стандартно равен двум пробелам, а это вырвиглаз.
肏! Τίς πέπορδε;

Offline myst

  • Posts: 35581
По моим наблюденим, у дельфифилов отступ стандартно равен двум пробелам, а это вырвиглаз.
Ладно хоть не один. :)

Offline arseniiv

  • Posts: 14931
    • ::
Два пробела может, потому, что такой в справке ;D
А мне и двух пробелов хватает, три не нравится, а четыре — для меня вырвиглаз. Стоит только достигнуть небольшой вложенности, как эти четырёхпробельные строки улетают далеко-далеко...
Вообще, среди плохих программистов (что есть, то есть — среди пользователей Delphi их больше (хотя сравнить с Васиком... ::) )) отступы не приняты. Жаль, конечно...

Кстати, один пробел — для меня то же, что и четыре.

Offline myst

  • Posts: 35581
Пробелы — это ещё не всё.

Offline arseniiv

  • Posts: 14931
    • ::
Конечно же, нет. Но они уже должны быть обязательными. :)

Кстати, это сказки, что в Pascal (а уже в нём было) and и or сравнение производят до конца. В "0 and A" A вычисляться не будет.

Offline myst

  • Posts: 35581
Но они уже должны быть обязательными. :)
Обязательным должен быть целостный стиль.

Offline Python

  • Posts: 40560
  • Gender: Male
  • Aluarium agent
Паскаль и паскалеподобные языки богомерзки и уродливы по своей природе.
С++ рулит!
С-подобный синтаксис более лаконичен, чем паскалеподобный, содержит больше удобных возможностей, С-подобные языки имеют более продвинутые компиляторы и библиотеки функций, но:
1) синтаксис описания переменных очень неудобен. Что такое int *a[10][10] - это двумерный массив указателей, массив указателей на массивы, указатель на двумерный массив?
2) порядок выполнения операций, не совпадающий в разных реализациях С и С-подобных языков;
3) С-шный switch-case, благополучно перекочевавший во все С-клоны - не что иное, как пережиток эпохи царствования оператора goto. По существу, это не структурированный выбор, как if-then-else или паскалевский case, а переход на метку с последующим выходом через break. Пропуск break ошибкой не является, хотя обычно ведет к ошибочным результатам.
4) ..................

В общем, придраться можно много к чему.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Offline myst

  • Posts: 35581
Кстати, это сказки, что в Pascal (а уже в нём было) and и or сравнение производят до конца. В "0 and A" A вычисляться не будет.
Implementation-dependent.

Offline Python

  • Posts: 40560
  • Gender: Male
  • Aluarium agent
P.S. Если уж зашла речь о case, наиболее продвинутым по функциональности является select-case в структурированных бейсиках (Quick BASIC, TurboBasic, VBA и под.), предусматривающий диапазоны, идущие в бесконечность (case is>100). Чуть менее продвинуты паскаль и делфи: есть дипазоны в пределах конкретных значений. В С-подобном синтаксисе диапазон можно задать лишь путем перечисления всех значений, входящих в диапазон.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Offline arseniiv

  • Posts: 14931
    • ::
1) синтаксис описания переменных очень неудобен. Что такое int *a[10][10] - это двумерный массив указателей, массив указателей на массивы, указатель на двумерный массив?
Обеими руками да! :up: И этот страшный typedef, совершенно нечайно разобрался, как им пользоваться.
Case в Delphi, кстати, ещё и оптимизируется, и некоторые операторы case работают быстрее аналогичной системы if.

Offtop
О хорошести языков:
Я вот создаю себе pas-модуль для языка сценариев. Вопреки предположениям, он имеет вообще Scheme-подобный синтаксис. ;D (Но нет типизации, парадигма больше императивная, есть функции-значения; но руки всё ещё не дошли...) Хотя я бы предпочёл JavaScript - но его реализацию для Delphi я не находил (а системно-зависимость мне не нужна).

Offline myst

  • Posts: 35581
Case в Delphi, кстати, ещё и оптимизируется, и некоторые операторы case работают быстрее аналогичной системы if.
Неужели делфистроители таки осилили эту оптимизацию?

2) порядок выполнения операций, не совпадающий в разных реализациях С и С-подобных языков;
Не понял, о чём речь?

Offline Python

  • Posts: 40560
  • Gender: Male
  • Aluarium agent
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Offline myst

  • Posts: 35581
:wall: Опять про это?! В стандарте же ясно сказано, что это неопределённость. Низачот.

 

With Quick-Reply you can write a post when viewing a topic without loading a new page. You can still use bulletin board code and smileys as you would in a normal post.

Note: this post will not display until it's been approved by a moderator.
Name: Email:
Verification:
Type the letters shown in the picture
Listen to the letters / Request another image
Type the letters shown in the picture:
√49 Напишите ответ строчными буквами:
«Сто одёжек, все без застёжек» — что это?: