Форум сайта python.su
py.user.nextТы, серьёзно, думаешь, что я пишу скрипты, на своём пне или дроиде, потом пушу, через гит, на сервера, в слепую?)))
Bash не везде есть, потому что он не входит в POSIX. Есть системы, и их дофига и больше, в которых нет bash, а есть sh только. Но ты то разницы не знаешь, ни в sh ни в Bash 1, ни в Bash 2. То есть ты напишешь скрипт на Bash, а он где-то на Bash не запустится, потому что он на Bash 2, а там Bash 1.
py.user.nextНу, писать такое, когда тебя, даже, задевает шуточное название этой темы (хотя, я даже не оскорблял Python, потому там и стоит знак вопроса)…
Golang - гугловское говно
package main- будет работать. За это я и предпочитаю скобки отступам.
import “fmt”
func main() {
fmt.Println(“Test”)
}
Отредактировано sough (Июль 20, 2023 22:45:22)
Офлайн
soughТы мыслишь другими категориями. В твоём понимании скрипт - это что? какая-то шняжка на десять строк? которую написал и забыл? У меня скрипт - это полноценная программа с проектом и версионированием, в которой несколько тысяч строк и несколько десятков функций - это обычное дело. Я уже могу эти функции и строки не считать, потому что я пишу их нормально, изолированно от окружения. Сколько их там, десять или сто, разницы вообще нет для меня. Только имена их заставляют меня дробить эти файлы на пачки файлов, потому что выдумывать разные имена для сотен функций - дело тупое. Я просто не представляю, что можно сделать скриптом на сто строк - буквально ничего. Такие скрипты я за скрипты не считаю, у меня их штук сто на компе. Кто-то следит за почтой России, кто-то следит за реестром недвижимости, кто-то следит за банками, кто-то качает видео с YouTube и Ok.ru в оптимальном качестве (без квадратиков на большом экране, но и по полтора гигабайта один фильм). Мне, знаешь, недавно предложили скачать Аватар Путь Воды, который размером был четырнадцать гигов, я только пальцем у виска покрутил, так как я его уже смотрел и весил он тогда при просмотре на телевизоре с флешки три гигабайта у меня (потому что трёхчасовой он), потому что мой скрипт не будет такое воспринимать, он подыщет вариант поменьше, я его специально так написал. Мне нужно, чтобы на одной флешке помещалось много фильмов сразу, а не один всего лишь. Десять фильмов лучше, чем один.
Нет, я пишу их уже на нужном сервере, если там не обобщённый случай.
soughУстановить для чего? Чтобы в какой-то тупости строки не съезжали вправо и потом вообще не переносились на другую строку? А как же другие текстовые файлы, где мне надо, чтобы табуляции были нормального размера? У меня табуляции занимают по восемь пробелов, а отступы в коде занимают по четыре пробела. При этом это всё одновременно читается. Мне не надо только то или только это. Поэтому этот Go идёт на хрен со всей своей тупорылостью.
На счёт табуляций, вообще, не вижу смысла говорить, когда её можно установить даже в nano
soughНахрена мне эти поделки, если у меня Emacs с YouTube все ролики показывает новые? Я могу также в консоли через ed работать, ты знаешь ed? Ed - это то, из чего vim вырос вообще. Когда мониторов не существовало и вывод текста из файла шёл на бумагу через принтер, придумали вот такой однострочный редактор, чтобы не то что бумагу не тратить, а просто чтобы не ждать, когда оно там выведется, потому что одна строка файла выводилась восемь секунд. Чтобы тысячу строк вывести, надо было ждать восемь тысяч секунд. Прикол в том, что ты никогда не знаешь, куда попадёт твой код, что там будет за сервер, будет ли там Linux вообще или какая-то другая среда, а они бывают очень старые, ещё из прошлого века. И никаких nano там просто нет, даже Bash там может отсутствовать спокойно, потому что он не обязан быть в системе, и установить ничего нельзя. И тогда кроме POSIX ты ни на что не сможешь расчитывать. Ты откроешь vi там, потому что он в POSIX есть, а потом станешь настраивать табуляции, а он тебе скажет “опция неизвестна”. И ты будешь сидеть и читать код через маленькую консольку, который съехал на несколько строк в ней, потому что она маленькая и больше её нельзя сделать.
чем тебя православные vim или micro не устроили?
soughОно ошибкой синтаксической считает то, что синтаксической ошибкой не является. Максимум она должна выдать warning про эту скобку и не более того, а не блокировать компиляцию. Когда тебе надо срочно скомпилировать что-то, а какая-то дебильная программа не компилирует что-то из-за того, что авторы что-то там считают на своё усмотрение про стиль кода, причём вообще не в тему, тогда хочется тоже им что-то сломать в ответ. Сломать им сервер их гошный и сказать там, вывесить там картинку “а мне не нравится эмблема ваша, она некрасивая какая-то, поэтому я вам сервер сломал, чтобы её просто не видеть”.
А написать можно и так:
…
- будет работать
Отредактировано py.user.next (Июль 21, 2023 04:28:39)
Офлайн
В общем, да - я не профессиональны программист, о чём я, в принципе, уже упоминал. И, если честно, нет у меня этой романтики красивого кода (в чём я вам, программистам, завидую, отчасти). Мне важно простота, функциональность и бесперебойность.
py.user.nextНе понял, что имеется ввиду.
У меня табуляции занимают по восемь пробелов, а отступы в коде занимают по четыре пробела
nano -ET4 -ci script.py
py.user.nextЗато Go выдаст ошибку, при компиляции, а Python, при невнимательности, затянет её в проект. Это не говоря ещ о плохой поддержке в Python своих же библиотек, при смене версий.
Максимум она должна выдать warning про эту скобку и не более того, а не блокировать компиляцию
Отредактировано sough (Июль 23, 2023 13:56:59)
Офлайн
soughУ меня оно не установлено, поэтому я всегда вижу, где пробелы, а где табуляция в одном и том же файле.
Как может быть табуляция 8 пробелов, если установлено 4?
soughУ меня программы на Shell используют вставки на питоне, как сишные программы использовали раньше ассемблерные вставки. Если в Linux нет нормального парсера для XML или JSON, зачем изгаляться? я просто вставлю в скрипт питоновский кусок, который это разберёт своими средствами типа lxml или json и после этого просто возьму вывод из этого куска и продолжу на Shell выполнять действия.
Вот пример вызова nano с 4-х пробельной табуляцией, нумерацией строк и посследующими автоотступами (для Python удобно):
f() { local x=$1 local y y=$(python3 -c ' x = '$x' print((x * 1+2j) ** 4) ') y=${y/\(/} y=${y/)/} y=${y/j/i} echo $y } f 10 f 15
[guest@localhost ~]$ f()
> {
> local x=$1
> local y
>
> y=$(python3 -c '
> x = '$x'
> print((x * 1+2j) ** 4)
> ')
> y=${y/\(/}
> y=${y/)/}
> y=${y/j/i}
> echo $y
> }
[guest@localhost ~]$
[guest@localhost ~]$ f 10
7616+7680i
[guest@localhost ~]$ f 15
45241+26520i
[guest@localhost ~]$
soughДля этого всего линтер есть, который можно запускать, а можно не запускать. В Go же какие-то тупари за тебя решают, что тебе писать. Поэтому они все идут на-хер. Это в Google они обязаны всё писать на Go, потому что их заставляют там. А у нас, в свободном мире, мы сами выбираем, на чём нам писать и как нам писать. Поэтому Go со своими советами идёт далеко и надолго. И ему не помогут ни горутины, ни каналы, ни конструкции там всякие умные. Пускай они сами себя убеждают, что фигурная скобка на отдельной строке - это очень грамотно. К счастью, мы в Google не работаем, поэтому и не должны ничего соблюдать для них.
Зато Go выдаст ошибку, при компиляции, а Python, при невнимательности, затянет её в проект. Это не говоря ещ о плохой поддержке в Python своих же библиотек, при смене версий.
Отредактировано py.user.next (Июль 22, 2023 12:00:16)
Офлайн
py.user.nextТак 0 проблем:
У меня оно не установлено, поэтому я всегда вижу, где пробелы, а где табуляция в одном и том же файле.
nano -T4 -ci for.py
cat -eT for.py for i in range(1, 1000001):$ print(i)$ else:$ print('for is complite')$ $ ###$ $ ^Ifor i in range(1, 1000001):$ ^I^Iprint(i)$ ^Ielse:$ ^I^Iprint('for is complite')$ $ ###$ $ ^I^Ifor i in range(1, 1000001):$ ^I^I^Iprint(i)$ ^I^Ielse:$ ^I^I^Iprint('for is complite')$
for·i·in·range(1,·1000001): ····print(i) else: ····print('for·is·complite') ### » for·i·in·range(1,·1000001): » » print(i) » else: » » print('for·is·complite') ### » » for·i·in·range(1,·1000001): » » » print(i) » » else: » » » print('for·is·complite')
Отредактировано sough (Июль 21, 2023 14:25:11)
Офлайн
soughИ табуляции становятся по четыре пробела? А зачем мне это? Мне-то нужно, чтобы они так и оставались по восемь пробелов.
Так 0 проблем:
Просто, убираем -E, оставляемnano -T4 -ci for.py
[guest@localhost ~]$ echo -e "abc1 abc2\ndef1\tdef2\nghi1\tghi2\n\tjkl"
abc1 abc2
def1 def2
ghi1 ghi2
jkl
[guest@localhost ~]$
[guest@localhost ~]$ echo -e "abc1 abc2\ndef1\tdef2\nghi1\tghi2\n\tjkl" | cat -et
abc1 abc2$
def1^Idef2$
ghi1^Ighi2$
^Ijkl$
[guest@localhost ~]$
Отредактировано py.user.next (Июль 21, 2023 14:48:51)
Офлайн
py.user.nextЕсли так судить, то надо было оставаться всем на Fortran.
А мне это не надо. Мне не надо ничего укорачивать. У меня тонны кода прекраснно себя чувствуют. А на Go я не пишу, ибо мозгов хватило не садиться на него плотно. Я просто заметил в нём все его недостатки сразу, а не ждал у моря погоды, типа попозже исправят всё.
Офлайн
Всё просто: мы убираем Go из нашей жизни и проблемы сразу все исчезают. Это вот хороший признак того, что язык говно полное, расхайпованное просто. Не без участия Google. Это же надо было заставить разработчиков опубликовать недоделку! Видно плотно они их за яйца держат там, ибо так перепугаться увольнения, что выкатить полпродукта только, - это говорит о плачевной ситуации у них там с работой.
Офлайн
Кстати, ларавелщикам интересно (ну, мне тоже):
Что скажете про FastApi? Уместно сравнение с Node.js, по функционалу?
Офлайн
soughНу разработка быстрее идёт раза в два. Я не знаю ни FastAPI, ни Node.js, ни Laravel, ни PHP. Но разработка на питоне идёт быстрее всех этих вумных языков, потому что о краткости в питоне позаботились заранее, ещё при его создании. Поэтому в питоне нет точек с запятыми в конце операторов, нет фигурных скобок у блоков, нет типов, которые обязательно нужно указывать везде, нет объявлений функций. Поэтому питон подходит для макетирования. На нём можно быстро набросать работающую программу с основным функционалом и рассмотреть её аспекты, подлепить её, но также в нём есть средства для создания полноценной программы, а не только макета.
Что скажете про FastApi? Уместно сравнение с Node.js, по функционалу?
soughВот пока ларавельщик будет писать один модуль, питонер это всё уже запустит и будет следующий проект писать. Когда ларавельщик допишет первый модуль, питонер уже запустит второй проект и будет третий проект писать. Вот нравится тебе такой темп работы? такая продуктивность? Ну кому-то нравится и у них ничего не выходит в итоге. Один модуль, который ничего не делает.
Кстати, ларавелщикам интересно (ну, мне тоже):
Отредактировано py.user.next (Июль 22, 2023 11:54:44)
Офлайн