Should Oracle purchase Adobe?

Normal.dotm 0 0 1 194 1108 Farata 9 2 1360 12.0 0 false 18 pt 18 pt 0 0 false false false /* Style Definitions */ table.MsoNormalTable {mso-style-name:&”Table Normal&”; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:&”&”; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin-top:0in; mso-para-margin-right:0in; mso-para-margin-bottom:10.0pt; mso-para-margin-left:0in; mso-pagination:widow-orphan; font-size:12.0pt; font-family:&”Times New Roman&”; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin;} 1. Sun Microsystems was a great engineering company

2. Sun created Java platform ndash; everyone could use it for free

3. Developers were happy that Java was free.

4. Apple doesn “t not allow JVM on iPhone, but Java community doesn “t care.

5. Sun could not monetize on Java other than winning a law suit against Microsoft ($1.6B). Other companies monetized on products built with Java.

6. Sun “s CTO and then CEO was a blogger with ponytail.

7. Oracle purchased Sun. Larry Ellison said that you [Sun CEO] can write as many blogs as you want, but blogs don “t sell computers.

8. Sun was firing salesmen, Oracle re-hires thousands of salesmen to sell Sun “s products.

9. Oracle started to kill acquired open source products with Open Solaris.

10. Adobe is a great engineering company

11. Adobe created Flash platform

12. Developers are happy that Flash Player is free.

13. Apple doesn “t not allow Flash Player on iPhone, and Flash community goes berserk about it.

14. Adobe could not monetize on Flash Player. Other companies (youtube) did it big time ($1.65B).

15. Adobe “s CTO is a blogger without a ponytail.

16. Adobe has one salesman who knows how to sell LiveCycle Data Services for $30K per CPU. Everyone else believes that this product is overpriced.

Should Oracle acquire Adobe, start making some cash from Flash Player, and offer one shop end-to-end enterprise solutions?

The unofficial history of Java applets

Fifteen years ago there was no iPhone and Android. Web browsers were hot. Netscape market share was over 90% – they didn ‘t have competition.The situation changed when Microsoft has introduces Internet Explorer (me too, me too). Back in 1998, there was an infamous law suite between Microsoft and Sun Microsystems ndash; the former started quietly introducing their own class libraries to Java breaking the write-once-run-anywhere idea of Sun that back then seemed to be achievable. Sun won that $1.6B law suite. But as the saying goes, they won the battle but lost the war.

Angry Microsoft refused to include upgrades to JVM that came with Internet Explorer, which seriously hurt applets popularity ndash; the end user couldn “t just open a Web page to see the applet that required, say 1.3 version of JVM. They “d need to first download the proper version of JVM, and only then the applets that were written with the assumption that JVM 1.3 was available would work. The process of downloading the right JVM Plug-in was a multi-step process, and a truck driver from Alabama wouldn “t be able to go through it.

Update. Two days after I published this blog, the news broke that Oracle decided to sue Google for the “wrong use ” of Java on Android platform. Does Larry Ellison have short memories? Sun literally killed Java on the desktop because of that old law suit with Microsoft. In the worst case scenario, if Oracle will win this law suit, Google may do the same thing as Apple did on the iOS and ban Java from this very promising Android platform. Given the fact that five years from now large portion of the applications will consist of a mobile device communicating with the cloud, Java will be seriously damaged. Imagine how many top-notch developers can be added to Java and JavaFX engineering teams at Oracle if the money spent on lawyers would be saved? Oracle, please stop!

High penetration of the required runtime environment and the ease of its upgrade are the crucial moments for any Web-based technology. Adobe Flash Player shines in this area today (sorry, Steve). Flash Player is also a virtual machine with a small memory footprint (1.5Mb), and its installation takes under 20 seconds after one button click. For years, the size of the JVM Plug-in was about 16Mb and install was complicated for a non-programmer, and (the rumor has it) ndash; it “s a lot smaller now.

