Live data from Hacker News

Why must you laugh at my back end?

blog.pud.com

181–190 of 230 posts

Re: Why must you laugh at my back end?

#181
post #154

Earlier quoted context omitted.

I wish more people knew about FreshBooks' rewrite. They had horrible code. And they slowly morphed it into a php-python-ruby mix which is (from my dev friends there) pretty damn good now. It's ok to have a setup or tools that are fucked, but FB would never be able to hold onto developers or iterate quickly on their product if they hadn't sunk at least 9 man-years on the clean up. A million bucks for a slow rewrite is…

You ever played Weiqi? (Otherwise known as Go). Unlike chess, stones don't move once played. They can only be captured. On a 19x19 board, you have to balance short-term gains with long-term gains. Since there are no left-right or top-bottom orientations, you often have to reimagine where you draw the lines of territory as you play. Sometimes, you can kill your shapes by playing too many stones. Better players can see…

For someone who's known of Go but never took the time to learn or play it, that's the best sales pitch for it I've ever heard. Makes it sound like it has the fundamental simplicity of checkers and the strategic complexity of chess. Adding it to my learning list now.

Re: Why must you laugh at my back end?

#182
post #168
post #65

Earlier quoted context omitted.

What I find sad is people making judgements based on twelve year old information. Like most languages CFML has evolved. People writing CFML today use MVC frameworks, use ORM and the cloud. Yes it is still easy for beginners to write bad code, I think that may be more true in ColdFusion than in other languages. But getting started easily can also be a virtue. You might be surprised but a lot of the ColdFusion communit…

Yet the OP mentions the tag, which is exactly the problem. It's mixing of the presentation (view) with a DB call (something that should be in a model and routed through a controller).

No if you write in a CFC... N00bs. btw, that's the standard way; use CFC's for db logic, separate out logic & db functions from presentation

Re: Why must you laugh at my back end?

#183
post #154

Earlier quoted context omitted.

I wish more people knew about FreshBooks' rewrite. They had horrible code. And they slowly morphed it into a php-python-ruby mix which is (from my dev friends there) pretty damn good now. It's ok to have a setup or tools that are fucked, but FB would never be able to hold onto developers or iterate quickly on their product if they hadn't sunk at least 9 man-years on the clean up. A million bucks for a slow rewrite is…

You ever played Weiqi? (Otherwise known as Go). Unlike chess, stones don't move once played. They can only be captured. On a 19x19 board, you have to balance short-term gains with long-term gains. Since there are no left-right or top-bottom orientations, you often have to reimagine where you draw the lines of territory as you play. Sometimes, you can kill your shapes by playing too many stones. Better players can see…

Ah, but in Go there is the concept of good shape - you can play along similar strategic lines with both good and bad shape, but if you play your stones clumsily (write your code in PHP?), you will be vulnerable to many forcing plays and clever tesuji that may transform the position into an unwinnable one. It could happen during the middle game - bad shape may allow a group to be cut in half or have its eye shape pounded out of it - or in the yose, where you may need to make a very large number of moves to defend very few points (long development cycles to add features to a poorly written product?).

Therefore the analogy of Go justifies spending time making good shape with your code as you go along.

Re: Why must you laugh at my back end?

#184
post #9

This is great. Seriously. I cut my teeth in the early 2000s writing the type of PHP code that would make your eyes bleed. Global variables everywhere. HTML/PHP/MySQL in the same file. Career-wise I ended up going down a backend/database developer path, so if I do anything with consumer-facing web applications, it's on my free time. I'm working on such an app now, and right now the fastest way I can get anything done…

I'd really, really, really advise you at least check out a framework :) Spend 10 minutes reading the documentation behind CodeIgniter ( http://codeigniter.com/ ) and you'll see that you can have more time to spend developing, e.g., features, as the framework has taken care of the routine and mundane stuff. As a note, I would recommend Kohana ( http://kohanaframework.org/ ) over CodeIgniter, but if you're pushed for t…

I can't speak for other frameworks, but I definitely second on Kohana, it's light and gets out of your way when you need, yet affords a lot of the newer best practices. If anything, documentation for v3 is lacking, but the forums are somewhat active and the php code isn't actually that complex. Application structure and the idea of overlays on top of system files is an interesting concept and pretty useful.

Re: Why must you laugh at my back end?

#185
post #64
post #55

Earlier quoted context omitted.

Paraphrased: > Some people write crappy code in CFML. Yes. But people write crappy code in [your preferred language] too. There's nothing inherent in CFML that forces people to write bad or hard-to-understand code. > OMG can you believe some people still use TABLES??? view source

I stand by my comment. A few things to note. > Some people write crappy code in CFML. Yes. But people write crappy code in [your preferred language] too. No, I said CFML code is universally hard to understand. Even more so for people already familiar with more popular languages. > OMG can you believe some people still use TABLES??? view source. That example was given to make a point about dated skill sets. I didn't i…

Whats so hard to understand the difference between and ? Everything cold fusion related starts with a If you don't like it, you can also use a tag:

if(noob) { greetings = "Hello Coldfusion N00b"; }

#greetings#

Re: Why must you laugh at my back end?

#186
post #64

Earlier quoted context omitted.

I stand by my comment. A few things to note. > Some people write crappy code in CFML. Yes. But people write crappy code in [your preferred language] too. No, I said CFML code is universally hard to understand. Even more so for people already familiar with more popular languages. > OMG can you believe some people still use TABLES??? view source. That example was given to make a point about dated skill sets. I didn't i…

I read pud's comments as essentially the same thing: he has better things to worry about. However. A lot of the leeway in technology choice you might have as a lone-wolf entrepreneur fly out the window once you grow beyond that. If you have no intention of growing beyond, go nuts. Use whatever makes you happy. If you do want to grow more, then be prepared for a rewrite.

Not if you're the guy cutting the checks.

Re: Why must you laugh at my back end?

#187
post #51

Cold Fusion? No, no... no . > CFML. I really like programming in CFML (a programming language, “ColdFusion Markup Language,” as opposed to ColdFusion, a commercial CFML interpreter made by Adobe). I know it’s not "cool" like Node.js or Clojure or even RoR. Doctors used to bleed people with leeches to get out the "bad humors". They stopped using that "tool" for a reason. It was a bad tool , and better "tools" came alo…

I recently left ColdFusion development and I've never been happier. IT has been my anecdotal experience that ColdFusion is an old man's game. They seem to look on newfangled things like Object Oriented programming with mistrust. This guy thinks it almost ruined his business.[1] The 'younger' guys who get into OO, seem to look at Java and think it's a good idea to have three layers of abstraction between their control…

OOP is poorly implemented by many of the old dudes, partly because Adobe hasn't documented it well. When the defacto standard, Ben Forta barely writes a chapter on it, you know almost no one is listening.

Re: Why must you laugh at my back end?

#188
post #77
post #9

This is great. Seriously. I cut my teeth in the early 2000s writing the type of PHP code that would make your eyes bleed. Global variables everywhere. HTML/PHP/MySQL in the same file. Career-wise I ended up going down a backend/database developer path, so if I do anything with consumer-facing web applications, it's on my free time. I'm working on such an app now, and right now the fastest way I can get anything done…

"I'm working on such an app now, and right now the fastest way I can get anything done is writing similar code to what I wrote in 2003. It's not quite as bad, but I continually succumb to doubt." The biggest objective problem this style has is that it affords everything-injection; cross-site scripting attacks, SQL injection, command injection if you're using shell commands, etc. Every time you bash one string togethe…

What do these things have to do with a framework? PHP's built-in MySQL drivers (MySQLi, PDO, etc) support and encourage prepared statements and parameter binding. PHP's built-in string library supports HTML-encoding output. PHP's built-in filter library supports validating and sanitizing input. Writing apps without some kind of framework might lead to less organized, tighter coupled code, but it doesn't mean you're mashing together strings and ignoring security.

Re: Why must you laugh at my back end?

#189

Earlier quoted context omitted.

nhashem, wow you really hit the nail on the head. So accurate it's scary. I too, thought I was the only one who put DOING before "ramping up and learning some stuff so that I can maybe do some things a few weeks from now." And of course Pud for the courage to be honest about how he's working. So many times in startups and new endeavors, getting things out is far more important than doing it "right". It's stinky, but…

It's interesting to me that you thought you were the only one who put doing before ...learning, for lack of a better word - from what I can tell, the trendy thing at the moment (besides all the trendy technologies) is to spurn design, best practices, and maintainability in favor of doing things in the stinky, realistic, checkbook and bills friendly manner. At least if you're judging solely based on articles and comme…

Really you should only be worried if you're using version 1 apps. I'm a fan of quick prototyping and quick release (in alpha/beta, of course), as long as the team is committed to putting the time in on the back-end. Getting a product out is an important step 1...the real work (and money) is in steps 2-1000.

Re: Why must you laugh at my back end?

#190

I'm not laughing, I run several sites on a similar stack and it all runs very well. I do run Railo though just because it runs circles around the native CF server (and I don't use any of the "high level" stuff Railo doesn't include), and I use mySQL 5.5, but all under Win 2k8 Server. I have dabbled in several other frameworks as well but I simply keep coming back to CF to get things done. Be it personal familiarity o…

Do you blog about Coldfusion at all?
Post reply on HN