Требуется переписать сайт биллинговой системы

andreykalab

Проверенные
Сообщения
146
Реакции
79
Баллы
3,330
Captain ,почему печалька , как то не в масть ,реализация вопроса поставлена я думаю понятна или темой ошибся?
 
Переписывать на жабу, ужасная идея у которой течет память абсолютно всегда и не существует такого когда у нее не течет память. Если уж надоел пэхапе, то можно на Node.js и все на жсе реализовать, а если уж и не туда то есть отличное решение язык Go, который минимально требователен к ресурсам, память не течет и кучу возможностей. И ко всему этому отлично подходит для вебы. Так и для апишных тулз. К чему отказ от существующего проекта с переписью и сменой архитектуры, а так же поддержкой у него сразу на фронтенде в виде Vue не понятно.
 
Captain, .откуда у тебя такое мнение про Java? Язык программирования - это всего лишь инструмент и всё зависит от того, как ты будешь его использовать. Да, там есть проблемы с памятью, т.к. там сборщик мусора такой себе, но они банально фиксятся кодом. Да и будь он таким плохим, он бы не был в топ-3 самых оплачиваемых и востребованных ЯП такое продолжительное время.
 
BINGO_SHARK, опыт и знание этой помойки. И что? Раньше был популярный делфи и паскаль и теперь давайте кодить на них? Они умерли и кончина жабы я надеюсь так же будет такая же. Тут проблема ни кода, а самой жабы. Сами жабисты не имеют понятия о виртуальной машине, как она устроена и как она работает. Вырезать все полезное и си и продвигать это - нет уж спасибо. Не давно писали сервер лицензии на сокетах, в итоге от пакетиков в тысячу память уже улетала в пустоту. Оно и показатель, пришлось гайки крутить и дописывать сборщик мусора, что бы хоть как то это дерьмо не текло более менее. Когда на плюсах/си ты пишешь и спокойно в лярд шлешь пакеты, при этом выкачиваешь данные и о память не течёт. Я знаю вдоль и поперек весь этот дерьмовый язык, который толком назвать нормальным языком программирования и назвать трудно. Помимо этого с новой политикой и правами от Oracle, ждать чего то нормального не стоит. Даже так выпускаются релизы ради roadmap соблюдения и при этом один из релизов их же и делает регресс в сборщике мусора, это пять. То что эта херня сама по себе плодит объекты так же высокий показатель. Жаба - это блудный сын языка си, с вырезанными полезностями и прекрасными возможностями. Кодеры на жабе только и живут в NullPointerException и Overflow
103778
Компиляция внешних скриптов? Жаба так же не умеет по человечески это делать. Приходится извращаться. Нормальная работа с чем то приходится качать либы, ведь в жабе они всегда медленные и проходит 3-4 года до внедрения из той либы к себе, нормально что. Жаба не умеет работать с модульностью. Защитить код? А забудь, да есть конечно обфускаторы которые просто снимаются на раз два, потому что оно все выгружает в память и просто дампится память и получаем исходники. А быдлокодеры думают их спасет хоть какой то обфускатор и пытаются защитить код, ну ну я посмотрю как они снимут тот же WinLicense 3.x который априори не смогут и сдекомпилить и нормально разобрать и привести все секции из асм кода и вычистить всю каку от него. Тут легче повесится и нужны годы на хоть как то нормально разобрав код обфусцированный WinLicense. Защитить приложение на жабе нельзя пока ты не напишешь свою вм и сорсы openjdk в помощь. Параллельный софт не 1 не написан на жабе и не будет писаться никогда там. Серьезных и крупных приложений мы так же не видим на этом языке. Нормальное GUI приложение? А так же забудь, есть встроенный и ужасный Swing, от которого хочется блевать и есть JavaFX с закосом под WPF.
«Жаба не тормозит», «просто gc невовремя запустился», «просто всё остальное слишком быстро работает» и тому подобное по вкусу.
«Томми», «убей себя как Томми». Применяется в основном к быдложабокодерам. Мем, связанный с тем, что на одной из гонок машин-роботов имени DARPA одна из машин по имени Томми, софт для которой был написан на Java, сошла с дистанции в связи со сбоем чипа, что привело к её убиению об стену. Что интересно, неполадка была чисто аппаратной, но всем по[А по щам?], а попадание Томми в стену фанатами Java было радостно воспринято со словами: «Вот видите, Java не тормозит!»
«Закат солнца вручную». Впарить корпоративному клиенту всемогущее, хоть и монстроватое поделие, которое вскоре потребует фирменного «железа» — очень мудрая стратегия, да.
«Серверная Java». Используется при обсуждении любых проблем с производительностью жабоприложений. Заявляется, что проблема в десктопной жабе, а с серверными настройками все нормально.
В холиварах жабакодеры любят приводить в качестве главного аргумента того, что жаба не тормозит, линки на бенчмарки, в которых сравнивается скорость нативного кода и байт-кода. Обычно заголовки таких тестов выглядят в духе «Жаба обгоняет по производительности С++» и приводится код, где Java быстрее C/C++ (нужное подчеркнуть). Это происходит по нескольким причинам:
  • Такие бенчмарки примитивны: они работают только со скалярными типами (с такими, как int, long, double), память под которые выделяется на стеке, используются простые операции и, наконец, весь код находится только в одном классе.
  • Обычно такие тесты содержат много циклов, а замеры проводятся не во время первого запуска, а когда JIT-компилятор уже подставил на место байт-кода команды процессора. Значит, меряется скорость хорошо оптимизированного динамически скомпилированного кода. Да и garbage collector не успевает запуститься в таких программах.
  • Авторы бенчмарков зачастую поверхностно знают С/C++ и используют его в «жабьем» стиле, например используя кучу там, где она не нужна и ноют про необходимость free и delete.
