A "What was your first computer?" conversation with BalusC / Bauke / OmniFaces 📎
What was your first computer?
Commodore 64. That was around 1986 when I was only 8. It was primarily used to play games on. With those 5.25" floppy disks and a lot of LOAD"$",8 commands :)
How you started programming?
With a Simons' BASIC cartridge plugged in that Commodore 64. That was around 1989 when I was only 11. My dad gave me it along with a bunch of C= magazines containing code examples to try out. I still remember that I once accidentally killed a C64 with a wrong "poke" command. It made me very sad, so my dad had to arrange a new one.
What was your first programming language?
BASIC :) I remember having written code to draw detailed Dutch and German locomotives on screen and print it using a matrix printer so I could color them.
How did you get into Java Server Pages?
When my first employer IBM decided to migrate some VM/REXX based website to WebSphere/J2EE/JSP. That was around 2003. Using "Scriptlets" was already forbidden by them, so I already learned using JSP the right way, right away.
How does your day look like?
I work from home. I wake up around 4:00 in the morning. I read programming and science related tweets and blogs with a cup of Nespresso. Then I start working for 4h. After that I take a pool break for max half an hour, whereby I swim intensively for about 500 meters. Just for my condition. Sitting behind a desk all day is not super healthy, you know ;) Then I continue working for another 4h, followed by a second pool break for max half an hour. Finally I usually continue working for another 2 to 4 hours, depending on the workload. Generally around 16:00 I shut down my computer for the rest of the day. Then I usually read the news and watch Netflix series until max 22:00. On weekends I usually don't touch my PC and I'm usually at some beach bar or a snack bar playing domino, but these pandemic days whereby you're forced to stay home all day and therefore get bored really quick, I turn on the PC to contribute yet more to the open source community.
Beach Bars? Where are you located, Hawaii?
I'm located in Curaçao, a Dutch Caribbean island in the southern Caribbean Sea. I'm myself a Dutch guy and I primarily wanted to escape the horrible Dutch weather which makes me sick every year again. Cumulative, I live 9 years in Curaçao.
Are your times getting better over time? What's more fun: swimming or programming?
Frankly, I don't pay attention to my swim times :) I love programming and therefore I need to swim regularly in order to be able to continue programming as long as possible.
Should a beginner learn JSF today?
Not before the beginner JSF developer has learnt HTML, CSS, JavaScript, Java and Servlets first. It's otherwise a pretty deep and slippery hole as JSF abstracts away quite a lot, basically everything. The aforementioned basics are essential in order to properly understand the inner workings of JSF. After that, the seasoned JSF developer will ultimately highly appreciate the high degree of customizability of JSF due to its high degree of abstraction.
Do you think JSF have a bright future?
The abstractness, customizability and extensibility of JSF made it still relevant after 20 years. The community is also still actively using and working on JSF, which will by the way be renamed to Faces with upcoming version 4.0 and be released as part of Jakarta EE 10 within one year. The download numbers of open source JSF libraries such as OmniFaces and PrimeFaces also speak for themselves. So I'd say Yes.
Is it a good idea to combine Web Components with JSF?
It's technically possible :) JSF can be used to componentize web components.
How OmniFaces happened?
Around 2010 I joined a JSF team where I met Arjan Tijms for the first time. In the end we observed that we were basically copy pasting the same kind of utility tools and utility components across JSF projects in order to reduce the verboseness of JSF API and to solve frequently recurring JSF spec/impl related shortcomings. We also observed at forums and Q&A sites such as Stack Overflow that many people were doing the same thing. So we have boiled them all down into the open source OmniFaces library which was first released 1 June 2012, so that everyone can benefit from it. At the moment it's downloaded over 25.000 times a month, slowly increasing over years.
You are a Stack Overflow fame: https://stackoverflow.com/users/157882/balusc. What motivates you to contribute to Stack Overflow or is it an "after dark" activity?
A long time ago, before Stack Overflow, I was active on forums.sun.com since about 2005. I basically started answering programming questions over there when I got jobless after I stopped at IBM. I'm deaf, so job interviews never went flawless and companies always hesitated to hire me. So I really had to show off my knowledge in some way to prove that I'm worth hiring, so I started building my online identity, and forums.sun.com was a good place to start. After the takeover of Sun by Oracle around 2009, which eventually changed the ambience at forums.sun.com, I migrated to Stack Overflow and continued building my identity over there. It actually helped in the long term :) Companies started to recognize me by my online identity and didn't anymore hesitate to hire me. In fact, they've been asking me to come working for them. I didn't anymore need to look for jobs and get nervous about job interviews. At this moment, Stack Overflow is nearly saturated with frequently asked questions related to Java / JSF / Servlet based web development, so I actually contribute much less now as compared to 10 years ago. These days my biggest task at Stack Overflow is keeping my answers up to date with the current state of technology.
What is OmniFaces' killer feature?
Its @ViewScoped annotation with the "immediately destroy bean instance and associated view state on unload of page instead of letting it linger in the session" feature. There have been production applications whereby memory usage was reduced by at least 70% by merely swapping out the JSF-native @ViewScoped for the OmniFaces one.
What applications or use cases are not well suited for JSF?
API endpoints. There you have JAX-RS for.
What new frontend technology would you like to learn (if you had time)?
PrimeFaces being available for NG, React and Vue as PrimeNG, PrimeReact and PrimeVue has really caught my attention. If I had time then I'd probably play around with one of them as the first new thing.
What is your current project?
I'm currently hired by mercury1.co.uk as developer and consultant for mytutor.co.uk. I'm also hired by tribalscale.com to help improve the quality of web applications of their clients. Finally I'm also hired by virtua.tech (from Kito Mann who you likely also know) to help migrate old web applications of their clients.
Can people hire you?
Yes definitely. I've been freelancing since 2010 already. But at the moment I'm already saturated. I'll probably be available again as of January 2022.
Thanks!
Cheers, Bauke / @OmniFaces