Лингвофорум

Лингвоблоги => Личные блоги => Блоги => Алексей Гринь => Тема начата: Алексей Гринь от октября 26, 2009, 22:36

Название: Delphi, QIP и быдлокодерство
Отправлено: Алексей Гринь от октября 26, 2009, 22:36
Оказывается, есть забавный червь, который заражает Delphi, да так, что все скомпилированные ею программы будут содержать в себе червя. Этот червь просочился в том числе в QIP.

Цитироватьон поражает только установленные Delphi версий 4-7 (включительно)
ЦитироватьНу, если говорить о популярности этой бяки, то я сделал быстрый QIP-опрос знакомых дельфистов и у примерно 30% из них оказалась эта бяка. Т.е. если учитывать, что не у всех стоят старые Delphi, то среди D7-ков эта штука вполне может быть неплохо распространена

http://gunsmoker.blogspot.com/2009/08/delphi-delphi.html

Хаханьки. Зря только автор ничего вредоносного не включил (видать, proof of concept), я бы сделал функцию полного сноса Дельфи через некоторое время :)
Название: Delphi, QIP и быдлокодерство
Отправлено: Bhudh от октября 26, 2009, 23:36
И установки Хаскелла взамен, да?
Название: Delphi, QIP и быдлокодерство
Отправлено: Алексей Гринь от октября 27, 2009, 01:25
Просто gcc :)
Название: Delphi, QIP и быдлокодерство
Отправлено: злой от октября 27, 2009, 05:13
Скоро создам тему "Быдлогринь и его быдлокомменты"
Название: Delphi, QIP и быдлокодерство
Отправлено: Nekto от октября 27, 2009, 11:28
Паскаль и паскалеподобные языки богомерзки и уродливы по своей природе.
С++ рулит!
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от октября 27, 2009, 13:35
Цитата: Nekto от октября 27, 2009, 11:28
Паскаль и паскалеподобные языки богомерзки и уродливы по своей природе.
С++ рулит!
У-у-у, какая толстота! Сметана была явно жирнее 25 %. ;)
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от октября 27, 2009, 13:36
Цитата: Алексей Гринь от октября 26, 2009, 22:36
Этот червь просочился в том числе в QIP.
(http://www.kolobok.us/smiles/standart/scare.gif) Я же пользуюсь этим поделием!
Мой антивирь ничего не нашёл. :what:
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от октября 27, 2009, 13:46
Цитата: Алексей Гринь от октября 27, 2009, 01:25
Просто gcc :)
При желании такое можно сварганить для любого инструментария.
Название: Delphi, QIP и быдлокодерство
Отправлено: Алексей Гринь от октября 27, 2009, 18:27
Цитата: myst от октября 27, 2009, 13:46
При желании такое можно сварганить для любого инструментария.
Если бы да кабы — вот будет прецедент, посмотрим.
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от октября 27, 2009, 19:19
Уже слышал. И даже проверял - ничего. Забыли отметить, что новые версии квипа (а та уже жутко стара, и та заметка) не содержат. А вы не указали :negozhe:
Delphi - хорошо, C++ тоже хорошо, но слишком неудобно по мне совмещать VCL и Си. А в новых версиях Delphi и перегрузка операторов, и всякие другие вещи появляются.
Дискутировать о языках - тот ещё холивар, по опыту, как и холивары о goto и прочему. Просто надо всегда знать меру. Полюсы никого не красят.
Название: Delphi, QIP и быдлокодерство
Отправлено: Dana от октября 27, 2009, 19:31
Delphi ещё жив? Офигеть.
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от октября 27, 2009, 20:02
Не буду слушать комментарии тех, кто писал менее года на Delphi. Я вот тоже так про C буду говорить, потому что недостаточно его знаю.
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от октября 28, 2009, 08:59
Цитата: arseniiv от октября 27, 2009, 19:19
Полюсы никого не красят.
Прочитал «Плюсы никого не красят». ;D
Название: Delphi, QIP и быдлокодерство
Отправлено: Алексей Гринь от октября 29, 2009, 18:22
Цитата: arseniiv от октября 27, 2009, 19:19
Delphi - хорошо, C++ тоже хорошо, но слишком неудобно по мне совмещать VCL и Си.
Нафиг VCL, эту кривяку? Qt — и вперёд. Вообще в мире много хороших фреймворков.

Цитата: arseniiv от октября 27, 2009, 19:19
Дискутировать о языках - тот ещё холивар
А я дискутирую не о языках, а о комьюнити, которое получилось вокруг сего продукта. Хотя лично мне чисто субъективно синтаксис поцкакаля мерзок (семантика там такая же...), я не имею ничего аргументированно против.

Вот в России же те же люди живут, что и в Америке — те же хомосапиенсы. А живут объективно хуже. Почему? А потому что не надо путать национальность с менталитетом, то бишь язык/синтаксис с комьюнити.

Мой пост был о том, что пользователи Дельфи (я не пишу — «программисты») настолько — скажем так — невежественны, что у 30% нашёлся этот червь. А ведь Дельфи даже не мейнстрим (популярен только в СССР) — в намного более мейнстримных Си-средах подобных казусов ещё не встречал. Почему? Потому что процент имбецилов там намного ниже.
Название: Delphi, QIP и быдлокодерство
Отправлено: Алексей Гринь от октября 29, 2009, 18:43
Цитата: Nekto от октября 27, 2009, 11:28
Паскаль и паскалеподобные языки богомерзки и уродливы по своей природе.
Согласен. Не понимаю, каким нужно быть извращенцем и насколько нужно любить дельфи, чтобы лесенки типа

   do begin
      if ... then
           ... begin
              ... begin
                 
                  end;
             end;
      end;
   end;

называть чудом читаемости. Лично мне визуально очень сложно определить, какой end относится к какому begin'у (отступ в два пробела - это пистец).
Я конечно понимаю, если задачей стоит написать хелловорлд, то такие лесенки не очень-то вложенные, и, в принципе, жить можно. Но если дело касается каких-то довольно-таки сложных математических алгоритмов, то тут-то начинается настоящий вырвиглаз. Сишные { и } визуально превосходные маркеры начала и конца, они прекрасно выделяются среди прочего кода.

Бейсик в этом плане и то лучше.

А уж если говорить об аккуратности оформления — в том числе naming convention — большинства паскалекода, то блевотнее его не найти (хотя нет, соперничает с бейсиком).

Цитата: Nekto от октября 27, 2009, 11:28
С++ рулит!
Не согласен, он уродлив. Ничего лучше нету голого си :)
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от октября 29, 2009, 18:50
:??? По этой логике пользователи Васика должны быть съедены вирусами.
Название: Delphi, QIP и быдлокодерство
Отправлено: Алексей Гринь от октября 29, 2009, 18:52
Басик всю жизнь был интерпретируемым, там так не сделать (муторнее).

Тем более никакой единой среды под него нету, в отличие от Дельфе. Зоопарк же. В каждом зоопарке свои порядки.
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от октября 29, 2009, 18:52
Блоки — в топку, рамочные конструкции — руль!
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от октября 29, 2009, 18:53
Цитата: Алексей Гринь от октября 29, 2009, 18:52
Басик всю жизнь был интерпретируемым, там так не сделать (муторнее).
Я имею в виду ВижуалВасик.
Название: Delphi, QIP и быдлокодерство
Отправлено: Алексей Гринь от октября 29, 2009, 18:56
Цитата: myst от октября 29, 2009, 18:53
Я имею в виду ВижуалВасик.
ВижуалБасик 99% времени использовался как средство для решения неких мелкиъ внутрикорпоративных задач (скриптики, утилитки). Программ — вот чтобы распространяться по миру семимильными шагами и заражать всё и вся — как бы и не было почти.
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от октября 29, 2009, 18:58
Цитата: Алексей Гринь от октября 29, 2009, 18:56
ВижуалБасик 99% времени использовался как средство для решения неких мелкиъ внутрикорпоративных задач (скриптики, утилитки).
Скриптики?! :o :uzhos:

Цитата: Алексей Гринь от октября 29, 2009, 18:56
Программ — вот чтобы распространяться по сети — как бы и не было почти.
Кое-что встречается, Vopt, например, DéjàVu, ещё что-то...
Название: Delphi, QIP и быдлокодерство
Отправлено: Алексей Гринь от октября 29, 2009, 19:04
Цитата: myst от октября 29, 2009, 18:58
Скриптики?! :o :uzhos:
Visual Basic for Applications

Цитата: myst от октября 29, 2009, 18:58
Кое-что встречается, Vopt, например, DéjàVu, ещё что-то...
А где об этом почитать?

Цимес ещё в том, что в басике нету либ для статической линковки (а дельфе похекали их). Разве что курочить рантаймовый dll, но таким образом можно сделать бобо только кокнретным юзерам, девелопера не сломить... Короче, авторам надо лезть в дебри компилятора, а учитывая всю эту их перемуженную архитектуру, дело сложное и нафиг нужное.
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от октября 29, 2009, 19:46
Цитата: Алексей Гринь от октября 29, 2009, 19:04
А где об этом почитать?
Гуглобан? ;)
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от октября 29, 2009, 19:47
Цитата: Алексей Гринь от октября 29, 2009, 19:04
Цимес ещё в том, что в басике нету либ для статической линковки (а дельфе похекали их).
Вот про ето не в курсе.
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от октября 29, 2009, 20:38
Цитата: Алексей Гринь от октября 29, 2009, 18:43
Лично мне визуально очень сложно определить, какой end относится к какому begin'у
Например, я begin-end'ы не называю чудом читаемости. Но язык не может быть сразу хорош или плох во всём.
Насчёт цитируемого - есть рекомендация писать в таких многовложенных блоках комментарий, чей это end. Кстати, а в
Spoiler: parenthesis ⇓⇓⇓
вы не запутываетесь?

Цитата: Алексей Гринь от октября 29, 2009, 18:43
они прекрасно выделяются
и чрезвычайно похожи (если холиварить)

naming conventions тоже кому что. sumofproducts хуже sumOfProducts. Не знаю, какой из двух вариантов распространён, но для си-подобных языков мне ближе второй.

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

C++'овское <dynamic_cast> и подобные коробят. (Но вроде их не так часто приходится использовать?) Но #define вместо нормльных констант и inline-функций тоже не айс.

Вообще, лучше составлять подробнейшую таблицу и уж по ней сравнивать
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от октября 29, 2009, 20:41
Цитата: arseniiv от октября 29, 2009, 20:38
Но #define вместо нормльных констант и inline-функций тоже не айс.
:o :o :o :o :o :o
:o В C++-то?! :o
:o :o :o :o :o :o
Название: Delphi, QIP и быдлокодерство
Отправлено: addewyd от октября 29, 2009, 20:48
Цитата: Nekto от октября 27, 2009, 11:28
Паскаль и паскалеподобные языки богомерзки и уродливы по своей природе.
С++ рулит!
та же хрень вид сбоку

Название: Delphi, QIP и быдлокодерство
Отправлено: addewyd от октября 29, 2009, 20:50
Цитата: Алексей Гринь от октября 29, 2009, 18:43
насколько нужно любить дельфи, чтобы лесенки типа

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

Название: Delphi, QIP и быдлокодерство
Отправлено: Алексей Гринь от октября 30, 2009, 01:48
Цитата: addewyd от октября 29, 2009, 20:50
кто заставляет такие лесенки строить?
Алгоритм

Цитата: arseniiv от октября 29, 2009, 20:38
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 раз больше буков
Название: Delphi, QIP и быдлокодерство
Отправлено: Karakurt от октября 30, 2009, 01:57
Они же цветом выделяются! :D
Название: Delphi, QIP и быдлокодерство
Отправлено: злой от октября 30, 2009, 05:54
Асм рулит:

        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           
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от октября 30, 2009, 14:37
Цитата: Алексей Гринь от октября 30, 2009, 01:48
Вот фиг знает, первое намного читабельнее, во втором случае визуально бегины и енды оч плохо отличимы от имён переменных и функций, вырвиглаз же
(выделено мной)
Если вы пишете в Блокноте ;D В "нормальных" средах всегда ключевые слова вяделяются (а у вас не выделяются? :o)
А, уже Karakurt сказал.

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

Цитата: myst от октября 29, 2009, 20:41
:o :o :o :o :o :o
:o В C++-то?! :o
:o :o :o :o :o :o
Ну, в том предложении Алексей Гринь говорил, что C лучше C++...
Название: Delphi, QIP и быдлокодерство
Отправлено: Алексей Гринь от октября 30, 2009, 14:43
Цитата: arseniiv от октября 30, 2009, 14:37
В "нормальных" средах всегда ключевые слова вяделяются
Говорили о языке, теперь снова о среде. Воистину поцкакалисты не отличают язык от среды.

Предлагаю вариант — использовать ключевые слова begin, bgein, end, nde, edn, ebgin, но для наглядности в среде раскрашивать в разные цвета (розовый, малиновый).
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от октября 30, 2009, 17:04
;D
Извините, что привёл среду, но и вы сказали, что эти слова схожи с просто идентификаторами - входя в зависимость от сред, потому что кто знает, может, в гипотетической среде набранные ключевые слова превращаются в смайлики?
Название: Delphi, QIP и быдлокодерство
Отправлено: Алексей Гринь от октября 31, 2009, 04:41
Просто на деле получается невнятный костыль (якобы для улучшения читаемости), который прикрывается другими костылями (подсветка в IDE, якобы архикрутая фишка). Смысл? Легче сразу перейти на Си :)
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от октября 31, 2009, 22:50
Цитата: Алексей Гринь от октября 30, 2009, 01:48
Вот фиг знает, первое намного читабельнее, во втором случае визуально бегины и енды оч плохо отличимы от имён переменных и функций, вырвиглаз же
Вырвиглаз лечится нормальным форматированием исходного текста. Это справедливо для любого языка.
Название: Delphi, QIP и быдлокодерство
Отправлено: Алексей Гринь от ноября 1, 2009, 02:40
Цитата: myst от октября 31, 2009, 22:50
Вырвиглаз лечится нормальным форматированием исходного текста
По моим наблюденим, у дельфифилов отступ стандартно равен двум пробелам, а это вырвиглаз.
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 1, 2009, 13:24
Цитата: Алексей Гринь от ноября  1, 2009, 02:40
По моим наблюденим, у дельфифилов отступ стандартно равен двум пробелам, а это вырвиглаз.
Ладно хоть не один. :)
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от ноября 1, 2009, 14:53
Два пробела может, потому, что такой в справке ;D
А мне и двух пробелов хватает, три не нравится, а четыре — для меня вырвиглаз. Стоит только достигнуть небольшой вложенности, как эти четырёхпробельные строки улетают далеко-далеко...
Вообще, среди плохих программистов (что есть, то есть — среди пользователей Delphi их больше (хотя сравнить с Васиком... ::) )) отступы не приняты. Жаль, конечно...

Кстати, один пробел — для меня то же, что и четыре.
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 1, 2009, 15:07
Пробелы — это ещё не всё.
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от ноября 1, 2009, 15:24
Конечно же, нет. Но они уже должны быть обязательными. :)

Кстати, это сказки, что в Pascal (а уже в нём было) and и or сравнение производят до конца. В "0 and A" A вычисляться не будет.
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 1, 2009, 15:52
Цитата: arseniiv от ноября  1, 2009, 15:24
Но они уже должны быть обязательными. :)
Обязательным должен быть целостный стиль.
Название: Delphi, QIP и быдлокодерство
Отправлено: Python от ноября 1, 2009, 16:00
Цитата: Nekto от октября 27, 2009, 11:28
Паскаль и паскалеподобные языки богомерзки и уродливы по своей природе.
С++ рулит!
С-подобный синтаксис более лаконичен, чем паскалеподобный, содержит больше удобных возможностей, С-подобные языки имеют более продвинутые компиляторы и библиотеки функций, но:
1) синтаксис описания переменных очень неудобен. Что такое int *a[10][10] - это двумерный массив указателей, массив указателей на массивы, указатель на двумерный массив?
2) порядок выполнения операций, не совпадающий в разных реализациях С и С-подобных языков;
3) С-шный switch-case, благополучно перекочевавший во все С-клоны - не что иное, как пережиток эпохи царствования оператора goto. По существу, это не структурированный выбор, как if-then-else или паскалевский case, а переход на метку с последующим выходом через break. Пропуск break ошибкой не является, хотя обычно ведет к ошибочным результатам.
4) ..................

В общем, придраться можно много к чему.
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 1, 2009, 16:15
Цитата: arseniiv от ноября  1, 2009, 15:24
Кстати, это сказки, что в Pascal (а уже в нём было) and и or сравнение производят до конца. В "0 and A" A вычисляться не будет.
Implementation-dependent.
Название: Delphi, QIP и быдлокодерство
Отправлено: Python от ноября 1, 2009, 16:27
P.S. Если уж зашла речь о case, наиболее продвинутым по функциональности является select-case в структурированных бейсиках (Quick BASIC, TurboBasic, VBA и под.), предусматривающий диапазоны, идущие в бесконечность (case is>100). Чуть менее продвинуты паскаль и делфи: есть дипазоны в пределах конкретных значений. В С-подобном синтаксисе диапазон можно задать лишь путем перечисления всех значений, входящих в диапазон.
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от ноября 1, 2009, 16:48
Цитата: Python от ноября  1, 2009, 16:00
1) синтаксис описания переменных очень неудобен. Что такое int *a[10][10] - это двумерный массив указателей, массив указателей на массивы, указатель на двумерный массив?
Обеими руками да! :up: И этот страшный typedef, совершенно нечайно разобрался, как им пользоваться.
Case в Delphi, кстати, ещё и оптимизируется, и некоторые операторы case работают быстрее аналогичной системы if.

Offtop
О хорошести языков:
Я вот создаю себе pas-модуль для языка сценариев. Вопреки предположениям, он имеет вообще Scheme-подобный синтаксис. ;D (Но нет типизации, парадигма больше императивная, есть функции-значения; но руки всё ещё не дошли...) Хотя я бы предпочёл JavaScript - но его реализацию для Delphi я не находил (а системно-зависимость мне не нужна).
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 1, 2009, 17:01
Цитата: arseniiv от ноября  1, 2009, 16:48
Case в Delphi, кстати, ещё и оптимизируется, и некоторые операторы case работают быстрее аналогичной системы if.
Неужели делфистроители таки осилили эту оптимизацию?
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 1, 2009, 17:02
Цитата: Python от ноября  1, 2009, 16:00
2) порядок выполнения операций, не совпадающий в разных реализациях С и С-подобных языков;
Не понял, о чём речь?
Название: Delphi, QIP и быдлокодерство
Отправлено: Python от ноября 1, 2009, 17:10
Цитата: myst от ноября  1, 2009, 17:02
Не понял, о чём речь?
http://lurkmore.ru/%2B%2Bi_%2B_%2B%2Bi
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 1, 2009, 17:38
Цитата: Python от ноября  1, 2009, 17:10
Цитата: myst от ноября  1, 2009, 17:02
Не понял, о чём речь?
http://lurkmore.ru/%2B%2Bi_%2B_%2B%2Bi
:wall: Опять про это?! В стандарте же ясно сказано, что это неопределённость. Низачот.
Название: Delphi, QIP и быдлокодерство
Отправлено: Bhudh от ноября 1, 2009, 18:17
Зато Жабе зачот.
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 1, 2009, 18:20
Цитата: Bhudh от ноября  1, 2009, 18:17
Зато Жабе зачот.
Корка в том, что буквально несколькими сообщениями ранее упоминали паскальную неопределённость. :) Гораздо более неприятную.
Название: Delphi, QIP и быдлокодерство
Отправлено: Алексей Гринь от ноября 1, 2009, 19:00
Цитата: arseniiv от ноября  1, 2009, 15:24
Кстати, это сказки, что в Pascal (а уже в нём было) and и or сравнение производят до конца. В "0 and A" A вычисляться не будет.
А если я хочу именно a | b, а не a || b? Да-да, я быдлокодер, и у меня куча side-effects! (нопремер)

В Басике же ввели AndAlso и OrElse (в придачу к And и Or).

Цитата: Python от ноября  1, 2009, 16:00
С-шный switch-case, благополучно перекочевавший во все С-клоны - не что иное, как пережиток эпохи царствования оператора goto.
Вы так говорите, как будто goto — это что-то плохое.

Цитироватьсинтаксис описания переменных очень неудобен. Что такое int *a[10][10] - это двумерный массив указателей, массив указателей на массивы, указатель на двумерный массив?
Ну это мелочи и частности. В остальном же очень удобно и лаконично:
  int i; /* 6 знаков */

вместо
  var i: Integer; /* 15 знаков... */

Вот спасибо, из-за случая непоняток с определением двумерного массива указателей на целое (который встречается < 1%) не хочется мне раздувать код и пальцы в 2 раза в ущерб всему остальному (а это будет >90% случаев). Дельфологика такая дельфологика...

И вообще чего вы хотели от Си, там типизация сделана тупо для более простой выборки нужного байта по нужному смещению.
Я бы вообще массивы отменил, только голая pointer arithmetic! :)

Цитата: Python от ноября  1, 2009, 16:27
P.S. Если уж зашла речь о case, наиболее продвинутым по функциональности является select-case в структурированных бейсиках (Quick BASIC, TurboBasic, VBA и под.), предусматривающий диапазоны, идущие в бесконечность (case is>100). Чуть менее продвинуты паскаль и делфи: есть дипазоны в пределах конкретных значений. В С-подобном синтаксисе диапазон можно задать лишь путем перечисления всех значений, входящих в диапазон.
Ну это да, фиговенько. Но на производительности несказыввается, для нелитеральных значений джамп-тейбл вроде как не сделать :'(

Цитата: arseniiv от ноября  1, 2009, 16:48
Case в Delphi, кстати, ещё и оптимизируется, и некоторые операторы case работают быстрее аналогичной системы if.
Да в Си с давних пор так — через джамптейблы делается. В Си вообще любят всякие хитроумные бинарные оптимизации, дельфисты тут в хвосте тянутся.

Цитата: Python от ноября  1, 2009, 16:00
а переход на метку с последующим выходом через break
Брейк вообще тупой — нет возможности нормально выходить из вложенных циклов (в Жабе пофиксили)

Цитата: arseniiv от ноября  1, 2009, 16:48
этот страшный typedef, совершенно нечайно разобрался, как им пользоваться.
А что с ним не так?
Это хорошая, годная вещь.

Цитата: Python от ноября  1, 2009, 16:00
В общем, придраться можно много к чему.
Самый смешной синтаксис — у богомерзкого с++.
Вспоминается из перлов:

Страуструп был так умён, что не смог научить свой токенайзер отличать >> от > >, в итоге вложенные темплейты надо писать так:
   List<List<int> > (с обязательным пробелом! В Сишарпе пофиксили)

Или вот например:

Point p(10, 20); /* это создание в стеке точки */
Point p();          /* это вовсе не создание в стеке точки с нулём параметров */
Point p;            /* а вот это уже оно */

Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от ноября 1, 2009, 19:33
Цитата: Алексей Гринь от ноября  1, 2009, 19:00
А если я хочу именно a | b
Тогда берёте и окружаете ваше условие малюсенькими директивами компилятора, и всё готово - опция настраиваемая. Или можете для всего проекта или модулей включать, как душе угодно! (А если вам побитное нужно - оно тоже, конечно, есть, ну вы сами, наверно, знаете.)