В реальных же приложениях ситуация с быстродействием несколько иная:
  • Все объекты ссылочные и хранятся в куче, а значит, самые элементарные составные типы, такие, как Point, будут каждый раз создаваться в ней. А таких объектов сотни тысяч. Даже при хорошей оптимизации кучи, она медленнее стека, а стоимость алгоритма сборки мусора в общем случае — O(n²), то есть с ростом числа объектов в памяти затраты на сбор мусора растут нелинейно.
  • Большое потребление памяти: один только хелловорлд при запуске отъедает 10 МБайт (они забираются виртуальной машиной на внутренние нужды), а так как с каждым объектом связаны метаданные (хотя бы ссылка на таблицу методов класса), то какой-нибудь массив объектов класса RGBColor будет занимать в 4-5 раз больше памяти, чем даже хотя бы в C#. На венде, которая свопит всё подряд, это приводит к известным результатам.
  • Динамическая природа языка: динамическое связывание кода подразумевает постоянные проверки во время каждого приведения типов (например, при работе с коллекциями). Обобщения здесь не дают ничего, так как они были введены в язык позже, и, для сохранения обратной совместимости, действуют только на уровне исходного кода, в байт-коде их нет.
  • Бросание исключений на каждый мелкий чих, чего язык не требует, но требует идеология и сторонние библиотеки, а выполняются исключения исключительно медленно. Оборотной стороной повышенной надежности является то, что многие программы в процессе работы генерируют over 9000 исключений, а исправлять подобный код разработчики не спешат.
  • Другая семантика языка: во избежание воспаления мозга от i++ + i++ были введены правила, устраняющие неоднозначности, что мешает компилятору заниматься оптимизацией. Так, например, на Java оператор вида x+=foo(); в отличие от Си требует запоминания предыдущего значения x перед вызовом foo().
  • Garbage collector: хотя он проходится по памяти нечасто, на GUI приложениях это ощутимо. Алсо, для серверных приложений с огромным хипом (овер 100G) настройка GC при помощи свичей превращается в ад. И всё равно он тупит.
  • Неотключаемая, если не заниматься извращениями вроде GCJ, проверка индексов при обращении к массивам.
Runtime.getRuntime().gc() - это называется, ява - один из самых чистых языков. Обратная совместимость? Вранье. Баги языка с массивами очень частые, просто из-за их же ошибок где 0 элемент, это не 0, а 1 и потом где то через 2-3 релиза мажорных багов, они смогли это исправить.
Как говорится в семье не без урода, вот и есть такой в виде жабы. Человечество не придумало языки лучше Си и Си++. А си язык отец всех этих модных языков.
Язык Go - весьма молодой и перспективный, который весьма очень и очень хорошо развивается. А такие создатели как Роб Пайк(особенно спасибо за создание UTF-8), Кен Томпсон(спасибо за язык Си и огромный вклад) и Роберт Гризмер, спасибо им за это. Эти имена, говорят многое и спасибо им за все и написали новый язык очень крутой. С которым и работать сказка и привет плюсам ведь идеи черпаются оттуда.
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу