LINUX.ORG.RU

Что принципиально невозможно сделать на php

 ,


0

2

Всем доброго вечера! Определяюсь с выбором языка программирвоания. точнее их будет два. Второй был выбран за меня - java, но его изучение состоится много позже. А вот первым я хочу выучить php, но применять его и для разработки веб приложений и для локальных. Скажите, на что способен php без удаленого сервера? насколько он удобен? (речь конечно же о разработке в среде linux, но все таки интересно будет ли тот же код работать в windows?)

Перемещено leave из desktop



Последнее исправление: Ramiras-lord (всего исправлений: 1)
Ответ на: комментарий от goingUp

я ещё могу понять, почему так сделано в сишке.
но почему так сделано в скриптовом языке, который должен упрощать работу за счёт потери быстрдействия — для меня загадка.
скорость потеряли, удобства не добавили.

VladimirMalyk ★★★★★
()
Ответ на: комментарий от VladimirMalyk

жс решает такие задачи, которые пхп-разработчику и не снятся — лонгран, асинхронщина, подгрузка кода в рантайме

Как будто пых этого не может. Приходи когда в жс завезут многопоток.

но почему так сделано в скриптовом языке, который должен упрощать работу за счёт потери быстрдействия — для меня загадка

Чтобы не изобретать велосипед.

no-such-file ★★★★★
()

Учи конечно же. Куча долларов в коде - хорошая примета, денег много будет.

anonymous
()
Ответ на: комментарий от no-such-file

Как будто пых этого не может. Приходи когда в жс завезут многопоток.

формально — может, но в продакшне днём с огнём не сыскать.
в то время как в js на каждом шагу, и даже джуны понимают что такое промис и пользуются ими постоянно.

для многоптотока завозят веб-воркеры, народ осваивает.

и уже если развивать тему — то RxJS уже вовсю в продакшне. когда же RxPHP хотья бы нос высунет из маргинальщины — большой вопрос.

VladimirMalyk ★★★★★
()

А вот первым я хочу выучить php

Ладно, черт с ним с питоном, но дали же вам Го

Dred ★★★★★
()
Ответ на: комментарий от VladimirMalyk

и даже джуны понимают что такое промис и пользуются ими постоянно.

А что им остается, тонуть в калбяках? Для бэкенда эти ваши базворды малоактуальны, там нужна нормальная многопоточность.

bread
()
Ответ на: комментарий от VladimirMalyk

Смотрю жоэсники очень гордятся, что до них наконец доходят замшелые асинхронные паттерны. Как же вы писали все 20 лет до этого, даже страшно представить.

bread
()
Ответ на: комментарий от bread

колбеки и промисы суть инструменты для управления асинхронным выполнением.

и это совсем не то, что «асинхронные события» в том же Symfony (dispatchAsync перед смертью инстанса — умопомрачительная асинхронщина)

VladimirMalyk ★★★★★
()
Последнее исправление: VladimirMalyk (всего исправлений: 1)
Ответ на: комментарий от bread

вот уж где прорыв — так это в жс в последние 2-3 года.

если до этого городили es5 страдая от поддержки IE*, то сегодня сами пишут язык для себя, не дожидаясь пока это отимплементят в браузере или в ноде.

асинк-эвейт завезли меньше чем за год — не то что пхп не снилось, питону и то не снилось.

VladimirMalyk ★★★★★
()
Ответ на: комментарий от Dron

Да, вот этот поток сознания от человека, не осилившего разницу между «тся» и «ться», тоже подтверждает ущербность пишущих на PHP. Спасибо.

hateyoufeel ★★★★★
()
Ответ на: комментарий от VladimirMalyk

инструменты для управления асинхронным выполнением

Это было бы замечательно, если был бы какой-то выбор - работать асинхронно или нет. Как тебе уже справедливо намекнули, джуны жс знают о промисах не от хорошей жизни.

асинк-эвейт

ИМХО совершенно ненужное ненужно.

сегодня сами пишут язык для себя

Ага, наконец-то придумали нормальные классы и теперь не нужно извращаться с prototype. ИМХО кончится такая вольница плохо - начнут городить сахарок для всего, и утонут в мусоре синтаксиса на каждый чих. Асинк-авейт это кстати первый звоночек.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

начнут городить сахарок для всего, и утонут в мусоре синтаксиса на каждый чих

