Верстакфорум практиков
рекламаiprazon: приватные серверные адреса IPv4 и SOCKS5, безлимитный трафик, бесплатный тест до 2 часов
ФорумНовичкам

Какой язык учить первым под эти задачи

Алина Т.
Алина Т.
Новичок
сообщений 190
с апр, второй сезон
22 декабря, 17:47первое сообщение

Второй месяц читаю форум и вижу, что тут пишут на всём подряд. В одной теме питон, в соседней баш на пятнадцать строк, потом кто-то приносит ноду, а в разборе ошибок мелькает даже го.

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

iron_shell
iron_shell
Знаток
сообщений 1050
с июн
1 мая, 08:04#2

Питон. Дальше можно не читать, но я поясню.

linuxvsem
linuxvsem
Участник
сообщений 830
с июл
8 октября, 11:21#3

Соглашусь с выбором, добавлю про границу.

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

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

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

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

Женя Ковалёв
Женя Ковалёв
Новичок
сообщений 62
с авг, второй сезон
15 марта, 14:38#4

а джаваскрипт совсем мимо? я его немного знаю по вёрстке

dev_null_ru
dev_null_ru
Ветеран
сообщений 2560
с фев
22 августа, 17:55#5

Не мимо, но как второй. Нода хороша ровно там, где страница рисуется скриптами и вам нужен настоящий браузер под управлением. Тогда вы берёте playwright или puppeteer и работаете в родной среде.

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

Алина Т.
Алина Т.
Новичок
сообщений 190
с апр, второй сезон
1 января, 08:12#6
dev_null_ru: асинхронность там встречает новичка на первой же строке

Вот этого и боюсь. А в питоне асинхронность когда понадобится?

ostrov
ostrov
Участник
сообщений 505
с окт
8 июня, 11:29#7

Когда упрётесь в скорость. Первые полгода живёте на requests в один поток, потом на потоках, и только когда счёт пойдёт на сотни соединений, придёте к asyncio и aiohttp.

У меня порядок был такой:

чем я гонял сбор по мере роста
чем я гонял сбор по мере роста

Между первой и второй ступенью прошло месяца четыре. Между второй и третьей ещё год, и то потому, что задача сама выросла. Спешить туда незачем.

Оксана В.
Оксана В.
Участник
сообщений 350
с дек
15 ноября, 14:46#8

Про промах с выбором: его почти не бывает. Синтаксис вы перенесёте за две недели, тяжело даётся другое.

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

Женя Ковалёв
Женя Ковалёв
Новичок
сообщений 62
с авг, второй сезон
22 апреля, 17:03#9

ок, тогда питон и баш по ходу дела. спасибо

Алина Т.
Алина Т.
Новичок
сообщений 190
с апр, второй сезон
1 сентября, 08:20#10

Взяла питон. Пока прошла срез списков, словари и запросы, написала первый сборщик на сорок строк.

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

#!/bin/sh
set -eu
cd /srv/sbor
python sbor.py spisok.txt >> log/sbor.log 2>&1
gzip -f log/sbor.log
find log -name '*.gz' -mtime +14 -delete
iron_shell
iron_shell
Знаток
сообщений 1050
с июн
8 февраля, 11:37#11

Хороший знак, что вы поставили set -eu с первой попытки. Половина форума до этого доходит через потерянные данные.