На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
Друзья! С Днём Защитника Отечества!
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (11) « Первая ... 2 3 [4] 5 6 ...  10 11 все  ( Перейти к последнему сообщению )  
> Что делать с жунами , Что делать с жунами
    Цитата sergioK @
    Кто решает что критично а что нет
    Есть сферы, где критично всё. Хотя и с разными уровнями. Там просто не бывает невысококритичного ПО. За остальные случаи я уже говорил: это решает заказчик, исходя из своих соображений эксплуатации целевого продукта. И дай ему бог не ошибиться.
    Цитата sergioK @
    Я что-то пропустил, где перечислил и что?
    Не пропустил. Ты оттуда цитировал.
    Цитата sergioK @
    Я не адвокат, но я знаю что критичный продукт это тот где могут пострадать люди
    или ущерб большой, какая разница не чем его писали то ?
    Это верно, но это не обязательно высококритичный продукт. Кроме того, возможные жертвы – это не единственный критерий. У нас как-то был проект от некоего оператора, не буду называть три большие буквы, которые хотели от нас полный цикл верификации виндового стека криптографии по упрощённой модели, ибо объём документации, понятное дело, ограничен. Кстати, тестирование должно выполняться без доступа к исходным кодам. Обычно его-таки дают, так дешевле, да и верификация в общем без анализа и рассмотрения многих аспектов требований и кода нереальна, но нужно всегда быть готовым к тому, что подсмотреть в коде ничего нельзя, есть только документация на него. Не уверен, я в нём не участвовал, хотя и консультировал по части архитектуры кода, работающего у винды на уровне ядра, но вроде бы это требовалось как часть процесса сертификации их банковских сервисов. С POSIX-ом им было проще, там открытый код. И да, это было давно, лет 10 как.

    Добавлено
    Цитата kopilov @
    вы — это кто?
    https://checko.ru/company/aviaok-1036154001289 Информация в источниках может быть не вполне актуальной, сейчас мы из ООО кастуемся к АО. Спектр деятельности широкий, но помимо легко угадываемых по разделу дополнительной информации тут, они практически неактивны, поставщиков таких услуг и без нас хватает. Там просто все лицензии перечислены.
    Цитата kopilov @
    Ну или где можно посмотреть список контор, которые выдают сертификаты на высококритичный софт
    Конкретно в нашей сфере он один и хорошо известен. Возможно не обману, если упомяну РосАтом в сфере ядерной и атомной энергетики, но это неточно. Больше не знаю. Хотя Минздрав хотелось бы упомянуть, но ИМХО «это утопия» ©.

    Добавлено
    Цитата Qraizer @
    ... но нужно всегда быть готовым к тому, что подсмотреть в коде ничего нельзя, есть только документация на него
    Кстати, уже постил куда-то, сбаяню. Мой любимый пример.
    В документации сказано: «функция void sort(int *vec, size_t size) должна выполнять сортировку массива vec, размером size. Сортировка осуществляется по возрастанию, результат замещает исходный vec.» Требуется разработать набор тестовых сценариев для проверки этого требования. Естественно так, чтобы их можно было рассматривать как доказательную базу корректности реализации sort() согласно описанию её поведения. Если кому интересно, могут попробовать.
    Пример, конечно искусственный, но он хорошо демонстрирует разницу в подходах к тестированию у нас и у бизнеса.
      Цитата Qraizer @
      Цитата sergioK @
      Кто решает что критично а что нет
      Есть сферы, где критично всё. Хотя и с разными уровнями. Там просто не бывает невысококритичного ПО. За остальные случаи я уже говорил: это решает заказчик, исходя из своих соображений эксплуатации целевого продукта. И дай ему бог не ошибиться.
      Цитата sergioK @
      Я что-то пропустил, где перечислил и что?
      Не пропустил. Ты оттуда цитировал.
      Цитата sergioK @
      Я не адвокат, но я знаю что критичный продукт это тот где могут пострадать люди
      или ущерб большой, какая разница не чем его писали то ?
      Это верно, но это не обязательно высококритичный продукт. Кроме того, возможные жертвы – это не единственный критерий. У нас как-то был проект от некоего оператора, не буду называть три большие буквы, которые хотели от нас полный цикл верификации виндового стека криптографии по упрощённой модели, ибо объём документации, понятное дело, ограничен. Кстати, тестирование должно выполняться без доступа к исходным кодам. Обычно его-таки дают, так дешевле, да и верификация в общем без анализа и рассмотрения многих аспектов требований и кода нереальна, но нужно всегда быть готовым к тому, что подсмотреть в коде ничего нельзя, есть только документация на него. Не уверен, я в нём не участвовал, хотя и консультировал по части архитектуры кода, работающего у винды на уровне ядра, но вроде бы это требовалось как часть процесса сертификации их банковских сервисов. С POSIX-ом им было проще, там открытый код. И да, это было давно, лет 10 как.

      Добавлено
      Цитата kopilov @
      вы — это кто?
      https://checko.ru/company/aviaok-1036154001289 Информация в источниках может быть не вполне актуальной, сейчас мы из ООО кастуемся к АО. Спектр деятельности широкий, но помимо легко угадываемых по разделу дополнительной информации тут, они практически неактивны, поставщиков таких услуг и без нас хватает. Там просто все лицензии перечислены.
      Цитата kopilov @
      Ну или где можно посмотреть список контор, которые выдают сертификаты на высококритичный софт
      Конкретно в нашей сфере он один и хорошо известен. Возможно не обману, если упомяну РосАтом в сфере ядерной и атомной энергетики, но это неточно. Больше не знаю. Хотя Минздрав хотелось бы упомянуть, но ИМХО «это утопия» ©.

      Добавлено
      Цитата Qraizer @
      ... но нужно всегда быть готовым к тому, что подсмотреть в коде ничего нельзя, есть только документация на него
      Кстати, уже постил куда-то, сбаяню. Мой любимый пример.
      В документации сказано: «функция void sort(int *vec, size_t size) должна выполнять сортировку массива vec, размером size. Сортировка осуществляется по возрастанию, результат замещает исходный vec.» Требуется разработать набор тестовых сценариев для проверки этого требования. Естественно так, чтобы их можно было рассматривать как доказательную базу корректности реализации sort() согласно описанию её поведения. Если кому интересно, могут попробовать.
      Пример, конечно искусственный, но он хорошо демонстрирует разницу в подходах к тестированию у нас и у бизнеса.

      У нас был курс алгоритмов учили такому, у нас таким математики занимаються, при унивеситетах,
      но никак не в коммерческих компаниях,



      С сайта
      Цитата

      Крупный поставщик
      Организация поставила товаров или оказала услуг на сумму более 50 636 687 руб.

      Я опять что-то не понимаю ?
      это меньше 1 миилиона долларов, так ? , за 18лет работы ? но у нас это называеться киоск,
      У нас ларек пивной в год больше дает, ничего личного

      Цитата
      Не входит в реестр недобросовестных поставщиков

      Опять не понимаю, у нас такое в голову не придет писать, зачем ?

      А это что значит ?

      Цитата
      По данным ФНС, среднесписочная численность работников: 111

      В фирме 111 работников ?



      Цитата
      Разработка, производство, испытание, установка, монтаж, техническое обслуживание, ремонт, утилизация и реализация вооружения и военной техники
      1

      И тут я тебе понять не могу, ну ясно, что все это требует лицензиий, только софт то причем тут ?
      Сообщение отредактировано: sergioK -
        Цитата sergioK @
        У нас был курс алгоритмов учили такому, у нас таким математики занимаються, при унивеситетах
        А у нас вчерашние студенты. Что делать, статус ИТ-столицы обязывает :lol:
        Цитата sergioK @
        У нас ларек пивной в год больше дает, ничего личного
        А он платит при этом миллионы человеко-часов 111-и работникам при белой бухгалтерии? А он использует при этом исключительно лицензионное ПО, потому как в противном случае ни один квалификационный сертификат не будет действительным? Документ, описывающий процесс развёртывания инструмента и полную методику работы с ним в наших процессах с приложенной лицензией на него как гарантом его подлинности, является хоть и далеко ещё не достаточным, но как ни крути неотъемлемым условием для получения квалификационного заключения по нему. И лицензии на подобного рода продукты из-за их малого рыночного спроса стоят нихрена себе. Просто для оценки вложений: в этом году нами была приобретена ещё одна лицензия на Rational Test Realtime за 2000000₱, а общий ордер на специализированное ПО, потраченный нами, нашим заказчиком и его головным распорядителем, за прошлый год составили около 125000000.
        Цитата sergioK @
        ...
        sergioK, ничего личного, но я был лучшего мнения о твоих аналитических способностях. К тому же это независимый источник, это его выводы о нас, а не наша реклама.
          Цитата Qraizer @
          Цитата sergioK @
          У нас ларек пивной в год больше дает, ничего личного
          А он платит при этом миллионы человеко-часов 111-и работникам при белой бухгалтерии? А он использует при этом исключительно лицензионное ПО, потому как в противном случае ни один квалификационный сертификат не будет действительным?

          У нас нет не белой бугалтерии и не лицензионного ПО, во-первых законы работают,
          во вторых можно систему обмануть можно только себе дороже, а в третих за ПО получают возврат, налогов и поддержку на случай сбоя,
          за пиратское по можешь штраф около 300,000$ или срок, а если вдруг сбой дасть то бизнес понесет убытки,
          Какой смысл стелять себе в ногу то ?

          А теперь название темы посмотри ;) , может не надо уходить так далеко, можно новую тему открыть ,
          если есть желание



          Добавлено
          Цитата Qraizer @
          sergioK, ничего личного, но я был лучшего мнения о твоих аналитических способностях.
          К тому же это независимый источник, это его выводы о нас, а не наша реклама.

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

          Добавлено
          Цитата Qraizer @
          А он платит при этом миллионы человеко-часов 111-и работникам при белой бухгалтерии?

          У нас человеко-часов при дейсвующем бизнесе никто не считает, ну мне не известно,
          в одном из 111 в другом бизнесе 11, не факт что первый круче, да и не математика это считать
          можно по разному, полно всяких трюков(законных),
          Сообщение отредактировано: sergioK -
            sergioK, а кто первым ушёл от темы? Qraizer по нашей с тобой просьбе («вы — это кто?») дал ссылку на компанию, опосредованную (на независимый каталог — видимо, потому, что гугл, паразит, быстро индексирует). А ты уже начал выводы строить.
            Ну и, раз такая пьянка, я тоже немного карты раскрою

            Добавлено
            Цитата sergioK @
            У нас ларек пивной в год больше дает, ничего личного

            :sarcasm:
            Ага, это не личное, это общественное: бухать наш народ любит
              Цитата sergioK @
              У нас человеко-часов при дейсвующем бизнесе никто не считает, ну мне не известно
              В нашей сфере как раз принято контракты заключать под объёмы работ, которые измеряются именно что в человеко-часах. И они не с потолка берутся, есть стандартные таксы на ту или иную деятельность. Если кто работает быстрее, ему только плюс, больше денег в прибыль, но качество результатов естественно не должно страдать, если медленнее, то за свои, ибо зарплаты и налоги платить надо каждый месяц.
              Цитата sergioK @
              У нас нет не белой бугалтерии и не лицензионного ПО, во-первых законы работают
              Давай только без тролльства. Я ж не за вас, а за пресловутый ларёк, который ты упомянул.
              И я не говорил, что наши прибыли баснословны. Это вообще к предмету высококритичности не имеет отношения, государственные кампании вообще на это могут положить и сосать бюджет, пока дают. Пока у государства бюджет терпение не лопнет. Мы же – частная кампания, в отличие от наших заказчиков, к слову, и позволить себе отрицательный баланс не можем. Так что приведённая инфа говорит об эффективности нашей работы очень даже убедительно. Ну, по крайней мере тем, кто понимает. Из негосударственных я знаю только ещё одну кампанию в этой сфере, и она московская.

              Добавлено
              Цитата kopilov @
              ...на независимый каталог — видимо, потому, что гугл, паразит, быстро индексирует...
              Ну как бы у нас нет страницы. Была, но в связи с реорганизацей тоже под редизайном. Давно уже, к слову, ответственный за это человек счас сильно другими вещами занят.
              Вообще, мне интересно, когда ж sergioK заметит, что он пытается оспорить свой же тезис. Ну не свой, а вон тот, про дроздов и строителей. Почему б не помочь хорошему человеку, если есть время, я после второй прививки немного свободен.

              Добавлено
              Ну так как насчёт задачки? Никто тестированием не занимался, что ли? Если сложно, можно попробовать попроще: "функция int sqeq(float a, float b, float c, float *x1, float *x2) должна решать квадратное уравнение с коэффициентами a, b и c. Выходные параметры x1 и x2 заполняются корнями уравнения, возвращаемое значение 1, если x1 и x2 успешно рассчитаны, или 0 в противном случае." С этой задачи у нас обычно начинается обучение джунов.
              Сообщение отредактировано: Qraizer -
                Цитата Qraizer @
                Ну не свой, а вон тот, про дроздов и строителей.

                про дроздов это когда программа дает сбой из-за поца, который не закрыл
                ресурс,естесно я упрощаю, и результат с десяток умерших, татаму что он физик а
                наниматель его друг детсва, или там брат подруги жены, добавь любое,
                а в строительсве если у ниженера нет лицензии то это не поможет,
                сотни, программист сделавший глупость юридически никак за это не отвечает,
                в отличии ои электрика , монтажника, механика и т,д, и количество этих
                багов зависит от его личной ответсвенности, желание сделать хорошо, воспитания,
                влияние окружение, желания быстро заработать и ,т,д,

                Вот и придумали шутку про дроздов, а в каждой шутке доля правды, as smaller as better

                Добавлено
                Цитата Qraizer @
                В нашей сфере как раз принято контракты заключать под объёмы работ, которые измеряются именно что в человеко-часах. И они не с потолка берутся, есть стандартные таксы на ту или иную деятельность.

                В вашей это в какой ? ты же програмист или нет ?

                Добавлено
                Цитата Qraizer @
                я после второй прививки немного свободен.

                И какая связь ? после второй прививки нельзя работать?

                Добавлено
                Цитата Qraizer @
                Что делать, статус ИТ-столицы обязывает :lol:

                Таганрог это столица IT ? Или это была ирония ?
                  Цитата applegame @
                  А в чем проблема его реализовать? Нет никакой проблемы его реализовать.

                  В том, что любая операция добавления/изменения приводит к созданию полной копии списка.

                  Цитата applegame @
                  Какое из твоих утверждений ЧТД?

                  Оно было одно:
                  Цитата
                  их, например, нельзя просто сделать иммутабельными и/или ленивыми, в отличие от односвязных.


                  Цитата applegame @
                  Это для чтения, а если надо перезаписать элемент, то придется часть этого дерева пересоздать, это будет стоить намного дороже.

                  Не намного.

                  Цитата applegame @
                  Возможно, что LinkedList - просто корявая реализация двусвязного списка

                  1) то что я перечислил, не особенности реализации LinkedList, а особенности двусвязных списков как структуры данных в принципе.
                  2) я тебе с самого начала говорил, что в твитте речь про LinkedList, но ты продолжил что-то додумывать.

                  Цитата applegame @
                  Мои двусвязные списки (не на жабе, конечно) используют пулы

                  Пулы чего?

                  Цитата applegame @
                  и добавляют по два указателя к каждой ноде.

                  Вот и получается x3: (указатель на объект + prev + next) вместо одного указателя на объект.

                  Цитата applegame @
                  Я сделал предположение по этому его высказыванию (других я не знаю). А он явно сморозил чушь.

                  Ты сделал предположение по каким-то своим фантазиям, которые упорно продолжаешь фантазировать.
                  Сообщение отредактировано: korvin -
                    Цитата korvin @
                    В том, что любая операция добавления/изменения приводит к созданию полной копии списка.
                    И что? Любая операция добавления/изменения кортежа в эрланге приводят к созданию полной копии, и это совершенно не мешает быть кортежам иммутабельными.
                    Цитата korvin @
                    Оно было одно:
                    Цитата
                    их, например, нельзя просто сделать иммутабельными и/или ленивыми, в отличие от односвязных.

                    И оно неверное. И конечно же моя фраза про бесполезность никак не доказывает это твое утверждение. Ленивость - это вообще ортогональное явление. Сами списки не могут быть ленивыми - это бессмыслица. Ленивыми могут быть операции над самими списками или их элементами. И тут никакой разницы между односвязными и двусвязными списками нет вообще.
                    Цитата korvin @
                    Не намного.
                    Достаточно много, чтобы люди парились с хеш-таблицами и прочими алгоритмами с амортизированной константной сложностью.
                    Цитата korvin @
                    1) то что я перечислил, не особенности реализации LinkedList, а особенности двусвязных списков как структуры данных в принципе.
                    2) я тебе с самого начала говорил, что в твитте речь про LinkedList, но ты продолжил что-то додумывать.
                    В твите речь не только о LinkedList, но ты продолжаешь игнорировать половину твита.
                    Цитата korvin @
                    Пулы чего?
                    Пулы нод, для минимизации времени аллокации/освобождения памяти под ноду.
                    Цитата korvin @
                    Вот и получается x3: (указатель на объект + prev + next) вместо одного указателя на объект.
                    Указатель на объект в любом случае есть. Поэтому получается +2*sizeof(size_t) на элемент, а не x3. В C/C++/D часто можно хранить в ноде сам объект, а не указатель на него, что позволяет сэкономить еще один указатель.
                    Цитата korvin @
                    Ты сделал предположение по каким-то своим фантазиям, которые упорно продолжаешь фантазировать.
                    Какие фантазии? Автор прямо заявил, что любит односвязные списки, а LinkedList - это что-то совершенно другое. На мой вопрос, что именно "это совершенно другое" ты, видимо, ответить не в состоянии. Java мутабельный язык и в нём не прокатывает аргумент о проблемах персистентности. А в остальном получается, что LinkedList и односвязные списки - близнецы братья. Поэтому я и делаю вывод, что автор сморозил ерунду.
                    Сообщение отредактировано: applegame -
                      Цитата applegame @
                      Любая операция добавления/изменения кортежа в эрланге приводят к созданию полной копии, и это совершенно не мешает быть кортежам иммутабельными.

                      При чём тут кортежи? Если ты используешь кортежи вместо массивов/списков, то ты используешь их неправильно.

                      Цитата applegame @
                      Ленивость - это вообще ортогональное явление. Сами списки не могут быть ленивыми - это бессмыслица. Ленивыми могут быть операции над самими списками или их элементами


                      ExpandedWrap disabled
                        ll = [ print 1 , print 2 , print 3 ]

                      Какие операции тут ленивые?

                      https://ideone.com/L5Toq1

                      Ленивые списки на Scheme

                      ExpandedWrap disabled
                        (define-syntax lazy-cons
                          (syntax-rules ()
                            ((_ head tail) (cons (delay head) (delay tail)))))
                         
                        (define (lazy-head ll)
                          (force (car ll)))
                         
                        (define (lazy-tail ll)
                          (force (cdr ll)))
                         
                        (define-syntax lazy-list
                          (syntax-rules ()
                            ((_ x)      (lazy-cons x '()))
                            ((_ x . xs) (lazy-cons x (lazy-list . xs)))))
                         
                        ;;; ----------------------------------------------------------------
                         
                        (define ll (lazy-list (print 1) (print 2) (print 3)))
                         
                        (lazy-head (lazy-tail ll))


                      https://ideone.com/BexV68


                      и на Java. Синтаксического сахара только не хватает

                      ExpandedWrap disabled
                        import java.util.function.Supplier;
                         
                        /* Name of the class has to be "Main" only if the class is public. */
                        class Ideone {
                         
                            public static void main (String[] args) throws java.lang.Exception {
                                var ll = Lazy.list( () -> print(1), () -> print(2), () -> print(3) );
                                ll.tail().head();
                            }
                         
                            private static Unit print(Object o) {
                                System.out.println(o);
                                return Unit.UNIT;
                            }
                        }
                         
                        final class Lazy {
                         
                            public static <T> Promise<T> delay(Supplier<T> expr) {
                                return new Promise<>(expr);
                            }
                         
                            public static <T> List<T> cons(Supplier<T> headExpr, Supplier<List<T>> tailExpr) {
                                return new List<>(new Promise<>(headExpr), new Promise<>(tailExpr));
                            }
                         
                            public static <T> List<T> nil() {
                                @SuppressWarnings("unchecked")
                                var nil = (List<T>) List.NIL;
                                return nil;
                            }
                         
                            @SafeVarargs
                            public static <T> List<T> list(Supplier<T>... values) {
                                if (values == null || values.length == 0) {
                                    return nil();
                                }
                                return list(values, 0);
                            }
                         
                            private static <T> List<T> list(Supplier<T>[] values, int headCursor) {
                                if (headCursor == values.length) {
                                    return nil();
                                }
                                return new List<>(new Promise<>(values[headCursor]), new Promise<>(() -> list(values, headCursor+1)));
                            }
                         
                            private Lazy() {
                                throw new UnsupportedOperationException("utility class");
                            }
                        }
                         
                        final class List<T> {
                         
                            static final List<?> NIL = new List<>(null, null);
                         
                            private final Promise<T> head;
                            private final Promise<List<T>> tail;
                         
                            List(Promise<T> head, Promise<List<T>>tail) {
                                this.head = head;
                                this.tail = tail;
                            }
                         
                            public T head() {
                                return head.force();
                            }
                         
                            public List<T> tail() {
                                return tail.force();
                            }
                        }
                         
                        final class Promise<T> {
                         
                            private static final Object undefined = new Object();
                         
                            private final Supplier<T> delayedExpression;
                         
                            @SuppressWarnings("unchecked")
                            private T value = (T) undefined;
                         
                            Promise(Supplier<T> expr) {
                                this.delayedExpression = expr;
                            }
                         
                            public T force() {
                                if (value == undefined) {
                                    value = delayedExpression.get();
                                }
                                return value;
                            }
                        }
                         
                        final class Unit {
                         
                            public static final Unit UNIT = new Unit();
                         
                            private Unit() {}
                        }


                      https://ideone.com/r0ttxo


                      Цитата applegame @
                      Достаточно много, чтобы люди парились с хеш-таблицами и прочими алгоритмами с амортизированной константной сложностью.

                      Ты путаешь тёплое с мягким.
                      1) никто в ФП не парится с хеш-таблицами
                      2) чистые функциональные хеш-таблицы реализуются точно также, как и функциональные массивы — с использованием деревьев и частичным копированием — и имеют точно такую же сложность.

                      Цитата applegame @
                      В твите речь не только о LinkedList, но ты продолжаешь игнорировать половину твита.

                      Но речи о single-linked-list vs double-linked-list там нет, так что нет, не игнорирую.

                      Цитата applegame @
                      Пулы нод, для минимизации времени аллокации/освобождения памяти под ноду.

                      Т.е. ты
                      1) практически делаешь работу аллокатора
                      2) никак не решаешь отсутствие векторизации
                      3) усложняешь структуру данных / её использование, вместо того, чтобы попробовать другую структуру, не имеющую таких проблем
                      отличное решение, молодец.

                      Цитата applegame @
                      Указатель на объект в любом случае есть. Поэтому получается +2*sizeof(size_t) на элемент, а не x3.

                      :facepalm: 1(указатель на объект) + 2 = 3, поэтому x3. Если ты почему-то думал, что x3 = 1+3, то нет.

                      Цитата applegame @
                      Автор прямо заявил, что любит односвязные списки

                      Нет, он написал
                      Цитата
                      Don't get me wrong; I love linked lists. They're as useful in C as they are in Scheme.

                      Ладно Scheme, но с чего ты взял, что «linked lists ... in C» означает «односвязные списки»? В C нет двусвязных? Может, ему, например, нравятся интрузивные двусвязные списки в Си?

                      Цитата applegame @
                      Java мутабельный язык

                      Ты теперь ещё и терминологию какую-то выдумываешь. :facepalm:
                      В Java нельзя описывать иммутабельные объекты? Это запрещено на уровне JVM? Как же Scala и Clojure работают?
                      Может их не рекомендуют к использованию? Да нет, наоборот, рекомендуют. Вот и в стандартной библиотеке давно появилось StreamAPI для работы с коллекциями в функциональном стиле, а неизменяемые обёртки для стандартных коллекций в JDK существуют с незапамятных времён.

                      Добавлено
                      Цитата sergioK @
                      Да приколист, он взявший имя автора известной книги по Яве, IMHO

                      Это и есть автор известной книги по Яве, а также части JDK, в том числе и LinkedList.

                      Цитата sergioK @
                      Стандартный класс, который использует полмира уже лет 20, не нравиться

                      Какие полмира? Кто его использует? Все хоть сколько-нибудь адекватные люди если и используют его, то крайне редко. Ты тоже любишь пофантазировать?
                      https://discuss.kotlinlang.org/t/why-kotlin...ntation/15991/2

                      Цитата sergioK @
                      наследуй и пиши свою реализацию пулами или без, хотя я не понимаю зачем,

                      И я не понимаю, зачем, если есть замечательные ArrayList и ArrayDeque.

                      Добавлено
                      ArrayList vs LinkedList benchmark
                      Сообщение отредактировано: korvin -
                        Цитата korvin @
                        Какие полмира? Кто его использует? Все хоть сколько-нибудь адекватные люди если и используют его, то крайне редко. Ты тоже любишь пофантазировать?

                        Не прнимающие направо и на лево используют ArrayList, исторический курьез языка,
                        А LinkedList нужен когда ды ты считываешь данные неопередельной длины, особенно большие обьемы,
                        необходимось зависит от задачи, зачем он двойной нужен это разговор отдельный,

                        Добавлено
                        Цитата korvin @
                        И я не понимаю, зачем, если есть замечательные ArrayList и ArrayDeque.

                        Ты на втором курсе data structure изучал ?
                        Array имеет фиксированный размер памяти, LL нет,
                        кто применять и где зависить от тебя и понимания задачи, все разговоры
                        о ом что LL устарел чистой воды тролинг, или не понимание.
                          Цитата sergioK @
                          А LinkedList нужен когда ды ты считываешь данные неопередельной длины, особенно большие обьемы,

                          Нет, не нужен.

                          Цитата sergioK @
                          Ты на втором курсе data structure изучал ?

                          А ты data structures только на уровне базового курса университета знаешь?

                          Цитата sergioK @
                          Array имеет фиксированный размер памяти, LL нет,

                          Ты вообще, в курсе, что такое ArrayList?

                          Цитата sergioK @
                          что применять и где зависить от тебя и понимания задачи, все разговоры

                          Не только от этого, но и от характеристик самой структуры данных.

                          Цитата sergioK @
                          о ом что LL устарел чистой воды тролинг, или не понимание.

                          Это у тебя полное непонимание того, как работает JVM, память и процессор.
                            Цитата korvin @
                            При чём тут кортежи? Если ты используешь кортежи вместо массивов/списков, то ты используешь их неправильно.
                            При том, что твой аргумент, что двусвязный список нельзя сделать иммутабельным, потому что надо его целиком копировать при, например, добавлении элемента несостоятелен. Двусвязный список можно сделать иммутабельным. Для того же эрланга можно как нефиг делать написать NIF реализующий иммутабельный двусвязный список.
                            Цитата korvin @
                            Какие операции тут ленивые?
                            Очевидно print. Словосочетание "ленивый список" - это по сути жаргонизм обозначающий список с поддержкой ленивых вычислений над элементами. Но суть-то не в терминах. Суть в том, что двусвязный список тоже можно сделать с поддержкой ленивых вычислений (или просто ленивым, если тебе так хочется), не вижу никаких препятствий.
                            Цитата korvin @
                            Ты путаешь тёплое с мягким.
                            1) никто в ФП не парится с хеш-таблицами
                            2) чистые функциональные хеш-таблицы реализуются точно также, как и функциональные массивы — с использованием деревьев и частичным копированием — и имеют точно такую же сложность.
                            Не путаю. Просто ты в каждом ответе норовишь съехать куда-то в сторону.
                            1) Не парятся потому что выбора у них нет. А в языках с поддержкой мутабельности еще как парятся.
                            2) См. ответ на пункт 1.
                            Вывод: иммитация массива на деревьях в ФП - вынужденная мера, это лучшее, что там можно сделать. Это слабое место иммутабельного ФП. И памяти оно ест больше и к кэшу процессора недружелюбно и доступ неконстантный. И-за этого в узких местах приходится городить костыли на языках с поддержкой мутабельности.
                            Цитата korvin @
                            Т.е. ты
                            1) практически делаешь работу аллокатора
                            2) никак не решаешь отсутствие векторизации
                            3) усложняешь структуру данных / её использование, вместо того, чтобы попробовать другую структуру, не имеющую таких проблем
                            отличное решение, молодец.
                            :facepalm: Я думаю, ты просто некомпетентен в этой области. Почитай про мемори пулы и вообще про низкоуровневую оптимизацию работы с памятью, инфа на эту тему есть.
                            Цитата korvin @
                            Но речи о single-linked-list vs double-linked-list там нет, так что нет, не игнорирую.
                            Ну а о чем там тогда речь? Почему "LinkedList is another matter entirely"? Раз ты процитировал этот кусок, то хотелось бы услышать твое понимание слов автора.
                            Цитата korvin @
                            Ладно Scheme, но с чего ты взял, что «linked lists ... in C» означает «односвязные списки»? В C нет двусвязных? Может, ему, например, нравятся интрузивные двусвязные списки в Си?
                            Ну в общем-то из-за Scheme я так и понял. Ну и как из фразы "They're as useful in C as they are in Scheme" можно вообще сделать вывод, что в C автор имел ввиду не те же списки, что и в Scheme? Альтернативный английский? Ну и если эти linked list так полезны в C, а LinkedList это "another matter entirely", то вероятно в Java должен существовать правильный linked list, аналогичный таковому в C и Scheme. Он существует?
                            Цитата korvin @
                            Ты теперь ещё и терминологию какую-то выдумываешь.
                            А ты типа не понял о чем речь? Или таки сделал вид, что не понял? Ок, разъясняю: "мутабельным языком" я назвал язык имеющий встроенную поддержку мутабельных переменных. Так понятнее? Ну и как обычно ты сворачиваешь с основной темы. Давай уже назад к "иммутабельным/ленивым" двусвязным спискам. По твоему мнению их можно сделать таковыми или нет? Если нет, то что именно мешает?
                            Цитата korvin @
                            В Java нельзя описывать иммутабельные объекты? Это запрещено на уровне JVM? Как же Scala и Clojure работают?
                            Может их не рекомендуют к использованию? Да нет, наоборот, рекомендуют. Вот и в стандартной библиотеке давно появилось StreamAPI для работы с коллекциями в функциональном стиле, а неизменяемые обёртки для стандартных коллекций в JDK существуют с незапамятных времён.
                            Ну это вообще из серии "сам придумал - сам опровергнул". :)
                            Сообщение отредактировано: applegame -
                              Цитата applegame @
                              При том, что твой аргумент, что двусвязный список нельзя сделать иммутабельным, потому что надо его целиком копировать при, например, добавлении элемента несостоятелен.

                              Состоятелен, потому что юз-кейсы у списка и кортежа принципиально разные.

                              Цитата applegame @
                              Двусвязный список можно сделать иммутабельным. Для того же эрланга можно как нефиг делать написать NIF реализующий иммутабельный двусвязный список.

                              Без копирования? Ну-ну.

                              Цитата applegame @
                              Очевидно print.

                              Очевидно, 1) print здесь элемент списка, а не «операция» над элементом списка, 2) в примерах на Scheme и Java print не является ленивой функцией.

                              Цитата applegame @
                              Суть в том, что двусвязный список тоже можно сделать с поддержкой ленивых вычислений (или просто ленивым, если тебе так хочется), не вижу никаких препятствий.

                              Нельзя, из-за обратной ссылки на предыдущий элемент. Ты не сможешь даже сконструировать такой список.

                              Цитата applegame @
                              Просто ты в каждом ответе норовишь съехать куда-то в сторону.

                              Вообще-то съезжать в сторону начал ты с самого начала.

                              Цитата applegame @
                              Я думаю, ты просто некомпетентен в этой области. Почитай про мемори пулы и вообще про низкоуровневую оптимизацию работы с памятью, инфа на эту тему есть.

                              Я думаю, что ты некомпетентен, но думаешь, будто компетентен. Вот и скинь ссылку на «правильную» с твоей точки зрения инфу.
                              А лучше сразу свой связный список с мемори пулом и примером юз-кейса для тестирования/замера.

                              Цитата applegame @
                              Ну а о чем там тогда речь?

                              Речь о том, что класс LinkedList оказался на практике почти бесполезен.

                              Цитата applegame @
                              Ну в общем-то из-за Scheme я так и понял.

                              Я так и подумал, что ты выборочно прочитал то, что захотел прочитать и триггернулся.

                              Цитата applegame @
                              Ну и как из фразы "They're as useful in C as they are in Scheme" можно вообще сделать вывод, что в C автор имел ввиду не те же списки, что и в Scheme?

                              Вопрос другой: как из этой фразы можно было сделать вывод, что автор имел в виду совершенно одинаковые структуры данных в двух сильно разных языках?

                              Цитата applegame @
                              Ну и если эти linked list так полезны в C, а LinkedList это "another matter entirely", то вероятно в Java должен существовать правильный linked list, аналогичный таковому в C и Scheme. Он существует?

                              В JDK — нет. В сторонних библиотеках коллекций — возможно.

                              Вот, например, в org.apache.commons есть двусвязный список с этим твои кэшированием нод

                              Цитата applegame @
                              А ты типа не понял о чем речь?

                              Я-то понял, только зачем ты терминологию выдумываешь?

                              Цитата applegame @
                              По твоему мнению их можно сделать таковыми или нет? Если нет, то что именно мешает?

                              Нет. Что мешает, написал выше. Ты, конечно, можешь просто взять мой пример ленивого односвязного списка для Java и сделать двусвязный. Ну или с нуля на твоём любимом языке.

                              Цитата applegame @
                              Ну это вообще из серии "сам придумал - сам опровергнул".

                              Кто ж разберёт твои фантазии.
                                Цитата korvin @
                                Цитата sergioK @
                                Ты на втором курсе data structure изучал ?

                                А ты data structures только на уровне базового курса университета знаешь?

                                Нет, не только

                                Добавлено
                                Цитата korvin @
                                Ты вообще, в курсе, что такое ArrayList?

                                Я таких ArrayList не один десяток написал , разных имплементаций ,
                                ArrayList умножает память на 3/2 и перегрузить это нельзя в отличии от вектора,
                                и это одна имлементация интерфэйса java.util.List другая это Linked List,
                                пользуешь когда не знаешь сколько элементов будет.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (11) « Первая ... 2 3 [4] 5 6 ...  10 11 все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0916 ]   [ 15 queries used ]   [ Generated: 22.02.24, 16:47 GMT ]