Кто-то выберет Python, потому что в нем начало и конец класса или функции обозначается простым отступом (табуляцией), а в Java для разделения блоков кода применяют надоевшие круглые скобки. А кому-то друзья-инсайдеры в программировании посоветуют учить Java. Среди программистов популярно мнение, что новичку лучше сначала освоить компилируемый язык. Скорее всего, категорический ответ на вопрос: «что лучше java или python» дать нельзя. У каждого свои цели и своя ситуация. Поговорим об особенностях двух языков программирования, которые делают их предпочтительными в тех или иных обстоятельствах.

Плюсы Python, Java. В двух словах

Преимущества Python для начинающего:

  1. В сравнении с Java, Python имеет более простой, краткий синтаксис (например, функция чтения из файла на Java – 10 строк, на Python – 2);

  2. Востребованность (на май 2023 по индексу TIOBE язык на первом месте по популярности у разработчиков);

  3. Универсальность (код при переносе одинаково срабатывает на Windows, Linux, MacOS, Android и для этого ничего не надо, кроме установленного интерпретатора языка);

  4. Динамическая типизация (программа выполнится, несмотря на не очень хороший код);

  5. Наличие лучших библиотек для machine learning, анализа данных, нейросетей (Python почти монополист, на нем написаны ChatGPT, а И. Кузьмин, сотрудник Intel, недавно заявил, что его компания использует Python в программировании беспилотных автомобилей, так как он лучше подходит для прототипирования). В этих сферах сравнение Java и Python в пользу последнего;

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

Преимущества Java для начинающего:

  1. Язык компилируемый (он примерно в 8 раз быстрее Python, который относится к интерпретируемому типу языков. Ниже мы поговорим об этом подробнее, компиляция открывает больший доступ к «железу» компьютера, то есть ко всем его возможностям, например, известно, что на компилируемом языке C можно даже написать такую программу, которая сломает компьютер);

  2. Решая, все-таки какой язык, Python или Java, стоит помнить, что Java хорошо подходит для веб-проектов со сложной обработкой данных на «бэке», а также для создания компьютерных программ для установки в Windows (на Java написаны Amazon, PayPal, Ebay, Jira, Twitter, LinkedIn); 3) язык специализирован для ООП – объектно-ориентированное программирование. В нем почти нет процедурного кода;

  1. Если изучающий решил заниматься программированием всерьез и как профессионал, то лучше учить Java, потому что он эффективнее знакомит с тем, как работает код в машине;

  2. Java подойдет лучше Python, когда речь заходит о мобильной разработке. Дело в том, что именно первый традиционно плотно используется вокруг Android и он все равно понадобится на разных этапах, а без «Питона» в этой ситуации можно обойтись. Кроме того, он лучше готовит к языку программирования Swift, когда вы решите адаптировать свое приложение и для iOS.  

Минусы Python, Java. В двух словах

Недостатки Python для начинающего:

  1. Затрачивает много оперативной памяти. Если вы планируете работать над проектом, которому нужно много RAM (оперативной памяти), то, возможно, Python не самый подходящий язык. К счастью, во многих библиотеках языка предприняты попытки оптимизировать затраты вычислительных ресурсов. К примеру, фреймворк NumPy выполняет эту функцию там, где он применим. Дело в том, что библиотеки Python написаны на низкоуровневых компилируемых языках, таких, как C, C++, которые могут быть еще быстрее, чем Java;

  2. Один из главных доводов при ответе на вопрос: «что выбрать: Python или Java?» в пользу последнего состоит в том, что Python очень универсальный. С помощью библиотек и возможности писать дополняющий код на других языках, предусмотренной создателем языка Гвидо Ван Россумом, можно писать приложения и скрипты любого типа – даже программы для Microsoft, запускающиеся с рабочего стола Windows. Другое дело, что во многих нишах выбор Python не оптимален. К примеру, в мобильной разработке Kotlin и другие специализированные языки гораздо лучше и эффективнее;

  3. Сравнительно сложно перейти с Python на Java или любой другой язык, имейте это в виду, решая, что учить Java или Python, в «Питоне» много абстракций, общение с машиной в нем максимально спрятано «под капот», давая человеку сосредоточиться на общей логике создаваемого приложения. Обратный переход с Java на Python – комфортный.

