Fog Creek Software
Discussion Board




What program would you write...

What program would you write if you weren't writing code for "the man"?  I.e. let's say you receive your current salary as a stipend for the next five years and you can work on any coding project you want... what would it be?

I'd make a program for recreational fisherman that let them input their catches as a history log and made predictions based on tide/moon/temps and previous catches of where to fish on any given day.  Maybe you could link it to other fisherman who gave you access and then you would both benefit from each other's data.  It would have a big map of where you go fishing and the hot spots would show up on the ocean...

Michael H. Pryor
Thursday, March 28, 2002

I would write a program that would allow other people to give me ideas on the next product I release.

Mr. Orange
Thursday, March 28, 2002

Writing an internet version of the old multiplayer game M.U.L.E.

Wouldn't mind contributing to Herbivore, either.

Matt Conrad
Thursday, March 28, 2002

I'd write something dealing with astronomy.  Don't know exactly what.  In college I interned with NASA.  Had a facination with space ever since.

Brandon Knowle
Thursday, March 28, 2002

An in dash automobile OS.  It would do things like hands free operation, music, GPS, maps, email, and super techy things like infrared or radar visual enhancement.

Richard Caetano
Thursday, March 28, 2002

I don't like to code alone. Maybe I will do something open-source. Or I would find some more guys like me and write something great.

Automated refactoring tool would be great.

Roman Eremin
Friday, March 29, 2002

<pun_inteneded>

1. Bug Tracking software.
2. Content management software.

</pun_inteneded>

Prakash S
Friday, March 29, 2002

I would write a book along the lines of this one:

http://www.ibiblio.org/Dave/Dr-Fun/df200002/df20000210.jpg

Which would certainly entail some programming :-)

James Wann
Friday, March 29, 2002

Writing an RTOS or a compiler would be the ultimate kind of projects to work on, but so much has been done already that it would be difficult to come up with something new and interesting.

Having an interest in amateur radio / electronics I might work on some CAD/EDA software (schematic capture, circuit simulation, etc..).  There is some open source / freeware available, but I think there may be possibilities for more interesting work there.  I haven't yet tried what's available.

mackinac
Friday, March 29, 2002

my current hobby project is a half-assed Scheme interpreter.  :)

Banana Fred
Friday, March 29, 2002

"Writing an internet version of the old multiplayer game M.U.L.E."

I would play that game. :)

David Fischer
Friday, March 29, 2002

If I were only mildly ambitious, I'd write a program to manage notes. Sort of like InfoSelect ( http://www.miclog.com ) but more polished and flexible.

If a bit more ambitious, I'd grow that into a word processor that understands that when one works on a project, one has lots of bits and pieces that don't line up as a  paginated, printable document. Old drafts, notes from colleagues, to do lists, paragraphs that were cut because they didn't fit but shouldn't be deleted but don't really fit anywhere yet.... -- all this needs to be organized into one project file.

If I were really ambitious, I'd write a smart email program. One that understands that a message coming in and a reply going out are part of one object, not two objects in different folders. One that knows that a message that I sent that needs a reply is different than one that is a done deal. One that will remind me when a message for which I expect  a reply within 2 days hasn't received a reply in two days. One that knows that deleting spam is different than deleting other messages (I might want to undelete other messages in the future). One that lets me send an email to myself for a future date as a reminder system. One that helps me organize my life, not just keep a stack of in and out messages.

Harvey Motulsky
Friday, March 29, 2002

I'd like to develop "Code 9". If "Code 0" is machine code, "Code 1" is assembler, "Code 2" is C or Pascal or whatever, then "Code 9" would be the ninth level of abstraction above machine code, where the user just imagines the application they want and Code 9 creates it for them.

Rick Downer
Friday, March 29, 2002

Another interesting idea I had today, similar to "The Brain" software if you've ever used it...

