Приветствую, господа. Хочу узнать ваше мнение и советы по такому распространённому вопросу: "Какой язык выбрать для разработки на бэкэнде?" Долгое время смотрел соответствующие топики, но нигде не нашел решения для себя. Поэтому я и решился впервые задать вопрос самостоятельно.
Обращу внимание на то, что о разработки веб-приложений я не знаю НИЧЕГО. Информация в моей голове - это только куски пазлов, которые иногда складываются уже во что-то понятное для меня. Я зарабатываю на хлеб тем, что разрабатываю десктопные приложения на 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) переписывают прототип на другом языке. Где писать проще? Что будет более эффективным для моих целей? Где легче начать работать с чужими исходниками? Какие источники и ресурсы могут помочь мне в освоении? С помощью каких средств производить вывод на клиентскую часть?
Спасибо, что прочли. Написал много и сумбурно, но я просто хотел раскрыть картину, боясь задать слишком общий вопрос, которых и так полно (надеюсь получилось). Пока писал, в процессе мог и забыл, что-то раскрыть. Может, если не получить ответ, то хотя бы перенаправить ход мыслей в нужное русло, тоже будет полезным.
>>990540 Бля, спасибо. Только сделал запрос в гугле, как тут мне сразу пришло куча предложений. Сейчас зарабатываю 300к в наносекунду. Сижу на своем пляже. Пишу с аргентинки.
1. Парсинг веб-страниц; 2. Работа с БД; 3. Работа с графиками; 4. Какие инструменты помогут выводить данные пользовотелям (да, в фронтэнд тоже не все радужно) 5. Наверно, экономичность в отношение к ресурсам (вычислительные, время, деньги); 6. Может что-то еще, о чем я пока не знаю (или забыл).
Это все можно сделать на PHP, с упором на пункт 5, особенно. Не зная от вообще нихера уже примерно через месяц.
Может ты и прав. Но может ли PHP справляться с большим кол-вом данных? Неужели там удобна работа с БД? И я могу привычно программировать на нем, как плюсах? Пока разбирался в Node, узнал, что PHP не занимается написанием своего сервера, а только решение прикладных задач. Я не думал, что полноценное приложение, как SPA, можно делать на PHP.
Дорогие аноны, простите, что не туда, просто это один активный тред. Делаю сайт через блокнот, задали в школе. Получается какая-то ерунда (пикрелейтед), перехожу по ссылке, пишет, что проблемы с сетевым соединением. Что это? Сил моих уже нет.
> Почитав достаточно я подумал, что NodeJs - это тот инструмент, что нужно. Один язык как для клиентской, так и для серверной части <..>. Типичная ошибка вкатывающейся хипстоты. Не сочти за оскорбление, я лишь указываю на расхожее заблуждение. Выучить язык — час чтения документации. Выучить технологию — месяцы. Проблема не в том, что фронтенд и бэкенд часто пишутся на разных языках, а в том, что они выполняют принципиально разные задачи и требуют принципиально разных технологий и подходов. Учись думать головой, а не статьями борщехлебов с Хабра.
Ты задал очень тупой вопрос, на который никому серьезно отвечать не захочется. Всем похуй, что у тебя крутится на сервере. На любой популярной параше ты сможешь выполнить любую задачу. Все озвученные тобой языки и экосистемы позволяют тебе выполнить твою задачу с одинаковым уровнем удобства.
Ну а какое отношение > Парсинг веб-страниц > Работа с графиками имеют к бэкенду — это уже врачу своему расскажи.
Ты мне напоминаешь меня в девятом классе, когда я вместо того, чтобы сесть и делать, выбирал, какая технология мне поможет сэкономить такты процессора.
От себя посоветую брать Питон и перестать выебываться.
>>990633 Если в его проекте этого не будет, то он не сможет держать более тридцати пользователей одновременно. А судя по тому, что он считает ньюфаг-тред недостойным своих охуенно важных вопросов, планы у него большие.
Хорошо, теперь хотя бы знаю где не прав. Думать головой с пустого места тоже не будешь, что начитал, то и выбираешь. Работа с графиками, это уже клиентская часть и тут другие инструменты визуализации, типа реактов и других библиотек. Парсинг то почему не относится? Просто думал, что не у всех языков одинаковый подход к работе с ключевыми словами. Сам только с XML работал стандартными функциями. Я думал, что один язык для веб это нормально и хорошо, ну как думал, так пишут, а значит не будут ли хуйню писать. Может питон и будем путем меньшего сопротивления. Хотя я могу до сих пор не понимать стуктуры таких приложений. Как у него со чтением чужих работ в начале обучения. Я когда-то учил его, но бросил, т.к. нашел работу несколько лет назад.
Сесть и делать. Когда разбираешься в чем-то новом, всегда крушится вокруг да около, ищешь, что тебе подойдет. Синдром девственницы, это норма я считаю, но ты прав, конечно.
>>990645 Спасибо за совет. Посмотрю, видимо язык не очень распрастранен в рунете. Все туторы придется искать зарубежные, как понимаю. Пока не особо понял, чем он хорош.
>>990691 >не очень распрастранен в рунете Да, это так. Но занятие программированием как бы подразумевает владение английским, хотя бы на уровне чтения документации, с которой у Elixir порядок.
>Все туторы придется искать зарубежные, как понимаю. Да, но самих туторов много и они очень часто обновляются, так как комьюнити очень активное (что важное - опытное), что вообще свойственно community-driven технологиям.
>Пока не особо понял, чем он хорош. Второй язык после рубей, где люди запаривались на тему UXа языка (т.е. программировать на нём не только полезно, но и просто приятно), все прелести эрланговской виртуальной машины (отказоустойчивость, изоляция, дикая распределённость, изначально правильно выбранные конкурентные примитивы), неплохая поддержка метапрограммирования (квазицитирование, антицитирование, сплайсинг и т.д.), ФП, передовая поддержка всех актуальных подходов к конкурентному программированию (из последних Dataflow -> FBP посредством GenStage + Flow), обратная совместимость с наработанной за 20+ лет кодобазой эрланга, включая базовый OTP-фреймворк, позволяющий легко строить масштабируемые серверные системы, ну и конечно же самый современный веб-фреймворк, стильный, модный, молодёжный. Сегодня в СНГ Elixir'а действительно почти нет, так как СНГ - область с заторможенным временем и туда всё приходит с опазданием на 10 лет, но движ есть, в основном в UK и долине.
>>990604 >может ли PHP справляться с большим кол-вом данных? У белых людей этим занимаются хранимые процедуры в базах данных. Учебники есть в Гугле. >Неужели там удобна работа с БД? Начиная с какой-то версии там появилась библиотека PDO. >И я могу привычно программировать на нем, как плюсах? Нет, с точки зрения дизайна — хуже Пыха за всё время ничего не придумано. "У семи нянек дитя без глазу". >Пока разбирался в Node, узнал, что PHP не занимается написанием своего сервера, а только решение прикладных задач. Он работает под Apache.
Алсо, я бы взял другой язык программирования, ибо вакансии на Пыхе низкооплачиваемые, и перспектив у него нет вообще, от слова совсем.
>>990656 >Хотя я могу до сих пор не понимать структуры таких приложений. Создаются пространства имён, в них функции (не объекты), которые принимают на вход данные и выбрасывают результат, ничего не сохраняют (всё равно Apache жосско удоляет их состояние). Протаскиваемые через них данные — обычно заворачивают в объекты: так удобнее.
Выше уже советовали Erlang и Elixir, так вот погугли «Programming Erlang: Software for a Concurrent World» (Joe Armstrong), у него тщательнейшим образом разобран именно этот подход, потому что его чудо-язык по-другому выражать свои мысли не позволяет: он серверный, и это так и задумано. Вряд ли ты будет когда-нибудь на нём что-нибудь писать, но сами принципы надо смотреть в этой книге, больше просто негде, кругом одни формочки с патЭрнами.
Хранимые процедуры — в учебниках по сракле: Том Кайт и т.п.
>>990772 На вкус и цвет, мне вот типы нахуй не нужны, только мешают. Но вообще Erlang анонимная типизация и есть статический анализатор на саксес тайпинге, если без него жить не можешь.
>>990788 >Типы в заголовках функций сейчас уже задают и в Erlang, и в Elixir Ну это не типы, а просто имена структур.
>>990537 (OP) Если тебе надо работать с большим количеством данных и обрабатывать это, то node тут не пойдёт. Так же Ruby и Python из-за медленной скорости тоже не будет лучшим вариантом. Плюс Питона это обработка очень больших чисел, но если тебе надо это делать быстро, то тут тебе надо GoLang, PHP
Обращу внимание на то, что о разработки веб-приложений я не знаю НИЧЕГО. Информация в моей голове - это только куски пазлов, которые иногда складываются уже во что-то понятное для меня. Я зарабатываю на хлеб тем, что разрабатываю десктопные приложения на 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) переписывают прототип на другом языке.
Где писать проще? Что будет более эффективным для моих целей? Где легче начать работать с чужими исходниками? Какие источники и ресурсы могут помочь мне в освоении? С помощью каких средств производить вывод на клиентскую часть?
Спасибо, что прочли. Написал много и сумбурно, но я просто хотел раскрыть картину, боясь задать слишком общий вопрос, которых и так полно (надеюсь получилось). Пока писал, в процессе мог и забыл, что-то раскрыть. Может, если не получить ответ, то хотя бы перенаправить ход мыслей в нужное русло, тоже будет полезным.
Жду рекомендаций и наставлений. Спасибо.