Сохранен 31
https://2ch.hk/pr/res/990537.html
Прошлые домены не функционирует! Используйте адрес ARHIVACH.VC.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Бэкэнд-программирование. Простота и эффективность.

 Аноним 14/05/17 Вск 19:19:12 #1 №990537 
f2da1c598e2ff9bc29b229773a189d33d38e0252.jpeg
Приветствую, господа. Хочу узнать ваше мнение и советы по такому распространённому вопросу: "Какой язык выбрать для разработки на бэкэнде?" Долгое время смотрел соответствующие топики, но нигде не нашел решения для себя. Поэтому я и решился впервые задать вопрос самостоятельно.

Обращу внимание на то, что о разработки веб-приложений я не знаю НИЧЕГО. Информация в моей голове - это только куски пазлов, которые иногда складываются уже во что-то понятное для меня. Я зарабатываю на хлеб тем, что разрабатываю десктопные приложения на Qt в связке с PostgreSQL. Прошу учесть, что я не считаю себя профессионалом в программировании. Возможно, могу не верно употреблять терминологию и написать глупости, буду рад, если вы меня поправите в этом.

Задача перед мной такая:
Веб-приложение, которое структурирует данные, собранные с разных источников, и выводит статистику по ключевым словам. Данные представлены в виде рейтинга, при желании, в котором можно посмотреть график роста/снижения популярности по выбранному тэгу. В добавок будет подключаться сторонние аналогичные сервисы для улучшения объективности анализа, такие как Google Trends. Сбор данных происходит раз в неделю.

Почитав достаточно я подумал, что NodeJs - это тот инструмент, что нужно. Один язык как для клиентской, так и для серверной части, рост популярности JS и все другие преимущества, которые и вы сами наверно могли прочесть во множестве статей.

Лирическое отступление. Как мне показалось, Node все таки отличен от JavaScript (взгляд неопытного человека с небольшим багажом знаний в вопросе). Серверы, роутинг, модули - это несколько другой подход к созданиям приложений, как я привык. Видимо, надо менять свое мышление в отношении веб-разработки, тут иной подход. Это другая сфера, значит и другая методология, значит, опора на опыт предыдущий может повредить опыту последующему. При обучении, у меня не раз появлялись сомнения, что я могу в пустую тратить время. Предполагаю, что освоение пойдет долго, очевидно, будут застои в чем-нибудь. Понимание исходников с GitHub дается тяжело, я попросту пока не научился находить порядок их чтения. Фреймворки подобные Express и D3Js для построения графиков, а также MongoDB, тоже подлежали освоению, их я посчитал необходимым инструментарием в разработке. Но не переоцениваю ли я их? Обучение им будет долгим, но дадут ли они желаемое? Правильный ли путь выбрал? И другие сомнения часто крутились в голове.

Хочется иметь удобство в следующем:
1. Парсинг веб-страниц;
2. Работа с БД;
3. Работа с графиками;
4. Какие инструменты помогут выводить данные пользовотелям (да, в фронтэнд тоже не все радужно)
5. Наверно, экономичность в отношение к ресурсам (вычислительные, время, деньги);
6. Может что-то еще, о чем я пока не знаю (или забыл).

Люди, которые поняли, что я тут написал и имеющие опыт в данном вопросе, прошу вашей рекомендаций. На каком языке кривая освоения будет плавной? Может мне смотреть в сторону Python/Django, R, Go, C#, .Net и т.д.? В преимуществах перечисленных инструментов я не сильно осведомлен, т.к. я всегда попадал на статьи, которые рекомендовали JavaScript/NodeJs. Какие библиотеки вы посоветуете? Слышал, что в написании приложения, может быть два подхода: 1) этап создания прототипа, пишут, что для этого хорошо подходит Python (может это и есть то, что нужно?); 2) переписывают прототип на другом языке.
Где писать проще? Что будет более эффективным для моих целей? Где легче начать работать с чужими исходниками? Какие источники и ресурсы могут помочь мне в освоении? С помощью каких средств производить вывод на клиентскую часть?

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

Жду рекомендаций и наставлений. Спасибо.


Аноним 14/05/17 Вск 19:21:26 #2 №990540 
>>990537 (OP)
PHP
Аноним 14/05/17 Вск 19:28:14 #3 №990550 
>>990540
Бля, спасибо. Только сделал запрос в гугле, как тут мне сразу пришло куча предложений. Сейчас зарабатываю 300к в наносекунду. Сижу на своем пляже. Пишу с аргентинки.
Аноним 14/05/17 Вск 19:45:17 #4 №990569 
http://mojolicious.org/
Аноним 14/05/17 Вск 20:06:47 #5 №990586 
>>990550
А что тебя не устраивает?

1. Парсинг веб-страниц;
2. Работа с БД;
3. Работа с графиками;
4. Какие инструменты помогут выводить данные пользовотелям (да, в фронтэнд тоже не все радужно)
5. Наверно, экономичность в отношение к ресурсам (вычислительные, время, деньги);
6. Может что-то еще, о чем я пока не знаю (или забыл).