It would be nice to have a database of my life.  To explain: Not just work related info, but every time I make a phone call or send an email, or even receive a letter, it could give me context.

Some examples:  I mailed back an empty toner cartridge to xerox and they are going to send me a $5 coupon.  I'll never remember that coupon unless for some reason next time I go to buy a printer or scanner (i think xerox makes them), if my computer knew about the coupon it could remind me.

Or I just got a big crack in the windshield and had to call the insurance company to make sure they would cover the replacement.  I called them about 2 years ago to do the same on another car.  Would be nice if I had a record of that past event and who I used to do the service (it's neat how they can come to your house and do it while you're still sleeping at 9am).

The big problem with something like this is 1) inputting all the info.  Its up to me to do it.  Basically I could probably do it with a palm app today, but it would take me too long to type every event into the palm and cross reference it and choose keywords, etc, etc.  And 2) privacy.  It would create this giant log of my life which may or may not be a good idea.

Michael H. Pryor
Friday, March 29, 2002

Music software.  Ah, music software.  Probably software to manage huge libraries of small audio files -- basically a database front end that looked like Windows Explorer.  It's all plotted out in my head but I know there's more important things for me to do with my non-work time (like actually make music).  I also know that even though *I* want this program, there's not enough people out there like me to make a viable full-time job out of this idea.  Ah well.

In the meantime, I write a lot of little elisp gadgets for myself.  Which is very satisfying.

Scott Evans
Friday, March 29, 2002

Michael, how about an organizer, cell phone, check printer, handheld, with voice recognition, and an 802.11 access point. You are in the grocery store, it knows which one from the 802.11, you hit the register/total button and it prints a check for you to sign or transfers credit card info. All of the transactions get recorded. It also listens to your phone calls, cross-referenced to the phone book and takes notes for later. It should also play music and help meet women with the same brand of organizer. I would buy that!

Personally, I would like to write CAD/EDA software. I have used it for years, and it is the coolest thing, but never exactly what I want. It should be a framework with modules for anything CAD you want to do. The modules should be written in something easy enough to let anyone extend the program(what, I dunno???). You should be able to draw a schematic, layout the board, see the finished product in 3D with parts, make sure it fits in the case, do a sheet metal front panel, and do all the related simulations in one environment (for everyone on the team), then export the BOM to the manufacturing database. And, it would have an intuitive GUI and easy installation, and be free. Yes, I know it is crazy, but a man has to have a dream.

Another idea I though would be neat is Shape-Commands ™. Basically, you have a toolbox of objects that get dragged onto the desktop (NOT in a special window). Where I would do “find . –name “*.log” | grep ALARM > foo” at a command prompt, with the shapes I would get a find object, grep object and a file object. Each of the objects has a unique and easy to identify color and shape, a little bigger than a desktop icon. The pieces fit together, and build the equivalent to pipes, and redirects. You could do whole scripts using the shapes, and then save them away for later use.

Doug Withau
Friday, March 29, 2002

I Like Michael's database idea, most of the time I don't why a I take particular decision:-) at that particular moment the decision would have been crystal clear, having a databse of sorts would really help.

Prakash S
Friday, March 29, 2002

I am currently writing the software that I want to write,

I got sick of MYOB and Quickbooks and all the other cashflow/accounting systems that are around and finally decided to write one for me, that works exactly like my one man show company expects it to work giving me all the features and things that I expect, plus it also has a "fudge-factor" override that allows me to cook the books any which way I want and still keep the tax man happy.

Finally, I am master of my financial domain with a custom built financial application that I can understand!

Tony
Friday, March 29, 2002

PayPal-enabled store-front builder.

pb
Saturday, March 30, 2002

> I.e. let's say you receive your current salary as a stipend for the next five years and you can work on any coding project you want... what would it be?

If expense were no object, I'd pick a project with unlimited expenses - I'd travel the world buying software from each country, for a start.

Christopher Wells
Saturday, March 30, 2002

