Что такое компиляция, линковка? Что такое run time?
HTML-код
- Опубликовано: 21 сен 2024
- Сегодня мы поговорим, что же такое компиляция, линковка? что такое run time?
Новые онлайн курсы GRASP and GoF Design patterns - bit.ly/2CAxHC1
Курсы JAVA - bit.ly/34J2pVv
Курсы C#/.NET - bit.ly/2WZXqx8
Курсы ANDROID С НУЛЯ - bit.ly/34JFh9u
Курсы Automation QA (Java) - bit.ly/2qyvWCL
Курсы FRONT-END - bit.ly/2qAie24
Курсы UI/UX дизайна - bit.ly/2QcMefp
Курсы WordPress Developer - bit.ly/2NWdTyb
Сайт Foxminded: bit.ly/2NWbrb6
Foxminded в ФБ: / foxmindedco
FoxmindEd в Instagram: / foxminded.ua
Мой Telegram: t.me/nemchinsk...
Мой блог: www.nemchinsky.me
Очень приятно смотреть когда вы не пытаетесь шутить и остроумничать, а только по делу говорите
какой ты требовательный, смотря на бесплатном сайте бесплатное обучающее видео.
@@zrglow4450 взыскательный😁
Я человек простой: вижу Немчинского - ставлю лайк. А то что тему он раскроет быстро и без лишней воды можете быть уверенными.
Подписываюсь
Сергей, спасибо за знания и лайк за кружку!
Присоединяюсь, хорошо, что можно на просторах ютуба, встретить подобный контент, считай "заочные курсы"
А я такой сижу и думаю, почему я ни разу не слышал и не читал про "линковку". Вот оно что)))
Здравствуйте, меня зовут Сергей Немчинский, я программист с более чем 20-летним стажем!
нет, это я - Немчинский :)
Pree Nxus
Вы пропустили "все еще" - Меня все еще зовут ))
Сергей Немчинский - мне больше нравиться на C# кодит,
но, Ваш канал я постоянно смотрю.
Уважаю Вас. Ты хороший мужик и настоящий профессионал!!!
Лучший педагог в рунете.
зачотна чашка, респект.
А у вас есть видео про язык "С"?
Былобы интересно узнать насколько он востребован сейчас, какие у него перспективы на будущее, насколько его сложно и долго учить, что на нем сейчас програмируют, и на каких сайтах или рынках искать работу...
Синтаксис учить не сложно, но применяется С, как правило, либо в Embedded, либо в System разработке, то бишь низкоуровневой. Соотвевенно, нужны очень (ОЧЕНЬ) крепкие знания в железе, архитектуре компьютера. Понимание низкоуровневых протоколов связи.
В случае в embdedded еще и электронику/микроконтроллеры в придачу.
Сергей, ответьте пожалуйста.
1.Где вам лучше задавать вопросы? здесь можно задавать или вам удобней на своей платформе где-то?
2. Для отображения данных из БД в html я использую шаблонизатор Thymeleaf. Какой шаблонизатор используют компании в enterprise при разработке коммерческих проектов?
чаще используют просто фронт-энд приложение. Таймлиф вполне используют тоже, но на старых приложениях
@@SergeyNemchinskiy если Thymeleaf это устаревшая технология, то куда стоит копать,чтобы данные на фронте отображались из БД? Хотел бы изучать современные технологии и то,что используют современнеы компании
@@kentforthable angular
можно пожалуйста ваши ролики подкреплять срезами кода из программ с объяснениями, у вас хорошая теоретическая база, но без практической жилки, вот ее то не хватает! Лайкнул и подписался!
очень хочется услышать мнение о Python ))))
Расскажите про JDBC, с чем его едят, зачем он нужен и обязателен ли к изучению Junior Java Developer?
в списке уже есть, скоро снимем :)
Сейчас требования на джуна настолько повысились,что на собесе даже про hibernate,spring data и тд могут спросить
Jdbc не нужен. Учи spring data, hibernate. Это высокоуровневые надстройки над jdbc
@@666kirillka я бы сказал, что требования на джуна настолько понизились, что даже про jdbc уже не спрашивают...
у нас был i7-8550, 75 ампул мескалина, 16 гб DDR4, целое море разноцветных амфитаминов, барбитураторов и транквилизаторов, M2 SSD, мы компилили и линковали сорцы С++ как могли
Джавак - это было прикольно =)
красавчик!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Расскажите про Class Loader, простым языком как вы умеете)
что именно рассказать? Что это такое?
@@SergeyNemchinskiy Да
Рефлексия
Здравствуйте Сергей! Расскажите пожалуйста про JIT и AOT. Что лучше, плюсы и минусы одного и другого.
расскажу
Спасибо, Сергей. А может расскажешь новичкам про многопоточность... ?
гм.... рассказать что это?
Лайк за чашку и за тему
Спасибо, Сергей!
Можешь, пожалуйста, рассказать про DSL и их основные use cases ?
Собственно наилучший способ проектирования системы - через написание DSL. Современное ФП позволяет писать в tagless final стиле легко расширяемые DSL с тайпчекингом и без оверхэда.
Применяются много где маленькими командами для написания больших программ (грамотный DSL [точнее рекуррентно несколько DSL] сокращает почти геометрически объём кода).
Вот вам Барометр все расскажет :) Даже напишет на ФП :)
@@SergeyNemchinskiy от Адама и Евы не получилось правда)
Надо бы открыть серию вопросов (и ответов ) при собеседовании. В данном случае там спрашивают compile polymorphism vs runtime polymorphism :)
это джаверов спрашивают? зачем?!
@@SergeyNemchinskiy я хз спрашивают или нет, я видел этот вопрос когда готовился к собеседованию на джаву :) Одна мы можем рассмотреть другие вопросы
Сергей, какой по вашему мнению самый лучший алгоритм поиска багов рантайма?
По моему личному опыту самый эффективный способ искать константу. В смысле переменную которая перестала быть переменной и перестала менять свое значение.
эм... ну,у меня самый простой способ - это покрыть код юнит-тестами
Расскажите пожалуста как работает Windows, то куда простому человеку не скоро случится добраться. Коль разговор пошел о run time.Что такое эвенты, что случится если несколько эвентов наложатся друг на друга во времени.Мне нужно GUI на VB.NET сделать.Но мне проще самому сделать GUI на микроконтроллере(запрограммировать чип) и прогарантировать его поведение в реальном времени, чем получить какието гарантии от Windows, Linux или другой какой то ОС. Сделайте пожалуста несколько лекций по Виндоус, это как бы основа всего.
Windows не является системой реального времени. Это система псевдо-реального времени, т.е. таких гарантий как в МК вы не получите. Да и действительно ли вам нужна такая точность на VB?
я не специалист в виндоус. Мои программы работают под джава-машиной, так что события виндоус напрямую до нас не долетают
Спасибо!
А тренинг по паттернам не только для Java-разработчиков? Можно и другим приходить? Спасибо!
именно. для всех разработчиков на ООП языках
Давай про CQRS + Event Sourcing
не, не мое
Чашка классная
3:13 Неправильно! Зачем вводить новичков в заблуждение? Linkage - это не только с внешними либами, а прежде всего между объектными модулями самой нашей программы. И при обычном динамическом связывании исполнимый файл не включает в себя сторонних библиотек. То что ты описал - это static linkage. Не самое стандартное решение, хотя и применяемое в определённых случаях.
энивей в джава этого этапа нет.
Не хотел забивать голову
Другими слова: компилятор проверяет синтаксис языка, но не может проверить логические ошибки, которые возникают уже при Run time.
А когда ето Java и Python начали компилироватся а не интерпретироватся ??
Sergey Nemchinskiy, Добрый день! Расскажите, пожалуйста, существуют ли "гении" среди программистов? В чем это проявляется: умение понимать, сходу, что делает этот чужой (говно)код, писать код без дебага и без ошибок или писать так, что понятно всем (даже моей бабуле), что он делает, или сможет большой проект в одиночку, или наоборот сразу войти в новый коллектив и начать дорабатывать проект, или может другим объяснить любому джуну, что он делает и что делает джун не правильно, или найти простое решение для сложной задачи или он просто ориентирован под определенного вида задачи, которые другие решить не могут(или не хотят или слишком сложные) и т.д.. Ведь все (практически) говорят, что программирование - не такое уж сложное дело, которому обучиться может каждый, не имея никаких навыков и приложив достаточно усилий. И выходит, что программисты отличаются друг от друга, только тем, сколько времени и сил вложили в это дело. Так ли это? Попадались ли Вам гении программирования(ну, или может Вы считаете себя таковым)? В чем это проявляется? Интересно узнать Ваше мнение.
запишу видео, хорошо
ИМХО гений с точки зрения программирования это тот кто делает оптимизацию там где надо и не делает там где не надо...
А как же вопрос о том, нужна ли джава-программисту {подставьте вопрос}?
ахаха. Я часто такое рассказываю и так
@@SergeyNemchinskiy так я ж об этом же. Понятно, что жаберу никогда не понадобится ни линковка, ни компиляция. Но знать, как работает процессор, память, подсистемы - нужно.
Или инвертировать: "нужны ли программисты Джаве?"...
Компиляция это превращение исходного кода в код, понятный компьютеру. Но есть языки компилируемые, есть некомпилируемые. хехе
Повторю "новичковый" вопрос - front-end на Java - это хорошо или как? Есть же JSP, JSF, но они же "умирают")) (да, уже сколько лет)))
Ну это как развозить пиццу на камазе. В принципе получится, но зачем? Лучше взять малолитражку.
Да, а зачем? Если бэкенд будет работать с терабайтами данных то тогда точно на джаве, а если свой сайтик портфолио, или что-то такое, она тут наф не нужна
давай тогда на плюсах тогда уж, гугл же написан, да?
Сейчас достаточно часто попадаются вакансии для Java разработчиков, где желательно знание Angular или React. Понимаете, все эти GWT, Vaadin... ну не в ту сторону это все. Если уж использовать что-то, то конкретно заточенное под какие-то задачи.
JSP и JSF думаю чаще в вакансиях будут встречаться, нежели GWT, Vaadin. Но думаю, что все же нужно учить Angular. Да - трудно, да - не хочется. Но Angular на фронте более востребован.
@@gaben-agent
🤣👍, а дальше что? потом вообще высшую математику надо будет учить всю, вы hr меньше читайте
Очень смешно как Немчинский рассуждает о падениях в рантайме. Это ведь в порядке вещей, как и не очень современная система типов Явы да ещё с эразингом.
Программы на языках с тайпчеком всё таки успешно работают после компиляции в 95% случаев (без quickCheck-style тестирования).
Зато Немчинский счастливый человек - ему ещё только предстоит открыть для себя мир ФП и тайпчекинг))) Завидую!
фейспалм
@@SergeyNemchinskiy , так у меня тоже, Сергей!
хорошо бы нормализовать звук. То тихо, то оглохнуть можно от громкости.
В наушниках огонь, все четко
Java language - compilation (what is it byte code)?!
Нету ссылки на онлайн тренинг по GOF
уже есть, исправились: bit.ly/2CAxHC1
По какому контакту можно более подробно узнать о вашей программе обучения?
по любому на сайте - почта, вайбер, телеграмм, телефон, фейсбук...
Что такое maven ?))
в списке на запись
Как собрать и развернуть приложение на сервере и что для этого нужно.
слишком сложно для такого уровня новичков. Такие вопросы лучше гуглу задавать.
Я буду рассказывать постепенно о всяких ПОНЯТИЯХ. Но инструкции - это уже тренинг. Данная тема, например, рассматривается на тренинге java tools for begginers. Скоро будет новый набор
@@gaben-agent Я ведь не имею ввиду раскидать всё по полкам в часовом видео, а просто рассказать зачем всё это дело надо и при чем тут серверы :)
Нашел отличный вопрос, о котором можно поговорить:
Сергей, как вы относитесь к хайповой школе Ecole 42 и ее франшизе в украине unit.ua ?
Что-то толковое или очередная тусовочка?
По большому счету это ведь курсы, а значит - ваш профиль)
з.ы. потратьте полчаса времени, там есть неплохие решения (а есть плохие)
я в друзьях с ее директором Валерией Заболотной :) Даже не знаю, как отвечать....
приоткрою тайнну - мы готовим большой материал по всем конкурентам - расскажем, что есть на рынке
ой, джава виртуальная машина - звучит угрожающе! нуна посмотреть что это *
Ляжат ляжат)
В Джаве ничего компилировать нельзя. Это обычный язычок вроде паскаля.
Ахаха
Получается "линковка" - термин, неприменимый в Java?
Vladimir Malzam применимый, можешь прочитать про classloader и т.п
@@ДанилКлименко-я8т Почитал про classloader. Результаты:
Источник 1 - линковка - разрешение символьных ссылок (разрешение/запрещение - что хотел сказать автор?)
Источник 2 - "разрешение символьных ссылок - JVM подставляет ссылки на другие классы, методы и поля". Ссылки на что, понятно.
А куда он их подставляет то? Пир надмозгов, не умеющих в логику и по русски.
Если имеется в ввиду статическая линковка, то пожалуй нет. А вот если динамическая то есть некоторые варинты. Например, работа с jni.
в джаве есть такая вещь, как AOT компиляция, расскажу потом. Там выходит есть линковка
@@ДанилКлименко-я8т Те кто предлагает где-то почитать, обычно сами не читали. Либо читали но ничего не поняли.
Почему нету курсов ios ?
у нас или вообще?
@@SergeyNemchinskiy у Вас, конечно
пользователей иос?)))
"зачем нужен jvm?" - что-то не нашёл такое видео
Чтобы запускать байткод.
Обычные компиляторы преобразуют код в машинный код, который выполняет процессор, а виртуальная машина java, так расшифровывается jvm, представляет собой виртуальную копию реального процессора, как эмулятор, но исполняет не машинный код, а байт-код java. Нужно это для кроссплатформенности. Машинный код работает только на конкретном процессоре, и байт-код заработает только на jvm, и мы типа для каждого процессора пишем эмулятор этой jvm, так, любой код написанный на java, скомпилированный в байт-код .class, проходя через jvm, заработает на любом процессоре.
Как устроиться андроид разработчиком без опыта работы?
за еду работай, дорогой, думал в it бабки есть в начале?
@@AlekseiKazantcev я готов и за еду)
@@rdragon587
ну так в чем проблема, если ты не прям в ужасном городе живешь, и твои социальные навыки позволяют хотя бы не быть бээээ ээээ мээээшником, то вперед
@@AlekseiKazantcev ну.. Я живу в ужасном городе. Плюс у меня нет технического бекграунда. Но я готов переехать или работать удалённо.. Хотя в начале, наверное, удалённо не возьмут..
@@rdragon587
для начала если ты уж совсем новичок, первым делом пытайся делать свое портфолио, научись применять разные технологии под разные задачи, все гуглится достаточно просто, удалённо можно работать, но нужно доказать свои знания, так что да, делай разные проекты, гугли задачи на собеседованиях, пытайся решать
Джавакджавакджавак
5:01 оговорочка, не "бинарными", а "байткодом"
там еще небольшая ошибка, не для каждого файла *.java, а для каждого класса, т.к. в одном файле *.java могут храниться несколько классов
P.S. файл с байткодом является бинарным =)
@@НиколайПрокопьев-и8у сам файл бинарный, но он говорит "...с бинарными кодами, которые будут выполняться JVM",
но выполняется байт-код
@@user-xl2tf4gq1g вот ты зануда
"Потому что если компилятор ещё мог за вас проверить на правильность программы, то извините, зачем бы вы нужны были как программист?". Про ФП слышал?
Да, Серёга очень архаичный парень. Легаси-пацан.
А! у вас ФП проверяет программу на правильность того, что он делает? Ну-ну
Маслобойку Дяди Боба читали? А ведь это про вас
@@SergeyNemchinskiy , если кратко - умные "ФПшные" компиляторы это и делают. Даже банальный паттерн матчинг не скомпилируется без обработки всех кейсов (и будет работать эффективнее обычных тернарников с информацией о типах). Языки с F-системой типов позволяют без аннотирования типов (как в Яве) выводить возвращаемые типы результатов функций, и обеспечивать глобальный вывод типа - "Не позволит программе сбиться с пути истинного", как писал один великий учёный. И это промышленное ФП. Последняя Ява только пытается с потугами в локальный вывод (отстаёт на десяток лет). Вы варитесь 20 лет в Яве и это не позволяет вам быть в курсе настоящих достижений CS.
Сергей, почитайте Бенжамина Пирса "Языки и Типы" пока не поздно. Или, что для Энтерпрайза актуальнее (DDD), посмотрите "Scott Wlachin Domain Modeling made functional".
@@БарометрАтмосферный Одерски не объяснил бы лучше)
@@serhiiriznychenko4108 , Мартин, как известно - имплицит-пацан)
И ни слова про линковку написанного на Си...
Джавак это часть виртуальной машины джава или как?
Часть jdk
читается это "джава си" :) Сразу видно, юникса в глаза не видели :)
@@SergeyNemchinskiy все верно, даже понятий о юниксе особых нет)) а "джавак" это шутка была) спасибо
@@valentinkhomutenko6308 спасибо за ответ, Валентин
Джава быстрее компмлируется?? Ага ага. Дичь
Спасибо!