Яков Сироткин (yakov_sirotkin) wrote,
Яков Сироткин
yakov_sirotkin

Уроки Swing

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


После работы над Thinkorswim я много лет хотел разрабатывать desktop-приложения, потому что считал, что только полноценный клиент может обеспечить удобную работу пользователей. У меня была потом пара проектов на Swing, но они сами по себе были мало интересны и особого удовольствия от них я не получил. В 2006 году я организовал встречу Swing Monsters, но никаких существенных результатов она не дала: мы поговорили о разных проблемах, но честно править разнообразную кривизну было уже поздно, потому что наверняка нашёлся бы клиент, который эту кривизну использует.

В это время веб-приложения потихоньку наращивали свои возможности, а интерфейсы становились всё более простыми и понятными. Маленькую революцию в UI совершил iPhone, но на этом рынке Java просто нет физически. Ещё немного у Swing отъел Eclipse.

И теперь, когда я уже практически перестал переживать по поводу Swing, мне снова довелось с ним столкнутся! Это два огромных приложения для одной из самых крупных в мире компаний. К сожалению, тут всё оказалось, мягко говоря, не гладко. Священная корова backward compatibility совершенно не спасла нас от отката на предыдущую версию. Если есть две реализации одного и того же метода, то в подавляющем большинстве случаев не составит труда написать код, который будет эту разницу выявлять, с чем мы и столкнулись. Богатство возможностей породило очень запутанный интерфейс, в котором с трудом разбираются и пользователи, и разработчики. Используемые сторонние компоненты внезапно оказались настолько древних версий, что уже практически не упоминаются на сайтах производителей.

Итого, можно сказать, что хорошие приложения на Swing получились только у нескольких очень хороших команд, которые вполне могли бы написать всё и на C++. А простые смертные запутались и ничего толком не сделали.

А какой у вас опыт со Swing?
Tags: code
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 41 comments