Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

>This was the age of the algorithm. [...] When it comes to algorithm implementation, developers are now spoilt for choice; why waste time implementing the ‘low’ level stuff when there were plenty of other problems waiting to be implemented. Algorithms are now like the bolts in a bridge: very important, but nobody talks about them. Today developers talk about story points, features, business logic, etc. [...] Today, we are in the age of the ecosystem.

The blog author doesn't make it explicit but his usage of "algorithm" is actually about "low-level algorithms" which is how it seems to support his claim that "algorithms are now commodities".

But "algorithms" in the general sense are not commodities. It's just that we're now free to concentrate on higher-level problems with new algorithms.

E.g., in the 1980s & 1990s, the Barnes & Noble section for computers would have books with algorithms showing how to write disk-based B-trees from scratch. But now with SQLite library in wide usage, you can just use their B-trees instead of reinventing your own. Some more examples of low-level algorithms I used to write by hand:

- manually uppercase chars by adding "32" to the ASCII code because there was no Upper() function in a standard library.

- manually titlecase/propercase/lowercase a person's name from "JOHN DOE" to "John Doe" by looping the the string char-by-char and subtracting "32" from the ASCII code if it doesn't follows a space char because there was no TitleCase() function

- adding a drop shadow beneath a window because the operating system GUI didn't render shadows for you

- manually writing link lists to create dynamic size memory buffers because there was no C++ STL library yet or built-in associative arrays in Python/C#

I don't do have to do any of that low-level tedious work anymore but I still write new algorithms because there is always some [missing functionality] where a standard library doesn't exist or a consensus implementation hasn't yet "won" in the marketplace of ideas. It could be distributed cloud/desk/mobile data sync algorithm, or collaborative recommendation algorithm, etc. Algorithms (general sense) will not be commoditized for decades -- if ever.



I have a feeling you might enjoy this code: https://github.com/zbraniecki/tinystr/blob/master/src/tinyst...

I wrote this because I wanted (normalizing) locale comparisons to be super fast, as they can be part of the key for cache lookups of text layout. In a language identifier such as "en-Latn-US" the script is in title case.

So this kind of thing still does happen, just at the lowest levels of libraries that provide nice clean abstractions for other people to use.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: