Читаемость кода
От: dolor Китай  
Дата: 02.10.12 10:16
Оценка: +1
А>А какие фичи из c#/другого языка вы бы хотели в java?

лично я бы никакие не хотел, еще бы и статики убрал нафик,

а, хотел бы вместо && писать 'and'



04.10.12 10:18: Ветка выделена из темы Java 8
Автор:
Дата: 02.10.12
— Blazkowicz
04.10.12 10:19: Перенесено модератором из 'Java' — Blazkowicz
Re: Читаемость кода
От: dimgel Россия http://dimgel.ru/
Дата: 02.10.12 10:20
Оценка:
Здравствуйте, dolor, Вы писали:

D>а, хотел бы вместо && писать 'and'


...вместо '||' — 'or', вместо '{' и '}' — 'begin' и 'end', вместо while(...) — goto 10.
Re[2]: Читаемость кода
От: ResidentR6  
Дата: 02.10.12 20:00
Оценка: +1 -6 :))
02.10.2012 13:20, dimgel пишет:
>
> ...вместо '||' — 'or', вместо '{' и '}' — 'begin' и 'end', вместо
> while(...) — goto 10.


А самое смешное, что ТУПО запрещать это кодерам!!!!!!!!!!!!!!!
Только не говорите что СЛОЖНО реализовать поддержку ключевых слов begin
и end, а также and, or, not, = (вместо ==) и GOTO. Это банально улучшает
ЧИТАЕМОСТЬ кода!!!

И ещё момент — почему например анонимному классу нельзя без применения
"универсального интерфейса" передать параметр в конструкторе? Хотя при
последующей декомпиляции оказывается, что ИМЕННО ЭТО код и делает.

Аналогично GOTO. Если хоть раз пробовали развязать декомпиленый код
после обфускации, то ОЧЕНЬ СИЛЬНО не хватает именно связок GOTO, которые
чётко дают понять куда так сильно стремится очередная ветка кода. Потому
что в байт-коде оказываются именно эти самые GOTO.
Posted via RSDN NNTP Server 2.1 beta
Re[3]: Читаемость кода
От: Cyberax Марс  
Дата: 02.10.12 20:13
Оценка:
Здравствуйте, ResidentR6, Вы писали:

RR>А самое смешное, что ТУПО запрещать это кодерам!!!!!!!!!!!!!!!

RR>Только не говорите что СЛОЖНО реализовать поддержку ключевых слов begin
RR>и end, а также and, or, not, = (вместо ==) и GOTO. Это банально улучшает
RR>ЧИТАЕМОСТЬ кода!!!
Читаемость кем?

Обойтись без скобок за счёт уровней отступа я бы ещё понял.

RR>И ещё момент — почему например анонимному классу нельзя без применения

RR>"универсального интерфейса" передать параметр в конструкторе? Хотя при
RR>последующей декомпиляции оказывается, что ИМЕННО ЭТО код и делает.
То есть?
final int param=42;
new Thread(new Runnable() {
   public void run() { System.out.println(param); }
}).start();

Всё работает.

RR>Аналогично GOTO. Если хоть раз пробовали развязать декомпиленый код

Мы как-то предпочитаем язык, который предназначен для работы с кодом, а не декомпиляции.
Sapienti sat!
Re[4]: Читаемость кода
От: ResidentR6  
Дата: 02.10.12 21:27
Оценка: 6 (1) +1 :))) :)))
Я и не говорю что нельзя приспособиться. А лишь о том, что это некошерно
приспосабливаться под софт, когда можно приспособить сам софт.

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

Верхом подобного ханженства я считаю регулярные выражения. Да, они
прекрасно работают. Но почему, в честь какого Ктулху, я на языке
высокого уровня должен писать сие непонятными значками? Почему нельзя
написать то же самое понятным языком, на уровне логики "если",
"повторяется", "после"...

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

// А то так же можно и до питона докатиться.
Posted via RSDN NNTP Server 2.1 beta
Re[5]: Читаемость кода
От: dimgel Россия http://dimgel.ru/
Дата: 03.10.12 04:01
Оценка: :))
Здравствуйте, ResidentR6, Вы писали:

RR>Пунктуация знаками однозначно хуже чем словами. Потому что человеку проще думать словами, а не краказябликами.


телеграфист детектет точка или ты этот запятая как их многоточие радист старой закалки запятая который азбукой морзе чешет вопросительный знак
Re[5]: Читаемость кода
От: Аноним  
Дата: 03.10.12 07:46
Оценка:
А объясните нубу, если в java будут лямбды, то можно будет реализовать каррирование?
В том же с++ и с# это возможно, в шарпе выглядит даже адекватно.
Re[5]: Читаемость кода
От: Cyberax Марс  
Дата: 03.10.12 07:59
Оценка: +1
Здравствуйте, ResidentR6, Вы писали:

RR>Пунктуация знаками однозначно хуже чем словами. Потому что человеку

RR>проще думать словами, а не краказябликами.
Мне, лично, проще читать код с кракозябрами. Так как они выделяются на фоне остального текста.

RR>Верхом подобного ханженства я считаю регулярные выражения. Да, они

RR>прекрасно работают. Но почему, в честь какого Ктулху, я на языке
RR>высокого уровня должен писать сие непонятными значками? Почему нельзя
RR>написать то же самое понятным языком, на уровне логики "если",
RR>"повторяется", "после"...
Потому, что регэкспы задумывались для компактной записи регулярных выражений:
И ".*str[^A]" читается сильно лучше, чем "<any_symbol><kleene_star>str<one_of>(not<set-of>A)"
Sapienti sat!
Re[3]: Читаемость кода
От: Skipy Россия http://www.skipy.ru
Дата: 03.10.12 10:50
Оценка:
Здравствуйте, ResidentR6, Вы писали:

RR>А самое смешное, что ТУПО запрещать это кодерам!!!!!!!!!!!!!!!

RR>Только не говорите что СЛОЖНО реализовать поддержку ключевых слов begin
RR>и end, а также and, or, not, = (вместо ==) и GOTO. Это банально улучшает
RR>ЧИТАЕМОСТЬ кода!!!

Говорите, = вместо == читаемость улучшает?

if (a = b = c){

}


Что-нибудь можете сказать о том, что тут происходит? Присваивания? Сравнения? Типы у a, b, c одинаковые хотя бы?
С уважением,
Евгений aka Skipy
www.skipy.ru
Re[4]: Читаемость кода
От: dimgel Россия http://dimgel.ru/
Дата: 03.10.12 10:58
Оценка: +1
Здравствуйте, Skipy, Вы писали:

S>Говорите, = вместо == читаемость улучшает?


S>
if (a = b = c){
S>}


S>Что-нибудь можете сказать о том, что тут происходит? Присваивания? Сравнения? Типы у a, b, c одинаковые хотя бы?


Гы, щас тоже ляпну. Вообще, как по мне, я бы вообще запретил присваивания внутри if. Из-за этого вот стремления к супер-через сокращениям этот вот бардак и выходит. Примерно как многие любят ради избавления от повторящихся кусков кода длиной в 2-3 строчки плодить запутанные иерархии классов.
Re[5]: Читаемость кода
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 04.10.12 04:35
Оценка:
Здравствуйте, ResidentR6, Вы писали:

RR>Пунктуация знаками однозначно хуже чем словами. Потому что человеку

RR>проще думать словами, а не краказябликами.

Скажите это китайцам. А вообще, совершенно необоснованное высказывание. Ткните мне на результаты экспериментов, доказывающих это.

RR>Или можно? Кстати, никто не в курсе, есть ли инструмент создания

RR>регулярных выражений? Чтобы в коде написать читаемо, а потом оно уже
RR>само преобразовывалось.

Да такая штука реализуется за пару дней максимум.
Re[3]: Читаемость кода
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 04.10.12 04:45
Оценка:
Здравствуйте, ResidentR6, Вы писали:

>>

>> ...вместо '||' — 'or', вместо '{' и '}' — 'begin' и 'end', вместо
>> while(...) — goto 10.


RR>А самое смешное, что ТУПО запрещать это кодерам!!!!!!!!!!!!!!!

RR>Только не говорите что СЛОЖНО реализовать поддержку ключевых слов begin
RR>и end, а также and, or, not, = (вместо ==) и GOTO. Это банально улучшает
RR>ЧИТАЕМОСТЬ кода!!!

Сложно. Это поломает legacy-код, в котором есть идентификаторы begin, end, and, or, not. А ещё слово begin — лишнее. Если уж делать такие словесные блоки, то следует делать их как в ruby, т.е. любая конструкция вроде if, for автоматически порождает блок, который надо закрывать end'ом.

RR>Аналогично GOTO. Если хоть раз пробовали развязать декомпиленый код

RR>после обфускации, то ОЧЕНЬ СИЛЬНО не хватает именно связок GOTO, которые
RR>чётко дают понять куда так сильно стремится очередная ветка кода. Потому
RR>что в байт-коде оказываются именно эти самые GOTO.

