How comfy is your cubicle?

How comfy is your cubicle? Actually do you even have a cubicle? Is it decorated well enough?

Being a consultant, I have a chance to work at different corporate cites. Some companies use open space setup where everyone can see each other, which is just horrible. In some cases you see cubes with tall walls when the entire floor looks like a deserted maze. Joel Spolsky keep stating that every programmer has to have a private office. This is great idea, but the chances are close to zero that you, a programmer will have your own office. My working space during the last six months consists of two square feet area on the conference room table covered with cables, wires and power cords. Am I complaining? Not at all. I am a consultant, which means that I need to help the client with solving THEIR problems, not mine.

An absence of working space stops me from bringing any personal belonging to work. I come with my laptop, connect to the network, put on my headphones and start working. When I leave, no cleanup is required. As if I never even was there.

I ‘ve seen another extreme on corporate floors: overly decorated cubes: tons of photos, books, about a dozen of different plants, sport memorabilia, and mugs with logos of all previous employers… When I see something like this, it seems that peope think that they will live there forever. Imagine if they get fired – they ‘ll need to bring a moving truck to take all these items home. I used the word fired on purpose – these people are not planning to leave the firm voluntarily. Ever.

Barnes and Noble offers help for people who like decorating their cells. It ‘s called Cube Chic . Now you can have the Garden Cube, the Cabin Cube or even the CEO Cube. I guess, your self esteem will go up if you ‘ll turn your cube into a CEO-like office.

No, this is not for me. Let me push aside all these wires and power cords away, so my laptop and elbows will fit.

Whos winning the desktop: Sun, Adobe or Microsoft?

Java on the desktop today

A discussion on the future of Java on desktop is going on right now at JavaLobby .

A anonymous poster (rba1988) asks the following question:

“I was just wondering what you people think of the future of Java standalone/desktop applications. What ‘re your opinions on this? Do you think people will continue developing pure Java applications that you won ‘t find on web pages but on the desktop. Or do you think that Java programming are really meant for applet development and not for application development? rdquo;

The readers of this respected online forum are actively participating in this discussion and, as usual they try to protect their ten year old pet called Java. Some say that Java is improving on the desktop and has good opportunities there. The reason is simple and prosaic: Java Swing puts bread on their tables. They do not want changes. They do not want to learn another language or tool. They can do everything with Java Swing.

C “mon guys, get real. IMO, Unless Sun will do a major rework, Java Swing will slowly but surely go away: first, from the Web applications arena, and in several years from the desktop. Sun Microsystems has been treating Java on the desktop as Cinderella way too long. Now Sun is way behind. So who ‘s way ahead? Adobe with Flex 2 on the Web and Apollo on desktop and Microsoft with their WPF/E.

Swing is very very powerful tool, but it ‘s very expensive. I ‘m talking about real-world applications not mortgage calculators. You do not pay for a Java license, but you pay high salaries to people who develop in Swing. They write tons and tons of code. In addition to this, IDEs generate tons and tons of boilerplate code. Someone has to read and understand all this.

What about deployment? HelloWorld with one text field and a button won ‘t run on your PC unless you ‘ve installed the JRE that weighs 16MB (Sun is trying to make it lighgter for the Web ).

Yesterday, I was creating an application for my client in Flex 2 that runs in Flash Player 9. All of a sudden, some big shot came in and a quick demo was required. No, the big shot can ‘t stop by my desk and wants to see this Web application in action on his laptop in his office. No problem, because I was not using Swing. I was using Flex 2, so I copied a couple of files to a webapps directory under Tomcat, and emailed him the link. He clicked on the link, and a message “Flash Player 9 is required. Do you want to install it? rdquo; poped on his laptop, he pressed OK and 5 seconds later, he was working with my application, which was working with Java messaging feed on the server side. Do not trust me? Click on this link (it “s not my yesterday “s application but is similar to that) http://samples.faratasystems.com/porfolio/PortfolioRpcDemo.html