Цитата: Алексей Гринь от ноября  1, 2009, 19:00
В Басике же ввели AndAlso и OrElse (в придачу к And и Or)
Угадайте, чем мне больше всего не нравится Барсик? Громоздкостью конструкций! (А ещё ужасным ООП, но то не касается .NET, в который и добавили эти AndAlso, OrElse и прочую кутерьму. Хотя к .NET'у там переделали ужаснейший оператор Dim, но и в новом варианте он всё же слишком - зачем нужно это дурацкое As!)

Цитата: Алексей Гринь от ноября  1, 2009, 19:00
Я бы вообще массивы отменил, только голая pointer arithmetic! :)
Ну так их там и так нет (в C): a ≡ *(a + i) ≡ i[a] ≡ [a]i ≡ a

Цитата: Алексей Гринь от ноября  1, 2009, 19:00
Это хорошая, годная вещь.
Согласен, но если не касаться его синтаксиса (как и синтаксиса указателей на функции с различнейшими параметрами вроде других указателей на указатель на функцию)
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 1, 2009, 19:53
Цитата: arseniiv от ноября  1, 2009, 19:33
Согласен, но если не касаться его синтаксиса (как и синтаксиса указателей на функции с различнейшими параметрами вроде других указателей на указатель на функцию)
Не понял мысль. :what:
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от ноября 1, 2009, 19:56
typedef int (*Strcomp)(char *, char *);
Ну страшно же!
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 1, 2009, 20:26
Цитата: arseniiv от ноября  1, 2009, 19:56
Ну страшно же!
Что же здесь страшного?
Название: Delphi, QIP и быдлокодерство
Отправлено: Python от ноября 1, 2009, 20:34
Цитата: Алексей Гринь от ноября  1, 2009, 19:00
Вы так говорите, как будто goto — это что-то плохое.
Всю жизнь меня учат, что goto - это что-то плохое. В Џаве от него даже избавились (правда, переложив все его функции на break с меткой :) )
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от ноября 1, 2009, 20:34
Цитата: myst от ноября  1, 2009, 20:26
Что же здесь страшного?
А вот определите тип посложнее...
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от ноября 1, 2009, 20:37
Цитата: Python от ноября  1, 2009, 20:34
меня учат, что goto - это что-то плохое
Надо сделать замену в их учениях на "неумеренность - это что-то плохое" :)
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 1, 2009, 20:49
Цитата: arseniiv от ноября  1, 2009, 20:34
А вот определите тип посложнее...
Делать это в несколько этапов не позволяет вера или ненависть к читателю? ;)
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 1, 2009, 20:52
C плох тем, что ни рыба ни мясо (недостаточно высокоуровневый и недостаточно низкоуровневый). От того и наслаждаемся сегфолтами, эксплойтами на переполнение стека etc., и в то же время невозможно определить целый тип с нужным порядком байт, например.
Название: Delphi, QIP и быдлокодерство
Отправлено: Python от ноября 1, 2009, 20:53
Цитата: Алексей Гринь от ноября  1, 2009, 19:00
Вот спасибо, из-за случая непоняток с определением двумерного массива указателей на целое (который встречается < 1%) не хочется мне раздувать код и пальцы в 2 раза в ущерб всему остальному (а это будет >90% случаев). Дельфологика такая дельфологика...
Пусть массив будет одномерным - все равно есть риск разночтения, если не помнишь правила описания на все 100%. Синтаксис неочевиден. В бейсике можно вообще описаний не делать - экономия знаков еще больше получится.

Все было бы намного проще, будь оператор указателя не префиксным, а постфиксным:
int a[10][10]@;
int b[10]@[10];
int c@[10][10];
int i;

a[1][0] = &i;
a[1][0]@ = 13;
Название: Delphi, QIP и быдлокодерство
Отправлено: Алексей Гринь от ноября 1, 2009, 22:02
Цитата: arseniiv от ноября  1, 2009, 19:33
Согласен, но если не касаться его синтаксиса (как и синтаксиса указателей на функции с различнейшими параметрами вроде других указателей на указатель на функцию)
Да фиг знает, это вам толкьо если при взгляде после долгих лет любви дельфи кажется сложным.

Ничего сложного в каком-нить typedef void(*TimerProc)(Timer* self, long elapsed); ну не вижу я... Я этот синтаксис настолько полюбил, что указатели на функции совсем не тайпдефю, так и оставляю внутри сигнатуры метода целиком (если, конечно, аргументов не очень много), вроде такого:

AGTimer* AGTimer_Create(AGUint interval, AGVoid(*onTick)(AGTimer* self));

Ну ясно же. Если параметров слишком много — это архитектура приложения скорей всего кривая, а не Си.

Цитата: Python от ноября  1, 2009, 20:53
Пусть массив будет одномерным - все равно есть риск разночтения, если не помнишь правила описания на все 100%. Синтаксис неочевиден
Не знаю, зачем может пригодиться массив указателей на целые числа (целое число легче сразу копировать, нежели на него зачем-то ссылаться)... Ситуация надуманная, по-моему.

Цитата: arseniiv от ноября  1, 2009, 19:33
Ну так их там и так нет (в C): a ≡ *(a + i) ≡ i[a] ≡ [a]i ≡ a
Но ведь
   char buf[128];

совсем не то же самое, что и
   char* buff;

На деле отличия от buff = malloc(sizeof(char) * 128) тут мало, единственное, что буфер создаётся не на куче, а in-place: в стеке или как часть структуры... Т.е. можно было бы, по сути, обойти чем-нибудь типа buff = stackalloc(128). Но си лаконичнее, чем мой перфекционизм :)

Цитата: myst от ноября  1, 2009, 20:52
недостаточно низкоуровневый
Шо сие значит?

Цитата: arseniiv от ноября  1, 2009, 19:33
Согласен, но если не касаться его синтаксиса (как и синтаксиса указателей на функции с различнейшими параметрами вроде других указателей на указатель на функцию)
Если вы так боитесь рекурсии, не программируйте вообще :)

Цитата: Python от ноября  1, 2009, 20:34
Всю жизнь меня учат, что goto - это что-то плохое.
Ой, ну так же и с лекарствами: одна таблетка — лечит, двадцать сразу — калечат.
goto хорош в некоторых нетривиальных случаях. Намного забавнее, когда подобные жабисты вместо одного возможного простого и лаконичного goto лепят огромные бессмысленные if-then-ветления с кучей флагов, которые вырвиглаз и ужас (зато goto не употреблено — мы молодцы).

Цитата: arseniiv от ноября  1, 2009, 19:56
typedef int (*Strcomp)(char *, char *);
NO WAY

А вообще, как я заметил, большую любовь к поцкакалю и дельфям испытывают те, кто им баловался в детстве: в школе или в вузе (как первый ЯП, нопремер). Привитая, так скать, с младых ногтей любовь. Меня это как-то обошло стороной, и с басика я сразу перешёл на си. Посмотрел на эту дельфю, поплевался, пошёл дальше. Никакой психоэмоциональной привязки (от этого проги и сегфолтят) к ним нету, и слава богу. Ничего личного, только холодный расчёт :)
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 1, 2009, 22:27
Цитата: Алексей Гринь от ноября  1, 2009, 22:02
Шо сие значит?
Именно сие и значит.

Цитата: Алексей Гринь от ноября  1, 2009, 22:02
buff = malloc(sizeof(char) * 128)
Цитата: Алексей Гринь от ноября  1, 2009, 22:02
sizeof(char)
:o
Название: Delphi, QIP и быдлокодерство
Отправлено: Python от ноября 1, 2009, 22:28
Цитата: Алексей Гринь от ноября  1, 2009, 22:02
Не знаю, зачем может пригодиться массив указателей на целые числа
А если не целые числа, а структуры или еще что-то крупногабаритное?
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 1, 2009, 22:30
Цитата: Алексей Гринь от ноября  1, 2009, 22:02
goto хорош в некоторых нетривиальных случаях.
Ты прав, но теговый break всё равно бы не помешал. :)
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 1, 2009, 22:31
Цитата: Алексей Гринь от ноября  1, 2009, 22:02
А вообще, как я заметил, большую любовь к поцкакалю и дельфям испытывают те, кто им баловался в детстве: в школе или в вузе (как первый ЯП, нопремер).
Мне это не помогло. ;)
Название: Delphi, QIP и быдлокодерство
Отправлено: Алексей Гринь от ноября 1, 2009, 22:32
Цитата: myst от ноября  1, 2009, 22:27
Цитироватьbuff = malloc(sizeof(char) * 128)
Цитата: Алексей Гринь от Сегодня в 00:02
Цитироватьsizeof(char)
:o
Не понял?

Цитата: Python от ноября  1, 2009, 22:28
А если не целые числа, а структуры или еще что-то крупногабаритное?
У крупногабаритного и подход другой. Уж точно не статические массивы...

Цитата: myst от ноября  1, 2009, 22:27
ЦитироватьШо сие значит?
Именно сие и значит.
Не понял.

Цитата: myst от ноября  1, 2009, 22:31
ЦитироватьА вообще, как я заметил, большую любовь к поцкакалю и дельфям испытывают те, кто им баловался в детстве: в школе или в вузе (как первый ЯП, нопремер).
Мне это не помогло. ;)
А я так и не понял твоей позиции. Ненависть?
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 1, 2009, 22:35
Цитата: Алексей Гринь от ноября  1, 2009, 22:32
Не понял?
Просто единицу-то низзя было написать? ;)

Цитата: Алексей Гринь от ноября  1, 2009, 22:32
А я так и не понял твоей позиции. Ненависть?
Я не испытываю чувств к языкам программирования. :)
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 1, 2009, 22:37
Цитата: Алексей Гринь от ноября  1, 2009, 22:32
Не понял.
Например, описывая структуру, нельзя управлять выравниванием её полей, про порядок байт многобайтовых числовых типов я уже говорил.
Название: Delphi, QIP и быдлокодерство
Отправлено: Алексей Гринь от ноября 1, 2009, 22:38
Цитата: myst от ноября  1, 2009, 22:35
Просто единицу-то низзя было написать? ;)
В Plain C размер чара вообще-то равен 4 байтам (точнее литерал) :) Вообще писать прямые значения это не труъ и не кроссплатформенно. Авось на каких платформах (особливо, скажем, во встроенных) какие-то свои правила и ограничения. Не надо так. Да и красивее так: точно видим, что это 128 чаров, а не 128 каких-то непонятных четырьбайтов (или однобайтов — поди вот разберись).
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 1, 2009, 22:42
Цитата: Алексей Гринь от ноября  1, 2009, 22:38
В Plain C размер чара вообще-то равен 4 байтам :)
Ты это аккуратней, я чуть семечками не подавился. :negozhe:

Цитата: Алексей Гринь от ноября  1, 2009, 22:38
Вообще писать прямые значения это не труъ и не кроссплатформенно.
sizeof(char) == sizeof(unsigned char) == sizeof(signed char) == 1 по определению. См. стандарт.
Название: Delphi, QIP и быдлокодерство
Отправлено: Алексей Гринь от ноября 1, 2009, 22:47
Цитата: myst от ноября  1, 2009, 22:42
ЦитироватьВ Plain C размер чара вообще-то равен 4 байтам :)
Ты это аккуратней, я чуть семечками не подавился. :negozhe:
Я сначала пишу, потом думаю. Поэтому у меня почти у каждого поста правки :)

Цитата: myst от ноября  1, 2009, 22:42
ЦитироватьВообще писать прямые значения это не труъ и не кроссплатформенно.
sizeof(char) == sizeof(unsigned char) == sizeof(signed char) == 1 по определению. См. стандарт.
Ну, блин, можно и функцию назвать, допустим, не GetRelativePosition, а что-нибудь типа getrp. И энумерации не использовать, а сразу везде 1, 2, 3 пихать. Компутеру-то разницы нет, но читаемость человекам разная. Короче, sizeof(char) * n точно указывает, что нам нужно n char'ов, а не байтов или ещё чего натайпдефенного. Вот у таких умных, которые хотят сокращать там, где не надо, потом всякие сегфолты и хип-коррапшны вылазят. А у меня они раз в год вылазят.
Название: Delphi, QIP и быдлокодерство
Отправлено: Алексей Гринь от ноября 1, 2009, 22:49
У меня ещё такая паранойя из-за разницы в ширине wchar_t на разных платформах, а я перфекционист, поэтому если правило применимо к wchar_t, то я его для симметрии применяю и для char...
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 1, 2009, 22:56
Цитата: Алексей Гринь от ноября  1, 2009, 22:47
Короче, sizeof(char) * n точно указывает, что нам нужно n char'ов, а не байтов или ещё чего натайпдефенного.
sizeof() определяет размер типа в байтах. Смекаешь? ;)
Название: Delphi, QIP и быдлокодерство
Отправлено: Алексей Гринь от ноября 1, 2009, 22:58
И ччччо? Ну я его и пихаю дальше в malloc, который принимает количество байтов. Главное — читаемость. Не понимаю ваще, чо не так.

malloc(sizeof(char) * 128) = «выдели мне памяти под 128 чаров»
malloc(128) = «выдели мне памяти под 128 байт»

Неужто не чуешь эзотерической разницы? :)

Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 1, 2009, 22:59
Цитата: Алексей Гринь от ноября  1, 2009, 22:47
И энумерации не использовать, а сразу везде 1, 2, 3 пихать.
Именованные константы нужны для понимания текста. В данном случае всем известно, что аргумент — размер.
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 1, 2009, 23:00
Цитата: Алексей Гринь от ноября  1, 2009, 22:58
malloc(sizeof(char) * 128) = «выдели мне памяти под 128 чаров»
malloc(128) = «выдели мне памяти под 128 байт»

Неужто не чуешь эзотерической разницы? :)
Патамушто её нет. Размер char'а — 1 байт.  :yes:
Название: Delphi, QIP и быдлокодерство
Отправлено: Алексей Гринь от ноября 1, 2009, 23:01
Цитата: myst от ноября  1, 2009, 22:59
В данном случае всем известно, что аргумент — размер.
Но вот только неизвестно, размер какой логической единицы. А sizeof(char) немного проясняет.

Цитата: myst от ноября  1, 2009, 23:00
Патамушто её нет. Размер char'а — 1 байт.  :yes:
О да, если у двух типов один и тот же размер — это один и тот же тип. Ну что за глупости
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 1, 2009, 23:03
Цитата: Алексей Гринь от ноября  1, 2009, 23:01
Но вот только неизвестно, размер какой логической единицы. А sizeof(char) немного проясняет.
А как же тип указателя, которому присваивается результат?
Название: Delphi, QIP и быдлокодерство
Отправлено: Алексей Гринь от ноября 1, 2009, 23:04
Цитата: myst от ноября  1, 2009, 23:03
ЦитироватьНо вот только неизвестно, размер какой логической единицы. А sizeof(char) немного проясняет.
А как же тип указателя, которому присваивается результат?

Вот например:

str->bydlo_field.bydlof_field2->sztrfpssdd = malloc(128);

Объясните мне, что такое malloc(128), и для чего оно. Это надо лезть, чо-то смотреть. А с sizeof(char) * 128 становится немного понятней.
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 1, 2009, 23:05
Цитата: Алексей Гринь от ноября  1, 2009, 23:01
О да, если у двух типов один и тот же размер — это один и тот же тип. Ну что за глупости
Мы говорим конкретно про char.
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 1, 2009, 23:06
Цитата: Алексей Гринь от ноября  1, 2009, 23:04
Это надо лезть, чо-то смотреть. А с sizeof(char) * 128 становится немного понятней.
Для понимания программы тебе неизбежно это понадобится.
Название: Delphi, QIP и быдлокодерство
Отправлено: Алексей Гринь от ноября 1, 2009, 23:08
Цитата: myst от ноября  1, 2009, 23:05
Мы говорим конкретно про char.
Уж нет, это я говорю про логический тип char, а ты мне втираешь всё про байты, которыми этот тип реализуется. Мне вообще должно быть пофигу, как оно там реализуется. Не люблю, когда кишки реализации выставлены там, где не надо (ой-вей, инкапсуляций!).

