Uncategorized
Simon Horwith presenting on fusebox?
I was scanning the rss feed today when i came accross this, " I’ve
begun learning Fusebox in preparation for the intro to Fusebox
preso." I have to admit that this caught me off guard. I
was under the impression that people paid to go to these conferences to
listen to experts present on topics in which they are knowledgable
and feel passionate about. Obviously Simon is taking the
steps become knowledgable, but the only passion he has ever expressed
is in opposition to it and frameworks in general.
So I would think you would see my dismay at the event orgainizers
choosing to follow such a route. But then it dawned on me that
this has the opportunity to be a very informative presentation.
Simon is a smart guy so I have no doubt he will do the topic justice,
but his position in opposition to frameworks make this unique. He
could spin the presentation in the direction of the benifits he found
in fusebox, even if he doesnt choose to use it daily. However I
think this may not be the right spin for an entry level topic, maybe
one more geared at informing the fusebox leadership of how it could
gain more acceptance from non-framework developers.
I think in going over this post I might have painted a grey
picture. But I think I see a trend. In the last few
conferences I have gone to I have seen Simon be the fill in guy when
other presentors dont work out. So I know that its probably not
micheals fault, and I am sure Simon didnt pick this topic to begin
with. But I guess my question is this, Isnt someone attending the
conference a fusebox user who could pick of this entry level
presentation? Or is the intent to give some neat spin on a very
traditional topic?
PS.
My thoughs on Simon’s views of frameworks come from his work to stress
that you can build good sites without them. Its a theme I have
seen in his presentations, and not anything I have personally heard him
say. Anyone feel free to correct me :)
20 Sep 2005 Simeon