It should be up and running within seconds. By the way, this entire application including quote generation (random numbers by a POJO), charts, RSS read and links to Yahoo financial news is less than 300 lines of code.

Adobe or Microsoft?

The next question is, who is going to take a lead in the RIA area: Adobe or Microsoft? Let “s talk about penetration of new software. Do you know which OS I am using at work? Windows 2000 professional. Let me check my calendar…Yep, it ‘s 2006.

There is no other software in the world that has such a high penetration rate as Flash Player. As per Adobe within a year something like 80% of people upgrade Flash Player to newer version (the numbers might be slightly off). Within three months 50% of user will switch to Flash Player 9. Do you know which JRE version is used for most of the applications at my current client ‘s site? You got it, 1.4.2. It ‘s been two years after release of Java 1.5.

I bet on Flash GUI talking to Java on the server. Today you can create Flash applications using Adobe Flex,plain ActionScript coding or Open Laszlo. Next year, Adobe Apollo will let you create full featured desktop applications that integrate HTML, Flash, JavaScript and Acrobat with full access to your file system.

Competition: Microsoft WPF/E and C# combo. On the side note, Java Swing beats C# on the GUI side. My friend is working for a company that has decided to replace their Swing GUI with C# in their financial trading application. They can ‘t get the same performance they had before…Anyway, it won ‘t be easy for Microsoft to catch up with Adobe , but hey, it ‘s Microsoft. Gotta respect them.

AJAX won “t become a mainstream on the business applications landscape. It “ll find its limited use in consumer facing applications like Amazon, Yahoo, Google and major online retailers.

A happy Java ending

I love Java…one the server side where it shines. Well, there is one more area for Java: mobile devices. More and more people believe that their cell phones are not just telephones that should be used for dialing phone numbers, but also cook breakfast in the morning. Java is a leader in the mobile space, and I do not see any danger there for Java. Flash Lite is way too young, and is making its first baby steps at this moment.

Is Sun moving in the Ruby direction?

As per Charles Oliver Nutter , two core JRuby developers, Charles himself and Thomas Enebo, will become employees at Sun Microsystems this month.

To me, this is a clear indication that Sun Microsystems is seriously evaluating where to go with Java:

1. Keep adding new features to Java, which in my opinion is wrong .

2. Create a new language using JVM as a foundation, which in my opinion is right .

3. All of the above

Let ‘s keep an eye on Charles Oliver Nutter ‘s blog, but do not expect too much of a leakage there – he is now Sun ‘s employee. Two talented software developers standing on the shoulders of the super powerful marketing machine is a win-win situation for everybody.

Good luck Charles and Thomas!

Ive learned a new English word

I’m really impressed by how easily new words are introduced to the English language. This one came from the world of programming.

Last weekend we’ve had a mini family vacation. Since I always have with me my laptop that is equipped with a broadband Internet connectivity, I’m always online. This also helps a lot when you are traveling in a car/bus/train (I’m publishing this blog while sitting on the bus that is moving on a highway). It also helps when your kid is bored in a hotel room…

When I found my 12-year old son was using my laptop,we’ve had this conversation:

“What are you doing, Dave? ”

“Watching a cartoon on youtube.com “.

“How is it? ”

“It’s nice, but a bit buffery ”

When the Internet connection is a bit slow for a video stream, it takes time to fill the buffer with all these bytes, hence a new word: buffery. A year ago he would have said “It’s nice, but a bit choppy ” or something…

Any good programming language is easily extendable. The same holds true for human languages. I love English!

Sample applications and upcoming presentations on Adobe Flex for Java developers

Christophe Coenraets, a senior Flex Evangelist from Adobe has published a blog showing a number of sample Flex applications that communicate with Java on the server side. And yes, Christophe knows Java. His blog “30-minutes Flex test-drive for Java Developers ” is a recommended read for Java developers and architects who are ready to consider anything else besides Java Swing or AJAX for creation of their Rich Internet Applications.

