# 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&ccedil;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&ccedil;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
