Yakov on Joel

Let “s do some math. Everyone knows the 80/20 rule: on any project 80% of the work is done by 20% of the best developers, and the rest 20 is done by remaining 80. Let “s extrapolate these numbers on the entire software development world, and then apply the same 80/20 rule again to the group of 20% best developers. This will produce a much smaller number of software gurus. Now apply the 80/20 rule again to narrow down this group even further, and you “ll get a really small group of software wizards who know how to do things, do not mind sharing their knowledge with others, and know how share in a non-geeky way. In my opinion Joel Spolsky belongs to this tiny group.

My current client is located right by the Barnes and Noble store, and I visit it almost every day during the lunch time. Last week I picked from the very bottom shelf the book by Apress called Joel on Software . Yes, this is THE BOOK. This is a single book every software developer should always keep on the desk. Other books will come and go as needed. And it does not matter what programming language you use. This book is a collection of thoughts of a software wizard that can be used and re-used daily.

For example, read Joel “s article on interviewing techniques. This topic just can’t be covered better than this! Unfortunately, not too many hiring managers apply these rules. I usually hear something like this: “He “s a good candidate, knows Java, has the industry experience, but does not know EJBs (replace EJB with any other word) rdquo;. This is how managers are lowering the overall quality of their teams. Good teams consist of good people, and not of people who happened to know several technologies used on the current project.

Now let “s take the software project planning. The boss tells you that this new project starts tomorrow and it has to go in production in six months. Why in six? It does not sound reasonable. Here comes the manager “s lie: “The schedule came from above, and there is nothing we can do rdquo;. Your life would be much easier if he read the chapter from Joel “s book called Painless Software Schedules or this article.

Every Joel “s article is a jewel. Even though I do not agree with some of his advices , they are always well explained and fun to read. His blog was (is?) a must read for all Microsoft employees. Joel on Software is an entertaining book, written with a good sense of humor by a top-notch software professional living in a real world. Congratulations to Apress for having such an author!

Next month I “m planning to read a book called The Best Software Writing 1 (this one is edited by Joel Spolsky). Just can “t wait hellip;

And here “s the quiz. Re-read the first paragraph of this post. What “s the size (percent-wise) of this tiny group of software wizards?

Drugs, porno and rich internet applications

I “m working on a book on development of rich internet applications with Flex and Java. Since the first print run will have a limited number of copies, people want to make sure that they will receive the book this year, so they started placing orders in advance. Guess what, the very first book order came from a country infamous for its drug trade, guerilla wars and kidnapping. Even though I “m sure this reader will be using the book for developing one of these boring enterprise applications, it made me thinking of the software used in drug smuggling business .

Drug Lords are smuggling drugs all over the world. They have no way of knowing what kind of a laptop a local drug dealer will use while ordering the next shipment of heroin, hence their internet applications should work on each and every platform. Drug barons are rich hence their internet application should be rich as well. This makes a good case for Adobe Flash player combined with Flex and Java technologies.

Now let “s take a peek at the world of porno. This industry must be in need of RIA software more than any other. Flash player can play movie clips, the list of available titles has to look pretty, episode selection can be done using tree controls and drag-and-drop, and it has to be available at any remote village in the world, as long as its residents have credit cards. This is another excellent case for Flash/Flex/Java/Internet combo.

I “m sure that our book will sell well, but if the publisher would allow us to describe these two use cases of rich internet applications , this book would lead the Amazon “s bestsellers list 🙂

Oh well, my bus is approaching Lincoln tunnel, then a short subway ride in Manhattan, and yet another day of working on a financial application hellip; Life is not fair.

How to fix a Java bug?

We ran into a serious bug in Swing “s ActionEvent: getWhen() does not report correctly the time when an event was placed in the event-dispatch thread: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4511903

As of today, I “ve learned that these are the option to do something about any Java bug:

– Bring attention to the bug by voting over here

– Fix it yourself and submit a fix at

https://jdk-collaboration.dev.java.net

– Purchase a support contract from Sun Microsystems, but I do not know if this will guarantee a solution in a timely fashion.

This particular bug was reported 5 years ago, and even if it did not make it into the top 25 list, it should have been fixed by now hellip;

I wonder what’s your experience in dealing with Sun “s R amp;D team when it comes to bug fixes?

Also, please do me a personal favor: vote for the bug 4511903 to bring it to the top 25 list.

Thanks

How much money Java programmers make?

It “s the 21st century and Java programmers are freely migrating around the world trying to find the best place to live and work for their families. Traditionally, the USA has been the desirable place for people of our trade. It “s an open society were professional programmers enjoy high standards of living, can afford decent houses, cars, education for their kids and travel around the world during their (rather short) vacations.