Also, there will be a couple of free Flex-for-Java presentations for software developers who work in New York City or in New Jersey:

On September 13, myself and Victor Rasputnis of Farata Systems will present at Java users group in New York City at Google’s offices. Register today if interested, there is only a hundred seats available on the first-come-first-serve basis.

On December 5, I’ll be presenting at Princeton JUG on the same subject.

Great Web site design with Flash

This Web site gives you an idea of HOW to design your future Web sites with Flash. It’s like this concept car that you see at an auto show: most likely it’ll never hit the road as displayed, but it shows you the trend. If you want to see a good example of a Rich Internet Application, check out the web site of J.K.Rowling. This is not just a Web site, this is a user experience.

Hey you, people designing Web sites for business applications, stop creating these plain looking boring Web sites. Your business users are people as well, and they want to have some fun at work. Your future site may not look exactly the same as this site for Harry Potter’s fans, but think out of the box and be creative. If you are given a functional spec with a last-century look and feel, suggest a different solution by creating a quick prototype in Flex/Flash and showing it to your business users. Chances are that they may like your design better, you’ll have more fun creating this Web application, and they will have more fun using it.

Are programmers starving in Florida?

Up till last year there was a real estate boom in Florida. The salesmen kept telling you the stories that it’s a lot cheaper to live there than, say in New York. I always knew that it’s a BS. Milk, bread, cars, restaurants, clothes are not cheaper there. The houses or apartments that I’d like to live in, are not cheaper that in New York either. So what’s cheaper there? Cigarettes. But I do not smoke.

Then I ran into this job ad in Orlando, FL. I’m sad to admit that I do not qualify for this $35-an-hour job. I do not have all the skills required in this job description: I do not know ColdFusion and ASP.

What’s the bottom line? Given the real cost of living and low salary rates, most of the programmers will get extinct in Florida pretty soon. Only the real expert telecommuting from Florida will be able to survive. But as you know, it’s not easy to find a telecommuting job in America, unless you live in Bangalore or Mumbai.

I had a Java dream last night

I had a dream that Jonathan Schwartz has called me on the phone and asked for an advice on Java future. This is what I remember hellip;

Jonathan. Hey Yakov, I “m sure you “ve heard about our great results in the hardware arena. But I “d like to hear your opinion on how to proceed with Java.

Yakov. Jonathan, it “s an honor. How can I help you?

J. We are planning lots of new language features to be introduced in Java 7 (closures, data binding in Swing and more)…

Y. I’ll tell you what I think. But please answer my question first, what “s this thing with outsourcing Java? Why? Do you really believe that it “s the right thing to do?

J. To put it simple: peer pressure. Everything is open sourced these days, you have to go with the flow hellip;

Y. IMHO, this is a mistake. I do not think Sun needs to go through this pain of certification of plethora of future forked products just to call them Java. Unless you are planning to make a couple of bucks by charging vendors for being certified. Java source code is available already, and it “s free. Even now there are several implementations of JRE (Sun, IBM, BEA and more). Isn “t it enough?

J. OK, OK. Please answer my question now: how about adding new features to the language?

Y. To put it simple, leave the Java language alone. Create and market a brand new language that can be used with or without Java. Do not forget that Java is already more than ten years old. Sun “s engineers did a great job by mid-nineties standards. Sun Microsystems did a superb job in marketing Java. JVM rocks, Java memory model shines, multi-threading is great. But, do not forget that Java was originally created a s a simpler alternative to C++. But all these new features made this languages at least as complex as C++.

J. But what “s wrong with closures?

Y. Nothing. Closures are an equivalent of function pointers in C++.

J. But according to Java online forums people vote for closures.

Y. The problem is that people who post in all these forums represent a really small group of Java developers. Vast majority of Java programmers just write if-statements, loops, execute database queries and display results on the screens. So do not make Java overly complex. Do not scare people away from Java. Besides, it “s hard to teach an old dog new tricks. It “s not natural. It “s like a cosmetic surgery. The face looks a bit younger, but the body is still old.

J. It “s easy to critique. What do you suggest?

Y. Sun needs to create a new language. And most importantly, Sun needs to start heavy marketing campaign as soon as this new language is created leveraging existing Java echo-system. You may not even need to build this new language from scratch. Just take a stripped out version of Java and start adding new feature to it the right way. CLDC (not CDC) that is used for Java 2 ME, can be a good starting point. I was reading a white paper on CLDC, and if you forget for a minute that it was written about a language requirement to be used with mobile devices, this is exactly what “s needed by any programming language:

“provide cutting edge performance, deliver fats application start-up time, require minimum footprint hellip; rdquo; Aren “t all these features required in a non-mobile environment? Put CLDC on a real computer with lots of memory and it “ll fly there. Add full-fledged multi-threading support there. Restrict the size of the runtime to 1MB. Do not port Swing there. Come up with a new simple way of declarative creation of GUI (take a look a MXML and XAML). Add to this new language closures, continuations, mixins, and whatever else your talented engineers can come up with. Seriously invest into multimedia features of this new language.

Set up a lab where this new language will be tested on the same computers that were used back in 1995 with Java 1.0. No T1 or cable modems are allowed there: 56-bod modems. Yes dial up. Try to imagine that memory is expensive again, and some people still have only 512Kb of free RAM. Make this language perform well on slow machines.

J. Let me think about it. But what would you recommend to improve the Java quality now?

Y. Your question contains the answer. Just fix the bugs. Open the bug parade, and ask your engineers to fix all of them regardless of how many people voted for these bugs. Some of these bugs are almost as old as Java. Decrease the size of the JRE. What is it now, 16-18Mb?

J. OK, Yakov. Thank you for your input. I “m glad I called you.

Y. My pleasure, Jonathan!

Even though this conversation have never happened, I decided to write it down. Who knows, may be one day I “ll be giving advices to Jonathan Schwartz (and he’d listen to them). It “s A-M-E-R-I-C-A.

A bug in English?

Even though English is not my first language, I like it. This language is alive, and it has a logic to it. You can take a root of any word and build a new word out of it. For example, let’s take the suffix “er “. If you know the word “law “, you can easily figure out what the lawer is. To teach – teacher. To learn -learner, to program – programmer. Now let’s drill down a little bit.

I am a programmER. But there are different programming languages. There are people who program for the Flash player, or simply Flash pregrammers. I tried to apply the same logic and attached the suffix ER. I got Flasher assuming that it’s a programmer who writes program for Flash. But according to Wikipedia, a flasher is “a person who displays their body in a form of indecent exposure “.

So where is the bug? In English or in Wikipedia? So the ER rule does not always work which is a bug in English programming language. The word “their ” in Wikipedia does not sound right to me either in this sentence, which is another bug, but this time in Wikipedia. So how am I supposed to improve my English?

But wait a minute, there is a fifth meaning of this word in Wikipedia: A person who creates computer animations using Adobe Flash! Hmm, I’m not exactly creating animations…I write business applications in Flex. Am I a flexer? Neither Wikipedia nor Dictionary.com know this word yet. So now I’m the first one who coined this word: Flexer! If I register with Wikipedia, I can create an article for Flexer! Nay, it’s getting too late… It’s time to sleep…

But still, I like English, because I can improve it… if I create an account with Wikipedia!

OK, one last tip for those who are struggling with English. I always use Google when I’m not sure about some English word usage. For example, I was editing someone’s technical article, that had “irrespective to “. I had a gut feeling (not the knowledge) that it should have been ” “irrespective of “. In cases like this I go to Google and do a search on both phrases (it has to be surrounded with double quotes). The first version returned several thousands, while the second one returned millions. So I’ve corrected to “irrespective of “. This is not a 100% correct way of learning English, and may be there are some cases when “irrespective to ” can be used, I just do not have time fora fundamental study and donot want to take chances.

Good night! Early to rise and early to bed, makes a man healthy and socially dead.