Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Закон Мура и стили программирования

Автор Drundia, июля 16, 2011, 05:33

0 Пользователи и 1 гость просматривают эту тему.

Drundia

Цитата: Python от июля 16, 2011, 05:18
А мне  нравится.
Во-первых, заставляет думать о приятном, т.е., о Лиспе)))
Во-вторых, еще никто не додумался конвертить простые скобки в нервно дергающиеся рожицы, не влезающие в высоту строки.
В-третьих, проще вводить с клавы, чем обычные смайлики.
((Скобки) ((вполне) можно (сделать ((обязательными) (в языке))))) ((Мне) (нравится))

From_Odessa

Цитата: Drundia от июля 16, 2011, 05:33
((Скобки) ((вполне) можно (сделать ((обязательными) (в языке))))) ((Мне) (нравится))
Похоже на запись из псевдокода или дискретной математики.

Python

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

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

Drundia


Drundia

Цитата: Python от июля 16, 2011, 06:16
10 трудно
20 будет 10, 80
30 языки 50
40 со свободным
50 порядком 40, 60
60 слов
70 в скобки
80 впихнуть 30, 70
Фейл!

10 трудно
20 будет 10, 80
30 языки 35
35 со 50
40 свободным

50 порядком 40, 60
60 слов
70 в 75
75 скобки

80 впихнуть 30, 70

Щас будут скобки.

Python

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

Drundia

((Трудно) будет ((языки (со ((свободным) порядком (слов)))) (в (скобки)) впихнуть))

Судя по всему порядок свободный только внутри одного уровня.

Python

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

Drundia

(
  (
    Трудно
  ) будет (
    (
      языки (
        со (
          (
            свободным
          ) порядком (
            слов
          )
        )
      )
    )
    (
      в (
        скобки
      )
    ) впихнуть
  )
)

Python

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

Drundia

Жужас, мне Вайтсмитс совсем не нравится. Особенно в таких ситуациях:


stat1;
stat2;
{
  stat3;
  stat4;
}
stat5;
stat6;



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

Python

Цитата: Drundia от июля 16, 2011, 06:46
Жужас, мне Вайтсмитс совсем не нравится. Особенно в таких ситуациях:


stat1;
stat2;
{
  stat3;
  stat4;
}
stat5;
stat6;

Потому что это Аллман. Правильный Уайтсмитс должен быть таким:

stat1;
stat2;
  {
  stat3;
  stat4;
  }
stat5;
stat6;

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

Python

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

Hellerick

<sentence>
  <mode>Трудно</mode>
  будет
  <infinite>
    <object type=direct>
      языки
      <object type=prepositive>
        <preposition>со</preposition>
        <adjective>свободным</adjective>
        порядком
        <object>слов</object>
      </object>
    </object>
    <object type=prepositive>
      <preposition>в</preposition>
      скобки
    </object>
    впихнуть
  </infinite>
</sentence>

Python

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

Drundia

Цитата: Python от июля 16, 2011, 10:55Потому что это Аллман. Правильный Уайтсмитс должен быть таким:

stat1;
stat2;
  {
  stat3;
  stat4;
  }
stat5;
stat6;
Да-да-да, вот именно такой Вайтсмитс мне и не нравится. Поэтому я продемонстрировал нормальную запись, которую ваш Вайтсмитс на хрень какую-то переделал.

Цитата: Python от июля 16, 2011, 11:01
Что мне нравится в этом стиле, так это то, что в нем практически невозможно потерять скобки. Простой оператор от блока можно отличить без особых зрительных усилий. Соответственно, нет и необходимости огораживать на всякий случай однооператорные тела циклов, как это практикуется у джавистов.
А чё их терять? Меняется отступ — должны быть скобки, как везде...

Drundia


Python

ЦитироватьДа-да-да, вот именно такой Вайтсмитс мне и не нравится.
Ну, строго говоря, там пример был малопригодный для уайтсмитса. В реальном си-подобном коде любому блоку обычно предшествует заголовок, а здесь просто стейтменты и блоки без ифов/циклов/процедур.