While many non-US based ambitious Java programmers know that there is a place on Earth with good living standards that is willing to accept foreign professionals, what about people who are already live and work in the USA? Which countries can they consider as a place for temporary relocation?

So my question is what “s the situation in your country? Does it provide a temporary working visa for foreigners? Is it easy for a Java professional to find a job in your country? Now let “s talk money.

To bring everyone on the same page, let “s take Joe, who works with Java during the last 5 years, he rents a 3-room apartment with his wife and a 8-year old son in a big city, in a safe neighborhood with free public schools.

Country: USA

Monthly net income (after paying taxes): $4500

Monthly expenses:

Housing payments (rent and utilities): $2000

Family medical insurance: $350

Car rental and insurance (Toyota Camry) $400

Food: $800

What if Joe decides to spend three years in your country? Is there a need for Java programmers where you live? What would be the numbers?

How Ajax faculty has disarmed me

I was always skeptical about AJAX. This technology can be useful for Google , Yahoo, or Amazon, and the like . Because regular businesses can not afford it. They can not hire a team of experts to find workaround for dozens of serious problems browsers/JavaScript introduce. Browsers/JavaScript is not an application development environment.

Have you ever been invited to an event, where every person has an assigned seat, and a perfect personalized goody bag is waiting for you on the table? No, I “m not talking about a wedding. This was Sys-Con “s AJAX seminar in Manhattan. I “ve been to a couple of other events during the last year. This one was the best so far.
At 7:50AM they gave me 120 sec for the book pitch right before Jesse James Garrett’s keynote. (Jesse came up with the AJAX name for technology existed for years).

Ten other speakers were talking about AJAX after Jesse, and there was an evening panel featuring Jesse, David Heinemeier Hansson (creator of Ruby on Rails) and three other AJAX luminaries.

I was prepared to ask specific technical questions about AJAX problems, but every presenter was talking about lots and lots of issues they were facing while developing AJAX applications anyway. No sales whatsoever. This was the most honest team of presenters ever. After hearing all their testimonies about the plethora of AJAX issues, I decided to ask a generic question, if the panelists believed that AJAX would be around in three years. Most of them answered that it “ll be around in three, but they were not sure about 5 or 7 years from now. Fair enough. I had an impression that all of them enjoyed the technology, understood the issues, and were willing to try to solve them hellip; somehow. I wonder if there are people who are developing Web application in the Assembly language? Just s thought…

The only thing I do not believe in is AJAX frameworks. Any of them is a colossus on clay legs. When a technology has so many issues, what “s the point of hiding them behind the developer-friendly tools?

Having said all this, I respect people who are fighting with AJAX, I wish them all the best, but I “m not joining their legions just yet.

Presenting the upcoming Flex and Java book

Hello,

Did you watch Sopranos yesterday? Is this show at least as good as AJAX or what?

After spending 8 years with Java, I still miss my PowerBuilder. I miss the ease development of the rich GUI interfaces. Unfortunately, PowerBuilder did not make it to the Web. In the Java world, GUI development was sort of a family Cinderella. So I kept looking hellip;

Finally, the latest version of Flex framework from Adobe met my expectations. It has an excellent Eclipse-based GUI designer, a rich library of GUI widgets that are elegantly presented using the XML-based language, it comes with the server-side enterprise services, JMS support, et al. The GUI clients are compiled and run in a VM also known as Flash, which is available on almost all platforms. But most importantly (at least for me), it integrates easily with Java on the server side.

At the same time, after spending years developing clients and frameworks for the Web, two top-notch programmers, independent consultants, Victor Rasputnis and Anatole Tartakovsky have also decided to invest their time and expertise in Flex. So three of us decided to join our efforts, and now we are working on a book on architecture and development of rich internet application with Flex and Java. This book will offer practical and real-world solutions for anyone who is working in this area.

Since this is an AJAX seminar, you might want to know that there is an open source Flex-AJAX bridge called FABridge. Anyway, in about six months, our book on RIA with Flex and Java will become available from Sys-Con Books. We are also planning to add some sample chapters and working demos to the book “s web site. I hope you “ll like our book.

Meanwhile, enjoy today “s seminar!

Free Java seminar

Chariot Solutions is sponsoring a pretty cool, full-day Java conference next Thursday, March 16, with lots of open

source speakers from around the country (Patrick Linskey, Kito Mann, Thomas Risberg, Jason van Zyl, etc).

Admission is free, and there’s absolutely no product/sales aspect — just cutting edge technical

content on topics like JSF, Spring, Geronimo, ServiceMix, EJB3, Maven, etc.

Here’s the URL:

http://www.phillyemergingtech.com/

Attend this event if you live not too far from Philly.

