Paul_Clayton
Joined 2 years ago
Joined 2 years ago
(I also made one "let me Google that for you" comment on an SE answer, though I tried to be polite asking what was not understood from the Google result. I cringe a bit when I remember that. https://stackoverflow.com/questions/55752699/what-does-a-spl... if anyone is interested.)
I am not a programmer, but I do have some knowledge of computer architecture. Unfortunately for me, the Stack Exchange sites where such questions would be on-topic (Computer Science and Electrical Engineering/Electronics) did not get many questions that I could answer. (https://electronics.stackexchange.com/a/123778 is one of my more popular answers.)
I do not remember exactly why my participation in Stack Exchange sites declined. Part of the motivation loss was from fewer "interesting" questions, part was from a slight decline in politeness, part was from modest discomfort with the policies that made asking questions more difficult, part was from general declining enthusiasm and competition with other interests.
I do remember what caused me to rage quit; it was my worldbuilding question being voted to close as too broad and this answer to the question: https://worldbuilding.stackexchange.com/a/247948 .
Besides being just one specific use of adamant (when I was more looking for classes of uses), I felt it mocked my sense of high fantasy (which was one of the tags used). (I do not think this was the poster's intent and I was overly sensitive, but combined with general dissatisfaction and a declining mood this triggered a rage quit. Having something that annoyed me be extremely popular did not help.)
I got the impression that expensive register allocation is not an option. A 1% improvement in register allocation that results in a 0.1% local performance improvement and a 0.002% program performance improvement may be considered not to justify 1000x local compile time, but for frequently run stable-ish software the compile time and compiler development/maintenence time might be justified.
(I am not a programmer, but I do like thinking and learning about such things.)
In programming, it may be challenging to distinguish between You Aren't Going To Need It (wasted work that adds complexity) and brillant foresight that avoids trying to retrofit an abstraction over independently developed code.
I am not sure that a manager needs to reliably judge the quality of the product to reliably deliver quality products. Judging skill and integrity (and promoting the development of such) does not seem to require having the same skill.
This seems to be a wisdom issue both for the worker (e.g., avoiding burnout or even just resentment) and the management (workers who have external principles can be more valuable but they can also be more difficult to manage even decently, i.e., with average ROI)
Your comment reminded me of Bunny the accountant's statement that Skeeve must charge the going rate to have the kingdom on a rational budget and Skeeve deciding to refund taxes to those who complained the most (in one of Robert Asprin's Myth Inc. books). What could possibly go wrong? :-)
In terms of work in the job description, I could probably be replaced by 1.2 (1.1?) average competent workers. In terms of other benefits of my employment to coworkers and patrons, my impact is hard to estimate. Others bring in goodies for snacking, but I maintain a consistent but limited selection of snacks; others may spend as much or more money per year on snacks, but knowing that certain snacks will be available has significant value.
While I would have liked being promoted one level (from library page to library aide, from shelving only to shelving and check-in), higher positions have responsibilities I would have found extremely stressful. I was passed over twice for a promotion supported by my immediate supervisor (the decision was made by higher ups, the second time my supervisor was miffed that his input was not given more weight) and I had a meltdown at the interview for a third chance when technical issues (not working audio in an online interview) forced cancellation of the interview. I took my reaction as evidence that I was not ready for more responsibilities.
The first time I was not promoted, I was not especially bothered; the person getting the job was competent and went beyond minimal effort. The second time I was told that I would probably get the job (which I think was part of why my supervisor was not happy about my not even getting an interview) and the person getting the job seemed (after some observation) to be less competent and less enthusiatic than the previous transfer. (I think this estimate was not derived entirely from my disappointment: my first impression was "this is a library person" (glasses et al.). Perhaps seeing a library person not seeming enthusiastic about working at a library may have soured me more than if I had no hints of a kindred spirit.)
I like helping my coworkers (I like most of them and dislike none), but shelving books is not that team-oriented. I do not want to manage people (I am not good at it and do not enjoy it).
The company might also go bankrupt with much of its profits having gone to owners and decision makers who are not bound to honor the warranty.
E.g., have a customer standing in front of the concession stand saying "Man, the popcorn costs an arm and a leg." followed by an alien with many arms and legs saying "Here, I'll pay." detaching an arm and a leg. The original speaker leaves with his popcorn and the alien buys itself some popcorn (another arm and leg taken off), takes a taste and says "Mmmm. Worth it!" (That might not be a great ad, but I am not that clever at advertising. However, I think that would at least make me smile if not laugh, and a professional should be able to find better concepts and execute them well.)
Having modestly different versions (like openings for The Simpsons) could be a cost effective way to made different versions that could actually draw attention by trying to see what is different and to see Easter eggs for movies for frequent theater goers (or those staying for a double feature).
With big time movies, the movie production company could provide one or two generic ads with various small variations (like a character from the movie being shown or being promoted with a earlier trailer sitting down next to someone in a theater "watching" a trailer who says "I clearly got here too early." to which the character says "That's why took the time to stop by the concession stand" and waves his box of Milk Duds (or other item from the concession stand) while holding a drink in the other hand.
I think there are so many ways to make advertising less annoying. However, even with no repeats and interspersing ads with trailers and shorts (possibly with some product placement, i.e., subtle advertisement), twenty five minutes sounds painful. Entertaining, or at least mildly interesting, advertisement also requires more effort and some appreciation of the audience. Why bother when one has a captive audience? Even with good targeting information, there is also the problem that those wanting to buy the movie goers time/attention may not be selling something of interest (though I could enjoy a clever car ad even though I do not drive and have a slight anti-car bias). With low effectiveness of ads (and so selling price), their number would be increased to compensate for individual ineffectiveness even if the theater is not especially greedy. Driving away movie goers with more ads, then means even more ads need to be shown to compensate for the reduction in eye count.
I have not gone to a movie for about a decade — Interstellar, which was released in 2014 — and I did not really enjoy the experience. Beside problematic aspects of the movie, the sound volume was not comfortable, the social environment was not comfortable, and I went because my host family urged me to go. However, there was not a long feed of ads, so that experience was relatively good. Anyway, I may not be the best person to ask about the contemporary movie going experience.:-)
But, yes, terms like "the speed of C" do not seem especially useful.
Even "equal effort" ignores the complexity of the effort-to-benefit function as well as maintainability issues and other considerations like finding good programmers who want to use the language.
Reality seems to be very complex.
I am not certain if C (apart from inline assembly) can generate all possible machine code, and some translations can be fragile (autovectorization, e.g.).
Unfortunately, even having tools that eliminate simple errors (like spell checkers and grammar checkers in ordinary writing) does not remove reasoning errors or clarity/conciseness issues.
(Efficient resource use is another dimension besides correctness and maintainability. Using an O(NlogN) method versus O(N×N) may be a mistake when N is small, but tools may lack the domain or profiling knowledge to detect such a mistake. Programming languages also seem to generally lack a way to express the importance of tail resource use, so even with profile information a tool might optimize for mean resource use.)
I think more recent languages have also attempted to increase clarity and conciseness by abstraction and consistent syntax. A newer language may also have more idiom consistency (some of the natural idiom divergence may be less more recently with easier communication -- the Internet functioning like cheap books did for spelling?).
I am not a programmer, but I do like thinking about such things.
Minimizing peaks is probably not a good strategy generally. Even low peaks may have some benefit ("if you know your problem is in this domain and performance is critical, this tool offers a 3% advantage").
Minimizing troughs may be more attractive. People generally seem to react more strongly to negatives and competitors can devise benchmarks which emphasize one's troughs.
While a universal expert would be convenient and broad knowledge aids some forms of creativity, specialization has substantial advantages.
Trading max performance (primary metric of concern) for some improvement in a secondary metric often makes sense and that could be an interpretation of "minmaxxing", reducing the over-emphasis of a single metric which would otherwise be maximized.
Getting the clock routing delay to approximate the delay that is designed to be tolerated seems likely to be rather tricky, but I think clock offsets from imbalanced travel distance do not have to make all of that time wasted.
I might well be wrong as I am only aware of some very general concepts of hardware design. Even in my ignorance, I am aware that theoretically possible in some cases is not the same as practical/worthwhile in general.