This situation has changed after the release of Java 6 update 10, which includes so called next-generation Java Plug-in. Now applets don “t run in the JVM packaged with the Web browser, but run in a separate JVM launched by the Java Plug-in. The applet still appears in the Web browser “s window, but now it doesn “t depend on the goodwill of the browser vendor to include the latest Plug-in. You can read more about this Java Plug-in at https://jdk6.dev.java.net/plugin2.

The other major change introduced in the next-generation Java Plug-In is ability to launch Java applets directly from JNLP (Java Network Launch Protocol) files, which in the previous releases were used only in Java Web Start technology that allowed local deployment of the applications over the network. As of Java 10.6.10 you can use the JNLP meta descriptors to launch applets too. JNLP support is described in details at http://www.oracle.com/technetwork/java/javase/index-142562.html.

Earlier versions of HTML standard included the tag lt;applet gt; to incorporate Java applets into HTML page. But as of HTML 4.01 this tag has been deprecated and you should use the tags lt;object gt; for users who like Internet Explorer or lt;embed gt; for other Web browsers. But Oracle, the company behind Java, recommends using lt;applet gt; for Web pages accessed through the Internet and lt;object gt; or lt;embed gt; for intranet-based Web sites. The main reason being that Web browser vendors are infamous for being inconsistent of implementing HTML standards, and it “s safer to use tried and true lt;applet gt; tag to get predictable look and feel of the Web pages that host Java applets. But intranet is a more controlled environment. You can read about the differences of embedding applets with these tags at http://download.oracle.com/javase/6/docs/technotes/guides/plugin/developer_guide/using_tags.html. When young and old kids (sorry Steve) tell that HTML 5 will change the world, it ‘s funny.

The deployment options for applets have been extended as of release of Java 6 update 10. To learn all the options of applet deployment in depth, refer to the Oracle document titled “Java Rich Internet Applications Deployment Advice rdquo; available at http://download.oracle.com/javase/6/docs/technotes/guides/jweb/deployment_advice.html.

What “s the next step in applet “s evolution? You “ll be creating UI for the Web-based applications with a relatively new language called JavaFX. In a month, I ‘ll be trying to attend every JavaFX technical session at JavaOne conference to see if it ‘ll become a real competition to Adobe Flex and Microsoft Silverlight. By the way, anyone heard any noise about Apple not letting JVM on the iPhone? Neither did I. Do you know why?

If you ‘re not into Java applets, consider attending our Third Annual Enterprise Flex Symposium in New York City. It “s a small event where attendees and presenters will talk turkey about Adobe Flex.

If the drumming trade would be outsourced

When I was working in New York City, pretty often I was passing by the street drummers like this one .

Here ‘s another one .

When a street drummer goes main stream, the project get more expensive but the deliverables are great.

When the drumming gets outsources to Russia, you get kids working on your project.

When this business gets outsourced to India, it ‘s sounds a little different.

Chinese strategy is to bring lots of people to the project. Someone might get it right.

In Mexico the same functional spec is implemented in a simplified manner.

What country works on your project?

To use or not to use Flash/Flex portals for Web sites

Last week I was thinking about design of the main view of a new project for a new client of ours. This application is interesting in that it can deployed as an enterprise RIA as well as a tool to be used by any consumer connected to the Internet.

The mockup of the main view looks clearly like a Web portal with a number of portlets, which can be maximized, moved around, and independently communicate with the server(s). But hellip; This Web site has to be discoverable to bring more and more new customers.

Here comes the quiz. Can you see why the previous two paragraphs have an important logical issue, which represents a misconception sitting in minds of many creators of Web content?

Being a Java developer, the JSR 168 is always in my mind and the first annoying thought is, “I can create a traditional HTML/JavaScript Web site with portlets, some of each are Flash Player SWF “s and the others are regular HTML/JS markup. This will give to search engines enough of a textual chew to digest plus the benefits of more animated, engaging, and better performing (sorry, Steve) Flash content rdquo;. If some of you want to bring these dopey and groundless Adobe statements that Google is indexing Flash content with special secret, mighty, but headless Flash Player, please, get real or show me the money.

