Thursday, June 02, 2005

Why are so many down on ColdFusion?

I've been reading Mark Kruger's post about Coldfusion and its undeserved Bad Rap - is it I?. While it's a great post, about why it's so easy to do ColdFusion wrong, we're still focusing on the wrong things.

The problem with coldfusion code, is not coldfusion's fault, it's the coders fault.

So let's stop putting the blame on the language, and more on the coders.

I'm not saying coldfusion is the language to solve every problem, but it has it's strengths and weaknesses like any other language.

But for 90% of most web applications, Coldfusion is one of the top 2 solutions for it.

Let's explain why ColdFusion is one of the top 2, and let's be realistic.

1. ColdFusion coders are much cheaper and faster than java/main frame coders, simply because it's a markup language, easy to use, but hard to master.

2. Now that ColdFusion is now a java application it is much more stable, than it ever was.

What was the slogan of ColdFusion when we just got started?

Rapid Application Development

So that means speedy development of applications, if we code it right.

So let's stop downplaying ColdFusion because it's not OO-enough, java enough, framework friendly enough, that is 1% of what ColdFusion was created for.

Rapid Development of Applications, using good and reasonable standards of coding. If a framework helps improve ease of coding, while not interfering with scalability and performance, than by all means use it.

Think about it from a client's end. Does it really matter if you use the latest standard? Only if it's a good standard that delivers scalible code.

I know I really repeat that point, because I don't feel like many people really get that. And instead of worrying about quality code delivering for high performance, they worry about the latest framework, oo/mvc, cfcs.

Let's talk about CFC's. First of all, I am glad they are a part of the ColdFusion language set, but they were only specificially designed for webservice usage, and instead we get tons of people using them for regular applications, when they're not an improvement in performance.

I know it's a cool way of coding applications, but SO WHAT?

What's more important? The coolness of the coding style, or delivering applications that don't crash the server? Or causes endless errors?

If CFC's are proven to be of at least equal performance as cfincludes, then I'll be happy to use them, until them, they are a waste of time and energy.

I remember, when I was working for a previous job, and an outsourced company was hired to create a checkout process, and instead of using normal coding methodology, they did it as a CFC.

Are they BLEEPING Serious? CFC's are specifically just for web service usage, and instead you wasted weeks and money which I'd eventually have to re-do, because it wasn't scalible.

And don't give me this crap, oh you haven't worked on an enterprise application, of course I have. Maybe it's not in huge teams, but I've been working with top national companie's, being the main coder, having to clean up everyone else's code.

You can call it my nickname, Mr. Clean. I am the one who has to clean up everyone else's code.

And I am sick and tired of everyone else caring more about using the latest gui, methodology or standard, than producing scalible, quality code.

I've been forced to clean up fusebox code too. Because we needed an application, like 100% of ours, had to be Search Engine Friendly, so we had to waste more time and money re-doing it, into a regular application.

I understand the need for a framework and methodology, and fusebox has brought a lot of good ideas, but really when you look at the app from a customer's point of view, it's really not user friendly.

And it's not really coder friendly.

Unless you are that group of people who are fuseboxers and only work on 1 part of an application.

I know i am of the rare ones, that work on a full application, and that has a lot of benefits.

I get a much better idea of what everything is supposed to do, I am a much more complete and thorough coder, than if i were a fusebox coder.

I do forms, html, tables, css, javascript, dhtml, sql statements, I do it all.

But I am tired of being angry, I just want more people to get a grasp of common sense.

Of course, since I am not flouting what the popular bloggers say, so more people will hate me, but that's my due I guess for being different.

Be well.

Long live ColdFusion!

OT: Just bought the NewsRadio DVD

When NewsRadio was on TV, I really enjoyed it. In a way it was a scope into the Dilbert -like culture of corporate jobs. It was a great, laughing experience, introducing us into a cast of great comic experience.

But it also had it's sad moments when Phil Hartmann, passed away.

But it shows us the natural good and bad times of job cultures, which is both amusing and sad at times.

I just saw the DVD at the Target, and I was just possessed to buy it.

For some of these type of shows, we tend to identify with certain characters.

I myself, tend to identify with Matthew or the Gilligan type.

Who do you identify with? What are you favorite TV Shows of all time?

Tuesday, May 31, 2005

Starting the process of experience delivery

I recentally talked about my own personal change from merely creating scalible applications, towards a new thinking, that of delivering a good experience.

It sounds rather simple, but in actuality, takes a lot of effort to learn a whole new approach.

Here are the steps, I have subtly followed, and now hope to work with others to find the best standard.

1. Identify your true end user

There may be some struggle to help to identify who your end user is. Sometimes your boss thinks they are, and sometimes it's the hidden end user.

So you have to really examine who will be using the application you create

2. Identify the goals/objectives of your end users

Now, this sounds so complex, but in reality, most people, depending on the demographics of your end users, will have very simple goals or objectives.

Let's be clear hear, in my mind there are two really great, not perfect, sites that deliver great experiences. and, and why are they still so great? Because both sites, make it easy to find what you are looking, and don't get in the way of what you are really after. Sounds simple doesn't it?

Let's show you how they do their magic. - Most people come there for either a specific product, or to browse, and is designed for either in mind. They occassionally have advertizing for new departments or promotions, and that can sometimes get annoying but most of the time, it's easy to use. - Sticks by a very simple interface, that focuses on you searching and even more importantly finding what you are looking for. They do not let, design get in the way of usability.

So, how do we carry this over to your own site?

I tend to generalize most sites into 2 types:

1. Ecommerce
2. Content

There may be more types, but they're not where the money is so far. I am not saying other types aren't important, but these are the main two types i know of, where there is a lot of confusion.

3. Avoding confusion between your/bosses goals and your end users goals

It's so easy to change the navigation, add new tools, or add more promos.

And this is behind the sad, bad mentality of the dot-com era, that new visitors will keep coming, and you don't have to do anything to get repeat customers.

So if you are in any doubt, look at how your competitors up and down the food chain, make it easy for the custoemrs to fulfill their goals.

And when you think your designing the site for your own needs, that's where you can really go down the tube, and you just have created a site no one would visit or use, other than yourself.

That's enough for now, more to come...Please share your own thoughts and ideas.