Frameworks and sucking
I went up to the City today to hear Terry Chay, a college classmate (hallmate? housemate? what do you call the person who lived across the hall from you in college?) speak at a local PHP meetup. The two of us ran into each other a few years ago at the first public Yahoo Hackday, where Terry completely didn't recognize me ("Hey, to be fair, you used to have long curly hair and glasses." Well, to be completely fair, it was BIG curly hair, and yeah, glasses). A few times other here and there, but, really, a classmate working in the same area as I am? One who doesn't intimidate the crap out of me? Yeah, totally going to go listen to him speak.
So, Caltrained up, wondered if this was going to be a long walk to from the station (it wasn't), walked to the meeting location, wandered into the room, wished I hadn't arrived so early, dropped my stuff down, and waited. I started talking a bit with a couple of the people around me, which actually made for interesting conversations.
One guy was there to learn about frameworks (Terry's talk being "Making Frameworks Suck Less"), because he was getting ready to write his own. I briefly tried to discourage him, suggested the recently out book "PHP5 CMS Framework Development" might be worth checking out, though I hadn't read it yet. He was in a stable job, working for a local university, and comfortable where he was.
Another guy was just getting started on a new company. He had left his previous job a few months before, enjoying the time off, and working on his own projects. After determining he was literally just getting started, I recommended he use CalGold, a website geared to making starting companies in California straightforward by listing all the permits you'll need, and where to go to get them.
What made the conversations interesting to me was that both of these guys were at different ends of the work spectrum. The one guy was in a stable job, not really interested in taking risks, but curious about what it's like to have your own company. The other guy was jumping, taking the biggest risk of all to start his own company without a safety net (hi Kris!), but didn't know where to start really. And I happened to have answers for both of them.
I'm not sure they liked my answers (owning a business is hard, never not stressful, and good lord, do you learn a lot by doing it. I told the two of them about how client work is probably the most stressful work, because you're always doing something different, and never 100% sure you're doing it right. However, if you have a short attention span, this kind of work is perfect, since you'll be doing different projects every time.
I did notice early on, though, that Terry was actually cramming for his talk when the first two speakers gave talked. He had given the talk (at least?) once before, and was listening to his talk, taking notes and generating this talk's notes from that talk.
I approve.
Terry's talk was interesting, but didn't flow as his previous talks I had seen him give flowed. He explained the talk was a new talk for him, and he didn't know the exctly place to put his curse words, but that he hoped he had enough of them to keep us entertained. He did start his presentation this evening by requesting that people listening talk about his presentation, agreeing and disagreeing, summarizing and expounding, commenting and criticizing as appropriate. He seemed particularly interested in hearing ay disagreements, as in conflict is where you learn and grow.
Of course, he didn't use so many words to encourage the negative part. He was much more succinct on that part. In particular, he said, "You can even post
'That Terry is just such a fuck job'
... if you want." Not that I agree with it, but if that's what he wanted posted, well, okay, there you go.
The central premise of the talk is that frameworks make choices for the developer by removing options, and, at some point, the developer isn't going to like those the choices made.
Problems with the framework usually happen when the application is big (big big big), or the developer wants to do do something outside the typical uses of the framework. Usually solutions to such problems include modifying the framework (making upgrades difficult or impossible) or (my favorite) extending the framework.
I don't know, seems to me like frameworks are quite similar to life: you make your choices, and have your experiences, and as a result, you're constrained by the results. At some point, you need to move beyond the limits you've placed on yourself, or extend them, in order to get done what you need to do.
I left immediately at the end of the talk, as I'm still on East Coast time, and 10PM is not only past my bedtime, but when I turn into Miss Cranky Pants. I managed to make it to the train in record time and pass out in an unoccupied seat. Surprisingly, I did wake up a station before Mountain View, so I didn't sleep through my exit. Yay!