I know how to create a well looking and performing Flex/Flash based portal. I know how to cut this RIA into pieces, how to run this project, how split the job between team members located all around the globe. I don “t know just one thing ndash; how to make this Flash-based portal d-i-s-c-o-v-e-r-a-b-l-e on the Web.

And here comes the answer to my quiz. Stop confusing Web sites and rich Internet applications! Got it? OK, let me re-phrase it. A Web site and RIA are created for different purposes. Creating an HTML/JS Web site to present, promote, and make discoverable your RIA is one independent track of your project. And a-f-t-e-r the random user somehow landed on this Web page offer him or her a little link to the real beauty ndash; a Flash-based (sorry, Steve) portal.

That “s all folks. It “s Sunday morning, and I need to go out and get some stuff for the barbecue ndash; having more than 20 people over today.

If you want to discuss it in person, consider attending our Third Annual Enterprise Flex Symposium in New York City. It “s a small event where attendees and presenters can have face-to-face conversations.

Notes of a lifelong IT student

Have you ever attended software training? If yes, have you enrolled voluntarily or your employer required you to get re-trained to get extra points for your annual review? If so, was that class useful other than getting these points?

In my blog “Notes of a traveling contract trainer rdquo; I promised to write a sequel from the student “s point of view. You got it.

If you work for a large corporation, the chances are high that you are entitled for taking one or two training classes each year. In some cases you even get to choose which classes to attend. I mean off-sight training. But most likely, you are enrolling a class offered onsite by an invited instructor.

IT training classes can be divided into two main categories: five full consecutive days or two-three months long evening classes. The latter are for people who want to get fundamental training and have time to study and absorb the material.

If you are planning to learn new software by attending a five-day instructor-led class, the most efficient way is hellip; to learn it by yourself before the class. I “m not kidding. This way you “ll know what questions to ask the instructor during his/her short visit.

I “ll give you an example from my own career. Back in 1998, I was a client-server developer (PowerBuilder and Visual Basic) who wanted to switch to Java. Being an independent contractor, I had to switch gears fast to make sure that my billable rate won “t suffer. How can one quickly convert from PowerBuilder expert to a senior enterprise Java developer? J2EE was completely different comparing to any client-server technology.

Learning the syntax of yet another language is the easiest part, unless it “s an Objective-C. But understanding the architecture and the best practices of new environment is always a challenge. To make the story short, I went through a couple of Java books by myself, and then enrolled to a five-day class “Developing J2EE applications with BEA Web Logic rdquo;. I got lucky ndash; the instructor was good (he had the real-world experience). Five days and $2500 later, I was ready to work on real world Java projects. I still believe that attending an instructor-led class after self-studying is the best way to learn.

Computer-based training is usually boring. You can “t ask questions, but have to take computer-based tests. Multiple-choice SAT-like exams are equally stupid everywhere. They just prove that you are good at taking multiple choice exams.

Instructor-led training remains your best choice. In the class, use your own laptop to make this training efficient. Contact the instructor prior to class and ask what software has to be installed. These days, unless you are getting into SAP or CICS-like software, you can download and install evaluation copy to your laptop. It “s better than using a desktop provided in the classroom, because you take with you the software with training files after the class is over. It “s properly configured with the help of the instructor and all samples work. Add to this well written courseware (is it well written?) and you are armed and dangerous.

If you are not sure where to find a reputable instructor for the software you want to learn, find the conferences related to this software. Pretty often, one day intensive training is offered the day before or after the conference. Instructors that are approved to teach a class at a major conference are usually good. I “m not saying that you have enroll into this short class, but google the name of the instructor ndash; the chances are that s/he teaches longer classes as well.

Check the training catalogs of your local universities, where evening classes in schools of continuing education are often taught by practitioners.

While in class, try to get as much help from your instructor as possible. Most of the instructors enjoy helping students. Don “t be shy. There “s no such thing as stupid questions in the classroom.

At the end of the class, never forget to fill out evaluation sheets. Instructors have to present them to their managers. Be nice to them. Even if you didn “t like something in this training, leave your comments and submit your evaluation sheet.

In September-October of 2010, I “ll be wearing a student “s hat twice and be an presenter in one event. I “ve already registered into two conferences: Java One by Oracle and Adobe MAX, and I know exactly what I “m looking for besides networking. At JavaOne I “ll attend every technical session on the upcoming JDK 7 release, and at MAX, my main educational goal is getting good at development for Android platform. But first, I “ll be one of the presenters at the Third Annual Flex Symposium here in New York City. I like being in classrooms.

iPhone 4 or HTC?

Normal.dotm 0 0 1 605 3451 Farata 28 6 4238 12.0 0 false 18 pt 18 pt 0 0 false false false /* Style Definitions */ table.MsoNormalTable {mso-style-name:&”Table Normal&”; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:&”&”; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin-top:0in; mso-para-margin-right:0in; mso-para-margin-bottom:10.0pt; mso-para-margin-left:0in; mso-pagination:widow-orphan; font-size:12.0pt; font-family:&”Times New Roman&”; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:&”Times New Roman&”; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin;} Sooner or later, every person reaches a point in life when s/he has to make a decision: iPhone or HTC. I “ve arrived to this destination, and the road forks. In early 21st Century people would just Google it up to find the facts, figures and comparison charts. Unfortunately, the noise-to-signal ratio is getting so high on Google, that it makes it pretty much useless in a decision-making situation. More advanced consumers discovered Amazon.com to be a great helper when it comes to make a purchase decision ndash; their rating systems and almost unbiased user comments will help you to decide faster.

The brightest and laziest minds like myself instead of visiting Amazon go to Youtube. We don “t like to read. We want to watch videos, where someone will show and tell what to do with any gadget.

My first search on Youtube produced this hilarious video that clearly explains why most of the population wants to purchase iPhone 4. You can “t beat the logic of this consumer ndash; she knows why iPhone 4 is better than HTC.

Software developers think differently. They don “t care about usability of a phone. They want to get deep under its skin. They are into multitasking, Linux and other masochist terms that can cause pain and suffering. The great illustration of their twisted minds is this video.

My colleague started development for Android and purchased a Google phone: the Nexus One. Being a smart person, he didn “t sign up for a new 2-year service plan with AT amp;T, but paid the full price for this HTC phone and simply inserted his SIM card from an old iPhone to the new device. It works great.

I like that it converts your phone into a turn-by-turn voice navigation system. Nexus One comes with the latest Android OS (FroYo) and supports tethering too. Now his laptop gets 1Mbps Internet connection anywhere where AT amp;T 3G signal is available. Unfortunately, in the tethering mode Nexus battery discharges faster than his MacBook “s USB port can charge it back. On the other hand, the Flash-only Web site of our firm gets loaded into HTC in a Flash and works great with Flash Player 10.1 proving that Steve Jobs mumbling about poor technical quality of Flash Player a joke.

So I was about to get Nexus One too, but Google “s CEO recently stated that they played with Nexus One, it worked well hellip; and will be discontinued. Well, he was using different wording though:

“The idea a year and a half ago was to do the Nexus One to try to move the phone platform hardware business forward. It clearly did. It was so successful, we didn ‘t have to do a second one. We would view that as positive but people criticized us heavily for that. I called up the board and said: ‘Ok, it worked. Congratulations – we ‘re stopping ‘. We like that flexibility, we think that flexibility is characteristic of nimbleness at our scale. ”

Google decided to stop with this particular device. Great. If us, developers, will invest time in creating applications for a particular Google smart phone, what are the chances that this device will be around a year from now? Will there be a demand in software developers who can create application for mobile devices if there are so many of them hellip; Is the skill set “Android Software Developer rdquo; is something to wish for? Will Android on the variety of devices become THE “Write once run anywhere rdquo; platform? Or maybe it “s better for software developers to get into a different state of mind “Write in Objective-C, run only on iPhone, but do it well rdquo;?

