LINUX.ORG.RU

Python VS Java

 ,


0

8

Всем привет. Ковыряю backend-сервис на Java, и вот появились такие мысли - зачем в web'e нужен Python, если есть множество фреймворков на тех же Java, C#, Erlang, NodeJS, Golang, Rust... Иным словами - я понимаю зачем в web-development нужны такие языки как Rust/C++ (скорость исполнения, математика), Java и Erlang (большие нагрузки ага), Golang и NodeJS (возможность дёшево сделать асинхронный сервис)... Для быстрого клепания уже *дцать лет как существует Smalltalk/Seaside, подобные же штуки для Perl и TCL.

Для любителей наркомании в конце концов есть Haskell, OCaml, Lisp.

Отсюда резонный вопрос - зачем современному миру web-development Python с его кривой архитектурой, GIL и python-way головного мозга большей части программистов?

З.Ы.: если что, сам ранее занимался разработкой на змеюке (пять лет) под веб. Сам на свои вопросы заданные выше ответа не нашел, о питоне вспоминаю как о страшном сне. Особенно о Django

Ответ на: комментарий от DonkeyHot

Скажи, а ты умышленно заменил «нефанатичные» на «безфанатичные», причём именно в таком написании?

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

Серьёзно? Код, в котором логические блоки выделяются отступами — удобный и красивый?

А разве нет?

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

Правильность отступов проверяется до выполнения, емнип.

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

Код, в котором логические блоки выделяются отступами — удобный и красивый?

да

Или как питонокод с книжки/распечатки набирать.

просто. автоматическая простановка отступов? не, не слышал

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

Серьёзно? Код, в котором логические блоки выделяются отступами — удобный и красивый?

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

Ведь случайную ошибку форматирования

Ни разу не видел реальной ошибки в отступах. За все года.

которая приведёт к нарушению логики программы, крайне тяжело обнаружить.

Если внимательно подумать, то всё гораздо лучше, чем в любом C-подобном языке.

anonymous
()
Ответ на: комментарий от RazrFalcon

Правильность отступов проверяется до выполнения, емнип.

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

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

ещё Ruby, C#, swift и objc - это как минимум

Вебня на swift и objc? 0_0

про C# ничего не скажу, опыта нет.

в фронтенде он сейчас незаменим никаким питоном

Так я про backend. На фронте согласен!

Но сэкономит ли он на проекте в 10000+ строк полезного кода хотя бы лишние сутки в месяц

в поиске исполнителя да.

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

ошибку форматирования, которая приведёт к нарушению логики программы

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

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

Если внимательно подумать, то всё гораздо лучше, чем в любом C-подобном языке.

if foo:
    a = 1
b = 2
    c = 3

# ошибка синтаксиса

if (foo) {
    a = 1
b = 2
    c = 3
}
//работает
if foo:
    a = 1
    b = 2
c = 3
# затаившийся песец


if (foo) {
    a = 1
    b = 2
}
c = 3
// затаившийся песец
if foo:
    a = 1
    b = 2
    c = 3
# работает

if (foo)
    a = 1
    b = 2
    c = 3
// затаившийся песец
anonymous
()
Ответ на: комментарий от hobbit

если последний оператор в блоке сдвинулся на уровень выше

Будет то же, что в скобочных - просто тут «уровень выше» - слева, а там - обычно снизу.

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

Вебня на swift и objc? 0_0

вебприложения, говорят, на них вполне пишут под определённые архитектуры. врут?

Так я про backend.

Ну ок, давайте чисто про бекенд. Имхо, язык тут вторичен, важны батарейки. Встрял в ограничения Django - и привет скорости разработки на питоне. Встрял в ограничения Рельс - и привет скорости разработки на руби. Встрял в ограничения Фреймворк_имя - и привет скорости разработки на язык_имя.

конкретно топикстартер «о питоне вспоминаю как о страшном сне. Особенно о Django», значит, были причины

в поиске исполнителя да.

да нет же - раст сейчас весьма хайповый язык, есть даже шанс на з/п сэкономить, лишь бы раст

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

Многие пишут и запускают на разных ОС.

Ну и C#, swift и objc на лине чисто для галочки. Пользоваться всё равно нельзя, ибо вендорлок.

RazrFalcon ★★★★★
()
Последнее исправление: RazrFalcon (всего исправлений: 1)
Ответ на: комментарий от hobbit

Так далеко не все ошибки могут быть автоматом найдены

Пример?

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

Многие пишут и запускают бекенд на ОС с абсолютно разными ядрами

не слышал о таком. зачем они это делают?

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

Нет, ты не понял. Вся модель исполнения в компьютерах асинхронна. Синхронность это костыль поверх нее. Так что ты не прав.

mimico
()
Ответ на: комментарий от RazrFalcon

всем удобно разрабатывать линь приложения под линем, но не все об этом знают

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

Нет же. «Моя» функция с удовольствием примет любой нужные клиенту данные.

Если в яве что-то засунет данные, которые расширяют класс агрумента всё тоже будет норм.

И проблюётся, если не достаточно.

Вот только как, когда оно узнает это «не достаточно» и каким образом будет блевать никто не узнает, пока не запустит.

Внезапно получается, что CT код - неженка

Еще раз. На СТ ты можешь сделать свой var и всё будет точно так же как на ДТ. Просто выглядеть это будет не очень.

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

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

Я не выделяю всё подряд отступами, если оно не надо, например. Могу захерачит что-то мелкое в одну строчку еще и отступы поставить какие хочу, а не такие, как решили пистоншики. Мне удобно.

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

Да он гонит, переключение контекста дохера дорогая операция. Просто хочется иметь не однозадачный компьютер, приходится мириться.

anonymous
()
Ответ на: комментарий от anonymous
if (foo)
    a = 1
    b = 2
    c = 3

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

anonymous
()
Ответ на: комментарий от crutch_master

Если в яве ... которые расширяют класс

Неправильный ответ. Это можно в с++. В яве нужно заменять всё интерфейсами. И это всё ради того, чтобы компилер/интерпретатор не вспотели?

как, когда и каким образом

Не, ну «как» - понятно, исключениями. «Какими» - не угадаешь, но это больно только тем, кто злоупотребляет их ловлей. Самое критичное тут «когда». В тестах оно вообще психологически полезно(даёт ощущение не зря потраченного времени полезной практике). В проде, конечно, неприятно. Но 1. #$% откуда у тебя в прод. коде появился не проходивший тесты тип данных?! 2. Ну, свалилось, ща починим, никто же не умер(помнишь, веб девелопмент обсуждаем?).

На СТ ты можешь сделать

Если преимущества, приносимые СТей, в текущем проекте не нужны - разумно не бороться с ней, а использовать инструмент, в котором её нет вообще.

DonkeyHot ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.