Недостатки Java для начинающего:

  1. Много проблем в области синтаксиса. Например, при всей ориентации на объектно-ориентированный стиль, не поддерживает множественное наследование, то есть нельзя написать класс «Автомобиль» (проект автомобиля) и реализовать его так просто много раз в виде экземпляров класса (желтый автомобиль, зеленый автомобиль, красный Mitsubishi, в Java такое поведение можно только имитировать через интерфейс, что не очень удобно);

  2. Проигрывал другим языкам в эффективности некоторых конструкций. В него все же были введены Лямбда-выражения и потоки (одновременное выполнение нескольких процессов – не 1, затем 2, затем 3, а все это одновременно, если так нужно), однако это работало хуже, чем в других языках. Впрочем, как и в Python, в Java предусмотрена стандартизированная процедура улучшения языка сообществом пользователей. Цикл внесения изменений составляет 6-месяцев, и через некоторое время недостатки могут быть устранены.

Что общего у Python и Java?

Между Python и Java разница большая, но есть и общее: универсальность, отличная документация, активное коммьюнити пользователей, большое количество legacy-кода, написанного на двух языках. Библиотеки Python в сфере машинного обучения считаются его конкурентным преимуществом, но и на Java можно писать нейросети, хотя это менее удобно. На Java даже можно работать со звуком и изображением, все необходимые инструменты для этого существуют. Аналогично, банковское веб-приложение скорее напишут на Java, но могут сделать это и на «Питоне». Хотя по индексу TIOBE за май 2023, Python занимает первое место по полярности, но Java не сильно отстает от него, занимая третью строчку в том же рейтинге. Так что говорить, что Java не перспективен, если речь заходит о том, что перспективнее Java или Python – неправильно. Массовость использования языка питает огромные потоки бесплатного обучающего материала. И с тем, и с другим языком при изучении вряд ли возникнет вопрос, на который нельзя будет найти ответ в Сети. Python и Java хорошо интегрированы. Интерпретатор Python можно встроить в Java-приложение, а в Python внедрять целый сегменты кода Java там, где Java эффективнее.   

Python лучше Java из-за лаконичного синтаксиса? Не все так просто

На первый взгляд, тут даже не с чем спорить. Достаточно сравнить две одинаковые операции на Python и Java. Будем создавать массив и выводить в консоль разработчика его содержимое. Итак, Python:

anyPhrase = ["Я Пайтон. Я гораздо лучше Java, выбери меня", 321]
for oneElem in anyPhrase:
	print(oneElem)

А вот, что нужно в Java для того же самого результата:

public class coolJava {
	public static void processArr(String args[]) {
    	String array[] = {"Я Java, отношусь к компилируемому типу языков", "Я Java, я гораздо лучше Пайтон", "43"};
    	for (String i : array) {
      	System.out.println(i);
    	}
	}
}

Обратите внимание, что в Python мы можем легко хранить в одной коллекции данных разные типы информации. Первый элемент в нашем демонстрационном массиве – строка, а второй – число. Java является строго типизированным языком, поэтому в переменной вы можете складывать только данные того типа, который был заявлен при создании. Это имеет целый ряд последствий. Например, в массиве у вас должна быть однотипная информация. Это не слишком удобно.

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

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

Java лучше Python, потому, что компилируемый? Не все так просто

Python является интерпретируемым языком. Это значит, что после запуска скрипта специальная программа-интерпретатор (Global Interpreter Lock) читает файл с вашим исходным кодом строчка за строчкой и переводит ваши операторы в команды, понятные компьютеру. В Java файл с кодом и расширением .java передается компилятору, который сразу переводит весь комплекс программы в нули и единицы, «собирает» проект. С одной стороны, это делает язык быстрее, но для новичков такой аргумент часто не очень убедителен.

Пройдет еще много времени, прежде, чем они что-то будут делать с базами данных на терабайты информации. С другой стороны, интерпретация означает, что программа выполнится до момента, когда возникнет ошибка. Это упрощает «дебаг», то есть поиск ошибок и помогает тестировать получившееся приложение. Выбор между Python и Java зависит от приоритетов того, кто начинает учить язык. Так что не все так однозначно.

