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
  • 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 →