Так уже. Читаешь новшества ES6 и понимаешь, что js уже нифига не минималистичный. А теперь они взяли повышенные соцобязательства давать новый стандарт каждый год. Плюс огромный зоопарк нестандартизованных библиотек с временем жизни полгода. Тут начинаешь осознавать, что кровавый жаба-ынтырпрайз не такой уж и кровавый.

bread
()

Я конечно не идеализирую и не защищаю похапе, но когда говоря о невероятно уродливом дизайне имеют в виду имена функций с подчеркиванием и синтаксис условных операций...

wxw ★★★★★
()

Что так вяло срач идёт?

The size of an integer is platform-dependent, although a maximum value of about two billion is the usual value (that's 32 bits signed). 64-bit platforms usually have a maximum value of about 9E18, except on Windows prior to PHP 7, where it was always 32 bit.

Высокоуровневый язык с платформо-зависимыми целыми. Задизайнили так уж задизайнили!

Deleted
()
Ответ на: комментарий от no-such-file

Затем же, зачем это делают в крестах.

Я знаю, что в плюсах делают похоже. Но во-первых, плюсы - достаточно низкоуровневый язык, где важны детали. Во-вторых, тот еще пример для подражания. Вообще, для человека, привыкшего к ФП, все это выглядит жутко коряво. И так еще в других местах наберется

dave ★★★★★
()
Последнее исправление: dave (всего исправлений: 1)
Ответ на: комментарий от no-such-file

Как тебе уже справедливо намекнули, джуны жс знают о промисах не от хорошей жизни.

в том и дело, что пхп не решают подобных задач, потому хейт в сторону js зачастую от неграмотности

Ага, наконец-то придумали нормальные классы и теперь не нужно извращаться с prototype.

это только сахар поверх прототипов, которые сами по себе очень мощный инструмент.

VladimirMalyk ★★★★★
()
Ответ на: комментарий от dave

Но во-первых, плюсы - достаточно низкоуровневый язык, где важны детали

Вас не поймёшь. То плачут что в пыхе всё тяп-ляп, то возмущаются, что слишком много внимания к деталям.

no-such-file ★★★★★
()
Ответ на: комментарий от VladimirMalyk

в том и дело, что пхп не решают подобных задач

Джуны не решают, им ненужно.

потому хейт в сторону js зачастую от неграмотности

Нет, это от жалости к js джунам.

это только сахар поверх прототипов

Но однако же он понадобился, жс народ пищит и плющится от восторга.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

кроме прочих, js решает в том числе и проблему получения и компоновки исполняемого кода в рантайме.

поэтому вместо «классов» в качестве фундамента предоставлены инструменты для компоновки функций в рантайме.

благодаря этому можно в рантайме расширить поведение в том числе и базовых прототипов, подгрузив нужный полифил.

VladimirMalyk ★★★★★
()

Only

GOLANG!

anonymous
()
Ответ на: комментарий от VladimirMalyk

в том и дело, что пхп не решают подобных задач, потому хейт в сторону js зачастую от неграмотности

Каких задач? Подгрузить аяксом данные и распихать их по дому, собрать страничку на сервере по шаблону, что еще? Или кто-то уже пишет бизнес-логику на жоэсе? Ну пламенный привет этим безумцам тогда.

bread
()
Ответ на: комментарий от VladimirMalyk

Смотришь на современный веб и думаешь: лучше б они просто снежинки рисовали и не решали «проблему получения и компоновки исполняемого кода в рантайме».

bread
()

и для локальных. Скажите, на что способен php без
удаленого сервера? насколько он удобен?

Очень неудобно использовать в скриптах язык, поведение которого зависит от ini-файла. Для веб это ещё куда ни шло, да и по соображениям безопасности полезно может оказаться, а вот для локального скриптования хуже не придумать.

AS ★★★★★
()
Ответ на: комментарий от bread

не забывай, что для пхп классика — это синхронная прокладка между бд и клиентом, которая даже состояние не хранит.

и работать с такой прокладкой значительно легче, чем поддерживать состояние в рантайме, в асинхронной среде.

по этой причине js-разработчики пришли к redux, с его чистыми ф-ями и персистентными иммутабельными структурами данных, прекрасно понимают что такое CQRS и Event-Sourcing и зачем они нужны.

VladimirMalyk ★★★★★
()
Ответ на: комментарий от VladimirMalyk

меня тошнит, когда я вижу вывернутый тернарный оператор — очень странно, что не тошнит php-шников.

Если ты про ассоциативность, то мимо. Тернарный оператор читаем, пока он один. Когда начинается нагромождение их - значит что-то идет не так, и ассоциативность тут будет меньшей проблемой.

а по поводу универсальности — львиная доля пхп это вордпресс, в котором аякс запросы делают через ajax-admin.php. это настолько ГОВНОКОД, что даже мазаться в это стыдно. а уж тем более приводить как критерий качества.

А еще львиная доля это приложения написанные на symfony/laravel/yii и всяких современных cms. И да, для нормальных пхпшников вордпресс не является критерием качества.

завезли то, что и так само собой разумеется в других экосистемах. это не переворот — это комьюнити немного повылезло из тонн велосипедов.

Только вот почему-то если верить питонистам, нормальная работа с пакетами через pip у них тоже появилась не так чтобы очень давно и composer все еще по многим вещам удобнее/функциональнее pip

жс решает такие задачи, которые пхп-разработчику и не снятся — лонгран, асинхронщина, подгрузка кода в рантайме.

Только в твоем больном воображении. Пхп вполне себе используется для написания долгоживущих демонов и асинхронщины(для тех же вебсокетов). Причем уже не первый год.

формально — может, но в продакшне днём с огнём не сыскать.

Ты не в тех продакшенах ищешь. Хотя если судить по тому, что для тебя львиная доля это вордпресс, то неудивительно.

асинк-эвейт завезли меньше чем за год — не то что пхп не снилось, питону и то не снилось.

Внезапно, в питое есть async/await. И внезапно его используют в продакшенах. Опять мимо.

в том и дело, что пхп не решают подобных задач, потому хейт в сторону js зачастую от неграмотности

В том то и дело, что ты просто не в курсе, какие проблемы решают в пхп а какие нет. Пишут на пхп асинхронный код.

А хейт в сторону жс за недостатки жс(совсем убогая типизация, где логика не работает, слабая стандартная библиотека, плавающий this и еще довольно много неочевидностей). Не зря ведь придумано куча языков, компилирующихся в js, лишь бы не писать на чистом js.

благодаря этому можно в рантайме расширить поведение в том числе и базовых прототипов, подгрузив нужный полифил.

Нормальные люди называют это monkey patching и не приводят это в достоинства. А за расширения базовых классов вообще канделябрами бьют. Полифилы же это не расширение, а попытка хоть как-то боротся с отсталостью браузеров.

не забывай, что для пхп классика — это синхронная прокладка между бд и клиентом, которая даже состояние не хранит.

Да, классика это синхронное выполнение. И в некоторых задачах оно заходит вполне себе замечательно. Но можно писать и асинхронно, для задач где это надо.

А вот в ноде можно только страдать с асинхронщиной, ибо варианта писать синхронно нет.

и работать с такой прокладкой значительно легче, чем поддерживать состояние в рантайме, в асинхронной среде.

Лол, то есть если работать легче, то это теперь недостаток?

по этой причине js-разработчики пришли к redux, с его чистыми ф-ями и персистентными иммутабельными структурами данных, прекрасно понимают что такое CQRS и Event-Sourcing и зачем они нужны.

То есть берем изначально более сложны подход и потом героически превозмогаем. Гениально.

aiive
()
Ответ на: комментарий от aiive

Видимо, у пыхеров и условный оператор читаем, пока он один. А если ветка из 4-х else if, то всё, мозг уже не справляется со сверхсложной задачей.

Тернарный оператор читаем, пока он один.

В пыхе — безусловно.

Deleted
()

на что способен php без удаленого сервера

Ну т.е. без сервера? Ни на что, конечно.

насколько он удобен?
для локальных.

Не намного удобнее жабы. Но писать прикладуху на пэхе... Это подло!

интересно будет ли тот же код работать в windows?

Байт-коду все равно где выполняться (в твоем случае, конечно).

znenyegvkby
()

Что принципиально невозможно сделать на php

На рнр можно написать компилятор, значит, в итоге можно сделать всё то же самое, что на любом другом языке (пусть и через прослойку).

Deleted
()
Ответ на: комментарий от aiive

пхп

жс

Высокодуховная связь жабы с гадюкой.

Deleted
()
Ответ на: комментарий от Hertz

Лямбды

http://php.net/functions.anonymous

метапрограммирование уже завезли

И зачем это инструменту, потенциально направленному на задачу «клепать web-странички»? Хотя...

Лямбды и метапрограммирование уже завезли?

И зачем это инструменту, потенциально направленному на задачу «клепать web-странички»? Вот так, ага. Хотя анонимки еще хоть как-то помогут «вые*нуться» перед другой макакой.

znenyegvkby
()
Ответ на: комментарий от znenyegvkby

И зачем

Для удобной кодогенерации.

«вые*нуться» перед другой макакой

Вы разве для этого программируете?

Hertz ★★★★★
()

Учи Haskell и да придет тебе просветление!

anonymous
()
Ответ на: комментарий от no-such-file

Пыху нахваливает человек, у которого на авке маскот из книжки про Лисп <_<

anonymous
()

Тогда лучше учи Python, локальные приложения на PHP - извращение. Он более универсален, но меньше применяется в вебе, и поэтому меньше спрос.

InterVi ★★★★★
()
Ответ на: комментарий от anonymous

От ненависти до любви

Какой ненависти? Никто никого не ненавидит. Просто PHP - объективно убогий язык программирования, и пишут на нём не слишком умные люди. Вот и всё.

ну ты понял

Нет, не понял. Расскажи.

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)

