DEV Community

Anastasia Khomyakova ❤ for Konfy

Posted on

Java Wizards and Java Guilds with Olga Maciaszek-Sharma and Marcin Grzejszczak

Hello World!

Our jLove Conference is gaining momentum! The program is ready, the lineup of speakers is outstanding! It's time to take a deep breath and introduce to you our next incredible co-presenters!
Please, welcome Olga Maciaszek-Sharma and Marcin Grzejszczak!

Olga Maciaszek-Sharma is a Senior Software Engineer in the Spring Cloud Team at VMware, where she works primarily on Spring Cloud LoadBalancer, Spring Cloud Contract, Spring Cloud OpenFeign, and Spring Cloud Netflix projects. She programs mostly using Java and Groovy. Olga is also a contributor to various other OSS projects, including RestAssured, JFairy, Jenkins Pipeline Plugin, Jenkins Stash Pull Request Builder Plugin, and others.

Marcin Grzejszczak is co-author of SmartTesting, author of Hands-On Guide to Spring Cloud Contract: Creating Consumer-Driven Contracts to Leverage Contract Tests and Improve Your Code and co-author of Applied Continuous Delivery Live Lessons. Co-founder of the Warsaw Groovy User Group and Warsaw Cloud Native Meetup and the DiverseIT initiative. Author of Mockito Instant and Mockito Cookbook books.
Lead of Spring Cloud Sleuth, Spring Cloud Contract and Cloud Pipelines projects at VMware.

Alt Text

What new countries have you “visited” thanks to the online format?

Olga: Some of the events I presented at had a lot of international viewers from all over the world, so probably a big number of new countries.

If there are Java Champions, perhaps we should add Java Princesses and Java Dragons, too?

Olga: Let's not forget about Java Wizzards.
Marcin: Yes, and introduce Java Guilds too ;)

How has your programming style with Java evolved over the past couple of years? What are some of the things that led to the significant improvements?

Olga: Functional-style API and, later, Reactive Streams implementation have proven to be a great improvement for some of the use-cases and I have increasingly used them more and more in the projects I work on. Still, I think in many other use-cases it's best to stick to the good ol' object-oriented patterns.

Marcin: I don't know if that's a good thing but I think that my coding style became simpler. Hopefully it leads to more understandable code.

Do you have any personal habits around development or self-care that you would like to share with our audience?

Olga: I'm a big fan of the Pommodoro technique, but find it works better for me with 50-minutes in place of 25-minutes slots. I try to make sure I get up from my desk and move about during the breaks.

Marcin: I try to exercise a lot - I really recommend that to everyone, especially during the times of pandemic.

There are Groovy, Scala, Kotlin, and many others in the family of JVM languages. What features do we miss in Java in comparison with other JVM languages? Elaborate.

Olga: I think Java could learn from Groovy when it comes to things that are simple, yet make the life easier, such as better String handling, improved JSON and XML processing, collection support, etc.. Still, I do think Java has caught up in many ways in the recent years in terms of the API and is comfortable to work with.

Marcin: I think we're missing fewer and fewer features. Quite frankly the more I integrate with non JVM languages the more problems I see with version compatibilities etc.

There are plenty of reasons why Java, being one of the older software programming languages, is still widely used. For one, the immense power one wields when using Java is enough to make it their staple—coupled with the possibility of using good Java frameworks that can reduce the turnaround time for big projects. Your favorite framework? What advantages and disadvantages it has?

Olga: As I work on the Spring team, I'm not very impartial here. On the other hand, the reason I wanted to work on it in the first place is because I've been a fan of it for a long time prior. I think it's main advantage is that it is very robust and mature with a comprehensive ecosystem and community while also staying on the front lines of innovation.

Marcin: My favorite framework is beyond any doubt the Spring Framework :D It's extremely mature and evolves together with the whole community. The disadvantages? Since it offers so many possibilities the users sometimes miss use it and blame any malfunctions on the framework authors.

In the beginning, Make was the only build automation tool available beyond homegrown solutions. Make has been around since 1976, and as such, it was used for building Java applications in the early Java years.
However, many conventions from C programs didn't fit in the Java ecosystem, so in time Ant took over as a better alternative. Maven continues to use XML files just like Ant but in a much more manageable way. And then, Gradle was built upon the concepts of Ant and Maven.
Fancy Gradle or old school Maven? Or Ant?!

Olga: Even though I'm not particularly keen on XMLs, Maven is still my preferred build tool. It's performant, integrates seamlessly with the IDEs and enforces some reasonable conventions around project building.

Marcin: I used to work with Maven. Then sth like 7-8 years ago really enjoyed my time with Gradle. Now for the last 6 years more or less I'm a super happy Maven user because I prefer things that just work. I can focus on delivering features to the users instead of wasting my time on analyzing why the build tool doesn't work.

Are we going to use modules ever? When we create a module, we organize the code internally in packages, just like we previously did with any other project. So why are packages not enough?

Olga: From a framework developer perspective, we are starting to get issues requesting to make sure our projects work well with modules, so there seems to be some movement in this direction, but it's hard to predict when it will become widely adopted.

Marcin: We'll see about that. Personally, I haven't seen too much interest in the module space (which doesn't have to mean anything ;)). Hopefully people will start using packages properly first - if they do I'm pretty sure that an improved code quality will be observed.

Register to attend
Check out our Website

Join us!

*original spelling retained

Top comments (0)