Это все можно сделать на PHP, с упором на пункт 5, особенно. Не зная от вообще нихера уже примерно через месяц.
Аноним 14/05/17 Вск 20:08:28 #6 №990588 
>>990537 (OP)
Go.
Больше вариантов нет.
Аноним 14/05/17 Вск 20:19:54 #7 №990600 
>>990588
Почему больше вариантов нет? Думаешь Go - оптимальный выбор?
Аноним 14/05/17 Вск 20:25:33 #8 №990604 
>>990586

Может ты и прав. Но может ли PHP справляться с большим кол-вом данных? Неужели там удобна работа с БД? И я могу привычно программировать на нем, как плюсах? Пока разбирался в Node, узнал, что PHP не занимается написанием своего сервера, а только решение прикладных задач. Я не думал, что полноценное приложение, как SPA, можно делать на PHP.
Аноним 14/05/17 Вск 20:36:25 #9 №990613 
>>990600
Еще можно Хаскель.
Аноним 14/05/17 Вск 20:39:39 #10 №990617 
pzeQZsJOTE.jpg
Дорогие аноны, простите, что не туда, просто это один активный тред. Делаю сайт через блокнот, задали в школе. Получается какая-то ерунда (пикрелейтед), перехожу по ссылке, пишет, что проблемы с сетевым соединением. Что это? Сил моих уже нет.
Аноним 14/05/17 Вск 20:44:45 #11 №990623 
>>990617
Попробуй на Хаскеле.
Аноним 14/05/17 Вск 20:45:32 #12 №990624 
>>990600
Он отчасти троллит.

> Почитав достаточно я подумал, что NodeJs - это тот инструмент, что нужно. Один язык как для клиентской, так и для серверной части <..>.
Типичная ошибка вкатывающейся хипстоты. Не сочти за оскорбление, я лишь указываю на расхожее заблуждение. Выучить язык — час чтения документации. Выучить технологию — месяцы. Проблема не в том, что фронтенд и бэкенд часто пишутся на разных языках, а в том, что они выполняют принципиально разные задачи и требуют принципиально разных технологий и подходов. Учись думать головой, а не статьями борщехлебов с Хабра.

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

Ну а какое отношение
> Парсинг веб-страниц
> Работа с графиками
имеют к бэкенду — это уже врачу своему расскажи.

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

От себя посоветую брать Питон и перестать выебываться.
Аноним 14/05/17 Вск 20:51:59 #13 №990629 
>>990624
>имеют к бэкенду — это уже врачу своему расскажи.
Может он хотел что бы сервер парсил?
Аноним 14/05/17 Вск 20:54:47 #14 №990632 
>>990629
Сервер этого делать не должен, этим должны заниматься соответствующие воркеры.
Аноним 14/05/17 Вск 20:56:01 #15 №990633 
>>990632
Вряд ли он планирует такой проект где у него все это будет.
Аноним 14/05/17 Вск 20:59:55 #16 №990636 
>>990633
Если в его проекте этого не будет, то он не сможет держать более тридцати пользователей одновременно. А судя по тому, что он считает ньюфаг-тред недостойным своих охуенно важных вопросов, планы у него большие.
Аноним 14/05/17 Вск 21:08:33 #17 №990638 
>>990537 (OP)
Бери любой.

/thread
sageАноним 14/05/17 Вск 21:15:49 #18 №990643 
Пи Тон
Аноним 14/05/17 Вск 21:17:13 #19 №990645 
>>990588
Очевидный Elixir + Phoenix фреймворк.
Аноним 14/05/17 Вск 21:58:44 #20 №990656 
>>990624

Хорошо, теперь хотя бы знаю где не прав. Думать головой с пустого места тоже не будешь, что начитал, то и выбираешь. Работа с графиками, это уже клиентская часть и тут другие инструменты визуализации, типа реактов и других библиотек. Парсинг то почему не относится? Просто думал, что не у всех языков одинаковый подход к работе с ключевыми словами. Сам только с XML работал стандартными функциями. Я думал, что один язык для веб это нормально и хорошо, ну как думал, так пишут, а значит не будут ли хуйню писать. Может питон и будем путем меньшего сопротивления. Хотя я могу до сих пор не понимать стуктуры таких приложений. Как у него со чтением чужих работ в начале обучения. Я когда-то учил его, но бросил, т.к. нашел работу несколько лет назад.

Сесть и делать. Когда разбираешься в чем-то новом, всегда крушится вокруг да около, ищешь, что тебе подойдет. Синдром девственницы, это норма я считаю, но ты прав, конечно.
Аноним 14/05/17 Вск 22:00:46 #21 №990658 
>>990632

