So basically they're paying the winners less than one year's salary for a picker,...
We shouldn't be sentimental about crappy jobs vanishing. It's the way we go and there's no stopping the train. The main question here is how we will transition into a society where entertainment is there to keep the masses sedated and to convince them to consume stuff (like entertainment.)
I'd shed another light. They're paying way less that what it would cost themselves to develop. Picking an item is actually pretty hard. Will they find "one of us" willing to put in the hours and willing to forfeit his IP? There are plenty of bright young people around that just don't realize the scam and perhaps just buy into it.
Too bad that Computer Scientists are a bunch of elitist Haters who only know COBOL from legend.
It's cheap to knock a language with a huge installed base as COBOL, mostly because the syntax and the conventions are slightly awkward for "modern" eyes. (I say modern but the elitist dislike for COBOL I believe started in the 70ies.) COBOL is damn good at solving the kinds of problems it was designed for. I have even seen a shop that had/has a COBOL backend to the web applications it offered/offers.
The problem is that you usually don't know where the the allocated memory is finished.
I understand the rationale behind the pointers like they are, but I'd still prefer if pointers could keep both address and size of the buffer. But it's too late now for such kind of redesign or upgrade.
I understand what you mean. For most projects I do I share your desire to be slightly more casual with memory management. Although I am in the fortunate position to be able to choose a different language (I'm happy to use Java's StringBuilder to append ad infinitum), I cherish the basics I learned when I programmed C. Being able to think in the most basic elements is yet another perspective.
You can't have a string longer than the amount of memory that is reachable by a pointer.
Did you reread what you wrote? A pointer is nothing more or less than a memory address. A string pointer points to the first character in the string and the string can have any length (theoretically.)
Do you mean, perhaps, that you can't have a C string that doesn't fit into memory all at once? Let's assume you do. That would be an academic limitation. I have never ever encountered a string so big. If you have the need to handle such enormous strings then you probably should study streaming (of characters or bytes.)
You don't say. Sounds like this is relatively new to you.
That's a silly tone you'd better ditch buddy.
The former must be very concise
That's complete nonsense. Source code size has nothing to do with object size, let alone suitability of a language for different problem domains. C's conciseness was useful in the 1970s and 80s, where memory used for source code whilst editing and compiling was a significant factor. Nowadays 10s or hundreds of K of source code is irrelevant in GB sized PC memories. The conciseness is worthless.
I give to you that concise was the wrong word to use. However, well abstracted problems result in concise code and object, while at the same time the code remains readable. Beating the optimizer is foolish, but shouldn't be mistaken with well analyzed problems. Simply punching away in order to scratch the itch is a guarantee for revisiting the code unnecessarily.
I believe none of you actually programmed in C. A string terminated by \0 can be represented by a single pointer and an have any length. You can also easily let the string keep growing (until the allocated memory is finished.) That is the epitome of KISS. If you use an 8 byte character at the beginning then you are limited to a string length of 255. A structure with a length and a string pointer (or a character array) is much more complex and that would reflect in more complex library functions.
C was invented by exceptionally bright people. For a language that was primarily designed to program kernels its remarkably versatile. If you are seeking a language to write administrative applications then you should look further. COBOL back in the days or Java nowadays would suit you better. And yes, there is a difference in programming prowess between kernel / library programmers and application programmers. The latter "just" have to get the business logic going and are allowed to use every trick in the book. The former must be very concise and consider that their code will be used by a huge amount of other programs.
You're forgetting that even if you have cached the maps in detail (e.g. by beforehand zooming in to all the parts you really need on your trip) the navigation still doesn't work without being on-line.
After having toyed around with cached Google maps for years, this year I finally got a (2nd hand) car with navigator built in. No more mucking about when crossing country boundaries. Bliss at last.
For my usage (EU, frequent border hopper), Google maps is excellent for planning a trip. Not so much for actual moving between destinations.
Is he an actual scientist? Did he do any scientific research? Did he merit a the title of university professor? Sure, he did make money, but that doesn't automatically mean he should earn a title that few people get after working very hard, usually without extreme luxury or profit.
I've noticed several design suggestions in your code.