Отличный язык уже потому как есть: интерфейсы, примеси, абстракции, замыкания. Мало языков, которые имеют столь богатый подобный арсенал. Да, многих привычных вещей не хватает, но это временно.

Из проблем, наиболее известны (хотя есть и другие безусловно) - legacy (где его нет при движухе?), внутренний дизайн на уровне C. С последним ведется активная работа. Даже были попытки Zend выпилить ...

anonymous
()

Знающие люди посоветовали Haskell

anonymous
()
Ответ на: комментарий от znenyegvkby

Иронизируете? Посмотрите как Smarty генерирует view из *.tpl. Та же генерация кода, кэширование и автоматическая подгрузка. Посредством метапрограммирования то же можно было сделать проще. Существенно. Сейчас уже не знаю во что Smarty развился, не писал на php с 2011 года.

А я разве о себе писал?

Ок. Извините, что не так понял.

Hertz ★★★★★
()
Ответ на: комментарий от VladimirMalyk

не забывай, что для пхп классика — это синхронная прокладка между бд и клиентом, которая даже состояние не хранит.

То что состояние не хранит это плюс. Но вообще в такой прокладке есть свои плюсы и минусы. Например: отсутствие персистенции коннектов (в силу еще характерных коротких RT-запросов), постоянная авторизация и дерганье БД как следствие, таймауты...