The next Princeton JUG meeting

Hello,

Our next Princeton GUG meeting is about Spring Framework and it’ll

take place on March 21, from 6:45PM to 8:45PM at Infragistics.

What is Spring? Why is it so popular? Go past the hype and find out

why many developers are using the Spring framework to make their

everyday tasks easier and improve their application design. An

overview of Spring will be presented for beginners outlining the

basics of Spring IOC and AOP. Code examples will include using Spring

and Jencks to do Message Driven Beans without an EJB container, using

Spring with XFire to remote enable any POJO, using

MethodInvokingFactoryBeean to inject dependencies (listerners) into

POJO’s, and an example of using a standalone application that calls

stateless business services (singleton service objects).

Presenters: John Menke, Edgar Dollin, and Antony Fallabella

As usual, we’ll be running some book raffles, featuring the book

Pro Spring by Apress.

Join our mailing list at http://groups.yahoo.com/group/PrincetonJUG/

Todays talk by James Gosling

I “m typing this while sitting at the Sun “s Worldwide Education and Research Conference and listening to the early morning talk by James Gosling in New York City. I do not have time to make my notes pretty, so here “s a raw version of the notes:

There are Java universes: Enterprise, Standard, Embedded, Card

The USA is a third-world country when it comes to cell phones

There are 1.2B Java cell phones and 1.5B smart cards

Java is a homogeneous view of a heterogeneous reality

Java is a conceptual framework

Brazilian healthcare: 120 mil people in LDAP database and access it with Java

Java is taught everywhere. Taken over from Pascal: you can learn the language and actually use it after school.

People learn Java and get employed

James uses OS X , cause Apple makes laptops that do not suck.

With Java you learn once, work anywhere

Complexity hurts Java. The language itself is simple, but the enterprise edition is getting complex. Tools make the whole environment work smoothly.

There are 5M m professional Java developers in the world

Java has standards:

a) Spec lead and expert group (what is it for? What does it do?),

b) reference implementation (can it be built? A sample code)

c) compatibility test suite (is my implementation correct?)

Engineering teams work in every continent Engineers from StPetersburg, collaborate with engineers in CA, results are amazing

Java tools:

For the corp developer: Java Studio Creator

For the enterprise developer: Java Studio Enterprise

For the C/C++/Fortran developer: Sun Studio, full native environment

For the Java Expert: NetBeans, Open source dynamic Java IDE

All these tools are cross platform and free!

BlueJ IDE is designed for teaching programming and now it “s integrated into NetBeans, which allows you to go from your basic learning lessons to development of the Enterprise systems.

Project Mackinac: the real-time Java platform

Real-time Java is used in the extreme vewrsion of real time, i.e. flight control systems: Real time hotspot, controlling physical systems, complex sensors controls, highly deterministic timing (despite garbage collection). The airplane is a Web service

It “s disturbing how few people take algorithm courses. Pay attention to multi-threading when you write your components. Frameworks do multi-threading, but developers do not.

Service component architecture (SCA) is about how you manage and support SOA.

Java is not a product of Sun Microsystems, it a community process driven by multiple institutions around the world.

There was about 200 people in the auditorium. I was the only person who got to ask James a question.

Q: There are many new programming languages these days. Do you feel that Java is in danger?

A: No, Java is not in danger. Scripting lang like PHP and Ruby get a lot of power in specialization. If you need to develop a Web page, they are good, but they do not scale. a+b+c in Java has huge lead in terms of performance over all these languages. Sun is trying to develop tools for simplicity while maintaining the power.With PHP you can write a Web presentation layer, but not interplanetary navigation.C# it “s hard to criticize, they just copied the Java spec, and hopelessly stuck in the only platform.

That “s all folks!

Once again on Java frameworks

Dion Almaer wrote on usability of Java frameworks. I agree with this post. A good programming language (may be two) and a dozen of design patterns is all you need. SQL is a must. Period.

As I was younger, I was eager to learn any new software while it’s hot. Right from the oven. Now I look at things more pragmatically, and unless an XYZ-framework brings something really-really different and new to the world of if-statements, I won’t be using it, unless my client (who pays my salary) does. But I do read books/articles introducing these frameworks.

On the other hand, we’ll always need tools that are addressing specific business needs. For example, now I’m working on a financial trading application and we need speed, speed, and speed. That’s why we are considering frameworks/solutions that provide distributed cache, minimize garbage collection, optimize HTTP tunneling, support grid computing. And there are such products on the market. These products are concrete.

Generic frameworks will play their role in the Java martket, but do not expect any of them to dramatically change the way you program. The amount of code you need to write will stay the same, but if earlier it was 90% of Java and 10% of XML, it may become fifty-fifty or even worse.