Python проще чем java

Довольно легкий синтаксис по сравнению с java — в чем подвох обучение python?

Изучаю java. Сейчас балуюсь на уровне освоения парсинга сайтов, подтягиваю html and css. В планах еще сервлеты, spring, hibernate. С SQL игрался, писал много уровневые запросы собирая из нескольких таблиц.
Попала мне в руки книжка по питону. Блин, как там все проще, именно синтаксис. Это правда так? Почему тогда многие говорят что как и джаву до уровня почти мидл его учить год? В чем подвох? Для устройства на первую работу я так понимаю нужно еще Django Selenium Html CSS и SQL. Мне получается чтобы претендовать на позицию разработчика нужно подтянуть django and selenium правильно понимаю? Синтаксис просто после джавы и учить то нечего.

Так вот вопрос. Посоветуйте для дальнейшего лучше все же додавить джаву и стать джедаем? Или перейти на питона? И сколько в случае моих навыков уйдет примерно времени на обучение django and selenium? Спрашиваю в смысле возможности дальнейшего роста, актуальности языка, и так далее.

Простой 2 комментария

rockon404

Beshere

DMGarikk

питон и ява это разные инструменты для разных целей

И разница в них не в синтаксисе, а в том что Ява это 100% ООП и она строго типизирована
непосредственно синтаксис у них отличается буквально отсутствием скобочек в питоне и то что у него динамическая типизация
===
я яве больше денег (в кровавом энтерпрайзе), в питоне проще стартануть. я вот учил три года яву целенаправленно, даже джуном поработать успел. в итоге сейчас основной язык у меня питон 😉 хоть я его и не особо люблю после явы

А с устройством на работу не подскажете как дела обстоят? Сложно найти первую работу?
И сколько примерно времени уходит на хотя бы поверхностное освоение основных фреймворков за которые уже платят?

dimonchik2013

Вам надо быть внимательнее с терминами. Python тоже 100% ООП и тоже строго типизирован. Отличие Python от Java в том, что в Python динамическая типизация, а в Java — статическая.

DMGarikk

Евгений, у меня язык не поворачивается назвать Python 100% ООП. даже если он реально позволяет реализовать стандарные ООП фишки, то после явы это выглядит какойто профанацией

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

Игорь, Я не знаю где там профанация. Вполне себе ООП язык, продвинутее некоторых других ООП языков.

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

Большинство сравнений концентрируются на динамической типизации, так как это считается основной причиной ошибок.

Честно говоря, я не знаю. В своей практике я бы не сказал, что основная причина ошибок — динамическая типизация. Но так как я уже лет 15 пишу исключительно на Python, может быть у меня изменилось бы мнение, если бы я начал писать на языке со статической типизацией.

DMGarikk

Евгений, ну из-за ооп сущности явы, программы там строятся по другому, интерфейсы, абстрактные классы, фабрики объектов и т.п. в питоне это тоже можно делать, но вы так делаете?

Игорь, во-первых, это все либо есть в Python, либо тривиально реализуется. Есть даже больше ООП фишек, например, метаклассы, которых в Java нет (во всяком случае, когда я в последний раз имел дело с Java, не было).

Во-вторых, не все паттерны (такие как фабрика, например), имеют смысл во всех языках. Паттерны очень часто неразрывно связаны с языками, в которых их впервые изобрели. Например, паттерн Singleton не имеет никакого смысла в Python, но это не делает Python не объектно-ориентированным языком.

Но вообще, все это поверхностные различия. И тот и другой язык — императивные, объектно-ориентированные.

DMGarikk

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

Игорь, на Java мешает написать статическая типизация, в частности. Например, если в Python я сначала написал класс:

А затем мне понадобилось, чтобы количество ног было динамически вычисляемым, то я могу просто написать:

class Bird: @property def legs(self): return random.randint(1, 10)

И это не поломает код, который пользуется моим классом. А в Java такое изменение сломает код пользователей. Поэтому и пишутся тонны бойлерплейта, начиная с геттеров-сеттеров, заканчивая фабриками и многим другим.

Дело не в том, что один подход — это настоящий ООП, а другой — нет. Дело в том, что многое из того, что вы приводите как аргумент в пользу «настоящего» ООП — это просто преодоление особенностей языка (со статической типизацией проще сделать не получится).

DMGarikk

вы привели пример того что разница лишь в том что синтаксис доступа к переменной класса и к методу в питоне одинаков, а в java надо писать скобочки

странно это объяснять, но доступ к переменной класса снаружи без геттера-сеттера в яве не приянято делать не потому что «скобочки мешают» если вдруг приперло переменную в метод превратить, а для уменьшения количество ошибок и вообще чтобы полиморфизм работал ожидаемо. а не «»тут у нас переменная и ней ничего не надо, а вот тут метод и надо родительский класс трогать при изменении»

Игорь, извените что влажу в дискуссию. Но не подскажете как получилось так что вы ушли с джавы джуна в питонисты?

DMGarikk

ADUMA, позвали в проект с хорошим повышением ЗП несмотря что на тот момент опыт в питоне был существенно ниже явовского

Игорь, а какие библиотеки фреймворки, стоит изучить чтобы увеличить шансы получения первой работы на питоне? И может знаете ресурс где собраны описания основных подгружаемых модулей и методов их, что то типа как у джавы Oracle.

DMGarikk

ADUMA, Я учил Django и в данный момент подтянул Flask, мне кажется этого вполне будет достаточно для начала
а ресурсы, я пользовался сайтами этих фреймворков, там вполне доступно все описано.

Игорь, как думаешь? Ознакомившись и сделав пару тройку проектов на джанго с использованием базы данных допустим SQLite (посгрес заколебала, пароли слетают), github, знанием нескольких паттернов проектирования MVC, Singleton, и еще что нибудь, добавив туда тестирование, реально устроиться тысяч эдак на 80?
Проекты я имею в виду допустим сделать что то вроде сайта, магазина, свое резюме (простенький сайт визитка), и допустим для разнообразия пару игруль на гит хаб забабахать.

DMGarikk

Игорь, тостер не прислал уведомление о вашем ответе, или я его не заметил. Нет, дело не в скобочках. Геттеры-сеттеры нужны в Java потому что, если в самом начале не сделать свойство с геттерами-сеттерами, то потом это сделать уже не получится. Поэтому приходится заниматься предварительной оптимизацией (что является корнем всех зол, как известно), и на всякий случай добавлять совершенно бойлерплейтные геттеры-сеттеры для каждого свойства. Чтобы потом, если вдруг понадобится, можно было добавить динамическое поведение.

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

sim3x

спешу огорчить, трейни уже обязан знать ЯП полностью. И сколько он его будет учить — никого не интересует

А для мидла требуется опыт

от 5 минут, до бесконечности

Источник

Читайте также:  Джона дакетта html and css design and build websites
Оцените статью