После года разработки представлен релиз языка программирования PHP 7.4. Новая ветка включает серию новых возможностей, а также несколько изменений, нарушающих совместимость...Подробнее: https://www.opennet.ru/opennews/art.shtml?num=51944
Понимаю, что на нём уже много чего написано (что ещё нужно поддерживать), и что он довольно востребован, но... Что скажет диванный аноним: стоит ли отказаться от PHP при начале нового проекта?
Не отказывайтесь ни в коем случае.
Смотри тут какая штука если нужно программировать и идти в сторону серьезной разработки (карьера), то PHP противопоказан. А если речь идет про бинесс на коленке - когда нужно вчера уже готовый и побыстрее что бы работало, а тамкак карта ляжет, то PHP ваше все.Серьезные ребята с серьезными протоколами и прочей лапушней уйдет в Java, C#, Pyhton или Golang. Какие-то хипстеры в JavaScript и Ruby.
Так что смотрите сами если Вам шашечки, то тут конечно лучше что-то посерьезнее, а если тяп ляп и в продакшен, то PHP ваше все !
С поправкой> А если речь идет про бинесс на коленке - когда нужно вчера уже готовый и побыстрее что бы работало
Бизнесу _всегда_ так и нужно. В рамках применимости php конечно.
> сторону серьезной разработки (карьера)
Для веб в принципе норм. Всегда есть проекты любой сложности на любом языке. Другое дело что можно заранее посмотреть на чем пишут больше, чтобы выбор интересных проектов был шире.
Как человек, пишуший активно на всех вышеперечисленных языках скажу так - навык выбора инструмента опирается не только на язык, но и на инфраструктуру вокруг него. К сожалению стал разочаровывать Golang, у которого очень неплохая базовая библиотека, но блин отвратного качества инфраструктура. Да и с обработкой ошибок вы намучаетесь. Куча левых библиотек, которые работают именно из под Cgo, да еще и заброшенных авторами. Так что golang отлично подойдет как дополнение для других платформ, которое имеет в своей природе отличную конкурентность и утилизацию ресурсов. Но, блин, много библиотек заброшены или вяло ведутся = соответственно экспоненциально растет количество проблем с этим.
Python - универсален, но его асинхронные фреймворки скорее для прототипов, т.к. жрут и текут как не в себя. Тут их съедает Node.js к сожалению. Остается только Джанго, который тоже неидеален, как о нем рассказывают. Большей частью его любят за готовую админку. Но если что-то нестандартное - можно вешаться.
Java и C Sharp - громоздкие и для веб мало подходящие платформы корпоративного уровня. Мощные но громоздкие платформы, в которых один фиг надо делать контроль за ресурсами, контроль процессов, ограничения по памяти, балансировщики нагрузок (да, да - опять Nginx) и пр.
Ruby без рельсов к сожалению никакой.В простом вебе поэтому в корпоративном секторе популярен PHP - он стабилен, есть не одна, а множество стабильных технологий. Он не конкурирует с другими платформами. У него нет бл*дства с качеством встроенных библиотек по работе с БД (утечки, проблемы с дополнениями и пр. - да, да - камень в сторону Golang). Достаточно консервативен и имеется множество решений. И при этом пошустрее будет питона (за исключением ML). А там, где не банальный CRUD - можно юзать те же JS/Golang/Python.
Каждой задаче свой инструмент - проектируйте с умом, с учетом экономической эффективности, задач и пр.
Касательно C# для веба, рассматривать его стоит только в контексте кроссплатформенного ASP.NET Core, все остальное, как правильно сказал автор выше — суета.
> Каждой задаче свой инструмент - проектируйте с умом,
> с учетом экономической эффективности, задач и пр.Отдельная благодарность за внятный комментарий по теме.
> Java и C Sharp - громоздкие и для веб мало подходящие платформы корпоративного уровня. Мощные но громоздкие платформы, в которых один фиг надо делать контроль за ресурсами, контроль процессов, ограничения по памяти, балансировщики нагрузок (да, да - опять Nginx) и пр.Не согласен. Есть вариант JHipster -- при понимании того, что нужно --- любой малый\средний проэкт делается за день... Причина? Аккумуляция всего лeчшего наработаного Java\Spring и Angular\React
Автоматизация (Node.js) NPM\YARN -- отвечаете на пару вопросов, рисуете модельку зависимости сущностей, и -- совсем немного -- допиливаете фронтенд -- и вуаля! А если нада -- то и Kafka+ElasticSearch из коробки!Laravel где-то близко, но все таки удобства JHipster больше...
>Java и C Sharp - громоздкие и для веб мало подходящие платформы корпоративного уровня. Мощные но громоздкие платформы, в которых один фиг надо делать контроль за ресурсами, контроль процессов, ограничения по памяти, балансировщики нагрузок (да, да - опять Nginx) и пр.- при желании, web-приложения на Java можно писать точно в том же стиле, что и на PHP. Разница в количестве кода будет исчезающе мала. Да и буквы будут почти те же. Другое дело что Java программисты предпочитают иную стилистику (которую можно и в PHP применять - всякие фреймворки, классы, шаблоны проектирования и т д), что замедляет первоначальную разработку и усложняет код (теоретически профит будет получен при дальнейшей поддержке и развитии кода)
> Серьезные ребята с серьезными протоколами и прочей лапушней уйдет в [...] GolangХватит врать во всех подряд ветках. Golang - проходной язычок, подобно руби. Через 10 лет на нём будет пара проектов (как сейчас гитлаб на руби) и нулевые перспективы в плане начала разработки на нём. Много вы сейчас видите новых проектов на руби? С вашим голенгом будет то же самое.
Через 10 лет у тебя по-прежнему не будет даже пары проектов и как и сейчас нулевые(отрицательные?) перспективы. Много мы видим от тебя проектов? Вот и через 10 лет будет тоже самое 🤣
Вот свежак на руби: openproject
Почему такое мнение? Это на основе синтаксиса, экоситсемы или чего сделаное заявление?Появление Ruby не отличано его от Python абсолютно ничем новым, а в том же Golang каналы, многопоточность и прочие вкусняхи. А еще и бешеная производительность. Если не выйдет убийц Golang, то пока ниша то пустует (кроме конечно C/C++ фреймворков).
Можно конечно верить в светлый путь Java, но там вроде как ничего как не компилировалось, так и не компилируеться до сих пор, а энтерпрайз требует с каждым годом все больше и больше серверов для задачь посильных одному (короче оверхед сплошной на всем). А в конечном итоге ждет пользователь и конечно рано или поздно уходить к другому вендору.
Основная претензия была к человеку, который поставил Golang в один ряд с Java/C#/Python.Ну согласитесь, что ему там не место. В данный момент C# - основа виндового энтерпрайза и не только его, Java - основа кучи приложений под разные цели, Python активно используется как в экосистеме линукса (тот же yum вспомним), так и в машинном обучении и некотором другом коммерческом софте. JavaScript и PHP выглядят более подходящими для этого списка.
А Golang - это (на данный момент) игрушка для тех, кто просто хочет изучить новый синтаксис. Ruby в своё время по той же причине изучали. Я бы его (Golang) поставил на один уровень со Scala/Ocaml.
Причём человек уже не в первый раз рассказывает тут всем, что Golang - это как C#/Java/Python, что явно не соответствует действительности. Надоело.
> Почему такое мнение? Это на основе синтаксиса, экоситсемы или чего сделаное заявление?
Мнение не основано на каких-то технических характеристиках.
Go/Rust/Ruby - языки с примерно одинаковым зашкаливающим количеством хайпа. Питон тоже в своё время был "на волне", но форсировался не настолько агрессивно.
> а в том же Golang каналы, многопоточность и прочие вкусняхи. А еще и бешеная производительность.
То же самое можно написать про Common Lisp, Erlang и другие подобные языки. Своя ниша у них есть, но ставить их в один ряд с C#/Java некорректно.
типичный такой недалекий аноним, который по верхам мейнстримовой инфы в интернетах нахватал (пхп - гавно, го - крута!), опыта нормального не имеет, но считает что что-то знает.
>если нужно программировать и идти в сторону серьезной разработки (карьера)...в СЕРЬЕЗНОМ бизнесе, то PHP таки ничем не хуже других ЯП и продолжает иметь свою нехилую нишу для применения. А умельцев говнокодить хватает и в Java, и в C#, и в тех же плюсах тоже.
Там же написано при работе с своими протоколами и прочей чепушней вроде RMI.
В том же PHP я так понимаю до сих пор рождаемся и умираем или ReactPHP достиг зрелости?А так-то да кто мешает делать сайты визитки для серьезных компаний без нагруженного Web это вроде даже и нормально.
1000 запросов в секунду - это уже нагруженный Web, или ещё не очень?
Зависит от проекта. Если нет особых требований к производительности и разработчики хорошо знают современный php (современный, а не тот ужас времён php4), вполне разумно его и использовать.
А чего там ужасного в PHP4 было такого? Вроде нормально все было - только сахара меньше.
В принципе, если не считать глобальные переменные чем-то ужасным, а точнее, отключать их сразу при установке, то ничего другого ужасного там и не было. Другое дело, что и ничего хорошего тоже. Хорошее там появилось примерно в 5-й версии, стало можно нормально писать.
Тотальная неконсистентность, например - это тот ужас, который поддерживается в РНР и сейчас.
Но сейчас можно уже оторваться от голого языка и работать с ООП-фреймворками.
Функции для работы со строками, например, никуда не обернешь. Хотя вот это исправление с исключениеми из __toString и позволяет сделать class String, но это все же перебор.Другое дело, что с опытом к этому бардаку привыкаешь и не замечаешь его.
register_globals и magic_quotes
Ну, плюс практики писать левой пяткой, мешая PHP, SQL и HTML в одном файле, и управлять логикой глобальными переменными.
инфраструктура. composer и фреймворки изменили разработку очень сильно.
Нет скрепные переходы это:
Ruby -> Python;
Python -> Golang;
C# -> Java;Если от мысли от нового проекта на PHP тебя не вывернуло на изнанку делай на PHP. Тоже самое с Node.js. Причем PHP и Node.js фанатики очень жестко разделены друг от друга и не допускают мысли о проникновении технологий.
Мне ради любопытства. С чего это с C# бегут на Java? В их стане вроде все ок было
Просто диванные Анонимы с опеннетика не любят Майков. А так если всегда делал на С# и зашла речь про новый проект что в легаси мире С# редкость. То переходить надо именно на джаву так Столлман вместе с главной Оракла завещали.
Это голанг фанатики отделены. И java и c# фанатики отделены.В целом имхо по продуктивности (легкости разработки) так:
Пхп и нода примерно одинаково продуктивны, golang хуже их, но лучше джавы
Нода быстрее пхп по производительности и умеет в вебсокеты
Питон и руби хз. На руби имхо вообще лучше ничего не писать
Ловко вы так записали в "похуже" язык, который компилируется в нативный код, в отличии от остальных.
Я ещё раз напишу - по ПРОДУКТИВНОСТИ. Т.е. по лёгкости разработки. А куда он там компилируется это дело десятое
По продуктивности изготовления хелловорлдов?У Го весьма специфическая ниша и сравнивать его даже с Питоном некорректно, ибо на Питоне можно и в гуй, и в веб и еще в черта в ступе. Соответственно, Питон разраб может быть фул-стэк разрабом.
Го надо сравнивать с нодой и только с ней.
Ну кто-то же думает про переход даже автор в самом начале ветки, который от чего-то хочет перейти с PHP куда-то еще.А продуктивность на golang такая же (или уж точно не сильно хуже в период перехода) чем на python. Так что вполне годная технология. C php на golang переходить и не надо. И то это только при выпуске нового продукта или переписывании старого с нуля. Старые продукты пусть всегда остаются легаси на php.
>Нода быстрее пхп по производительностиНачиная с 7-х версий, это неправда, что нода быстрей
>>Нода быстрее пхп по производительности
> Начиная с 7-х версий, это неправда, что нода быстрейНачиная с 7-х версий пхп нода всё равно быстрее, просто не в 50 раз, а в 5. Но всё равно гораздо быстрее, т.к. V8 - крутая реализация интерпретатора.
Ну и встроенный eventloop как бы.
>просто не в 50 раз, а в 5.Приведенные результаты очень похоже взяты с потолка...
> V8 - крутая реализация интерпретатора.
Тоже очень серьёзный аргумент...
Цифры приблизительно, но не голословные - бенчил на паре простых вычислительных задач. Естественно это не значит, что даже по сравнению с php 5.6 сайтик на nodejs отвечает в 50 раз быстрее. Т.к. обычно не в бэкенде ботлнек.Ну а ты что ожидал тут в комментах? Статью на 20 листов A4? Сам погугли и поймёшь, что там внутри в v8 и что там в php.
>Цифры приблизительно, но не голословные - бенчил на паре простых вычислительных задач.Это враньё!
Никогда пых не был в 50 раз тише ноды, это просто гон или ну очень кривые ручёнки...>Ну а ты что ожидал тут в комментах?
Как ни странно, но среди большой части выcеpa, в коментах бывает иногда очень полезная и нужнaя информация, вот это, - полезную инфу и хотелось бы видеть, а не цифры с потолка
>Сам погугли и поймёшь, что там внутри в v8 и что там в php
Гугл ??? Который приведет на бложики фанбоев или хорошо подготовленную рекламу ?
Погуглить продукт гугла, - они конечно же святые и предоставят обьективную инфу касающуюся их продукта и конкурента :)Мы группой в 12 человек тестировали на протяжении двух недель, за денюжку, по 8 часов в день, достоинства и того и другого. Где-то лучше нода, где то пых, но только разницы, не только в заявленую тобой 50 и даже в 5 раз не видели.
Фанбойство - не есть профессионально.
Пых и нода - просто инструменты, также как и другие языки. Выбирать инструменты надо по назначению, в зависимости от задач, а не молиться на что-то одно и хаить конкурентов.
> Это враньё!
> Никогда пых не был в 50 раз тише ноды, это просто гон
> или ну очень кривые ручёнки...Да хосспаде. PHP 5.x - тормоз ппц. Ещё раз: я про вычислительную производительность.
Вот, запусти сам: https://github.com/famzah/langs-performance
Ну не в 50, в 40 раз разница. Сильно легче?
При чём тут фанбои? Загугли статьи про устройство v8. Там 4-слойный JIT с onstack replace-ами и прочим. Ничего подобного в пыхе нет и не было.
А ещё ведь eventloop. Попробуй пыхом 1 млн соединений пережевать, хотя бы просто отвечающих хелловорлдом. А нодой можно...
Вот я прям щас запустил.PHP 7.3: 30 итераций = 15.38 сек. PHP 5.6: 30 итераций = 183.6 сек. nodejs 12: 30 итераций = 4.66 сек. Быстрее в 40 раз, чем PHP 5.6.
Проверяется, по сути, примитивная математика и работа с динамическими массивами. Но порядок примерно такой вот.
Просто это в вебе обычно не заметно, т.к. больше тормозят написанные кривым х*ем запросы к БД. И хоть ты на ассемблере пиши, базу ты этим не ускоришь. Но факт остаётся фактом - v8 очень быстрый интепретатор.
Вы там обьелись грибов? С# фичастее джавы в сто раз.
Асинки холодная загрузка и т.д.
Ну так и сиди на попе ровно раз ничего больше ниасилил. Если когда-нибудь надоест зависимость от инфраструктуры майков у тебя будет единственный путь только в джаву.Так-то кто-то и на php 7.4 сидит и ему норм.
Если есть возможность не писать на loosely typed языке, то лучше на нём таки не писать.
> Если есть возможность не писать на loosely typed языке, то лучше на
> нём таки не писать.Популярное и глупое мнение. Наоборот, то, что можно писать на скриптоте без особой потери качества - лучше писать на скриптоте, ибо это быстрее. Зачем делать тупую лишнюю работу
Если проект большой и расчитан на долгую жизнь и поддержку (тобой или маньяком, который знает, где ты живешь), то лучше все же использовать что-то типизированное. Хоть и пишу на пхп, но иной раз это все вылазит боком.
> Если проект большой и расчитан на долгую жизнь и поддержку (тобой или
> маньяком, который знает, где ты живешь), то лучше все же использовать
> что-то типизированное. Хоть и пишу на пхп, но иной раз это
> все вылазит боком.В джаве той же тоже дофига всего вылазит боком, один хибернейт кривой чего стоит, и типизация ни фига не помогает.
Да и по опыту наблюдения за проектами на пхп и на жаве не могу сказать, что на жаве вот прям багов меньше. Так же примерно пишут. Вот то, что ДОЛЬШЕ - это факт...
вопрос не в "багов меньше" - вопрос в том, сколько твоего времени уйдет баг найти в чужом большом проекте и его исправить. И не успеешь ли ты за это время превратиться в того самого маньяка, которого остановит только незнание адреса.
> вопрос не в "багов меньше" - вопрос в том, сколько твоего времени
> уйдет баг найти в чужом большом проекте и его исправить. И
> не успеешь ли ты за это время превратиться в того самого
> маньяка, которого остановит только незнание адреса.по этому критерию тоже не видел чтобы типизированные языки выигрывали
выигрывает наиболее просто написанное приложение - это да. но когда там типизация и 5 слоёв и всё обмазано DI ещё - то это совершенно не просто отлаживать
пока оно простое - выигрывает.
Когда речь о больших проектах, где беглым чтением с наскока ничего все равно не поймешь - нет.
(то есть если там пять слоев - лучше почитать документацию, что за слои и какими апи связаны. Чем в монолитной каше пытаться разобраться, что оно вот в такой позе делало, и зачем именно так - времени убить придется больше.)
>> вопрос не в "багов меньше" - вопрос в том, сколько твоего времени
>> уйдет баг найти в чужом большом проекте и его исправить. И
>> не успеешь ли ты за это время превратиться в того самого
>> маньяка, которого остановит только незнание адреса.
> по этому критерию тоже не видел чтобы типизированные языки выигрывали
> выигрывает наиболее просто написанное приложение - это да. но когда там типизация
> и 5 слоёв и всё обмазано DI ещё - то это
> совершенно не просто отлаживатьЗолотые слова. Просто многие разработчики чтобы выпендриться (обычно не самые далекие и умные), накручивают с десятка два абстракций. Потом понять логику рассуждения становится практически нереально.
И написать на типизированном или не типизированном языке можно одинаково фигово )
«Скриптота» бывает и сильнотипизированной, добрый вечер.
> ибо это быстрееТолько во время написания, дружище, только во время написания!
Потом начнутся грабли и костыли, но ведь у тебя акт выполненных работ на руках и деньги от заказчика в кармане, я угадал?
> Только во время написания, дружище, только во время написания!
> Потом начнутся грабли и костыли, но ведь у тебя акт выполненных работ
> на руках и деньги от заказчика в кармане, я угадал?если заказчик он сам - у него на руках работающий сервис, который уже помогает бизнесу или этим самым бизнесом и является. А вы пишете на хорошо типизированном языке, чтобы потом обнаружить что рыночек уже давно занят ;-)
так тоже бывает, и довольно часто.
Когда человек сам вовремя всё сделал и занял рынок - молодец, пусть возьмёт пирожок.
А когда эффективный манагер-инноватор прос..л появление нового рынка, а потом увидел, спохватился и бросился догонять уходящий поезд, и этим оправдывает выбор макакоугодного языка для быстрого фекалокодинга - ну так надо просто понимать, что необходимость быстрой разработки - это свидетельство стратегического просчёта в планировании бизнеса.
> А когда эффективный манагер-инноватор прос..л появление нового рынка, а потом увидел, спохватился
> и бросился догонять уходящий поезд, и этим оправдывает выбор макакоугодного языкаа какая, в общем, разница? Либо успел вскочить в последний вагон, и макаки получили премию, либо не успел, и вместе с макаками (или senior erlang designers) стоит в очереди за бесплатным супом.
Если был гений и умел предвидеть на двадцать лет вперед, чтобы неспешно выпустить чудо-продукт на ассемблере еще не выпущенного, кстати, процессора - ну вообще прекрасно, только его могут вытолкать с рынка вот такие опоздавшие, зато уложившиеся в два года - и, соответственно - вдесятеро дешевле, даже без учета ставки рефинансирования.
А если так совпало что и гений и умел предвидеть, и задача настолько сложная, что ее только за двадцать лет и только на правильных средствах разработки и можно было решить - то никакие макаки тут в любом случае ничего бы не смогли. Только это скорее редкое исключение из правил.
Эти фреймФорки сегодня есть, завтра нет - плоды вечных поисков самоутверждения и довольства жизнью извращёнными путями, сублимация душевной суеты и телесного ёрзания. А PHP, благодаря повышению производительности с 7 версии, ещё поживёт, прикрутить скрипты всегда можно. И Java тоже. За ноду не скажу, отошёл от IT до её популярности.
> Эти фреймФорки сегодня есть, завтра нет - плоды вечных поисков самоутверждения и
> довольства жизнью извращёнными путями, сублимация душевной суеты и телесного ёрзания.
> А PHP, благодаря повышению производительности с 7 версии, ещё поживёт, прикрутить
> скрипты всегда можно. И Java тоже. За ноду не скажу, отошёл
> от IT до её популярности.Чем занимаетесь? ИТ тоже порядком поднадоело )
> Чем занимаетесь? ИТ тоже порядком поднадоело )Свободная касса!
>> Чем занимаетесь? ИТ тоже порядком поднадоело )
> Свободная касса!Ха-ха ) 5 баллов )
Отошёл в смысле перестал грузить мозг расплодившимися технологиями и отдаваться этому, школьники, как их не ругают, соображают с рождения лучше в этом. Надоели съёмные жилища городов, купил дом в селе, занимаюсь обустройством семейного быта и духовным взрослением, восстанавливаю утраченное здоровье, но дела для полного вдохновения пока ещё не подобрал - свободой надо ещё научиться пользоваться. От IT только подрабатываю SQL-щиком удалённо и хобби на ардуино типа умный дом. В IT пошёл по юношескому заблуждению - хорошо шарил, думал построю карьеру и покажу мамке и другим какой я крутой, а потом депрессия, стимуляция мозга информацией и соперничеством в организации не лучший наркотик, рано или поздно приходит толерантность.
выгорание? а сколько времени уже прошло, после того как от it ушел? и не тянет ли обратно?
Скорее всего банальная старость. Много знаете пхп кодеров за 40?
Скоро 30 будет
Вот и я говорю старость не радость.
> Скорее всего банальная старость. Много знаете пхп кодеров за 40?Я знаю человека, кто из журналистики в разработку пришел в свои 37
>> Скорее всего банальная старость. Много знаете пхп кодеров за 40?
> Я знаю человека, кто из журналистики в разработку пришел в свои 37Это ж как надо оголодать…
>>> Скорее всего банальная старость. Много знаете пхп кодеров за 40?
>> Я знаю человека, кто из журналистики в разработку пришел в свои 37
> Это ж как надо оголодать…Человек устал от прессинга. Хочется писать то, что хочется, а люди сверху говорят, что надо писать. А на душе гаденько становится. Все просто. Человек решил выучить ИТ и выучил. Методично, постепенно, вечерами. Пошел на Junior-позицию. Сейчас пишет мобильные приложения. Синьор-помидор уже. За 2 года где-то вырос.
Когда семья у взрослого человека - там уже и ответственности больше и подход другой к работе. Так что нет ничего удивительного в том, что взрослый человек при желании переучился и преуспел в другой профессии.
Удивительно то, что журналист не сумел устроиться по своей специальности лучше.
> Удивительно то, что журналист не сумел устроиться по своей специальности лучше.Таковы реалии жизни. У всех разная ситуация. Да и я думаю, что человек, проработавший 15 лет в одной сфере в профильных изданиях, которые вы видели и, очень вероятно, читали все-таки состоялся. И да, такое бывает. Кто-то уходит из одной профессии в другую.
Из ИТ чаще всего уходят в повара :)
Оно самое, но это ещё из-за наивного перфекционизма, желания делать всё спокойно, красиво, грамотно и с любовью, подходящее место найти трудновато. Переломный момент был в 2015м, когда меня всё достало, купил тачку, кинул вещи, и уехал к родителям из Мск, долго не работал, нашёл жену, переехал к ней в НН, потом захотел коллектива и с последний год поработал в офисе в РнД, таки самореализовал волю, сейчас чутка с ними порабатываю уже из дома на юге (как и мечтал). Не рекомендую работать в непрофильной компании, где царит дух сиюминутной выгоды, и люди двигаются страхами лишиться места или премии, мотивируясь конфликтами и гневом; это не плохо - просто уровень развития, кому припрёт, тот меняется.
Просто кодить ради денег противно (и трудно - без иллюзий то), изобретать что-то для улучшения жизни людей с помощью технологий - да.
чорт, надо было идти в пехепе-кодеры.(если я куплю (допустим, продав что ненужное) на последние деньги тачку, потом год посижу без работы в НН, то вещей в нее грузить уже не будет, да и ехать некуда, на домик на югах явно не останется. А наши-то ныли, что платят маловато...)
> Отошёл в смысле перестал грузить мозг расплодившимися технологиями и отдаваться этому,
> школьники, как их не ругают, соображают с рождения лучше в этом.
> Надоели съёмные жилища городов, купил дом в селе, занимаюсь обустройством семейного
> быта и духовным взрослением, восстанавливаю утраченное здоровье, но дела для полного
> вдохновения пока ещё не подобрал - свободой надо ещё научиться пользоваться.
> От IT только подрабатываю SQL-щиком удалённо и хобби на ардуино типа
> умный дом. В IT пошёл по юношескому заблуждению - хорошо шарил,
> думал построю карьеру и покажу мамке и другим какой я крутой,
> а потом депрессия, стимуляция мозга информацией и соперничеством в организации не
> лучший наркотик, рано или поздно приходит толерантность.Большое спасибо за ответ. Сам испытываю что-то похожее последнее время. Наверно просто переел технологий. Если ужраться еды - будет тошнить. Тут то же самое. Добавить сюда грызню в коллективе, сиюминутную выгоду, потогонный режим работы и вынужденное делать тяп-ляп, а не как ты считаешь правильным. И все. Выгорание обеспечено.
В веке технологий у людей нет даже времени задуматься, просто взять и подумать часок о себе, о жизни. Чего я хочу? Зачем я это делаю? А времени нет. Дорога, дом, работа-работа-работа. Тысячи уведомлений лезут, каких-то дел.
А вот чтобы задуматься просто.
В общем. браво, товарищ! Думаю вы все правильно сделали.
> аноним: стоит ли отказаться от PHP при начале нового проекта?Смотря в пользу чего. Ну вот есть замечательный питон, с приятным синтаксисом и т.д., он во многом гораздо приятней и удобней, но по быстродействию и памяти сливает пыху, если рассматривать только pure python код, а не сишные модули.
Какие ещё варианты, Java? Да ну, лучше уж питон тогда.
Ну есть ещё node.js, ок, неплох, но по потреблению памяти как питон, по быстродействию чуть лучше питона.
Что там остаётся ещё, всякие менее популярные варианты типа Go...
А как же хипстерский Rust?
О нём всегда больше слов чем дела.
раст весь в весь в кольцах и золотых цепочках, а толку от него как то не видно. еще долго расти. пусть растишку пьет))
Есть хорошее наблюдение. Программисты на пуре С и php редко участвуют в спорах о том, какой ЯП лучше под какую задачу. Зачем, когда, кому, что доказывать? Как за вас решить какой вам ЯП выбрать?
Если вы профессионал, за вас ЯП выберет менеджер. Если любитель, то выбирайте какой нравится.
Можете обратить внимание, что очень много, в том числе и посещаемых сайтов в основе серверного бэкеднда используют php. Но java также часто используется на дорогих проектах. Так как я свои мелкие домашние задачи решаю на php я прекрасно понимаю, что у него есть плюсы и минусы.
> Есть хорошее наблюдение. Программисты на пуре С и php редко участвуют в
> спорах о том, какой ЯП лучше под какую задачу. Зачем, когда,
> кому, что доказывать? Как за вас решить какой вам ЯП выбрать?
> Если вы профессионал, за вас ЯП выберет менеджер. Если любитель, то выбирайте
> какой нравится.
> Можете обратить внимание, что очень много, в том числе и посещаемых сайтов
> в основе серверного бэкеднда используют php. Но java также часто используется
> на дорогих проектах. Так как я свои мелкие домашние задачи решаю
> на php я прекрасно понимаю, что у него есть плюсы и
> минусы.Ага. А вот в JavaScript сообществе постоянные холивары. TypeScript или JavaScript. React или Angular/Vue. Копаем дальше. Redux-Thunk или Redux-Saga или Context.
И каждая собака знает как делать лучше. Добавим сюда npm/yarn, gulp/webpack и получим тысячи вариаций срача.
круто, я уже давно не пишу на php, НО это классный язык для создания WEB приложений.
> круто, я уже давно не пишу на php, НО это классный язык
> для создания WEB приложений.И все же скорее нет, чем да :)
preload это отлично, можно весь фреймворк типа laravel/symfony закэшировать
В ответ к выше скрытому комментарию AngularJS закрывается в 2021 году. https://killedbygoogle.com/
Хорошо-то как. В чём подвох?
AngularJS != Angular
В том что гугл скорее всего выкатит что-то новое я думаю они просто будут рекомендовать использовать Dart. Как вариант что-то полностью несовместимое с Ангуляром вплоть до смены названия, а не просто Ангуляр 2.И да тем кто не верит в эту ссылку можете нажать ссылку на статью от авторов Ангуляра и прочитать в ней комментарии от автора блога. Где он написал что после 2021 года поддерживайте свой Ангуляр сами.
Пока что ни один человек кому бы я не послал эту ссылку не поверил что это правда...
ну как бы под Angular можно писать на Dart, но этим редко кто пользуется.
AngularJS фактически мертв уже года два, до 2021 они правят в нем баги. Не вижу тут ничего страшного, наоборот, удивлен что он еще поддерживается.
> И да тем кто не верит в эту ссылку можете нажать ссылку на статью от авторов Ангуляра и прочитать в ней комментарии от автора блога. Где он написал что после 2021 года поддерживайте свой Ангуляр сами.И приглашает присоединиться к Ангуляру:
We look forward to joining you on the next exciting part of our journey together on the Angular platform.
Dart и TS версии вроде еще будут поддерживаться.
Вот как вариант https://angulardart.dev/version и версия только на TS видимо останутся.
Хорошо, что 5 лет назад я решил его не изучать, т.к. примеры туториалов не работали на свежих версиях.
> Хорошо, что 5 лет назад я решил его не изучать, т.к. примеры
> туториалов не работали на свежих версиях.Используйте React ;)
> свойства классов теперь могут включать объявления типовНачали прозревать?
> Оператор распаковки внутри массивов "...$var", позволяющий выполнять подстановку существующих массивов при определении нового массиваНе имея намерения уязвить - а разве в php не было функции типа
flatten([1,2,[3,4],5,6]) -> [1,2,3,4,5,6]
(просто лень лезть на php.net и искать в доках, было оно там или нет)
> Добавлена функция mb_str_split(), аналогичная str_split(), но оперирующая не байтами а позициями символов в многобайтовой строкеЭэээ... А разве такая функция не должна изначально быть в любом языке, претендующем на поддержкув UTF8?
> претендующем на поддержкув UTF8?[шутка про PHP6]
Ой, про питон и Unicode еще пошути...
> Ээээ... А разве такая функция не должна изначально быть в любом языке, претендующем
> на поддержкув UTF8?для опоздавших родиться: некоторые любыеязыки _старше_ чем ваш любимый utf8. Поэтому изначально в них этих ужасов быть просто не могло.
Я понимаю, что UTF8 появился не во времена фон Неймана и Тьюринга, но в современном мире язык либо сам имеет полный набор мультибайтных аналогов базовых функций для работы со строками, либо такие функции все вынесены в отдельную либу, но в любом случае при релизе (языка или отдельной либы) должен присутствовать весь набор таких функций. А когда такие функции вводятся по одной в релиз - как-то это неправильно.
повторяю: в современном мире, помимо нескучных язычков от вчера-родившихся, есть полно таких, где utf8 - кривой сбоку добавленный костыль, которым он и является от рождения. Поскольку языки существовали за много лет до его изобретения.Дополнительные подпорки к нему приставляют по мере возникновения потребности и наличия времени разработчиков.
Ну вот очередную и добавили, можно радоваться.
Ну, блин, ещё раз: костыль или не костыль, а добавлять надо сразу и целиком. А поставить одну палочку, потом прикрутить вторую, потом третью, и так далее, пока через десять релизов не оформится вся конструкция - это даже костылём назвать нельзя.
кому надо? Разработчикам php вот было не надо. Они, видимо, не нуждались в одновременной поддержке уйгурского, тамильского и трех неведомых африканских языков.Когда понадобилось как-то работать с плодами выросшими на почве повсеместного пихания utf8 без мыла - написали себе mbstring.
Надо что-то еще - потихоньку дописывают.А не "вы тут посидите еще лет пять на версии 5.2, вон есть recode, она вам все перекодирует - а мы тут пока конесептюальный дизингн продумаем, и, каааак выкатим на гора - а вы будете переделывать все свои поделки с нуля, потому что про совместимость как-то забылось".
Не вижу в этом особой катастрофы.
P.S. если что - для меня прелести пехепе заканчиваются в том месте, где, иногда, удается пару операторов поправить в чужом кривом коде.
Вы не понимаете, что такое РНР.
Изначально это была просто удобная обертка над сишными функциями.
Быстрыми, но ни черта не знающими ни о каких там кодировках.
Когда оказалось, что веб растет взрывообразно и уже вчера нужен язык для быстрой разработки - эту обертку начали обмазывать сахаром и наращивать собственные библиотеки, как у настоящего языка. Вкривь и вкось, лишь бы быстрее работало и можно было быстро на этом разрабатывать.
И только к седьмой версии начали разгребать то, что получилось, и оглядываться на языки, выросшие менее хаотичным путем.
Ну, разгребать ещё в пятой версии начали.Но в седьмой решились делать это побыстрее.
УТФ-8 модное ненужно. ASCII всем хватит.
> для опоздавших родиться: некоторые любыеязыки _старше_ чем ваш любимый utf8. Поэтому изначально в них этих ужасов быть просто не могло.utf-8 1992, php 1994. Что еще сморозишь?
> utf-8 1992, php 1994. Что еще сморозишь?и в каком году этот мертворожденный стандарт, существовавший только на бумаге, оживили и запихали в линукс, уточните?
Просто долгое время он жил только внутри Plan9.А многие другие полагали, что весь уникод вместится в UCS-16, который в то время все ещё назывался UTF-16, и все научатся с этим жить.
Но потом пришёл (набрал свою популярность) HTML и WWW, и оказалось, что тратить по 2 байта на латинский алфавит (которого в HTML оказалось больше половины даже в локальных сайтах) накладно.
А с другой стороны, оказалось, что в два байта все символы не влезают, и все равно приходится разгребать много кодовые символы и последовательности. А значит, UTF-16 уже не способен обеспечить кажущуюся простоту. А UTF-32 - это уж совсем жирно.
Вот тут вдруг все и обнаружили, что кое кто в никому не нужном Plan9 уже придумал вполне удобную кодировку UTF-8.
> utf-8 1992, php 1994. Что еще сморозишь?Например, Винда-Семерочка до первого сервис-пака совершенно не умела в стандарт ЮСБ-3, принятый за два года до ее релиза при активнейшем участии... самой же Майкрософт.
Годы рождения чего бы то ни было в айти вообще могут ни черта не значить.
никто же не мешал производителям (если они были - за два года родить надо не пачку мятой бумаги, а работающие микросхемы) писать и подписывать собственные драйвера usb3 - никакой супер-поддержки от самой винды для его работы и не требуется (ну ок, не сможет высунуть окошко "вы воткнули в модный usb3 свое устаревшее usb1 г-но - немедленно уберите и прекратите!")Точно так же как никто не мешал желающим бежать впереди паровоза, и создавать свои уникальные чудо-программы, работающие с utf8. Просто их "почему-то" не оказалось.
Зато, когда эта идея наконец посетила дЭффективных менеджеров редхата (викивракия врет что в 2002м, но, что-то, похоже - врет) - обиженными ускользнуть удалось крайне немногим.
> никто же не мешал производителямА майкрософту написать универсальный драйвер кто-то мешал? Пусть даже говенный, как с видеокартами, но позволяющий системе работать с шиной, пока не подъехали дрова от производителей.
Чтобы не позориться при установке "а дайте-ка мне дрова на то, с чего я загрузилось, а то я вообще ни одного устройства не вижу в упор"?
универсальный драйвер несуществующей в природе аппаратуры?Боюсь, мешало то, что в палате мер и весов эталон ненужно уже был.
> пока не подъехали дрова от производителей.
то есть производитель непоймичего не может написать драйвер по открытым спекам и с доступыми средствами разработки, а винда должна сама святым духом научиться понимать то, неизвестно что?
Обычно все происходило ровно наоборот - производитель железки делает железку, пишет под нее драйвер, поскольку только он и знает, как она работает, выпускает на рынок - если железку активно покупают, ms включает драйвер в поставку винды. И только для абсолютно на всех компьютерах установленного железа (обычно включенного в сертификационные требования для win logo) с доступными спеками - MS иногда пишет и предоставляет свой.
Аппаратура по той шине подключалась сто лет как известная - вроде USB-CD. Только винда разводила ручками, не имея понятия о работе шины, созданной по новому стандарту, в котором сама же M$ еще за два года до того принимала активное участие.
> Аппаратура по той шине подключалась сто лет как известная - вроде USB-CD.так это - стандарт - шины. Вот за него скажи спасибо - microsoft. (г-но стандарт, если честно)
> Только винда разводила ручками, не имея понятия о работе шины,
шина - она со стороны твоего USB-CD. На нее есть стандарт, не говоря уже о заложенной в тот стандарт обратной совместимости. Со стороны винды - видны несколько регистров и блок памяти на pci-шине, относящиеся к устройству с неизвестным ей id. Что и в какой последовательности туда надо записать, чтобы управлять пресловутой шиной - знает драйвер, которого еще нет. Это знает _только_ разработчик чипа. Причем не имея такого чипа на руках - ты напишешь гарантированно нерабочий драйвер, даже если спецификации в целом тоже стандартизированы.
Вот есть у тебя стандарт на ethernet (пусть 10mb, для простоты). Напиши мне драйвер сетевой карты. Какой - не скажу, я ж ее еще не разработал.
Каким альтернативно-одаренным надо быть, чтобы этого не понимать?
> Со стороны винды - видны несколько регистров и блок памяти на pci-шине, относящиеся к устройству с неизвестным ей idИзвестным. Это все тот же USB2-CD, просто подключенный через USB3 (обратно совместимую с USB2). Нет, разводят руками винды, не знаю такого устройства... уже загрузив с него же базовый дистрибутив.
мда, пичалька. Тут альтернативная одаренность просто зашкалила.Я не знаю как тебе это объяснить.
Неизвестным. USB2-CD твой - подключен к _контроллеру_. НЕ к винде. Винда видит - контроллер. Это регистры и блок памяти. Неведомого ей назначения и с неведомым форматом данных.
Точно так же, как у винды (и у невинды тоже) есть отдельный драйвер под каждый sata-контроллер в отдельности, хотя диски мы в них втыкаем - одни и те же и у них тоже один стандарт. Потому что это тоже набор регистров и памяти, и как через них передать стандартную команду sata и прочитать ответ - знает только драйвер _контроллера_.
> уже загрузив с него же базовый дистрибутив.
через драйвер bios (или uefi). Который таки да - знает что и в каком порядке писать в регистры конкретного контроллера, чтобы увидеть подключенный к нему диск, поскольку берется из пзухи на плате этого контроллера (а с контроллера без таковой - не загрузишься, его просто вообще никак не видно до загрузки OS с правильным драйвером). Но, к сожалению, после загрузки системы и переключения в protected mode им не удастся воспользоваться.
О! Я наконец нашел человека, который мне расскажет, почему при перетыкании, скажем, мышки в другое USB-гнездо винда удивленно "обнаруживает новое устройство" и начинает ставить ему драйвер.
> О! Я наконец нашел человека, который мне расскажет, почему при перетыкании, скажем,
> мышки в другое USB-гнездо винда удивленно "обнаруживает новое устройство" и начинает
> ставить ему драйвер.USB вообще отвратительная гадость. Зато бесплатно.
> USB вообще отвратительная гадость.Просто в Убунте я перетыкаю в другое гнездо хоть целый принтер - и он без разговоров продолжает работать, не делая из этого большого дела...
>> USB вообще отвратительная гадость.
> Просто в Убунте я перетыкаю в другое гнездо хоть целый принтер -
> и он без разговоров продолжает работать, не делая из этого большого
> дела...А в dmesg смотрел? И чо там?
> А в dmesg смотрел?Я в dmesg смотрю при проблемах. А тут их как-то никто и не создает...
> О! Я наконец нашел человека, который мне расскажет, почему при перетыкании, скажем, мышки в
> другое USB-гнездо винда удивленно "обнаруживает новое устройство" и начинает ставить ему драйвер.драйвер уже давно стоит, она просто привязывает его к новому id. Если это не что-то жутко специализированное, то можно наблюдать забавный эффект, что пересунутая в другую дырку мышь и клавиатура уже успешно работают, а винда еще пару минут "обнаруживает".
Поскольку нет гарантий, что там не обнаружится еще какое-нибудь устройство.
У тебя в линухе происходит все то же самое, но без вывода тебе жизнеутверждающей картинки с дрыгающимися иконками это не выглядит так интересно - хотя, помнится, гом уже что-то такое умел рисовать?А вот наблюдать айдишники вида "250:0:0:0" при подключении глючной флэшки - это удается только в линухе. Именно по той причине, что он неспособен их запомнить с прошлого раза, не смотря на все shittyd-udevd
Внезапно PHP - 1994 год, UTF-8 - 1992...
еще один читатель викивракии на наши головы...
JS (Mocha/LiveScript) в 1995 смог в UTF, a php в 1995 (релиз 1.0) - нет.
Завязывай спорить, не позорься.
> flatten([1,2,[3,4],5,6]) -> [1,2,3,4,5,6]это долго и нудно писать, быстрее/проще/понятнее как в ECMAScript/JS через "..."
Было бы интересно статистику предпочтений реальных разработчиков видеть, а не комменты непричастных. Ах да, они же на работе сейчас.
предпочтения - они точно так же от непричастных - даже если они сейчас и на работе, и во всю пыхтят над своим пехепе 5.2 прожектом - предпочитая, разумеется, erlang. Но надсмотрщик с кнутом не позволяет им отвлекаться.
> предпочтения - они точно так же от непричастных - даже если они
> сейчас и на работе, и во всю пыхтят над своим пехепе
> 5.2 прожектом - предпочитая, разумеется, erlang. Но надсмотрщик с кнутом не
> позволяет им отвлекаться.Ха-ха ) Близко )
вот признайся, что ты давно на пхп не пишешь, а может быть даже никогда на нем и не писал ничего?
который раз замечаю, что о пхп у тебя очень дилетантские представления.
А я то думаю -- что Erlang (не Elexir) делает в Laravel...Это из серии -- как вынести мозг индусам? Довавить Clojure-loop в Java класс и пусть ломают голову как оно работает! :)
> А я то думаю -- что Erlang (не Elexir) делает в Laravel...
> Это из серии -- как вынести мозг индусам? Довавить Clojure-loop в Java
> класс и пусть ломают голову как оно работает! :)Индусы захватили Мелкософт. Им там веселее. С C# балуются.
Clojure не трогать! Любимый язык!
Какую статистику? Админов локалхоста?
Разработчики могут предпочитать просмотр порно чтению мануалов, но руководство компании не позволит смотреть порно на работе.
ну это у вас какое-то очень жестокое руководство. Обычно порно, если не сильно палиться, все же можно.
А вот "корпоративный стандарт разработки у нас- php 7.3 - и с вашими идеями, что хорошо бы нам все переписать на прекрасном игого - вооон туда, в отдел кадров и к левому столику - там увольнениями занимаются. Или эти двенадцать тасков БУДУТ закрыты до конца дня, и пройдут ревью!"
> ну это у вас какое-то очень жестокое руководство. Обычно порно, если не
> сильно палиться, все же можно.
> А вот "корпоративный стандарт разработки у нас- php 7.3 - и с
> вашими идеями, что хорошо бы нам все переписать на прекрасном игого
> - вооон туда, в отдел кадров и к левому столику -
> там увольнениями занимаются. Или эти двенадцать тасков БУДУТ закрыты до конца
> дня, и пройдут ревью!"Ух ты ж бл. Это ад для разработчиков?
это рай. Ад там же, но системным администратором.
> это рай. Ад там же, но системным администратором.Для садо-мазо?
самый важный язык на всем свете. долгих лет.ЗЫ Круче только ЯваСкрипт
Ты тоже программируешь на HTML?
А .bat скрипты еще круче явы!
Да!!!
Херня в том, что PHP сейчас модно ругать, но альтернатив ему особенно и нет. Руби сдулся так толком и не взлетев. Питон - возможно в каких-то местах и неплох, но и не так уж и хорош, чтобы можно было однозначно выбирать его. Джанго - на фоне Симфони и Ларавеля смотрится не так уж убедительно, как и сам Питон на фоне ПХП. Особенно доставляют ПРИНЦИПЫ.. или как их там, которые декларируются Питоном как ключевые.. типа явное лучше неявно, хорошее лучше плохого.. и прочий бред, на которые, впрочем, также повсеместно кладут. ПХП - язык не обремененный идеалогией, пилящийся практиками, по возможности и по необходимости. Да, есть и недостатки, но на практике (веб-формошлепство) они не так уж мешают, а рывок, который начался с 7-ки - просто сказка какая-то.. Проблема ПХП, имхо не в языке, а в том что есть куча легаси - того же вордпресса и прочих поделок... типа битрикса, которые по хорошему надо бы похоронить, но никто этого делать не собирается, ибо обратная совместимость. и куча инсталяций(потраченного бабла). Вот одновременно и существует 2 параллельных мира ПХП.. вордпресс и битрикс.. и всякое модное-молодежное симфони, ларавель..
> PHP сейчас модно ругать, но альтернатив ему особенно и нет.Естественно, нету. И я могу одним предложением объяснить — почему: благодаря возможности произвольно смешивать HTML-разметку и код PHP. Гениальнейшая идея! Жаль, что реализация самого ЯП не ахти.
ЗЫКстати, сами пыхтачки не всегда осознают, что любят Пых именно за это. :) Если бы этой особенности в Пыхе не было, его бы самого давно уже не было.
> благодаря возможности произвольно смешивать HTML-разметку и код PHPБудто в этом есть что-то плохое... Посмотрите внимательно на C# .net core и др. - эту фичу уже много лет пытаются скопировать многие "крутые" языки.
Что касается перка "говнокод" - для него наличие ПХП вовсе не обязательно, да и наличие возможности что-то с чем-то смешивать тоже.
>> благодаря возможности произвольно смешивать HTML-разметку и код PHP
> Будто в этом есть что-то плохое... Посмотрите внимательно на C# .net
> core и др. - эту фичу уже много лет пытаются скопировать
> многие "крутые" языки.Я же не говорю, что плохое. Наоборот же пишу: гениальное изобретение. Но только для крепких духом и мозгом. В кривых же руках открывает прямую дорогу к гновнокоду.
> Что касается перка "говнокод" - для него наличие ПХП вовсе не
> обязательно, да и наличие возможности что-то с чем-то смешивать тоже.Целиком и полностью согласен.
razor blazor ?
> razor blazor ?Ага, он. Но помню 10 лет назад я на Razor что-то писал. Теперь вот Blazor появился.
Другими словами, что такое разработка на пхп сегодня, тебе абсолютно неизвестно)
ASP, когда-то баловался ради лулзов таким на VBScript/JScript с ODBC в начале-середине нулевых. Только хорошего тут что?
Хорошего — удобство. Учитывая, особенно, что для большинства, увы, оказалось совершенно не по силам освоить XML, XSLT и производные средства, задуманные для собственно развития Веба.
Есть нюанс. XSLT — Turing-complete, так что это сорта уровня JS.
> Есть нюанс. XSLT — Turing-complete, так что это сорта уровня JS.«XSL, — как бы говорит нам Консорциум, — is a family of recommendations for defining XML document transformation and presentation».
А в другом месте добавляет (и полужирным выделяет, это не я своевольничаю):
«A transformation in the XSLT language is expressed in the form of a stylesheet. A stylesheet is made up of one or more well-formed XML [XML 1.0] documents conforming to the Namespaces in XML Recommendation [Namespaces in XML]
A stylesheet generally includes elements that are defined by XSLT as well as elements that are not defined by XSLT. XSLT-defined elements are distinguished by use of the namespace http://www.w3.org/1999/XSL/Transform (see 3.1 XSLT Namespace), which is referred to in this specification as the XSLT namespace. Thus this specification is a definition of the syntax and semantics of the XSLT namespace.
The term stylesheet reflects the fact that one of the important roles of XSLT is to add styling information to an XML source document, by transforming it into a document consisting of XSL formatting objects (see [XSL-FO]), or into another presentation-oriented format such as HTML, XHTML, or SVG. However, XSLT is used for a wide range of transformation tasks, not exclusively for formatting and presentation applications».
Напомню от себя, что XML в своё время планировался всеобъемлющей заменой для HTML на Вебе (с переходным этапом на XHTML). Но не сошлись звёзды, не пришли посоны к успеху. Обезьянам оказалось невозможно постичь сию науку. Пичялька.
XHTML/XML/XSLT - вещи весьма полезные без сомнения, но что было в ASP & PHP начала 2000-х было не очень. На каждый чих открывать соединения, логика с форматированием смешанные и прочее, хотя это может всего лишь был опыт ковыряния в легаси, кошмарная вещь. А шаблоны и в NodeJS есть для любителей этого дела: https://expressjs.com/en/resources/template-engines.htmlМногие выглядят более адекватно, да и для любителей есть это дело и в других языках - C, C++, D, Java, Go, ... Сотни их.
на php 7.4 Bitrix тупо не заведётся :(
подождите недельку - починют.А обратной совместимости там, если кто не в курсе, и не было никогда.
Раз в пол-года очередное обновление стабильненько ломает все что понагуанокодили вручную.Ну и что, вы же за лицензию уже заплатили? Теперь заплатите "разработчику на битриксе", он поправит.
У меня нет проблем - я же не идиот всё сразу в прод тащить :)Есть надежда что может быть именно в моём случае вообще гладко будет (у меня сайт на windows-1251) - а у Битрикса и нового php 7.4 на сайтах с utf-8 проблемы ожидаются.
Удобно, чо.(к счастью, у меня тоже 1251, но вот думать в какие моральные и денежные потери обойдется апгрейд - не хочется вообще. Хочется нечаянно снести все это нахрен, и посадить цветочки.)
> подождите недельку - починют.
> А обратной совместимости там, если кто не в курсе, и не было
> никогда.
> Раз в пол-года очередное обновление стабильненько ломает все что понагуанокодили вручную.Меня, кстати, с давних пор интересует ответ на вопрос: а хостеры как поступают в плане обратной совместимости? Держат несколько версий Пыха для клиентов, латая по мере нахождения дыр, пока последний солидный господин не откажется от окаменевшей версии сабжа?
> Держат несколько версий Пыха для клиентовда.
> латая по мере нахождения дыр
ну вот еще. Пых у любого вменяемого хостера работает от юзера клиента. Иппут? И будут иппать! Пока вы не купите стир...услугу по сопровождению вашего чудо-сайта с почасовой оплатой.
"Разумеется, у нас есть пункты договора, предполагающие отключение нахрен вашего сайта и блокировку учетки "в случае создания недопустимой нагрузки на сервер", без всяких попыток разбирательства - вы это майните, вас поломали и майнят, или просто гугль зашел поиндексировать".
Наконец-то. Кайфуем, братья по php! Наблюдаем за комментами, хихикаем над додиками, не осознающими что php - это единственный продакшн реди язык с поддержкой динамической типизации и полноценным ООП. Скриним высеры неосиляторов, ноющих о том, какой php 4 плохой. Как же я люблю PHP!
Да эти пeтyхи такие холопы. Ну и уй на них! Мы с тобой бабки делаем а они за пачку сигарет работаю... ротиком
Когда уже ребята из PHP сделают возможность строго указывать типа элементов массива который передают/получают, чтобы было что-то вроде> function show (array<int> $data);
и
> function show (array<ClassName> $data);
очень подобного не хватает из коробки
Разработчики пхп писали об этом, потеря в производительности пока не позволяет сделать такие тайпхинты.
Спасибо :)
Копировать иероглифический синтаксис из плюсов идея чреватая.
Создайте класс BlablaCollection, который будет содержать массив только определенного типа, сделайте этот класс коллекцию итерируемой и передавайте это в нужную функциюfunction show (BlablaCollection $data);
Тут проблема в том, что либо придется копипастить кучу кода, либо терять типизацию в абстрактном классе с реализацией базовых методов типа map() или sort().
Мир не идеален =)На текущий момент, на мой взгляд, лучше
копипастить/кодогенерировать, чем
ориентироваться на array.Еще можно взглянуть на:
- hack lang (там есть генерики, и вроде бы,
можно массивы делать типизированные).
- java :)
Если кастомные дженерики типа MyCollection<T> еще сделать можно (хотя тоже придется кучу кода перепахать), в случае с array это нереально. Ну то есть переписать придется вообще примерно все.
Это есть в Hack.
Лучший язык для веба.
Знак $ не хотят убрать?
Те кто говорит что PHP какой-то не такой, просто имеет мало опыта в программировании и толком обычно ничего не знает. Да есть отдельные языки созданные под отдельные задачи, которые они решают очень легко и просто, но это все языки мертвые при рождении, они умирают сразу как заканчиваются задачи для которых их создали, некоторое время сохраняются адепты, которые пихают их во все проекты для решения не свойственных задач, но я знаю только одну технологию, которая смогла пережить такой вот крах - J2EE, да и она сама по себе ничем не заслужила этого, просто крупняки на волне ввалили сотни лярдов баксов и теперь не вынуждены продолжать вваливать. Если говорить о PHP - это язык, который позволяет решить подавляющее количество прикладных задач, не всегда он решает их идеально, на 100%, иногда это 90% или 70%, но тем не менее, он давно уже стал базовым языком, таким же как C++, просто для решения любой задачи надо использовать наиболее подходящее средство, поэтому не надо пытаться писать драйвер на PHP, а сайт визитку на C++, хотя при определенном упорстве это возможно, на PHP можно написать драйвер, просто надо будет сильно допилить PHP, но тем не менее возможно.
Если сравнивать PHP и C#, то первый явно выглядит предпочтительнее, хотя адепты второго его толкают как корпоративную разработку, как раз как средство корпоративной разработки оно подходит куда меньше чем PHP, просто потому, что обратная совместимость у PHP запредельная, всегда можно просто не обновиться, просто поставить предыдущую версию и это практически на любое железо и операционку, C# шарп подходит для проектов с жизненным циклом 3-5 лет, потом начинаются проблемы совместимости, отсутствия железа, версий операционки, выход на виртуалки со всеми плюшками потери производительности виртуалки относительно железного сервера и т.д., серьезные корпоративные проекты имеют срок жизни в разы больше и адекватную работу может обеспечить в данном случае только PHP, даже если проект застыл в своем развитии и только латаются редкие дырки.
Это лично мой опыт и практически всех моих знакомых с кем знаком offline, все мы писали под MS и только баловались PHP, потому что во времена PHP3 особой разницы не было, зато была куча плюшок с высокой интеграцией MS продуктов между собой, потом появился PHP5 и .NET и разница оказалась на столько глобальной в пользу первого, что плюшки интеграции все были убиты проблемами обратной совместимости и время только показало правильность того выбора что был сделан большинством из нас - nix системы развились и оставили далеко позади MS, они перестали быть чем то волшебным, а их бесплатность убивает любые доводы желающих использовать MS, лично я не знаю никаких новых проектов стартующих на .NET, на нем сидят только те кто уже сели в момент появления и кто не сориентировавшись вложились в него, в основном это крупняки, которые имели администраторские команды под windows и для них тогда казалось проще запускать новую корпоративную разработку на .NET
https://cmsmagazine.ru/journal/items-the-perfect-paragraph/
Не благодари. Совершенствуйся. Однажды люди начнут читать твои посты и комментарии.
четырнадцать томов "В поисках утраченного времени" этому господину!
PHP все круче.
Эх, ну никак не могут без приключений.
https://bugs.php.net/bug.php?id=78892 (заблокировано хрен в рот позором, юзайте прокси)
А при чем тут PHP вообще? Это мейнтенеры в systemd-сервисе не проставили нужные capabilities.
FPM - это часть PHP.
systemd-unit файл поставляется апстримом, а не меинтайнерами даунстрима.
7.3.11 прекрасно работал, там они, видимо, были.
Так что это косяк PHP.
> 7.3.11 прекрасно работал, там они, видимо, были.там их видимо, как раз и не было. А тут решили всем сделать щастья. Получилось как обычно.
> Так что это косяк PHP.видимо, у разработчиков не systemd/linux (хм, десяточка?)
У подавляющего большинства разработчиков Линукс. Но при разработке и тестировании все запускается вручную, разумеется.
Действительно, в репозиторий положили.Такое бывает, кто-то прислал юнит, его в репозиторий положили (почему бы и нет), а при релизе 7.4 никто не проверил.
Впрочем, в репозитории только пример, проверять работоспособность пакета - задача мейнтенера.
А самое главное от чего у меня волосы дыбом встают, это то что мне отвечают меинтайнеры PHP в openSUSE https://build.opensuse.org/request/show/751575#comments
Я что серьёзно САМ должен править systemd-unit файл при изменении конфигурационного файла php-fpm?
И это не является ошибкой, а обычный нормальный процесс настройки?
По вашей ссылке все сломалось и отдается 500, но вообще такие случаи, когда надо править юнит, это норма в системд.
Это не ссылка сломалась, это OBS на апаче периодически... это нормально для неё.Одно дело, когда я хочу изменить порядок или условие загрузки юнита, это нормально.
Но если я хочу вместо 127.0.0.0:9000 (оффтопик едишн конфиг) использовать нормальный юниксовый сокет, с выставлением владельца (nginx:nginx) и режима для него (0600) я должен САМ также позаботится, что в CapabilityBoundingSet присутствовали все CAP_CHOWN CAP_SETGID CAP_SETUID?
А просто добавить туда CAP_CHOWN, они не хотят это угроза безопасности, лишняя привелегия которая не нужна на дефолтном конфиге...https://build.opensuse.org/package/show/home:13ilya/php7
Короче я просто создал в домашнем репозитории свой php со своими нужными мне дефолтными настройками (который при этом будет обновляться от родительского и автоматически патчится моими настройками) и пусть идут лесом со своим дефолтом.Проблема в том, что если так начнут делать и остальные, то у OBS ресурсов на всех не хватит каждый такой зоопарк обслуживать.
> Я что серьёзно САМ должен править systemd-unit файл при изменении
> конфигурационного файла php-fpm?да, сюрприз!
Мы заботимся о вашей безопастносте, и запретили fpm менять владельца собственного сокета.
> И это не является ошибкой
ЭТО является системным менеджером.
На этом мои страдания не заканчиваются...
https://bugs.php.net/bug.php?id=78916
Ещё и отправка почты отвалилась. :-(
лучше бы нормальный debugger запилили
Пиши сразу правильно
>>Сокращённый оператор присвоения "??="Типичное говноедство от PHP во все времена: давайте на каждую стандартную понятную конструкцию напишем новый "оператор" из трёх закорючек! *лицо-ладонь*
"Зато не перл!"
>>> Переведены в разряд устаревших такие возможности, как вложенные тернарные операторы без скобокГовнокодерам, забивающимся на плохо документированное поведение оператора, снова привет. Сколько раз говорилось: скобки лишними не бывают.