LINUX.ORG.RU

Rybu on rails or django or ...

 , ,


2

1

Навеяно.
Java (+фреймворки) - основной рабочий язык, в основном server side. Хочу развиваться дальше в этом направлении.
Python (фремворков не знаю) - использую в основном для больших скриптов.
Grails - был опыт написания небольшого сайта - понравилось

Часто бывает, знакомые просят написать простой сайт:
- регистрация
- не сложный дизайн (но и не полное уг)
- пара ролей
- etc

Все делал на java в лучших традициях жирного ентерпрайза. Времени уходит не мало. Но все работает хорошо. Но подход не самый оптимальный.

Хочеться изучить что-то новое для быстрого написания не больших/простых сайтов.

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



Последнее исправление: CYB3R (всего исправлений: 3)

Ответ на: комментарий от special-k

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

anonymous
()

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

пэхапэ же идеален для этого.

umren ★★★★★
()
Ответ на: комментарий от special-k

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

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

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

st4l1k ★★
()
Ответ на: комментарий от special-k

Ну-ну, не надо так расстраиваться :) pip может и не умеет несколько версий использовать, но замораживать под проект текущее состояние умеет, а вот composer - практически полный аналог bundler, умеет разные версии, cpan, в принципе тоже.

gwinn ★★★★
()
Ответ на: комментарий от special-k

Отличный пример того как приведенные проекты такое удовольствие от рубей получили, что оба сбежали.

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

замораживать под проект текущее состояние умеет

Умеет-умеет)

ну вообщето суть в том что создатель coffescript руби просто знает лучьше, поэтому его и юзал для написания.

Ну как минимум он знал еще и js..

special-k ★★★
()

Простой сайт на RoR можно сделать намного быстрее, чем на Django. Работать будет хорошо.

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

pip может и не умеет несколько версий использовать

Если пип использовать в связке с virtualenv, тогда проблема нескольких версий решается сама собой. Каждый проект в своем энвайронменте, в каждом проекте свой requirements.txt. Я работал и с бундлером, и с пипом. Должен сказать, что второе - намного удобнее.

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

Воооот. Если знаешь как инструментом пользоваться, возникает вопрос не какой инструмент лучше, а какой в данной ситуации использовать.

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

Я работал и с бундлером, и с пипом. Должен сказать, что второе - намного удобнее.

Должен сказать, что ты врешь))) Все питонщики, которые поработали с gem и bundler в восхищении.

http://stackoverflow.com/questions/5633939/how-do-i-specify-local-gem-files-i... - вон какие штуки можно творить как здрасте, вашим пипам и не снилось, и не надо.

special-k ★★★
()
Последнее исправление: special-k (всего исправлений: 2)

Mojolicious.

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

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

man CPAN, дурачина.

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

Все питонщики, которые поработали с gem и bundler в восхищении.

Я питонщик, и я считаю, что gem и bundler - унылое глюкавое говно. Такой дизайн мог выдумать только олигофрен с IQ как у макаки.

вон какие штуки можно творить как здрасте

Ты тролль 90-го уровня. Не для тебя, но для других, которые тебе поверят, я скажу, что и пипом можно это все делать. Например, пакет из гита ставится так:

pip install -e git://github.com/timmyomahony/django-pagedown.git#egg=django-pagedown
provaton ★★★★★
()
Ответ на: комментарий от anonymous

На секунду здесь речь именно про веб. Кроме веба ничего и не нужно в общем-то.

Нужно. Поэтому пользы от знания питона будет больше.

Веб нужно писать строго на асме на случай если придется проприетаршину реинженерить.

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

Т.е. ты вместо записи в файле, в котором хранишь версии всех библиотек, для которых, ты решил указать версию явно - такое наглядное представление чего ты хочешь, так вот, вместо этого, ты предлагаешь вводить команду вручную, да еще каждый раз когда надо будет обновляться, да?) и говоришь, что это мегаудобно.. у тебя превратные понятия об удобстве -_-.

gem "foreman", :path => "/Users/pje/my_foreman_fork

А это как сделаешь, лол?