Eric Schmidt made yet another scary statement “We ‘ve talked about mobile for years and right now it ‘s finally taking off. This is our strategy let ‘s see if it works or not. ” What if two years from now they ‘ll come to a conclusion that it didn ‘t work, really. Let ‘s do something else… The chances are slim that Apple will do the same with their bread winning iOS.

Yes, Apple “s phones have tons of technical limitations comparing to HTC EVO and the likes, but they are so good looking hellip; Yes, Consumer Reports doesn ‘t recommend using iPhone 4 because of fading reception, but they are so good looking… Anyone knows how high subscription to Consumer Reports jumped after their publication about iPhone 4? Smart move, CR! Should I take the position of an uneducated consumer and simple say, “I don “t care, I want iPhone 4, and I want it now rdquo;?

Enterprise Development with Flex

It “s been almost four months since our book “Enterprise Development with Flex rdquo; been released in print by O “Reilly. Since day one, it remains in Amazon “s bestseller “s list in several IT categories. This fact gives me a great feeling given the fact that Amazon re-calculates their stats hourly.

I “d like to share with you some interesting facts that from the times when this book was in its proposal stage. If you carefully look at the book cover, you “ll notice a little logo and the text Adobe Developer Library. To earn the right to be included in this library our book proposal had to be approved by Adobe engineers. We made it, and are grateful to excellent software engineers from Adobe Flex team, who put their trust in our ability to write such a complex and advanced book.

After the approval process was done, O “Reilly sent us the Flex team members feedback without revealing the names of engineers who wrote them. Most of them were 100% positive. But our special thanks go to one unknown member of Flex team who wrote something like, “I don “t agree with many of the things that these authors write about Flex in their blogs and articles, and I “d rather not approve them, but I will because there are not many people in the industry who are capable of writing such a book. rdquo; We don “t know your name, but we consider this assessment to be the best compliment we “ve received so far.

Looking forward to meeting with the members of Adobe Flex team in October at MAX conference. The authors of this book are going to attend this event in LA in October.

Our praise goes to the O “Reilly cover designers who correctly visualized three authors of this book without ever meeting them in person.

If you bought this book, Farata “s team would really appreciate if you “d spend 10 minutes and publish your review of this book on Amazon. It doesn “t have to be long, but we are looking for getting your honest opinion about our work.

Notes of traveling contract trainer

Over the course of my career, I ‘ve been running lots and lots of training classes on software development. I still do. Teaching software takes 15 – 20% of what I do for a living – the rest is work on real-world projects. These days I mostly teach Java and Adobe Flex courses, but it ‘s like riding a bicycle – if you know how to do it, you can ride any bike, really. The last two months were unusually training-heavy and I ‘ve been on the road most of the time.

Training is the best way for marketing of the services that you or your company has to offer. other professional services. Usually, I run training for the clients of our company, but once in a while training firms need a contract trainer for a week, and I consider these gigs too – spending a week in the classroom with professional developer may bring you some development work in the future. Hence I usually don ‘t reject any training request if I know the subject and it fits my schedule. Below are some rules that I ‘ve learned during these travels. If you fill I missed something, please leave a comment to this blog.

1. Check the courseware – if you don ‘t like it – reject the training gig. You might make a quick buck, but damage your reputation. After you ‘re gone, people will be left with poorly written courseware and they wouldn ‘t remember that it ‘s not your fault.

2. Book your flights on well known air carriers – if a flight gets cancelled, they can put you on another flight. If a company runs only one flight to your destination, find another carrier. Cheaper ticket price can turn into late arrival for training.

3. While booking the seat on the plane, check with seatguru.com . They can give you misleading information about electric outlets on board, but can save yourself from selecting an inconvenient seat.

4. While people work on a hands-on assignment ask often, “Anyone needs help? ” Some people are too shy to ask and can waste time on struggling with a simple error.

