Good Idea, Bad Idea

work safe

Blog BattleSEP is currently having a blog battle between some of the employees. This weeks challenge is the title – Good Idea, Bad Idea.

Create your own language! I have had great success creating my own language in the past. I already wrote about it in I’m Using the Wrong Language, so ill just sum up. We were writing test files but the scripting language used by the simulator was general purpose but had problems expressing our scenarios and had zero concept of code reuse. So I wrote a language in Ruby to generate the test scripts from a more declarative language.

It was Awesome! Complicated tests became so much easier to develop and review and had fewer bugs. There was, as the kids say, ROI.

Create your own language! I’m currently playing with Writing Scheme in Haskell. I wouldn’t suggest tackling such a large undertaking ask writing your own language for your project. Now you have multiple languages in your project, you have to handle performance issues, there are untold corner cases to be worked out, it currently has no system interactions, and you have no existing community upon which you can draw for help.

It is still awesome, but there is so much work to do when you create your own language.

The difference? In one, I was able to leverage an existing language to express the fundamental ideas of my domain in a more declarative style. In the second, I am writing an all-singing-all-dancing Turing-complete language that is divorced from the abstractions of a real problem. In short, one is a solution to a problem, the second is a problem looking for a solution.

My main point is simple. The line between a good idea and a bad idea is razor thin and all in the context. An idea may be good in isolation, but bad in situation. Figuring out the difference is what makes this engineering.

No Comments

Leave a Reply

Allowed tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>