@@Vlad_a450 я считаю что перегружать ненужно даже стилями и лишним js - на выходе килобайты, но только те о которых я вкурсе и уверен)) чтотамктотам я код читать не буду - у безпонтовой либы 200+папок для понта и ни один файл не используется - сосите жопу продажники ларавеля - меньше но качественней. я даже плагины вп видел где картинка на 60метров))
Скажу как есть. Разрабатываю на PHP и Laravel, включая крупные проекты. Очень нравится! За несколько лет НЕ пожалел ни разу. На Laravel писать вообще одно удовольствие, экосистема близка к идеальной, а работы хватает с головой - приходится отказываться от проектов... В сумме зарабатываю больше 5k$, так что PHP, как говорится, кормит. Рекомендую!
@@tigrpoehal1836 вирішив перейти з Yii2 на Laravel і зробити пет проект? Ти що ніде не працюєш? Так просто знайди роботу на тому, що знаєш, замість даремного вбивання часу.
пожамкал фреймворки - не понравилось что запросы типа построй меню с подкатерориями будут драконить бд не 1-2 запроса а более. я очень критичен и в кол-ве строк тоже. пишу на нативном и хендмейд с опытом 15+ лет столько не зарабатываю( ни с кем не работал - фриланшу 24/7 - дайте совет
Пыху предрекают смерть минимум последних 10 лет. А он всё также живее всех живых. И все также очень много Бэка на пыхе. Нормальный язык с большим количеством вакансий на территории Украины и других стран. З.П. на пыхе не лям, конечно, но выше чем у большинства офисников и менеджеров. ПыХ живее всех живых!
@@john1989666 нова версія php + фреймворки типу Laravel дали йому друге дихання:)) Ну і не забуваємо про Wordpress, на якому накліпали стільки сайтів, що мама мія і з часом треба їх або фіксати, або переписувати. І якщо переписувати, то також вибирають PHP:)
@@DiabloSat_offнавіщо нода для малого і середнього бізнесу? Я ось ноду пишу і коли побачив скільки всього з коробки є у пихи, не розумію реально. На ноді все недоразвито, треба мільйон ліб щоб написати щось просте.
спс. Не понимаю людей которые хейтят пхп , уже 15 лет рублю бабло на нем и вообще проблемы не вижу. А по поводу стрелок, я на пхп перешёл из С++ и поэтом он как родное
Да -> это странно, вместо точки. 😊 Зато знак $, очень хорошо помогает с первого взгляда обнаружить переменные в коде. Облегчает понимание, когда нет перед переменной "примитивных" типов.
А стрелочки имхо позволяют быстро понять, что мы имеем дело с объектом, так же быстро понять, где имя переменной с объектом, где название свойства или метода, а где еще вложенное свойство или метод какой-то. С точками иногда приходится всматриваться, если длинные названия у свойств и методов.
Знак доллара конечно же помогает увидеть переменную сразу, но это какой-то сомнительньій плюс. С тем же успехом в плюсьі можно записать джавовские варьі, подсвечивающиеся в редакторе. Поле и бєз того будет сразу видно по код стайлу
Знак бакса хорошо показывает где переменная, а где что-либо ещё, например константа. Стрелочка для объектов тоже очень крутая вещь так как легко опять же видно. Да и точка уже занята под ещё более крутую вещь - конкатенация строк. В других языка есть путаница что сделает знак "+", в ПХП сразу понятно что если стоит плюс, то конвертируются строки в числа, а с точкой всё наоборот в строки, тогда как JavaScript, который хоть и не типизированный, но будет создавать проблемы если самому не следить за типами, а пайтон так и вовсе будет выдавать ошибки. Так что PHP очень грамотно сделанный язык.
я, являясь незрячим недопрограммистом, использующим программу чтения с экрана, кодил грязно, без форматирования. писал на autoit и специальном незряченском игровом движке BGT. когда я влез в питон, как раз таки он и научил меня делать отступы во всех языках, на которых я немного писал после змеи. аа, ну и vscode, который кстати очень хорошо работает с программами чтения с экрана, тоже отступы помогал делать. В настройках программ, читающих экран для незрячих, есть пункт «озвучивание отступов».
На счет строгой типизации у php7.4+ есть такая возможность указывать типы данных, почему-то Сергей об этом никогда не упоминает, а вспоминает давно богом забытый php3/4/5 , которые уже никто не юзает
@@trial_bot вы не поняли идею указания типов. В ПХП человек делает это для себя чтобы IDE и сам язык подсказывал программисту что возвращает метод например, а язык остается динамически типизированным. Таким образом ПХП упрощает написание программ и позволяет использовать преимущества типов не налагая обязанностей, они появляются только если ты этого сам хочешь.
@@xezdx в отличие от питона, в котором, да, типы - это чисто подсказка для других программистов и для IDE, в PHP если вы указали, что функция принимает аргумент класса A, то если вы подсуните ему объект класса B, то PHP выдаст исключение (TypeException - если мне не изменяет память). А в python хоть что укажите, он всё равно примет.
@@liravesnovaya242 Так в этом и вся соль. Проблема нетипизированных языков в том, что компилятор не знает что там должно быть и не может проверить. Но для надежности если программист указал, то это нужно проверять и выдавать ошибку для быстрой отладки FAIL FAST, а если ошибка просто съедается, то эта фича уже бесполезна, с тем же успехом можно комментарии над каждой функцией писать, они хотя бы в подсказках выводятся. Вообще пайтон смешной язык, он наступил на все грабли какие только можно.
На последних версиях PHP можно писать практически такой же типизированный код, как в Typescript. Ещё буквально немного, и все будет "идеально" Единственный недостаток PHP для меня - это отсутствие встроенной асинхронности и опасность создания долгоживущих процессов. Поэтому совет: учите PHP для основной части проекта, а когда вам понадобится что-то асинхронное или долгоживущее, изучите Go, и используйте его в связке с вашим PHP проектом.
а вы точно реально работали с типами в Typescript, а не просто видели их издалека? потому что типам php до типов Typescript - как до луны. их даже сравнивать нельзя.
@@buldezir Есть одно малюсенькое НО. Типы PHP работают в рантайме. А Typescript - это-ж фактически просто продвинутый линтер, ничего более. Его подводные камни, которые JavaScript всегда готов нам подставить, намного опаснее, чем менее формализованная типизация в PHP
@@buldezir Я скажу так: иногда с системой типов Typescript приходится сражаться. И не иногда, а очень часто. Это просто неприятно, и не приносит такого уж большого бенефита. На PHP проще это всё написать, при этом безопасность кода практически на таком же уровне. И если в PHP завезут буквально пару фич, то о для меня это будет идеальным вариантом
Защита дипломов: - Тема работы "Разработка интернет магазина унитазов на php" - Не подходит, примитивно, уберите php, добавьте архитектуры - Ок, "Разработка интернет магазина услуг архитекторов ПО" - Вот! Другое дело
@@ApelsinovIvan Признаю, писал на php ну даже года 3 и достаточно профессионально умею, даже не забыл, потому, что мне на ревью приносят все время студенты и по работе. Язык как язык, когда-то был босяцким, а теперь повзрослел, оброс культурой, я бы даже сказал, что сообщество у него более культурное, чем у многих современных и модных языков.
Отраслевой стандарт - это Symfony. А Laravel - это стандарт для формошлёпства) Ну и да, джанго и рельсам до Laravel как до луны, если мы про функционал. Ну и далее про симфу тоже дичь. Доктрина - это ни разу не часть Symfony. А то что есть пакет/бандл для её интеграции не делает это одним и тем же. Это примерно как сказать, что хибернейт часть спринга. Или TypeORM часть метеора или ангулара. Ну и про пых тоже, странно в 2023ем называть пых, у которого ещё более 5ти лет назад появилась опция строгой статической контрактной типизации называть языком с динамической))) Он по части строгости, при желании, уделывает ту же жабу в пух и прах, благо в нём и алгебраические типы есть и T означает T, а не null или Object (привет NPE!). И это мы про стат. анализ ещё не начали говорить, где можно указать типы, вида "не пустая строка в нижнем регистре". Короче, начало для новичков - это понятно. А дальше уже отсебятина, которая основана лишь на предположениях и домыслах. Видно что Сергей давно отстал от трендов и оценивает язык по версии 5-10 летней давности. P.S. Ещё отдельно хочу придраться к тому, что автор даже поленился чуть-чуть подумать на тему причинно-следственных связей. Например, если вместо стрелочек будут точки, то на что менять оператор статического доступа к методу? Там тоже два символа. Или на что менять тогда оператор конкатенации? На плюсик как в JS? Чтобы от перемены мест слагаемых сумма менялась?) Не, понятно что автор как угодно может говорить: "нравится" или "не нравится". Но как бы тут претензия к попытке объективного суждения, а фактически неоспоримые плюсы языка преподносятся как минусы, что звучит откровенно глупо и на уровне какого-нибудь Хауди-Хо. Уж сорян. P.P.S. Ну и наброс на джаву: В PHP есть кооперативная многозадачность из коробки, а в Java через костыли и Project Loom. В PHP есть алгебраические типы, поддерживающие LSP. В Java её можно добиться, взяв Ceylon или Scala (т.е. взяв любой другой язык, кроме Java, kekw). В PHP есть пакетеный менеджер, решающий все возможные конфликты версий. В Java придётся пройти 10 кругов ада, чтобы подружить две разные версии одного вендора так, чтобы проект заработал (ибо один вендор требует одну версию, а другой - другую. Это частое явление). В PHP зависимости опциональные и можно реализовывать фектори, основывающиеся на опциональных контрактах/интерфейсах, а в Java будь добр захардкодить зависимость в classmap. В PHP за счёт метапрограммироования и интроспекции языка можно в пол пинка реализовать high-order messaging и прочие функциональные штуки (каррирование, частичное применение), а в Java или байт-код патчить (здравствуй Lombok) или никак (ибо рефлексия - максимум что доступно). В PHP можно инлайнить сишный код (или даже LLVM IR), а в Java будь добр собери отдельную обвязку для JNI. Ну и т.д., так можно долго очень)))
В университете Европы, где я обучаюсь, лектор посоветовал взять Laravel на курсовую, сказал, что эти пару лет хорошо его нам выучить будет, отрихтовать, причем да, обмолвил, что за пару лет там все вдоль и поперек можно выучить, а потом уже что то новое узнавать по мере выхода версий, и работу есть большой шанс найти, ибо здесь маленький городок, и то, присутствует компания, которая пишет интернет магазины на Ларе, в неё можно будет пойти на практику даже, насколько я знаю. Спасибо за ролик, он еще немного, но подтолкнул меня к изучению Пхп.
Главное в этой жизни найти того, кто будет вас любить так же сильно, как Сергей Немчинский любит Python, если вы понимаете о чем я))) Более часто упоминаемого языка на этом канале, наверно, нет))
Сергей у Laravel тоже есть ORM, называется Eloquent и половинна кишков под капотом Laravel от Symphony собственно. Я PHP разработчик, начинал с Udemy и Laravel, с ним и остался. Сейчас работаю в компании юзающей два языка и да - согласен, Ruby это боль для тех ктол не привык, ео если начнешь привыкать - поймешь его прелесть. Да не читаем с ходу, но зато там столько конвенций, делающих код стандартным во всех приложениях. Что мне не нравится в Rails и почему я не очень хочу с ним продолжать а дпльше идти по PHP - слишком высокоуровневый фреймворк. Все что происходит оно не очевидно и для новичка пришедшего из Laravel кажется магией. Да, ничего не читается и непонятно куда что уходит. Но тут надо сесть и изучить, прям конкретно. Rails это такая тема в которой нужно знать конкретно RUby и конкретно Rails. Нельзя прийти с C# с 10 летним опытом и за день понять Rails не читая с нуля доки. Спасибо за видео! Всем любовь и мирного неба над головой.
2:20 - Насчёт операторов адрессации "." и "->". В С++ есть и то, и другое. "." - это когда объект (структура) статические, а "->" - когда динамические.
Сергей, вы упомянули, что у Symfony есть своя ORM, но Laravel тоже пользует ORM - Eloquent. В чем же преимущество Symfony'ского варианта если вы его отдельно выделили?
Тут стоит смотреть в сторону холивара "ActiveRecord vs Data Mapper". Плюс доктрине, которая в симфе, симфа то не особо и нужна - оно и само умеет быть отдельным ORM. Например перелазя с yii2 с ее AR на симфу я с доктрины поначалу очень сильно плевался, не понимая какого черта у меня запросы отдельно, данные отдельно, а как это всё поженить вообще непонятно и почему я в entity не могу сервис заинжектить. Потом поумнел - попустило :)
@@GenaTolstij Учитывая, что я новичок - про "ActiveRecord vs Data Mapper" и доктрину я не шарю - поэтому приму так, что для симфы в принципе ORM не нужна, так как он сам ORM, а свой ORM лучше встроенного😁
@@GenaTolstij Доктрина сама і є окремою ОРМ, вона була ще до появи другої Сімфоні. Насправді з Сімфоні можна використовувати будь яку ОРМ, навіть той самий Елокуент, якщо є бажання.
@@sani4051992 не робіть помилкових висновків, бо з часом вони у вашій свідомості закарбуються як "істина" і буде дуже важко їх позбутися, а заважатимуть вони дуже сильно. Просто розберіться що це за патерни актив рекорд та дата мапер. Почитайте Фаулера, він роз'яснює.
Є таке питання: хочу зробити веб сайт з базою даних яка в майбутньому може мати терабайти. має бути все швидко і наватаження в майбутньому може бути сотні мільйонів користувачів в місяць. Також сайт має бути синхронізований з додатками для айфон та андроід! Підкажіть будь ласка які технології мені вибрати?
Обращение к методам/свойствам объекта через стрелку не является чем-то необычным для си-подобных языков. В тех же С++ и Perl тоже используется стрелка в ООП, а в С - для обращения к полям структуры. Так что стрелка в PHP - это тоже скорее всего влияние Perl'a.
10:40 Пишу на Python около 3 лет. Никакой разницы с фигурными скобками не замечал , всё равно абсолютно во всех языках принято делать отступы после начала нового блока кода, ведь его тогда легче читать. Объясните, кто как понимает, будет интересно почитать
@@woodzimierz9621 пробіл видно очима одразу, бо весь код здвинутий вбік. Фігурну дужку на відміну від цього можна і не помітити одразу. Це скоріше питання смаку, але ніяк не проблема мови програмування
Для мене правильні пробіли краще ніж фігурні дужки. Два зайці одним пострілом: і правилне форматування і відсутність зайвих символів (фігурних дужок). Так само як відсутність стрілки краще ніж її наявність...відсутність фігурних дужок краще ніж їх наявність. Це ще можна назвати "вкусовщина", але точно не мінус як говорить Пан Сергій в кожному відео)
@@VladKochetov Насправді? Не завжди. Я на пайтоні писав доволі складні застосунки, тому кажу зі свого досвіду, якщо велика кількість рядків коду, а зсув відбувся вище за межами екрану, то це та ще веселуха шукати його.
На счёт динамической типизации - на php она включена по умолчаю, но по желанию легко включается строгая типизация, так что к минусам этот факт относить нельзя. Ну и я уже не помню, когда последний раз встречал проекты, где бы использовали динамическую типизацию
Работаю в банке, работал еще в 2х финтехах. На пхп. Интеграция с другими платежными системами, с кучей внешних систем и так далее. Дохрена всего. Больше всего работаю с симфони. Это порт джавовского спринга) А еще в современном пхп всё отлично поддерживается и есть супер строгая нулобезопасная типизация. К тому же она еще и статичная получается с версии 7.4. А с 8 версии вообще есть енамы.
Сергію, дивлюсь вас вже кілька років, і от маю цікаве як для мене питання. А чому ви ніколи не говорите про мову програмування VisualBasic? Не в тренді чи як? Прошу надати відповідь. Дякую
Как программист с 10 летним стажем у web разработке php использую в 90% случаях, остальные node.js если нужна асинхронность, самый простой пример это чаты, или например нужно выдавать результат во время работы скрипта, например выгружаешь огромный файл, и ты выдаёшь % обработки, и да, на php тоже можно такое, но node подходит гораздо лучше.
Вы что же используете те же инструменты что и 10 лет назад? Веб разработка уже давно на 90% какой нибудь javascript фреймворк типа react или vue, остальное это апи и бекенд и совсем необязательно на php.
Небольшой плюс от $ в начале переменной - это явно различает что это переменная, а не константа. Ну и можно реализовать конструкции вроде динамического объявления или обращения к переменным $a = 'var'; $var = 1; print $$a; выведет 1, не лучшая практика, но как элемент в какой-нибудь хитровложенной рекурсивной функции вполне помогает. А адресация точками или стрелочками это чистая вкусовщина на основе привычки, лично мне наоборот привычнее поставить стрелочку, а, для избежания длинной стоки, каждую стрелочку делать с новой строки вроде $object->getSubObject() ->getSubObjectProperty() ->getValue() Ну и стандарты с возможностью установить строгую типизацию тоже язык сильно улучшило Если раньше прокатывала конструкция вида public function do_something($input) { ... ... ... return true; } То сейчас такое на любом ревью завернут на переоформление в вид public function doSomething(string $input): bool { ... ... ... return true; } как результат, попытка передать что-то кроме строки, выдаст ошибку, как и возвращение чего-то кроме true/false
: bool ну и шляпа - я понимаю что это комуто нужно и я рос в php с того века - а зачем???? приведи типизацию переменной если нужно. не помню чтоб у меня был баг - возможно я слишком медленно пишу)
В PHP8 динамическая типизация уже не очень динамическая, все гораздо строже. PHP начиная с 7 версии все больше движется к строгой типизации и думаю в версии 9/10 уже мало чем будет отличаться от того же Java
@@super0leg вообще не скоро (а может даже и никогда из-за особенностей внутренних реализаций), ибо нет возможности типизировать списки и прочие вещи, generic-и туда же, локальные переменные. Приходится пользоваться аннотациями + статический анализатор. Хоть и на текущий момент везде использую строгую типизацию, но не стоит забывать что это накладывает небольшой оверхед в рантайме, ибо нам в рантайме всегда приходится проверять корректность типов переменных.
4:47 очень странный совет, вы думаете что вы вообще говорите? Абсолютно с вами не согласен, вы продвигаете неправильные идеи. Я хочу и буду писать windows приложения и на php, и на JS и не буду это делать на C# потому что мне нужно сделать маленькое приложение здесь и сейчас, быстро его зарелизить чтобы сотрудники моей компании в течении недели могли открыть приложение, просто ткнуть пару кнопок и получить результат. На C# я буду писать приложение до китайской пасхи, а продажи происходят прям в текущую минуту.
Теперь мне понятно, почему, когда я пыталась учить Руби в качестве первого языка, я не поняла ни фига (и бросила) и почему теперь, когда я изучаю PHP, мне все понятно и в кайф.:)
Они оба, по сути, отраслевые стандарты. Симфа в проектах посерьёзнее, ларка - где проще. Главные их конкуренты, zend и yii соответственно, немного упокоились с миром :(
Кстати, C-подобная конструкция $a.='bla-bla-bla'; там тоже работает. И в JS тоже (с поправкой на синтаксис) Сам пользуюсь, но ни разу подобного в примерах не видел.
Враховуючи початкову концепцію відсутності типізації воно має сенс, '1' . '1' = '11', '1' + '1' = '2', хоча я не впевнен, що воно так спрацює, но крапка як окремий оператор краще, коли ти не знаешь, якого типу в тебе змінні.
Коли ви говорили про фреймворки я дуже сподівалася що ви згадаєте Zend Framework А на нових версіях пхп можна писати використовуючи строгу типізацію :) Коли її почали завозити - мені пхп почав більше подобатися.
Так він давно вже не Zend Framework, а Laminas. Я трохи використовував Zend 1.5, важкуватий, але мені він подобався, особливо робота з формами. У 2021 спробував АРІ Tools з Laminas скористатися, але, на жаль, не вийшло. На етапі встановлення вивалило купу несумісності пакунків, я подовбався з годину і кинув.
Почему пхп плохо, ответ профессионала: существует несколько часто упоминаемых фреймворков: Zend, Laravel, Symfony, Yii, CakePhp, CodeIgniter Ещё есть какие-то другие фреймворки, типа всякие ответвления от них. Есть легаси-фреймворки, самописы, есть Битрикс, который занимает долю рынка. И в каждой вакансии эти фреймворки упоминаются в рамдомном порядке. Это не считая разнящихся требований по всяким базам и кэшам. Это не считая каких-то «весомых» библиотек, типа JSON-API, SWAGGER и тп, которые по своим мануалам сопоставимы с мануалами по самим фреймворкам. Хоть подходы в фреймворках и совпадают, это не отменяет факта, что тебе в любом случае нужно будет помимо работы всегда держать под рукой открытую документацию, а задачи выходящие за рамки документации - это ещё та песня, когда ты лезешь в кишки этих решений и смотришь, как натянуть сову на глобус. В итоге работа по этому направлению сопряжена с постоянной мозгодрочью и нервяком, а компетенция не растет, ибо подобное распыление на всякие мелочи в итоге не даёт никакого весомого профита в проф плане.
@@baldislavep00pczynski68 в пхп точно не лезть. Дерьмовый стек, а на собеседовании на тебя смотрят на говно даже с 10+ годами опыта. Я бы вообще посоветовал в программирование не лезть вообще. Неоправданно раскрученная херня инфоцыганства про чудесные истории успеха.
пишите код для себя, для души, на выбранном одном фреймворке - и не надо будет париться со всякими легаси, чужими самописами и прочей радномной ерундой ))
@@TREVOGA Полностью согласен, что программирование сегодня тема не для денег. Работа руками или ногами приносит денег зачастую не меньше, думает сегодня ИИ. Если только для себя, вордпресс поковырять то пыха незаменима.
Объясни плиз как ты заюзаешь Websocket Secure WSS на PHP? это была моя основная причины выброса в мусорку пхп, что я не нашел ответа на этот вопрос быстро и легко
Писал 5 лет на пхп. Приятный синтаксис, читабельный. Вменяемое ООП. Как первый язык - отлично. Не хватает дженериков и многопоточности (раз уж многие используют пхп в том числе для бэкенда).
Угу. Правда не стоит забывать, что если в PHP не хватает скорости или функционала, то всегда можно написать своё расширение на C++ :) Много лет назад тестировал эту фичу и остался доволен. Та же многопоточность вроде бы доступна через расширение 🤔
Спасибо, Немчинский. Благодаря тебе, у меня восстановился интерес к программированию, потому что в школе он был, но такой себе(из-за российского обучения), а сейчас он начинает восстанавливается. Объяснение хорошее, бех лишней воды. То, что нужно, чтобы заинтересовать людей.
Когда Бог писал код Вселенной, то сделал это на Java. И увидел Он, что это хорошо. Потом заметил скучающего, одинокого Адама и написал код для Евы на Perl-e. И ужаснулся Адам и с проклятиями убежал вглубь Эдемского сада, где написал на PHP pornhub. Нет уже ни Адама, ни Евы, а порнхаб есть. PHP - write once, run forever.
@@igoraleksandrovich1498 я разве написал что у них есть что то общее (постановка вопроса даже весьма странная, один фреймворк дргой просто язык)? Я про то, что одно может дополнить другое если требуется решить проблему н-р "бутылочного горлышка" в контексте производительности
Yii, к несчастью, был побежден и вытеснен ларавелем (прямой конкурент). У yii1 было одно существенное преимущество, с которым он лет 15 назад рвал всех - он был архибыстрым, быстрее всех других фреймворков, а значит мог или обслуживать больше клиентов на том же железе, или столько же клиентов, сколько та же симфа, но на железяке в 2 раза дешевле. Выигрывал он за счёт оптимизации автолоада, но потом пришел composer и это все стало неактуально. Ну а дальше вопрос комюнити, кому оно надо и т.д. По сути yii хоть и имеет американо-китайские корни, сейчас этот фреймворк жив разве что в СНГ. И то так себе жив - тройку так и не осилили.
@@woodzimierz9621 , смотря о какой версии мы говорим. В первой - да, но она делалась ещё в докомпозеровскую эпоху, а вот вторую построили куда ближе к современности. А тройку строят типа вообще современно, но что-то ее уже лет 7 пишут-пишут...
Доброго времени суток, друзья. У меня есть вопросик по поводу конспектирования материала. Какой примерно процент информации записывать. И все в этом роде только идентично с английским, заранее спасибо!!!!
@SergeyNemchinsiy Щодо Пайтона, нещодавно я пройшов невеличкий курс з пайтона, після 10 років програмування на PHP - я сидів і хапався за голову кожен раз коли треба граится відступами, коли нужно імпортувати купу бібліотек кожен раз коли тобі вони потрібні, коли бачив що всередині класу можна легко використати змінну яку визначили в клієнтському коді і ніяк не передавали всередину, коли "інкапсуляція" працює тільки для IDE, а за бажанням можна просто отримати доступ до чого завгодно всередині класу, коли немає нормальних ітераторів, а для того щоб зробити зручну ітерацію по даним треба попередньо "погратися" а щє дуже незручно коли область видимості функції об класу пересікається з областю видимості клієнтського коду через що можуть бути проблеми із однаковими іменами змінних !!!! ... Я згоден що з пайтоном можна в машин-лернінг, або у якийсь аналіз даних, але бляха-муха... після такого пафосного "Пайтон - супер-пупер мова програмування за допомогою якої можна робити шо завгодно, а щє закиди по типу принт можна зробити за один рядок коду, або переприсвоїти змінні одна одній теж за одну операцію" після занурення в пайтон в мене склалося стійке враження що мені на PHP багато чого робиться і працює набагато зручніше і пишеться коротше та швидше... Не знаю може я щє недостатньо занурився в бібліотеки та фреймворки, але на даному етапі я відчуваю що тупо втратив час та міг би вивчити за ці два місяці щось більш корисне. І як було приємно повернутися до фігурних дужок і крапки з комою і змінних із доларом :D
А вот такой вопрос 😃 Сергей в трасляциях при ответе на вопрос о зарплатах програмистов на разных языках отвечал что плюс минус одинаково. То есть если я правильно понимаю то JS и PHP программист будут зарабатывать схожие суммы?
Это странно, т.к. js и php идут рука об руку. Аналога js для динамики на сайте не существует. А php это серверный язык. Если ты про ноду, то пхп чувствует себя попроще т.к. не такая конкуренция и работы больше на пх.
Интересно, но нах политику разводить не понятно, он мог так же нмций танк изобразить с чёрным крестом в уголке, если говоришь о программировании, то и говори о нём, а не о своей оирентации
Що особисто мені не подобається у ПХП: - Погана можливість підставляти щось у строки. Можно підставити лише змінну: "bla bla {$this->foo}". Тут у JS/TS набагато краще: `bla bla bla ${any_expression}`. Можно підставляти константи, вирази тощо. - Нема дженериків. Були б хоча б типовані масиви. Є лише костиль PHPDoc, но то таке, ти описав, массив ЧОГО функція має отримати, написав док, а потім змінив код, а ДОК змінити забув. - Погане оголошення локальних змінних. Причому властивості класів можно оголосити нормально з типом. Ну так. це не є проблема, бо в нас функції до 100 строк, можно пойняти, але ні, це погано. Дайте мені ключеве слово для оголошення локальної змінної, дайте мені вказати її тип.
- "text" . (Any expression) . "Text"; Хотя лучше через sprintf в этом случае завернуть. - отучиться передавать в функции массивы и юзать коллекции и dto. - при объявлении переменной просто присвоить ей то, что в ней должно быть. Всё. Если вдруг в процессе переменная из массива станет строкой - Иде ругнет. Но вообще да, в простых переменных строгую типизацию можно бы и завезти.
@@GenaTolstij - "text" . (Any expression) . "text" - ну зрозуміло, але треба слідкувати, якими лапками ті відкрив строку, наприклад якщо раніше використовувалась підстановка змінної, я маю на указі "bla bla {$foo} bla " . (MyClass::CONST) . ' bla bla'. Й не так зручно контролювати пробіли перед або після виразу. Це просто відсутність приємного цукру. - це фактично відмовитись від масивів. Навіть якщо забути про швидкодію, ну щоб передати масив строк городити якусь сутність ну таке собі. - й типізацію й оголошення: $foo = 1; // ... $foo = 2; // ... func($foo); Планую передати 1, бо насправді код мав бути таким: let foo: number = 1; // ... let foo: number = 2; // помилка одразу // func(foo);
@@adicthreex3530 , смотри - По поводу кавычек :) У меня это уже до автоматизма доведено :) Я двойные в коде не использую никогда. Хотя, справедливости ради, "bla bla bla $foo blablabla" подставит значение переменной, а вот 'bla bla bla $foo blablabla' выведет строку в неизменном виде. В ПХП одинарные, двойные кавычки это разные кавычки. Но лично я предпочитаю конкатинацию, как просто универсальное решение, иногда sprintf, но его люблю, честно, меньше. - в пхп нет всех этих let, var, const и прочей ерунды и, как по мне, это очень правильно. зачем? переменная сетапится первым же присвоением в неё значения, если ты обратился к несуществующей переменной - получаешь notice. И не надо следить инициализирована переменная, или нет, перед присвоением ей значения. Тупо проще ИМХО. А вот если переменная в процессе работы поменяет свой тип - ИДЕшка, насколько помню, это подсветить должна и ругнуть. Но ели уж так хочешь указать строго тип: $i = (int)1; или $a = (string)'Ababa'; Пожалуйста. Это же можно делать при передаче переменной в функцию, то есть func((string)$a) и у тебя всегда приведёт к нужному типу, конечно если то, что во входящей переменной, так умеет. И опять же, пых это тебе не JS, когда 1+'1' может быть 2, а может быть 11 (я там не помню при каких условиях оно клеит, а при каких суммирует), в пыхе для конката используется точка, для сложения - плюс, всё, и никакой путаницы.
@@GenaTolstij const є. У більшості мов, у тому числі "дорослих", на яких пишуть щось велике є окрема інструкція оголошення змінної, та інструкція оголошення з можливим присвоюванням відрізняється від інструкції присвоювання. У PHP це одна інструкція й це погано. Наприклад: $counter = 9; for ($counter = 1; $counter < 4; $counter ++) {} var_dump($counter ); Ми у першій строчці оголосили змінну, а у другій у першому виразі циклу for, де "$counter = 1" - це ми намагаємося ввести нову змінну або присвоїти щось у стару? А що буде передано у var_dump? Просто якщо була б явна інструкція того, що ми у циклі оголошуємо змінну - ми б отримали миттєву помилку у час написання (теоретично, бо в мові може бути затемнення). Ну й VSCode нічого не каже про "$a = 0; $a = true;" бо це легальний синтаксіс.
PHP со временем становится очень похожим на Java. К сожалению на PHP сейчас пишутся не только сайты, но и целые Enterprise системы, но вот непонятно зачем.
@@ei2292 хороший вопрос, если у вас цель заниматься исключительно вебом то можно остановится на PHP, и ознакомится с такими фреймворка и как Symfony или Laravel. Если вы хотите именно освоить программирование в более широком смысле C# будет лучше. Хотя для начала может быть есть смысл посмотреть на Python. Какие у вас цели? Какого типа задачи вы бы хотели бы решать?
I am not ambidextrous. I do not enjoy static typing, and objects animate my mind's eye. But I have come to appreciate the fact that others illuminate their creativity with just as much intensity as I do mine, using functional programming constraints and explicitly spelled out types. As long as I never have to soil my Ruby with type hints or write all front-end code in TypeScript, I can so happily coexist with those who adore Go or can't stand JavaScript. Vive la différence!
Стрелочки вместо точек появились, потому что точки были уже заняты в конкатенации строк. На заре язык был настолько прост, что ООП в нём даже не планировалось.
ну на python-е не только веб фреймворки. я вроде где-то слышал, что python можно подключить к вебу и использовать print для вывода на вебсайт прям как echo в Пхп. но может и ошибаюсь.
Как разработчик PHP с 3-ех летним стажем скажу что PHP отлично подходит для e-commerce, но почему то всегда суют в interprise (банки, Авито и т.д.). Все бы ничего php отлично работает, кучу библиотек и можно смириться с отсутствием женериков и строгой типизации, ну или нет down и up кастов. Но что меня больше всего раздражает, это синхронщина. Это отлично работает, пока дело не дойдет до вебсокетов или задач в крон. В целом крон на laravel к примеру это кажется отдельный поток с do while , но на мой взгляд на яве асинхронщина сделана удобнее и понятнее. В целом если честно немного пожалел что начал свою карьеру с php а не с java, потому что с php тяжело уйти по причине того, что ЗП на php вроде бы как поменьше, но не настолько меньше чтобы учить java/c# и потом мучиться с синтаксисом, контролем переменных и структурами данных (в яве для объектов есть коллекци или hasMap ) в php массив по сути это HashMap как в яве и работает он одинаково стабильно и быстро что на числах, что на строках, что на объектах... Нет деревьев, но ни разу не видел чтобы хоть кто-то делал дерево в яве ... В общем , для старта топ язык так скажем. А еще плюс в том, что без работы Вы точно не останетесь
в ПХП много чего нет того что в Яве. Особенно, что касается ООП, оверлоады методов и конструкторов и т.п. Одно из больших преимуществ Явы, на мой взгляд, это компилятор. Но я все одно бросил Яву из-за её многословности.
А для каких задач нужен такой асинхрон, с которым не справится очередь в месенжере? Это не троллинг, реально интересно. Например у меня типичная задача "зарядить 50 писем на отправку", так я их просто пихаю в очередь, пользователю отдаю ответ "письма поставлены на отправку" и забыл о проблеме. Дальше уже крон или что другое как раз асинхронно эту задачу выполняет. А для чего ещё надо?
@@GenaTolstijмне кажется,что люди часто путают многозадачность во фронте где при загрузке страницы асинхрон ускоряет загрузку и в бекенде где многозадачность это просто очередь)
Ну типизации достаточно завезли в последних версиях PHP. Параметры, поля классов, результаты функции уже можно типизировать (а можно и не типизировать). Может и завезут в 9-ку типизацию переменных
Стоит ли идти в битрикс, чтобы получить первую работу и потом доучивать нормальные фреймворки - laravel/symphony/yii2 или лучше сразу учить фреймворки?
Синтаксис PHP как по мне прекрасен. Единственное печалит это то, что из коробки нет мультипоточности, да и в целом PHP намного медленнее того же GO, а так всё збс
Когда-то писали на Perl, потом PHP, сейчас Python - стилистика python с пробелами и табуляциями - на мой взгляд самая удобная, без лишнего. Но это вопрос вкусовщины. Что хорошего в php - это, как было сказано - можно писать сразу сайт на голом php, на пайтоне нужен минимум какой нибудь flask. Сильная сторона Пайтона - я вот десктоп приложение (с окошками) для Линукс пишу и сопровождаю уже много лет и он отлично справляется (pyqt)
потому что node js давно не поддерживают в том же темпе как php, python и ruby. Он уже перестал соответствовать новым реалиям рынка вэб-разработки, да на нём можно всё ещё написать годный проект, но зачем? если у конкурентов разработка такого же проекта оказывается быстрее, удобней и без костылей как в node.js. Раньше node держался из-за многопоточности, сейчас же когда php получил свои инструменты для многопоточности, node.js уже выглядит как пережиток прошлого.
@@TwELvE848Почему Node.js не соответствует новым реалиям разработки ? Для задач ввода/вывод очень даже хорошо подходит, есть вполне неплохие фреймворки тот же Nest (у нас он на проекте, код читается как книжка). Может в многопоточку с помощью Worker Threads
@@ГеоргійКоваленко-у8ф тут дело скорее именно в скорости разработки. С nodejs - все хорошо, но код еще быстрее можно написать на php/phyton/ruby, что для бизнеса - очень кретично и не всегда встает вопрос об эффективном и быстром исполнении кода как в nodejs, тк не каждый бизнес еще дорастает до таких нагрузок, а вот реально быстро выкатить мвп и затаскивать фичи - бизнесу оч надо здесь и сейчас
@@KobaltMetal Хм… А разве на Node.js (оно же JavaScript) так долго и сложно разрабатывать ? Язык с динамической типизацией, синтаксис С подобный, интерпритируемый, я б не сказал, что он прям сложный, но сравнивать с PHP, Python, Ruby я конечно не могу ибо опыта у меня с ними не было
@@80689248440 дэк, бро) чего там навидываться, если тот язык был для примитивных веб-сайтов и Вордпресса) Золотые времена) Самый понятный код, ну или я к шарпам привык, хз
А типа на 8 нельзя писать так же как на 5.6 :) Если очень захотеть, то на нем и как на 4 можно писать за редким исключением (либа мускула стала другой)
у меня другой вопрос к знатокам. на сколько актуальны сейчас perl и ruby и где они применяются? на изучение выбрал для себя java как наиболее актуальный и универсальный язык. на первый взгляд пока. не сказал бы что его учить сложно, наоборот. но из минусов отметил его вариативность во благо сокращения кода. например a=a+1 то же самое что a++. это вынуждает запоминать ещё что-то, хотя бы ради того что придётся читать чужой код. ну и есть другие примеры. претензии пока только к этому. по моим наблюдениям ещё не в тему. си шарп очень похож на джава, что в плюс, если хотим писать нативно под винду. наверняка есть специальные трансляторы, которые переводят код из джава в си в решётку или наоборот. виндой я не пользуюсь, но. расстроил монструозный синтаксис языка shell, который используется по умолчанию в линукс. для командной строки я бы предочёл интерпретатор на другом языке. опять таки. это дело вкуса. можно привыкнуть к синтаксису
Ох уж эти доллары=) Многие думают что доллары и стрелочки это что-то страшное, но я вас уверяю, несколько недель практики и вы их вообще перестанете замечать) Но вот читать другой язык, например яву, станет чуть сложнее) Так как $/this/static/self и т.п. помогают ориентироваться в коде быстрее. Также многие говорят о типизации, но уже давно можно обезопасить себя хинтами. Да, в PHP не хватает определенных структур данных, по типу коллекций и т.п. с коробки, это не удобно. Так как подобные штуки приходится писать самому. Но в контексте PHP, это как правило делается очень редко и для этого существуют сторонние библиотеки, интерфейсы от разработчика языка и т.п.
RUBY? А как насчет APL по читабельности? Кстати, такому почитатателю Python, почемы бы не просветить народ о Majo? Java, я же на эту цацку-песку от Sun Microsystem даже сертификат имею, экзамен сдал хотя нихрена никогда не работал. Но, индульгенция крутая, HR уважали всегда. Там такая бумага для вставляние в рамочку на стенке, со всеми ободками. :)
Стрелка это странно для С-подобного синтаксиса? Автор ролика видимо не знаком с Си. Именно стрелка это и есть С-подобный синтаксис доступа к данным, методам объекта через указатель. А указатель в Си это основной элемент программирования на Си :)
конструкторы сайтов я никогда не понимал. нужна маленькая страничка? за 5 мин на html css, js, php. нужна большая страница? тут конструктор не поможет. опять же выше упомянутые языки.
Ruby? Кто-то еще его использует в новых проектах? И зачем, если «да»? Смысла в PHP особо нет, его успешно вытесняют или уже вытеснили Node JS и Python. А для масштабных проектов используется Java
11:49 Боюсь нарваться на холивар, НО в кампуктере "символ и пробел" это как "мягкое и тёплое", если уж сильно охота то можете сказать что в питоне прозрачный символ, а в остальных непрозрачный символ... Не очень то уж гениально заменить один символ другим и назвать это ДРУГИМ языком программирования...
🦊 Обучение PHP с ментором в FoxmindEd - go.foxminded.ua/3PgJGer
К стати, есть интересный видос на ютубе, в котором "чистый" код противопоставлен "быстрому" коду. Может будет интересно разобрать! )
@@Vlad_a450 в п'ятницю вийде відео на схожу тематику
Зачем нужен лендингу CMS ?
В PHP есть строгая типизация.
@@Vlad_a450 я считаю что перегружать ненужно даже стилями и лишним js - на выходе килобайты, но только те о которых я вкурсе и уверен)) чтотамктотам я код читать не буду - у безпонтовой либы 200+папок для понта и ни один файл не используется - сосите жопу продажники ларавеля - меньше но качественней. я даже плагины вп видел где картинка на 60метров))
Знак $ напоминает PHP разработчику зачем он пишет код.
Мотивирует
я ещё он помогает сразу увидеть переменную)
поржал)
хорош
Скажу как есть. Разрабатываю на PHP и Laravel, включая крупные проекты. Очень нравится! За несколько лет НЕ пожалел ни разу. На Laravel писать вообще одно удовольствие, экосистема близка к идеальной, а работы хватает с головой - приходится отказываться от проектов... В сумме зарабатываю больше 5k$, так что PHP, как говорится, кормит. Рекомендую!
Поделись работой)
тоже решил перейти на laravel с Yii2, сделаю пет проект какой нибудь
Я тоже, когда фреймворки увидел - мое мнение сразу о нем изменилось
@@tigrpoehal1836 вирішив перейти з Yii2 на Laravel і зробити пет проект? Ти що ніде не працюєш? Так просто знайди роботу на тому, що знаєш, замість даремного вбивання часу.
пожамкал фреймворки - не понравилось что запросы типа построй меню с подкатерориями будут драконить бд не 1-2 запроса а более. я очень критичен и в кол-ве строк тоже. пишу на нативном и хендмейд с опытом 15+ лет столько не зарабатываю( ни с кем не работал - фриланшу 24/7 - дайте совет
Пыху предрекают смерть минимум последних 10 лет. А он всё также живее всех живых. И все также очень много Бэка на пыхе. Нормальный язык с большим количеством вакансий на территории Украины и других стран. З.П. на пыхе не лям, конечно, но выше чем у большинства офисников и менеджеров. ПыХ живее всех живых!
После появление 7 версии , к пыхе вернулась жизнь, сайты на новых версиях работают в два три раза быстрее
@@john1989666 , а сейчас уже восьмая версия и она ещё на порядок круче. ПыХ рулит.
@@john1989666 нова версія php + фреймворки типу Laravel дали йому друге дихання:)) Ну і не забуваємо про Wordpress, на якому накліпали стільки сайтів, що мама мія і з часом треба їх або фіксати, або переписувати. І якщо переписувати, то також вибирають PHP:)
Но сейчас чаще и чаще предпочитают при разработке node js.
@@DiabloSat_offнавіщо нода для малого і середнього бізнесу? Я ось ноду пишу і коли побачив скільки всього з коробки є у пихи, не розумію реально. На ноді все недоразвито, треба мільйон ліб щоб написати щось просте.
спс. Не понимаю людей которые хейтят пхп , уже 15 лет рублю бабло на нем и вообще проблемы не вижу. А по поводу стрелок, я на пхп перешёл из С++ и поэтом он как родное
я тоже не понимал и даже немного клал на этих людей с хабра))
Да -> это странно, вместо точки. 😊 Зато знак $, очень хорошо помогает с первого взгляда обнаружить переменные в коде.
Облегчает понимание, когда нет перед переменной "примитивных" типов.
А стрелочки имхо позволяют быстро понять, что мы имеем дело с объектом, так же быстро понять, где имя переменной с объектом, где название свойства или метода, а где еще вложенное свойство или метод какой-то. С точками иногда приходится всматриваться, если длинные названия у свойств и методов.
Стрелку с плюсов взяли. Подчеркивает, что объекты по ссылке хранятся
@@МихаилКрамер-н7ш после C#, не привычно ещё
@@МихаилКрамер-н7ш я думаю настоящая причина стрелочек в том, что точка уже зарезервирована конкатенацией была.
Знак доллара конечно же помогает увидеть переменную сразу, но это какой-то сомнительньій плюс. С тем же успехом в плюсьі можно записать джавовские варьі, подсвечивающиеся в редакторе. Поле и бєз того будет сразу видно по код стайлу
Знак бакса хорошо показывает где переменная, а где что-либо ещё, например константа. Стрелочка для объектов тоже очень крутая вещь так как легко опять же видно. Да и точка уже занята под ещё более крутую вещь - конкатенация строк. В других языка есть путаница что сделает знак "+", в ПХП сразу понятно что если стоит плюс, то конвертируются строки в числа, а с точкой всё наоборот в строки, тогда как JavaScript, который хоть и не типизированный, но будет создавать проблемы если самому не следить за типами, а пайтон так и вовсе будет выдавать ошибки. Так что PHP очень грамотно сделанный язык.
отдельный оператор для конкатенации это и правда удобно. В JS с этим бывают недоразумения
@ivanpetrov2435 с пхп7, особенно 8 уже всё для этого есть
абсолютно согласен)))
я, являясь незрячим недопрограммистом, использующим программу чтения с экрана, кодил грязно, без форматирования. писал на autoit и специальном незряченском игровом движке BGT.
когда я влез в питон, как раз таки он и научил меня делать отступы во всех языках, на которых я немного писал после змеи.
аа, ну и vscode, который кстати очень хорошо работает с программами чтения с экрана, тоже отступы помогал делать. В настройках программ, читающих экран для незрячих, есть пункт «озвучивание отступов».
Сергей, отличные мысли!!! И подача тоже. Ждем обзор на GO
На счет строгой типизации у php7.4+ есть такая возможность указывать типы данных, почему-то Сергей об этом никогда не упоминает, а вспоминает давно богом забытый php3/4/5 , которые уже никто не юзает
ну так и в питоне можно типы указывать, это всё ещё не делает язык не динамически типизируемым
@@trial_botв питоне интерпретатор игнорирует указывание этих типов, в пыхе же бросит исключение если ты ждешь string, а получаешь int
@@trial_bot вы не поняли идею указания типов. В ПХП человек делает это для себя чтобы IDE и сам язык подсказывал программисту что возвращает метод например, а язык остается динамически типизированным. Таким образом ПХП упрощает написание программ и позволяет использовать преимущества типов не налагая обязанностей, они появляются только если ты этого сам хочешь.
@@xezdx в отличие от питона, в котором, да, типы - это чисто подсказка для других программистов и для IDE, в PHP если вы указали, что функция принимает аргумент класса A, то если вы подсуните ему объект класса B, то PHP выдаст исключение (TypeException - если мне не изменяет память). А в python хоть что укажите, он всё равно примет.
@@liravesnovaya242 Так в этом и вся соль. Проблема нетипизированных языков в том, что компилятор не знает что там должно быть и не может проверить. Но для надежности если программист указал, то это нужно проверять и выдавать ошибку для быстрой отладки FAIL FAST, а если ошибка просто съедается, то эта фича уже бесполезна, с тем же успехом можно комментарии над каждой функцией писать, они хотя бы в подсказках выводятся.
Вообще пайтон смешной язык, он наступил на все грабли какие только можно.
На последних версиях PHP можно писать практически такой же типизированный код, как в Typescript. Ещё буквально немного, и все будет "идеально"
Единственный недостаток PHP для меня - это отсутствие встроенной асинхронности и опасность создания долгоживущих процессов.
Поэтому совет: учите PHP для основной части проекта, а когда вам понадобится что-то асинхронное или долгоживущее, изучите Go, и используйте его в связке с вашим PHP проектом.
а вы точно реально работали с типами в Typescript, а не просто видели их издалека?
потому что типам php до типов Typescript - как до луны. их даже сравнивать нельзя.
@@buldezir Есть одно малюсенькое НО. Типы PHP работают в рантайме. А Typescript - это-ж фактически просто продвинутый линтер, ничего более. Его подводные камни, которые JavaScript всегда готов нам подставить, намного опаснее, чем менее формализованная типизация в PHP
@@vitiok78 я согласен что ТС это линтер, но изначальный коммент и мой ответ был не про это.
@@buldezir Я скажу так: иногда с системой типов Typescript приходится сражаться. И не иногда, а очень часто. Это просто неприятно, и не приносит такого уж большого бенефита. На PHP проще это всё написать, при этом безопасность кода практически на таком же уровне. И если в PHP завезут буквально пару фич, то о для меня это будет идеальным вариантом
Интересно и убедительно! Благодарю вас! Больших успехов вам и всем слушателям!❣️
Судя по вакансиям могу сказать что php как и Java - не умрёт никогда )
Имеешь ввиду количество вакансий?)
нет ничего вечного...
пхп тоже не вечен...
@@hallgamal6302 ну тогда и пайтон не вечер...
$ перед переменной -- это дополнительная мотивация кодеру, чтобы он быстрее сделал проект и получил деньги))
😂👍
Защита дипломов:
- Тема работы "Разработка интернет магазина унитазов на php"
- Не подходит, примитивно, уберите php, добавьте архитектуры
- Ок, "Разработка интернет магазина услуг архитекторов ПО"
- Вот! Другое дело
А что Вы можете по Пыхе сказать, Тимур? Вы писали на PHP?
@@ApelsinovIvan Признаю, писал на php ну даже года 3 и достаточно профессионально умею, даже не забыл, потому, что мне на ревью приносят все время студенты и по работе. Язык как язык, когда-то был босяцким, а теперь повзрослел, оброс культурой, я бы даже сказал, что сообщество у него более культурное, чем у многих современных и модных языков.
"Немного раздражает наличие долларов, но к этому можно привыкнуть." - ох уж эти программисты 😂
Комментирую каждый ролик про PHP.
declare(strict_types=1);
Ого
Классное видео, php forever))
Отраслевой стандарт - это Symfony. А Laravel - это стандарт для формошлёпства)
Ну и да, джанго и рельсам до Laravel как до луны, если мы про функционал.
Ну и далее про симфу тоже дичь. Доктрина - это ни разу не часть Symfony. А то что есть пакет/бандл для её интеграции не делает это одним и тем же. Это примерно как сказать, что хибернейт часть спринга. Или TypeORM часть метеора или ангулара.
Ну и про пых тоже, странно в 2023ем называть пых, у которого ещё более 5ти лет назад появилась опция строгой статической контрактной типизации называть языком с динамической))) Он по части строгости, при желании, уделывает ту же жабу в пух и прах, благо в нём и алгебраические типы есть и T означает T, а не null или Object (привет NPE!). И это мы про стат. анализ ещё не начали говорить, где можно указать типы, вида "не пустая строка в нижнем регистре".
Короче, начало для новичков - это понятно. А дальше уже отсебятина, которая основана лишь на предположениях и домыслах. Видно что Сергей давно отстал от трендов и оценивает язык по версии 5-10 летней давности.
P.S. Ещё отдельно хочу придраться к тому, что автор даже поленился чуть-чуть подумать на тему причинно-следственных связей. Например, если вместо стрелочек будут точки, то на что менять оператор статического доступа к методу? Там тоже два символа. Или на что менять тогда оператор конкатенации? На плюсик как в JS? Чтобы от перемены мест слагаемых сумма менялась?) Не, понятно что автор как угодно может говорить: "нравится" или "не нравится". Но как бы тут претензия к попытке объективного суждения, а фактически неоспоримые плюсы языка преподносятся как минусы, что звучит откровенно глупо и на уровне какого-нибудь Хауди-Хо. Уж сорян.
P.P.S. Ну и наброс на джаву: В PHP есть кооперативная многозадачность из коробки, а в Java через костыли и Project Loom. В PHP есть алгебраические типы, поддерживающие LSP. В Java её можно добиться, взяв Ceylon или Scala (т.е. взяв любой другой язык, кроме Java, kekw). В PHP есть пакетеный менеджер, решающий все возможные конфликты версий. В Java придётся пройти 10 кругов ада, чтобы подружить две разные версии одного вендора так, чтобы проект заработал (ибо один вендор требует одну версию, а другой - другую. Это частое явление). В PHP зависимости опциональные и можно реализовывать фектори, основывающиеся на опциональных контрактах/интерфейсах, а в Java будь добр захардкодить зависимость в classmap. В PHP за счёт метапрограммироования и интроспекции языка можно в пол пинка реализовать high-order messaging и прочие функциональные штуки (каррирование, частичное применение), а в Java или байт-код патчить (здравствуй Lombok) или никак (ибо рефлексия - максимум что доступно). В PHP можно инлайнить сишный код (или даже LLVM IR), а в Java будь добр собери отдельную обвязку для JNI. Ну и т.д., так можно долго очень)))
В университете Европы, где я обучаюсь, лектор посоветовал взять Laravel на курсовую, сказал, что эти пару лет хорошо его нам выучить будет, отрихтовать, причем да, обмолвил, что за пару лет там все вдоль и поперек можно выучить, а потом уже что то новое узнавать по мере выхода версий, и работу есть большой шанс найти, ибо здесь маленький городок, и то, присутствует компания, которая пишет интернет магазины на Ларе, в неё можно будет пойти на практику даже, насколько я знаю.
Спасибо за ролик, он еще немного, но подтолкнул меня к изучению Пхп.
Главное в этой жизни найти того, кто будет вас любить так же сильно, как Сергей Немчинский любит Python, если вы понимаете о чем я))) Более часто упоминаемого языка на этом канале, наверно, нет))
Це 100%, здається мені, що Сергій ще 1000 разів згадає про Python і комюніті прийме рішення "пора згортатися", та закриють підтримку Python))))
Подскажите дилетанту: так он и для бэкенда и для фронтенда?
Бэк
Где можно глянуть хорошие уроки для PHP? Хочу начать учить пхп вот смотрю разные уроки но хочу увидеть совет от вас
Батя, спасибо тебе за просвещение начинающих разработчиков. ❤
Сергей у Laravel тоже есть ORM, называется Eloquent и половинна кишков под капотом Laravel от Symphony собственно. Я PHP разработчик, начинал с Udemy и Laravel, с ним и остался. Сейчас работаю в компании юзающей два языка и да - согласен, Ruby это боль для тех ктол не привык, ео если начнешь привыкать - поймешь его прелесть. Да не читаем с ходу, но зато там столько конвенций, делающих код стандартным во всех приложениях. Что мне не нравится в Rails и почему я не очень хочу с ним продолжать а дпльше идти по PHP - слишком высокоуровневый фреймворк. Все что происходит оно не очевидно и для новичка пришедшего из Laravel кажется магией. Да, ничего не читается и непонятно куда что уходит. Но тут надо сесть и изучить, прям конкретно. Rails это такая тема в которой нужно знать конкретно RUby и конкретно Rails. Нельзя прийти с C# с 10 летним опытом и за день понять Rails не читая с нуля доки. Спасибо за видео! Всем любовь и мирного неба над головой.
2:20 - Насчёт операторов адрессации "." и "->". В С++ есть и то, и другое. "." - это когда объект (структура) статические, а "->" - когда динамические.
Сергей, вы упомянули, что у Symfony есть своя ORM, но Laravel тоже пользует ORM - Eloquent. В чем же преимущество Symfony'ского варианта если вы его отдельно выделили?
Тут стоит смотреть в сторону холивара "ActiveRecord vs Data Mapper". Плюс доктрине, которая в симфе, симфа то не особо и нужна - оно и само умеет быть отдельным ORM.
Например перелазя с yii2 с ее AR на симфу я с доктрины поначалу очень сильно плевался, не понимая какого черта у меня запросы отдельно, данные отдельно, а как это всё поженить вообще непонятно и почему я в entity не могу сервис заинжектить. Потом поумнел - попустило :)
@@GenaTolstij Учитывая, что я новичок - про "ActiveRecord vs Data Mapper" и доктрину я не шарю - поэтому приму так, что для симфы в принципе ORM не нужна, так как он сам ORM, а свой ORM лучше встроенного😁
@@sani4051992 , интересная логика... Учитывая что по умолчанию кроме доктрины других путей общения с базами у симфы не предусмотрено.
@@GenaTolstij Доктрина сама і є окремою ОРМ, вона була ще до появи другої Сімфоні. Насправді з Сімфоні можна використовувати будь яку ОРМ, навіть той самий Елокуент, якщо є бажання.
@@sani4051992 не робіть помилкових висновків, бо з часом вони у вашій свідомості закарбуються як "істина" і буде дуже важко їх позбутися, а заважатимуть вони дуже сильно. Просто розберіться що це за патерни актив рекорд та дата мапер. Почитайте Фаулера, він роз'яснює.
Є таке питання: хочу зробити веб сайт з базою даних яка в майбутньому може мати терабайти. має бути все швидко і наватаження в майбутньому може бути сотні мільйонів користувачів в місяць. Також сайт має бути синхронізований з додатками для айфон та андроід! Підкажіть будь ласка які технології мені вибрати?
База вот что будет узкое горлышко бутылики. А пыха справится с задачей на ура ей не впервой.
Наоборот наличие долларов это преимущество PHP. И стрелочки довольно красиво.
Обращение к методам/свойствам объекта через стрелку не является чем-то необычным для си-подобных языков. В тех же С++ и Perl тоже используется стрелка в ООП, а в С - для обращения к полям структуры. Так что стрелка в PHP - это тоже скорее всего влияние Perl'a.
10:40 Пишу на Python около 3 лет. Никакой разницы с фигурными скобками не замечал , всё равно абсолютно во всех языках принято делать отступы после начала нового блока кода, ведь его тогда легче читать. Объясните, кто как понимает, будет интересно почитать
у інших мовах зайві/недостатні пробіли не викликатимуть помилок, які складно шукати.
@@woodzimierz9621 пробіл видно очима одразу, бо весь код здвинутий вбік. Фігурну дужку на відміну від цього можна і не помітити одразу. Це скоріше питання смаку, але ніяк не проблема мови програмування
Для мене правильні пробіли краще ніж фігурні дужки. Два зайці одним пострілом: і правилне форматування і відсутність зайвих символів (фігурних дужок). Так само як відсутність стрілки краще ніж її наявність...відсутність фігурних дужок краще ніж їх наявність.
Це ще можна назвати "вкусовщина", але точно не мінус як говорить Пан Сергій в кожному відео)
@@VladKochetov Насправді? Не завжди. Я на пайтоні писав доволі складні застосунки, тому кажу зі свого досвіду, якщо велика кількість рядків коду, а зсув відбувся вище за межами екрану, то це та ще веселуха шукати його.
@@woodzimierz9621 якщо в вас проблема з читанням коду - то це поганий код або архітектура
Какие языки программирования изучать чтобы развиваться в VR/AR?
C++, C#
На счёт динамической типизации - на php она включена по умолчаю, но по желанию легко включается строгая типизация, так что к минусам этот факт относить нельзя. Ну и я уже не помню, когда последний раз встречал проекты, где бы использовали динамическую типизацию
strict_types работает только для скалярных типов, если вы об этом
Работаю в банке, работал еще в 2х финтехах. На пхп. Интеграция с другими платежными системами, с кучей внешних систем и так далее. Дохрена всего. Больше всего работаю с симфони. Это порт джавовского спринга) А еще в современном пхп всё отлично поддерживается и есть супер строгая нулобезопасная типизация. К тому же она еще и статичная получается с версии 7.4. А с 8 версии вообще есть енамы.
Самый добрый дядька в интернете
Огромное спасибо за видео!
Будет фурор когда видео начнётся со слов - "Здравствуйте, меня больше не зовут Сергей Немчинский!")
Огромное спасибо вам за то, что даже после 24 февраля, после начала войны вас всё ещё зовут Сергей Немченский!
Слава Україні!
Героям слава
@@mexanikilya_ Ты долбик. Путин же молодец - помни!
Сергію, дивлюсь вас вже кілька років, і от маю цікаве як для мене питання. А чому ви ніколи не говорите про мову програмування VisualBasic? Не в тренді чи як? Прошу надати відповідь. Дякую
Харизматичный бро)))
Как программист с 10 летним стажем у web разработке php использую в 90% случаях, остальные node.js если нужна асинхронность, самый простой пример это чаты, или например нужно выдавать результат во время работы скрипта, например выгружаешь огромный файл, и ты выдаёшь % обработки, и да, на php тоже можно такое, но node подходит гораздо лучше.
Вы что же используете те же инструменты что и 10 лет назад? Веб разработка уже давно на 90% какой нибудь javascript фреймворк типа react или vue, остальное это апи и бекенд и совсем необязательно на php.
Спасибо за видео 🔥
Небольшой плюс от $ в начале переменной - это явно различает что это переменная, а не константа.
Ну и можно реализовать конструкции вроде динамического объявления или обращения к переменным
$a = 'var';
$var = 1;
print $$a;
выведет 1, не лучшая практика, но как элемент в какой-нибудь хитровложенной рекурсивной функции вполне помогает.
А адресация точками или стрелочками это чистая вкусовщина на основе привычки, лично мне наоборот привычнее поставить стрелочку, а, для избежания длинной стоки, каждую стрелочку делать с новой строки вроде
$object->getSubObject()
->getSubObjectProperty()
->getValue()
Ну и стандарты с возможностью установить строгую типизацию тоже язык сильно улучшило
Если раньше прокатывала конструкция вида
public function do_something($input) {
...
...
...
return true;
}
То сейчас такое на любом ревью завернут на переоформление в вид
public function doSomething(string $input): bool {
...
...
...
return true;
}
как результат, попытка передать что-то кроме строки, выдаст ошибку, как и возвращение чего-то кроме true/false
: bool ну и шляпа - я понимаю что это комуто нужно и я рос в php с того века - а зачем???? приведи типизацию переменной если нужно. не помню чтоб у меня был баг - возможно я слишком медленно пишу)
В PHP8 динамическая типизация уже не очень динамическая, все гораздо строже. PHP начиная с 7 версии все больше движется к строгой типизации и думаю в версии 9/10 уже мало чем будет отличаться от того же Java
Да, я жду не дождусь когда в пыхе можно будет указывать типы для переменных а не через phpdoc
@@awenn2015 Добро пожловать в 2023 год. В PHP можно указывать типы переменных начиная с версии 7. То есть, уже лет 8 как
@@awenn2015 давно уже можно, с php 7
public function (?int $a): ?string
в аннотациях только тип массива,
в php 8 и типы массивов можно пихать туда.
Мы уже пару лет как перешли на строгую типизацию в компании. Думаю, что эта тема уже не актуальна в 2023 году.
Согласен) Типизация рулит, все понятно, что ожидать. Скоро в пыхе по умолчанию будет строгая типизация)
@@super0leg вообще не скоро (а может даже и никогда из-за особенностей внутренних реализаций), ибо нет возможности типизировать списки и прочие вещи, generic-и туда же, локальные переменные. Приходится пользоваться аннотациями + статический анализатор. Хоть и на текущий момент везде использую строгую типизацию, но не стоит забывать что это накладывает небольшой оверхед в рантайме, ибо нам в рантайме всегда приходится проверять корректность типов переменных.
Спасибо за видео про ПХП!
🙂
Про энтерпрайз интересно. А стрелочки ван лав. Спасибо
4:47 очень странный совет, вы думаете что вы вообще говорите? Абсолютно с вами не согласен, вы продвигаете неправильные идеи. Я хочу и буду писать windows приложения и на php, и на JS и не буду это делать на C# потому что мне нужно сделать маленькое приложение здесь и сейчас, быстро его зарелизить чтобы сотрудники моей компании в течении недели могли открыть приложение, просто ткнуть пару кнопок и получить результат. На C# я буду писать приложение до китайской пасхи, а продажи происходят прям в текущую минуту.
Офигенный язык PHP на самом деле. Тем более после изучения JavaScript вообще прогулкой кажется
What is dead may never die! 🐘
Valar morgulis
Спасибо.Познавательно))
Теперь мне понятно, почему, когда я пыталась учить Руби в качестве первого языка, я не поняла ни фига (и бросила) и почему теперь, когда я изучаю PHP, мне все понятно и в кайф.:)
Большое спасибо за обзор языка и ваши видео!
и вам спасибо!
отраслевой стандарт не Laravel, а скорее Symfony. Да и вообще вклад Symfony в PHP переоценить сложно.
даже больше скажу: большая часть функционала laravel основана на symfony.
Они оба, по сути, отраслевые стандарты. Симфа в проектах посерьёзнее, ларка - где проще. Главные их конкуренты, zend и yii соответственно, немного упокоились с миром :(
Есть ли обучение на проэкте ПХП??
пока нет :(
меня в php удивило не столько -> , сколько объединение строк через точку
Кстати, C-подобная конструкция $a.='bla-bla-bla'; там тоже работает. И в JS тоже (с поправкой на синтаксис)
Сам пользуюсь, но ни разу подобного в примерах не видел.
Враховуючи початкову концепцію відсутності типізації воно має сенс, '1' . '1' = '11', '1' + '1' = '2', хоча я не впевнен, що воно так спрацює, но крапка як окремий оператор краще, коли ти не знаешь, якого типу в тебе змінні.
@@adicthreex3530кстати да. Я как-то об этом даже и не думал. Ps должно сработать именно так, как написали 👍
@@postoronny треба просто уважно читати документацію по РНР, все там є.
@@woodzimierz9621 , да!
Только это - не мой родной язык, я им пользуюсь изредка...
Коли ви говорили про фреймворки я дуже сподівалася що ви згадаєте Zend Framework
А на нових версіях пхп можна писати використовуючи строгу типізацію :)
Коли її почали завозити - мені пхп почав більше подобатися.
Так він давно вже не Zend Framework, а Laminas. Я трохи використовував Zend 1.5, важкуватий, але мені він подобався, особливо робота з формами. У 2021 спробував АРІ Tools з Laminas скористатися, але, на жаль, не вийшло. На етапі встановлення вивалило купу несумісності пакунків, я подовбався з годину і кинув.
Почему пхп плохо, ответ профессионала: существует несколько часто упоминаемых фреймворков: Zend, Laravel, Symfony, Yii, CakePhp, CodeIgniter
Ещё есть какие-то другие фреймворки, типа всякие ответвления от них. Есть легаси-фреймворки, самописы, есть Битрикс, который занимает долю рынка.
И в каждой вакансии эти фреймворки упоминаются в рамдомном порядке. Это не считая разнящихся требований по всяким базам и кэшам. Это не считая каких-то «весомых» библиотек, типа JSON-API, SWAGGER и тп, которые по своим мануалам сопоставимы с мануалами по самим фреймворкам.
Хоть подходы в фреймворках и совпадают, это не отменяет факта, что тебе в любом случае нужно будет помимо работы всегда держать под рукой открытую документацию, а задачи выходящие за рамки документации - это ещё та песня, когда ты лезешь в кишки этих решений и смотришь, как натянуть сову на глобус.
В итоге работа по этому направлению сопряжена с постоянной мозгодрочью и нервяком, а компетенция не растет, ибо подобное распыление на всякие мелочи в итоге не даёт никакого весомого профита в проф плане.
А какое направление вы бы тогда посоветовали
@@baldislavep00pczynski68 в пхп точно не лезть. Дерьмовый стек, а на собеседовании на тебя смотрят на говно даже с 10+ годами опыта. Я бы вообще посоветовал в программирование не лезть вообще. Неоправданно раскрученная херня инфоцыганства про чудесные истории успеха.
@@baldislavep00pczynski68 1C нормальная разработка, потому что все понятно и удобная отладка.
пишите код для себя, для души, на выбранном одном фреймворке - и не надо будет париться со всякими легаси, чужими самописами и прочей радномной ерундой ))
@@TREVOGA Полностью согласен, что программирование сегодня тема не для денег. Работа руками или ногами приносит денег зачастую не меньше, думает сегодня ИИ. Если только для себя, вордпресс поковырять то пыха незаменима.
Объясни плиз как ты заюзаешь Websocket Secure WSS на PHP?
это была моя основная причины выброса в мусорку пхп, что я не нашел ответа на этот вопрос быстро и легко
Зачем не нашёл
@@jaloliddinhaqnazarov ты прикалываешься? что значит зачем вебсокет?
@@ара_вася я не сказал зачем вебсокеты , спросил ты нашёл или нет решения как исползoват вебсокеты на PHP
Писал 5 лет на пхп. Приятный синтаксис, читабельный. Вменяемое ООП. Как первый язык - отлично. Не хватает дженериков и многопоточности (раз уж многие используют пхп в том числе для бэкенда).
Угу. Правда не стоит забывать, что если в PHP не хватает скорости или функционала, то всегда можно написать своё расширение на C++ :)
Много лет назад тестировал эту фичу и остался доволен. Та же многопоточность вроде бы доступна через расширение 🤔
Проблема дженериков частично решается через DocBlock
Спасибо, Немчинский. Благодаря тебе, у меня восстановился интерес к программированию, потому что в школе он был, но такой себе(из-за российского обучения), а сейчас он начинает восстанавливается. Объяснение хорошее, бех лишней воды. То, что нужно, чтобы заинтересовать людей.
без*
Да ладно, если ты ща начнешь учиться этому то выучишься через год-два но норм джуна и короче поймешь что рынок перегрет...
при чем тут российское обучение если ты вместо того что бы учиться смотришь это бесполезное видео
@@NeverBrokeAgainx бесполезное для нас, а серёжа бабки получает)
Когда Бог писал код Вселенной, то сделал это на Java. И увидел Он, что это хорошо.
Потом заметил скучающего, одинокого Адама и написал код для Евы на Perl-e. И ужаснулся Адам и с проклятиями убежал вглубь Эдемского сада, где написал на PHP pornhub.
Нет уже ни Адама, ни Евы, а порнхаб есть. PHP - write once, run forever.
какое различие между php и sql? типо они же для дата баз не?
пыха- язык бэка (связывает бд и фронт), скул- язык баз данных.
Пишу на symfony, в восторге от фреймворка и его инструментов! А если еще умешь в golang то получается ядреная штука)!
Что общего у Symfony и Go? Go это что-то новое от гугла, про которое со временем забудут. Зачем на него вообще время тратить?
@@igoraleksandrovich1498 я разве написал что у них есть что то общее (постановка вопроса даже весьма странная, один фреймворк дргой просто язык)? Я про то, что одно может дополнить другое если требуется решить проблему н-р "бутылочного горлышка" в контексте производительности
Вы не упоминали Yii. Или Yii это специализированный фреймворк?
це ну дуже застарілий фреймворк
Yii, к несчастью, был побежден и вытеснен ларавелем (прямой конкурент). У yii1 было одно существенное преимущество, с которым он лет 15 назад рвал всех - он был архибыстрым, быстрее всех других фреймворков, а значит мог или обслуживать больше клиентов на том же железе, или столько же клиентов, сколько та же симфа, но на железяке в 2 раза дешевле. Выигрывал он за счёт оптимизации автолоада, но потом пришел composer и это все стало неактуально. Ну а дальше вопрос комюнити, кому оно надо и т.д. По сути yii хоть и имеет американо-китайские корни, сейчас этот фреймворк жив разве что в СНГ. И то так себе жив - тройку так и не осилили.
@@GenaTolstij в Yii зовсім інша ідеологія ніж у сучасних РНР фреймворках.
@@woodzimierz9621 , смотря о какой версии мы говорим. В первой - да, но она делалась ещё в докомпозеровскую эпоху, а вот вторую построили куда ближе к современности. А тройку строят типа вообще современно, но что-то ее уже лет 7 пишут-пишут...
@@GenaTolstij до чого тут перша, я про другу кажу.
Доброго времени суток, друзья. У меня есть вопросик по поводу конспектирования материала. Какой примерно процент информации записывать. И все в этом роде только идентично с английским, заранее спасибо!!!!
@SergeyNemchinsiy Щодо Пайтона, нещодавно я пройшов невеличкий курс з пайтона, після 10 років програмування на PHP - я сидів і хапався за голову кожен раз коли треба граится відступами, коли нужно імпортувати купу бібліотек кожен раз коли тобі вони потрібні, коли бачив що всередині класу можна легко використати змінну яку визначили в клієнтському коді і ніяк не передавали всередину, коли "інкапсуляція" працює тільки для IDE, а за бажанням можна просто отримати доступ до чого завгодно всередині класу, коли немає нормальних ітераторів, а для того щоб зробити зручну ітерацію по даним треба попередньо "погратися" а щє дуже незручно коли область видимості функції об класу пересікається з областю видимості клієнтського коду через що можуть бути проблеми із однаковими іменами змінних !!!! ... Я згоден що з пайтоном можна в машин-лернінг, або у якийсь аналіз даних, але бляха-муха... після такого пафосного "Пайтон - супер-пупер мова програмування за допомогою якої можна робити шо завгодно, а щє закиди по типу принт можна зробити за один рядок коду, або переприсвоїти змінні одна одній теж за одну операцію" після занурення в пайтон в мене склалося стійке враження що мені на PHP багато чого робиться і працює набагато зручніше і пишеться коротше та швидше... Не знаю може я щє недостатньо занурився в бібліотеки та фреймворки, але на даному етапі я відчуваю що тупо втратив час та міг би вивчити за ці два місяці щось більш корисне.
І як було приємно повернутися до фігурних дужок і крапки з комою і змінних із доларом :D
Простите за глупый вопрос но скажите пожалуйста сколько месяцев менторинга нужно пройти чтобы стать хард джуном?
зависит от вас :)
вообще-то до 2х лет общепринято считьать. Но есть джуны и с 5и летним стажем
А вот такой вопрос 😃 Сергей в трасляциях при ответе на вопрос о зарплатах програмистов на разных языках отвечал что плюс минус одинаково. То есть если я правильно понимаю то JS и PHP программист будут зарабатывать схожие суммы?
Это странно, т.к. js и php идут рука об руку. Аналога js для динамики на сайте не существует. А php это серверный язык. Если ты про ноду, то пхп чувствует себя попроще т.к. не такая конкуренция и работы больше на пх.
Интересная информация спасибо!
Хотелось услышать мнение про Lazarus, его конкурентов и тп.
Всякий раз, когда узнаю о вас что-то новое, все больше восхищаюсь! Спасибо за ролик.
Спасибо вам! )
Интересно, но нах политику разводить не понятно,
он мог так же нмций танк изобразить с чёрным крестом в уголке,
если говоришь о программировании, то и говори о нём, а не о своей оирентации
@@ГардамиранСвами от у тебе спитати він забув. А те що тобі і тобі подібним припікає якраз і є ознакою того, що Сергій робить все вірно.
Що особисто мені не подобається у ПХП:
- Погана можливість підставляти щось у строки. Можно підставити лише змінну: "bla bla {$this->foo}". Тут у JS/TS набагато краще: `bla bla bla ${any_expression}`. Можно підставляти константи, вирази тощо.
- Нема дженериків. Були б хоча б типовані масиви. Є лише костиль PHPDoc, но то таке, ти описав, массив ЧОГО функція має отримати, написав док, а потім змінив код, а ДОК змінити забув.
- Погане оголошення локальних змінних. Причому властивості класів можно оголосити нормально з типом. Ну так. це не є проблема, бо в нас функції до 100 строк, можно пойняти, але ні, це погано. Дайте мені ключеве слово для оголошення локальної змінної, дайте мені вказати її тип.
- "text" . (Any expression) . "Text"; Хотя лучше через sprintf в этом случае завернуть.
- отучиться передавать в функции массивы и юзать коллекции и dto.
- при объявлении переменной просто присвоить ей то, что в ней должно быть. Всё. Если вдруг в процессе переменная из массива станет строкой - Иде ругнет. Но вообще да, в простых переменных строгую типизацию можно бы и завезти.
@@GenaTolstij
- "text" . (Any expression) . "text" - ну зрозуміло, але треба слідкувати, якими лапками ті відкрив строку, наприклад якщо раніше використовувалась підстановка змінної, я маю на указі "bla bla {$foo} bla " . (MyClass::CONST) . ' bla bla'. Й не так зручно контролювати пробіли перед або після виразу. Це просто відсутність приємного цукру.
- це фактично відмовитись від масивів. Навіть якщо забути про швидкодію, ну щоб передати масив строк городити якусь сутність ну таке собі.
- й типізацію й оголошення:
$foo = 1;
// ...
$foo = 2;
// ...
func($foo);
Планую передати 1, бо насправді код мав бути таким:
let foo: number = 1;
// ...
let foo: number = 2; // помилка одразу
//
func(foo);
@@adicthreex3530 , смотри
- По поводу кавычек :) У меня это уже до автоматизма доведено :) Я двойные в коде не использую никогда. Хотя, справедливости ради, "bla bla bla $foo blablabla" подставит значение переменной, а вот 'bla bla bla $foo blablabla' выведет строку в неизменном виде. В ПХП одинарные, двойные кавычки это разные кавычки. Но лично я предпочитаю конкатинацию, как просто универсальное решение, иногда sprintf, но его люблю, честно, меньше.
- в пхп нет всех этих let, var, const и прочей ерунды и, как по мне, это очень правильно. зачем? переменная сетапится первым же присвоением в неё значения, если ты обратился к несуществующей переменной - получаешь notice. И не надо следить инициализирована переменная, или нет, перед присвоением ей значения. Тупо проще ИМХО. А вот если переменная в процессе работы поменяет свой тип - ИДЕшка, насколько помню, это подсветить должна и ругнуть. Но ели уж так хочешь указать строго тип:
$i = (int)1; или $a = (string)'Ababa'; Пожалуйста. Это же можно делать при передаче переменной в функцию, то есть func((string)$a) и у тебя всегда приведёт к нужному типу, конечно если то, что во входящей переменной, так умеет.
И опять же, пых это тебе не JS, когда 1+'1' может быть 2, а может быть 11 (я там не помню при каких условиях оно клеит, а при каких суммирует), в пыхе для конката используется точка, для сложения - плюс, всё, и никакой путаницы.
@@GenaTolstij const є. У більшості мов, у тому числі "дорослих", на яких пишуть щось велике є окрема інструкція оголошення змінної, та інструкція оголошення з можливим присвоюванням відрізняється від інструкції присвоювання. У PHP це одна інструкція й це погано. Наприклад:
$counter = 9;
for ($counter = 1; $counter < 4; $counter ++) {}
var_dump($counter );
Ми у першій строчці оголосили змінну, а у другій у першому виразі циклу for, де "$counter = 1" - це ми намагаємося ввести нову змінну або присвоїти щось у стару? А що буде передано у var_dump? Просто якщо була б явна інструкція того, що ми у циклі оголошуємо змінну - ми б отримали миттєву помилку у час написання (теоретично, бо в мові може бути затемнення). Ну й VSCode нічого не каже про "$a = 0; $a = true;" бо це легальний синтаксіс.
Lara как же ?
PHP со временем становится очень похожим на Java. К сожалению на PHP сейчас пишутся не только сайты, но и целые Enterprise системы, но вот непонятно зачем.
Подскажи, для новичка (абсолютного) в программировании лучше на php остановится или на с#?
@@ei2292 хороший вопрос, если у вас цель заниматься исключительно вебом то можно остановится на PHP, и ознакомится с такими фреймворка и как Symfony или Laravel. Если вы хотите именно освоить программирование в более широком смысле C# будет лучше. Хотя для начала может быть есть смысл посмотреть на Python. Какие у вас цели? Какого типа задачи вы бы хотели бы решать?
I am not ambidextrous. I do not enjoy static typing, and objects animate my mind's eye. But I have come to appreciate the fact that others illuminate their creativity with just as much intensity as I do mine, using functional programming constraints and explicitly spelled out types.
As long as I never have to soil my Ruby with type hints or write all front-end code in TypeScript, I can so happily coexist with those who adore Go or can't stand JavaScript. Vive la différence!
Стрелочки вместо точек появились, потому что точки были уже заняты в конкатенации строк. На заре язык был настолько прост, что ООП в нём даже не планировалось.
Многие обсирают пхп не понимая его историю и почему сделано так а не иначе
ну на python-е не только веб фреймворки. я вроде где-то слышал, что python можно подключить к вебу и использовать print для вывода на вебсайт прям как echo в Пхп. но может и ошибаюсь.
Можна і не тільки на пайтоні, але те як ти написав, то повна маячня.
@@woodzimierz9621не очень понял. ну ладно.
Как разработчик PHP с 3-ех летним стажем скажу что PHP отлично подходит для e-commerce, но почему то всегда суют в interprise (банки, Авито и т.д.). Все бы ничего php отлично работает, кучу библиотек и можно смириться с отсутствием женериков и строгой типизации, ну или нет down и up кастов. Но что меня больше всего раздражает, это синхронщина. Это отлично работает, пока дело не дойдет до вебсокетов или задач в крон. В целом крон на laravel к примеру это кажется отдельный поток с do while , но на мой взгляд на яве асинхронщина сделана удобнее и понятнее. В целом если честно немного пожалел что начал свою карьеру с php а не с java, потому что с php тяжело уйти по причине того, что ЗП на php вроде бы как поменьше, но не настолько меньше чтобы учить java/c# и потом мучиться с синтаксисом, контролем переменных и структурами данных (в яве для объектов есть коллекци или hasMap ) в php массив по сути это HashMap как в яве и работает он одинаково стабильно и быстро что на числах, что на строках, что на объектах... Нет деревьев, но ни разу не видел чтобы хоть кто-то делал дерево в яве ... В общем , для старта топ язык так скажем. А еще плюс в том, что без работы Вы точно не останетесь
в ПХП много чего нет того что в Яве. Особенно, что касается ООП, оверлоады методов и конструкторов и т.п. Одно из больших преимуществ Явы, на мой взгляд, это компилятор. Но я все одно бросил Яву из-за её многословности.
А для каких задач нужен такой асинхрон, с которым не справится очередь в месенжере? Это не троллинг, реально интересно. Например у меня типичная задача "зарядить 50 писем на отправку", так я их просто пихаю в очередь, пользователю отдаю ответ "письма поставлены на отправку" и забыл о проблеме. Дальше уже крон или что другое как раз асинхронно эту задачу выполняет. А для чего ещё надо?
@@GenaTolstijмне кажется,что люди часто путают многозадачность во фронте где при загрузке страницы асинхрон ускоряет загрузку и в бекенде где многозадачность это просто очередь)
@@GenaTolstij , да в целом то да и редис справится. Просто нужно понимать что это не наливное решение языка, а доп прослойка.
@@cranebird1467 да, забыл про перегрузку =) но перегрузка контроллеров это такое себе как мне кажется, слышал что это плохая практика
8:37 забыли?
не срабатывает :( th-cam.com/video/w6kdepP5P6k/w-d-xo.html
Ну типизации достаточно завезли в последних версиях PHP. Параметры, поля классов, результаты функции уже можно типизировать (а можно и не типизировать). Может и завезут в 9-ку типизацию переменных
сегодня умножал строку на целое и получил тайп эррор))
Да, поскорей бы, но думаю это будет сложно реализовать под капотом
13:50 практически мои эмоции когда с Unity пересел на Unreal
Стоит ли идти в битрикс, чтобы получить первую работу и потом доучивать нормальные фреймворки - laravel/symphony/yii2 или лучше сразу учить фреймворки?
Ясен хрясен сразу фреймворки. Ты на битрикс времени затратиш не меньше.
Синтаксис PHP как по мне прекрасен. Единственное печалит это то, что из коробки нет мультипоточности, да и в целом PHP намного медленнее того же GO, а так всё збс
Когда-то писали на Perl, потом PHP, сейчас Python - стилистика python с пробелами и табуляциями - на мой взгляд самая удобная, без лишнего. Но это вопрос вкусовщины.
Что хорошего в php - это, как было сказано - можно писать сразу сайт на голом php, на пайтоне нужен минимум какой нибудь flask.
Сильная сторона Пайтона - я вот десктоп приложение (с окошками) для Линукс пишу и сопровождаю уже много лет и он отлично справляется (pyqt)
Сергей, спасибо большое за ваш труд. Вы в этом видео сравнивали php с python/ruby, но почему не сказали про nodejs?
потому что node js давно не поддерживают в том же темпе как php, python и ruby. Он уже перестал соответствовать новым реалиям рынка вэб-разработки, да на нём можно всё ещё написать годный проект, но зачем? если у конкурентов разработка такого же проекта оказывается быстрее, удобней и без костылей как в node.js. Раньше node держался из-за многопоточности, сейчас же когда php получил свои инструменты для многопоточности, node.js уже выглядит как пережиток прошлого.
@@TwELvE848Почему Node.js не соответствует новым реалиям разработки ? Для задач ввода/вывод очень даже хорошо подходит, есть вполне неплохие фреймворки тот же Nest (у нас он на проекте, код читается как книжка). Может в многопоточку с помощью Worker Threads
@@ГеоргійКоваленко-у8ф тут дело скорее именно в скорости разработки. С nodejs - все хорошо, но код еще быстрее можно написать на php/phyton/ruby, что для бизнеса - очень кретично и не всегда встает вопрос об эффективном и быстром исполнении кода как в nodejs, тк не каждый бизнес еще дорастает до таких нагрузок, а вот реально быстро выкатить мвп и затаскивать фичи - бизнесу оч надо здесь и сейчас
@@KobaltMetal Хм… А разве на Node.js (оно же JavaScript) так долго и сложно разрабатывать ? Язык с динамической типизацией, синтаксис С подобный, интерпритируемый, я б не сказал, что он прям сложный, но сравнивать с PHP, Python, Ruby я конечно не могу ибо опыта у меня с ними не было
@@TwELvE848 из-за какой многопоточности? его фишка это асинхронность
Делал перенос приложения с asp + vba на php. Отлично подошел для сравнимо простой конвертации. проект занял 2 месяца.
Так в ANSI C тоже стрелочки если не ошибаюсь?
++
Symfony сводит все хейты на нет.
Так как там реальный ООП, разделение на слоев, репозитории, сервисы всё в нём есть.
Там даже есть больше чем в хваленом Спринге
PHP 5.6-вот был простой язык.)
В 8 версии это уже не изи-язык.
Мне нравится как раз максимальная понятность языка.
ага на 56 такого навидался)) а что с 8 не так? я както и не понял разницы - как обычно чтото убрали/добавили - не 7й же - хуже точно не стало))
@@80689248440 дэк, бро) чего там навидываться, если тот язык был для примитивных веб-сайтов и Вордпресса)
Золотые времена) Самый понятный код, ну или я к шарпам привык, хз
Наоборот PHP 8 избавился от лишнего мусора.
А типа на 8 нельзя писать так же как на 5.6 :) Если очень захотеть, то на нем и как на 4 можно писать за редким исключением (либа мускула стала другой)
@@unicoxr5tj417 да делфисты код писали и свалили))))
знаки $ показують новачкам, що можно знайти роботу
у меня другой вопрос к знатокам. на сколько актуальны сейчас perl и ruby и где они применяются? на изучение выбрал для себя java как наиболее актуальный и универсальный язык. на первый взгляд пока. не сказал бы что его учить сложно, наоборот. но из минусов отметил его вариативность во благо сокращения кода. например a=a+1 то же самое что a++. это вынуждает запоминать ещё что-то, хотя бы ради того что придётся читать чужой код. ну и есть другие примеры. претензии пока только к этому. по моим наблюдениям ещё не в тему. си шарп очень похож на джава, что в плюс, если хотим писать нативно под винду. наверняка есть специальные трансляторы, которые переводят код из джава в си в решётку или наоборот. виндой я не пользуюсь, но. расстроил монструозный синтаксис языка shell, который используется по умолчанию в линукс. для командной строки я бы предочёл интерпретатор на другом языке. опять таки. это дело вкуса. можно привыкнуть к синтаксису
По мне лендинг и пару страниц - это все же статика + редактор :-) Ну а типизацию можно задавать, с 7 вроде :-)
Ох уж эти доллары=) Многие думают что доллары и стрелочки это что-то страшное, но я вас уверяю, несколько недель практики и вы их вообще перестанете замечать) Но вот читать другой язык, например яву, станет чуть сложнее) Так как $/this/static/self и т.п. помогают ориентироваться в коде быстрее. Также многие говорят о типизации, но уже давно можно обезопасить себя хинтами. Да, в PHP не хватает определенных структур данных, по типу коллекций и т.п. с коробки, это не удобно. Так как подобные штуки приходится писать самому. Но в контексте PHP, это как правило делается очень редко и для этого существуют сторонние библиотеки, интерфейсы от разработчика языка и т.п.
RUBY? А как насчет APL по читабельности?
Кстати, такому почитатателю Python, почемы бы не просветить народ о Majo?
Java, я же на эту цацку-песку от Sun Microsystem даже сертификат имею, экзамен сдал хотя нихрена никогда не работал. Но, индульгенция крутая, HR уважали всегда. Там такая бумага для вставляние в рамочку на стенке, со всеми ободками. :)
Стрелка это странно для С-подобного синтаксиса? Автор ролика видимо не знаком с Си. Именно стрелка это и есть С-подобный синтаксис доступа к данным, методам объекта через указатель. А указатель в Си это основной элемент программирования на Си :)
конструкторы сайтов я никогда не понимал. нужна маленькая страничка? за 5 мин на html css, js, php. нужна большая страница? тут конструктор не поможет. опять же выше упомянутые языки.
Конструктори не для розробників, а для нон текнікал юзерс.
Спасибо за видео.
Пожалуйста) Какие еще темы вам интересны?
Ruby? Кто-то еще его использует в новых проектах? И зачем, если «да»?
Смысла в PHP особо нет, его успешно вытесняют или уже вытеснили Node JS и Python. А для масштабных проектов используется Java
11:49 Боюсь нарваться на холивар, НО в кампуктере "символ и пробел" это как "мягкое и тёплое", если уж сильно охота то можете сказать что
в питоне прозрачный символ, а в остальных непрозрачный символ...
Не очень то уж гениально заменить один символ другим и назвать это ДРУГИМ языком программирования...