LINUX.ORG.RU

Помогите разобраться в выборе Python или Ruby


0

2

Здравствуйте. Суть вопроса в следующем: Нужно сделать сайт интернет-магазин. Так вот, у меня делема, на чем написать на Python + Django или Ruby on Rails. Я в веб программировании новичек и хочу освоить. Погуглил, почитал форумы, так особо и не нашел ответы на вопрос(понятно что все ответы субъективные).

На счет Python: На серверах большей часть хостингов установлена версия 2.x. Хотя вроде как уже есть python 3.2. И вот я не пойму, если я возьму и сделаю сайт на python 3.2, то я так понимаю на серверах хостинга сайт скорей всего работать не будет. Единственный вариант писать на версии 2.х? Так же я нашел упоминание про Goggle app engine, почитал - там тоже можно использовать только python 2.5 или 2.6. Тоже вопрос - стоит ли пользоваться данной платформой? Может есть у кого информация, что они перейдут на 3.х?

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

Нравятся оба языка, но вот вышеперечисленные вопросы загнали меня в тупик в выборе. Я понимаю что ruby более ориентирован на веб, у python более широкое применение. Помогите разобраться. Спасибо.

Python. Ruby потом очень быстро можно будет поднять

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

Ну во первых не обогнал, а все-таки уступает процентов 20

Бенчмарки могут немного различаться, 20% совершенно не критично. Это уже premature optimization называется что есть зло. Производительность современных веб приложений в любом случае упирается в основном в БД. Зато Rails не на 20% а на все 20,000% удобнее генератора админок.

тому же Pyramid он даже в пупок не дышит

А Pyramid разве имеет такое же удобство разработки как Rails. Сравните ещё с каким нибудь micro framework.

А написанному на C веб приложению не дышит вообще ничто. Вывод - пишите на C.

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

Ныл анонимус, многострочную хотел я.

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

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

многострочную хотел я.

Многосторчную тебе написали, чем ты недоволен? Ах, ты хотел много-expression? Ну так научись выражать свои мысли, прежде чем разбрасываться фразами типа:

Ты конечно говнокодер

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

Ты-то хотя бы в курсе, чем expression отличается от statement'а, и почему это важно в контексте анонимных функций в питоне?

Да, не переживай.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 2)
Ответ на: комментарий от aedeph_

Как же ты знаешь, когда очевидно не знаешь.

Похоже, у тебя не только речевые центры поражены, но и мыслительные.

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

Зато Rails не на 20% а на все 20,000% удобнее генератора админок.

В чем удобнее?

Siado ★★★★★
()

На счет Python: На серверах большей часть хостингов установлена версия 2.x.

на серверах большей части хостингов у тебя голая система и ставь на нее что хочешь.

серверах хостинга

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

Тоже вопрос - стоит ли пользоваться данной платформой?

не стоит, там помимо ограничения на dерсию питона еще куча других ограничений.

Порекомендуйте хостинги пожалуйста.

амазондотком

Помогите разобраться.

оба говно.

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

Лол, поделись тестами или веществами.

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

Удобная и лаконичная форма для передачи функции, как параметр для другой функции высшего порядка.

Function as a first class citizen.

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

coffeescript

какое это вообще имеет отношение к руби?

При чём тут руби? Он писал про рельсы. HAML/SASS/Coffee из коробки, он про это. В Django надо прикручивать.

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

Удобная и лаконичная форма для передачи функции, как параметр для другой функции высшего порядка.

неосиляторы паттерна визитор

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

Такое, что в рельсах включена поддержка кофе из коробки. В джанге её нет. Тема про сравнение (удобства) джанги и рельс.

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

объясните мне тупому, как в серверном языке включается поддержка языка выполнения сценариев в клиентском браузере?

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

Ты опять сказал «язык», а речь идёт про фреймворк. Я силюсь понять, что непонятно.

Когда сайт пишешь, вопросов не возникает, ведь, почему вот это вот js-файл, который подключается на страничке, которая лежит на сервере, исполняется на клиенте? Вот этот js используя RoR можно писать на кофескрипте, RoR его сам автоматом оттранслирует в js.

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

RoR его сам автоматом оттранслирует в js.
-c, --compile Compile a .coffee script into a .js JavaScript file of the same name.