special-k ★★★
()
Последнее исправление: special-k (всего исправлений: 1)
Ответ на: комментарий от gwinn

Для создания блога, я не буду использовать ruby, я возьму wordpress

А для создания картинок я буду использовать не ruby, а фотошоп, он хрен знает на чем написан, вроде паскаль.

TDrive ★★★★★
()
Ответ на: комментарий от special-k

да еще каждый раз когда надо будет обновляться, да?)

Нет, я вношу список в файл requiremets.txt, потом делаю pip install -r requirements.txt и получаю полностью готовый энвайронмент для запуска проекта.

А это как сделаешь, лол?

Почитай документацию, лол. Или погугли, лол. И перестань троллить, лол.

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

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

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

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

Почитай документацию, лол.

т.е. тривиально никак)

Гавно твой пип

pip list
Django (1.5.2)

Поставил себе последнюю джангу (как ни странно даже заработала)
Но теперь я хочу более раннюю.

sudo pip install Django==1.4.6 -U
пип говорит халай-махалай...
pip list
Django (1.5.2)

Не вышло:(

sudo pip install Django==1.4.6 --force-reinstall>пип говорит халай-махалай...
pip list
Django (1.5.2)

:( Эй пип, ты вообще работаешь.. И куда мне отправить пистон, м?) Он фейлит на элементарных операциях.

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

т.е. тривиально никак)

Также тривиально как и с гитом. Смотри секцию Editable Installs.

Но теперь я хочу более раннюю.

