Comments 21
Согласен с автором — PHP давно перестал течь, а с 7 версии и производительность подтянули, так что вполне успешно может использоваться вне рамок веба.
Многие люди считают что php подходит только для разработки сайтиков, и никак не может быть использован, в других областях применения языков программирования, для создания программНу, вообще-то между «подходит» и «может быть использован» огромная пропасть для адекватных людей, стоящих перед выбором инструмента. Любой язык (с несущественными оговорками) можно использовать для решения любой задачи. А вот «подходит» — это отдельный разговор совсем.
Я не против php, у меня у самого проект на нём написан, ибо когда начинал, кроме него вообще ничего не мог и не знал, а сейчас переписывать всё это уже не решусь, по этому мне просто интересны аргументы выбора языка, ибо скрипт из 20 строк такой, можно написать на любом ЯП с помощью гугла за 15 минут…
Мне вспоминается притча Мастер Фу и десять тысяч строк кода.
На bash это можно сделать вот так:
AUTH='USER:PASSWORD'
FILE=$(date +'%Y_%m_%d_%H_%M_%S_screen.png')
XML='<propertyupdate xmlns="DAV:"><set><prop><public_url xmlns="urn:yandex:disk:meta">true</public_url></prop></set></propertyupdate>'
scrot -s "/tmp/$FILE"
curl -s --user "$AUTH" -T "/tmp/$FILE" -X PUT "https://webdav.yandex.ru/"
curl -s --user "$AUTH" -d "$XML" -X PROPPATCH "https://webdav.yandex.ru/$FILE" | grep -Eo 'https://yadi.sk/[^<]+'
rm -f "/tmp/$FILE"
Конечно, можно. Но зачем? Позвольте, пояснить свою мысль.
Многие люди считают что php подходит только для разработки сайтиков, и никак не может быть использован, в других областях применения языков программирования, для создания программ…
Я думаю, те самые "многие люди", сами того не желая, ввели вас в заблуждение, говоря так категорично.
Имхо, на любом языке программирования можно решить любую задачу, которую обычно решают на другом языке. Язык программирования — это просто набор инструкций, команд, которые нужно выполнить. Естественно, составить инструкцию можно на любом языке.
Просто обычно смотрят на себестоимость решения задачи на том или ином языке. Под себестоимостью я имею в виду удобство, скорость и простоту написания кода, получившийся объем этого кода. Сюда же можно добавить и скорость выполнения написанного кода.
На php можно написать что угодно, но во что это обойдется…
Демон на php может упасть или начать есть память — нужно написать кучу оберток и следить за этим (и перезапускать его). Для драйверов код на php слишком медленный и жрущий память. Для системных скриптов — слишком много кода на единицу функциональности.
В итоге, если использовать язык вне его ниши, можно больше времени тратить на борьбу с языком и изобретение костылесипедов, чем на создание функциональности. Я думаю, именно это и имели в виду те люди, говоря "никак не может быть использован". Это как "нельзя тыкать шпилькой в розетку" — тыкать-то можно, просто результат вам не понравится.
я как бы не программист и стараюсь не вякать в таких темах и послушать умных людей или сам автор может быть умный, ведь все программисты умные и все такое…
б-же, никак не избавлюсь от этого комплекса неполноценности, но твой пост дает мне надежду на это
оказывается не все программисты умные и наверное я не хуже крутых программистов даже (только почему я не умею писать код?)
вобщем если бы мне надо было залить картинку на яндыкс, я бы заюзал баш и курл
сейчас мне надо брать гугл календарь за неделю и постить записи в пейсбук
для этого у гугла ессть целая пхп библиотека аж на 25 мегабайт и она даже работает
для получения списка записей в календаре надо просто сделать гет запрос
GET https://www.googleapis.com/calendar/v3/calendars/ид-календаря/events?key={YOUR_API_KEY}
получаем
200 OK
— Show headers —
{
«kind»: «calendar#events»,
«etag»: "\«p338ejguvkehcu0g\»",
«summary»: «kalobyte»,
«updated»: «2016-09-22T05:50:07.906Z»,
«timeZone»: «Europe/Berlin»,
«accessRole»: «owner»,
«defaultReminders»: [
{
«method»: «popup»,
«minutes»: 30
}
],
«nextSyncToken»: «CNDpw9-jos8CENDpw9-jos8CGAU=»,
«items»: [
{
«kind»: «calendar#event»,
«etag»: "\«2946678667918000\»",
«id»: «6uvg9e46eaaenh7hnctojt2d9o»,
«status»: «confirmed»,
«htmlLink»: «https://www.google.com/calendar/event?eid=NnV2ZzllNDZlYWFlbmg3aG5jdG9qdDJkOW8ga2Fsb2J5dGVAaW5ib3gucnU»,
«created»: «2016-09-08T12:55:33.000Z»,
«updated»: «2016-09-08T12:55:33.959Z»,
«summary»: «aaa»,
«creator»: {
«email»: "",
«self»: true
},
«organizer»: {
«email»: "",
«self»: true
},
«start»: {
«dateTime»: «2016-09-08T09:30:00+02:00»
},
«end»: {
«dateTime»: «2016-09-08T15:00:00+02:00»
},
«iCalUID»: «6uvg9e46eaaenh7hnctojt2d9o@google.com»,
«sequence»: 0,
«guestsCanInviteOthers»: false,
«guestsCanSeeOtherGuests»: false,
«reminders»: {
«useDefault»: true
}
}
]
}
проще поди было бы вызвать гет запрос обычной пхп функцией, там ведь должно что-то быть
потом распарсить джейсона и готовы данные
но в пхп библиотеке надо для этого еще кучу всего написать и почему-то нет автодополнения синтаксиса методов и полей из этой библиотеки в пхп шторме
на ковыряние и работу я убил 2 недели, потому что мануал библиотеки и примеров не соответствовал апи и вываливалась ошибка 404 и что там не найдено — непонятно и мануал молчит
чисто интуитивно поменял ид календаря с primary на конкретный ид и все заработало
теперь мне осталось разобраться с апи пейсбука и может быть там тоже есть библиотека пхп
Я к середине статьи тоже задумался о том, мол «блин, да это же можно сделать скриптом из 10 строк на баше, причем тут PHP?».
На PHP, в общем-то, можно и GUI-приложения лепить, но зачем?
Системные скрипты на php для linux, пишем скриншотер