Автор, спасибо тебе за видео, это одно из лучших видосов по проге, которые я видел в ютубе. Ты прям четко по теме говоришь, а многие авторы много воды льют, в итоге видос на 10 мин, а сути 0. Подписался на канал, буду следить за твоими видосами)
У нас есть два компилятора, которые могут компилить код в байт-код под две разные операционки. Ок. Берем код, отдаем его двум разным компилятором на двух разных операционках - получаем два результата. Теперь у нас есть код, который компилится в джава-байткод, который отправляется двум виртуалкам, которые умеют компилить его каждая под свою операционку. У нас был универсальный код на языке программирования, теперь мы взяли универсальный код на языке программирования и сделали из него тоже универсальный джава-байткод и скормили его уже не компилятору, а виртуальной машине? В чем разница? Если не говорить об управлении памятью? И вроде как джава-машина интерпретирует джава-байткод прямо по ходу исполнения, нет?
Разница в том, что на плюсах по-настоящему универсальный код возможен только в очень узких классах задач или очень простых проектах. Потому что ЖВМ для вас абстрагирует ОС почти полностью, включая низкоуровневый доступ, например, к USB портам. На плюсах вам надо под каждую ОС искать свои либы для работы с железом и с самой ОС.
@@Artistofun, я на плюсах не писал, я писал на питоне. Вот устанавливаю я питон на линукс через апт или на винду через .exe - он у меня и там и там интерпретирует один и тот же код. И если я не могу через встроенную либу питона подключиться к usb портам, это значит, что в интерпретаторе питона просто нет такой библиотеки. И все. Ну, допустим в ДжВМ есть такая под винду и такая же под линукс. Нужно разрабатывать две версии виртуальных машин под разные операционки, чтобы одинаковый код на джаве работал и там и там. Допустим, в питон добавили встроенную либу, которая умеет работать с усб-портами. И допустим, разработали два интерпритатора для винды и линя. Чем это отличается от разработки двух виртуальных машин с похожим функционалом, но под джаву?
@@Artistofun тут виртаульная машиныа умеет в порты усб, там либа в компиляторе умеет в порты усб. Или компилятор не может дополнительные либы включать?
Очень интересно и наглядно, в классических традициях Хорошего программиста. А где находится JVM? Вот например пишется приложение на Java под Andriod, соответственно JVM - это компонента Android Studio?
jvm в андроид называется иначе en.wikipedia.org/wiki/Android_Runtime и работает она в самом андроиде, для каждого приложения запускается системный процесс, в котором оно выполняется (очень грубо говоря)
Теоретически можете, но упоретесь портировать и адаптировать ваш код под каждую платформу. Если это сложное приложение, использующее множество библиотек и сложных функций системы. А не hello world
А как вы считаете, Java действительно лучший выбор для кроссплатформенной разработки? Лично я когда решил освоить программирование, долго выбирал курсы, рассматривал разные варианты. В итоге остановился на Skypro, потому что у них отличные отзывы и структурированный материал. Уже через пару месяцев до конца курса смог устроиться на работу с хорошей зарплатой))
Java классный язык. Он - первый из тех, что я начал изучать. Из минусов для меня, Java громоздкая для небольших программ (утилит), поэтому для них лучше другие языки: python, kotlin и т.д. Но для больших приложений Java почти идеальная.
Филя Усков пишите по стандартам и на кроссплатворменных либах, будет кроссплатформенно. Серьезные приложения все равно надо тестить. Вы придумали себе искусственную проблему. Зачем вам вручную управлять памятью??
Джависты сделали круто виртуальную машину ? :)))) В то время когда жава машина требовала обновления железа до топового на протяжении многих лет та же самая смалталк машина летала на железе 90х только в путь. Причем установка этой самой машины под ту же винду требовала просто папки с дллками :)
И на самом деле да, это будет тормозить. Слава закону Мура, который сделал возможным плодить говнокод, абстракции над абстракциями над абстракциями. И наш Hello World соберется в файл на несколько мегабайт, запуск потребует уже под сотню и пару секунд времени, пока стартанет jvm. На железе, которое еще 30 лет назад считалось бы суперкомпьютером. Триумф потре#лядства.
Только если это исходный код программы. Если речь о машинных кодах например это еще как countable. Потому что таких кодов (как чит-кодов в doom) всегда определенное количество.
Концепция автоматического сборщика мусора - самый тупой маркетинговый миф, что можно было придумать. Фактически, если вы не хотите «out of memory» вам нужно ВСЕГДА отслеживать области видимости и где нужно вручную освобождать ресурсы. Последние 20 лет разработки, факапы из-за утечки памяти вижу только на Java-проектах среди секты Свидетелей Сборщика Мусора. 😁
Вот сколько ни встречал программистов, если начинает докапываться до написания/произношения слов (не путать с code style) в первую очередь - так себе специалист. А видео отличное на самом деле (см. соотношение лайков и дизлайков).
Крутой формат объяснения
Только вот есть подозрение, что видео спизжено с какого-то англоязычного источника, а "афтар" чисто перевёл и зачитал.
@@WofWca обижаете, у нас только эксклюзив, только топ.
@@WofWca даже если так - спасибо автору.
Большое спасибо! Это краткое видео по объему и полезности информации на единицу времени просто супер! И главное, очень понятно
Спасибо! Лайк, подписка, кинуть ролик другу! :)
@@goodprogrammer само собой )))
while(true) { System.out.println("Спасибо, очень понятно!"); }
ошибку в коде:
трудно найти
легко потерять
и невозможно забыть...
Крутой формат! Просто, понятно, музыка приятная))
ахуеть. нормально объяснил, нормальная дикция, прикольная визуализация. я думал так не бывает
На нашем канале бывает )
жаль, что нельзя поставить больше одного лайка. Спасибо Вам за отличную подачу материала
Божественное объяснение!)
Спасибо!
agree, I'm impressed, I was thinking I could never understand this but now it's more than clear to me. Thanks a lot.
Чувак, надеюсь ты хорошую зарплату получаеш за програмирования!!! Очень круто!!!
Очень хорошая падача, и рисуночки топчик )) Спасибо!
Спасибо!
Классный формат, хотелось бы и курсы по Java от Вас ))
Согласен
Примерно так я и представлял себе сборщика мусора))
Ну а в целом хорошее видео, приятный формат!
Классный формат! Дикция отличная
Прикольно смотрится!
Объяснил понятным языком спасибо !!!
Просто лучший!)
Благодарю за прекрасное объяснение 😌👍
классно, но хотелось бы чуть побольше про JIT
ошибка в обьяснении 3:58, байт-код не джава машина компилирует, а принимает его на вход
Очень доступно. Спасибо большое!
I like this tutorial!) I want more these video!) You have good channel!)
Очень интесное и познавательное видео!
Интересно, а главное все понятно,
++++СПАСИБО++++
смотря кому. мне понятно все но я сам могу рассказать подробнее.
Автор, спасибо тебе за видео, это одно из лучших видосов по проге, которые я видел в ютубе. Ты прям четко по теме говоришь, а многие авторы много воды льют, в итоге видос на 10 мин, а сути 0. Подписался на канал, буду следить за твоими видосами)
Круто, спасибо!
Офигенная подача
Очень доходчиво. Спасибо
Наконец то я понял все это муть с языками. Спасибо:)
Отлично! Рады, что помогли! :)
Для новичка в программировании визуальный формат подачи материала - лучше и не придумаешь!
Прекрасно, спасибо!🙂
Видео мне понравилось)
урок рисования без PAINT 😁
Спасибо супер спасибо за работу.
спасибо
Чувак спасибо
Искал что такое jvm и нашел ответ именно тут)
Спасибо)
а почему в андроид устройствах нет java, но ест байт-код? Я нигде не могу найти java, где она спрятана?
Да там же, рядом с байткодом!
Классный ролик
Супер super like
Только недавно читал такую статью на википедии,не знал что выйдет это видео(
эх, придется вернуть инфу обратно на википедию (
У нас есть два компилятора, которые могут компилить код в байт-код под две разные операционки. Ок. Берем код, отдаем его двум разным компилятором на двух разных операционках - получаем два результата.
Теперь у нас есть код, который компилится в джава-байткод, который отправляется двум виртуалкам, которые умеют компилить его каждая под свою операционку. У нас был универсальный код на языке программирования, теперь мы взяли универсальный код на языке программирования и сделали из него тоже универсальный джава-байткод и скормили его уже не компилятору, а виртуальной машине? В чем разница? Если не говорить об управлении памятью? И вроде как джава-машина интерпретирует джава-байткод прямо по ходу исполнения, нет?
Разница в том, что на плюсах по-настоящему универсальный код возможен только в очень узких классах задач или очень простых проектах.
Потому что ЖВМ для вас абстрагирует ОС почти полностью, включая низкоуровневый доступ, например, к USB портам.
На плюсах вам надо под каждую ОС искать свои либы для работы с железом и с самой ОС.
@@Artistofun, я на плюсах не писал, я писал на питоне. Вот устанавливаю я питон на линукс через апт или на винду через .exe - он у меня и там и там интерпретирует один и тот же код. И если я не могу через встроенную либу питона подключиться к usb портам, это значит, что в интерпретаторе питона просто нет такой библиотеки. И все. Ну, допустим в ДжВМ есть такая под винду и такая же под линукс. Нужно разрабатывать две версии виртуальных машин под разные операционки, чтобы одинаковый код на джаве работал и там и там. Допустим, в питон добавили встроенную либу, которая умеет работать с усб-портами. И допустим, разработали два интерпритатора для винды и линя. Чем это отличается от разработки двух виртуальных машин с похожим функционалом, но под джаву?
RedkeiGost ну питон гораздо ближе к жаве в этом плане, чем к сям
@@Artistofun так заменить в примере питон на си, а интерпретатор на компилятор - суть вопроса моего не поменяется, я разницу не понимать.
@@Artistofun тут виртаульная машиныа умеет в порты усб, там либа в компиляторе умеет в порты усб. Или компилятор не может дополнительные либы включать?
Очень интересно и наглядно, в классических традициях Хорошего программиста.
А где находится JVM? Вот например пишется приложение на Java под Andriod, соответственно JVM - это компонента Android Studio?
jvm в андроид называется иначе en.wikipedia.org/wiki/Android_Runtime
и работает она в самом андроиде, для каждого приложения запускается системный процесс, в котором оно выполняется (очень грубо говоря)
JVM находится там же где все остальные программы и с какими либо IDE статической связи не имеет.
А разве я не могу 1 раз написать на c, а на разные платформы просто компилировать разными компиляторами?
Теоретически можете, но упоретесь портировать и адаптировать ваш код под каждую платформу.
Если это сложное приложение, использующее множество библиотек и сложных функций системы. А не hello world
@@goodprogrammer ну наверное я могу использовать кросплатформенные библиотеки-прослойки для этих функций?
@@stepanbazrov6330 ну попробуйте и расскажите нам как получится
Это ты все парты изрисовал?
Неприличными словами из 3х букв типа... JVM ?? )
А как вы считаете, Java действительно лучший выбор для кроссплатформенной разработки? Лично я когда решил освоить программирование, долго выбирал курсы, рассматривал разные варианты. В итоге остановился на Skypro, потому что у них отличные отзывы и структурированный материал. Уже через пару месяцев до конца курса смог устроиться на работу с хорошей зарплатой))
Клоун
Java рулит
Интересно, а почему вы стали преподавать руби, а не java?
Для новичка лучший язык - руби, а не java
Java классный язык. Он - первый из тех, что я начал изучать. Из минусов для меня, Java громоздкая для небольших программ (утилит), поэтому для них лучше другие языки: python, kotlin и т.д.
Но для больших приложений Java почти идеальная.
👍
Почему нельзя написать свой компилятор для каждой операционки? Их не так уж и много
Вот почему они не сделали джаву с ручным удалением мусора? Я хочу это делать САМ!!!!111
что за бред, пишите на С++ и будет вам как джава без управления памятью )
Но это не кроссплатформенно. Чтобы было кроссплатформенно - надо тестить код сразу на куче платформ.
Филя Усков пишите по стандартам и на кроссплатворменных либах, будет кроссплатформенно. Серьезные приложения все равно надо тестить.
Вы придумали себе искусственную проблему. Зачем вам вручную управлять памятью??
Филя Усков можно вызвать в коде гарбадж-коллектор и он очистит память, но там есть нюансы
JVM написан на C++ , Jit на Cи.
СПС
Джависты сделали круто виртуальную машину ? :)))) В то время когда жава машина требовала обновления железа до топового на протяжении многих лет та же самая смалталк машина летала на железе 90х только в путь. Причем установка этой самой машины под ту же винду требовала просто папки с дллками :)
JVM писалась для бытовых устройств. Какое топовое железо?
@@Aleksei_Filatovты просто не в курсе как это все тормозило в самом начале, скорее это был сговор с производителями железа.
На плюсах же тоже есть сборщик
Только Java принадлежит Oracle, как и Sun
И на самом деле да, это будет тормозить.
Слава закону Мура, который сделал возможным плодить говнокод, абстракции над абстракциями над абстракциями.
И наш Hello World соберется в файл на несколько мегабайт, запуск потребует уже под сотню и пару секунд времени, пока стартанет jvm. На железе, которое еще 30 лет назад считалось бы суперкомпьютером. Триумф потре#лядства.
Пипец хоть и малолетка, но понял, спасибо!
Код - uncountable понятие, нельзя говорить коды/кода
Только если это исходный код программы.
Если речь о машинных кодах например это еще как countable. Потому что таких кодов (как чит-кодов в doom) всегда определенное количество.
C# >>>>>>
Мущина, запили видос как EXE шник из JAVA добывать - йа чото ваще непойму. После плюсов все как то убого выглядит
Через graalvm
Концепция автоматического сборщика мусора - самый тупой маркетинговый миф, что можно было придумать. Фактически, если вы не хотите «out of memory» вам нужно ВСЕГДА отслеживать области видимости и где нужно вручную освобождать ресурсы. Последние 20 лет разработки, факапы из-за утечки памяти вижу только на Java-проектах среди секты Свидетелей Сборщика Мусора. 😁
я обсалютно ничего не понял.
Лучше расскажи зачем нужен Stop The World. Хехе.
Александр Ярославов обязательно
Музыка мешает смотреть
машинные КАДА - 80 уровень! Machine code или на Машинные коды! Дальше уже даже не интересно, dislike однозначно!
Вот сколько ни встречал программистов, если начинает докапываться до написания/произношения слов (не путать с code style) в первую очередь - так себе специалист. А видео отличное на самом деле (см. соотношение лайков и дизлайков).
@@goodprogrammer Я просто улыбнусь в ответ.
@@arturiobn И хорошо (bit.ly/32CwNkj)
не джава а ява назван в честь кофе ява
А у вас какой стаж "ява" программистом?
Питон или пайтон? Пхп или пиэйчпи?
@@goodprogrammer ну если ты Вася то питон а если Джонни из канзаса то пайтон как ты думаешь как правильней будет звучать у нас
@@goodprogrammer кто курил яву 100 и катал на яве 350 никогда не назовет остров ява джавой и яванское море джаванским как и японский авто джапанским
Пока вы курили яву, я «курил» джаву. И не надо сюда, где не шарите, свои гоп порядки тащить.
Ты бы с динозавров еще начал.