Собственно это не прокладка, а просто API до клиентской либы. Такое есть и на C и на Python и на любом другом языке...

Вообще иммутабельность была бы не лишней.

js-разработчики

да, тут полностью не избавиться от сервера и валидацией на нем. Данные в БД все-таки это сервера в основном.

anonymous
()
Ответ на: комментарий от anonymous

постоянная авторизация и дерганье БД как следствие

Он же вроде умеет кэшировать коннект к БД между последовательно отрабатывающими вызовами php-кода для обработки запросов?

Deleted
()
Ответ на: комментарий от Deleted

Он же вроде умеет кэшировать коннект к БД между последовательно отрабатывающими вызовами php-кода для обработки запросов?

Теоретически да, там у драйверов могут встречаться настройки по возобновлению коннектов - что-то там типа константного id связанного с коннектом. Если речь о этом.

Не пробовал погружаться в такое откровенно говоря и конечно есть сомнения что это вообще работает нормально, управляемо и гарантировано.

anonymous
()
Ответ на: комментарий от anonymous

Все ваши языки - говно, пишите на Rust.

Все ваши языки - говно. Не пишите.

crutch_master ★★★★★
()

Скажите, на что способен php без удаленого сервера?

Да.

насколько он удобен?

Настолько же, насколько и любая другая скриптота.

речь конечно же о разработке в среде linux, но все таки интересно будет ли тот же код работать в windows?

Смотря что и как пишешь. Если у тебя пути типа /home/user/temp/log.txt, то нет.

и для разработки веб приложений и для локальных.

Смотря что понимать под локальными. Скриптоязыком сильно грузить процессор - плохая затея.

crutch_master ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.