Цитата: myst от ноября  1, 2009, 23:06
ЦитироватьЭто надо лезть, чо-то смотреть. А с sizeof(char) * 128 становится немного понятней.
Для понимания программы тебе неизбежно это понадобится.
Но надо-таки признать, что sizeof(char) * 128 упростит процесс понимания.
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 1, 2009, 23:15
Цитата: Алексей Гринь от ноября  1, 2009, 23:08
Уж нет, это я говорю про логический тип char, а ты мне втираешь всё про байты, которыми этот тип реализуется.
char и есть байт.

Цитата: Алексей Гринь от ноября  1, 2009, 23:08
Но надо-таки признать, что sizeof(char) * 128 упростит процесс понимания.
Масло маслишь.
Название: Delphi, QIP и быдлокодерство
Отправлено: Алексей Гринь от ноября 1, 2009, 23:16
И ваще бесит: в одном месте у нас malloc(sizeof(Bydlo)), в другом — просто malloc(100)... Нет уж, мы и во втором случае будем придерживаться хуман гуиделинес.

Системность! Орднунг!

Цитата: myst от ноября  1, 2009, 23:15
char и есть байт.
У меня свои закидоны, я рассматриваю Си с точки зрения ООП, и вроде всё нормально, живой ещё.
Для меня char, будучи реализованный как часть строки — в первую очередь логический тип "символ", и только потом какой-то там никому не всравшийся байт. Алсо, Орднунг!
Название: Delphi, QIP и быдлокодерство
Отправлено: Bhudh от ноября 1, 2009, 23:20
Цитата: mystchar и есть байт.
Извини, но ты знаешь, как я люблю Юникод:
Цитата: WikiСимвольный тип (Сhar) — простой тип данных, предназначенный для хранения одного символа в определённой кодировке. Может являться как однобайтовым (для стандартной таблицы символов), так и многобайтовым (к примеру, для Юникода).
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 1, 2009, 23:21
Цитата: Bhudh от ноября  1, 2009, 23:20
Извини, но ты знаешь, как я люблю Юникод:
Какое отношение эта цитата имеет к C?
Название: Delphi, QIP и быдлокодерство
Отправлено: Bhudh от ноября 1, 2009, 23:24
Это она сейчас не имеет. А прочтёт сие кто-нибудь лет через x...
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 1, 2009, 23:25
Цитата: Bhudh от ноября  1, 2009, 23:24
Это она сейчас не имеет. А прочтёт сие кто-нибудь лет через x...
И?
Название: Delphi, QIP и быдлокодерство
Отправлено: Bhudh от ноября 1, 2009, 23:27
Здоровье потомков для тебя ничто? :'(
Название: Delphi, QIP и быдлокодерство
Отправлено: Алексей Гринь от ноября 1, 2009, 23:27
Каким типом шифровать utf8 в сяшечках? Чар == байт? Тогда мы идём к вам!
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 1, 2009, 23:29
Цитата: Bhudh от ноября  1, 2009, 23:27
Здоровье потомков для тебя ничто? :'(
Не понял. :what:
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 1, 2009, 23:30
Цитата: Алексей Гринь от ноября  1, 2009, 23:27
Чар == байт?
char — это байт.
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 1, 2009, 23:31
Цитата: Алексей Гринь от ноября  1, 2009, 23:27
Каким типом шифровать utf8 в сяшечках?
Тоже не понял, особенно про шифровать.
Название: Delphi, QIP и быдлокодерство
Отправлено: Алексей Гринь от ноября 1, 2009, 23:45
Цитата: myst от ноября  1, 2009, 23:30
char — это байт.
По ширине — да. Но не логически (про чо я втираю-то)

Я по ширине тоже много на кого похож
Название: Delphi, QIP и быдлокодерство
Отправлено: Bhudh от ноября 1, 2009, 23:47
Offtop
Цитата: Алексей ГриньЯ по ширине тоже много на кого похож
Даже интересно стало...
Название: Delphi, QIP и быдлокодерство
Отправлено: Алексей Гринь от ноября 1, 2009, 23:55
Задолбало короче, мы говорим, похоже, о разных вещах :)
Название: Delphi, QIP и быдлокодерство
Отправлено: Python от ноября 2, 2009, 01:37
Цитата: Алексей Гринь от ноября  1, 2009, 22:32
У крупногабаритного и подход другой. Уж точно не статические массивы...
Хорошо, что есть С-шным аналогом динамических массивов, используемых в Делфи? То, что в одном языке является стандартным средством, в другом превращается в некое изобретение велосипеда («прострелить ногу несколькими способами, несовместимыми между собой»). Впрочем, ранний Pascal этих средств не имел.
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 2, 2009, 02:18
Цитата: Алексей Гринь от ноября  1, 2009, 23:55
Задолбало короче, мы говорим, похоже, о разных вещах :)
Ладно, давай вернёмся к главному — к недостаточной низкоуровневости. :)
Название: Delphi, QIP и быдлокодерство
Отправлено: jvarg от ноября 2, 2009, 09:09
Цитата: Nekto от октября 27, 2009, 11:28
Паскаль и паскалеподобные языки богомерзки и уродливы по своей природе.

Вообще то Вирт создавал Паскаль, как чисто учебный язык. Все эти «бигинэнды» должны были просто иллюстрировать процедурный поход. Для практического использования язык не предполагался.

Правда, бывшие студенты, ставшие программистами, часто предпочитали использовать уже знакомый им, пусть и корявый Паскаль, а не изучать новые языки, так он и разошелся по свету.
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от ноября 2, 2009, 16:47
Цитата: Алексей Гринь от ноября  1, 2009, 22:02
Если вы так боитесь рекурсии, не программируйте вообще :)
Да что мне её бояться. Просто её значимость сильно преувеличена. Она нужна только там, где она родна.
;D (Офф.) Я раз разворачивал себе рекурсивный перебор в глубину в перебор в ширину (хотя там так ничего и не вышло, с кучей оптимизаций - искал путь к решению головоломки; даже теория групп и GAP не помогли ;D)
Цитата: Алексей Гринь от ноября  1, 2009, 22:02
NO WAY
???
Цитата: Алексей Гринь от ноября  1, 2009, 22:02
А вообще, как я заметил, большую любовь к поцкакалю и дельфям испытывают те, кто им баловался в детстве: в школе или в вузе (как первый ЯП, нопремер). Привитая, так скать, с младых ногтей любовь. Меня это как-то обошло стороной, и с басика я сразу перешёл на си.
А я начинал вообще с игрового Васика, ;D потом был страшенный VB6, а Delphi я кидать не собираюсь. Вот как раз приплыла версия 2005, пойду ставить... :-P Перепишу свой старенький-страшненький модуль для матриц, добавив перегруженные операторы... Слишком ли я приземлён? ;D

