|
Почему популярна 8 версия и веб использование?
|
|||
---|---|---|---|
#18+
Basil A. Sidorov Тогда я повторю вопрос - чем не устраивает то, что уже завезли в Java 8??? текстовые блоки ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2021, 19:58 |
|
Почему популярна 8 версия и веб использование?
|
|||
---|---|---|---|
#18+
вадя, О да, текстовые блоки, интерполяторы это тоже топчик ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2021, 19:59 |
|
Почему популярна 8 версия и веб использование?
|
|||
---|---|---|---|
#18+
забыл ник О да, текстовые блоки, интерполяторы это тоже топчик ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2021, 20:20 |
|
Почему популярна 8 версия и веб использование?
|
|||
---|---|---|---|
#18+
забыл ник Я конечно не совсем показатель, но.. Мой вопрос к нему тоже относится сугубо (и исключительно) к возможностям Java 8 в отношении этих самых беззнаковых. Каким боком к этой узкой нише даже ваши алгебраические типы? Потому, что всё остальное - вообще никак. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 04:59 |
|
Почему популярна 8 версия и веб использование?
|
|||
---|---|---|---|
#18+
вадя текстовые блоки Беззноковые как соотносятся с текстовыми блоками??? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 05:00 |
|
Почему популярна 8 версия и веб использование?
|
|||
---|---|---|---|
#18+
типичный пример неумения думатьАвтор страдает ... Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... и цепочка вложенных if это (действительно) ужасно. Но почему эти страдающие перфекционисты не в состоянии переписать цепочку в блок: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
? Оно, конечно, тоже громоздкое, но это хотя бы "Die erste Kolonne marshiert ..." и не требует ломать голову над вопросом - "А нафига тут вложенность? Оптимизация выхода? Серьёзно???" P.S. Когда я вижу аргументацию такого качества , хочется спросить: вы действительно считаете свои аргументы убедительными? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 05:36 |
|
Почему популярна 8 версия и веб использование?
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, чел приводит примитивный пример для большей наглядности. и то , что использование вложенных if , в не цепочка if не является предосудительным в данном случае - вполне возможен и более общий случай, когда после этой цепочки стоит не renurn, а продолжение кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 10:35 |
|
Почему популярна 8 версия и веб использование?
|
|||
---|---|---|---|
#18+
Basil A. Sidorov Ещё один чукчо-писатель ... Беззноковые как соотносятся с текстовыми блоками??? был вопрос , что нет в 8 , по сравнению с 17 - я ответил. ведь текстовые блоки намного нагляднее чем раньше было. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 10:40 |
|
Почему популярна 8 версия и веб использование?
|
|||
---|---|---|---|
#18+
забыл ник 2) отсутствие ADT - алгебраических типов данных 3) Плохой inference типов .. 10) нормальных генерикрв с ко- и контр- вариантностью. А также генерикрв на примитивах 11) аналога do- или for comprehension. В широком контексте - монадического контекста 12) нормальных лямбд чтобы можно было писать простые функции высшего порядка В глобальном масштабе. Если движенье в сторону scala это улучшение - то зачем тогда java? Это тот-же самый вопрос который говорят и про java-kotlin. Язык, если он работает более 20 лет - уже имеет свою устойчивую аудиторию разработки и поддержки. И ему (языку) может быть лучше "подлатать" свои недостатки. А фичи других языков - пусть останутся фичами других языков. По поводу строгости, inference и прочее. Мне кажется реализовать строгость в полной мере в java будет невозможно именно в связи с ее либеральной архитектурой jvm. В строгом языке мы не можем передать в функцию объект (Object) до тех пор пока компиллятор не будет видеть диапазон возможных подтипов которые потенциально туда зайдут или паттерн матчинг решит что этот код - законен и может работать. В противоположность в Java слишком популярны механики рефлексии которые откладывают принятие решения "на потом" что создает некую вольность в рантайме. Этим пользуются фреймворки. И именно такие вольности не позволяют нам постулировать строгий язык наподобие Haskell на базе java. Тут уже либо строгий вывод типов, либо - возможности рантайма. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 10:52 |
|
Почему популярна 8 версия и веб использование?
|
|||
---|---|---|---|
#18+
mayton А фичи других языков - пусть останутся фичами других языков +++ А мы мы так доиграемся и завтра кому-то захочется писать на Java без скобочек и без точек с запятыми, а блоки кода чтобы определялись по количеству пробелов от начала строки. И ведь протолкнут в релиз... хипстеры треклятые. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 11:45 |
|
Почему популярна 8 версия и веб использование?
|
|||
---|---|---|---|
#18+
вадя был вопрос Встречный вопрос - меня-то нафига цитировать? Мой вопрос относился к совершенно конкретному и очень узкому "стенанию" про отсутствие беззнаковых. P.S. Неужели так сложно понять, что если человек не поленился и вырезал из "стены текста" конкретные строки, то "это ж неспроста"? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 12:26 |
|
Почему популярна 8 версия и веб использование?
|
|||
---|---|---|---|
#18+
вадя чел приводит примитивный пример для большей наглядности. Поэтому примитивность примера (заменяется на toString()) - вообще не оправдание.и то , что использование вложенных if , в не цепочка if не является предосудительным в данном случаеВот именно в данном конкретном случае вложенные if-ы - тупость и мракобесие. Вложенные условные операторы нужны только для того, чтобы "оптимизировать" количество сравнений. Гораздо более прямолинейный вариант оптимизации - использовать оператор return прямо там, где он требуется.вполне возможен и более общий случай, когда после этой цепочки стоит не renurn, а продолжение кода.Возможен, но не в данном конкретном случае. P.S. И мне опять приходится повторить свой вопрос: используя аргументы такого качества, вы действительно считаете их убедительными? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 12:39 |
|
Почему популярна 8 версия и веб использование?
|
|||
---|---|---|---|
#18+
Basil A. Sidorov И мне опять приходится повторить свой вопрос: используя аргументы такого качества, вы действительно считаете их убедительными? Basil A. Sidorov Вложенные условные операторы нужны только для того, чтобы "оптимизировать" количество сравнений. Гораздо более прямолинейный вариант оптимизации - использовать оператор return прямо там, где он требуется.вполне возможен и более общий случай, когда после этой цепочки стоит не renurn, а продолжение кода. тебе нравятся if - используй , где считаешь нужно. никто не заставляет. я то же бы использовал множественные ретурны, если б это было в таком методе. но я понял мыль автора и мне этого достаточно. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 12:58 |
|
Почему популярна 8 версия и веб использование?
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, ЗЫ а придраться можно и к фонарному столбу.... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 13:00 |
|
Почему популярна 8 версия и веб использование?
|
|||
---|---|---|---|
#18+
- ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 13:00 |
|
Почему популярна 8 версия и веб использование?
|
|||
---|---|---|---|
#18+
вадя Basil A. Sidorov Тогда я повторю вопрос - чем не устраивает то, что уже завезли в Java 8??? текстовые блоки Я ворчу про знаковую арифметику уже давно. Кажется еще с Jdk 1.5 Есть пример толи от Мартына Фавлера толи от Джоша Керивского. Классика жанра. Поиск половинным делением в массиве работает. Но периодически падает с арифметикой доступа при некоторых условиях. Пример достаточно экзотичен и воспроизвести его нелегко. Нужен толстый массив. Код: java 1. 2. 3. 4.
Арифметика доступа к массиву требует гарантий. Гарантий того что мы не выскочим за разрядную сетку. Будучи портированным с С++ или "C" где элемент mid имел запас по прочности в виде unsigned int, алгоритм работает. На тех же объемах в Java он может не работать. Есть умный рефакторинг который позволяет уменьшить риски переполнений так Код: java 1.
но не все это делают. Вообще сложно портировать C/C++ код с сохранением поведения арифметики точно. Это - тривиальный пример. А есть еще и операции умножения. Коробочное решение - использовать strict-арифметику из пакета Math. В этом случае переполнение сетки мы задетектим исключением. Это не всегда удобно. Ведь вам придется инфиксную операцию "+" переписывать на вызов методов. И разумеется после такого рефакторинга читаемость кода пострадает. Он уже не выглядит портом с С++. Он - уродлив как бухгалтерия с BigDecimal. Можно также на уровне контрактов ограничить входные параметры. Тоесть заручится что размер массива будет всегда не более чем четверть диапазона int к примеру. Но это всё такие условности. 99% даю что разработчик это не проверяет. И бинарный поиск (просто как наивный пример) будет протестирован поверхностно и на малых объемах. Некоторые возразят дескыть мы и так получаем исключение класса IndexOutOf... но я отвечу что это просто частный пример. Алгоритм мог быть другой (не поисковый) и мы могли попасть в некорректный индекс в позитивном диапазоне. Такое не детектировалось бы. И что я хочу? Я от восьмерки ничего не хочу. Я просто говорил что было-бы неплохо в Java-18 иметь беззнаковую арифметику. Microsoft.Net внедрил беззнаковые типы? Внедрил. Такой проблемы у него нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 14:43 |
|
Почему популярна 8 версия и веб использование?
|
|||
---|---|---|---|
#18+
mayton, Увы. Мейнстрим идет в уход от арифметики. Например в итераторы.... Коллекции, контейнеры ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 15:17 |
|
Почему популярна 8 версия и веб использование?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mayton, Увы. Мейнстрим идет в уход от арифметики. Например в итераторы.... Коллекции, контейнеры А как коллекции, контейнеры связаны с арифметикой? 1) Полностью поддержку mayton'а. Вместо синтаксической патоки (т.к. даже сахаром ее не назвать), лучше бы типы расширили. Безнаковые, арифметика с фиксированной точкой (number), обработка null'а (синтаксис Kotlin'а), выкинуть get'ры/set'ы (property в Delphi), добавить нормальные коллекции на примитивные типы и так далее и тому подобное. 2) Что if, что switch - на мой взгяд, одинаковая помойка. Ну а if/switch'и с instanceof - явное нарушение базовых принципов ООП. Т.к., по "обычному" ООП, такое поведение должно было бы не if/switch'а кодироваться, а виртуальной функцией. В результате появляется "новая" фича, которая будет учить "новых" программистов кодировать в стиле Basic'а 80'х годов прошлого века. Когда 90% программы: If, substr, instr'ы.... а слов "парсер", "синтаксический разбор" программисты даже и не знают. IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 15:31 |
|
Почему популярна 8 версия и веб использование?
|
|||
---|---|---|---|
#18+
P.S. по хорошему, нужно было бы нормальные ссылки на функцию + HashTable с описанием: тип параметра = функция форматирования Ну и вся ф-ция String formatter(Object o) должна была бы выглядить (без всяких switch): return formatFunctions.get( o.getType() ).format( o ); + код на проверку null ))) Но в "классической" Java такое можно изобразить только через 100500 строк кода с порождением безумного кол-ва классов или, скорее всего, в "современной" Java через лямбды. IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 15:36 |
|
Почему популярна 8 версия и веб использование?
|
|||
---|---|---|---|
#18+
вадя https://habr.com/ru/post/579178/ текстовые блоки 1. посмотрел в проекте текущем, слово switch встречается аж 8 раз и везде enum 2. текстовые блоки и интерполяция не нужна: с "длинным" текстом приходится напрягаться разве что при написании текста исключений, а все остальное лежит в ресурсах, а интерполяция она вещь такая, что завтра тебе будут в нее вставлять "rm -rf /" и будет весело, здесь твое рвение вызвано исключительно тем, что ты любишь писать SQL-лапшу ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 15:36 |
|
Почему популярна 8 версия и веб использование?
|
|||
---|---|---|---|
#18+
mayton Есть умный рефакторинг который позволяет уменьшить риски переполнений так Код: java 1.
чет вспомнил, что где-то в проекте был бинарный поиск, побежал смотреть, а там '>>> 1' ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 15:38 |
|
Почему популярна 8 версия и веб использование?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mayton, Увы. Мейнстрим идет в уход от арифметики. Например в итераторы.... Коллекции, контейнеры Я-же говорю. Я рассматриваю кейс когда числовой алгоритм (криптография, численные методы, хеши) был портирован с языков имеющих unsigned. Ты говоришь мир уходит. Он уходит лишь малой частью которая никак не влияет на мой тезис. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 15:49 |
|
Почему популярна 8 версия и веб использование?
|
|||
---|---|---|---|
#18+
mayton Я ворчу про знаковую арифметику уже давно. ... И что я хочу? Я от восьмерки ничего не хочу. Именно поэтому я и хотел услышать внятное пояснение: чем, собственно, не устраивают возможности Java 8 в части беззнаковой арифметики. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 15:58 |
|
Почему популярна 8 версия и веб использование?
|
|||
---|---|---|---|
#18+
Basil A. Sidorov mayton Я ворчу про знаковую арифметику уже давно. ... И что я хочу? Я от восьмерки ничего не хочу. Именно поэтому я и хотел услышать внятное пояснение: чем, собственно, не устраивают возможности Java 8 в части беззнаковой арифметики. "завезли" это: The "new support" is the addition of the static methods in the Integer and Long classes, e.g. Integer.divideUnsigned. If you're not using those methods, your "unsigned" long above 2^63-1 is just a plain old long with a negative value. ??? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 16:02 |
|
Почему популярна 8 версия и веб использование?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev А как коллекции, контейнеры связаны с арифметикой? Раньше указатель++ и перешел в массиве на след кусок данных. Сейчас for (auto fille: контейнерФайлов) { ... Коллекции заменили массивы. Так как надо сдвигать, перераспределять память и блокировать автоматически и лениво. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2021, 16:05 |
|
|
start [/forum/topic.php?fid=59&msg=40099537&tid=2120337]: |
0ms |
get settings: |
23ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
484ms |
get tp. blocked users: |
1ms |
others: | 311ms |
total: | 907ms |
0 / 0 |