Skip to content

Instantly share code, notes, and snippets.

@Shchvova

Shchvova/betterpython.md

Last active Aug 29, 2015
Embed
What would you like to do?
Чем php удобнее python

Вот хочу я написать страничку, которая будет показывать случайное число. Казалось бы, простое решение в Python

import random
print random.randint(1,6)

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

from flask import Flask
import random
app = Flask(__name__)    

@app.route("/")
def hello():
    return str(random.randint(1,6))

if __name__ == "__main__":
    app.run(host='0.0.0.0')

Потом пишем python randapp.py Вуаля! На 8080 порту можно открыть страничку и посмотреть, что получилось. Но хочется ведь на сервере. Да и квик старт говорит, что встроеный flask сервер это конечно хорошо, но только для девелопмента, и никак не годится для сайта, и перечисляет мой выбор из незнакомых слов и ссылок. Ну ничего, не отчаиваемся. Гугл deploy flask application, выдает ссылку, например как задеплоить его на nginx. Вроде все хорошо. Шаги повторяют "hello world", который мы уже написали, потом начинается. Установите virtualenv, поставьте uWSGI, создайте кучу файлов для nginx, uwsgi, перепешите конфиг nginx, перепешите два конфига uwsgi, и еще сокет файл, везде права надо выставить. И вуаля - есть всю эту магию удалось выполнить - у вас элементарная страничка на питоне.

Еще 15 лет тому я посмотрел на PHP и он мне очень понравился, потому что, еще тогда, вместо совершения всей этой магии, можно было было сделать что-то типа $ echo "<?= rand(1, 6) ?>\n" > /var/www/index.php и все работало. Если у вас не настроен php с апачем из коробки, то, например, в убунте он настраивается одной командой, tasksel.

Я не говорю, что php лучше python, как язык программирования. Просто привожу пример того, что в php сильно удобнее. Я знаю, что в последнее время появилось много сервисов типа Heroku & AppEngine, или даже Dokku, но все равно сложности деплоя, по моему, это самые большие камни преткновения разработчика, начинающего веб с питона.

P.S. Знатоки сразу начали рассказывать как клево и легко ставить джаву на томкат (лол), или пользоваться сторонними утилитами для еще чего-то. Только вот не пойму, я на джаве могу реализовать любой алгоритм о котором слышали читающие, но вот как сделать веб страничку которая будет показывать случайные числа - понятия не имею. Почему-то с PHP абсолютно противоположное - реализовывать алгоритмы на нем вряд ли буду, но вот зато как без любых действий поднять продакшн-реди страничку с случайным числом могу без проблем и танцев с тулзами/фреймворками/докерами которые к программированию и языку имеют только посредственное отношение.

P.P.S. Получил еще кучу коментариев про девелопмент сервера. Я не понимаю даже как отвечать... А как вы сайтик будете показывать другу в чатике? Заходить по ssh и с консольки запускать?

Выводы

Я знаю как деплоить flask. Не надо мне это расскзывать. Я наю как это сделать многими способами включая расные *gi, docker, dokku и нестандартные веб серверы. Я просто описываю пример который видел сам, о том что действительно есть этот лишний шаг, который не имееот отношения к крограммированию, и является лишним и довольно высоким порогом для новичков.

@ufian

This comment has been minimized.

Copy link

@ufian ufian commented Nov 26, 2014

Чушь

@blia

This comment has been minimized.

Copy link

@blia blia commented Nov 26, 2014

лал

@gregsonar

This comment has been minimized.

Copy link

@gregsonar gregsonar commented Nov 28, 2014

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment