Dear Yakov Column

I ‘ve receieved an email with a question that started “Dear Yakov… ” and decided to create a new column. If you want to ask me a polite question about anything (I mean anything), just send an email at yfain at sys-con dot com. The subject of email must start with the words “Dear Yakov… “. I will also respond as polite as possible starting with Dear YourName. Let ‘s see if this list will grow…

1. Dear Yakov, In this blog you suggest that workaholics and and divorced dad should take their kids to this digital life expo. Why don ‘t you advise this to married dads? Thanks, Alex.

Dear Alex, divorced dads and workaholics always feel guilty for not spending enough time with their kids. As the result, their kids are going places on a regular basis, while married dads usually spend their weekends in front of a TV or computers knowing that kids will somehow entertain themselves.

2. Dear Yakov, I do not like about a half of what you write, but still keep checking your blog daily. I do not know why. Ann.

Dear Ann, you do not have to like everything I write. But you know that this blog is for real. I do not lie here. I do not sell anything here, well, I “d like people to buy my books and attend my classes, but it “s peanuts. So please keep checking my blog and leave your angry comments.

3. Dear Yakov, after reading some of your blogs on outsourcing, I have a feeling that you do not like programmers from India. Raj.

Dear Raj, its quite opposite! I work here in the US with many great Indian underpaid programmers waiting for their green cards. As to outsourcing to India , it “s a lot more expensive than people want to believe, which is the fault of mediocre American managers. They do not know how to manage offshore teams, and programmers in India use this situation to their advantage. I do not feel sorry for these filthy rich American corporations that do not know how to count their money either…I like working with offshore teams (I “m not sure if they like working with me though). But I cherry pick people from India not based on their rate, but based on their abilities to do the job. And I never leave the office until I ‘m sure that my remote colleages have enough work.

4. Dear Yakov, which Java Web framework should I learn? Thanks,Lee.

Dear Lee, to answer your question I need to know why you need to learn it. If you are a professional programmer, go to and search for various popular frameworks that are listed in job descriptions in your geographical area. Most likely Struts will be the winner. If Struts will help paying your bills, learn it. But if you do not have to program for a living, I ‘ll never recommend you learning Struts. All frameworks are equally bad. Stay with independent components and mix and match them in your application the way you like. But if you want to learn a framework anyway, learn whatever is included in the standard Java EE spec – servlets, JSP and JSF.

5.Dear Yakov, Can you please suggest some good books for beginners, in servlets,JSF and developing prog based on location based services? Sam, India.

Dear Sam, For Java beginners, I ‘d recommend two excellent books: Beginning POJOs and “Agile Java Development with Spring, Hibernate and Eclipse “. I ‘ve written a review of these books over here . Even though you live in India, you should be able to purchase these books online directly from publishers.If they won ‘t ship internationally, see if the PDF version is availale for purchase and download.

6. Dear Yakov, I read some of your blogs and couldn ‘t understand why you dont like ajax.There are lots of places where ajax makes more sense than flex.Moreover many of the widgets which flex provides are also provided by Google web toolkit.May be i am wrong but according to my understanding, to use a flex component within a webpage u need to use iframes which can be a pain sometimes. Vikas.

Dear Vikas, My area of expertise is enterprise business applications, and there are much better tools than Ajax in this field. Just a couple of things I do not like: JavaScript is not a good programming language, debugging is a pain, attempts to write object-oriented code there are not serious. Google ‘s GWT helps, but in the end, it ‘s still JavaScript.

As of today, JavaScript implementations and Web browsers are and you have to write if(IE) do this, if (Firefox) do that… Web browsers do not really care if a piece of JavaScript did not arrive to the client. Tons of the JavaScript source code have to go over the wire to the client. I ‘m talking about business applications, and not some POC demos. The code is more vulnerable to hackers ‘ attacks. You have to obfuscate and compress the code. You can also read this , and this about Ajax shortcoming. For Web sites like Google, Amazon or Yahoo Ajax may be a good solution. Flex components are not using iFrames.

7. Dear Yakov, what ‘s the difference between Fat Clients and Rich Internet Applications? Boris.

1.A user presses a button… and in a minute he finds a 300-pound middle-aged woman sitting on his laps. This is a fat client application.

2. A user presses a button…and in a moment he finds a 100-pound beautiful young lady sitting on his laps.

-Wow, you are so pretty, but a little too small!

-No worries, I ‘ve got girlfriends!

And the next moment he finds two more pretty girls sitting on his laps. This is a Rich Internet Application. Yet another explanation of the RIA term is located over here.

8. Dear Yakov, some of the links to your previous blog entries do not work. Why? Sarah, Texas

Dear Sarah, I try to blog immediately as soon as yeat another “smart ” thought or observation comes to my mind. Sometime I re-read the blog entry next day or even an hour later and trash it, because after some time this thought may not look as bright as it originally was, it sounds too offensive, wrong or not appropriate for public reading.

Next question please…


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s