Python лучше Java из-за динамической типизации? Не все так просто

В языках программирования операции производятся над данными разных типов. В большинстве из них есть строки, числа, массивы. В Python, Java установлены правила обработки каждого типа и взаимодействия между ними. Python обладает динамической типизацией. Это значит, что по ходу написания программы в переменную можно положить информацию другого типа и произвести операцию между переменными разных типов. Типичный пример удобства этого можно найти в программе выборки данных за определенный год. Представьте, что вам передали коллекцию данных. Информация разбита по годам, а года хранятся строкой (string). Вам нужно отсеять все ранее 2019 года. С Python вы можете сделает это, указав, что вам нужно year > 2019. По наличию оператора «>» Python «», что интерпретировать на этот раз year нужно как число. Финита! Вы отсеяли данные. В Java нужна очень большая обработка для этого, так как это язык со статической типизацией. Вы создаете переменную, сразу устанавливая для нее тип. Так легко производить межтипные операции не выйдет. Чтобы изменить тип, надо старую переменную уничтожить, а новую создать. Казалось бы, однозначное преимущество Python, но нет. Профессиональные программисты говорят о том, что приложения на языках с динамической типизацией нестабильны. Они часто дают непредсказуемые ошибки из-за попадания в методы и операции данных не тех типов.

Это то, чем отличается Java от Python. Проблемы динамической типизации настолько серьезны, что во многих интерпретируемых языках наблюдается своеобразная попытка имитировать строгую типизацию. Например, в версии 8.0 PHP (язык с динамической типизацией), вы должны указать тип данных поступающих в функцию и тип информации, которую она возвращает. Если тип указан, то функция не будет пропускать информацию, которая ему не соответствует. Скрипт сразу выведет ошибку. Если указания типов нет, то сделать скрипт надежнее поможет качественная обработка ошибок, которая по объему кода будет соперничать с тем, что вы проигрываете в Java на статической типизации. Таким образом, на поверку статическая типизация оказывается не такой плохой идеей. Не все так однозначно.

Что можно сделать с помощью Python?

Какой язык выбрать: Java или Python, если вы строите математическую модель развития экономики Латинской Америки? Python считается хорошим языком программирования для непрофессиональных программистов: ученых, экономистов и других профессионалов. Считается, что он лучше, чем Java подходит для математических и научных вычислений. На Python часто пишут логику веб-сайтов, приложений в области машинного обучения и анализа данных.

Что можно сделать с помощью Java?

Что изучать Python или Java, если вы собираетесь работать программистов в банке? Java чаще выбирают, когда нужно создать программу для Microsoft Windows или сложное веб-ориентированное решение. Не просто сайт, а, к примеру, банковский сервис или платежную систему. Впрочем, разницу между Python и Java не стоит абсолютизировать. Правда в том, что и на том, и на другом языке можно создать все. На сегодня это одни из самых универсальных языков. Выбор зависит от особенностей задачи и от того, какой из них вы лучше знаете.

Java или Python: с чего начать?

Так, какой язык программирования выбрать: Java или Python? Курсов по Java для новичков-взрослых, разумеется, немало. Есть проблема с таковыми для детской аудитории, поскольку большая часть его преимуществ проявляется в полноценной работе, а не в обучении. Зато есть множество форматов и предложений по обучению детей, подростков и школьников Python.

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

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

Комментарии (34)


  1. valery1707
    25.05.2023 09:30
    +11

    например, функция чтения из файла на Java – 10 строк, на Python – 2

    А где тут 10 строк?

    String fileContent = java.nio.file.Files.readString(java.nio.file.Path.of("some/path/to.file"));
    

    P.S.
    Да будет +2 строк на импорты и, по хорошему, нужна обработка ошибок.
    Но всё это не учитывалось и в "2 строках на Python".


  1. a-burlakov
    25.05.2023 09:30
    +18

    Статья настолько сомнительная, что я был уверен, что в конце будет ссылка на телеграм, а ее нет... Странно.

    Но судя по другим статьям, вы занимаетесь обучением подростков программированию или чем-то подобным. Если бы статья была написана для людей "не в теме", скажем, с названием "Python или Java: что выбрать родителю для школьника?", то она вызывала бы меньше смущения. А так - почти к каждому утверждению будут серьёзные вопросы что от разработчиков на Java, что на Python.


    1. Hardcoin
      25.05.2023 09:30
      +11

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


  1. gdt
    25.05.2023 09:30
    +8

    Смешались в кучу кони, люди - вот например

    программа-интерпретатор (Global Interpreter Lock)

    Предлагаю пытливому читателю самостоятельно сравнить определения этих двух терминов:

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


  1. Survtur
    25.05.2023 09:30
    +4

    Накину ещё

    ... Информация разбита по годам, а года хранятся строкой (string). Вам нужно отсеять все ранее 2019 года. С Python вы можете сделает это, указав, что вам нужно year > 2019. По наличию оператора «>» Python «», что интерпретировать на этот раз year нужно как число.

    Это не так. Никогда не получится сравнить строку "2019" и число 2020. Путаете с JavaSript.

    Возможно автор путает тёплое с мягким. Динамическая-статическая типизация. Строгая-нестрогая...


    1. Neusser
      25.05.2023 09:30
      +1

      Я вообще не понял смысл этого фрагмента:

      Информация разбита по годам, а года хранятся строкой (string). Вам нужно отсеять все ранее 2019 года. С Python вы можете сделает это, указав, что вам нужно year > 2019. По наличию оператора «>» Python «», что интерпретировать на этот раз year нужно как число.

      Какой-то малоосмылсенный набор слов, некоторые из которых очевидно пропущены.


      1. Kristaller486
        25.05.2023 09:30

        Предполагаю, что автор имел ввиду такую, действительно валидную конструкцию в Python

        '2020' > '2019'  # True
        '2019' > '2020'  # False


        1. valery1707
          25.05.2023 09:30

          Но ведь это просто сравнение строк, а автор говорит о том что "Python будет интерпретировать на этот раз year как число".
          Да, в данном случае результат одинаковый (сравнения строк и сравнения чисел, хранимых в строках), но смысл того как этот результат получается совершенно разный.
          В Python можно вычислить

          'asdf' > 'zxcv' # False
          

          но не смотря на "наличие оператора >" ни о какой "интепретации строк как чисел" речь не идёт.

          Да и конструкция сама по себе валидна не только для Python, а, например, и в Kotlin, который работает в JVM и она реализуется как синтаксический сахар вокруг интерфейса Comparable.


  1. panzerfaust
    25.05.2023 09:30
    +9

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

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

    не поддерживает множественное наследование

    И спокойно живет с этим уже почти 30 лет. Что как бы говорит о "ценности" этой фичи.

    Вообще забавно. Видно, что не Чятик писал. Но местами лучше бы уж Чятик. Учить подростков - дело благое. Но ученикам нисколько не лучше от того, что ради упрощения материала вы, мягко говоря, очень вольно обращаетесь с некоторыми фактами и концепциями.


    1. BadDancer
      25.05.2023 09:30
      +1

      По контексту судя, имелись ввиду Stream, а не Thread. Они в Java 8 подъехали.


      1. panzerfaust
        25.05.2023 09:30
        +3

        Ваша правда. Просто я очень давно не слышал, чтобы стримы потоками называли. Но вопрос-то тот же остается. Стримы работают хуже, чем где? И что вообще означает "хуже" в данном контексте?


  1. Firsto
    25.05.2023 09:30
    +13

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

    Да ладно?


    1. aleksandy
      25.05.2023 09:30
      +1

      curly - круглый. Очевидно же, не?


      1. Firsto
        25.05.2023 09:30

        curly

        Вот кстати у меня на это слово первая ассоциация со словом "ugly", хз как это фиксить.)


  1. ABHuman
    25.05.2023 09:30
    +4

    Универсальность (код при переносе одинаково срабатывает на Windows, Linux, MacOS, Android и для этого ничего не надо, кроме установленного интерпретатора языка);

    Правильно ли я понял, что Джаву лишили кроссплатформенности в обзоре? По мне очень смело!


  1. maiden666
    25.05.2023 09:30
    +3

    я думаю новичку лучше выбрать C#


    1. insighter
      25.05.2023 09:30

      те же яйца только сбоку


      1. AlexSteelax
        25.05.2023 09:30

        Яйца от майкрософта побриты и не только они)


  1. valery1707
    25.05.2023 09:30

    Преимущества Python для начинающего:
    3. Универсальность (код при переносе одинаково срабатывает на Windows, Linux, MacOS, Android и для этого ничего не надо, кроме установленного интерпретатора языка)

    Так это для Java более корректно, чем для Python так как у неё тоже достаточно установленной JRE/JDK правильной версии (помним про различия между 2 и 3 версиями Python) только не нужно возиться с изоляцией зависимостей между проектами.
    Я не уверен, но мне помнится что при установке некоторых зависимостей для Python происходит ещё и их компиляция, а этот шаг уже сильно зависит от выбранной ОС.


  1. valery1707
    25.05.2023 09:30
    +3

    Преимущества Python для начинающего:
    4. Динамическая типизация (программа выполнится, несмотря на не очень хороший код);

    Или упадёт при выполнении, тогда как в Java компилятор заранее скажет где проблема.


    1. ABHuman
      25.05.2023 09:30

      Сменить тип можно и в Джаве... но конечно эта инфа не для новичков. И это очень правильный подход! О тёмной стороне Джавы можно потом узнать, когда с основами разобрались и фреймворки потрогали.


  1. Kotofay
    25.05.2023 09:30

    Java является строго типизированным языком, поэтому в переменной вы можете складывать только данные того типа, который был заявлен при создании. Это имеет целый ряд последствий.

    Это не так.

    ... нельзя написать класс «Автомобиль» (проект автомобиля) и реализовать его так просто много раз в виде экземпляров класса (желтый автомобиль, ....

    И это не так.

    import static java.lang.System.out;
    
    public class WhatElse {
      static abstract class Car {
          private String color = "undefined";
          Car(String color){
             this.color = color;
          }
          public String color(){return new String(color);};
          abstract public String name();
    
          public String toString(){
             return color + " : " + name();
          }
       }
       static class YellowToyota extends Car {
          YellowToyota(){
             super("yellow");
          }
          @Override
          public String name() {
             return "Vitz";
          }
       }
       public static void main(String[] args) {
          Car car = new YellowToyota();
          var varray = new Object[]{ "Really?", 42L, 1e-3f, car };
          for( var o : varray )
             out.println( o );
       }
    
    }
    ______________________________
    
    Really?
    42
    0.001
    yellow : Vitz


    1. valery1707
      25.05.2023 09:30
      +1

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


  1. valery1707
    25.05.2023 09:30
    +2

    Java является строго типизированным языком, поэтому в переменной вы можете складывать только данные того типа, который был заявлен при создании. Это имеет целый ряд последствий.
    Например, в массиве у вас должна быть однотипная информация. Это не слишком удобно.

    Это-то как раз и удобно - всегда знать что именно у нас лежит в массиве.
    Но если очень хочется то можно сделать так:

    Object[] array = {"Я Java, отношусь к компилируемому типу языков", "Я Java, я гораздо лучше Пайтон", 43};
    

    Ну и

    for (String i : array) {
      System.out.println(i);
    }
    

    превращается в

    Stream.of(array).forEach(System.out::println);
    

    что даже короче варианта на Python и в целом пример на Java содержит не чистый код, а ещё и обвязку из-за чего и выглядит длинее.


  1. valery1707
    25.05.2023 09:30
    +3

    Интерпретация означает, что программа выполнится до момента, когда возникнет ошибка.
    Это упрощает «дебаг», то есть поиск ошибок и помогает тестировать получившееся приложение.

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


  1. valery1707
    25.05.2023 09:30
    +3

    Вам нужно отсеять все ранее 2019 года.
    С Python вы можете сделает это, указав, что вам нужно year > 2019.

    Во-первых, "отсеять" можно понять двояко:

    • как "убрать всё ранее 2019 года": то есть нам нужно оставить 2019 и позднее

    • как "оставить всё ранее 2019 года": то есть нам нужно убрать 2019 и позднее

    Во-вторых, фильтрация по year > 2019 уберёт из выборки данные за 2019 год, а это не соответствует ни одной из интерпретаций вашей задачи.

    В-третьих, на Java это реализуется не сложнее:

    var years = List.of("2018", "2019", "2020");  
    var filtered = years.stream().filter(year -> year.compareTo("2019") >= 0).toList();  
    filtered.forEach(System.out::println);//"2019", "2020"
    

    А на Kotlin ещё и выглядит ровно также:

    val years = listOf("2018", "2019", "2020")  
    val filtered = years.filter { year -> year >= "2019" }  
    filtered.forEach(::println)//"2019", "2020"
    


  1. Pastoral
    25.05.2023 09:30
    -3

    Вроде как по делу, но тогда откуда у меня столь огромный внутренний протест? Уж не методология ли... Да, кстати, кто есть Новичок?

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

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

    Если тот, у кого огромная куча идей, a.k.a. желание объять необъятное, или тот, кто просто смотрит на свой комп и чувствует что его возможности используются далеко не полностью и все приложения какие-то не такие, то тут и начинается сравнение языков. Но не по всем возможным критериям, а всего по одному - что можно сделать. И приводит это всего к двум основным вопросам - какие платформы и сколько библиотек.

    И тут выясняется, что писать на Python можно подо всё, а на Java под iPad не выходит. Finita la commedia, Deal breaker, Hasta la vista, Sic transit gloria mundi. Конкурентом Python может быть Kotlin, если верить что он вскоре multiplatform, но по библиотекам, пожалуй, не тянет. Мог бы быть JavaScript, но он не самодостаточен - HTML, CSSб Node... Мог бы быть C#, кабы MAUI вышел в срок и не был привязан к VS, так что увы.

    Осталось уточнить как продать Python. Я только начал на него смотреть, но уже вижу

    • faq.pdf - интересые стороны есть, явных проблем - нет

    • using.pdf - нет проблем, никаких JDK, JRE, кучи компиляторов как в С++

    • howto-curses.pdf - только на этом уже можно сделать практически всё

    • anvil.works - бесплатно, просто, везде и изумительно иллюстрирует силу языка

    • kivy.org - и это бесплатно, просто и везде

    • mpmath - за 10 минут посчитать π до 200 знаков не разбираясь в языке, норм

    • Krita и Blender, с натяжкой Godot, скриптуются Python

    И последнее - дальше куда? Java выглядит тупиком, Python же по любому придётся ускорять, что ведёт к С++ или Rust, а они к Unreal Engine и далее везде...


  1. GennPen
    25.05.2023 09:30
    +7

    Динамическая типизация (программа выполнится, несмотря на не очень хороший код);

    Я бы записал это в минус, и ответ кроется в скобках.

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

    А еще "особенное" форматирование кода в питоне делает свое дело. После него код на C#/Java выглядит просто прекрасно и легко читаемо.


    1. Andrey_Solomatin
      25.05.2023 09:30

      Про типизацию много копий сломанно. Если немного приложить усилий (аннотации типов, мапинг объектов) то в Питоне становится намного комфортнее.

      Джава обычно также отформатированна отступами, плюс дополнительные скобки. Я на обоих пишу и разницы в чтении особо не вижу, так что это скорее дело привычки.




  1. barker
    25.05.2023 09:30
    +5

    Статья о двух языках от того кто не знает ни первый ни второй ни о программировании в целом на уровне определений.


  1. Bakuard
    25.05.2023 09:30
    +2

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


  1. alexdoublesmile
    25.05.2023 09:30

    Статья ни о чем, да еще и на сомнительных аргументах. Все проще: каждому интсрументу свое применение, Java - писать программы, Python - поиграться или заниматься околопрограммистскими движухами (прототипирование, рисеч, мониторинг и т.п.)


  1. Rabestro
    25.05.2023 09:30

    Будем создавать массив и выводить в консоль разработчика его содержимое.

    Java - Нужно быть объективным.

    var anyPhrase = List.of("String", 42);
    anyPhrase.forEach(System.out::println);


  1. rubinstein
    25.05.2023 09:30
    +1

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