A simulation of the human brain in silicon capable of passing the Turing test with ease.  Always wanted a computer who could say to me, "I'm sorry, Dave, I'm afraid I can't do that".

This project might take slightly longer than five years.  In the meantime I'm contemplating writing a bot capable of playing bughouse chess on FICS "intelligently" (communicates with partner, watches the other board, etc).

http://www.freechess.org/WWWhelp/bughouse.html

Alyosha`
Saturday, March 30, 2002

I would learn different programming styles.  Then I would write frameworks that allow me to express anything with the simplest whisper.

Unlike most silver bullets, I don't expect it to be understandable to anyone else.  I think this opacity solves the problem that other efforts have.  It probably wouldn't be very productive for anyone's use but mine, because no compromises would be made for a kinder learning curve, but it should be fairly understandable to anyone who encounters it in sourcecode.

I will accept "industry standards" like XML and whatever p-code people use.  I'm sure some time will be spent modifying the tools when platforms change, which will have the good side effect of decreasing dependencies.

I understand that speed is often gained by writing directly to APIs, therefore these libraries seem too general.  But since I'll have the source, it would be trivial to modify them to take advantage of whatever APIs exist.

----
Also, I would like to write a game that causes the player to question his/her understanding of the universe.  But that's another long post.  I think being too successful at something, including working in the industry, can kill one's imagination.  Sometimes one has to be adrift in the world, knowing nothing at all, but knowing it well.

Roger Hobson
Sunday, March 31, 2002

automatic code generation system, like what a few people here have mentioned.

imagine saying 'profitably sell lingerie online'.

the system checks the definition of terms 'sell', 'lingerie' and 'online', and based on its understanding of it, comes up with a fully functional set of binary code that you can install and run.

for example, when it tries to understand 'sell', it will figure 'to give away something for money'. but the adjective 'profitably' precedes 'sell', so it will modify it to 'to give away something for profit'. 'something' is the template parameter which will be replaced with 'lingerie'. since 'lingerie' is a noun, it will look up concrete examples of it, and in the process build a class hierarchy of concrete lingerie types. it then goes on to find out the costs of each type of lingerie. etc etc etc. you get what i mean...

Rex Guo
Sunday, March 31, 2002

I'd code a document management system that
actually worked well.

It would probably take more than 5 years, though.

Lauren B.
Monday, April 01, 2002

I would write the next generation Smalltalk compiler and environment. Oh, wait a minute, thats what I am doing now in my spare time. :)

If you want to help, let me know.

James Ladd
Monday, April 01, 2002

A winged attack monkey simulator.

But maybe I should start off on normal monkeys and add the wing and attack features in future versions.

JP
Tuesday, April 02, 2002

(1) I'd try to bring Jef Raskin's _Humane Interface_  user interface concepts into a modern and attractive implementation, including all of the basic features that most people use (email, web browsing, photos, simple games).  I have already done a very limited prototype of the same ideas on Windows, including Raskin's LEAP-key navigation.  Basically, I'd start with something like the Cannon Cat info appliance as designed by Jef in the early 80's and give it access to modern hardware and communications protocols.

(2) Chatter-bot software for Turing-type tests.  I might use the MindPixel database to give it a broad (if not too deep) information pool.

mlosh
Tuesday, April 02, 2002

A editor using the interface of Conglomerate [ http://www.conglomerate.org/shots.html ]. An interface that exposes metadata, the logical structure of the document, and acronym tags. I'm really quite sick of CMSs that start off crippling you like a word processor.

Matthew Cruickshank
Tuesday, April 02, 2002

I thought of this during April 2001.  I am an avid Go player and come out with TanGo Go Client http://www.amourtan.com/ .

But, like most Open Source developer, I am still writing code for "the man" and can only devote my spare time to my baby.

Amour Tan
Friday, April 12, 2002

*  Recent Topics

*  Fog Creek Home