5. Stick to the manual. You can and should share your real world experience, but still, people need to be able to use the manual after the superstar is gone.

6. Ask the lab. technician to do what it takes to have the software installed and ensure that licenses are not expired. Ideally, they should re-image all disks in the classroom and install fresh software. Have plan B if this hasn ‘t happened.

7. Don ‘t change the software used in the course just because the client uses different one. If the courseware was created for Tomcat server, don ‘t run the class on the client ‘s WebSphere server just because “Java runs the same everywhere “. Trying to be a nice guy may turn into a failed training and bad reviews. Custom training is possible, but it should cost a lot more and has to be prepared in advanced.

8. Don ‘t curse the courseware you are using. Use the rules we used with passed away people – either say good things about them or nothing at all. If you don ‘t see the analogy, I ‘l help you out – either nothing don ‘t use the courseware, or be nice to it. Instead of saying “I clearly see a bad practice example on page 231 ” say something like like “I understand why the authors of the courseware wrote it like this – they wanted to give you a quick and dirty example, but in the real-world I ‘d suggest to do it differently ”

9. Speak loudly. If you have a soft voice, purchase a voice amplifier – they have portable wristband ones.

10. In the beginning of the class ask about people ‘s background and expectations from the course. Typically, you ‘ll have a healthy mix of students who really want to learn the subject and vacationers. The latter just use this class as to get a way from their desks. Both categories have equal rights to be in the classroom and your goal is to make sure that they like your class and want you back in the future. I can ‘t give you a concrete advise on how to do it – you ‘ll have to figure it out on your own.

11. The chances are that on the introductory courses some people will state that they already use this software for a couple of months. Just ignore these statements and teach a class as if everyone is a beginner. Don ‘t be afraid that these couple of people will get bored. They enrolled into a 101-level class and have to find a way to enjoy the show.

12. Respect your students. They are fellow software developers that just happens to need a little help in a particular subject area. Remember, you are not a teacher, you are instructor.

Good luck!

Till the next blog titled “How to attend software training “.

Disappointed with Adobe

Was not planning to write this post. It was ignited by the “Disappointed with Flex rdquo; article posted by Valery Silaev, our lead Flex/Java developer. I “ve been working with Valery on a couple of projects. He “s good software developer. And when he says that he “s disappointed with Flex 4, you should listen.

I really value people who speak up freely and have something to say. Valery is disappointed with Flex 4, but I “d like to take it one step further. I “m disappointed with Adobe.

To put it simple, Adobe is sloooooow. I mean really slow, and I “m not sure what “s the reason. I know some people from Flex team. They are smart. They can deliver given the right support from top management and proper investment, which is definitely not there.

Let me build the case. Slowly.

Four years ago, when Adobe purchased Macromedia, I was looking for a decent tool for development of the enterprise Web applications. At that time I was disappointed with Java Swing. Wrong decisions at the top level of Sun Microsystems resulted in having 75% of the computers running Internet Explorer with hellip; ten years old Java run-time. Sun Microsystems won the lousy $10B law suit with Microsoft back in 1998, but lost the battle. Their runtime (yes, the JVM) is not installed at the consumers ” computers.

Four years ago, Adobe “s Flash Player (it “s a VM too) gave me some hope. The runtime was there, the library of rich components was there too, installing Flash Player was piece of cake. I started working with Flex.

This new for me Flex/Flash community was a bit unusual after Java. It was small. I had a feeling as if we are in a small country club chanting, “We are the best rdquo;. Flex developers knew each other by names. Adobe Flex technical evangelists were Gods. This was different from Java community of six million of professional developers.

But Adobe didn “t have competition in the area of enterprise rich Internet applications in 2006, 2007, 2008… Until the greatest “Me too rdquo; firm from Redmond, WA realized that RIA is the right place to be and IE is not the only browser people have. They started working on this Silverlight thingy. Two years ago they released the 1.0 version that could be ignored ndash; nothing but video streaming was there. At the same time Adobe released Flex 3, which had pretty much everything: 98% penetration of runtime, rich library of components, fast communication protocols, and the server-side component LCDS, that nobody but filthy rich Wall Street firms could afford.

