|
Изолированные классы
|
|||
---|---|---|---|
#18+
И тот паттерн-матчинг - не настоящий. Вот настоящий. Это по идее Haskell. Но я пишу от руки поэтому оно нихрена не скомпилируется но идея такая. Код: python 1. 2. 3. 4. 5.
Тоесть я свёл все это дерьмо к декларации трех функций. А не к псевдо-switch оператору. Больше нет ничего. Ни полиморфизьма. Ни объектов. Мир застывшей логики. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 01:57 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
mayton, Ну самое новое это наверное dependent types, хотя разрабатывать теорию начали давно, только недавно появилась реальная перспектива промышленного применения. Из интересных идей также отмечу работу с памятью в Rust, которая безопасная управляемая и быстрая. И никаких gc. Также интересна идея STM. Транзакционная память тоже немолодая идея, но наконец то его можно пробовать в реальных проектах. Ну и касаемо больше fp - есть такой стиль написания программы как final tagless encoding, очень большой потенциал для убийства ООП. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 02:05 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
В случае с Java может произойти не убийство а загрязнение языка. И я сочувствую новичкам которые входят в язык. Им сложнее освоить базу. Она - расширяется и через 10 лет догонит С++. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 02:11 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
mayton И тот паттерн-матчинг - не настоящий. Вот настоящий. Это по идее Haskell. Но я пишу от руки поэтому оно нихрена не скомпилируется но идея такая. Код: python 1. 2. 3. 4. 5.
Тоесть я свёл все это дерьмо к декларации трех функций. А не к псевдо-switch оператору. Больше нет ничего. Ни полиморфизьма. Ни объектов. Мир застывшей логики. Ну скаловский паттерн матчинг конечно более развесистый но и более мощный чем у хаскеля. А вот что касается того что под соусом паттерн матчинг а пытаются всунуть в джаву.... Там да, бессмысленно и беспощадно, я о том и говорю. Лепят какие то полу-недо-фичи обрезанные и которые невозможно юзать в идиоматическом стиле и на мой взгляд только усложняют язык. Но видимо уплочено ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 02:12 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
mayton В случае с Java может произойти не убийство а загрязнение языка. И я сочувствую новичкам которые входят в язык. Им сложнее освоить базу. Она - расширяется и через 10 лет догонит С++. Угу, а загрязнение и приводит к смерти. Ниша сильно сузится. Вообще не понимаю стартов новых проектов на джаве. Не нравится скала или кложур - на тебе котлин ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 02:14 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
Мир Java ентерпрайза пока зиждется на строгом убеждении что write once ... works everywhere. И пока это работает бинарникам ничего не грозит. Вот как долго без эволюции OpenJDK и Oracle смогут удерживать JVM в состоянии поддержки. Старые фичи тянут на дно как гиря. Сама JVM это по сути калькулятор Mk-60. Там даже нет намёка на команды поддержки SSE1/2/3, AVX. Мы не можем собрать эффективный H.264 декодер видео на Java не потому что она плоха а потому что у нас нет прямого управления фичами современного процессора. Я шутки ради создал топик где я делаю интринзик на ассемблере x86 в Java коде но в этой шутке я ждал реакции форума. Что скажут? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 02:19 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
Сергей Лалов у меня иерархия глубиной дай бог классов в 3 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 08:05 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
забыл ник Ключевое слово упоротых P.S. Когда же вы все научитесь спокойно относиться к фичами и возможностям, которые не нужны лично вам ?.. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 08:10 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
mayton Что скажут? Для платформы, которая "бегает везде" нет смысла тянуть в язык фичу, доступную "почти нигде". Сначала - более-менее массовое внедрение и уже потом - поддержка платформы. При этом, что характерно, никто не мешает сделать так, как вам хочется - собственно JVM требует для своей работы всего пяти классов. Всё остальное вы можете переделать. Если не создавать собственный компилятор - кое-что придётся оставить как есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 08:23 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
Basil A. Sidorov забыл ник Ключевое слово упоротых P.S. Когда же вы все научитесь спокойно относиться к фичами и возможностям, которые не нужны лично вам ?.. Ну у нас тут все либо-писатели сидят конечно. Перефразируя, упоротого прикладного программиста, надеюсь стало легче. Sealed в скале я использую уже 5 лет и в хвост и в гриву, так что не надо мне рассказывать про нужнгсть. применение у этой фичи в основном такое - 1) замена энумам 2) более безопасный по отношению к рантайм ошибкам паттерн матчинг. Оба этих кейса легко покрываются хорошо имплементированными энамами, что в джаве на редкость хорошо сделано. Я конечно допускаю, что чего-то не понимаю и в этом случае тебе не составит труда привести пару кейсов для которых sealed просто необходим ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 12:53 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
забыл ник не составит труда привести пару кейсов для которых sealed просто необходим Исторический пример - "Sealed: true" в манифесте jar-файла. Зачем может быть нужно? В java-классе доступ по умолчанию "в пределах пакета". Предположим, что я реализовал некий "чувствительный" класс, который используется другими классами в том же пакете. Работа с лицензиями или что-нибудь этакое. Наследоваться от такого класса бессмысленно - "важные" методы и переменные не имеют модификаторов доступа, а значит и у наследников не будет доступа "куда не надо". Но, если "чужак" поместит в этот пакет собственный класс, то сможет получить "некие преференции", которых разработчик трудолюбиво его лишал. Просто создаём собственный класс в пакете разработчика, кладём его "рядышком" и - всё. "Взлом" делается на уровне скрипта запуска. Если jar "запечатан", то классы любых его пакетов будут загружаться строго из одного места, а значит не будет работать или класс "взломщика" или класс разработчика. Понятное дело, что такая "защита" тривиально обходится переупаковкой jar-файла, но во многих случаях и такой вариант "защиты" более чем достаточен. Аналогично и с запечатанными классами. Есть интерфейс (абстрактный класс), который должен быть реализован (расширен) только разработчиком и никем кроме него. При этом разработчику требуется несколько реализаций. Запечатываем (только) интерфейс (класс) и получаем гарантию, что "никто кроме нас". ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 13:21 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
Практический смысл так и остался непонятен. Насчёт интерфейсов - это по определению вещь, которая должна быть публично доступная и расширяемая. Если надо ее закрыть, то проще не допустить ее появления в публичном api, а практической необходимости ограничивать в контролируемом тобой коде вообще не вижу. Что касается классов - чем final не устраивает хз. В общем так ничего убедительного и не услышал. Насчёт sealed пакетов, кстати интереснее - давно задумывался почему виртуальная машина даёт загружать пекедди с одинаковым именем с разных источников. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 14:39 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
забыл ник Если надо ее закрыть, то проще не допустить ее появления в публичном api, а практической необходимости ограничивать в контролируемом тобой коде вообще не вижу. P.S. "Я ему - покажи. А он мне - в нашем клубе джентельменам верят на слово. И тут мне карта как попрёт" ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 14:56 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
забыл ник Практический смысл так и остался непонятен. Насчёт интерфейсов - это по определению вещь, которая должна быть публично доступная и расширяемая. Если надо ее закрыть, то проще не допустить ее появления в публичном api, а практической необходимости ограничивать в контролируемом тобой коде вообще не вижу. Что касается классов - чем final не устраивает хз. Я вижу себе смысл не в секюрности а в создании непротиворечивой доменной модели. Тоесть если вы определили sealed class Gender - то у вас будет строго детерминированный набор типов Male, Female, Male-To-Female .e.t.c. сколько наша medical insurance system поддерживает типов клиентов. И никто кроме архитектора не подкинет новых. Это можно сказать так. Final class - это ограничитель по "вертикали" диаграмме наследования а sealed - лимит по "горизонтали" или по quantity. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 16:44 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
забыл ник Насчёт sealed пакетов, кстати интереснее - давно задумывался почему виртуальная машина даёт загружать пекедди с одинаковым именем с разных источников. Я думаю что фразу "дает загружать" надо расписать как некую последовательность шагов. Или поисковых операций. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 16:48 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
Некоторые sealed scala classes: Код: java 1. 2.
Код: java 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2020, 01:56 |
|
|
start [/forum/topic.php?fid=59&msg=40018286&tid=2120616]: |
0ms |
get settings: |
7ms |
get forum list: |
6ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
53ms |
get topic data: |
3ms |
get forum data: |
1ms |
get page messages: |
267ms |
get tp. blocked users: |
0ms |
others: | 301ms |
total: | 640ms |
0 / 0 |