Если внимательно читать спецификацию Java, то можно заметить, что с помощью break можно выйти из любого блока. В принципе, можно было бы даже без этого обойтись, применив конструкцию do { ... } while (false); Таким образом, правильно подобрав начала блоков (можно все начала оттянуть хоть бы и к началу текущего цикла или к началу программы, если цель GOTO находится вне циклов; но так, разумеется, не слишком читабельно), можно запросто эмулировать goto. Единственные два ограничения (невозможность прыгнуть внутрь цикла или назад) запросто обходятся переупорядочиванием байт-кода. Что самое интересное, потом эту последовательность блоков гораздо проще трансформировать в читабельные if'ы, чем просто goto. Это я говорю как человек, писавший декомпилятор JVM.
Re[4]: Читаемость кода
От: AlexRK  
Дата: 04.10.12 15:47
Оценка: +2 -1
Здравствуйте, Skipy, Вы писали:

S>Говорите, = вместо == читаемость улучшает?


Я тоже считаю, что улучшает.

S>
if (a = b = c){

S>}


S>Что-нибудь можете сказать о том, что тут происходит? Присваивания? Сравнения? Типы у a, b, c одинаковые хотя бы?


Такие вещи запретить. Присваивание должно быть статементом, а не выражением. И желательно выражаться другим знаком, например тем же := .
Re[5]: Читаемость кода
От: rusted Беларусь  
Дата: 04.10.12 17:18
Оценка: +3 :))) :))) :))
Здравствуйте, AlexRK, Вы писали:

ARK>И желательно выражаться другим знаком, например тем же := .


А еще массивы должны по умолчанию индексироваться с 1, а не с 0. Про BEGIN/END уже написали. Ну и для полной благодати расширение у файлов исходников сделать *.pas
Re[6]: Читаемость кода
От: AlexRK  
Дата: 04.10.12 17:24
Оценка: -2
Здравствуйте, rusted, Вы писали:

R>А еще массивы должны по умолчанию индексироваться с 1, а не с 0.


По моему скромному мнению, массивы в ЯП общего назначения должны индексироваться исключительно с 1 (без возможности выбора другого индекса).

R>Про BEGIN/END уже написали.


Вместо кривых скобок? Согласен. Но лучше в нижнем регистре.

R>Ну и для полной благодати расширение у файлов исходников сделать *.pas


Это пофиг.
Re[5]: Читаемость кода
От: Privalov  
Дата: 04.10.12 18:37
Оценка:
Здравствуйте, ResidentR6, Вы писали:

RR>Или можно? Кстати, никто не в курсе, есть ли инструмент создания

RR>регулярных выражений? Чтобы в коде написать читаемо, а потом оно уже
RR>само преобразовывалось.

Я пользуюсь вот этим:

http://www.regexlab.com/en/deelx/
http://www.ultrapico.com/Expresso.htm

Выражения выглядят, как обычно, а вот их чтение и тестирование эти штуки облегчают.
Re[6]: Читаемость кода
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 04.10.12 20:00
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>И ".*str[^A]" читается сильно лучше, чем "<any_symbol><kleene_star>str<one_of>(not<set-of>A)"


Клини стар, Клини суперстар, ага.

kleene_asterisk или kleene_clojure все-таки
... << RSDN@Home 1.2.0 alpha 5 rev. 66>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[7]: Читаемость кода
От: RomikT Германия  
Дата: 04.10.12 20:05
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Здравствуйте, Cyberax, Вы писали:


C>>И ".*str[^A]" читается сильно лучше, чем "<any_symbol><kleene_star>str<one_of>(not<set-of>A)"


KV>Клини стар, Клини суперстар, ага.

KV>kleene_asterisk или kleene_clojure все-таки

Kleene star?
Re[8]: Читаемость кода
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 04.10.12 20:16
Оценка:
Здравствуйте, RomikT, Вы писали:

Замыкание Клини — операция, обозначаемая символом * Правильным названием этого символа является "астериск", а "звезда" — его разговорный вариант. Примерно также, как @ — это "at", а не "собака".
... << RSDN@Home 1.2.0 alpha 5 rev. 66>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[9]: Читаемость кода
От: RomikT Германия  
Дата: 04.10.12 20:22
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Здравствуйте, RomikT, Вы писали:


KV>Замыкание Клини — операция, обозначаемая символом * Правильным названием этого символа является "астериск", а "звезда" — его разговорный вариант. Примерно также, как @ — это "at", а не "собака".


То, что символ "*" называется asterisk, ещё не означает что замыкание Клини называется так же.
Гугл, конечно, не истина в последней истанции, но всё же показателен:
"Kleene star" — about 44,000 results
"Kleene asterisk" — 3 results
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.