при чем тут рор или джанга, он сам себя компилит в жс

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

Кто «он»? Есть компилятор кофескрипта. Рельсы прозрачно подключают кофескрипт к странице, вернее, результат компиляции кофескрипта. Всё, что надо сделать, это создать одноимённый с контролером файл имя.js.coffee. Без рельс ты или руками компилируешь кофе в жс и прописываешь его на странице, или твоя система сборки тебе это делает. Используя джангу ты не можешь просто без дополнительных телодвижений создать файл news.js.coffee и получить на странице host/news этот кофескрипт.

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

Вот как я вижу этот чятик:

tailgunner

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

Многооператорную нельзя.

aedeph_

Многострочную лямбду мне в педоне запили.

Virtuos86

tailgunner уже ответил. Ты, стало быть, поддерживаешь того анонимного лулзмейкера? Вот многострочная лямбда:

>>> (lambda:
... 5 if True
... else 6
... )()
5
>>> 

aedeph_

Это не многострочная лямбда.

Virtuos86

Напиши-ка мне пример «многострочной» лямбды.

aedeph_

lambda {|x| puts x; x}.call("qwerty")

В питоне ";" оператор, оператор перевода строки. Как уточнил tailgunner, питон многооператорных лямбд не умеет.

Блок «lambda» описывает выражение, и никаких операторов, кроме логических содержать не может.

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

Зачем с тобой спрашивается вообще разговаривать?

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

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

Virtuos86 ★★★★★
()

Странно, почему до сих пор никто Розенталя не посоветовал?

theNamelessOne ★★★★★
()

Я в веб программировании новичек и хочу освоить.

Тебе в PHP.

splinter ★★★★★
()

сайт интернет-магазин
Python или Ruby

drupal

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

Упатерненные жабамакаки в треде, все в машину.

aedeph_ ★★
()

Похапе учи давай. Потом Ruby и Python.

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

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

aedeph_ ★★
()

Похоже только мне не понравилась убогая документация по плагинам для рельс, без которых долго не прожить. Тот же php + yii куда лучше

Jills
()

хочешь скорость - пайтон, хочешь красоту - руби, хотя и там и там красиво :) пост не читал

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

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

Ты не так спрашивал.

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

Могу. Некрасиво, но могу.

list.append(...) возвращает None, None имеет логическое значение (как и любой объект), а значит его можно использовать в выражениях. Ваш К.О.

virtuos86@sib:~$ python
Python 2.7.2+ (default, Oct  4 2011, 20:03:08) 
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> lambda lst, obj: (lst.append(obj) or lst)
<function <lambda> at 0xb774b1ec>
>>> _([1,2,3], 4)
[1, 2, 3, 4]

Virtuos86 ★★★★★
()

ОП, возможно, тебе будет интересно, что для Rails существуют готовые, активно разрабатываемые сообществом, решения для электронной коммерции. Например, https://github.com/spree/spree/ .

В качестве хостинга — http://www.heroku.com/ .

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

Да, можно еще:

(lambda y, z: (lambda x: []) (y.append(z)) + y)

Даже можно выше определить функциональную обвязку для exec'а, и тогда действительно, внутри лямбды можно будет делать абсолютно всё. Но назвать это нормальной анонимной функцией никаким образом не получится.

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

Удобная и лаконичная форма для передачи функции, как параметр для другой функции высшего порядка.

неосиляторы паттерна визитор

Бугага.

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

Самый классический - сортировка объектов по абстрактным правилам порядка.

РЕАЛЬНЕЙ(тм) юз кейс также - переменная в мапах, фильтрах, редьюсах, быстрое замыкание, сотни их.

Но уебдевелопером (настоящим) это конечно не нужно(тм). Хотя в php есть.

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

Вы еще апендите в лист лямбдами при живых list comprehension?

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

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

РЕАЛЬНЕЙ(тм) юз кейс также - переменная в мапах, фильтрах, редьюсах, быстрое замыкание, сотни их.

И ни один из этих юзкейсов, конечно, не работает без «многострочных» лямбд :D

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

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

ЗЫ а еще в питоне не мутабельные строки, как дальше жить?

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