Tuesday, June 27, 2006

Are we going down a healthy path of ColdFusion?

Lately all i hear is eclipse, java, .net, code reuse, database introspection, and I find it rather irritating, I mean honestly have we as an industry really proven that we create stable, usable applications?

Maybe that's why I care less about what the trends are, because I see us more focus on what's new than doing ColdFusion at higher level's of quality.

I've had a lot of job interviews with many different companies, but what strikes me is this drive to new technology, without even been to the point of creating good code.

I think we've lost track of the lessons we should have learned with the dot-bomb.

Here are some of the lessons I learned:

1. There has to be solid financial stability, could care less for IPO's, porsche's but just to have a job I can keep, and be at for 10-20 years would be really ncie for a change.

2. The end of all these schlock shops that just churn out code, that 1-2 years later embarrasses or destroy's their reputation, because it was crappy coding.

3. New Trends/Fads are fun, but are no replacement for solid standards, good work ethics, and giving a damn about the applications you sell/provide or service.

4. The end of Short Term Planning/Thinking, I mean sure there are things we have to get done in the short term, but why keep self-destructing by avoiding what is essential to being a top knotch language...

Maybe that is why I am a fan of Charlier Arehart and a few others out htere, that try to help us create better code and applications....

Maybe that's why I could care less about OO, Fusebox, MachII, ColdReactor, ColdSpring.. Because are we really as a whole industry really turning out applications like we should be, something to be proud of, that lasts, instead of having to always re-write everything in 2-3 years because we didn't give a crap...

Maybe that's why I use to go to CFUG meetings and read the CFDJ....

Instead I get, have you done an enterprise application, focus on inane details instead of am I proud of the code I create, do I give a hoot that 5-15 years later it is still reasonably easy to read, scalable, can be easily fixed or changed...

I love programming in ColdFusion, just not sure where I fit in an industry that cares more about having/creating the next dot-com explosion when we really know it's just gonna blow in our faces again...

Just think about it...

16 comments:

  1. Anonymous11:18 AM

    Don't you understand that the whole point of OO and those frameworks is to help CF developers produce the "better" code you refer to. By ignore it you preventing yourself from becoming a better developer. No wonder you have so many interviews.

    ReplyDelete
  2. Anonymous1:56 PM

    I think this is all just a natural progression of programming. The more you program in OO the more you see the benefit of it. ColdFusion developers just never had the benefite of being about to take advantage of OO methodologies. With CFC we are now able to do that and now you are seeing frameworks that take advantage of that. OO is just a methodology of organizing code that was such a good idea that the majority of the big languages today take advantage of it. You shouldn't have to fight the "revolution", find what works for you. If anything learning OO only makes you more marketable, it doesn't mean you have to work in it, but it wouldn't be so popular if there wasn't some sort of benefit to using it.

    ReplyDelete
  3. I'm not anti-OO as much as I am, have we as an industry proven ourselves as developing solid applications..

    I think this just part of the natural flow of trends, who knows if in the near future a new procedureal frameworks that comes out that turns out to be better for programmning and applications.

    I just don't feel we should get into a certain technology or method, just because everyone else does.

    Get the distinction, I mean are the advantages we want, really that useful?

    And what advantages do we really want..

    If it helps you and coldfusion be a better language i am all for it...

    And i didn't want this post to be about anti-OO, altho I kind of think I have a rep for that.

    I wanted it to be about us raising the bar of programming no matter what framework/method we use.

    Get great at the basics before we worry about trends/fads/whatever the new thing is.

    And just because I disagree with you, does not give you the right to insult or be mean to me.

    Nor am I really trying to hurt anyone, just worried about the direction we're going,a nd also tired of having to be Mr. Clean at all the companies I work at.

    But ce sera, if people keep writing bad code, I guess I'll still be hired to clean up after them.

    ReplyDelete
  4. Anonymous2:57 PM

    It sounds to me like your interviewers are asking if you can perform at another level and you aren't interested in performing.

    ColdFusion has a limited lifespan, and is not enjoying as great a penetration as some folks might believe:

    Job market:
    java (language): 63,230
    j2ee (framework): 37,845
    c# (language): 33,121
    vb.net (language): 12,276
    php (language): 9,669
    cfml (language): 5,308

    Get out while you can, if you can...

    reference:
    http://www.indeed.com/jobs?q=coldfusion+or+%22cold+fusion%22&l=&radius=&sort=date
    http://www.indeed.com/jobs?q=j2ee&l=&radius=&sort=date
    http://www.indeed.com/jobs?q=%22c%23%22&l=&radius=&sort=date
    http://www.indeed.com/jobs?q=java+not+j2ee&l=&radius=&sort=date
    http://www.indeed.com/jobs?q=php&l=&radius=&sort=date
    http://www.indeed.com/jobs?q=vb.net&l=&radius=&sort=date

    ReplyDelete
  5. My answer to your question "Are we going down a healthy path of ColdFusion?" is 'Yes!' I think it is great to see so much innovation and buzz going on right now. It makes me excited to be a ColdFusion developer taking advantage of OO concepts, MachII, Reactor, etc.

    ReplyDelete
  6. Again this either becomes a thing about me not being a good programmer, or that I'm the enemy because I don't like a certain style of coding..

    As far as my training, I am self-taught, because when I had started there were no classes, companies had no interest in spending time and money on training..

    So if you got exposed to a certain way of doing things, that's the way you did things...

    The whole part of my post and that everyone seems to be missing...

    I don't think we're doing that great a job of coding in just coldfusion...

    And I am willing to learn other languages, but no one wants to train, they don't want to pay for classes, conferences or anything.

    So it's not like I am unwilling to learn, the money or opportunity just has not been there...

    Maybe it has for you, but that's rare for me.

    Remember not each of us is in the same expereince, and that's not a slam, just luck of the draw.

    I was willing to learn/use fusebox, java, ASP.

    But to really good at that takes time, training and classes.

    And most companies just don't care if I must be blunt about it.

    All i want is for coldfusion to be good at the basics, and instead we get distracted by talking about how I'm not that good a programmer. or that OO is right instead of us getting better as a community.

    ReplyDelete
  7. I like the way ColdFusion is heading. The CF community is amazing. I don't think there is another community in IT that is as vibrant and generous as ours. I LOVE the way people are creating brilliant products for CF, such as frameworks and open source applications. Often these products demonstrate ideas and possibilities that I had never considered.

    Do I have to adopt OOP or use a particular framework or product? No. But I'd be a fool not to evaluate them to determine if they meet my needs or check out the code to see how they pull something off. The fact that I have these options open to me is awesome and something I really appreciate.

    ReplyDelete
  8. Craig,

    I think you're right on, although I tend to point the finger a little higher. After 10+ years of ColdFusion, ColdFusion shops are remarkably immature. And by immature, I'm referring to the term in the CMM sense. Statistical analysis of estimates is unheard of.

    Ask 3 people from a cf team to estimate their next project independantly and you'll most likely get wildly differing numbers with little evidence to support the conclusions.

    Mention terms like CMM, RUP, XP, etc. and you'll generally get a few people that have heard of them, but no one that has actually participated in even a partial implementation of any of them.

    Is this the problem of the cf developer community? I don't think so. For some reason, 1st tier management doesn't seem to have to be well versed in their profession to get the job. How many project managers do you know that are nothing more than glorified customer liasons?

    In defense of some of the organizational immaturity, the technology does move along at a pretty good clip. Adding OO to CF is a significant upheaval in the way applications are constructed. I imagine that we're in for another one where cf becomes a service provider for Flex as well. The speed of change makes it difficult to amass a body of compative statistical data.

    In the past, I suggested that the community create a repository of project data that we could share. I know that approach has been successful in certain construction disciplines. The idea was not well received.

    Craig, I would encourage you to continue pushing the quality envelope in your procedural code. Just make sure you let us know what you've found out. Maybe somebody can stand on your shoulders and apply your results to some of the OO approaches.

    ReplyDelete
  9. Anonymous4:09 AM

    > I'm not anti-OO as much as I am,

    I hope for the sake of your customers or employer that the logic in your code is of a higher standard than that in your prose!

    I don't mean to be unnecessarily rude, but quite frankly, if your understanding of programming syntax and 'grammar' is comparable to that of your written English, then it's really not surprising that you are are so familiar with the job interview process.

    I'd like to be more constructive, but even the titles of your posts contain basic (and seemingly random) grammatical errors. Do you bother to read you posts before hitting publish?

    ReplyDelete
  10. Anonymous4:16 AM

    anonymous wrote:

    > ColdFusion has a limited lifespan, and is not enjoying as great a penetration as some folks might believe:

    Just how many times have we heard this over the last five or six years or so?

    ReplyDelete
  11. As imperfect as I may be. All I want is for us as ColdFusion Developers improve the quality of our work to the outside world.

    Not so much as by how we code, as in the core basics.

    1. Easy to change and modify
    2. Highly documented
    3. Scalability
    4. Well Thought Out and Planned

    If you can deliver on that using your favorite methodology, than I'd be very happy to shake your hand..

    I just get tired of seeing people/shops who don't seem to care about the quality of their code, or can't find a way/time to improve it.

    Because bad code/apps makes all of us look bad.

    ReplyDelete
  12. Anonymous3:14 AM

    > Maybe that's why I could care less
    > about OO, Fusebox, MachII,
    > ColdReactor, ColdSpring.

    Sigh. And things seemed to be going so well on the Fusebox front.

    ReplyDelete
  13. Anonymous11:58 AM

    Craig wrote:

    > 1. Easy to change and modify
    > 2. Highly documented
    > 3. Scalability
    > 4. Well Thought Out and Planned
    > If you can deliver on that using
    > your favorite methodology, than
    > I'd be very happy to shake
    > your hand.

    Apps that are designed in accordance with OOP and design-pattern best practices should certainly optimize you chances of achieving 1, 3 and 4. The quantity and quality of the documentation, as for all styles of development, is down to the developer(s).

    OOP is designed to give you the very things you often proclaim in this blog to aspire to. In what way does OOP actually fail to deliver these goals? You direct plenty of vague criticisms in the direction of OOP, but I haven't once yet seen you cite any specific examples of where you think it falls down as a mode of development. It would be helpful if you reduce the rhetorical statements and the platitudes you are so fond of and get down to the nitty gritty. Exactly *how* does OOP fail to get you closer to your stated goals than procedural programming? Will you answer, or will you ignore this like you have done to so many other key points made to you on this blog.

    OOP is significantly harder to learn than procedural programming. I hope your criticisms are not generated by frustration caused by an inability to understand?

    Anyway, a challenge for you Craig. Bullet point list please. How does OOP fail to meet the needs of complex system development? Before you say it, most agree that a design-pattern based approach is often inappropriate for very trivial applications. But for any application moderately complex, that needs to be maintained over time, that is to leverage the collective and hard-won experience of tens of thousands of developers, that might require modification at any point within itself, for any reason, at any moment... Can you explain how OOP falls short as a solution to such needs?

    ReplyDelete
  14. Who says that it's failing?

    OO is completely not even something i think about, because it's completely not anywhere near the point i've been trying to make...

    Why are we even discussing this?

    All i have said is that i am more concerned about us as an industry releasing good solid code.

    For you that could be OO, I am not in any way trying to persuade you to change or use a different framework or methodology.

    If your method produces code that is easily used and modified, and documented that can be ussed by any cf coder than awesome.

    If it can only be modified by someone who knows your method, than that's a failing, no offense.

    All I aim for is to be the best cf coder i can be, and for you it may be down the path of OO.

    It doesn't have to be that way for everyone else.

    I am not trying to preach some magic answer that solves any or all problems

    I am only trying to bring to light that we have a problem. And hope we can work together to solve it.

    Only instead of hearing, oh yeah craig, let's work together, each in our ways to improve code quality.

    I hear, well if your not OO or this framework or method, your a crappy coder, or your not hireable.

    That's really insulting and rude.

    Is it that important that everyone likes and wants to code the same way you do?

    Because then your damaging the industry instead of growing it.

    Have I once ever said that coding in fusebox or oo or whatever method makes you a horrible coder?

    No.

    So let's stop this push or evangelism to push your methods on to everyone else.

    If i care about being popular, i'd just do what everyone else did, regardless of whether it made sense to me or not.

    I don't have all the answers, but I hope for once we can work together instead of bickering.

    ReplyDelete
  15. Anonymous2:21 PM

    > Why are we even discussing this?

    Because you mentioned it above in your post, and you've railed against it directly or indirectly dozens of times before, right here on this blog.


    > but I hope for once we can work together instead of bickering.

    (You confuse bickering with incredulity). You want to work together? Then join the CFC-based ColdFusion community, or the Python community, or Ruby, or Java, or C#, or OO PHP5 or even the OO Perl community. You'll find that they are all actively working on the problems you claim to be so passionate about solving. There's just one thing, guess what you'll need to learn in order to join in.....The bar for Web software has been raised. Stop fighting it for no good reason. Come on in , the water's nice when you get used to it.

    ReplyDelete
  16. Anonymous2:27 PM

    > If it can only be modified by someone who knows your method, than that's a failing, no offense.

    This is nonsense. If a Boeing engineer designs an airframe, and I can't read the plans because my engineering skills aren't very advanced, is that a failing on his part? Ridiculous thing to say.

    ReplyDelete