LINUX.ORG.RU

Django vs JS

 angularja, , , js.node,


1

4

Хочется освоить Web-разработку. Одни советуют Django, другие - JS (всё остальное менее востребовано на местном рынке труда). Сам я пайтонист, но не прочь изучить и другие языки/технологии. Что посоветуете? И в чём плюсы и минусы каждого из них?

Заранее спасибо

★★

хипстеры не должны программировать и давать советы. Бери и используй рнр. Востребовано и работает.

abs ★★★
()

Django, другие - JS

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

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

Я ещё не настолько хорошо разбираюсь в этом вопросе

чтобы ответить на этот вопрос. Потому и задал предыдущий - с чего лучше начать? :)

zelo ★★
() автор топика

Одни советуют Django, другие - JS

Одни советуют Холодильник, другие - Автомобиль

Dred ★★★★★
()

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

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

Спасибо!

Ясно, значит, добавим JS в копилку :)

zelo ★★
() автор топика

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

MiniRoboDancer ★☆
()

Попробуйте и то и то. И выбирайте, что больше нравится. Они практически взаимозаменяймы сейчас.

nikita-b
()
Ответ на: комментарий от nikita-b

Если иметь в виду node.js конечно. Чистый js, только для фронтэнда.

nikita-b
()
Ответ на: комментарий от Dred

Одни советуют Django, другие - JS

Одни советуют Холодильник, другие - Автомобиль

Скорее — «холодильник» и «кинетическую энергию».

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

Да, уж, хамство

на ЛОРе никуда не делось... Иногда это даже радует :)

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

Авторитетное мнение вчерашнего школьника забавляет.

Deleted
()

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

Что касается Django, то я никогда в жизни не был пайтон веб-программистом, потому не знаю какие у них там дедовские традиции, но на других языках обычно просто пишут хороший REST интерфейс. В Python обычно на чем-то подобном Flask

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

Ок

Спасибо за дельный совет!

P.S. Обращение к местным хамам и троллям: почему бы не научиться отвечать, как vertexua? Нечего сказать по делу? Проходите мимо...

zelo ★★
() автор топика
Ответ на: По поводу PHP от zelo

Покодишь на этом говне, поймёшь. Лучше не марайся.

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

почитай хорошие книги

А они есть? Я чет не видел таких

idiottoop
()
Ответ на: По поводу PHP от zelo

Возможно потому, что там нет bdsm, он не бьет обезьяне по рукам на каждом шагу, поэтому обезьяна не может на нем писать. Чтобы писать на таких языках надо иметь голову а не жопу. Это как Ъ юникс. Он не запретит тебе сделать rm -rf /

// не похапист

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

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

f1xmAn ★★★★★
()

Js - это платформа. Уже очень развитая и крутая. Джанга - это веб фреймворк для сайтов определенного типа, скажем так. На Джанге будет несколько проблематично создавать то, на что рассчитан nodejs. Nodejs асинхронен. Джанго синхронно обрабатывает запросы. Джанго подходит для новостных сайтов, блогов, систем управления содержимым, интранет-сервисам/сайтам. Js под node.js - это прежде всего веб сокеты, реалтаймовые приложения, лёгкие и быстрые web resfull службы. Надюсь, ты немного понял что к чему. Например, новостной сайт создать на джанге - это 2-3 часа работы, на node.js+express - гораздо дольше, больше ручной работы, больше low-level, больше настраивать придётся, прикручивать npm пакеты, разбираться в них. Джанго хорош тем, что из коробки ты получаешь мощную систему, кучу крутых питон библиотек, a nodejs тем, что он быстр и прост, лёгок в изучении, легковесный и рассчитанный на restfull, websocket, самодостаточность javascript во все поля.

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

БДСМ начинается сразу как только ты пытаешься начать писать не функционально.

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

И снова - поддержка совместимости тормозит развитие языка в правильную сторону. Нереализуемый пример:

