The author is on to something. Flash memory devices can emulate disks, but that's an inefficient way to access them, especially for reading. You have all the overhead of Linux system calls and file systems to, basically, read a RAM-like device that's orders of magnitude faster in access time than a rotating device.
The question is, what non-file abstraction should a flash device offer? Slow persistent RAM? A key/value store? An SQL database? Computing has had "RAM" and "disks" as its storage models for so long that those concepts are nailed into software at a very low level.
The NoSQL crowd could probably find uses for devices that implemented big, fast key/value stores.
The problem with NAND flash is that it is not "RAM-like device" even for reads (smallest addressable entity is block even for reads).
It can essentially do three operations: read block, write block, erase bunch of blocks at once. For the purposes of filesystem, this is actually an workable storage interface that does not need any additional abstraction layers.
No: some buses let you write different sized words to the memory controller or RAM chip. For example, picture a bus that's 32 bits wide, but there are control lines that let you specify that you're writing (or reading) 1 byte, 2 bytes, or 4 bytes. During a single byte wide bus cycle you are not sending 4 bytes to the part, even though there are 32 bits connecting to it.
Certainly not everything out there is byte addressable, but neither can one say unequivocally that all RAMs have large atomic word sizes.
The question is, what non-file abstraction should a flash device offer? Slow persistent RAM? A key/value store? An SQL database? Computing has had "RAM" and "disks" as its storage models for so long that those concepts are nailed into software at a very low level.
The NoSQL crowd could probably find uses for devices that implemented big, fast key/value stores.