I’ve been severe with Sun Microsystems. Now I don’t care anymore because Sun is Oracle and Oracle for me is a database, not a company. I was always worried about SUN, criticizing and praising as an independent observer. I did that because I admired the work that SUN has been doing on the Java Platform and the proximity the community has to Sun’s top engineers. Even criticizing, it doesn’t mean I don’t like Sun. On the contrary. I do care about them in the pure essence of carefulness, as Randy Pausch stated in his book, transcribing the words of his football coach:
“– When you are doing something badly and no one’s bothering to tell you anymore, that’s a very bad place to be. Your critics are the ones still telling you they love you and care.“
Sometimes we don’t like to listen to critics and advises from our friends, but this is actually the best proof that they are really our friends. But people at Sun didn’t understand that and they came to me, in defense of Sun, to reply the post I’ve mentioned above. A top Sun’s engineer wrote to me:
“Any big company consists of people. Different people. Companies also have ups and downs. Does your current point of view make sense? Absolutely. But it’s not the only one. I can tell you something that it’s hard to argue with: Sun is very good at executing long term projects. Look at Java and Solaris.“
And then I replied to his message:
“I’m completely sure that SUN is good. I have been working with SUN technology since 1998. I’ve never touched a .NET code. All my projects, costumers, students are Java oriented. This is possible because SUN is good. But do you believe that these long term projects that you mentioned can solve SUN’s lack of profit? Java is not service, but marketing for SUN. Solaris is service, but less than 5% of them. Is JavaFX also a long term project? It was developed in a hurry! I wonder for what I can use it in my professional life. Should I rewrite my web and swing applications? No way! Don’t you think that the fastest way to spread the JavaFX adoption is allowing the improvement of existing applications? Why to spend a lot of resources to drag an applet from the browser to the desktop if we need the network anyway? More space? Develop just small applications? I would give more priority to hide the Java logo from the final user, or at least allow its customization, because an advantage of the flash technology is that it is so imperceptible and the final user doesn’t even realize that he is using that technology. You have no idea how it is important for the user interaction. Take a look out there, almost nobody sees this Java logo animation. Why people should start to see it from now on? Imagine websites like big portals. They have dozens of flash animations. Imagine how uncomfortable is to see dozens of Java logos.“
Since we can use other programming languages (Scala, Python, Ruby, and Grove) to develop our applications on the Java Platform, why not execute JavaFX script in our existing applications too? For instance: I need to develop a special animation in my application and doing it using threads and pure Java AWT will consume a lot of time. If the JavaFX team had prioritized the execution of their scripts in existing Java applications, I would save a lot of time doing this task using JavaFX. What they did was exactly the contrary. They allowed JavaFX scripts to reuse existing Java classes, which is useful only for new projects or features out of the existing contexts. It reminds me of an interesting sentence: “Who was born first: the egg or the chicken?”
Yes, I’m criticizing SUN again. Maybe, this is my last chance to do it before the expected announcement of the completed fusion between SUN and Oracle. I hope Oracle gets the point here and does something to fulfill the expectations of most Java Developers. If I feel things getting better, in the right path, I will keep my support as I have been doing. Otherwise, I will be excited to evaluate and definitively adopt other platforms as I have been thinking about.