Jawa / Говнокод #27934 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
import java.text.SimpleDateFormat;
import java.util.Date;

public class Main {
  public static void main(String[] args) {
	System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(new Date(2022 - 1900, 0, 1, 20, 30)));
	System.out.println(new SimpleDateFormat("YYYY-MM-dd").format(new Date(2022 - 1900, 0, 1, 20, 30)));
  }
}

А что там у Jawa-блядей за отсос должен был случиться 1 января? Я что-то не могу воспроизвести:
https://www.programmersought.com/article/47096700076/

Запостил: 3_dar 3_dar, (Updated )

Комментарии (127) RSS

  • Что может сподвигнуть вас начать новый проект на Jawa?

    Разве что мне дадут армию джавистов, которые скажут «мы хотим писать на Jawa кококо у нас уже написаны functions.jawa, нам что, всё переписывать?»
    Или приставят дуло пистолета и заставят.
    Ответить
    • Я бы всё равно начал на котлине, у него интероп с жавой
      Ответить
        • нет, тут всё таки есть нюанс

          То есть котлин разумеется тоже говно (потому что JVM говно) но всё таки он меньшее говно, вернее говоря он говно с сахаром.

          Тебя конечно тоже ждут GC, Closable, и медленный запуск, но всё таки он чуть менее вербозный. Правда компилироваться он будет примерно вечность
          Ответить
            • Дык ты поставь задачу, и я выберу под неё язык.
              Я думал, у нас уже куча кода в "funcii.jazha", и я не могу отказаться от интеропа с жавой
              Ответить
          • я если случайно замечал коммиты котлина то блевать хотел. перл и то лучше, хз как это нравится может
            Ответить
            • Перл лучше, но к сожалению задач для перла у меня нет. А для JVM, увы, есть.
              Ответить
    • Не совсем "новый проект на Jawa", но у нас есть плагин к Jira Cloud, который мы решили приспособить к Jira Data Center. С гуглом пополам осилили.
      Ответить
    • в наше время только безумец будет писать на чем-то другом чем NodeJS
      Ответить
      • Если высоконагруженная параша, то будешь на C++ писать, иначе объяснять руководству зачем тебе 10 миллионов долларов нужно на сервера для NodeJS.
        Ответить
        • очень легко объснить: без такого сервера у меня вебпак не соберет проект до тепловой смерти вселенной
          Ответить
      • NodeJS нужен если у тебя есть группа смузихлёбов, которые закончили курсы "JavaScript за пять недель" и больше ничего не знают. Других причин вроде нет
        Ответить
  • > что там у Jawa-блядей за отсос должен случиться
    > Я что-то не могу воспроизвести

    Сделай static DateFormat DF = new SimpleDateFormat("yyyy-MM-dd");
    И запусти DF.format в много потоков.

    > YYYY-MM-dd
    А так никто не пишет.
    Ответить
    • > А так никто не пишет

      О чём и речь. Можешь привести пример код как можно обосраться?
      Ответить
      • jshell> new java.text.SimpleDateFormat("yyyy-MM-dd").format(new Date(2020 - 1900,  11, 30));
        $20 ==> "2020-12-30"
        
        jshell> new java.text.SimpleDateFormat("YYYY-MM-dd").format(new Date(2020 - 1900,  11, 30));
        $21 ==> "2021-12-30"

        Ну это я так предполагаю. На самом деле я не в курсе что там за отсос.
        Ответить
    • > И запусти DF.format в много потоков.

      Лень проверять, и мне противно к Jawa притрагиваться.
      А что будет?
      Ответить
  • У меня случился буквально позавчера, потому что yyyy-MM-dd ты можешь распарсить в Instant/LocalDate/etc., а YYYY-MM-dd нет. Хотя вся необходимая информация в промежуточном объекте есть.
    Ответить
    • А зачем вообще YYYY нужен? Я думал так никто никогда не пишет.
      Ответить
      • я хуй знает, я почему-то был уверен, что нужно этот формат использовать, и что y для чего-то другого. сжег пару часов на выяснение что не так (((
        Ответить
        • В проде хоть выстрелило?
          Тут багор в том, чтобы 1го января в новогоднюю ночь всё наебнулось, когда ты оливьешечку наяриваешь и шампусиком запиваешь
          Ответить
          • Не, я парсить-то это формат начал пробовать пару-тройку дней назад
            Ответить
            • > пробовать

              Именно поэтому я за кресты. После них уже ничего не хочется пробовать, не прочитав что оно делает и не делает...
              Ответить
              • Та ладно. Те же Сишка или *nix тоже приучают сперва читать мануал к функции или комманде, а не вызывать их без разбора.
                Ответить
                • Согласен. Прыщи, Si/Si++ своими ебанутыми именованиями заставляют читать что это за хуета, потому что из названия нихуя не понятно.
                  А вот в C# тупо сделали, там слишком понятные именования, что в доку никто не заглядывает.
                  Ответить
                  • PHP тоже заставляет, потому что без доки хуй вспомнишь, в каком порядке конкретно эта функция жрёт аргументы. В шарпе попроще, можно запихать в каком придётся, а потом по ошибке понимать, в каком надо было.
                    Ответить
                  • Реальные примеры:
                    dd - хуй вообще знает что это такое, без чтения Мана не догадаешься. Ибо нехуй.

                    atoi/itoa - почему нельзя было нормально назвать? Наверное, для обратной совместимости с DOS, где нельзя использовать идентификаторы длиной более 8 символов.
                    Ответить
                    • Это было ещё до DOS. В «Юниксе» вроде было ограничение на длину имени файла 14 символов (включая точки и расширения), в объектных файлах лимит длины идентификатора был больше.

                      Думаю, идентификаторы резали, чтобы типичный код помещался без переносов на мониторе шириной 40 или 80 колонок символов.
                      Ответить
                    • >DOS
                      Чувак, когда atoi пилили DOS был примерно так же интересен разработчикам, как тебе интересен чупа-чупс
                      Ответить
                    • А чего непонятного?

                      atoi — это ascii to int. Это очевидно.

                      А dd — это double dragon
                      Ответить
                    • А чего непонятного?

                      atoi — это ascii to int. Это очевидно.

                      А dd — это double dragon
                      Ответить
                        • ебать ты олд ))

                          я про ndd лет двадцать не слышал
                          Ответить
                          • Win Me, Norton System works, HDD - WD800BB
                            При проверке Диск Доктору не понравился размер диска С: (4Г), попросил исправить, а я разрешил. В результате диски Е: и F: исчезли. С кучей нужной информации. Powerquest Partition Magic PRO 7.0, Paragon Partition Manager 5.0, V-Com Partition Commander v.6.05 ничего не видят. У кого-нибудь было такое? Реально ли восстановить информацию?


                            https://forum.ixbt.com/topic.cgi?id=11:24576
                            Ответить
                            • > У кого-нибудь было такое?

                              Было. Полный раздел музыки и полный раздел фильмов ушли в /dev/null. Только не от ndd, а от какой-то другой подобной гуйни. С тех пор я делаю с разделами только простые операции: "создать" и "удалить", которые не ковыряются в файлухе.
                              Ответить
                              • а в чем была драма, кстати?

                                я так понял, ndd запорол MBR (по идее его можно восстановить, если найти начало файлухи) но почему он так сделал?
                                Ответить
                              • А больше и не нужно. Если хочешь сделать что-то сложное, на всякий случай всю инфу нужно скопировать. Если у тебя есть копия, то проще будет снести всё и разбить как надо, без пердолинга.
                                Ответить
                                • > Если у тебя есть копия, то проще будет снести всё и разбить как надо, без пердолинга.

                                  This.
                                  Ответить
                                • ну вообще можно ресайзить. Это отлично делают и diskpart/disk manager в пинде, и parted / resize2fs

                                  Правда parted как раз дает слишком много свободы, и можно случайно налажать
                                  Ответить
                                  • > можно ресайзить
                                    > resize2fs

                                    Ну такое... Если в единицах измерения нигде не запутаешься. Т.е. всё равно надо копию. А если есть копия, то нафиг пердолинг?

                                    Тем более после ресайза, если это не последний раздел, как правило нужно ещё какие-то разделы подвинуть. А вот это уже НИХУЯ не атомарная операция в отличие от resize2fs.

                                    З.Ы. Хотя даже копия не спасёт т.к. отрубленный хвост ты заметишь через год после того как забудешь про ресайз...
                                    Ответить
                                    • Ммм, какая FS! Спасибо, отресайзил.
                                      Ответить
                                    • хз, я расширял вообще без проблем

                                      Вот сужать сложнее, тут налажать очень легко
                                      Ответить
                                  • Вот как раз ресайз несколько лет назад запарывал информацию. Авторы утилит для ресайза упускали из виду некоторые моменты.
                                    Ответить
                                    • > утилит

                                      По-хорошему 99.9% ресайза должно происходить в онлайне через основной драйвер.

                                      Почему? Потому что это просто перемещение кластеров из удаляемой зоны в безопасную. И за счёт того, что кластер сначала копируется на свободное место, а потом атомарно (с помощью журнала) обновляются записи о нём, вся операция получается безопасной.

                                      А если ты начнёшь писать утилиту снуля -- придётся все эти механики изобретать заново. И по-любому будет больше багов, чем в выдроченном за десятилетия драйвере.
                                      Ответить
                                      • Раньше это делали через ДОС, где программа работала монопольно. Правда, оставалась лазейка для распидорашивания файловой системы — TSR, которые во время процесса могли что-то попытаться записать.
                                        Ответить
                                      • Драйвер чего? Напомню, что у разделов (MBR/GPT) и у файловых систем свои драйверы. И это я еще не гыгыкал на тему LVM/динамических дисков.
                                        Ответить
                                        • Драйвер файлухи. Файлы к началу диска лучше и аккуратнее него никто не подвинет.
                                          Ответить
                                          • мм, да.. так и работает дефрагментатор в впинде.

                                            Сначала двигаешь всё им к началу диска, а потом ресайзишь.

                                            Я даже как-то не задумывался как это работает в юниксе. Там resize2fs это делает?
                                            Ответить
                            • Некоторые программы отвергали разделы FAT16 больше двух гигов. Четырёхгиговые разделы официально поддерживались только Windows NT, на них размер кластера был 64 килобайта.

                              NDD не только подрезал размер до двух гигов, он ещё мог поменять размер кластера на 32 килобайта, тогда будут потеряны вообще все файлы.

                              С FAT32 же NDD вообще не работал.
                              Ответить
                              • Скорее всего ты прав: у несчастного питуза из 2003-го года (хочу туда, кстати) нортон диск дестроер пидорнул 4Г раздел именно по этому
                                Ответить
                                  • fdisk скажет, что диск не размечен, и услужливо предложит его разметить?
                                    Ответить
                                    • Да не, специально от этого там защитный раздел на весь диск описан в MBR.
                                      Ответить
                                      • тогда он увидит один раздел всего?:)
                                        Ответить
                                        • Один, причём с хитрым кодом ФС, так что ни одна ОС (не поддерживающая GPT) его не смонтирует.
                                          Ответить
                                    • Он может сказать, что MBR запорота и предложить его запустить с ключом /MBR, чтобы переписать в MBR правильный код.
                                      Ответить
                                • Весёлое тогда время было: ДОС с кластерами по 64К по факту работал (ибо ему было плевать, на какую константу делить, чтобы перевести seek в номер кластера), а утилиты работать отказывались (у того же дефрагментатора кластер мог не влезть в буфер, потому что документированы были кластеры до 32К включительно, под них и писали утилиты).
                                  Ответить
                                  • зачем нужны были такие большие кластеры? чтобы поддержать очен большие разделы и не вылезти за пределы какого-то типа, которым описывалось максимальное количество кластеров?
                                    Ответить
                                    • В FAT16 ты принципиально не мог создать более 64К штук кластеров. Тупо потому что номер кластера ограничивался 16 битами.

                                      Если у тебя раздел на 32М, то всё круто: 1 кластер = 1 сектор (512 байт). Ну а для других размеров раздела сам догадаешься, как получался размер кластера.

                                      На разделах до 32М (в том числе и на флопиках) применяли FAT12. Там вообще можно было создать не более 4080 кластеров (4096 минус зарезервированные значения).
                                      Ответить
                                      • То есть просто нехуй было использовтаь FAT16 для больших разделов, иначе NDD заругает
                                        Ответить
                                          • FAT32 появилась в Win95 OSR2. Она не поддерживалась в OSR1 и в оригинальной Чикаге, в NT 4.0, в NT 3.x и во всех ДОС'ах (кроме встроенного в OSR2/98/Me).

                                            IBM PC DOS 7.1, поддерживающий FAT32 все видели только в виде демки. Free DOS с поддержкой FAT32 вышел, когда он уже был не очень нужен.
                                            Ответить
                                              • > nt 4.0sp5

                                                Ну это как 98-ю SE называть 98-й... Этот сервиспак уже поди времён двухтысячной?
                                                Ответить
                                                • я напиздел кстати
                                                  с последним sp она стала понимать ntfs5, а вроде для fat32 все равно нужен был сторонний драйвер

                                                  ну sp вышел конечно уже когда была w2k, но nt4-то всё равно использовали, я еще ее в 2003-м году видел
                                                  Ответить
                            • > ничего не видят

                              Сейчас уже есть программы, которые пытаются в неразмеченной области или в хвосте раздела найти что-то похожее на корневую директорию, бутсектор и восстановить потерянные разделы. Тогда с этим было хуже, потеряшек нужно было искать вручную дискэдитором.
                              Ответить
                  • >А вот в C# тупо сделали, там слишком понятные именования, что в доку никто не заглядывает.


                    И очень зря. Потом у нас хуёвый код и дыры. Что вообще за привычка пользоваться говном не почитав мануал?
                    Ответить
  • Не понимаю иронии на предмет джавы.
    Джава -- язык будущего.

    Джава кросс-платформенна, что позволяет программисту один раз написать код, и запустить его везде. По исследованиям независимой ассоциации JavaFanGroup кроссплатформенность снижает стоимость разработки на 22.6%.

    Джава поддерживает ООП, а по исследованиям независимой ассоциации ObjectFanGroup использование объектно-ориентированного подхода позволяет сократить стоимость разработки на 12.6% по сравнению с устаревшим процедурным подходом.

    Наконец джава управляет памятью сама в отличие от устаревшего языка C/C++, где такое управление делается вручную, и по исследованиям независимой GCFanGroup это позволяет сократить стоимость разработки на 16.78%.

    Более трех миллонов устройств в мире уже поддерживают Java. Присоединяйтесь!
    Ответить
    • > По исследованиям независимой ассоциации JavaFanGroup
      > независимой
      > JavaFan

      upd: а ты хорош, я даже поверил пока до третьего параграфа не дошел
      Ответить
    • > Более трех миллонов устройств

      Ну миллиардов же...
      Ответить
        • Блядь, ну вот опять слово, которое означает хуй пойми что... И 10**9 (сейчас) и 10**12 (изначально).

          Но в применении к джаве это всё-таки миллиарды а не триллионы, очевидно.
          Ответить
    • > поддерживают

      Всего лишь поддерживают? Я думаю реально запускают..


      Фу, какой грязный маркетинг
      Ответить
      • Смартфоны, планшеты и другие устройства на базе Google Android доступны практически каждому.

        При этом язык Java в разработке для Android считается фундаментальным. Рынок требует все больше мобильных приложений, которые автоматизируют повседневные задачи пользователей.

        Высокая окупаемость вложенных в разработку мобильного приложения инвестиций – ещё одна важная причина популярности Java.
        Ответить
    • Поддерживаю!

      Основным преимуществом Java является поддержка концепции объектно-ориентированного программирования (ООП). Это позволяет писать разделённые и повторно используемые программные компоненты, строя строгую иерархию приложений.

      Java поставляется с библиотекой шаблонов проектирования с открытым исходным кодом, а также позволяет использовать передовые практики, адаптируемые для разработки серверных, настольных, встраиваемых и мобильных приложений.

      Другие языки программирования в той или иной степени привязаны к функциям программно-аппаратных платформ, но слоган Java гласит: «Напиши один раз, запускай где угодно». Кроссплатформенность способствует распространению языка.

      С 1990 года Java используется как платформа для разработки мобильных приложений и до сих пор остаётся одним из наиболее востребованных языков программирования в этой сфере.
      Ответить
    • > трех миллонов
      > миллонов
      У меня от этого два охлобыстина
      Ответить
    • > против JAWA

      Чего? Отличные же мотоциклы были в своё время.
      Ответить
      • Кучма - унылое говно уровня Примакова. Нам нужен кто-то из знатоков.
        Кстати, Влад Листьев (царствие небесное, безвременно убиенному) был бы очень неплохим презиком. Оппозиционный еврей - большая редкость.
        Ответить

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8