| 
 | 
| 
 
Изолированные классы 
 | 
|||
|---|---|---|---|
| 
 #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=40018212&tid=2120616]:  | 
    0ms | 
get settings:  | 
    9ms | 
get forum list:  | 
    13ms | 
check forum access:  | 
    4ms | 
check topic access:  | 
    4ms | 
track hit:  | 
    52ms | 
get topic data:  | 
    9ms | 
get forum data:  | 
    2ms | 
get page messages:  | 
    52ms | 
get tp. blocked users:  | 
    2ms | 
| others: | 14ms | 
| total: | 161ms | 

| 0 / 0 | 

На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даете согласие с использованием данных технологий.