I gave this presentation last year but am attending a wedding in Texas so I’m having to miss this year’s conference. But as I understand it, Simon was actually asked a while back to do this, it isn’t a last minute cancellation or anything. I’m sure he will do the topic justice as he is, as you say, a very smart guy in many respects. We’re all aware of (and probably tired of hearing him state) his negative assessments of Fusebox in particular and frameworks in general, and I can’t disagree with him more strongly. Just because someone is smart doesn’t mean they can’t be wrong. I’ll be interested to see if actually learning about and using Fusebox affects his impression of it.
One would hope that through his learning of FB4 in preparation for his talk, he’d see the benefits of using it. But it’s bizarre to have a long-term detractor present on this topic. It’s like a fox in the henhouse. If I were an attendee, I’d want someone who’s knowledgeable and *enthusiastic* about the topic. I’d look for other options on how to spend my time during this session.
Dude, I’m totally going to trash FB. Just kidding. I’m glad you seem to have a high opinion of me based on past presentations you’ve seen me give. Michael did ask me some time ago to give the intro session - and I thought it was a neat idea. As for whether or not I’m the right guy to give it - why not? I am a very experienced instructor as well as presentor, and as you say, I do bring something different to the table. My intent for this preso is to give a good overview of the framework and its strengths as I see them. I will offer a disclaimer at the begining to let everyone not familiar with my welll-vocalized opinion of FB aware of FB and my sordid history. I’ve never said FB is completely evil, but I certainly have said time and time again that you don’t need them. FB does have benefits and my preso will focus on those, but the more I’ve been learning about it, the more I have a distaste for it. I should qualify that by stating that the more I learn about it, the more aware I am of some of its benefits as well. It’s going to be an interesting conference for me
By the way - I’m glad some people disagree with me - I’d be worried if they didn’t. Of course, I generally chalk that up to the possibility that they’ve never been shown a better way. This is, of course, a silly generalization and hypothesis to make, but that’s OK. I welcome anyone who thinks they can convince me that FB or frameworks in general aren’t as flawed an approach to development as I claim to show me the light or even to show me a sample application that makes me realize I’ve been over judgemental. I do love finding out that I’m wrong.
Thanks for chiming in on this guys. Glad to see I am not nuts for thinking it odd.
And I have no doubt Simon will bring some interesting information to the table. I am considering dropping in to see how it goes.
My thoughts on frameworks are mixed. I think that when you are getting started doing CF you need them to help organize your code. The problem is that by the time most developers are building apps large enough to feel the disorganization pressure, they tend to then have enough experience to know how to do it better.
So depending on the tools at hand you can get away withought using frameworks, but I dont think its a great idea. I like the stucture that they bring to a team. That is not to say with some work and documentation you cant build that within your own organization, but most of that is already available if you are looking at an existing framework.
For most of us, we have done enough development to be able to forsee most of the pitfalls before we are hanging off the cliff. But for new comers to the language having a framework which is built upon the experience of hundreds of developers is a very valuable asset.
Although this being a frameworks conference this year I would have like to seen a presentation by Simon on the "Non-Framework framework" of development. Because given time I think its impossible for your applications to not build many similairities among each other.
Wow that got long.
To address Ray’s comment - have you ever seen me present? You could accuse me of a lot of things, but when it comes to presenting, not being enthusiatic isn’t one of them
Simon is presenting on his "non-framework framework":
http://www.cfconf.org/fusebox2005/topics.cfm#223
As for a fox in the henhouse, think back to my early involvement in the Fusebox community: I was a vociferous naysayer of Fusebox 3, I didn’t hate Fusebox 4 but still wasn’t convinced. It took quite a bit of exposure to Fusebox to convince me it was useful. It took even longer to convince me FuseDocs were useful…
I actually think that having a "non-zealot" present an introduction to Fusebox will be very interesting because it will be more balanced than the usual introductions. One of my main complaints about the Fusebox community back in the day was the zealous evangelism surrounding the framework. That’s receded quite a bit now (thankfully) and even Hal points out that the controller-framework part of the MVC equation is the smallest and, in many ways, least important.
I do disagree with Simon about the value of public, standard frameworks on a key issue tho’ - the standardization of the code organization and the availability of books and a solid community make it much easier for a broader variety of developers to take code written using that framework and work with it. That benefit - maintainability by a varied team over time - should never be underestimated!
Thanks for your comments Sean. I am glad to see we are in agreement on these things.
I like fusebox because it fits the skills of most of the developers I work with. In a team environment it allows you to easily seperate the peices into chucks that can easily be assigned to individuals.
However i will also state that fusebox is not the only framework I use. I think its important to choose a framework that fits the need of your project and your developers.
Often times I am working at building dynamic sites for designers. One of the things they like most is that although I supply them with great tools for thier clients, they know that if I got hit by a truck there are a pool of developers that can walk in and pick up a project. In a very short time the new developers can be up and running because we follow guidlines that are common.
Anyway, thats enough of that. And I am still interested to see how Simon presents what he finds about fusebox. I am curious to see how it comes out. Especially since (as he says above) he has more "distaste" for it as he learns more
Yes indeed, Simon, I have seen you present. So far, you have been enthusiatic, knowledgeable and entertaining.
And yes, Sean I remember when you weren’t so gung-ho about FB. I’m very glad that you are such a proponent of FB (and frameworks in general) now. You are a veritable font of knowledge, and we’re all better off for it. Seriously. I could not agree more with your comment about maintainability. I see that as *the most important benefit*, period.
Simon, maybe I’m afraid of you *enthusiastically boo-hooing* frameworks. I dunno. I don’t think you should have to swear allegiance to FB in order to talk about it. But if I’m paying for that conference and I’m there at that particular session (as a novice or next step up) trying to learn what I can about Fusebox to help me along, I’d rather have someone up there who’s a proponent of the thing.
There should be room at the conf to talk about the relative merits or drawbacks to any or all of the frameworks, and that’s definitely a session I’d attend. But, (just expressing my own opinion here) I’d rather a proponent of frameworks present this particular session. Off my soapbox, now.
Sean said it best, "maintainability by a varied team over time". This is the single largest, and most valuable feature of a framework. I am currently working in a job where fusbox knowledge gave me a leg up in being able to do my job immediately after being hired. Had my company used homegrown techniques for software development it would have taken more time, or tons of great documentation to get me rocking and rolling in this new environment.
Frameworks are not "needed" by programmers (though they’re helpful), frameworks are needed by organizations who’s staff of programmers changes over time.
One of the ingredients, and in my opinion a key ingredient, to being a good instructor/presenter, is to have, shall we say, a passion, for what it is you are intructing/presenting.
I have sat through too many lectures/classes/presentations where it was obvious that the person in the front of the room either didn’t know the material, didn’t seem to care about it, or worse, disagreed with it.
It seems to me Simon might fall into the last category when it comes to presenting ‘Introduction to Fusebox’. While I think it is a great idea to have a nay-sayer give a presentation, I don’t think it should be the ‘Introduction to…’
To put it to extremes, its like a Rabbi giving a presentation entitled ‘Introduction to Catholicism’.
To the extent that any half-decent framework is a pattern (of sorts), it typically brings organisation, predictability, coherence, clarity and extensible structures. It enables a separation of concerns with a broadly agreed upon and battle-tested mechanism for coordinating those separated concerns. It keeps developers ‘on course’ and reduces the tendency to change methodology and development strategy mid-project. Moreover, the development community surrounding a given framework carries a shared body of knowledge regarding how best to deal with many commonly-encountered problems, with tried and trusted strategies for solving them within the context of the framework concerned.
The developers I have met who have attempted sizeable projects without using a ‘public’ framework have just ended up developing their own - and you can imagine how good these typically are (I have to count myself among their number). I have never seen a personal or development-shop in-house framework that comes close in coherency, extensibility and flexibility to FB, or MG or Mach-II (although their creators always seem to think that they are imbued with these virtues).
I have come to the view that anyone who encourages developers to undertake sizeable projects or else to engage in team-based development without using a tried and trusted framework, is a candidate for a ‘Do Not Hire’ list.
Sean, I think the FB3 zealouts you mentioned were really framework zealouts. There were only a couple of frameworks for CF in circulation at the time, and FB3 was the first one that had a shot at widespread adoption.
I think it’s good that Simon is still nay-saying frameworks in general. It gives us a chance to reflect — as you did — on why we use frameworks. It’s not that FB or Mach-II or MG is better than whatever Simon is doing. It’s the fact that we can more easily exchange information.
Framework X may have quirks and limitations that make it less than ideal for a particular application. But by drawing on the resources of the community, I can learn to be especially proficient at Framework X, and that will more than make up for the difference.
In addition, I could walk in front a bus and trust that the next programmer will be able continue my work. Knowledge of the basic structure of the application is not only in my head or documenation I may have written. It’s also out in the community, in abundance. The same knowledge that helped me build the application is available to the next guy.
I want to address 2 recurring satements/assumptions. The first is regarding me "boo-hooing" FB. Believe me, I wouldn’t dare put down FB in an intro to FB session. The point of the session is to give an introduction to the framework and I’ll do just that. I never lie when I present, so you’re certainly not going to hear me on stage telling everyone that I think there’s anything wrong with not using FB either. In an intro to FB session it’s really an off topic subject, and I wouldn’t bring it up. I’ll most likely point out my personal concerns in the session, while I’m pointing out the strengths and intro to how to use it. The second thing I want to address is this recurring statement that code is easier to maintain when it’s in a framework. I assure you all - when I develop an application using my methodology, it’s ridiculously easy to maintain by anyone who knows CF. In fact, maintainence is always my number 1 priority and my pet peeve when it comes to architecture and coding. Granted, I’m not the tyical developer - I don’t suggest that the average developer just do whatever when they build apps. People who are novice programmers do need guidance if what they build is going to be maintainable - and that guidance can come in the form of a framework. If anyone thinks that I don’t believe that frameworks have some strengths or noble intentions, they’re wrong. That said, I’ve worked on several projects where the framework in place got in the way much more than I would consider acceptable. I’ve also never met anyone who thought that my methodology of development results in code that’s more difficult to maintain than code implemented in a framework… in fact it’s always been the opposite. I promised my employer that if, after really learning MACHH II, Model Glue, and Fusebox, I still felt that none of them offered all of the advantages that my methodology brings to the table, I would openly publish my code and ideas. So far I still feel this way and I plan to do just that (document and release my methodology) sometime after MAX. You should note that I refer to my method of development as a "methodology" not a "framework". There are some suggested core files but mostly it’s practices. Perhaps this very fact sheds some light on why I feel the way I do - I believe that what developers need is common methodology, not frameworks. Frameworks can get in the way where as this should never be the case with a good methodology. Architecture and development for me is all about the approach, not the environment.
I posted this over in Simon’s blog, but its probably better posted here:
A documented ( and consistently implemented ) methodology will offer the same maintainability benefits that a framework offers.
Simon touched in the difference between a methodology and a framework, and I don’t feel the need to elaborate.
This is not a debate over whether Frameworks are good or bad.
The question raised was, is a person a good choice to give a ‘Inttoduction to…’ type lecture when they in fact don’t use or even agree with what is being presented?
My opinion, no.
Once agiain, its akin to a rabbi giving a lecture titled ‘Introduction to Catholicism".
Can it be done? Yes.
Would it be informative? Most likely
Is a rabbi the best choice for an ‘Introduction to Catholicism’ lecture? No.
Jeff said "A documented ( and consistently implemented ) methodology will offer the same maintainability benefits that a framework offers." Not, in my opinion, if other developers/future developers/new developers who aren’t familiar with the "home-brewed methodology" have to come in and maintain it. Now they have to learn not only how the app itself is supposed to work but how and why it was built the way it was.
I use Fusebox exclusively on my job but have used various other frameworks like Mach-II and Model-Glue and has always been strong proponent of standards and patterns. In this particular instance I would agree with Scott that if someone is going to giving an introductory lecture on a framework, that person should have a passion for that technology. It is almost like a J2EE expert who has been quite vocal about his/her dislike about .NET and he/she has been asked to present in a Microsoft seminar about .NET introduction. Personally I think that introducing sessions are particularly a marketing technique for any language/framework and must be carried out by someone who is zealous about that particular technology. Just my 0.02 cents.
what I was trying to explain, Scott, is that I will whole-heartedly agree with everything I present. I also think that a rabbi that just completed the requirements to call himself a catholic would be a terriffic choice of presenter on the subject. Why would I want to hear the pope talk about how great catholocism is? That’s an extremely biased voice. I’d love to listen to the pope’s thoughs on other religions, though. This is a little off-topic. Bottom line here - Michael thought I’d be a great person to give the presentation, and for better or worse I said I would. Personally, I think it’s a great idea. You don’t have to worry or even waste time thinking about what I may or may not say or feel. I’ve most likely given more presentations than any other person in the CF Community (aside from Ben Forta - and that’s his full time job). I’m also a Macromedia Certified Master Instructor. What these tqo things mean is that I could give a terrific, enthusiastic presentation on goat herding if I were asked to (that hasn’t happened yet, though). You might be surprised to learn that I’ve spoken at Microsoft conferences as well, and I’m certainly no advocate of theirs, either. Trust me, the session will be informative and good.
Simon - I think you may misunderstand my point. I agree, that in order for one to make an informed decison, on anything (from religion to framewrok use/choice) they must know as much about every facet of the, for lack of a better word, ‘debate’.
I have said it before, and I will say it again, I would love to see a Frameworks vs no-frameworks discussion.
I am sure everyone is aware of your qualifications as an instrutor, as well as your positon in the CF community. I have never questioned your ability to present the material in an un-biased way.
For what seems like a ‘beginner’ level preso, it might be better to have someone active in the Fusebox community, or at the very lest, ambivalent about Fusebox, give an ‘Introduction’.
Brian:
I did say a documented methodology, not a home brewed methodology. Give the developer time to read the documentation on the methodology and I’m sure it won’t be a problem.
I’ve never come across a situation where a competant programmer couldn’t sit down at structured / documented code and figure out what was going on.
Simeon mentioned earlier that frameworks are a good way to help newbie CF developers have good coding practices. I agree, if they have never coded before. But what if they already know PHP/Delphi/C++. Do they need to learn FB so they can code well? I don’t think so. And what about the old school CF developers? I started with CF4, and I feel my ‘methodology’ is as good as the next guys. I don’t see the need to learn FB so that I can be happy about my code.
And if I did learn FB, what if my next job had code built with MG? And then my next job used Mach x? And then OnTap? Where does it stop? Are we talking about standards here, or religions? Who has the authority of God?
Jeff, I never said that a competent programmer couldn’t sit down with documentation for a home-brewed methodlogy (because whether it is documented or not, an internally created and used methodlogy is a home brewed methodology as opposed to a publically available standard) and figure out what is going on. I’m just asserting that it will take longer (and thus be comparitavely less maintainable, since time is an aspect of maintainability) than if you built it using a public, standard framework and you draw from the large pool of developers who already know that framework.
Further, whatever documentation that was created for the internal methodology will not match the massive depth of information available regarding the public frameworks in terms of books, web sites, sample apps, mail lists, and discussion forums.
Reviewing my original post, I want to specify that I never said "private" nor "home-brewed". I only said documented. Still, I think that learning the methodology is negligible in the scheme of things.
You didn’t say private or home brewed directly, but when you’re talking about an internally created methodology I don’t see how it could not be correctly labeled private/home brewed/internal. If it is not public (as in a public standard such as Fusebox or Mach-II) then by definition it must be private/internal. I’m not sure if you’re trying to dispute this fact or if you’re nitpicking the semantics.
It seems to me that the focus is on the wrong thing. Whatever label you place on it (since it surely cannot be called public), the real point of contention is whether using a public standard is better or worse than using an internal standard. My opinion is that the public one is better in the majority of cases, for a multitude of reasons that have already been laid out in these comments and many other places.
I do look forward to seeing Simon’s published methodology when he releases it. Once it’s public it stands to reap many advantages in terms of community and common solutions to recurring problems when using that methodology. If it’s good (and I’m sure it will be, no one is disputing the fact that Simon, nor you for that matter, are very smart people) I will certainly add it to my set of development options.
Yacoubean said "And if I did learn FB, what if my next job had code built with MG? And then my next job used Mach x? And then OnTap? Where does it stop?" It doesn’t stop. The difference is when you have a question or a problem with Fusebox you can easily and quickly contact thousands of other people who are intimately familiar with it.
Yacoubean - and what if your next employer had their own methodology.
And then the one after that, another different methodology.
And then the one…oh, you can see where I am going with this.
Macromedia’s Web Team adopted Mach II so that they had a single, standardized way to build web applications. Before that, every application pretty much had a different style internally. A few were vaguely MVC (although there were some radically different implementations of MVC!).
When I formed the Web Technology Group (that’s essentially the engineering portion of the Web Team), we looked at various methodologies and frameworks but back in 2001 there really weren’t as many choices and several of the engineers didn’t like Fusebox (we actually built some prototypes with Fusebox 3 before deciding not to use it).
It took time to develop the CFMX Coding Guidelines and that helped a bit in terms of having applications worked on by different engineers but it wasn’t sufficient. Could we have developed our own framework and/or methodology? Yes. By the time it became a ‘critical mass’ issue, Mach II was at 1.0.4 and we wanted an OO framework (or at least we wanted to use OO with a framework).
Perhaps if Fusebox 4.1 had been available back then (2003), we’d have gone that way. Or perhaps Model-Glue (again, if it had been available).
The point was that with a large team of engineers split across time zones and continents we needed a public, standard framework in order to ease maintenance and communication and to provide common structure across our applications.
We keep the core files under CVS but never modify them ourselves (we take code drops from the Mach II crew as each release approaches to help with QA and to keep our applications current).
The discipline of a standard is very, very important.
Yes, sometimes that mean you "bump into corners" with the framework - the benefits outweigh the inconveniences, believe me!
Brian, I feel that we’re going in circles here. I’ll agree an internal methodology can be called "private" or "home-brewed". But, I never spoke about an internal methodology (correct me if I’m wrong) only a ‘documented’ one.
I stand by what I originally said; I never imagined it would cause controversy. A competant developer won’t have problem coming up to speed on a documented methodology (whether that methodology be public or private).
A few other thoughts, perhaps on a tangent:
Simon has given talks and classes on his methodology. Is it still considered private?
Fusebox did not have any public documentation, other than a core file download (that appears to have changed since I last visited the site). You had to buy the books. Is that considered public?
I’ve often heard people say they use a "modified version of fusebox". I would think that using a modified version of a ‘public’ framework would defeat the purpose of using a public framework in the first place.
J
Then I’d say that what I’m talking about is a "publically documented" methodology vs. an "internally documented" methodology. I maintain that the former is preferrable to the latter. A competent developer surely can come up to speed on how an internally documented methodology works. But not as quickly as a developer familiar with a public methodology can come up to speed with an application that uses that methodology. Further, the initial "ramp up" time advantage is only a small reason that I think a public methodology is better.
Fusebox has always had publically available documentation, so you’re mistaken there. Yes there are books and training that go into greater detail but the core use of the framework has always been freely available. In addition, there have always been numerous free sample applications, tutorials, and other material available.
And I agree with you on the last point, yes, using a "modified version of Fusebox" does defeat most of the reason for using a public framework.
Hehe… these are fun. Debate, frustration, even outright anger is all good if you can grab a brew together afterward anyway, right?
So… as far as Simon giving the Intro to Fusebox, I’m sure he’ll do a decent job. I’m sure he’ll be fair as he sees fair, and people will be informed.
On the FLiP side, though (s’cuse the pun), for someone trying to get their boss to pay for a plane ticket, 4 nights in a hotel, and a conference pass plus food so they can go to a conference where the intro session is presented by someone who had to learn the framework just to do the presentation it just looks bad. We forget that these conferences aren’t our playgrounds; we get jaded to the numbers of hungry attendees who come to have fuller lives and better pay. To have someone who’s known for ridiculing the idea of a framework presenting what could be a key presentation just isn’t the greatest form.
Simon, I’m not picking on you… I respect your knowledge and skill very much. All I’m saying is that as someone who might have to approve funding for attendees it potentially decreases the value of the con. Someone who is a strong adherent of the topic is going to be able to present nuances and details that could make or break a newbie in their professional life whereas someone who just learned it for the sake of the presentation is going to have less experience. This isn’t a "To Framework or Not To Framework" session… it’s "This is one hour to get you working with Fusebox."
If nothing else, the results will prove or disprove the questions… if people come away going "YES! I can use this now!" then you’ll have been effective. It’s the difference between an op-ed and a how-to. You’re teaching a how-to here and I think people are concerned that op-ed will spill over and lessen the effectiveness of the presentation. Again, because people need to leave this presentation going "YES! I get it! XFAs and pre- and post-fuseactions and Fusebox 4.1 XML vocabulary and this is how, when, and where I should use what! Now I know what a global pre-fuseaction is. Now I know how to use content variables and layout circuits. I know where to use multiple model or view circuits and how to lay them out in my app’s directory structure."
Those are the things people would come to an "Intro to Fusebox" session for… and injecting "framework vs. methodology" or personal feelings on either just confuses the issue. And, incidentally, I’m not saying you’ll do a bad job by any means! I’m just saying that to the observer it looks very strange and causes some concern. I really DO look forward to hearing how it works out.
I find the idea very interesting and I’m curious to see just what angle you take on the subject. If I make it (which I may or may not… it’s iffy at this point) I may even sit in!
Laterz,
J
Simon assured me that he would give a good intro to Fusebox talk when I asked him to give this talk two months ago. He has always been very dedicated and professional in *all* the other talks I have seen him give (probably about 50 by now - and some on subjects like Flex that he didn’t know a few days prior) . I think the fact that he is coming fresh to the topic can be a positive. And it is only a one hour overview of what Fusebox does, not an advanced talk on Fusebox or the core files. I do understand the concerns that you and others have and I will keep an eye on how it goes.