|
|
|
|
|
by nickpsecurity
3363 days ago
|
|
"Getting software right is important. I estimate that about 9 out of 10 people getting paid to write software today shouldn't be. You do realize that today, in 2017, most of the needful software has already been written don't you? Think about it." I'm curious if you've read the Richard Gabriel essays. Certainly the two of us have seen something like engineering of software. Anyone looking has seen high-quality software. Yet, most software isn't written with that goal in mind. It's about taking markets, politics, squeezing more money out of existing customers, scratching an itch, etc. It shouldn't surprise you that almost no high-quality software comes out of such abysmal demand for it. After a while, it shouldn't even bother you since it's pointless to worry about what most will do to quality for reasons aside from quality. The best we can do is convince people who might give a shit, companies that might differentiate on better things, governments that might regulate to a baseline of methods that work, and so on. Plus advocate voting with our wallets for "The Correct Thing." Best advice I can give you after way too much time doing the opposite. ;) |
|
My argument here rests on the idea that we are late in the game of software development. Most of the software we need has been written already. What we are doing now is a thundering herd attack on the global mind-space of algorithms+data. (How many chat apps? how many serialization formats, etc.)
I am kind of off in the corner. For example, I don't see Rust lang as cool and innovative, to me it looks like a tarpit.
There is a better way.™ ;-)
Over in the "The Power of Prolog" thread https://news.ycombinator.com/item?id=14045987 there are posted three solutions to teh Zebra Puzzle. There's one in Ruby all bloody minded, one in python even longer and more bloody minded. Then there's the one in prolog I wrote after reading the docs for half the day instead of working. (D'oh! Hi boss.) The Prolog version is less than a page of code and half of that is direct translations of the puzzle hints to CLP constraints (the other half just sets up the variables and such.)
The other two aren't bad because they weren't written in Prolog. They're bad because they both would be better off implementing the resolution algorithm (i.e. mini-kanren) and then using that to solve the puzzle. It still would have been shorter and easier and faster.
Now, why didn't they know that? That's the essence of my concern.
The prolog solution is much shorter, returns the solution instantly, and I'll wager it took me much less time to type it in once I had figured out how to translate the puzzle into CLP(FD) style. Am I the 10x programmer? No. I think what I (and others) do is learnable. I've maintained for years that anyone who can solve a sudoku puzzle has the intelligence to learn to program. In fact, I've just realized that anyone who solves Sudoku puzzles already knows the resolution algorithm, that's what their mind is doing to figure out the puzzle.
So most people can be taught Prolog. The machines are vast and fast enough now. Why is everybody so keen on cracking out code, to make a buck or scratch whatever itch, but not on doing it better using tools and techniques that are hella old!? Is humanity really so perverse? ;-)
(P.S. I'm still working on replying to your kind and excellent email.)