■ INTRODUCTION
xvii
professor Dr. Sukhendu Das. The class is presented on YouTube at the following URL:
http://www.youtube.com/view_play_list?p=338D19C40D6D1732
If you are a JavaFX expert already and just want to get to the effects, jump to Chapter 2 – but come
back and read the section Designers and Developers in Chapter 1 sometime.
Who This book Is By
I think it is worth giving a little bit of background on my development history. My hope is that by sharing
where I come from as a developer, you will be able to better understand my opinions and my interest in
JavaFX.
Like so many of us, I started playing with computers at a young age. My early, pre-career computer
programming was mostly in BASIC and Pascal. Using these tools, I tried in vain to reproduce a number
of video games I was very fond of. I had neither the time nor the experience to create anything of any real
value, but I learned a lot about 2D graphics in the process.
In college I was introduced to Java and fell in love with the language and with Swing. When I
graduated I got a number of contract jobs writing Swing applications. This was a great experience, since
I had to learn the hard way about things such as testing code and the truth about cross-platform
deployment, and, most important, it taught me about how users use applications.
I remember presenting a new feature to a client; I think it was a tool that laid out printed labels. My
client sat down at my app and starting clicking randomly; he had no idea how to use the “clever”
interface I had devised. I tried to explain how some combination of mouse gestures and key presses
produced the desired results. He didn’t get it and I rewrote it. This showed me the value of using
standard things such as buttons, sliders, and wizards to meet the expectation of the user. This is not to
say there is no place for innovation, of course there is; computer interfaces have been evolving since
they were invented, but the changes come in small steps.
Later, a small company that specializes in Rich Internet Applications (RIAs) hired me. This was my
first experience working with user experience designers who have made it their career to understand
how people use applications, and to create interfaces that meet those expectations. Most of these
designers don’t know how to code; they create PDF documents explaining the interface and a developer
implements it. There is an example of one of these wire frame documents in Chapter 2 in the section
Designers and Developers, where I explain how they are used.
Working at a company that put design first showed me the importance of having these specialists
involved in a project. Many developers and graphical designers use the term “developer ugly” to refer to
the quick and dirty graphics that developers create while in the process of getting the app to work.
Developer ugly can also apply to user experience decisions as well. I don’t intend to say that all
developers lack the skills or the design sense to create nice-looking images or elegant UIs. I am pointing
out that when you have your head down in the code, worrying about thread synchronization or
something, it is not the best time to create an icon for a button. Just as graphic designers have all day to
iterate over their creations, a user experience designer has all day to contemplate the UI. So I say, let
specialists do their job. And of course, great projects take shape when all of the specialists work together.
So now my day job is implementing designs by other people, and at night I continue to try and
create simple but fun video games. It is this endless tinkering that led me to JavaFX and to write this
book. So while I try to address design issues as they come up in this book, my primary concern is getting
it to work. I hope that the techniques in this book will enable a developer presented with a design
challenge to say, “We can do that.”