5,966 karma · joined May 1, 2008
When I'm wearing the Software Engineer hat, yes, the entire world can fail if a single nit is imperfect. But when we wear the Human Conversing or Persuading hat I expect and indeed enjoy seeing and using a more fuzzy logic. I expect more buffer and assume-I'm-not-an-idiot-kid-please-get-off-my-lawn-been-there-done-that-have-the-tee-shirt-thanks.
Compilers and CPUs are the world's most productive utter idiots. The best engineers adjust their thoughts to see them and emulate them, but sometimes this backfires when they forget to exit that mode.
I basically stopped commenting (well, except now -- doh) here on HN because of how frequently I saw toxic responses and punishment down-voting. There are a noisy subset of users here who either (a) can't understand or respect generalizations, especially based on older/real-life experience, or (b) demand "proof" for any claim, or (c) will punish any kind of not-narrowly-PC statement. And then the blatantly rude. Folks who say something in a comment they'd never dare to say to your face.
Therefore I've given up on caring and now much prefer Reddit's community. Less pinheads there, greater topic variety, greater sense of fun, can collapse threads, can delete comments much later (if you discover one that attracts a hate mob). I still enjoy reading HN, mostly the off-site articles linked to. But not so much the comment threads here. Not anymore.
arguably... Craiglist has led the way, and earlier.
do you want to see ads from dealers? or from private owners? or both? your choice
from a few decades of observation in the wild, I'm sad to say that it is a surprisingly large percentage. the market demand for programmers seems to exceed the supply of those of us who truly can.
Arguably one reason why XML/XSD/XSL took off. It was not just yet-another-structured-text-format like CSV and JSON. It also had an "official" way to express and constrain an application data format, and generic query and mapping languages. Great for low brain, high volume, high repetition use cases. However... programming itself is high brain, lower volume, low repetition.
and I'm saying with a low-overhead deterministic-optimized editor like vim, and the right person at the keyboard, this can be done very quickly and accurately. and again, to continue your example, the hard part is not getting the syntax correct it's ensuring the resulting visual image -- your example suggests a vectory visual artifact ala OpenGL or SVG, etc. -- has the right shape and position. Syntax is something my brain/eye system just tells me, instantly, RIGHT or WRONG. our brains are great at this.
I'm not saying you're wrong. I'm saying for non-newb, non-lame programmers it's a use case that optimizes for a cost that's one of the smallest costs imposed on the programmer. not unlike "premature optimization".
I'm not saying syntax-enforcing keystrokes are a bad thing. I do think there are benefits to having a set of syntax-generic consistent keystrokes, like vim, across all the various syntaxes one has to deal with, day in and day out. If the only thing I ever had to edit was C files or JSON, that's it, nothing else, then yes having a C or JSON-semantic keystroke-restricted inescapable mode (with prompts, wizards, etc.) would be a help. (Which arguably is how all the big fat modern IDEs have evolved towards anyway.) But I'm very aware of the phenomenon where one can gain in the small but lose in the large. Local maxima, etc.
Also benefits to having screen match print, etc. Being grep-friendly, diff-friendly, textual VCS-optimized friendly, etc.
Local maxima. The sneakiest wrongs are right in the small.
It's the think-design-code-test loop that is the biggest driver on my time/energy/brain cost. Not syntax conformance. Conformance becomes like a musician having played a certain instrument for enough years, you acquire muscle/eye memory for what note requires what finger/body/mouth positions/behaviors, nearly a one-to-one map, autonomous.
Do agree that anything that enforces syntax correctness, upfront, is helpful for newbies, especially "forever newbie" use cases, the non-expert users.
that's a terrifying statement. to those of us who know what a person's first programming projects are like, quality-wise
just terrifying. mindlessly stupid on your management's part
vi kids-get-off-my-lawn
I'm also of the school that different words or terms should have different tangible meanings.
So for example a programmer is a distinct concept from a software engineer. One can be one without the other, or both. I like to think I started as merely a programmer but... now can also say I'm a software engineer.
Because I do try to think about the full spectrum, the trade-offs, the real world concerns, as much as I think about how to see a certain computation or result occur, in isolation.
What I would call a developer (or duh-veloper, to be less diplomatic) thinks no further than how to see a certain computation or result occur, only, and only as per written reqs, then, moves on into the proverbial sunset. Even if it doesn't handle edge cases, or unwritten desires, or doesn't scale, or is hard to upgrade or support, etc. A true software engineer should consider and design for all those considerations. Not simply how to achieve 1 + 1.
"If you find yourself in the right adventure," replied Bilbo.
It was the first incarnation of my Dead By Zombie game. Python and a completely homegrown engine. I later decided the hack novelty of it didn't outweigh the negatives of the inferior latency and increased complexity. So I dropped support for the web UI and rewrote it to have a conventional curses-based UI for play in a terminal. No regrets.
There is no single perfect advice anyone can give. This is my off-the-cuff sense for what my own thought process would be.
I'm sure their process is different if you're very elite and famous yourself (eg. Norvig, Rossum) or you come in via an acqui-hire. But for everybody else they treat folks too much like commodity cattle and bias strongly to false negative.
Fortunately, for truly talented engineers with lots of great alternatives, we can reject or avoid them just as much. Problem mitigated.
(among other things I was part of one of the first early adopter teams that used his Streambase product, while at Orbitz.)
(note: not saying he is, obviously. just making a point we should all be aware or when communicating with strangers online.)
I didn't know there was ever a real thing named De-Mail. I named a fictional email-like service De-Mail, in my book The Dread Space Pirate Richard. it's closer to Reddit than email, however.
My take on De-Mail was that of a forum & messaging system where you can never be sure if anything you see or hear in it is true or honest or factual, in whole or in part, but at least it's entertaining or stimulating, and that's what mattered most! there's a major comedy piece written around it.
bonus: I also worked for Cendant! later era, back when they bought Cheaptickets and Orbitz
Spock was also a huge influence on me as a writer. I have a sci-fi adventure series, The Dread Space Pirate Richard, a bit like a modern faerie tale for adults. The main character is strongly influenced by Kirk. And there's a bounty hunter who starts off an enemy of Richard/Kirk, but eventually becomes an ally and, by the very end, his best friend. His name is Vega Venturion. The V is for Vulcan. And his personality is modelled after Spock in many ways, esp the Kirk-Spock dynamic. I have another character who will serve as McCoy, to complete that trinity pattern evident in the original Star Trek series. Also Vega is the very first and very last character "on stage" in my series arc -- the final pages of the last book are already written. The only two people who've read the preview draft of this last Vega/Spock scene have told me it made them cry like a baby.
At some level Spock will live forever. Vega Venturion lets me cheat and create new adventures for him, for as long as I want and can keep it going.
RIP Spock and Mr. Nimoy. You will be missed. You've inspired and effected millions for the better.