View Single Post
Old 09-25-2007, 04:26 AM   #10 (permalink)
trache
Insane
 
trache's Avatar
 
Was this Rails/PHP comparison the one from Slashdot et al regarding CDBaby?

If so, the article was very light on technical details. Not once did the author of the article expound the reasons /why/ he decided to move back to PHP, except to say:

- Rails didn't do what he thought it could
- He rewrote it in PHP so that it was compact and only what he needed

I have yet to find any articles from Jeremy Kemper, the gentlemen in charge of the main bulk of programming CDBaby. I do not know him in particular, except that I do know that he hacks on the Rails code itself and has contributed a lot to it.

With he being able to speak Rails and Ruby in his sleep, you would think that CDBaby would have been able to launch and perform well under the Rails framework - except that no one really knows the technical details of why the project was scrapped in favour of its ultimate incarnation in PHP.

Now, maybe Jeremy was smart, went above and beyond, and just got tired of having to fix everything to do what he wanted, or maybe the project manager just felt it wasn't working out? Either way, we will never know until some details surface. One comment on Slashdot says:

Quote:

Different first-person perspective
(Score:0)
by Anonymous Coward on Sunday September 23, @12:37PM (#20719943)
(The post below provides insight into the situation. It was posted as a comment to the original blog. Another thing that comes out in the comments is that Derek has some serious issues that likely exacerbated the problems.)

I'm a little reluctant to add to the wasteland that is this post and these comments, but here goes.

I'm familiar with the situation here. The deal was this: Derek was not a programmer; he was a musician. He learned some PHP and cobbled together the old CDBaby site by himself. It was good.

Then, he heard about Rails, and became infatuated with it. He proceeded to attempt a rolling rewrite of CDBaby's frontend and backend both (the backend is large, because of inter-label and digital distribution stuff) in Rails.

At this time, Derek had no experience with the following things:

* any language other than PHP
* systems integration and interoperability
* Rails
* object-orientation
* the MVC pattern
* managing a development team

Project fails. All right. As he has learned in #2, legacy compatibility trumps everything. Also, ship early and often.

As you can see in Derek's post about MySQL encodings, he's not always the clearest thinker. Even above he says that REST means POST-only destruction, which misses the point entirely.

His team was fine (mostly just Jeremy, until another developer was hired in the last months). Rails was fine. But there were a lot of things wrong with the project plan ("rewrite everything, eventually") and with the project leader, who was convinced he had found a silver bullet.

No framework saves you from your own inexperience.

Out.
So who knows? Make your own decision.

At any rate, the thing you have to remember about Rails is that it is a framework. Frameworks are designed to allow programmers to build things quickly using the same background of assets. You've seen thousands of Movable Type, Wordpress, etc diaries, yes? You can think of those as mini-frameworks to build journals. They all look the same because they, in a small part, are frameworks themselves.

Frameworks are rigid. Some frameworks allow a great deal of flexibility, others don't. Rails allows you to override a lot of things, and build plugins from scratch if A) it doesn't allow it or B) the main Rails developers think it's a bad idea to put into the trunk. If it doesn't work the way you like, /contribute to it in some way/.

That being said, I am not a /strong/ programmer, although that is my background. You have to pick the tool that gets your work done efficiently - financially and expeditiously. If Rails works for you, great! If it doesn't, then either contribute to it, or find something else that will work for you.

I don't like PHP. Type "PHP sucks" into Google and you'll see why. Function declaration inconsistencies (think "needle, haystack" vs "haystack, needle") and the fact that OOP paradigm was bolted on as a gross after-thought. And this is coming from someone who got into PHP when PHP3 was /becoming/ the new guy in town. Now, I've never built an enterprise-grade ERP with dozens of table joins, temporary tables, HTML cache problems etc, so take the previous with a grain of salt. The design of the language just grated on me and I've since attempted to learn something different.

I have rebuilt my journal from PHP into Rails. Not having to worry about SQL injection, sessions, writing queries by hand and templating has really sped up the development of this little project. Again, it's nothing enterprise-grade (and I have no idea if it will scale, but it plays nicely so far!), however, it has really impressed me so far.

I would love to see any Rails projects built by anyone here. If anyone wants to trade tips, advice, or whatever, I'd be glad to help. Spill it - what do you like about Rails, hate about Rails (or other frameworks) and what cool things have you built?
__________________
"You looked at me as if I was eating runny eggs in slow motion." - Gord Downie of The Tragically Hip

Last edited by trache; 09-25-2007 at 04:31 AM..
trache is offline  
 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360