През ноември, в Java групата ще ви срещнем не с един, а с трима лектори – Здравко Стойчев, Боян Бонев и Виктор Пенелски. Те ще разкажат кaкви алтернативни технологии стъпват върху платформата Java Virtual Machine и защо са популярни днес. С тях ще имате възможност да се запознаете на събитието JVM Beyond Java на 25-ти ноември. Преди това им зададохме няколко въпроса. Ето как ни отговориха те:

От вече две години, Здравко Стойчев работи в Ocado Technology и изключително цени малката общност от хора, която се изгражда в софийския офис на компанията. Той е програмист с дългогодишен опит и многобройни интереси в света на програмирането и компютърните науки. Част е от екипа, водещ курса за функционално програмиране със Scala във ФМИ.

Как и кога започна Java да влиза в твоето ежедневие?

Както при доста хора, така и при мен Java беше един от първите ми досеци с програмирането – преди около 18 години. Тогава се вълнувах от уеб програмиране и ми беше попаднала книжка за Java аплети. По време на този период се запали и интересът ми към разработката на софтуер, започнах да любопитствам и да изучавам най-различни негови аспекти, и така до днес. 🙂

Известно време Java беше основният ми език за програмиране, но никога не съм се ограничавал само до него. Езикът е просто средство, което ни позволява да се изразим. Стилът ни на изразяване обаче зависи от нашите разбирания и начин на мислене, както и от проблемът, който се опитваме да моделираме. Езикът може да постави некомфортни рамки върху едни и да вдъхнови други.

Така Java успя да изгради ключови познания в моите разбирания, които бяха база за много нови прозрения през годините.

Кой е най-интересният аспект от работата ти с Java?

Определено е възхително това, което се изгради като технология, особено виртуалната машина, и смятам че това оформи практики за не малка част от другите езици, които виждаме. Наистина изключително умни хора стоят зад Java.

Със своята имплементация на конкурентни примитиви и явно дефиниран memory модел, Java също даде възможност за имплементация на най-различни конкурентни модели. Разбира се, има своите ограничения, но Java е средата, в която можем да срещнем имплементации на най-разнообразни идеи. Най-интересните ми моменти може би са свързани именно с решаване на проблеми с подходящите конкурентни абстракции.

Какво те грабна в Scala?

За много от това ще си поговорим на самата презентация. Но накратко Scala ме грабна с възможноститте си за изразителност, изчистен функционален стил, но комбиниран с ООП елементи, допълнителни възможности за абстракция, детайлна типова система, каквато все още не бях срещал дотогава. Всичко това без особено чувство на ограничения (което може да е и плюс и минус).

Точно преди да срещна Scala всъщност изучавах Clojure, който успя допълнително да засили любовта ми към функционалния стил и разбиранията ми за него. Scala няма простотата на Clojure, за която Боян ще ви разкаже, но пък ми позволи да приложа повечето от наученото тогава сравнително директно. Допълнително Scala е език с доста добре помислен и изчистен дизайн, в който повечето езикови елементи се композират лесно с останалите. А общността не се притеснява да го критикува където е удачно и да предлага идеи за подобрения и опроставяния, някои от които се задават съвсем скоро.

Scala и екосистемата на Scala също доста добре пасна към моите интереси към дистрибутирани системи и конкурентно програмиране и всъщност ми позволи значително да задълбоча познанията си и в тази област.

Какви новости да очакваме в Java в близко бъдеще?

Java като език не е характерен с особено бурно развитие. За щастие има доста раздвижване през последните години и важни промени се случиха и с езика и с виртуалната машина на Java.

Повечето от промените са взаимствани от други езици. Много от тях функционални. Видяхме ламбда функции, type inference при декларация на локални променливи, Optional типове, нови функционални API-та. Любопитни за мен неща, които се задават, са switch като израз, възможност за pattern matching във switch-а, record-и за моделиране на value обекти.

Доста интересни новости се случват и върху самата JVM – нови и развити garbage collection алгоритми, системата за модули и много други. Надявам се да видим проектът Valhalla завършен – в него се задават immutable value обекти, живеещи като структура в стека или като част от други обекти, заедно с автоматична generic специализация за тях и за примитивните типове (интересно, че в Scala компилаторът също се експериментира с нещо подобно). Това би позволило доста performance подобрения и би дало нови възможности на езиците върху JVM. В бъдеще се надявам да станем свидетели и на други подобрения, от които JVM езиците да се възползват – Scala би привествал feature-и, позволяващи по-оптимално структурно подтипизиране или намаляващи overhead-а при type class-ове или други абстракции.

Тъй като отдавна не съм писал на Java, голяма част от тези новости все още не съм използвал на практика, но определено подобравят езика значително!

*****

Боян Бонев е Tech founder в Gaida.AI. Програмира всеки ден, като голяма част от времето е с Clojure. Обича да среща хора с различни технически познания, готови да споделят техния опит.

Как и кога започна Java да влиза в твоето ежедневие?

Още от университета имах възможност да запиша магистър по тема за изследване на JVM в real time constraints. Не го завърших, но някак си останах около the JVM.

Кой е най-интересният аспект от работата ти с Java?

Колко лесно е да забравиш „бремето“ на JVM като платформа, ако нямаш допир с нови хора, навлизащи в нея.

Какво те грабна в  Clojure?

Разпознах се и собственият си опит ( към този момент ) в някой от елементите от философията на Clojure. Кратко гмуркане в основите беше достатъчно за да потвърдя инстинкта си, че ще прекараме следващите години заедно.

Какви новости да очакваме в Java в близко бъдеще?

Мисля, че всички очакват малко или повече едно и също – pattern matching. На път е, някой ден ще се случи, остава само да видим кога.

*****

Виктор Пенелски е backend engineer за Falcon.io. Той специализира в разработката на дистрибутирани системи с опит от ентърпрайз монолити до микросървиси и библиотеки. В работна среда се сблъсква с програмирането през 2010 като PHP стажант в Orbitel, след което за кратко играе професионално компютърни игри и покер.  В днешно време помага за стартирането на Kotlin User Group-a в София.

Как и кога започна Java да влиза в твоето ежедневие?

След дълго „бягане“ от Java, породено от неприятен опит с ранните версии на езика, през 2016-та преоткрих Java 8 и SpringBoot. От тогава почти всеки ден, под една или друга форма се сблъсквам с Java код, като от 2017-та личните ми проекти се базират на Kotlin, което още повече ме „сближи“ с екосистемата покрай JVM-а.

Кой е най-интересният аспект от работата ти с Java?

Хората – в София има огромна общност и е лесно да намеря с кого да обсъдя както технически проблеми, така и „хайп“ (или разочарование) от новостите покрай езика.

Какво те грабна в Kotlin?

Прагматичността на езика – все едно някой е взел книгата Effective Java на Joshua Bloch и си е казал „хей, какво ще стане, ако измислим език, в който е по-лесно да се пише качествен код, следващ добри практики от колкото избягването им?“. Езикът е мислен от (и за) хора, които активно пишат код и решават проблеми в индустрията, а не прекарват времето си в академични размишления.

Какви новости да очакваме в Java в близко бъдеще?

Най-интересните нововъведения в Java, които очаквам са:
– Text Blocks да бъдат добавени в стабилна версия на езика – https://openjdk.java.net/jeps/355
– Fiber-ите от Project Loom – https://openjdk.java.net/projects/loom/
– Records – https://openjdk.java.net/jeps/359

След като написах това се замислих, че всъщност и 3-те фиичъра вече са имплементирани под една или друга форма в Kotlin (съответно: raw string literals, coroutines, data classes)

*****

Кои са трите най-важни неща, които ИТ обществото може да научи от темата на предстоящата ви презентация?

Основната ни цел е да предадем усет за всеки от трите езика и да запалим любопитството. 🙂 Надяваме се да задвижим дискусии на концептуално ниво и разбира се, щее споделим личния си опит.

Присъстващите ще разберат, че един от най-добрите начини да напредваш е никога да не забравяш, че „зона на комфорт“ не е синоним на знание.

И на последно място, но не и по важност – Java != JVM – какви други технологии стъпват върху Java виртуалната машина и как обогатяват цялостната екосистема – Историята на един от малкото случаи, в които „хей, имам проблема Х, хайде да измислим нов език, за да го решим“ всъщност е успех, а не поредния недовършен проект!


Регистрирай се за събитието


Стани част от потребителска група на Java. Абонирай се и ще ти изпращаме информация за всичко, което предстои в групата.

Визия: Личен архив

Прочети още:

Кирил Стефанов: С Java всичко може да се прави лесно и бързо
Светлин Жеков: Хубавото е, че всеки път ти се налага да учиш нови неща и технологии

 

Share This