function fn(const <dataType> $varName) { ...

В <dataType> можно только массивы и классы, а const не возможен, но, все аргументы «идейно» должны быть readonly, хотя таковыми не являются.

Начиная с пхп 5.2 все объекты передаются по ссылке автоматом (но ссылка «&» авто-ссылке на объект - на уровне интерпретатора не равны, а у GC шарики за ролики, особенно на рекурсивные ссылки). Так же возникает проблема инкапсуляции и readonly данных как на входе так и на выходе:

class B
{
    // нельзя указать тип данных,
    // будет установлен автоматом при присвоении
    private $data;

    public function __construct($data)
    {
        $this->data = $data;
    }

    public function getData()
    {
        return $this->data;
    }
}

// создадим пустышку
$a = new StdClass();
// расширим на лету св-ва (будут все публичные)
$a->x = 1;
$a->y = 2;
// положим в обертку, пытаемся инкапсулировать
$b = new B($a);
// попытка обратиться напрямую - Fatal error: Cannot access private property B::$data
echo $b->data->x;
// попытка через геттер (сработает)
echo $b->getData()->x;
// замена значения через геттер (заменит везде, в том числе и для $a)
$b->getData()->x = 123456;
echo $a->x; // 123456

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

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

В конце концов можно по старинке написать функциональный спагетти с парочкой global-объявлений внутри ф-ций и успокоиться.

deep-purple ★★★★★
()

А, да, по теме. Если в джанго есть клиентские компоненты, то почему не остаться на нем? Ты питонщик же, вот и питонь дальше.

deep-purple ★★★★★
()
Ответ на: комментарий от nikita-b

Они практически взаимозаменяймы сейчас

а как Django заменяет JS на клиенте?

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

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

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

Deleted
()

Одни советуют Django

другие - JS

фейспалм.

Если пишешь на рутнопе и хочешь ничего не понять бери Django. Если хочешь всё понять бери flask,web2py, cherrypy

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

Интересно,кстати,почему? То есть я тоже всегда говорю «питон», но разве «пайтон» неправильно? От Монти Пайтона же название..

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

это хорошее дело распыляться на всякие джсы с ангуларами?

Это смотря сколько сил уходит на бэкенд, сколько свистоперделок нужно на фронтенде и поджимают ли сроки.

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

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

Зависит от сроков и задачи. Если возможность есть, то ограничивать себя сознательно - это уже старпёрство :)

Сейчас граница между серверным и клиентским программированием очень размывается, за счет «современных модных фреймврков»

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

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

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

Джависты разные бывают. Я уже насмотрелся на дебилов, за которыми всегда остается последнее слово только потому, что они 3-5 лет проработали в этой конторе, а сами они совершенно некомпетентны. А сколько обид будет, если сказать им это в лицо, сразу начнутся вызовы на ковер: а-яй-яй, ты зачем наших ключевых разработчиков обижаешь? Насмотрелся на людей, которые приходят просто заработать денег и пишут на отвали. Крайне заколебала бюрократия, когда чтобы, пардон, перднуть, нужно отправить запрос на 3-х человек, дождаться от них разрешения и пройти 2 теста. Намного больше мне импонируют маленькие компании, там люди хотя бы стараются, а бюрократии в разы меньше.

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

Ну, пока меня в них огорчает только необходимость совмещения в своем лице бекэнд разработчика, фронтэнд разработчика, архитектора, тимлида и проджект менеджера, и хоть бекэнд и архитектура это мое, фронтэнд и менеджерская кабала сильно отталкивают :)

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

Я сама Форчанка, кодю тут 5 лет. Дочь веб-девелопера. Просто поверьте, — у нас не все так однознач Хочу отметить, что принципиальной разницы в возможностях Django и решений на Node.js нет. Для restful есть django-rest-framework, например, не самая, пожалуй, легковесная библиотека, но чертовски удобна в разработке (а потом, когда функциональность, структуры данных и API более-менее устаканятся, лишнее можно выпилить). Для вебсокетов - django-omnibus. С другой стороны, в Django (как, собственно, и везде в веб-программировании, если не пейсать на голом похапе без композера) точно так же надо будет прикручивать питоновые пакеты и разбираться в них.

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

По-моему, это вещи разные (хоть и пересекаются). Вёрстка - оформление и свистоперделки, фронтенд - клиентская логика.

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

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

umren ★★★★★
()

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

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