Two years later, Microsoft released three more versions of Silverlight, and the only thing that stopped them from presenting a serious threat to Flex was low penetration of their runtime. Microsoft has tons of cash and excellent engineers. During the same period of time, Adobe has released Flex 4 in hard labor. It took Adobe two years to release the next incomplete version of Flex. Why?

Being a Java developer, I was watching closely the evolution of JavaFX, yet another wannabe player in RIA. I clearly a similar pattern there. Top-level management proclaims at every keynote that “We are the best rdquo; without giving enough juice for engineering teams that work hard developing a product.

The bad guy, Steve Jobs, doesn “t even know what Flex is. He “s not happy with Flash Player. Need to admit, he “s not playing by the rules trying to say that Flash Player is junk and a main reason that crashes the OS. He “s bad, but he “s not stupid. Adobe couldn “t offer a better response than “We love Apple rdquo;.

Yes, Flash Player is installed on 98% of desktops, as if we don “t know that not many consumers are using desktops today, and in five years they will become minority.

Steve Jobs, the bad guy, made Adobe moving just a little bit faster and they finally released Flash Player 10.1 in 18 months (!) after the 10.0 release.

Two years for the next and incomplete version of Flex. Eighteen months for 0.1 upgrade of Flash Player. Dumb pricing policy on LCDS that makes it unaffordable for even a small group of loyal customers. Not a Wall Street giant? Get out of here. Is this the way to treat customers?

Let “s get back to the tooling. This smart idea to bring together designers and developer gave birth to yet another prototyping tool called Flash Catalyst. Is it more than just a prototyping tool? Tell me why?

Here comes the Flash Builder (formerly Flex Builder). Flash developers (they haven “t seen any better) were so happy with Flex Builder 3 hellip; From the Java developer “s perspective, this was a mediocre and damn slow Eclipse plugin. Flash Builder 4 after two years of development was not a major improvement either. I “m not sure why JetBrains doesn “t want to invest a couple of rubles and add a WYSIWYG designer for Flex. As soon as they do it ndash; Flash Builder is brain dead.

The next target is Flex 4 SDK. The new Spark library of components with separating the functionality of components and their skinning implemented just half of the components comparing with Flex SDK 3. In two years they could have done better if they were a large company catering for developers. But they are not. Until Photoshop and PDF remain their main source of revenue, the tooling for software developers will be pushed aside.

Adobe was and remains a small company. They do what they can. And it doesn “t seem that they can do much more for us, developers.

Yakov Fain

P.S. This is my personal opinion. My employer may think differently.

Think twice before declaring a Java method as final

If you create classes that may be used by other developers, declaring methods as final will make them not overridable in the subclasses. While today, it may seem obvious to you that a particular method will never ever need to be overridden, you might not properly predict all use-patterns of this class. If this happens, some other developer will have to jump through the hoops to create another version of such a method in a subclass. If you don ‘t want to be cursed in the future, think twice if you really really want to declare this method as final. Do you see any benefits in using final methods?

We had to extend a third party library to improve their implementation of a certain networking protocol. As it usually happens, the code was poorly documented, so we had to read the code to find out which method to override in the subclass. Sure enough, that method was declared as final. We found a workaround and still replaced the call to the final method to the call to our own. So what the original developer achieved by using final? He made our work more difficult than it should have been.

Originally, Java compiler was optimizing (inlining) final methods. Today I ‘ve learned (thank you, Heinz) that Java compiler doesn ‘t do it anymore, and they are optimized by the Hotspot JVM:

http://www.javaspecialists.eu/archive/Issue157.html

http://www.javaspecialists.eu/archive/Issue158.html

Who are these guys we ‘re protecting from by using final? I also believe that the keyword protected is equally useless.