За рік, що минув з релізу Kotlin 1.0, мови сталися прориви по багатьом фронтах: від підтримки в Gradle Spring до виходу книги «Kotlin in Action». Число Kotlin-рядків на GitHub зросла більш ніж учетверо, перевищивши 10 мільйонів. А тепер вийшла версія 1.1, додає компіляцію в JavaScript, і це виглядає гучного заявкою на нову частку ринку. Чи означає це все, що ось тепер час Kotlin по-справжньому прийшло, і нам всім пора активно використовувати мову в продакшені?

Андрій Бреслав (JetBrains) і Антон Кекс (Codeborne) багато знають про Kotlin (і обидва скоро виступлять на JPoint з доповідями про нього), але при цьому дивляться на нього з різних сторін: поки Антон розробляє на цій мові, Андрій працює над самим мовою. Ми вирішили, що про сьогодення і майбутнє Kotlin цікаво поговорити з ними обома відразу, отримавши повну картину. Почавши з питань про бурхливому зростанні, потім встигли обговорити ще багато що:

  • Взаємодія з розробниками і процес еволюції мови
  • Компіляцію в JS, проект Kotlin Native і мультиплатформеність в загальному
  • Недосконалості
  • Kotlin-паззлеры
  • Очікування і амбіції

Читати далі →

Напевно, Eclipse давно вже не потребує особливого представлення. Багато знайомі з Eclipse завдяки Eclipse Java development tools (JDT). Саме ця популярна open-source Java IDE асоціюється у більшості розробників зі словом «Eclipse». Однак Eclipse – це розширювана платформа для інтеграції засобів розробки (Eclipse Platform), і цілий ряд IDE, побудованих на її основі, в тому числі JDT. Eclipse – це і Eclipse Project, проект верхнього рівня, координує розробку Eclipse Platform і JDT, і Eclipse SDK постачається результат цієї розробки. Нарешті, Eclipse – це open-source Foundation з величезним співтовариством проектів, далеко не всі з яких написані на Java або мають відношення до засобів розробки (наприклад, проекти Eclipse IoT і Eclipse Science). Світ Eclipse дуже різноманітний.

У даній статті, оглядової за своїм характером, ми спробуємо розглянути деякі основи архітектури Eclipse як платформи для побудови інтегрованих засобів розробки і дати початкове уявлення про компоненти Eclipse, що утворюють фундамент технологічної платформи для «нового Конфігуратора» 1C: Підприємство, 1C:Enterprise Development Tools. Зрозуміло, такий розгляд неминуче буде багато в чому поверхневим і досить обмеженим, в тому числі і тому, що ми орієнтуємося не тільки на Eclipse-розробників в якості цільової аудиторії. Втім, сподіваємося, що навіть досвідчені розробники Eclipse зможуть знайти в статті цікаву для себе інформацію. Наприклад, ми розповімо про один з «секретів Eclipse», відносно новий і маловідомий поки проекті Eclipse Handly, який був заснований і підтримується фірмою 1C.
image

Читати далі →

Що таке HTML, CSS, JavaScript і Bootstrap фреймворк складно пояснювати людині який далекий від IT. А що якщо потрібен сайт на безкоштовному хостингу, без прив'язки до онлайн конструкту саме цього хостингу!?



Як думаєте, реально навчити дівчину оновлювати свій сайт на GitHub Pages до Міжнародного жіночого дня!? Розповім, як мені це вдалося з допомогою генератора сайту, який доступний на Github і написаний на Java + FreeMarker, до того ж намагався автоматизувати публікацію контенту в git репозитарій.

Читати далі →

Працюючи в многомодульном maven проекті, часто доводиться вносити зміни в кілька пов'язаних модулів одночасно. І якщо хочеться зібрати лише заторкнуті модулі, то на жаль maven не надає нічого автоматичного. Якщо трохи погуглити, то на stackoverflow можна знайти просте однорядкове рішення:
mvn install -amd -pl $(svn st | colrm 1 8 | sed 's /.* '| xargs echo | sed 's- -,:-g' | sed 's ^ : ')

На цьому можна було б і закінчити. Але мені хотілося більшого — чого конкретніше і як я цього добивався під катом.
Читати далі →

Стаття про реалізацію патерну Builder з перевіркою на рівні компіляції, реалізованого за допомогою параметричного поліморфізму. У ній ми поговоримо про те, що таке поліморфізм, яким він буває. Як влаштована магія «оператора» = = у scala, можна повторити її в java і, використовуючи ці знання реалізувати Builder, не допускає неповної ініціалізації створюваного об'єкта.

Читати далі →