ЦитироватьА чё их терять? Меняется отступ — должны быть скобки, как везде...
А потом лишние скобки усложняют чтение кода. Почему вместо

while(i++ <100)
    if(i%3==0)
        j*=i;

нужно писать

while(i++ <100) {
    if(i%3==0) {
        j*=i;
        }
    }

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

iopq

Цитата: Python от июля 16, 2011, 12:33
Ну вот, как всегда, приходят иксемельщики и все опошляют своей разметкой, за которой данные еле видно.
потому что XML дебильный язык вообще
Poirot: Я, кстати, тоже не любитель выпить, хоть и русский.
jvarg: Профессионал? ;)

Drundia

Цитата: Python от июля 16, 2011, 14:43Ну, строго говоря, там пример был малопригодный для уайтсмитса. В реальном си-подобном коде любому блоку обычно предшествует заголовок, а здесь просто стейтменты и блоки без ифов/циклов/процедур.
В плюсах в конце такого блока исчезают объявленные в нём переменные. А во-вторых их удобно комментировать добавлением «if(0)», и никаких проблем со вложенными комментариями.

Цитата: Python от июля 16, 2011, 14:43А потом лишние скобки усложняют чтение кода. Почему вместо

while(i++ <100)
    if(i%3==0)
        j*=i;

нужно писать

while(i++ <100) {
    if(i%3==0) {
        j*=i;
        }
    }

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

while(i++ <100) {
    if(i%3==0) {
        j*=i;
    }
}


А без скобок только в одну строку.

Python

Цитата: Drundia от июля 17, 2011, 06:31
Цитата: Python от июля 16, 2011, 14:43Ну, строго говоря, там пример был малопригодный для уайтсмитса. В реальном си-подобном коде любому блоку обычно предшествует заголовок, а здесь просто стейтменты и блоки без ифов/циклов/процедур.
В плюсах в конце такого блока исчезают объявленные в нём переменные. А во-вторых их удобно комментировать добавлением «if(0)», и никаких проблем со вложенными комментариями.
Да, но в таких внутриблочных локальных переменных редко возникает необходимость.
Что же касается if(0), ІМНО, это плохой стиль: вложенный код все равно компилируется, хоть и не выполняется. Ну а если уж использовать такую конструкцию, то, наверное, лучше брать не if, а while, чтобы избежать возможного сцепления с else, если это ключевое слово случайно окажется после псевдокомментария.
Цитировать
Нужно писать

while(i++ <100) {
    if(i%3==0) {
        j*=i;
    }
}


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

Drundia

Цитата: Python от июля 17, 2011, 09:42Что же касается if(0), ІМНО, это плохой стиль: вложенный код все равно компилируется, хоть и не выполняется. Ну а если уж использовать такую конструкцию, то, наверное, лучше брать не if, а while, чтобы избежать возможного сцепления с else, если это ключевое слово случайно окажется после псевдокомментария.
По идее нормальные компиляторы не должны его компилировать. А else после таких вложенных конструкций (когда он не запсевдокомментированы) синтаксически невозможен.

Цитата: Python от июля 17, 2011, 09:42Да, это по конвенции. Но так читать еще хуже.
Сложностей не обнаружено.

Python

Цитата: Drundia от июля 17, 2011, 12:32
По идее нормальные компиляторы не должны его компилировать. А else после таких вложенных конструкций (когда он не запсевдокомментированы) синтаксически невозможен.

Цитата: Python от июля 17, 2011, 09:42Да, это по конвенции. Но так читать еще хуже.
Сложностей не обнаружено.
Нормальные компиляторы вымерли еще в те времена, когда оперативка измерялась в килобайтах, а ассемблерные вставки считались признаком высшего мастерства.

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

hurufu

Цитата: Python от июля 17, 2011, 16:41
Но глаза лезут на затылок, когда в более-менее крупном фрагменте джава-кода с вложенными блоками пытаешься определить, к чему относится та или иная скобка.
Подсветка диапазона между скобками рулит!

RawonaM

Цитата: hurufu от июля 17, 2011, 17:55
Подсветка диапазона между скобками рулит!
Не припоминаю такого. Где это есть?

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр