В мене через особливості корпоративного ноута JDK встановлена в "C:\Program Files\Windows Portable\Java\jdk-21". Я шлях в PATH прописав і поки жодного разу не зустрічався з проблемами.
Уточнення стосовно відповіді на коментар про динамічну і статичну типізацію. Ключове слово "var" не відноситься до динамічної типізації то "синтакстичний сахар" і тип змінної встановлюється на етапі компіляції, принаймні так у C#. До динамічної типізації відноситься інше ключове слово "dynamic", і в змінну цього типу ви можете спочатку вказати об'єкт одного типу , а потім іншого і компілятор таке пропустить. PS не одразу зрозумів що ваше "стрічка" це "строка" тобто "рядок"
Поясню за свій коментар, я дещо інше мав на увазі. Якщо на якомусь PHP функція у своєму "контракту" каже, що вона може приймати string|int, або на TS string|[]string - ок, нехай. Але там йшла мова про те, що функція за своєю логікою має приймати string, але це мова взагалі без типів, в контракту нічого не має й тому пишуть тест на те як ця функція буде працювати, якщо їй передати number, якийсь об'єкт або null. Половина цих тестів мабуть тестує чи коректно ця функція впаде й яке виключення вона викине. Фейспалм тому що замість того, щоб вказати декілька літер як тип пишуть декілька строк коду для тесту. Або всередині функції починають перевіряти, чи може бути якийсь аргумент числом, бо інакше - помилка. Й називають це "мовами для простої та швидкої розробки". Про складність системи. Також не згадаю хто так казав, але "Думати про архітектуру треба якщо у вас довгостроковий проект, над яким ви будете працювати близько тижня або навіть більше". Тут також. Якщо JS має при натисканні на елемент перевірити, чи є в цього елемента css клас та або додати його, або прибрати чи якщо ваш PHP має переводити кілометри в милі та навпаки із значень, взятих з форми, тобто кількість коду - ну не більше 100 строк на УВЕСЬ проект, умовно такий веб початку 00-х років, коли ці мови й проектувались то можно мабуть без типів, але якщо проект містить більше 100 строк коду - то пишіть вже нормально. Також якщо дивитись на це питання з точки зори досвіду розробники: у таких сучасних мовах як Rust та Go необхідно вказувати типи лише у "зовнішніх" контрактах, тобто сігнатурах функцій, полях структур, константах. Локальні змінні здебільшого виводяться автоматично (компілятор Го тупий, тому там частіше треба вказувати тип, компілятор Раст навпаки занадто розумний...).
Щодо Джави і СіШарпа. На якому з цих напрямків менше потрібен Ангуляр і взагалі знання ДжаваСкріпта і Тайпскріпта? Чи можна джуну в інтерпрайзі обійтися без цих знань?
12:33 на правах вбросу, ось деякий код : fn main() { let a = 10; // Жодних типів let b = 20; let c = a + b; println!("{a} {b} {c}"); // 10 20 30 let c = "Раніше `c` була числом, а тепер це строка"; println!("{a} {b} {c}"); // 10 20 Раніше `c` була числом, а тепер це строка } "Динамічний" Rust xD
Стоп... 4:30 - трохи не зрозумів, якщо від 8 до 23 майже нема різниці, то чому на встановлювати 23-тю відразу, а якусь там на реліз-два меньшу? Тобто якщо нема різниці між 23 та 21 то чому автор не радить ставити 23?
На рахунок відмінностей між 8 java і новими... Сергію, ви що? В java 9 додались модулі, змінене групування пакетів. Це серйозна зміна. Та ще купа усього іншого.
Дякую за корисне відео. Я Python розробник, але нещодавно знадобилось встановити Java 8 для сторонніх програм)
Між Java 21 та Java 8 таки є багато важливих змін)
Ну для початківців 8 версії з головою буде достатньо, їм краще про це не думати на даному етапі, і так буде купа інформації
дякую за відео, вподобайка та й коментар для популяризації контенту
Допомагаймо ЗСУ!
Дякую 😊
В мене через особливості корпоративного ноута JDK встановлена в "C:\Program Files\Windows Portable\Java\jdk-21". Я шлях в PATH прописав і поки жодного разу не зустрічався з проблемами.
Вже декілька разів проходжу цей шлях встановлення 😅
Уточнення стосовно відповіді на коментар про динамічну і статичну типізацію. Ключове слово "var" не відноситься до динамічної типізації то "синтакстичний сахар" і тип змінної встановлюється на етапі компіляції, принаймні так у C#. До динамічної типізації відноситься інше ключове слово "dynamic", і в змінну цього типу ви можете спочатку вказати об'єкт одного типу , а потім іншого і компілятор таке пропустить.
PS не одразу зрозумів що ваше "стрічка" це "строка" тобто "рядок"
Поясню за свій коментар, я дещо інше мав на увазі. Якщо на якомусь PHP функція у своєму "контракту" каже, що вона може приймати string|int, або на TS string|[]string - ок, нехай. Але там йшла мова про те, що функція за своєю логікою має приймати string, але це мова взагалі без типів, в контракту нічого не має й тому пишуть тест на те як ця функція буде працювати, якщо їй передати number, якийсь об'єкт або null. Половина цих тестів мабуть тестує чи коректно ця функція впаде й яке виключення вона викине. Фейспалм тому що замість того, щоб вказати декілька літер як тип пишуть декілька строк коду для тесту. Або всередині функції починають перевіряти, чи може бути якийсь аргумент числом, бо інакше - помилка. Й називають це "мовами для простої та швидкої розробки".
Про складність системи. Також не згадаю хто так казав, але "Думати про архітектуру треба якщо у вас довгостроковий проект, над яким ви будете працювати близько тижня або навіть більше". Тут також. Якщо JS має при натисканні на елемент перевірити, чи є в цього елемента css клас та або додати його, або прибрати чи якщо ваш PHP має переводити кілометри в милі та навпаки із значень, взятих з форми, тобто кількість коду - ну не більше 100 строк на УВЕСЬ проект, умовно такий веб початку 00-х років, коли ці мови й проектувались то можно мабуть без типів, але якщо проект містить більше 100 строк коду - то пишіть вже нормально.
Також якщо дивитись на це питання з точки зори досвіду розробники: у таких сучасних мовах як Rust та Go необхідно вказувати типи лише у "зовнішніх" контрактах, тобто сігнатурах функцій, полях структур, константах. Локальні змінні здебільшого виводяться автоматично (компілятор Го тупий, тому там частіше треба вказувати тип, компілятор Раст навпаки занадто розумний...).
Щодо Джави і СіШарпа. На якому з цих напрямків менше потрібен Ангуляр і взагалі знання ДжаваСкріпта і Тайпскріпта? Чи можна джуну в інтерпрайзі обійтися без цих знань?
Як пропатчити KDE2 під FreeBSD?
Я не програміст, але дивлюся це відео, щоб знайти пояснення тому, чому старі версії майнкрафту(Beta) вилітають у мене, а нові ні.
😁
1:26 , вогнеЛис, воггеЛис, бвльше не броузер???
12:33 на правах вбросу, ось деякий код :
fn main() {
let a = 10; // Жодних типів
let b = 20;
let c = a + b;
println!("{a} {b} {c}"); // 10 20 30
let c = "Раніше `c` була числом, а тепер це строка";
println!("{a} {b} {c}"); // 10 20 Раніше `c` була числом, а тепер це строка
}
"Динамічний" Rust xD
Стоп... 4:30 - трохи не зрозумів, якщо від 8 до 23 майже нема різниці, то чому на встановлювати 23-тю відразу, а якусь там на реліз-два меньшу? Тобто якщо нема різниці між 23 та 21 то чому автор не радить ставити 23?
В c++ немає var, зате є auto)
На рахунок відмінностей між 8 java і новими... Сергію, ви що? В java 9 додались модулі, змінене групування пакетів. Це серйозна зміна. Та ще купа усього іншого.
12:30 кстати да. Objective-C динамический язык, а swift статический, хотя оба языка со статической типизацией
12:59 В смысле, ждешь когда var в C++ добавят? auto же. Еще в 11-ом стандарте добавили. Работает так же как var в C#
1:24 я знаю почему ты оперу выбираешь :-) Там есть режим для сжатия траффика чтобы на Dial-Up быстрее работало 😂