No idea.


Ha ha. This is funny! Ha Ha!

By far the hardest nut I had to crack was some javascript (bearing in mind I grew up on basic and vb) that was to run clientside for my ASP web application. It was difficult because the user needed to be presented with data in a series of HTML tables, and wanted to 'drag and drop' rows between those tables (the tables represented Delivery vehicles and the rows where parcels to be delivered), getting the data and presenting it in tables was expensive and I did'nt want to post for every 'drag n drop' operation.

Luckily this was an IE only shop so I didn't have to worry about cross-browser stuff. And I discovered in IE you can dynamically set the src attribute of a <script> block to an asp page on the server, this spawns a GET request to the server.

So I created a string of key/value pairs that could be sent in the query string, once you get server side though you have to use JScript in the ASP page instead of VB, but this turned out to be not too bad. I could then do database stuff and at the end generate more javascript that the cient receives in responce to its GET. This tripped another javascript function that - now knowing DB stuff had been successfull - could use the DOM to re-arrange the tables.

And that's how you do distributed Drag n drop in a conectionless environment ! without jamming the network with reams of HTTP traffic.

PS. and no unsightly activeX control to download and install either.

A PROLOG implementation of a machine learning algorithm (PRISM) for a university assignment. The notes on the algorithm had an error in them..oops.

The hardest program I have ever written is the project I just finished (as a requirement from juniors in my high school) - it was for a research project, called "A Novel Approach to Natural Language Programming". I basically made a program that allows you to write English language solutions to a problem, and the computer converts it to working code in a language that I designed myself.

The code I wrote has 50 Java classes, and 5 python classes, along with 3 libraries that I interface with. This goes along with the programming language I wrote myself (haven;t given it a name, haha). That was quite a lot of work (one year), and since this is the first time I wrote so much code, its sort of disorganized (well, highly so). Maybe better organization next time, but I am pleased with what I have. I have attached a screeshot too, you might have to fidget with it a bit to see it right.

my graduate project...
cluster data with GKA(genetic k-means algorithm)

the hardest was this bank program written in cobol...

it took weeks just to finish the layout..

damn missing periods... :sweat:

University project;

Prolog in Java. Was a set of java classes which acted like a mini-prolog machine (keeping state, backtracking etc.) Took prolog source and compiled into Java source, or java bytecode (even did on the fly generation.) Managed to implement around 80% of the standard ISO prolog functions, and even got the compiler to have dynamic operator's, which was a little tricky.

Hardest? Probably the game I made in college. It used a client and a server, a database on the server for storing instant replays which where pushed out after kills (similar to call of duty), and direct 3d. Believe it or not, the hardest part of the whole thing was making the models in Milkshape. I have a serious problem with 3d modelling...

Now I am an actual software developer, and rather than things being hard and interesting they have become boring and time consuming. For example, today I wrote a library to interface with a usb module with a built in digital to analog converter to control some variable speed motors. I hate my life.

For example, today I wrote a library to interface with a usb module with a built in digital to analog converter to control some variable speed motors. I hate my life.

To each their own. That looks far more interesting to me than the game you made in college. ;)

Most of the code I've written doesn't count as a 'program' because I've mostly worked down among the gears and grease, making libraries or writing other utility code. (or testing...).

Some high(low)lights:

  • Commercial grade: hash table, B-tree, and a rewrite of a B-tree-on-disk (simple database). Fun, useful and hard because the classes were sold to hundreds of programmers who (ab)used them in all kinds of interesting ways.
  • A moderately hairy file-storage system based on radix-distribution. Hard because the bottleneck turned out to be the number of i-nodes that were available
  • Wrapping a C++ interface around IBM's free ICU library. Hard because the ICU API kept creeping while we were under development.
  • A mini-language using XML and Java, used to test the behavior of C++ compilers on various OSs. Knowing what I do now, I'd never again use either of those (Java, XML) for a task like that. Hard because we were trying to use a screwdriver as a hammer.

The hardest? Probably the code I wrote that enables you to extend properties and behavior of C++ classes at runtime via specifications and rules, not coding. I got a patent for that. The software is used extensively in the semiconductor, flat-panel display, and disc drive manufacturing domains. It allows a manufacturing execution system to be tailored to the requirements of the customer without needing to write code. All the properties, behaviors, and rules are stored in the database, and loaded into memory when the application servers start up. Mostly, these are persistent object properties as well, so it also extended the classes' persistent attributes in the database (Oracle mostly), so when an object was stored, the new properties would be also.

The hardest program wasn't the hardest because of its complexity although it did involve linked lists within linked lists within linked lists (possibly four levels deep). I wrote it to validate database definition files (text files used to create the hierarchical databases for each of dozens of hyroelectric generating stations, substations and converter stations) for an AGA/SCADA system being developed by Westinghouse circa 1982. The problem was a result of the engineer who had developed the specs. Instead af creating the spec, verifying it, then sending it to me for implementation, he instead sent me a spec which he would then continue rewriting. I had to develop the code while receiving changes up to a dozen times per day.

Fortunately, I developed the application by writing/debugging all of the support routines (list manipulation) first and creating a state machine to handle the rest. Multiple changes were tedious and frustrating but manageable.

As a side note, my predecessor had written an earlier version the used multiple data files as temporary storage whereas mine used in-memory linked lists. Running on an IBM mainframe, a typical run of the old algorithm cost about $24. My code (self-congratulatory pat on the back) cost under $0.25.

Hardest programs for me have NEVER been hard because of technical/coding issues. It's been the interpersonal component every time in a variety of ways (unreasonable timeline, unreasonable spec, people not knowing what they want, people not knowing what was possible and just saying "get it done" without defining "it" or "done" properly, etcetera, etcetera. My view is that when all the PEOPLE are on board and on the SAME board and are willing to cooperate, the technical/coding problems can be difficult, but usually surmountable.

Browsing this thread, I don't see any answers similar to mine. I'd be interested in how many other people look back at difficult projects and can pinpoint the main problem as a human problem. Maybe it's just me?

Well, I had a boss (for far too many years) whose idea of a spec was "you've worked for me for long enough that you should know what I want". This is the same boss who said to my face "you're going to get shit no matter what you do". He's the reason I retired when I turned 55. He's also the reason I never regretted it.

This just in. Hawaii's alert system screen revealed. Must be hard to code this one as well.


(Keeping this eternal thread going...)

One of the earliest 'hardest' programs I wrote was a VAX11 assembler in VAX11 assembler. I aced that class becase it did everything exactly as DEC's assembler did except for generating code (I ran out of time).

The hardest programs I've written are, in essence, code generators. Such as a perl CGI script that generates HTML and JavaScript which in turn generates JS code and data for itself and generates perl data to be sent back to the server and used as input to tc (Linux Traffic Control). Simultaneously writing bash, perl, HTML, and JS on two separate and different platforms with non-persistent data.