Про существование воркеров совсем не знал.
Аноним 14/05/17 Вск 22:54:23 #22 №990691 
>>990645
Спасибо за совет. Посмотрю, видимо язык не очень распрастранен в рунете. Все туторы придется искать зарубежные, как понимаю. Пока не особо понял, чем он хорош.
Аноним 14/05/17 Вск 23:38:51 #23 №990734 
>>990691
>не очень распрастранен в рунете
Да, это так. Но занятие программированием как бы подразумевает владение английским, хотя бы на уровне чтения документации, с которой у Elixir порядок.

>Все туторы придется искать зарубежные, как понимаю.
Да, но самих туторов много и они очень часто обновляются, так как комьюнити очень активное (что важное - опытное), что вообще свойственно community-driven технологиям.

>Пока не особо понял, чем он хорош.
Второй язык после рубей, где люди запаривались на тему UXа языка (т.е. программировать на нём не только полезно, но и просто приятно), все прелести эрланговской виртуальной машины (отказоустойчивость, изоляция, дикая распределённость, изначально правильно выбранные конкурентные примитивы), неплохая поддержка метапрограммирования (квазицитирование, антицитирование, сплайсинг и т.д.), ФП, передовая поддержка всех актуальных подходов к конкурентному программированию (из последних Dataflow -> FBP посредством GenStage + Flow), обратная совместимость с наработанной за 20+ лет кодобазой эрланга, включая базовый OTP-фреймворк, позволяющий легко строить масштабируемые серверные системы, ну и конечно же самый современный веб-фреймворк, стильный, модный, молодёжный.
Сегодня в СНГ Elixir'а действительно почти нет, так как СНГ - область с заторможенным временем и туда всё приходит с опазданием на 10 лет, но движ есть, в основном в UK и долине.
Аноним 15/05/17 Пнд 00:33:35 #24 №990772 
>>990734
Динамическая параша.
Аноним 15/05/17 Пнд 01:10:13 #25 №990786 
>>990604
>может ли PHP справляться с большим кол-вом данных?
У белых людей этим занимаются хранимые процедуры в базах данных. Учебники есть в Гугле.
>Неужели там удобна работа с БД?
Начиная с какой-то версии там появилась библиотека PDO.
>И я могу привычно программировать на нем, как плюсах?
Нет, с точки зрения дизайна — хуже Пыха за всё время ничего не придумано. "У семи нянек дитя без глазу".
>Пока разбирался в Node, узнал, что PHP не занимается написанием своего сервера, а только решение прикладных задач.
Он работает под Apache.

Алсо, я бы взял другой язык программирования, ибо вакансии на Пыхе низкооплачиваемые, и перспектив у него нет вообще, от слова совсем.
Аноним 15/05/17 Пнд 01:18:19 #26 №990787 
>>990656
>Хотя я могу до сих пор не понимать структуры таких приложений.
Создаются пространства имён, в них функции (не объекты), которые принимают на вход данные и выбрасывают результат, ничего не сохраняют (всё равно Apache жосско удоляет их состояние). Протаскиваемые через них данные — обычно заворачивают в объекты: так удобнее.

Выше уже советовали Erlang и Elixir, так вот погугли «Programming Erlang: Software for a Concurrent World» (Joe Armstrong), у него тщательнейшим
образом разобран именно этот подход, потому что его чудо-язык по-другому выражать свои мысли не позволяет: он серверный, и это так и задумано. Вряд ли ты будет когда-нибудь на нём что-нибудь писать, но сами принципы надо смотреть в этой книге, больше просто негде, кругом одни формочки с патЭрнами.

Хранимые процедуры — в учебниках по сракле: Том Кайт и т.п.
Аноним 15/05/17 Пнд 01:20:14 #27 №990788 
>>990772
Типы в заголовках функций сейчас уже задают и в Erlang, и в Elixir, и в Python 3.x и даже в Ruby и PHP 7.x.
"Было бы желание" (c).
Аноним 15/05/17 Пнд 12:22:54 #28 №990985 
>>990772
На вкус и цвет, мне вот типы нахуй не нужны, только мешают. Но вообще Erlang анонимная типизация и есть статический анализатор на саксес тайпинге, если без него жить не можешь.

>>990788
>Типы в заголовках функций сейчас уже задают и в Erlang, и в Elixir
Ну это не типы, а просто имена структур.
Аноним 16/05/17 Втр 15:26:57 #29 №991733 
>>990537 (OP)
Django+ReactJS. Сейчас так модно.
Аноним 16/05/17 Втр 17:24:26 #30 №991826 
>>991733
>Django
>модно

хех)
Аноним 26/05/17 Птн 12:14:30 #31 №996502 
>>990537 (OP)
Если тебе надо работать с большим количеством данных и обрабатывать это, то node тут не пойдёт. Так же Ruby и Python из-за медленной скорости тоже не будет лучшим вариантом. Плюс Питона это обработка очень больших чисел, но если тебе надо это делать быстро, то тут тебе надо GoLang, PHP
comments powered by Disqus