Почему Java программисты зарабатывают больше и что им за это будет
3 года назад я написал довольно провокационный пост на тему того, почему я после 6 лет работы Java программистом сел писать свой проект на другой технологии. Дискуссия о проблемах Java вышла довольно жаркой и я хочу продолжить ее данной публикацией.
Итак начнем с популярности платформы. За Java изначально стояла многомиллиардная компания, которая вкладывала в эту популярность большие деньги, создавала фреймворки, стимулировала сообщества разработчиков для того чтобы создать ощущение простоты разработки и надежности поддержки. Все это любят те, кто заказывают Enterprise софт и поэтому в мире существует безумное количество проектов, заказанных большими компаниями именно с использованием Java. Есть даже мнение, что никого еще не уволили за то, что он выбрал Java как платформу для проекта, и это играет не последнюю роль в выборе, которые делают IT директора крупных компаний. Кроме того Enterprise — это дорого, а раз так то кажется качественным и надежным.
Большинство разработчиков в Украине как раз и работает на иностраных Enterprise заказчиков, поэтому эти платформы настолько популярны в нашей стране и на Java разработчиков существует безумный спрос на рынке труда. Как следствие у них растут зарплаты в результате переманивания разработчиков из одного проекта/компании в другую.
Почему этого не происходит в других технологиях — во-первых из-за немного более низкого ажиотажа и связаного с этим переманивания разработчиков, во-вторых, в отличие от Java проектов, которые преимущественно похожи как две капли воды, в других технологиях намного больше творчества. А как известно начиная с уровня, когда денег достаточно на велосипед и зеркалку, человеку становится немаловажным интересность его работы и в арсенале мотивации сотрудиков появляются другие вещи чем повышение зарплаты и тренажерные залы. Так как на рынке есть другие мотиваторы кроме зарплаты, поэтому в не-Enterprise сегменте зарплаты повышаются несколько меньшими темпами, но если измерить удовлетворенность сотрудников, то мне кажется в этом сегменте она будет не ниже а даже немного выше, впрочем я могу и ошибаться.
С почему выше зработок более менее разобрались, перейдем к тому чем это грозит. Мало кто не согласится, что при одинаковой квалификации большинство задач на Ruby/Python/PHP реализовывается проще и изящнее чем на Java и как следствие продуктивность труда в Java индустрии ниже. Это проблема № 1 — более низкая продуктивность труда. Также постоянно работая в рамках довольно жестких фреймворков у разработчиков теряется творческая составляющая, для проекта это хорошо так как появляется взаимозаменяемость, а вот для инженера не очень, так как это приводит к частичной деградации и остановке в развитии. Простой пример, попросите Java разработчика и Python/PHP/Perl/Ruby разработчика за сколько они сделают простенький сайт вроде milliondollarhomepage.com а еще лучше попросите их сделать и запустить, сроки будут отличаться в разы. Да это пример из веба но там сейчас идет большинство разработки и подавляющее большинство стартапов, которые на слуху это интернет компании.
Таким образом, получая более высокую зарплату, Java разработчики в подавляющем большинстве своем работают менее эффективно чем могли бы, теряют в развитии и, кроме того, значительно снижают шансы быть нанятыми или основать интересный стартап.
Мораль: если для вас самореализация и удовольствие от работы важнее лишних нескольких сотен $ в месяц ищите возможность писать на чем-то отличном от мейнстрима Java. Спрос на хороших разработчиков сейчас есть во всех технологиях. А взамен вы получите более высокую собственную эффективность, способность работать в более интересных проектах и если вы однажды захотите реализовать небольшой pet-project за пару вечеров, который может перерасти в успешный бизнес то всегда полезно иметь под рукой хороший инструмент которым вы владеете.
...И помните что произошло с COBOL-ом.
PS. Прекрасно представляю себе волну критики от защитников Hibernate, Spring, EJB, JSF и прочих вкусностей, но в отличие от большинства критикующих автор попробовал обе стороны и его мнение базируется исключительно на личном опыте, впрочем оно не претендует на единственно правильное.
PS2. Почти тоже самое можно написать про .NET, где зарплаты лишь немного ниже чем в Java.
Найкращі коментарі пропустити