`--> virtualenv2 test
....
`--> cd test
`--> source bin/activate
`--> pip install Django
....
`--> pip list | grep -i django
Django (1.5.2)
`--> pip install Django==1.4.6
.....
`--> pip list | grep -i django
Django (1.4.6)

ЧЯДНТ?

provaton ★★★★★
()
Последнее исправление: provaton (всего исправлений: 1)
Ответ на: комментарий от special-k

Ты уже утомил рекламой своих корявых костылей. Для установки сторонних библиотек в моём дебиане есть apt-get, и в репозиториях зачем-то тонны этого рубиговна.

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

requirements.txt и получаю


Чего ты получаешь.. там даже команды обновления нет, вводишь вручную все https://github.com/pypa/pip/issues/59 - может мне тоже +1 поставить))

А ну-ка джанга!

13-09-03 15:53 2.0.0-p247 special-k@runo:~ django-admin.py startproject mysite
13-09-03 15:53 2.0.0-p247 special-k@runo:~ cd mysite
13-09-03 15:53 2.0.0-p247 special-k@runo:~/mysite ls
manage.py  mysite
13-09-03 15:53 2.0.0-p247 special-k@runo:~/mysite 
А где же requiremets.txt :(
О!
13-09-03 15:55 2.0.0-p247 special-k@runo:~/mysite pip freeze > requirements.txt
13-09-03 15:55 2.0.0-p247 special-k@runo:~/mysite cat requirements.txt
многобукв сраное мракобесие
О_О!

Что за хрень, руби проект начинается с определения того, что мне нужно, а не с помойки библиотек -_-. И даже requiremets.txt добавить мозгов не хватило.. почему? - может потому что разработчики не уверены, что пип - это нужная вещь.

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

special-k ★★★
()
Последнее исправление: special-k (всего исправлений: 7)
Ответ на: комментарий от special-k

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

В питоне это все делается примерно так:

$ virtualenv2 test
$ cd test
$ source bin/activate
$ cat << EOF > requirements.txt
Django
gevent
gunicorn
psycopg2
EOF
$ pip install -r requirements.txt
$ django-admin.py startproject my-super-project
provaton ★★★★★
()
Ответ на: комментарий от special-k

Ну так бы и говорил, что есть фреймворк RoR, который вобрал в себя много полезностей и выступает неким стандартом для рубистов. Потому что никому не охота разбираться во всем шлаке, которым оброс Perl, PHP. Хочется чего-то одного, зато модного и глянцевого. Ну и придерживаться стандарта, а не писать 100500-й велосипед.

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

перл, пхп, питон, все это существует, по сути, дольше руби. И те проблемы, с которыми они сталкиваются, когда косят под раилс, очевидно, что они by design.

gem ведь никогда не был таким стремным как pip, и продолжает обрастать полезным функционалом. А пип как был говоном, так и остается, значит проблема в питоне.

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

Поскольку Вы один из не многих адекватов в треде может какие-то сайты/книги посоветуете, какие уже проверены на личном опыте.

windofchange
() автор топика
Ответ на: комментарий от special-k

этот файл генерируется автоматически.

А как он узнает, например, какая у меня база данных и какой мне адаптер нужен?

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

rails new сам генерит Gemfile.

по дефолту там базовые вещи для старта, a вообще обычно генерят проект из шаблонов, поэтому в Gemfile уже все будет и так.

kelyar ★★★★★
()
Ответ на: комментарий от special-k

Вот ты мне лучше ответь на такой вопрос. Выполнил я теперь эти 4 замечательных командочки, теперь делаю так:

`--> time bundle exec bin/rails --version
Rails 4.0.0
bundle exec bin/rails --version  0.82s user 0.06s system 94% cpu 0.939 total
`--> time bin/rails --version      
Rails 4.0.0
bin/rails --version  0.49s user 0.03s system 99% cpu 0.531 total

Почему при вызове через бандлер появляется почти целая секунда лага? Это типа правильная архитектура такая?

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

В джанге дефолтный набор библиотек неактуален, так как у них есть принцип минимизации внешних зависимостей. То есть, для старта нужно поставить только джангу и адаптер для БД (при этом адаптер для sqlite включен в стандартную библиотеку питона). В дргих фреймворках, где другая идеология использования внешних либ, requirements.txt включен в шаблон нового проекта.

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

Как ява разработчику, тебе возможно будет интересно

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

Главная проблема джанги и рельс: ты пишешь не на питоне и руби, а на джанге и рельсах. При чем в случае рельс это совсем запущеный вариант (там вообще для руби очень мало места, и для всего существует свой dsl со своей «магией»). С одной стороны это прикольно и кажется удобным, но как только ты не попишешь на этом полгодика (а у тебя имено такая ситуация), то придется все заново изучать.

Поэтому я для небольших проектиков выбрал python+flask, т.к. в этом случае пишешь на питоне без «магии».

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

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

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

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

Ты разницу между ставится вручную и автоматически видишь? Прописав в Gemfile, можно возложить на Bundler всю работу по разрешению зависимостей. От себя: pip не знаю, но твой аргумент не состоятельный, поищи получше.

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

Правильно. А теперь расскажу я, почему юзаю питон:
Пишу интернет-магазин. Нужно скрапить данные с других сайтов. Что мне даёт руби? Ничего. Что мне даёт питон? Питон мне даёт много отличных готовых библиотек и фреймверков, таких как Scrapy, Twister, Tornado and etc. Теперь я просто беру и вызываю Scrapy из джанги или фласка. Что будут делать рубисты? Они будут искать гемы для скрапинга, но таких по мощности и удобству не найдут. Напомню, что Scrapy и Twisted асинхронные фреймворки.

На рельсах я тоже пишу. Но рельсы совсем не для простых проектов создан. Плюс рельсы стоит юзать только из-за гемов.

Я не советую рельсы уже никому. Для этого есть ряд причин: рельсы отлично скопированы рядом других платформ. А именно: Java, JavaScript. Под тот же NodeJS есть хорошие годные фреймворки, разработка в разы проще, чем на RoR, удобней и быстрей. Все плюшки по типу Coffee там есть (они есть и для питон), MVC годный есть, библиотеки для JS растут как на дрожжах, и замечу, давно обогнали по количеству и качеству Ruby поделия.

Я работаю на одеск, и там интерес к Ruby on Rails заметно падает. Все переходят на JavaScript или python(в меньшей степени). Но, к счастью, интерес к php падает ещё быстрей. Поэтому RoR, в принципе, можно рассматривать как неплохой способ заработка.

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

Для установки сторонних библиотек в моём дебиане есть apt-get

Приходи, когда в дебиане можно будет поставить ruby-2.0.

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