Подождите, не кричите на меня ( ;D ), я ещё не дочитал новые страницы...
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 2, 2009, 16:52
Да бох с ним, с Delphi, он не нужен. Давайте обсуждать негодность С как переносимого ассемблера. ;)
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от ноября 2, 2009, 17:05
Цитата: Bhudh от ноября  1, 2009, 23:20
как я люблю Юникод:
Ураа! Я тоже
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от ноября 2, 2009, 17:12
Давайте! Только у меня пока никаких аргументов ещё нет, ни pros, ни cons.
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 2, 2009, 17:25
Зато у меня есть. :) Хочу доступ к битам по индексу. Где? Как указывать банк памяти для переменных (стека и сегмента данных явно недостаточно). Как? Где битовое вращение, в конце концов? Колхозная номенклатура базовых типов тоже побешивает. :smoke:
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от ноября 2, 2009, 17:33
;D Да, надо BYTE, WORD, DWORD, QWORD, OWORD, XWORD, TDWORD, HWORD...
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 2, 2009, 18:36
Цитата: arseniiv от ноября  2, 2009, 17:33
;D Да, надо BYTE, WORD, DWORD, QWORD, OWORD, XWORD, TDWORD, HWORD...
Эта номенклатура не менее колхозная.
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от ноября 2, 2009, 18:42
Батюшки! Так вам BYTE[1], BYTE[2], ..., BYTE{n], ..., BYTE[∞]?
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 2, 2009, 18:46
Цитата: arseniiv от ноября  2, 2009, 18:42
Батюшки! Так вам BYTE[1], BYTE[2], ..., BYTE{n], ..., BYTE[∞]?
:o Что это за изврат?
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от ноября 2, 2009, 18:47
Ну, можете заменить [] на ()... А как надо-то?
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 2, 2009, 18:57
Цитата: arseniiv от ноября  2, 2009, 18:47
Ну, можете заменить [] на ()... А как надо-то?
Надо, чтобы наглядно было. В названии должен указываться тип и разрядность. Сам я любитель стиля int8, uint16, flt64 и т. п., но это не принципиально. Главное, чтобы по одному названию было всё понятно.
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от ноября 2, 2009, 19:00
Я так тоже думаю, но вы же хотите настраиваемость. Поэтому нужны типы int[const uint[1]] и uint[const uint[1]]
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 2, 2009, 19:05
Цитата: arseniiv от ноября  2, 2009, 19:00
Поэтому нужны типы int[const uint[1]] и uint[const uint[1]]
Что это такое?
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от ноября 2, 2009, 19:13
Описание синтаксиса без разделения, где строковые литералы, а где типы выражения, которое можно подставить... ::)

Точнее: это я *шутю так ;D
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 2, 2009, 20:13
У Вас таки дар непонятно выражаться. :)
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от ноября 3, 2009, 13:12
Я специально! ;D

Это, можно сказать, "рекурсивное" "определение" (хотя вообще её даже нет). Надо так (описание в формальной грамматике этого пока фиктивного языка):
UintType → "uint" "[" Выражение_типа_uint[1] "]" // unsigned n-byte int
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 3, 2009, 13:28
Цитата: arseniiv от ноября  3, 2009, 13:12
unsigned n-byte int
:no:
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от ноября 3, 2009, 14:02
Вам побитный доступ??

А, понял. Но ведь битами указывать размер - больше места займёт! И не любое число можно быдет задать
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 3, 2009, 14:13
Цитата: arseniiv от ноября  3, 2009, 14:02
Вам побитный доступ??
Размер должен указываться в битах, естественно.
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от ноября 3, 2009, 14:19
Я уже успел поправить предыдущее:
Цитата: arseniiv от ноября  3, 2009, 14:02
А, понял. Но ведь битами указывать размер - больше места займёт! И не любое число можно будет задать

Кстати, так ли это естественно? :???
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 3, 2009, 14:54
Цитата: arseniiv от ноября  3, 2009, 14:19
Кстати, так ли это естественно? :???
Куда уж естественней.
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 3, 2009, 14:55
Цитата: arseniiv от ноября  3, 2009, 14:02
И не любое число можно быдет задать
Чиво?
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от ноября 3, 2009, 17:09
Ну, вы вот зададите int[3], а выделится-то вам int[8]! Если только не предусмотреть битовые структуры, которые в Си уже давно есть.
Ну и, кстати, кто мешает написать typedef int int4... А, это недостандартный стандарт.
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 3, 2009, 17:19
Цитата: arseniiv от ноября  3, 2009, 17:09
Ну, вы вот зададите int[3], а выделится-то вам int[8]!
Минимально адресуемый блок зависит от железа, и его размер необязательно 8 бит.

Цитата: arseniiv от ноября  3, 2009, 17:09
Если только не предусмотреть битовые структуры, которые в Си уже давно есть.
Я в курсе. Они-то тут при чём?

Цитата: arseniiv от ноября  3, 2009, 17:09
Ну и, кстати, кто мешает написать typedef int int4... А, это недостандартный стандарт.
То, что нет никакой гарантии, что int 4-битовый.
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 3, 2009, 17:23
Короче, в кошерном C должен быть механизм создания типов (наподобие адовского), позволяющий управлять внутренним представлением типа (число битов, их порядок, порядок байтов, выравнивание в памяти etc.).
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от ноября 3, 2009, 17:45
Да, это полезно.

Цитата: myst от ноября  3, 2009, 17:19
То, что нет никакой гарантии, что int 4-битовый.
Так добавилъ же!
Цитата: arseniiv от ноября  3, 2009, 17:09
А, это недостандартный стандарт.
Название: Delphi, QIP и быдлокодерство
Отправлено: Bhudh от ноября 3, 2009, 23:53
Offtop
Цитата: myst(наподобие адовского)
Блин, пока понял, что не от ада, а от Ады...
А́диного!!!
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от ноября 4, 2009, 13:04
Offtop
От ада образуется адский. Адовский, similaires, должен быть от *адова... Притом, неопределённость: адов, адово или даже адова или адовы?
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 4, 2009, 13:29
Offtop
Опять отц носителя учите? :negozhe:
Название: Delphi, QIP и быдлокодерство
Отправлено: Алексей Гринь от ноября 4, 2009, 13:34
О, наконец-то нашёл о быдлокодерстве Майкрософта (и Максис) из первых уст:

Цитировать«Я впервые услышал об этом от одного из разработчиков популярной игры SimCity, который поведал мне о критической ошибке в их программе: она использовала память сразу после ее освобождения. Главное табу, нарушение которого прощалось в DOS, но карается в Windows, где освобожденную память тут же стащит другое работающее приложение. Тестеры в команде разработки Windows протестировали множество популярных приложений, чтобы убедиться, что все работает без сбоев, но SimCity зависала. Они сообщили это разработчикам Windows, которые дизассемблировали SimCity, шаг за шагом в дебаггере найдя ошибку, и добавили специальный код, проверяющий наличие SimCity в памяти и запускающий распределитель памяти в специальном режиме, в котором SimCity разрешается использовать память после ее освобождения.»

— Джоэл Спольски (известный сотрудник Майкрософта)
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 4, 2009, 14:23
Это про какой Windows?
Название: Delphi, QIP и быдлокодерство
Отправлено: jvarg от ноября 4, 2009, 14:44
Цитата: Алексей Гринь от ноября  4, 2009, 13:34
«Я впервые услышал об этом от одного из разработчиков популярной игры SimCity, который поведал мне о критической ошибке в их программе: она использовала память сразу после ее освобождения. Главное табу, нарушение которого прощалось в DOS,

Хрень какая-то.

SimCity раньше форточек была разработана...
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от ноября 4, 2009, 15:10
Цитата: jvarg от ноября  4, 2009, 14:44
SimCity раньше форточек была разработана...
Ну так, в этом и дело.
Название: Delphi, QIP и быдлокодерство
Отправлено: Алексей Гринь от ноября 4, 2009, 17:45
Цитата: jvarg от ноября  4, 2009, 14:44
Хрень какая-то.

SimCity раньше форточек была разработана...
Перечитайте сообщение. Именно поэтому они сделали костыль в винде, хотя всё могло обойтись обычным каким-нибудь патчем для игры... Короче, не хотели огласки несовместимостей, потому что шла рекламная кампания «ОС для игр»
Название: Delphi, QIP и быдлокодерство
Отправлено: злой от ноября 13, 2009, 18:58
Цитата: Алексей Гринь от ноября  4, 2009, 13:34
О, наконец-то нашёл о быдлокодерстве Майкрософта (и Максис) из первых уст:

Цитировать«Я впервые услышал об этом от одного из разработчиков популярной игры SimCity, который поведал мне о критической ошибке в их программе: она использовала память сразу после ее освобождения. Главное табу, нарушение которого прощалось в DOS, но карается в Windows, где освобожденную память тут же стащит другое работающее приложение. Тестеры в команде разработки Windows протестировали множество популярных приложений, чтобы убедиться, что все работает без сбоев, но SimCity зависала. Они сообщили это разработчикам Windows, которые дизассемблировали SimCity, шаг за шагом в дебаггере найдя ошибку, и добавили специальный код, проверяющий наличие SimCity в памяти и запускающий распределитель памяти в специальном режиме, в котором SimCity разрешается использовать память после ее освобождения.»

— Джоэл Спольски (известный сотрудник Майкрософта)

Какой адский текст. Кто кого освобождает? Кто чего использует? Ни хрена не понятно. Типа, если была один раз запущен СимСити, её закрыли и открыли заново, она в ту же область памяти лезет?

СимСити 2000 - вещь.
Название: Delphi, QIP и быдлокодерство
Отправлено: Triton от ноября 13, 2009, 19:14
Цитата: злой от ноября 13, 2009, 18:58
Какой адский текст. Кто кого освобождает? Кто чего использует? Ни хрена не понятно. Типа, если была один раз запущен СимСити, её закрыли и открыли заново, она в ту же область памяти лезет?
Вероятно, имелось ввиду, пытается использовать кусок память после освобождения его через free().
Название: Delphi, QIP и быдлокодерство
Отправлено: Тася от января 8, 2010, 16:27
Кто-нибудь знает, из квипа можно звонить, как из аси?   :) Подружка мне тут вот насущный вопрос задала. 
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от января 8, 2010, 16:30
Цитата: Тася от января  8, 2010, 16:27
Кто-нибудь знает, из квипа можно звонить, как из аси?   :)
Не знаю, но кнопка есть. :)
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от января 8, 2010, 17:37
Цитата: myst от января  8, 2010, 16:30
кнопка есть. :)
:o :o :o
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от января 8, 2010, 17:46
Цитата: arseniiv от января  8, 2010, 17:37
Цитата: myst от января  8, 2010, 16:30
кнопка есть. :)
:o :o :o
:eat:
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от января 8, 2010, 17:55
Это у телефонного?
Название: Delphi, QIP и быдлокодерство
Отправлено: Тася от января 8, 2010, 17:57
Цитата: myst от января  8, 2010, 16:30
Цитата: Тася от января  8, 2010, 16:27
Кто-нибудь знает, из квипа можно звонить, как из аси?   :)
Не знаю, но кнопка есть. :)

Да?  :what: А я, вот, что-то на какую кнопочку ни навожу, всё не то.  У меня qip 2005 года.
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от января 8, 2010, 17:58
Цитата: Тася от января  8, 2010, 17:57
У меня qip 2005 года.
Не пора ли обновиться? ;)
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от января 8, 2010, 18:02
Нет ;D
Название: Delphi, QIP и быдлокодерство
Отправлено: Тася от января 8, 2010, 18:13
Цитата: myst от января  8, 2010, 17:58
Цитата: Тася от января  8, 2010, 17:57
У меня qip 2005 года.
Не пора ли обновиться? ;)

  У меня этому квипу 4 месяца всего, раньше ася стояла.  :)   А насчёт звонков с квипа, как я уже сказала, меня подруга спрашивала. Не моя нужда.  :)
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от января 8, 2010, 18:17
Цитата: Тася от января  8, 2010, 17:57
У меня qip 2005 года.
Цитата: Тася от января  8, 2010, 18:13
У меня этому квипу 4 месяца всего
:??? Ограбление гробницы?
Название: Delphi, QIP и быдлокодерство
Отправлено: Тася от января 8, 2010, 18:23
Не, это у меня стоит 4 месяца, а вообще версия 2005 года. Вот как.  :yes:
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от января 8, 2010, 18:26
Цитата: Тася от января  8, 2010, 18:23
Не, это у меня стоит 4 месяца, а вообще версия 2005 года. Вот как.  :yes:
Где ж такой раритет удалось откопать? :)
Название: Delphi, QIP и быдлокодерство
Отправлено: Тася от января 8, 2010, 18:27
Это нам такие программисты ставят при переустановке программы.  :yes: Если помните, несколько месяцев назад у меня были проблемки с компом.  :( Ну и вот, в сентябре одновременно с переустановкой мне поставили такой квип. И подружке моей буквально недели две назад сделали то же.  :donno:
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от января 8, 2010, 18:37
http://download.qip.ru/qipinfium9032.exe
Название: Delphi, QIP и быдлокодерство
Отправлено: Тася от января 8, 2010, 18:41
Спасибо, буду иметь в виду.  :) Это самая новенькая версия?  :)
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от января 8, 2010, 18:42
myst, как можно звонить с квипа на ПК? Используя скайп или какую-то свою сеть? Или же та кнопка только на мобильных версиях?
Название: Delphi, QIP и быдлокодерство
Отправлено: Тася от января 8, 2010, 18:48
Цитата: Тася от января  8, 2010, 17:57
У меня qip 2005 года.

  Наверное, дело в том, что эта версия не поддерживает функцию звонка, да?  :???
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от января 8, 2010, 18:52
Цитата: arseniiv от января  8, 2010, 18:42
myst, как можно звонить с квипа на ПК?
Без понятия, но несомненно на оффсайте можно узнать правду. ;)
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от января 8, 2010, 19:17
Эээ, вам до него ного рукой подать... А... нда...
Название: Delphi, QIP и быдлокодерство
Отправлено: Тася от января 8, 2010, 19:27
Цитата: Тася от января  8, 2010, 18:48
Наверное, дело в том, что эта версия не поддерживает функцию звонка, да?  :???
Ну так что?  :)
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от января 8, 2010, 19:43
Цитата: Тася от января  8, 2010, 19:27
Ну так что?  :)
Что что? :what:
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от января 8, 2010, 19:44
Цитата: arseniiv от января  8, 2010, 19:17
Эээ, вам до него ного рукой подать... А... нда...
Можно подумать, что Вам сутки в автобусе с пересадками ехать. ;)
Название: Delphi, QIP и быдлокодерство
Отправлено: Тася от января 8, 2010, 19:46
Цитата: myst от января  8, 2010, 19:43
Цитата: Тася от января  8, 2010, 19:27
Ну так что?  :)
Что что? :what:

  Нет у этой версии функции звонка, ага?  :) Ответьте, пожалуйста.  :)
Название: Delphi, QIP и быдлокодерство
Отправлено: Ilmar от января 8, 2010, 19:47
Цитата: Тася от января  8, 2010, 19:46
Нет у этой версии функции звонка, ага?
Нет, но почему бы не поставить Infium? :)
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от января 8, 2010, 19:51
Цитата: myst от января  8, 2010, 19:44
Можно подумать, что Вам сутки в автобусе с пересадками ехать. ;)
Почему бы и не можно. Подумайте :D

(Да-да, злостная игнорация отсутствия вопросительного знака.)
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от января 8, 2010, 19:55
Цитата: Тася от января  8, 2010, 19:46
Нет у этой версии функции звонка, ага?  :) Ответьте, пожалуйста.  :)
Да кто ж знает-то про этот антиквариат? :donno:
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от января 8, 2010, 19:57
Я знаю. Нет там звонков. Думал, вы про Infium.
Название: Delphi, QIP и быдлокодерство
Отправлено: Тася от января 8, 2010, 19:59
Понятно. Спасибо всем Вам. :yes: Щас подружке в аську напишу, чтоб не ломала дальше голову.
Название: Delphi, QIP и быдлокодерство
Отправлено: myst от января 8, 2010, 20:00
Цитата: Тася от января  8, 2010, 19:59
Понятно. Спасибо всем Вам. :yes: Щас подружке в аську напишу, чтоб не ломала дальше голову.
:??? А справку программы нельзя было открыть?..
Название: Delphi, QIP и быдлокодерство
Отправлено: Тася от января 8, 2010, 20:05
Можно. :) Но я о ней на время позабыла, так получилось.   :donno:
Название: Delphi, QIP и быдлокодерство
Отправлено: arseniiv от января 8, 2010, 20:10
Там есть справка!??!?!!??!!?!??!?!!?!??!!??!?!!?
Название: Delphi, QIP и быдлокодерство
Отправлено: Тася от января 8, 2010, 20:14
У меня путь такой: кнопка внизу со значком квипа "Вызвать главное меню" > "О программе"  :yes: