With apologies to Kenny Rogers, one critical software development skill is to be willing to fold when a path becomes untenable. A while ago, I was implementing a dialog in a web app. The content of this dialog was user-provided, so it was going to vary in length quite a bit.
Full article