За что ненавидят Javascript?

Поделиться
HTML-код
  • Опубликовано: 4 дек 2024

Комментарии • 628

  • @arthurkhairullin
    @arthurkhairullin 4 года назад +25

    Javascript: *has mutations*
    C++ pointers: *hold my beer*

  • @Mike-hp3fh
    @Mike-hp3fh 5 лет назад +33

    1) "0.1 + 0.2 = 0.30000000000000004". В C# тоже такое есть, это прикол процессора а не языков программирования. И по моему это даже хорошо, что JS не делает лишней работы по округлению, так больше производительность.
    2) Про NaN не понял в чем проблема. NaN означает неопределенное число, любое число. И я думаю все проблемы с ним возникают из-за того что люди не понимают смысла этого значения. "любое число" не равно "любому числу", и поэтому NaN === NaN будет всегда возвращать false.
    3) "Объект переданный в функцию может быть изменен" Это особенность не JS, а всех не функциональных языков: C++, C#, Java, ...
    "Необходимо постоянно копировать объекты..." - это проблема архитектуры и не понимания языка и его возможностей.
    4) "Сложность с определением типа данных". Не такая уж и сложность, скорее легкое неудобство, которое решается набором функций хелперов. Когда пишешь сложные программы такие мелочи не напрягают совсем.
    5) "Низкая производительность глубокого наследования". Согласен что здесь есть потери в производительности, но они не такие уж и большие. Кроме того v8 развивается и исправляет такие недостатки.
    6) "JavaScript однопоточный", и слава богу. Это значит, что ни одному разработчику не придется заниматься отладкой многопоточных приложений, разрешением взаимных блокировок и прочим. Ну и переключение между потоками и создание потоков отнимает у процессора дополнительное время. Решение с WebWorker на мой взгяд очень хорошее для создания многопоточных приложений на JS.
    7) "последовательные await работают последовательно", так как и должны работать, так же и в C# работают. Для одновременности (для одновременной загрузки данных например) нужно использовать Promise.all(...)
    8) "проблема кроссбраузерности и кроссплатформенности" решается тестами с использованием такихъ решений как karma или intern js + selenoid. Минус только в том что с этим нужно дополнительно разбираться и настраивать. Но тем не менее по части кроссплатформенности JS все равно обходит все другие подобные решения.
    9) "изменения в браузере ломают код программы и приходится переписывать". Да это нужно учитывать заранее и продумывать архитектуру приложения.
    10) "проблемы с babel", следуй только принятым стандартам языка и проблем не будет. Смысл в babel только в том чтобы программист всегда мог писать на самой свежей версии языка не заботясь о кроссбраузерности.
    11) "может писать на другом языке который транслируется в JS". Можем, но проблема производительности будет всегда и для всех языков, и поэтому намного лучше писать приложения на чистом JS и понимать как он быстро работают отдельные его элементы, чем дополнительно еще думать о том как другой язык скомпилируется в JS.

    • @СергейКнязев-ь1р
      @СергейКнязев-ь1р 4 года назад +3

      2) NaN - Not a number. Не число. Вообще,совсем,ниразу не число.
      3) И да, и нет. Иногда скопировать объект нереально из-за дикой вложенности, при этом он является сторонним кодом.
      4) Об этой хeрне приходится помнить, так что напрягает.
      5) Не особо развивается. Уже оптимизировали всё что можно.
      6) Но при этом асинхронный, так что хз, хз.
      7) Я думаю речь про рефакторинг. Можно заeбаться и случайно накосячить. Но в целом согласен, притянуто за уши.
      8) Какие ещё другие? 0_о
      9) Бред. Не угадаешь что они решат выпилить.
      10) Проблема в том, что приходишь на проект или берёшь заказ, а там какой-то eблан вот такое вот такое вот "набабелил". Разбираться очень неприятно.
      11) Лучше снести всё это древнее HTML|CSS|JS говно и сделать заново. И не ври, что у тебя не было подобных мыслей )

    • @aromorphosis5737
      @aromorphosis5737 4 года назад

      JS, C++ и C# - не функциональные? ok...

    • @stepanpetei2405
      @stepanpetei2405 3 года назад +1

      @@СергейКнязев-ь1р чтоб не напрягаться с типами, есть тайпскрипт.

    • @uvwzyx
      @uvwzyx 11 дней назад +1

      Пункты 1 и 2 берут начало из IEEE 754, учите матчасть

  • @KoichiHub
    @KoichiHub 2 года назад +7

    Киану Ривз реально крутой мужик!
    Практически все видосы его смотрю, реально интересно :)

  • @sakuranasty
    @sakuranasty 5 лет назад +31

    А теперь видео почему ты любишь js, а то грустно стало)

  • @demimurych1
    @demimurych1 2 года назад +23

    00:42 *Числа в языке JS реализованы одним типом*
    Это не так. Согласно спецификации у нас есть есть два типа Number и BigInt.
    В реальности же типов три: Small Integer: 31 битное целое число со знаком, число с плаваюшей точкой (double) и BigInt.
    соответственно. Причем реализация SMI вне зависимости от того, что оно остуствует в спецификации, во всех рантайм одинаковая.
    Любая работа с числами, если она может быть помещена в 31 бит ( именно 31 а не 32) автоматически ведется как работа со SMI типом. Стоит перейти эту границу и мы получаем Double. Ну а BigInt обяьвляется через свою нотацию.
    01:13 *Прикол с числами*
    Такой, как Вы выразились прикол с числами, есть во всех языках абсолютно. Более того все они дают один и тот же результат в случае, если как и JavaScript реализовывают математику с плавающей запятой согласно общему стандарту IEEE 754.
    Если говорить академическим языком, то естественно никаких приколов в языке нет. И он ведет себя строго в соответствии со спецификацией, в рамках которой работают и другие языки.
    01:20 *typeof*
    унарный оператор тайпоф не сообщает тип переменной. И никогда не сообщал. Унарный оператор typeof возвращает строку в соответствии с определенными условиями, которые могут выходить далеко за рамки типа данных. Внимательно прочитайте официальную спецификацию и не несите чуши.
    01:36 *NaN*
    Это не в JS. Это во всех языках программирования которые реализуют логику работы с числами с плавающей запятой, согласно общепринятому стандарту IEEE 754. Где описаны как все операции так и такие константы как NaN -0 +0 и так далее. Вам домашнее задание - прочитать специфакию и понять для чего в нее введены такие, как вы сказали странные числа как NaN. После чего, я очень надеюсь Вы больше не будете повторять этой ахинеи
    04:40 *В JS никогда не было ООП*
    Молодой человек, у меня для вас плохие новости. В JS реализована старейшая парадигма ООП, называемая прототип ориентировання модель ООП. Классы - это другое направление ООП, называемое класс ориентированное. Которое с точки зрения возраста использования просто ребенок перед прототипами.
    ООП не зависит от того есть у вас классы в языке или нет. Вам домашнее задание прочитать что такое ООП, какие его основные признаки, какие бывают модели ООП
    06:50 *JS однопоточен*
    С разморозкой. С 2010 года JS перестал быть однопоточным. Всем желающим вкусить радости гонки, оргазмы от использования мьютекосв и прочие прелести программирования когда у вас больше одного потока и ивент лупа домашнее задание: прочитать что такое Workerы, следом прочитать что такое Atomic операции. Провести пару опытов с воркерами, своими глазами убедиться что это отдельные тред и даже отдельный процесс со своим евент лупом, который может продолжать работать даже когда вы убили рантайм.
    07:50 *Лапша кода*
    Когда люди делали подобную реализацию, они считали что пользоваться ей будут программисты, которые знают что такое композиция функций, а не прокладка между клавиатурой и креслом, которая даже допустить не может что ребята уже давно подумали, это кто то просто забыл сделать тоже самое.
    09:00 *async awaite это синтаксический сахар*
    async и awaite это не только не синтаксический сахар над промисами, но и имеет совершенно другую природу. Вам очередное домашнее задание, узнать что такое генераторы и какое отношение они имеют к async awaite. И если уж фантазировать на тему сладкого, то async awaite это синтаксический сахар поверх генераторов, которые являются частным случаем когда возвращаемые данные всегда завернуты в промис обьект.
    *Игого*
    Попытка притянуть за уши проблемы бабеля и тех кто его использует к самому языку заслуживает отдельного комментария, который уже совсем писать не хочется.
    Автор видео вообще не знает JS и вероятно даже спецификацию никогда в глаза не видел. Занимается мифотворчеством и хуже всего то, что делает это он с лицом человека, который познал сермяжную правду языка. На деле же выдает свои фантазии за реальность.

    • @SeniorSoftwareVlogger
      @SeniorSoftwareVlogger  2 года назад +3

      Можно ещё через 5 лет зайти с новой порцией разоблачений ;)

    • @demimurych1
      @demimurych1 2 года назад +3

      @@SeniorSoftwareVlogger Молодой человек. Я уверен в том, что Вы и сейчас не в состоянии пройти собеседования даже на позицию Junior разработчика с вопросами которые касаются только базовой платформы языка которая не менялась с 1994 года. Если Вы думаете иначе я Вам онлайн это могу продемонстрировать, задав Вам бызовые вопросы, выслушать ваши ответы и показать потом как на самом деле.
      Так что конечно же апелляция к 5 годам хороший аргумент, но не в Вашем случае.

    • @SeniorSoftwareVlogger
      @SeniorSoftwareVlogger  2 года назад +4

      Ух! Ну не смогу так не смогу 🤣

    • @kulikoffAS
      @kulikoffAS 2 года назад

      капец ты душнила

    • @bukkaneer
      @bukkaneer 2 года назад

      Спасибо, надо будет некоторые вещи себе в календарик учебный внести.

  • @КэмКим
    @КэмКим 5 лет назад +4

    Расскажите про все языки программирования, которые вы знаете. Как учили, где информацию о них брали

  • @d.n.2143
    @d.n.2143 5 лет назад +71

    Почему Джон Уик стал программистом?🤔

  • @AndrewVaganovPage
    @AndrewVaganovPage 5 лет назад +72

    - Я уже устал про комментарий про 0.1 + 0.2 === 0.30000000000004...
    Посмотрите пожалуйста на другие языки. Там по бОльшей части происходит тоже самое.
    0.30000000000000004.com/
    - На мобильных устройствах ты тоже не контролируешь платформу
    - Пример с глубокими колбеками - так никто не пишет (либо в команду нужен эксперт, который оттучит делать такую жесть). Promise-hell тоже не делают обычно. Даже лет 8 назад, когда они были в драфтах, в статьях глубоко критиковали такую запись.
    - Наследованием в JS почти никто не балуется. От того что компоненты в Реакте начинаются со слова Class, ООП это назвать язык не поворачивается.
    - Babel - у всех тот же самый JS. Бандл у клиента тот же самый (за редким исключением). Как минимум позволяет на разных платформах писать один код. И если мы больше не поддериживаем IE11, то мы просто можем отключить ту часть, которая её полифилила или преобразовывала, вместо рефакторинга всего кода.
    Во всех языках есть свои компромиссы продиктованные историей и платформой. И на любом языке можно писать хорошо.

    • @yevhenukrainianer4781
      @yevhenukrainianer4781 5 лет назад +3

      Так как многопоточности добиваться правильно в ДжС ?

    • @artemustimov9463
      @artemustimov9463 5 лет назад

      @@yevhenukrainianer4781 никак. JS однопоточный по определению.

    • @AndrewVaganovPage
      @AndrewVaganovPage 5 лет назад +5

      @@yevhenukrainianer4781 Можете добиться этого при помощи вебворкеров. Но это сухой ответ и это не всегда удобно. Исходить нужно от задачи. Возможно вам хватит просто правильно приготовленной асинхронности. Если сильно нужна именно многопоточность, то возьмите другой язык который под это заточен. Как правило, люди в отрыве от программирования не пытаются молотком срубить дерево. Молоток прекрасно забивает гвозди, но им тяжело срубить дерево, но это не проблема молотка. Это не минус JS, он просто напросто не создавался для этого. А вот всё что по асинхронности там работает прекрасно.

    • @SeniorSoftwareVlogger
      @SeniorSoftwareVlogger  5 лет назад +4

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

    • @AndrewVaganovPage
      @AndrewVaganovPage 5 лет назад +2

      @@SeniorSoftwareVlogger ​ Думаю пройдёт ещё не один год пока это станет реально удобным. C WASM можно уже хоть сейчас, но это уже отдельный слой приложения.

  • @topkyrgyz2923
    @topkyrgyz2923 5 лет назад +1

    Добрый день, можете пожалуйста название своего кресла написать. И за сколько купили?

  • @ThePASHI4
    @ThePASHI4 5 лет назад +5

    На 3:25 вроде логично выглядит, что new Boolean(true) - это "object", ведь по сути это и есть объект "класса" Boolean. Если написать просто Boolean(true), без new, то тип будет "boolean"

    • @dmitry.gashko
      @dmitry.gashko 5 лет назад

      Это и есть логично. Но для js.На деле Boolean - это обертка. Ее нельзя использовать. Она создается автоматически при вызове методов примитивных типов данных (ведь у примитивных типов данных методов нет и быть не может - на то они и примитивные).
      Но:
      if (new Boolean(false)) alert('Nope!');

  • @HarnFan
    @HarnFan 5 лет назад +23

    Ничего не понял, но очень интересно

  • @Sevenvad
    @Sevenvad 5 лет назад +15

    Я на немного решил, что winderton - это реально такой тип данных в JS

  • @teea3731
    @teea3731 5 лет назад +38

    Выучил js по этому видео

    • @dimageorgiev5798
      @dimageorgiev5798 5 лет назад

      Сенсей помог тебе постичь дзен ;)

  • @sviat2459
    @sviat2459 5 лет назад +2

    Джс просто відрізняється від тієї мови до якої він звик. В цілому це просто інструмент, який чудово виконує свою роботу. У нього є певні нюанси, але і сам світ неідеальний.
    Хлопчина цього не хоче розуміти, так само як і не хоче зрозуміти причини чому так. Джс був написаний на колінці за декілька днів на своєму початку. Це була примітивна мова для того, щоб хоч якось добавити інтерактив у веб. І що ми маємо зараз? ну ви всі самі знаєте
    Перед розробниками ядра джс стоять набагато серйозніші виклики ніж перед творцями більшості інших мов. Кросбраузерність, кросдевайсність, , величезний зоопарк областей застосування і треба то все хоч якось продумати і заставити працювати
    і найголовніше - треба вводити нові апішки, розвивати мову, але і потрібно підтримувати за будь яку ціну старий функціонал джс, тому що багато вебсайтів працюють на старому апі
    Ну трохи про нюанси джави (типу, а у вас теж не все гладко)
    - всі кажуть, що у джави є типізація і бла блабла. protected / private і подібні класні штуки ооп. У джави крім цього ще є така чудова штука, як Рефлексія через яку можна дістатись до методів (і не тільки) будь якого класу, включаючи приватні. Тобто ми можемо спокійно отримати доступ до приватного методу будь якого класу. Що якби, не сильно гуд. Також воно дозволяє створити інстанс класу в рантаймі програми, при чому ім"я класу може бути невідоме до момента рану програми. Чи колл методу інстанса класу по його імені. Якось динамічно виходить)
    - на рахунок мутабельності джс. Так у джави також є mutable objects, при чому більшість класів в джаві - мутабли. Більше того, багато людей в джаві юзають mutable на повну, оосбливо в біг даті. Тому що кожен раз робити новий "імутабл" об"єкт при якійсь маніпуляції з датою, ресурсозатратно і б"є по пам"яті, особливо у випадку з великими
    об"ємами даних
    - лапша коду в джс. Ой боже ж ти мій, а джавовські легендарні Хелло ворлд класи з
    '''public static final void main()''' то зовсім не лапша, чи тонни геттерів\сеттерів в класах
    джс якраз через свою динамічність набагато лаконічніший і менш verbose ніж будь яка типізована мова
    Одним словом факати особливості мови це нерозумно, чесно кажучи. Набагато правильніше буде спробувати зрозуміти чому так, або ж просто слідувати правилам мови, а з досвідом і прийде розуміння цих самих правил.

  • @nick_kol_nick
    @nick_kol_nick 5 лет назад +6

    Привет, может тут уже спрашивали, но все же.
    Что ты думаешь про webassembly? Заменит ли он в конечном счете Javascript?
    (сорри за холиварную постановку вопроса)

    • @slnt_opp
      @slnt_opp 5 лет назад

      ну конкурентов помимо много, так что можно просто ндеятся, что что-нибудь заменит)

    • @BHy4OK
      @BHy4OK 5 лет назад +4

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

    • @ВладимирКовалёв-у1ф
      @ВладимирКовалёв-у1ф 5 лет назад

      @@BHy4OK двачую, сам юзал blazor, очень классная технология

    • @vsezanyato
      @vsezanyato 5 лет назад

      @@slnt_opp а что там ещё есть ?

  • @a.khakimov
    @a.khakimov 5 лет назад +88

    казалось бы, причем тут winderton

    • @goshagotye
      @goshagotye 5 лет назад +20

      да, причем тут этот счв'шный /dev/null ?

    • @ilya_khabibullin
      @ilya_khabibullin 5 лет назад +5

      А причем, кстати?

    • @cascadengineering
      @cascadengineering 5 лет назад +13

      @@ilya_khabibullin Виндер в одном из стримов высказался о некоторых блогерах, включая автора этого канала, что они - нули и не умеют как следует доносить мысль до аудитории. Если бы он был хоть немного умнее/постарше/дипломатичнее, то знал бы, что делать выводы о человеке сугубо по видосам, не поработав с ним лично, - весьма поспешно и,как минимум, низко.
      Более того, он кичится своим инглишем, а по факту его уровень ниже upper intermediate. Пойдет для неформальных попизделок и просмотра фильмов с субтитрами или попыток произвести впечатление на школоту артистичностью при попытках сэмулировать американское произношение. Не более, во всяком случае на данный момент.

    • @zaemiel
      @zaemiel 5 лет назад +1

      @@cascadengineering А дайте, плиз, ссылку на этот видос, если возможно. Хочу поглядеть :)

    • @cascadengineering
      @cascadengineering 5 лет назад

      @@zaemiel Он закрывает доступ к стримам через какое-то время, и они становятся доступными только тем, кто является его патронами (через patreon.com).

  • @van777ok3
    @van777ok3 5 лет назад +29

    Привет) Интересный видос,спасибо) Вот такого плана бы побольше)

  • @dmitry.gashko
    @dmitry.gashko 5 лет назад +2

    Эхх. Что-то подсказывает, что по мере просмотра видео напечатаю много букв...
    1. Типы данных
    - 0.1+0.3 - js здесь не причем, это ограничения двоичной СЧ
    - typeof NaN - в js NaN это одно из возможных значений для чисел, так же как и Infinity. Причем без него в js просто не обойтись, ведь в нем никакие математические операции не вызывают ошибок - что является часть его идеологии
    2. Объекты
    - передача объекта в функцию - ...честно, вы издеваетесь? JS - не С. В java обьекты тоже передаются по ссылке. Это вообще не проблема. А ресурсоемко (хоть в том же С это почти не существенно)
    + А вот new Boolean() и прочие - это да. На деле об это знают (должны знать) все, но как по мне, такие штуки, просто либо должны быть скрыты от программиста, либо хотя бы он их не должен уметь создавать.
    Но зато такой штукой можно пугать людей из других языков:
    if (new Boolean('false')) alert('Nope!');
    3. Пототипы
    - Здесь на самом все очень просто - это js и это его идеология. Он так работает. Это как раз и дает ту его гибкость, за которую иногда приходится платить.
    - Переопреление прототипов - так просто делать нельзя. Но если это теже, поллифилы - это это очень удобно и круто.
    - Медленно из-за поиска во всех прототипах. Просто по аналогии. Хотим получить значение переменой. Она ищется в текущем scope. Если не находится идет в родительский scope, если не находится там, то идем еще выше и выше, пока не дойдем до глобального объекта. То есть то же самое. И опять же такое или похожее поведение есть по многих языках программирования. В случае прототипов, может быть и будет немного медленее, но в 99.9999% случаев - это реально не важно. Смысл беспокоиться за тысячные доли миллическды, когда другие вещи в любом коде работают от десяток милисекунд до декунд. Если их ускорить на 1% прироста производительности будет больше, чем если ускорить переход по прототипам в пару раз.
    4. Ассинхроность
    - Ассинхроность в js мне просто нереально нравится. Это просто нереально удобно, по сравнению с другими языками. Хоть это и не настаоящая ассинхроность - все равно. Все равно это очень удобно
    - Ад колбеков и мэм 7:23 - писать код можно по разному. В любом языке можно сделать 10000 уровней вложенности. Это не вина языка. Это вина того, кто это пишет.
    5. Не контролируешь платформу
    +- это хоть и да, но ведь по другому, к сожалению никак. Это бремя веба.
    6. На js напишем js (про babel)
    - какой у каждого свой js? Поллифилы это круто. Просто не нужно в серьезных вещах использовать совсем уж стремные вещи.
    7. Модули
    - Вчера/позавчера слышал в подкасте Вадима Макеева (Веб Стандарты), что mjs уже можно и не использовать (ну либо можно, но пока ранова-то)
    8. Обратная совместимость
    - Старые сайты ломать нельзя - всегда, такая идеология это одновременно и просто огромнейший плюс, и ужасный минус. Уже добавили use strict. Но это тоже ж ведь не решение. Хоть бери и делай так что бы в начале файла вместо use strict можно было указывать версию js. Типа doctype для js))

    • @dmitry.gashko
      @dmitry.gashko 5 лет назад

      Про проблему с цифрми и то что это единственный тип.
      На деле ж ведь, то что всего 1 тип - не проблема. Ведь все проблемы с числами все равно связаны в тем что они не целые. А если работать с целыми - хоть они и float, проблем все равно нет.
      А если работать с не целыми, то в любом случае будут.

    • @dmitry.gashko
      @dmitry.gashko 5 лет назад +1

      Кстати, не знал, про BigInt. Посмотрел - классная штука.
      Создал число, запись которого весит пару мегабайт))

  • @nen777w
    @nen777w 5 лет назад +4

    0.1 + 0.2 = 0.3000x не потому происходит что JS плохой, а потому что невозможно уместить в отведенных под одно число двоичных разрядов sizeof(double) все возможные представления вещественных чисел. Поэтому на "дальних от 0 дистанциях" жертвуют точностью. Рекомендую ознакомиться как устроены числа с плавающей запятой.
    На счёт того что все в JS объект, а что ты хотел в языке с динамической типизацией?

    • @BohdanVR666
      @BohdanVR666 4 года назад

      Нууу, то что все - объект это, по моему, вообще не минус, а про числа - почему нельзя просто взять количество цифр посте точки у первого числа, у второго и сравнить а потом округлить до количества цифр после точки того числа, у которого это значение больше
      Или сделать все просто
      Просто сделать так, что 0.1 == 0.100000... (без сюрпризов в конце)
      И 0.2 == 0.200000... (тоже без сюрпризов)
      Я не понимаю, почему этого нет?

    • @VeloVetal
      @VeloVetal 3 года назад

      @@BohdanVR666 потому что IEEE 754

    • @StepanChuevYT
      @StepanChuevYT 2 года назад

      "На счёт того что все в JS объект, а что ты хотел в языке с динамической типизацией?", на самом деле это не так. Например когда мы написали вот так:
      let n = 3;
      Мы сделал переменную с примитивным типом "number", но что будет если мы вызовем у этого числа метод toString:
      n.toString();
      создастся объект обёртка, т.е вот такое выражение:
      new Number(n).toString();
      А т.к функция-конструктор возвращает объект в котором есть метод toString, мы можем его вызвать.
      Ещё стоит сказать что многие движки это оптимизируют.
      А вот если бы мы сразу записали:
      let n = new Number(3);
      В переменной n уже хранилась бы ссылка на объект, но тогда возникнет проблема с typeof.

  • @alexeykarchiganov2267
    @alexeykarchiganov2267 4 года назад +17

    Насчет NaN: это все абсолютно нормально и есть в других ЯП, не только в JS. И работает оно так же. Значение NaN должно было использоваться в случаях, когда, например, +inf делится на +inf. Вот что должно получиться? По правилам мат анализа должно было получиться ИДИНАХУЙ. То же самое и с взятием корня из отрицательного числа. Ну просто нужно было такое значение, которое, в случае правильного срабатывания программы, дает какой-то адекватный результат и записывает свое значение в адрес памяти, отведенный для числа. А в случае неправильного - выдает ИДИНАХУЙ, но при этом не валит полностью всю программу. Таким образом тебе не нужно заранее проверять перед каждой операцией число на валидность. Ну вот допустим у тебя огромная формула с делениями, взятиями корней и степеней. Будешь каждую бинарную операцию записывать в отдельную переменную и проверять, можно ли ее использовать дальше? Да ну нахуй. Ну и также решили, что было бы удобно, что NaN не равен ничему, даже самому себе; поэтому нужно вызывать отдельную функцию.
    Так что JS вполне себе нормальный ЯП, не настолько уж хуже остальных.

  • @TheStrongestBaka
    @TheStrongestBaka 5 лет назад +39

    Вставлять рекламу воркшопа на JS в видео о ненависти к этому языку - это гениально.

    • @nightdog007
      @nightdog007 5 лет назад +2

      в js много проблем, но это не отменяет того что он нужен и востребован сейчас

  • @dimageorgiev5798
    @dimageorgiev5798 5 лет назад +1

    Дим Приветствую ! Делиться империческим опытом бесценно!! Спасибо за ценный контент !

  • @Acid31337
    @Acid31337 5 лет назад +35

    Эх, классика. В js числа с плавающей точкой ничем не отличаются от double в C++ или Java.
    Единственное что console.log в отличие от printf, cout или System.out.println выводит гораздо больше знаков после запятой. Поэтому КАЖЕТСЯ что 0.1 + 0.2 как-то не так складываются только в javascript.
    Это только так кажется.
    с NaN то же самое. Это не часть javascript, это часть стандарта, который реализован на любом железе. NaN есть везде.

    • @love.society
      @love.society 5 лет назад

      От С тоже?

    • @mazZZzilaplayer
      @mazZZzilaplayer 5 лет назад +4

      @@love.society про 3.00000...4 -- да. Это не вина языка, это просто то, как работает железо. Железо не умеет нормально работать с числами, которые не делятся на 2, такими как 2/3 или 3/7. Всегда будет определённая погрешность. Если интересно, то почитай информацию на сайте 0.30000000000000004.com

    • @vlad071096
      @vlad071096 5 лет назад +14

      Идиотизм не в плавающей точке, а в том, что целочисленного типа нет.

    • @владимирсенцов-р1ю
      @владимирсенцов-р1ю 5 лет назад +1

      На самом деле это потому, что лень было рантайм делать.

    • @Acid31337
      @Acid31337 5 лет назад

      @@vlad071096 на самом деле есть, надо места знать ))
      Настоящая целочисленная арифметика включается при наличии битового оператора который ничего не делает, например, вот целочисленное деление: a / b | 0. Правда только 32 бита.

  • @t33a25
    @t33a25 5 лет назад +1

    Совершенно не против рекламы,просто она у тебя начинается как-то неожиданно :D

  • @aleksyantkiewicz4369
    @aleksyantkiewicz4369 5 лет назад +3

    Я только собираюсь учить JS и ничего в нем не смыслю, но почитав коментарии понял, что программирование бывает веселее всяких там кинокомедий. Особенно добил комент про жонглирование хуями. Ржу в голос и вытираю слезы :)

  • @ВладиславДараган-ш3ф

    Это не "мутации" объектов, это передача по ссылке. Компутер сайнс, емае.

    • @dmitriibychkov9406
      @dmitriibychkov9406 5 лет назад +11

      Да, узколобым фронтендерам не ведомо что так во всех языках

    • @SeniorSoftwareVlogger
      @SeniorSoftwareVlogger  5 лет назад

      Детектед 😂

    • @SeniorSoftwareVlogger
      @SeniorSoftwareVlogger  5 лет назад

      На ruclips.net/video/k_mRqDoeAGg/видео.html он там я тоже обосрался сказав по привычке "передача по указателю"

    • @ВладиславДараган-ш3ф
      @ВладиславДараган-ш3ф 5 лет назад

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

    • @SeniorSoftwareVlogger
      @SeniorSoftwareVlogger  5 лет назад

      @Владислав Дараган мой пукан молчит, не полыхает. Какие с этим проблемы?

  • @sergejchap62
    @sergejchap62 Год назад

    в каком языке программирования решена проблема обновления? С учетом новых фич. Такой есть, если не придуман полгода или год назад. Это как бы вопрос, но не уверен надо ставить знак ?
    На чистом JS в продакшен наверное мало кто выходит. Это Vues, TypeScr, NestJs ... и далее, которые не уверен все кто-то понимает или хотя бы знает.
    Наверное в этих фреймворках учтены перечисленные проблемы. Хотя, все конечно не надо надеяться можно учесть в любом ЯП.

  • @ilyao.naumenko4831
    @ilyao.naumenko4831 5 лет назад

    Есть мнение, dart сможет заменить javascript, что думаете об этом?

    • @SeniorSoftwareVlogger
      @SeniorSoftwareVlogger  5 лет назад +2

      Один раз не смог, а теперь и Тайпскрипт подрос

    • @ilyao.naumenko4831
      @ilyao.naumenko4831 5 лет назад

      @@SeniorSoftwareVlogger то есть, typescript, возможно альтернатива javascript? Или надежда, js сможет исправить костыли и возможно ли это?

    • @SeniorSoftwareVlogger
      @SeniorSoftwareVlogger  5 лет назад +1

      Все возможно 🙏

  • @kisli3000
    @kisli3000 5 лет назад

    Привет, а можешь расскызать про typeScript решает ли он проблемы, и если да, то почему его обычно не используют?

  • @AxelGt30
    @AxelGt30 5 лет назад +13

    Еще появился TypeScript аля расширенный JS. Расскажи про реакт и\или ангулар, что лучше и тп

    • @MrSevenZZZ
      @MrSevenZZZ 5 лет назад +6

      Лучше vuejs.

    • @ivansidorov5
      @ivansidorov5 5 лет назад

      TS это костыль в JS , имеет кучу проблем и недоделок

    • @ArtemKuznetsovTV
      @ArtemKuznetsovTV 5 лет назад +3

      @@ivansidorov5 ts шикарен после js

    • @vabka-7708
      @vabka-7708 5 лет назад

      @@ivansidorov5 TS хорош, но если сравнивать с тем же C#, который тоже от микрософта, то экспириенс бедноват. Продолжаем ждать wasm

    • @ivansidorov5
      @ivansidorov5 5 лет назад

      @@ArtemKuznetsovTV Ты просто не пробвоал нормальные языки

  • @preenxus3425
    @preenxus3425 5 лет назад +2

    а что это за hacktoberfest?

  • @dmitriymaslov946
    @dmitriymaslov946 5 лет назад

    Дмитрий, почему в видео присутствует "winderton" ?? будет какой-то коллаб, обзор или что-нибудь в этом стиле?

  • @Boortwint
    @Boortwint 5 лет назад +5

    4:33
    Javascript с самого начала поддерживает ООП-парадигму, соответственно, он является объекто-ориентированным языком. Просто в основе JS лежит прототипная организация. То, что Javascript не статично-классовый, как Java, например, не перестаёт делать его объектно-ориентированным.

    • @Илья-с1л6э
      @Илья-с1л6э 5 лет назад

      или как было написано в одной из книг (либо "JavaScript сильные стороны", либо "JavaScript Шаблоны проектирвания") JS - это САМЫЙ объектно ориентированный язык. Ведь в нем ВСЕ объекты)))

  • @p343nk4
    @p343nk4 5 лет назад +1

    1:40 - Всё верно, NaN *это число!*
    Неопределенность или NaN (от not a number) - это представление, придуманное для того, чтобы арифметическая операция могла всегда вернуть какое-то не бессмысленное значение. В IEEE754 NaN представлен как число, в котором E=Emax+1, а мантисса не нулевая.
    Источник: habr.com/ru/post/112953/

  • @eugenerudakov3624
    @eugenerudakov3624 5 лет назад +1

    Про колбеки несуразица. Что мешает использовать ссылку на функцию вместо ее реализации в калбеке?

    • @drovoseg
      @drovoseg 5 лет назад

      Лишний аргумент у функции. А их может быть длинная цепочка.

  • @СергійЩербина-г4щ
    @СергійЩербина-г4щ 5 лет назад +7

    Громкость звука нужно сделать больше!!! Еле-еле слышно

  • @kookaburru
    @kookaburru 5 лет назад +1

    Не понимаю почему все набросились на автора видео? Как по мне он все верно сказал. Он просто уточнил некоторые особенности языка, которыхз нет в компилируемых. Я не увидел никакой некомпетентности.

  • @agostev12
    @agostev12 5 лет назад +13

    javascript всегда был объектно ориентированный или у тебя ООП исключительно с классами связан? кароче много чего высосано из пальца та же проблема складывания чисел 0.1+0.2 это все по стандарту IEEE 754 которым следует не только js а и много других языков

  • @aerahtv0000
    @aerahtv0000 5 лет назад

    а как тебе Lua или С# в сравнении с JS ?

  • @angular-developer-e1t
    @angular-developer-e1t 5 лет назад

    Круто. Глубокие знания.

    • @Илья-с1л6э
      @Илья-с1л6э 5 лет назад +1

      если это стеб, то норм

    • @angular-developer-e1t
      @angular-developer-e1t 5 лет назад

      @@Илья-с1л6э Нет не стёб. Кратко и с юмором.

    • @Илья-с1л6э
      @Илья-с1л6э 5 лет назад

      @@angular-developer-e1t тогда вам стоит самому изуть тему, потому что автор не сильно знаком с JS и экосистемой

    • @angular-developer-e1t
      @angular-developer-e1t 5 лет назад

      @@Илья-с1л6э Я уже полтора года как фронтед девелопер и мне хватает.

  • @dmitrygerenrot9765
    @dmitrygerenrot9765 4 года назад +5

    NaN - единственный объект, который != самому себе.

  • @GrigoryZdanovich
    @GrigoryZdanovich 5 лет назад +43

    Новый день, новый фреймворк, слишком медленно

    • @chikenmacnugget
      @chikenmacnugget 5 лет назад

      @@matsitskyss хах, смешно

    • @xcxc-iu3rb
      @xcxc-iu3rb 5 лет назад

      @@matsitskyss только фреймворк это не лопата, чтобы начать эффективно пользоваться фреймворком, на изучение его надо потратить больше времени, чем на язык программирования. А при устройстве на работу от тебя будут ждать знания туевой хучи этих фреймворков. Ничего классного не вижу.

    • @plasticine6712
      @plasticine6712 5 лет назад +1

      @@xcxc-iu3rb вы какие-то странные фреймворки используете, раз вам их учить приходится. В контексте джаваскрипта по крайней мере.

    • @СергейСоболев-ц2в
      @СергейСоболев-ц2в 5 лет назад

      @@matsitskyss потому что все недофреймворки херовые, вот и пилят кучу.

  • @AssassinNCR
    @AssassinNCR 5 лет назад +19

    Пункт 2 с мутацией объекта не понял. Что здесь неудобного, разве в других языках как-то по-другому реализовано? Я думаю, модифицировать исходные параметры метода - это в любом случае плохое решение. Еще Макконнелл в "Совершенном коде" писал: "не используйте параметры метода в качестве рабочих переменных". При таком подходе выстрелить себе в ногу гораздо легче и метод труднее сопровождать. Интересно посмотреть кейс, в котором это понадобилось.
    Вообще, изучая JS, я тоже много плевался и делал много ошибок. В основном это происходит от того, что язык очень многое позволяет сделать - на этапе изучения легко наломать дров. Но с опытом гибкость языка становится преимуществом. Для тех, кому это всё же не нравится в силу личных убеждений, есть TypeScript.

    • @ArtemKuznetsovTV
      @ArtemKuznetsovTV 5 лет назад

      +1

    • @dmitry.gashko
      @dmitry.gashko 5 лет назад +1

      @Тимофей Кривенко При чем, только, здесь, функциональное наследование???? Та штука к мета программированию находится ближе чем к функциональному программированию))

    • @dmitry.gashko
      @dmitry.gashko 5 лет назад

      Во многих языках можно контролировать, передвать объект по ссылки либо копировать.
      В том же С/С++:
      void func(User user) {} // копируется, и если в функции поменять что-то в объекте, то во внешнем коде ничего не поменяется
      void func(User &user) {} // передается по ссылке (как в js/java...)
      void func(User *user) {} // передается указатель (суть таже, но немного по другому (на самом деле предыдущий способ, скорее сокращение этого))
      И все же как в js мне нравится больше.
      Хоть и как в C++ тоже интересно. Как минимум гибкости в больше, хоть и подывает сложность.

    • @kookaburru
      @kookaburru 5 лет назад +3

      Вот когда будете поддерживать реальный проект, тогда прймете что мутация объекта не есть гуд.

    • @kookaburru
      @kookaburru 5 лет назад +1

      @Сергей Семенов, проблема в том что если проект чужой вы будете долго искать ошибку мутации. В своём проекте конечно вы уже сами контролируете код. Например в React по умолчанию принята анмутабельность, но если там где то в коде объект изменится, то вы ногу сломаете пока будете искать баг. Думаю автор именно это имел ввиду.

  • @szyk0v
    @szyk0v 5 лет назад +2

    Все ответы в книге "Yout don't know JS". Ну блин не ожидал от тебя. Классы это прекрасно. Люди городили монстров на основе прототипов пытаясь сделать из прототипов наследование. На вам классы. И тут полилось "Ой это не круто. Внутри прототипы." Babel это не новый JS это и есть JS. Это даже не суперсет как TS. Это просто обычный транспайлер. А негативный опыт у тебя с экспериментальными функциями. Их никто тебя и не просил использовать. Это везде отмечается. Async/Await это вообще проще некуда. Пришло из C#. Куда сложнее понять callback/promise. А модули это вообще прекрасно. Наконец то можно писать что-то нормальное.

    • @SeniorSoftwareVlogger
      @SeniorSoftwareVlogger  5 лет назад +1

      Сергей :) Все в порядке, жди другое видео 😉

  • @cybertabak8951
    @cybertabak8951 5 лет назад +1

    Классный контент! Можешь рассказать о плюсах минусах Golang, перспективах. Я начинал изучать программирование давно и плевался от ПХП, с джаваскриптом были какие-то мучения, а GO очень понравился. Может Я - мясо и программирование не моё ? Летаю в сомнениях. Хотел бы разработать AI, который будет обучать людей английскому, но это так фантазии школьника, в реальности все слишком сложно. Посоветуй что-нить (

    • @cascadengineering
      @cascadengineering 5 лет назад +1

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

    • @cybertabak8951
      @cybertabak8951 5 лет назад

      @@cascadengineering Спасиба!

  • @Dest424
    @Dest424 3 года назад +1

    11:36 - иронично это слушать в то время как typescript набрал огромную популярность nowadays))

    • @daun55
      @daun55 3 года назад +1

      @bitmap im too согласен with тобой

  • @BarrBozzO
    @BarrBozzO 5 лет назад

    Привет, а что за микрофон петличка, подскажите?

  • @TheVipUsers
    @TheVipUsers 5 лет назад

    видео получилось очень классное)) Можешь запилить подобное про Erlang? А то тема очень интерестная но на RUclips материала по ней очень мало))

  • @prgrant5320
    @prgrant5320 5 лет назад +2

    Мы хотим такие видосы

  • @elderlykite4605
    @elderlykite4605 5 лет назад

    Сделай пожалуйста ролик про курсы программирования . Интересно твое мнение , лучше ли те люди которые закончили курсы , чем те которые зависали 5 лет в университете , хотя бы на раннем этапе работы с ними . Надеюсь ты прочтешь...

    • @SeniorSoftwareVlogger
      @SeniorSoftwareVlogger  5 лет назад +1

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

  • @wswebus922
    @wswebus922 5 лет назад

    Классное видео. Напоминает чайка-менеджмент (Прилетел, нагадил, улетел). А будет ли видел как эти проблемы исправлять? Или как писать код так, что бы не ходить по граблям? 🤔

    • @SeniorSoftwareVlogger
      @SeniorSoftwareVlogger  5 лет назад +1

      Парень из закреплённого коммента расскажет! 👌 А если серьезно, то планирую. Это чтобы аппетит разыгрался

  • @xBesss
    @xBesss 5 лет назад +1

    Кратко о текущей веб разработке: стремленние юзать максимальное количество инструментов, которые конвертируют норм код в говно код ( понятный браузеру)

  • @alexey.sibirtsev
    @alexey.sibirtsev 5 лет назад +14

    Ну начнём с того, что js не при чём при вычислении 0.1+0.2, это проблема хранения данных в двоичной системе, что прописано в IEEE 754

    • @alexey.sibirtsev
      @alexey.sibirtsev 5 лет назад +5

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

    • @SeniorSoftwareVlogger
      @SeniorSoftwareVlogger  5 лет назад +2

      🙄

    • @alexey.sibirtsev
      @alexey.sibirtsev 5 лет назад +9

      @@SeniorSoftwareVlogger ну и аудитория у тебя :)

    • @SeniorSoftwareVlogger
      @SeniorSoftwareVlogger  5 лет назад

      @@alexey.sibirtsev и не говори, mansplain`ят вещи о которых сказано на первой минуте.

    • @serezha4755
      @serezha4755 5 лет назад

      @@SeniorSoftwareVlogger Это архитектураная проблема компютера что получение нецелие числа хранятся с чудовешним остатком и в фильме "Матрица" как я помню из за этого и произашло сбой в системе․

  • @leonsadeness
    @leonsadeness 3 года назад +3

    На счет мутации не согласен. В нормальных ЯП мутация не является побочным эффектом, особенно в императивном стиле. Просто многие JS-еры никогда не слышали про ссылочные и значимые типы. По поводу await, 8:40 тут извини автор, если внимательно (не жопой, а глазами) прочитать принцип работы await то все вполне очевидно. Соблюдать SOLID сложно даже в C#, а JS и вовсе невозможно. Самое страшное происходит когда проект обрастает кучей кастомных методов высшего порядка, оберток над обертками, и библиотеками разных подходов описания. Даже отсутствие патерн мачинга уже перестает напрягать, при виде конфигураций вынесенных в отдельный проект. С таким подходом любая процедурщина в 6000 строк будет выглядеть куда более понятнее и привлекательнее для любителей нырнуть в легаси, нежели этот взрыв на макаронной фабрике с осколками деклараций типов в TS , и любительским подходом к организации кода.
    Каждый год сеньоры пытаются отделить мух от котлет, выдумывая библиотеки, и новые фишки в экосистемах именитых фреймворков, в надежде сохранить стандарты, архитектурные паттерны, и читабельность кода. Вот только, сколько волка не корми (хуками, воркерами, composition_api, virtualDOM, SSR, и прочими костылями), он все равно Null объектом считает ;)

  • @IceKorm
    @IceKorm 5 лет назад +1

    Привет!
    Не нашёл твоей телеги в описании.
    Плюс, у тебя сайт упал:
    Error establishing a database connection

  • @nsname
    @nsname 5 лет назад

    TypeScript вроде многое решает?

  • @ТимурАбдулов
    @ТимурАбдулов 5 лет назад

    Отсылки прикольные гы ) Хороший видос

  • @AndreyLLIaBepMa
    @AndreyLLIaBepMa 5 лет назад

    Познавательный ролик на самом деле

  • @antifree007
    @antifree007 5 лет назад +4

    Typescript в помощь

  • @ArtemKuznetsovTV
    @ArtemKuznetsovTV 5 лет назад +10

    Отличное видео, все так и есть. А на языках, которые транслируются в js итак все пишут, тот же TypeScript.
    Того гляди JS станет чем-то вроде байт-кода у Java или IL у C#.

    • @thunderstorm7901
      @thunderstorm7901 5 лет назад +4

      Может байткодом станет webassembly, а не js?

    • @ArtemKuznetsovTV
      @ArtemKuznetsovTV 5 лет назад

      @@thunderstorm7901 webassembly будет хз когда, а код на чем-то более приятном, чем js хочется писать уже сейчас.

  • @CyberAcidPlanet
    @CyberAcidPlanet 5 лет назад

    У ES модулей есть замечательная особенность. Попробуйте в браузере динамически импортировать модуль у которого есть такой экспорт: export const then = () => console.log('Hello!')

  • @norzqq
    @norzqq 5 лет назад +5

    имхо не все так грустно, мне после с# очень даже зашел js, поначалу только немного ох*ел, но теперь не хочется обратно на статику

    • @predaytor
      @predaytor 5 лет назад +6

      Что с шарпом не так? Идеальный же язык

    • @norzqq
      @norzqq 5 лет назад

      @@predaytorэмм, я не давал никакой оценки с#

    • @DevilAlex03
      @DevilAlex03 5 лет назад

      Тоже ах*ел, когда начал изучать js (недавно), но только после полугода на плюсах) Но только не уверен, что захочется остаться, пока чувствую себя неуютно

    • @huismuis5521
      @huismuis5521 5 лет назад

      @@DevilAlex03 попробуй typescript. Хотя он тоже не идеальный, со своими багами и особенностями (к примеру, когда проверяешь переменную на undefined и используешь ее во вложенной функции, тебе компилятор ошибку выдает и говорит что нужно опять проверить на undefined).

    • @СерёгаСокольский
      @СерёгаСокольский 5 лет назад +3

      Если ты дотнетчик, то JS скоро не нужен будет. Когда выйдет релиз Blazor, можно будет на шарпе фронт писать. А вообще шарп почти идеальный язык.

  • @ПетроКобзар
    @ПетроКобзар 5 лет назад +2

    Я не защищаю JS. Я его тоже НЕ люблю, но:
    1.Я не понял проблему с Babel. Почему не использовать стандарт ECMAScript и не париться?
    2.Про асинхроность на 8:28
    const [result1, result2] = await Promise.all([task1(), task2()]);
    3.Можна узнать браузер и железо через UAParser и подстроиться под пользователя.
    4.TypeScipt решает проблемы с типами данных

    • @lega911
      @lega911 5 лет назад

      Можно ещё проще, просто перенести авэйты в следующую строку, после выполнения ф-ий

    • @arturmavlyuchenko7647
      @arturmavlyuchenko7647 5 лет назад

      а причем тут тайпскрипт блять?

  • @РомаИванов-в4л
    @РомаИванов-в4л 4 года назад +8

    Все сказанное, очень спорно. Сложилось впечатление, что это кликбэйт. Сам автор как будто не очень понимает, о чем говорит.
    Гораздо справедливее отметить, например
    typeof null === 'object'
    [1, 2] + [3, 4] === '1,23,4'
    Вот это действительно странно. Но и у этого есть обьяснения

  • @jenyaspace
    @jenyaspace 5 лет назад

    Но чем например чисто технически отличается класс в JS от класса в Java?

    • @qazyhn94
      @qazyhn94 5 лет назад +2

      В Js класс нифига не класс) это функция а вообще объект))

  • @AlexFloppy
    @AlexFloppy 5 лет назад +6

    Может не все еще в курсе, оставлю это здесь :
    ['1', '7', '11'].map(parseInt);

  • @otabekkeldiyorov2241
    @otabekkeldiyorov2241 5 лет назад +9

    Winderton))

  • @777homosapien
    @777homosapien 2 года назад

    Прошу ознакомиться как хранятся данные с плавающей точкой, и вы поймете почему сложение дробных чисел будет давать такие результаты (подсказка = мантисса экспонента).

    • @SeniorSoftwareVlogger
      @SeniorSoftwareVlogger  2 года назад

      Георгий, многие это знают и понимают. Тем не менее это очень неудобно.

    • @777homosapien
      @777homosapien 2 года назад

      @@SeniorSoftwareVlogger Согласен. Спасибо за ответ. Может я не так сформулирован комментарий. Это посыл к нашей общей боли - товарищей которые вошли в "айти" по курсам, и в большинстве случаев не знаю базы и не очень хотят развиваться. Если что то извините.

  • @cojib9361
    @cojib9361 5 лет назад

    Ничего нового, но жизненно. Рад что мою боль понимают)

  • @SlothHuntOnYou
    @SlothHuntOnYou 5 лет назад

    вот!!! наконец полезняк пошёл

  • @somestrangeperson
    @somestrangeperson 5 лет назад

    Классное видео:)

  • @KostiaBazrov
    @KostiaBazrov 5 лет назад +1

    про AWAIT -очень даже очевидно.!. для чайников js еще заставляет помечать функцию как async

    • @KostiaBazrov
      @KostiaBazrov 5 лет назад

      в новой версии ето выпилить грозились

  • @spanchbob3079
    @spanchbob3079 5 лет назад +10

    Привет! Теперь сними пожалуйста почему любишь JS!

    • @DJamal1803
      @DJamal1803 5 лет назад +6

      его не за что люитть

    • @maxleskin7444
      @maxleskin7444 5 лет назад

      @@DJamal1803есть ха, что браузеры развиваются и внедряют новые стандарты

    • @xBesss
      @xBesss 5 лет назад +3

      Любить js - это как будто остаться со срашной девушкой на безлюдном острове)

    • @ulargray4313
      @ulargray4313 5 лет назад

      @@xBesss Несмотря на это он лидирует в топ 3. Ежегодно между прочим. Можно сделать вывод , лучше уж со страшной но с умной , или с умеющей варить борщяк :с

    • @xBesss
      @xBesss 5 лет назад +4

      @@ulargray4313 он в топе, потому что нет аналогов, фактически монополия среди языков)

  • @МихаилВикторович-р2я

    Надо было назвать за что я люблю js)

  • @АртемПечерский-с8ф
    @АртемПечерский-с8ф 2 года назад

    Require, import это просто паттерн модуль, реализован через оборачивание кода в самовызывающиюся анонимную функцию. Что с этим то не так? Не хочешь export писать, ну заворачивай в такие функции, а то вдруг уберут из стандарта)

  • @dancecoder
    @dancecoder 2 года назад +1

    Классы в js всё же имеют отличие от функции с прототипом. Попробуйте вызвать конструктор класса без оператора new.

  • @ivnnis
    @ivnnis 5 лет назад

    класcное выступление на e3)

  • @YauhenKavalchuk
    @YauhenKavalchuk 5 лет назад +1

    "Как я вас понимаю")))

  • @AlexFlorida
    @AlexFlorida 5 лет назад +1

    при всем уважении к автору, передача объектов по ссылке - это Фундаментальная особенность большинства языков программирования. Это быстрее, чем передача по значению (плюс учтите необходимость глубокого копирования объекта) и позволяет менять объект на вызывающей стороне.

    • @SeniorSoftwareVlogger
      @SeniorSoftwareVlogger  5 лет назад

      Да-да и автор рассказывал про это в видео про чистые функции. Фундаментально, да. Быстрее, да. Проще реализовать, да. Пинает программиста под зад, тоже да.

  • @kapusta-v-lui-vi
    @kapusta-v-lui-vi 5 лет назад

    Ты сторонник одинарных кавычек или двойных?

    • @SeniorSoftwareVlogger
      @SeniorSoftwareVlogger  5 лет назад +4

      Только двойные

    • @kapusta-v-lui-vi
      @kapusta-v-lui-vi 5 лет назад

      @@SeniorSoftwareVlogger Уважаю! Поддерживаю!

    • @user-tc8jh8sm9y
      @user-tc8jh8sm9y 4 года назад

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

    • @mike_tallon
      @mike_tallon 4 года назад

      Даааа, только двойные! не привык к одинарным))

  • @BHy4OK
    @BHy4OK 5 лет назад +4

    у isNaN еще есть прелесть, если в него передать строку isNaN("hello") > true

    • @2152311564132542
      @2152311564132542 5 лет назад +2

      Для этого придумали Number.isNaN

    • @edgerunner2023
      @edgerunner2023 5 лет назад +4

      так глобальный isNaN преобразует аргумент в число, а hello - нечисловая строка

    • @BHy4OK
      @BHy4OK 5 лет назад

      @Alexander Borisenko да не, я без предъяв) глобальные функции в новых спеках постепенно переезжают в статические методы Number.

  • @g.n._
    @g.n._ 5 лет назад

    Мне с -дивана- бэкенда показалась хорошая идея компиляции программ с другого языка на js. Типа как в react, angular, scalajs и куче других подобных. По крайней мере для тех, кто предпочитает компилируемые языки.
    Долгоиграющие проекты - это везде похоже боль.

  • @alexshalov2695
    @alexshalov2695 5 лет назад

    Ну по поводу погрешности в 0.1 + 0.2 = 0.300..04 это тут дело не в самом JS, а в машинной точности. Это рядовая проблема из-за того, что такие числа как 0.1 в двоичной системе счисления не могут быть представлены конечным количеством бит из-за своей периодичной сущности.

  • @alexandersmurov1738
    @alexandersmurov1738 5 лет назад

    Спасибо за видео 🖤
    Вы работали с ангуляром? Есть возможность посоветовать книгу/курс? Буду очень благодарен.
    Всех благ!

    • @monsterbesel
      @monsterbesel 5 лет назад

      Александр Смуров сейчас наверное скажу неприятную для тебя вещь ,но если ты знаешь основы языка, то иди скачивай Фреймворк , открывай доку и практикуйся. Напиши в начале авторизацию ,подёргай какие-то апишки. Придумай себе задачу (мини пэт проект) и попробуй его написать. Примеров как писать на нагуляно можешь на гитхабе поискать

  • @НикитаЗамалютдинов
    @НикитаЗамалютдинов 4 года назад +1

    про плавающие числа и передачу по ссылке пророфлил, причем тут js вообще.
    в старых языках и с# есть структуры которые копируются

  • @xaapt
    @xaapt 5 лет назад +1

    - А давайте возьмем самый отсосный язык програмированния, написанный за 10 дней и сделаем его единственным для разработки самой быстрорастущей и доступной платформы
    - А давайте!
    (шел 1995 год, никто ничего не знал)

    • @SeniorSoftwareVlogger
      @SeniorSoftwareVlogger  5 лет назад

      А ведь был шанс получить Бейсик вместо Джаваскрипта! Да здравствует Брендон!

  • @MrCrYMusic
    @MrCrYMusic 5 лет назад +2

    google последний митап сказали что про числа поправили

    • @SeniorSoftwareVlogger
      @SeniorSoftwareVlogger  5 лет назад +1

      О, а можно ссылку?

    • @dmitry.gashko
      @dmitry.gashko 5 лет назад

      Да, тоже хотелось бы. Это было бы реально круто!)

    • @MrCrYMusic
      @MrCrYMusic 5 лет назад

      @@SeniorSoftwareVlogger ruclips.net/video/c0oy0vQKEZE/видео.html
      Пересмотрел..там чуть другое XD

  • @yakut54
    @yakut54 5 лет назад +5

    А мне нравится js.... наверно потому что я больше ничего не знаю 😜✌

    • @BohdanVR666
      @BohdanVR666 4 года назад

      Та же хрень с питоном)

  • @ЕгорЖолнин-е1й
    @ЕгорЖолнин-е1й 4 года назад +14

    Тема с числами не только с js. Многие популярные языки используют один и тот же стандарт IEEE-754 - все он виноват, а не js)

    • @BohdanVR666
      @BohdanVR666 4 года назад

      А для чего это нужно?

    • @ЕгорЖолнин-е1й
      @ЕгорЖолнин-е1й 4 года назад +2

      @@BohdanVR666 компьютеры не умеют точно вычислять числа с плавающей точкой (натуралтные). Для обхода этого используют приближенные вычисления, до определенного знака. IEEE-754 описывает как раз способ вычисления натуральных чисел. И т,к, это приближенные вычисления, то они дают подобные артефакты

  • @andrew-ua
    @andrew-ua 5 лет назад

    почему не TypeScript?

    • @SeniorSoftwareVlogger
      @SeniorSoftwareVlogger  5 лет назад

      Почему я ненавижу джаваскрипт, но не тайпскрипт?

    • @andrew-ua
      @andrew-ua 5 лет назад

      @@SeniorSoftwareVloggerнеее )) Почему не писать на TypeScript раз JS убогий. Он и для меня извращенский. Поэтому предпочитаю на TypeScript

  • @Кирилл-б3е4ю
    @Кирилл-б3е4ю 5 лет назад +8

    Дима, спасибо! Сталкиваюсь с ЖС по столку поскольку (15-25% рабочего времени) и этого всего не знал, а тут так сжато, и доходчиво по подводным камням - самое то.
    Сделай пожалуйста нечто похожее про Руби\Рельсы, Я думаю не Я один кому это интересно, спасибо.

    • @dmitry.gashko
      @dmitry.gashko 5 лет назад

      Почитайте learn.javascript.ru
      Если вы используете js под 3 рабочего времени такие вещи знать уж точно нужно)

  • @atmospheric_b
    @atmospheric_b 5 лет назад

    ну как по мне babel - единственное решение, когда в мире столько браузеров и они не унифицированы. А что делать то? Как быть с internet explorer?

  • @yamuru22
    @yamuru22 5 лет назад +1

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

    • @Илья-с1л6э
      @Илья-с1л6э 5 лет назад

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

  • @Mr_Doshirak
    @Mr_Doshirak 5 лет назад +2

    костыль на костыле костылем накостыляет

  • @stas9066
    @stas9066 4 года назад +5

    Звук слабый. Спасибо за видео.

    • @олегспирин-р4р
      @олегспирин-р4р 4 года назад

      Это где он слабый? Давно у ЛОРа были на приеме ?

    • @stas9066
      @stas9066 4 года назад

      @@олегспирин-р4р уважаемый, спасибо за заботу к моему здоровью. С слухом все отлично.

  • @nikolayserdyuk9753
    @nikolayserdyuk9753 5 лет назад

    Супер!

  • @RusFarFaz
    @RusFarFaz 5 лет назад

    Спасибо вам за столь информативные влоги. Скажите пожалуйста, в Германии берут на работу программистов без профильного высшего образования? есть гражданство еврпейской страны

    • @SeniorSoftwareVlogger
      @SeniorSoftwareVlogger  5 лет назад +1

      Берут, опыт важнее если программистом

  • @MAGIKru
    @MAGIKru 5 лет назад +3

    Еще бы про TypeScript упоминуть бы было не плохо.

    • @ivansidorov5
      @ivansidorov5 5 лет назад

      Это такой же костыль

    • @mivnvi.4685
      @mivnvi.4685 5 лет назад +1

      @@ivansidorov5 Мозг твой костыль, TypeScript отличный объектно ориентированный язык.

    • @ivansidorov5
      @ivansidorov5 5 лет назад

      @@mivnvi.4685 github.com/microsoft/TypeScript/issues куча проблем TS. норм только для HelloWorld и Junior задач , когда используешь в фреймворке с современными фичами - там полно говна всплывает. не всегда типы подсказывает. тормозит, зайди в русское сообщество в телеге, все дерьмом поливают его, крмое джунов которые написали (a:number, s:string) и думают что у них в проекте Ts)))))00

    • @ivansidorov5
      @ivansidorov5 5 лет назад

      @@mivnvi.4685 Если и хочется типизации качественной, то вали из JS и бери нормальный язык, ане обмазывайся костылями. ты считаешь TS нормальным языком, потому что тебе не с чем сравнивать. и да ООП не нужен в 2019 году в JS) ты отстал от жизни.

    • @mivnvi.4685
      @mivnvi.4685 5 лет назад

      @@ivansidorov5 чем тебе типизация TS не угодила? Приведи хоть 1 факт. Если TS объектно ориентированный это не значит, что на нем не пишут в функциональном стиле. Ты типичный ретранслятор, который слепо пересказывает чужое мнение.

  • @YOhellpie
    @YOhellpie 5 лет назад

    Крутое видео!

  • @imbydlo1552
    @imbydlo1552 3 года назад +1

    Правильно сказал! Зачем писать на JavaScript, если все равно он будет компилироваться на JavaScript??? Буду писать на своём любимом c# используя blazor. Вот еще приближается net core 6 который добавить ещё больше фичи для него