Lex Kravetski (lex_kravetski) wrote,
Lex Kravetski
lex_kravetski

Category:

Ненависти к языкам пост

Чего меня раздражает в Java.

1. Нет замыканий. И нет изящного способа их воплотить. Для имитации замыкания нужно создавать интерфейс, а потом делать его реализации. Хотя бы в виде безымянных классов. Выглядит это не ахти и требует явно лишних усилий.

2. Массивы и контейнеры — не одно и то же. foreach действует одинаково и для того и для другого, но вот создавать их почему-то надо разными способами. И разными же способами с ними взаимодействовать. Особенно печально это в случае с отражениями — тут приходится всё время делать отдельные ветки для массивов и коллекций.

3. Примитивный тип и его объектная обёртка на уровне отражений не целиком взаимозаменяемы. Опять же — отдельные ветки, да ещё и временами приведение типов.

4. Нет возможности получить явную ссылку на метод в том же виде, в котором её можно получить на class (String.class, например). Из-за этого на метод приходится ссылаться исключительно по строке, что компилятор проверить не в состоянии.

5. Дженерик в рантайме не может сообщить про свои параметры. Из-за этого приходится как-то там сообщать, что конкретно должно храниться в полях-дженериках.

6. Многие операции с дженериками сильно избыточны по синтаксису. Из-за это зачастую проще вообще не указывать параметры дженерика — чтобы не надо было их указывать в десяти местах.

7. Дженерик не может быть параметризован примитивными типами. С авто-свёрткой всё нормально, но когда дело доходит до отражений — всё тот же пинцет.

Сцуко!!!

 

Примечание для студентов: совет «смени язык программирования на XXX» кажется очень умным только вам. То есть, тем, кто не пишет никаких крупных проектов и не работает в команде. Да, пацаны, зато у вас есть возможность писать ваш любимый «здравствуй, мир!» на всех существующих языках и выбирать среди них лучший по критерию «насколько просто на нём написать здравствуймир».

Tags: программирование
Subscribe

  • Проверка диапазона во время компиляции

    В Scala 3, с одной стороны, можно завести тип, имя которого — просто некоторое число, с другой стороны, можно делать вычисления с типами, а с третьей…

  • (no subject)

    Помните, когда вам говорят про Финляндию, в ответ следует: «ну так там маленькое население и территория — им проще»? Так вот, те же люди «там…

  • (no subject)

    Как я понял из обсуждения текущих событий на Кубе так называемыми коммунистами: интернет это не главное, мобильники это не главное, компьютеры это не…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 61 comments
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →

  • Проверка диапазона во время компиляции

    В Scala 3, с одной стороны, можно завести тип, имя которого — просто некоторое число, с другой стороны, можно делать вычисления с типами, а с третьей…

  • (no subject)

    Помните, когда вам говорят про Финляндию, в ответ следует: «ну так там маленькое население и территория — им проще»? Так вот, те же люди «там…

  • (no subject)

    Как я понял из обсуждения текущих событий на Кубе так называемыми коммунистами: интернет это не главное, мобильники это не главное, компьютеры это не…