Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Frequently Rediscovered Technologies

DZone's Guide to

Frequently Rediscovered Technologies

Have you ever had to write a program that ended up containing what turned out to be a pre-existing technology? Read on to see what author John Cook has to say about these situations.

· Performance Zone
Free Resource

Evolve your approach to Application Performance Monitoring by adopting five best practices that are outlined and explored in this e-book, brought to you in partnership with BMC.

Greenspun’s Tenth Rule of Programming says:

Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp.

Here I’m going to take seriously a rule that was only not entirely serious. It’s saying three things about Lisp.

  1. It’s a frequently rediscovered technology. There’s something inevitable about it.
  2. It’s not completely widely known. Not everyone knows about it, so they don’t know that they’re reinventing it.
  3. It’s not easy to implement, hence all the poor implementations.

The same could be said of state machines. A number of projects have grown until they contained an ad hoc, informally-specified, bug-ridden, slow implementation of state machines.

What are other ideas like Lisp and state machines that are frequently and poorly reinvented?

Evolve your approach to Application Performance Monitoring by adopting five best practices that are outlined and explored in this e-book, brought to you in partnership with BMC.

Topics:
technology ,discovery ,lisp ,fortran ,c ,law

Published at DZone with permission of John Cook, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}