LINUX.ORG.RU

Из верстальщика в backend.Слишком много вопросов.

 ,


0

5

Работаю верстальщиком в небольшой конторе, плюс немного знаю JS(плагин подключить, обработчик написать, в тонкости не вдавался). Как хобби, взялся за программирование, выбрал Python где-то два года назад. За это время поднатаскался с базами данных, даже десктоп пробовал писать на tkinter, делал парсеры. Приступил к Flask, написал небольшой сайт с авторизацией(использовал session). Планирую дальше развиваться в вебе, а именно на backend. Что мне делать дальше: изучать Django или попробовать что-то другое(другой язык)? Популярность Python только растет, но и появились .Net Core, Golang, Rust и др. Насколько эти варианты лучше/хуже, у меня есть сомнения в дальнейшем развитии с Python. Python не идеален. Пока я увидел его следующие проблемы: сложная поддержка от версии к версии(от 2 к 3), скорость работы программ. Не за горами Python 4. Какая там будет совместимость с 3 версией, не придется переписывать части кода и не ухудшится скорость работы? А wasm на Python реален или только на компилируемых языках возможен?

Если уже есть опыт фронта, то почему бы не продолжить?

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

Python не идеален

Смотря для чего.

сложная поддержка от версии к версии(от 2 к 3)

2 уже де-факто закопан, не стоит оглядываться на него.

скорость работы программ

Python и не предназначен для решения задач, требующих скорости.

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

Нет никакой разницы в чём не разбираться и на чём не уметь программировать. Goury ★★★★★ (05.05.20 02:28:01) Срал я на PEP8 и на его рекомендации. Я пишу код так, чтобы хотелось ещё и чтобы было удобно и приятно

С экспертом не поспоришь.

t184256 ★★★★★ ()

И JS (node.js), и Python за глаза достаточно, чтобы писать работающие бэкенды для сайтов/мобилок.

сложная поддержка от версии к версии(от 2 к 3)

2 уже все, если что.

скорость работы программ

На уэб-бэкенде отражается никак.

Кстати, про Django: не самый плохой инструмент для того, чтобы быстро клепать прототипы. Но знание каких-нибудь async фреймворков тоже не помешает (на моей памяти async в django пока не завезли).

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

Что мне делать дальше

Осваивать какую-гибудь скриптуху(js, python и go в первую очередь) + либы и фрэймворки под них + различные БД(не только реляционные)

сложная поддержка от версии к версии(от 2 к 3)

Почти не актуально

скорость работы программ

Не актуально

Ну и c .net(или java) может что получится

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

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

DllMain ()
Последнее исправление: DllMain (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

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

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

2 уже де-факто закопан, не стоит оглядываться на него.

С версионностью еще ладно

Python и не предназначен для решения задач, требующих скорости.

А что, на backend скорость выполнения не важна? Пока я не сталкивался с задачами, где скорость - критический момент. Если попадется такая задача, мне уходить от Python?

recrut ()

Не за горами Python 4. Какая там будет совместимость с 3 версией, не придется переписывать части кода и не ухудшится скорость работы?

Имейте в виду, что в мире Django тонна легаси, если придётся сталкиваться с его доработкой, а не только пилить с нуля. Не полностью совместимы между собой как минорные версии Python (особенно ранние 3.x, не говоря уж о том, что попадаются проекты, завязанные на 2.x), так и минорные версии Django. Будьте готовы к тому, что придётся изыскивать способы поставить в систему кучу разных версий Python одновременно (поскольку virtualenv их более ниоткуда не возьмёт). Ну или осилить контейнеры, причём на таком уровне, чтобы быстро заворачивать в контейнеры старые проекты, где контейнеры не применялись.

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

Не обязательно: питон, в отличие от многой другой скриптухи, таки умеет с некоторыми ограничениями компилироваться. Ну и критичные по производительности части можно просто переписывать на компилируемом в нативный код языке, дёргая по FFI. Если производительность критична для всего проекта, то лучше вместо Python использовать, например, Go.

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

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

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

А можно вместо Golang использовать тот же Rust?

Можно, если интеллектуальных способностей хватит. Golang более «быдлокодерский», как и Python. Ну и в вебне он пока реально используется больше Rust, а дальше видно будет.

почему

«Серебряную пулю» видят в нём. В основном из-за бесплатных абстракций. Компилятор бьёт программиста по рукам, чего не делают компиляторы C/C++.

А как же .Net Core?

С дотнетом особо не знакомы, спрашивайте дотнетчиков ;-) Вообще, непонятно, кому это надо, кроме бегущих из десктопной/серверной разработки под винду непереучиваемых дедов, но пусть будет.

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

google

Он Вам за рекламу платит, что ли? К чему этот продактплейсмент вместо нарицательных?

numba

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

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

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

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

no-such-file ★★★★★ ()
Ответ на: комментарий от commagray

совсем не знаю, что «скриптухой» называют

Скриптуха, это «встраиваемый» язык-клей. Типичная скриптуха это питон как клей к Си-библиотекам, или js как клей к браузерным ресурсам, bash как клей к «командам» ОС и т.д.

no-such-file ★★★★★ ()
Ответ на: комментарий от menangen

Такой дельный коммент и оставили без внимания. ТС, это то, что тебе нужно:

Если ты верстальщик и знаешь js, то нахера другой стек? Бери штудируй Node.js, Koa, Express.js и прочее + Vue/React

Только я бы Vue/React вынес в начало)))

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

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

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

К слову, PEP8 действительно — дерьмо, там полно вкусовщины, например ублюдочные нечитаемые вырвнивания. То ли дело в Go. Тоже есть спорные моменты, но зато никакой вкусорщины, всё строго рационально.

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

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

В вебе бекэнд, как правило, достаточно просто отмасштабировать, по-этому проблем со скоростью не возникает. Скорость разработки важнее.

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

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

Сейчас все активно пилят библиотеки под asyncio. В джанге при этом даже как таковых планов нет ORM асинхронным делать. Итого, ты смеешь два стека: современный асинхронный, который развязывает тебе руки в вопросах конкурентности и производительности, и старый, на который уже всем пофиг, который рано или поздно загнётся.

WitcherGeralt ★★ ()

.Net и Go смысла нет. Через год они кардинально изменятся. Раст это не про веб. Удивительно что с джанго произошло. Python 4 не будет ближайшие 10 лет. Это вполне себе устоявшийся язык и он растет, но вполне эволюционно. Мой софт написанный в 2000 году который я крутил под дос работает сейчас. 2 и 3 разные языки. Ну тут уже надо было сломать.

dem ★★ ()