TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

It takes a PhD to develop that

623 pointsby kaeructover 3 years ago

56 comments

onion2kover 3 years ago
<i>A few hours later another programmer came up with the prototype of a much faster terminal renderer, proving that for an experienced programmer a terminal renderer is a fun weekend project and far away from being a multiyear long research undertaking.</i><p>I have no idea if this is the case here, and I suspect it might not be, but pretty much every time I&#x27;ve seen a developer complain that something is slow and then &#x27;prove&#x27; that it can be faster by making a proof-of-concept the only reason theirs is faster is because it doesn&#x27;t implement the important-but-slow bits and it ignores most of the edge cases. You shouldn&#x27;t automatically assume something is actually bad just because someone shows a better proof-of-concept &#x27;alternative&#x27;. They may have just ignored half the stuff it needs to do.
评论 #28744084 未加载
评论 #28744148 未加载
评论 #28744322 未加载
评论 #28744041 未加载
评论 #28744830 未加载
评论 #28744127 未加载
评论 #28745660 未加载
评论 #28747935 未加载
评论 #28753853 未加载
评论 #28747500 未加载
评论 #28744112 未加载
评论 #28744586 未加载
评论 #28745206 未加载
评论 #28751044 未加载
评论 #28744788 未加载
评论 #28744063 未加载
chenglouover 3 years ago
In case this isn&#x27;t clear, RefTerm is:<p>1. Faster in every case tested<p>2. More fully-featured, including i18n<p>3. Easier to read and maintain (see for yourself)<p>4. Shorter<p>5. Using existing libs, aka interops well<p>...So none of these typical hand-wavy dismissals apply:<p>1. &quot;Is it really faster for edge cases&quot;<p>2. &quot;He probably didn&#x27;t implement certain features like Arabic and Chinese&quot;<p>3. &quot;Businesses just wants enough&quot;<p>4. &quot;Businesses just wants enough&quot;<p>5. &quot;It probably makes some closed-world assumption&quot;<p>The performance of RefTerm didn&#x27;t come from some big tradeoff; it came from using the right perspective and keeping things simple.<p>Sure, past a certain complexity threshold, you&#x27;d have to work for extra perf, but from my observations, folks who immediately jump to the wrong implicit conclusion that &quot;good perf must have required compromises&quot; got conditioned to think this way because the software they work on are already (often unnecessarily) complex.
评论 #28764705 未加载
TeMPOraLover 3 years ago
Yup, this. Something I&#x27;ve been ranting about[0] for a while: there is no technical progression ladder. The Senior-&gt;Principal-&gt; ... path seems to be a faux-management track, with all the managerial responsibilities and little of the authority. Software is shitty in big part because it&#x27;s mostly written by juniors, as almost anyone who has any clue moves over (or gets pushed over) to managerial or faux-managerial roles.<p>I&#x27;ve been thinking about a more charitable interpretation of this recently. Another thing I rant about[1] is that tools we use for programming are not expressive enough. It takes too much work to say simple things, the coding feedback loop is ridiculously long. So how this connects? In a way, junior programmers can be seen as a Mechanical Turk version of a Sufficiently Smart Compiler - it lets the more experienced people skip some of the tedium with the tooling and deal with higher-level concepts, which get translated to actual code by an army of juniors and interns. Except, this doesn&#x27;t work that well - the coding feedback loop is <i>even slower</i>.<p>--<p>[0] - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=27417462" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=27417462</a><p>[1] - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=28568053" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=28568053</a>
评论 #28748077 未加载
评论 #28745417 未加载
评论 #28745181 未加载
评论 #28748593 未加载
评论 #28749632 未加载
评论 #28747273 未加载
评论 #28744751 未加载
评论 #28750040 未加载
moralestapiaover 3 years ago
This reflects a lot of what goes on in Academia as well.<p>Also, if you think you can counter a &quot;that&#x27;s not possible&quot; with a working proof of said thing working, think again, most people don&#x27;t like to be shown they&#x27;re wrong, particularly tenured professors. That&#x27;s one of the fastest ways to sabotage your own developing career.<p>&quot;Yes men&quot; climb the ladder much easier, but then work doesn&#x27;t do itself so that&#x27;s the catch. Cue exploitation of interns and other newcomers and you almost have the whole picture on how things get actually done. Hence why &quot;science advances one funeral at a time&quot;. Once someone reaches its own Peter level [1], it stops being a productive force and becomes a plug that jams everything behind it.<p>1: <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Peter_principle" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Peter_principle</a>
评论 #28747345 未加载
评论 #28744308 未加载
评论 #28745080 未加载
评论 #28744140 未加载
xyzelementover 3 years ago
This is both annoying and understandable. For the dev team, to dive into this performance optimization would mean punting something else from their roadmap. I suspect they weighed their perceived chances of success against the projected cost and reached a certain conclusion which in retrospect seems wrong. The independent developer did not have that &quot;hurdle&quot; as he simply did this at the expense of whatever other fun programming challenges he may have done those weekends. It&#x27;s awesome that he turned out to be right. But I suspect if he turned out wrong we&#x27;d never hear about it. There was likely no tradeoff analysis on his part in undertaking this project, while the dev team did have to do one.<p>On the flip side, I have seen developers get really hung up on what is academically difficult rather than what is practically doable. I had a young developer who worked for me get really upset and hung up on the fact that something he was asked to do was NP equivalent, meaning there&#x27;s no non-exponential time algorithm to implement what I was asking for. It took me weeks to realize this was messing with him and then about 5 mins to dig into the data and show that input length never practically exceeds like 7, so an exponential algorithm was fine. So I can see how a dev could get stuck thinking something is really hard when it really isn&#x27;t. But I don&#x27;t think it makes them a bad dev, it&#x27;s just hard to transcend your own perspective.
评论 #28746512 未加载
评论 #28750181 未加载
jameshartover 3 years ago
I&#x27;m not sure &quot;It doesn&#x27;t take a PhD, just years of experience&quot; is quite the rejoinder the author thinks it is.<p>Aren&#x27;t they both just ways of saying &quot;It takes someone with a rare subset of highly specific knowledge to solve this problem&quot;?<p>The MS person was saying &quot;Sure, there&#x27;s probably a way to make this faster but I don&#x27;t have anyone on my team who knows how to do that. If I had the budget to go out and hire someone with a PhD maybe I could do it.&quot;<p>That then Casey Muratori could show up and do it in his spare time doesn&#x27;t really refute that argument, does it? This is someeone who has spent years actually doing hardocre R&amp;D work, and literally published techniques that advance the state of human knowledge in the field of GUI rendering[0]. His resume is kind of a living example of &#x27;PhD, or equivalent professional experience&#x27;.<p>So sure, it might be nice if MS&#x27;s career structure led to them having more Muratoris on staff, but I don&#x27;t think the expectation that every product team should have one or two developers of that caliber on it is a reasonable one.<p>It IS a good argument for why MS should accept open source contributions, though.<p>[0] <a href="https:&#x2F;&#x2F;caseymuratori.com&#x2F;blog_0001" rel="nofollow">https:&#x2F;&#x2F;caseymuratori.com&#x2F;blog_0001</a>
评论 #28746702 未加载
评论 #28751167 未加载
评论 #28746706 未加载
xoacover 3 years ago
Would just like to say that:<p>1. WT is probably my favorite Microsoft product<p>2. Since this whole affair, the developers have apologized and corrected themselves which is usually unacknowledged in these discussions.<p>3. The developers have made a number of performance improvements since (most of which are in the latest preview release).<p>4. This episode is constantly retold and used to bully the developers even after these apologies and this has lead to one of the developers to quit (paradoxically one of the devs who after these posts made the most effort to figure out where the bottlenecks are).
评论 #28746855 未加载
oakfrover 3 years ago
It saddens me to see, time and again, the role of leadership painted in such a dire and incorrect way.<p>Leadership is a lot more than about &quot;shuffling paper&quot; in an &quot;ivory tower&quot;.<p>As a lead (in any decent company), you get to participate in critical design reviews; you get to read and review code; you get to shape the trajectory of others; you get to participate in discussions with the product teams. If you work smart, you get free time that you can use to keep coding. All of this can be extremely rewarding.<p>You are not serving our domain by painting this kind of picture of leadership. The truth is, you can excel as a software engineer, but you can also excel as a lead. And none is better than the other.<p>I dedicate this message to the &quot;wet behind the ears&quot; people you are referring to who would never consider the role if they were to stick to this poor vision you&#x27;re delivering.
评论 #28745796 未加载
评论 #28744700 未加载
评论 #28744199 未加载
zhdc1over 3 years ago
If you read the article, the author is discussing a conversation on Github and developer experience. The article isn&#x27;t an indictment about academia (it doesn&#x27;t even really come up at all).<p>Re the author&#x27;s competence argument, given how complex software development is as a field, a better approach should be to always assume that there&#x27;s a person out there who can solve a problem quicker and more competently than your guesstimate. Of course, you should also assume that they&#x27;re not going to, and that you - with all of your issues, lack of experience, and general :&#x2F; &#x27;iness - is the one who&#x27;s either going to have to fix it or find someone who can.
Jenssonover 3 years ago
The worst part is that the kind of arguments he was met with is exactly the kind of arguments people use to get headcount and climb the ladder within corporations.<p>Spending a little time writing a well designed and fully working solution =&gt; Good job, now take the next ticket!<p>Spending a lot of time explaining why something can&#x27;t be done with this budget =&gt; Promoted to manager!<p>Spending a year of time explaining why the project need a much bigger budget to deliver features =&gt; Promoted to director!<p>This is the main problem.
评论 #28745062 未加载
baobabKoodaaover 3 years ago
I understand that different people have different skill sets, that&#x27;s totally fine. I don&#x27;t think every single senior developer at Microsoft should have the skillset to fix performance issues like this. That said, however, I do think developers should be able to <i>recognize</i> when a task requires a skill that they do not have. In those cases it&#x27;s best to reach out to someone within the organization who has that skill. Or, you know, you can be a senior developer at Microsoft and condescendingly claim that it&#x27;s impossible, or &quot;takes a PhD to develop that&quot;. I guess this is what you get when you fill organizations with people who don&#x27;t care about performance, computer science or algorithms.<p>I&#x27;m going to use this case as another example to point to when people argue that algorithm skills are useless and shouldn&#x27;t be used when interviewing.
评论 #28745198 未加载
yxhuvudover 3 years ago
I feel this is missing the elephant in the room, which is that experts are not interchangeable. They have typically specialized in whatever they have spent lots on time doing, and so developers in different sectors develop a lot of different skills that are typically not very useful for developers in different sectors.<p>A result from that is that what may be trivial for people in one sector is hard for people in a different sector, and vice versa. Often people will not know enough about sectors different from the one they operate in to know what is hard or not in other sectors.
评论 #28747183 未加载
choegerover 3 years ago
Counter argument: If the experienced programmers stay where they are, software development will forever remain craftsmanship. A single developer can only tutor so many juniors.<p>In fact, I think that teaching and encouraging to learn is the most important thing in SE. And that has to begin with leadership figures that <i>don&#x27;t</i> believe their own knowledge gets obsolete after one year just because the latest framework got released.<p>SE should not be an art form. It should be founded in solid science and abstraction should allow us to keep our knowledge applicable. You&#x27;re not a bad engineer because you never touched the latest hypetech or programming language. You <i>are</i> a bad engineer if you only consider yourself a &quot;frontend developer with react on chrome&quot;.<p>All IMO, of course.
评论 #28744217 未加载
评论 #28744808 未加载
评论 #28744154 未加载
评论 #28744678 未加载
mwcampbellover 3 years ago
I pity the developer (or maybe manager) at Microsoft who wrote the GitHub comment on which this article&#x27;s title is based. (And no, I never met him when I was at Microsoft.) If he&#x27;s in the Seattle area, he&#x27;s likely not even awake yet, but when he is, I expect he&#x27;s going to have a bad day. Assuming he&#x27;s not already sick of the Windows Terminal versus refterm drama, it would be interesting to read his perspective.
评论 #28747238 未加载
评论 #28746783 未加载
评论 #28746688 未加载
imcottonover 3 years ago
The very ticket [1] is locked by this epic ending:<p>&gt; You were overly confident in your opinion, but I hope this website helps you understand that it&#x27;s actually really damn hard.<p>&gt; The reason your program shows a high FPS under other terminal emulators is simply, because their rendering pipeline works independent of VT ingestion. Gnome Terminal is not laying out text faster than your display refresh rate either. And of course, again, this is something WT will probably do as well in the future... but this project is nowhere near as old as Gnome Terminal is.<p>[1] <a href="https:&#x2F;&#x2F;github.com&#x2F;microsoft&#x2F;terminal&#x2F;issues&#x2F;10362#issuecomment-862852850" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;microsoft&#x2F;terminal&#x2F;issues&#x2F;10362#issuecomm...</a>
mytailorisrichover 3 years ago
The github issue is a gem.<p>The reporter is basically being fobbed off by being flooded by random buzzwords and data points, none of them specific, but he keeps trying to drill down to specifics by asking questions.<p>The tone gets quite condescending towards him.<p>He gets out of all this with flying colours. He should consider adding that Github issue to his resume.
评论 #28745406 未加载
评论 #28745390 未加载
yobboover 3 years ago
&gt; I believe what you’re doing is describing something that might be considered an entire doctoral research project in performant terminal emulation as “extremely simple” somewhat combatively…<p>Yes, it might be seen as combative since it amounts to saying &quot;you guys seem to be clueless&quot;. When proven in experiments, it means that the combativeness was justified.<p>Imo, the language in this quote is almost unacceptable. It&#x27;s a roundabout way of saying &quot;stand back little peon, you are not important enough to be thinking about problems that concern us.&quot;<p>It&#x27;s inevitable that when people overestimate their competence and judgement, the moment when humility is forced on them is experienced as painful. Adjust prejudices and move on.
lbrinerover 3 years ago
Saying that is is a multiyear long undertaking was probably a little silly and makes it sound like the person who said that can&#x27;t have been involved wi4th the software otherwise they would have known this but there might also be another explanation that we have seen, particularly with Microsoft:<p>You can&#x27;t sell the things that make people just like the software, only new headline features do that.<p>Example 1: When you open visual studio 2019, you get a search box by default that allows you to type in your project name and it looks for it in the MRU list. Except this is intolerably slow! I suspect it might not be the searching itself, perhaps a tonne of threads are doing something but it is terrible. ANY search algorithm looking through a list of no more than 50 things should be instance, theirs takes up to around 10 seconds and does fuzzy search by default! Why don&#x27;t they fix it? They wouldn&#x27;t sell any more units by fixing it and you won&#x27;t upgrade to the newer improved version.<p>Example 2: When you install nuget packages in visual studio on netfx projects, it modifies the assembly redirects in web.config by re-writing the entire file even if there are no changes. Oh, and it adds extra spaces and stuff so that the diff tools think every single line has changed. I have to manually delete all of the entries, build it again, let visual studio warn me about missing redirects, double-click the warning and VS writes the file in the original style revealing the maybe 2 actual changes. This is total horsesh*t but they won&#x27;t fix it. Why? You should be using dotnet core, even if your project is 5 years old and established.<p>It&#x27;s a shame because there are lots of things to like about MS tooling compared to lots of competitors but each of these things will be a coffin nail that eventually will cause people to jump ship.
c7DJTLrnover 3 years ago
The difference here is that the developer of RefTerm is an experienced, professional developer passionate about his craft and building good software. Microsoft is a faceless entity composed of people who mostly don&#x27;t care about what they do during the day and are just getting by so they can get paid. There&#x27;s no shame in that. But there is shame in patronising someone when they demonstrate something to be false and locking the thread on GitHub such that no further discussion is possible...<p>Microsoft is sluggish and delivers products that do the job and nothing more. Sadly, that&#x27;s the modus operandi of most software companies. That&#x27;s why nimble little startups are still managing to steal pieces of various markets.<p>I use Windows Terminal quite often and have definitely noticed its terrible performance. So this is definitely something visible in the real world and not just nitpicking.
评论 #28746978 未加载
stefsover 3 years ago
inexperienced developers are unable - or just rarely - ask themselves the question:<p>&quot;is the current performance in the right ballpark of where it should be?&quot;<p>here it&#x27;s obvious - muratori took one look at that thing and just knew that &quot;no, 2-3 fps is definitely, completely off&quot;. i, too, had a couple of those moments where i got my hands on some code and thought: &quot;that just can&#x27;t be right&quot; and then found O² algorithms, byte-by-byte io copy routines, database abuse or duplicated work.<p>if you don&#x27;t have the rough reference points of what should be right, you often just don&#x27;t question correctly working code.
MontyCarloHallover 3 years ago
In my experience, basic coding skills can really atrophy in senior developers who quit writing code years ago and are full-time architects&#x2F;managers.<p>I’ve interviewed more than a handful of extremely accomplished people with decades of experience as developers and then engineering managers who couldn’t answer extremely basic coding questions (we’re talking “efficiently find duplicates in a list” or “compute Fibonacci numbers” basic). These people never could get past the O(n^2) brute force solution for finding duplicates (or the brute force compute every Fibonacci number starting from 1, 1), because they hadn’t thought about even basic algorithmic complexity in so long. And when people like this are giving orders from the top, you can see how software can get so slow.<p>I have no doubt that when these people were actually still coding, they could have answered my questions in their sleep. Quitting coding for engineering management really does one a disservice IMO. To this article’s point, I’ve also had the pleasure of working with people with decades of experience who never quit coding even as senior managers and their level of competence and productivity is astounding.
评论 #28746473 未加载
评论 #28746046 未加载
chromanoidover 3 years ago
Reminds me of the Expert Beginner: How Developers Stop Learning: Rise of the Expert Beginner <a href="https:&#x2F;&#x2F;daedtech.com&#x2F;how-developers-stop-learning-rise-of-the-expert-beginner&#x2F;" rel="nofollow">https:&#x2F;&#x2F;daedtech.com&#x2F;how-developers-stop-learning-rise-of-th...</a>
crypticaover 3 years ago
PhDs often make the worst possible developers. People with PhDs (especially in Mathematics) are often lacking the most critical characteristic of a good developer; they don&#x27;t know why they do things. Being good at math requires being able to solve problems whose solutions often do not have any practical uses or whose practical uses may not be clear. This is very different from how software problems should be approached. Software development is more about finding the right problems than it is about solving problems; to find the right problems, you need to understand the &#x27;why&#x27; in as much detail as possible. Every line of code should be easily justified by how it brings the system closer to achieve its purpose. The PhD diploma itself doesn&#x27;t have much practical use in financial terms; it&#x27;s not a good investment to get a PhD for purely practical reasons. Detatchment from practicality is the worst attribute someone can have as a developer.
评论 #28744193 未加载
评论 #28744139 未加载
评论 #28744094 未加载
评论 #28744118 未加载
评论 #28744844 未加载
评论 #28744176 未加载
评论 #28744536 未加载
评论 #28744173 未加载
galkkover 3 years ago
cmuratori is great software engineer, for sure, but, god, this bug report poisons the well right from the start (see below).<p>Also the report is actually quite bad, because 40x performance drop, that is stated, could be actually nothing. If something takes 1 millisecond instead of 25 microseconds (numbers from the head, to illustrate the point), it might be an issue, but also might mean nothing. This is the thing that requires clarification, from my pov.<p>Regarding poisoning the well: instead of writing<p>&quot; Expected Behavior<p>Despite the increased parsing load, modern CPUs should not have a problem parsing per-character color escape codes quickly. I would expect the performance of the terminal to be able to sustain roughly the same frame rate with per-character color codes as without, and if there was a performance drop, I wouldn&#x27;t expect it to be anything close to 40x. &quot;<p>he could just write<p>Expected behavior<p>Frame rate of output with per-char color codes is similar to non-colored output.
评论 #28744228 未加载
评论 #28744728 未加载
评论 #28745044 未加载
评论 #28745282 未加载
评论 #28744495 未加载
6gvONxR4sf7oover 3 years ago
&gt; Due to the way the programmer’s ranking system works, an average company will have a big crowd of inexperienced people and very few who can tackle complex problems. For this reason, the vast majority of software is written by the ones who are still learning the ropes.<p>I wonder if another reason is just that it’s such a growing industry. The number of CS grads each year are growing, and I know tons of people who sidestepped into the profession from other degrees as well. The number of jobs too. If the job market is twice the size it was a decade ago, half the employees are going to be new no matter what. Perhaps hilariously, that huge demand means high wages, means more early retirements, means fewer senior people too.
numpad0over 3 years ago
&gt; it seems to me that the software industry doesn’t value technical excellence as much as it values having warm bodies report to you<p>Naturally. Computers don&#x27;t pay, these wet bodies pay progressively for values they perceive. Technology is merely an instrument to add amounts of currency value to products that it is to hold. Also, a business that relies on technical excellence of small groups of individuals is not a business well conceived.<p>Logical complexity impregnated into an artifact, logical or physical, is a completely separate phenomenon to currency values it holds within the system of human economy. Took me way too long to get it. The fact that the two are considered same is itself probably something worth discussions.
ZeroGravitasover 3 years ago
I tihnk I generally agree with this, but also wonder what the alternative is.<p>If you step outside your own industry, do you want plumbers that have a hobbiest appreciation of the intricacies of fluid dynamics, or do you want someone to come and unblock your toilet in the middle of the night?<p>There&#x27;s possibly a middle ground where the geniuses invent toilet technology in such a way that it is easy to install and maintain, and &quot;normal&quot; people do all the other boring bits, like stocking warehouses, transporting it, selling the house it sits in, answering the phone etc. It feels like we&#x27;ve generally got there in both plumbing and in software and is that a bad thing overall?
评论 #28745247 未加载
Karrot_Kreamover 3 years ago
This would be a nice thesis. Unfortunately we have software like memcached, redis, nginx, Envoy, Kafka, Zookeeper, and more that come straight from professional programmers which makes this thesis more complicated than this post makes it sound. Perhaps Occam&#x27;s Razor should apply here.
评论 #28744082 未加载
Ivover 3 years ago
Maybe it takes PhD to develop that through the Microsoft development process.
pramover 3 years ago
At one of my previous companies they hired two engineers specifically for performance. They were sharp guys. Problem was, they were put on their own team&#x2F;silo and basically no one involved them in any of the work. Their PRs were considered more of an unpleasant intrusion into other peoples sprints. They became useless because of the terrible organization! Total wasted talent because &quot;performance&quot; was an afterthought in every respect.
thriftwyover 3 years ago
Nope!<p>It&#x27;s just that in corporate world, developers rarely do what they think is relevant for them.<p>The people who did Windows terminal probably cared a lot about COM or WinAPI or maybe CS, but I think it&#x27;s fair to imagine how they were not fans of text-oriented interfaces. It just did not occur that they should be extracting last bit of performance here. People can type just that fast, after all.
评论 #28748275 未加载
评论 #28743966 未加载
评论 #28743940 未加载
smichel17over 3 years ago
I think a significant contributing factor is that management is a local maximum.<p>I am a self-identified &quot;sort of knows what they are doing&quot; (albeit, sometimes insecure about that) professional programmer. I&#x27;ve also had the chance to take a leadership position. So, I think I have a useful perspective here.<p>The amount &quot;I&quot; can accomplish in a leadership position is so much higher than by coding directly. So, on the margins, it&#x27;s really hard to justify time spent coding, compared to coordinating others. It&#x27;s incredibly easy to imagine stagnating as a coder due to not doing very much of it. Yet, clearly when everyone follows this route, software quality suffers. I don&#x27;t have any particular solutions.<p>Perhaps eventually the rate of expansion of programmers will slow, and we&#x27;ll end up with too many sort of knows what they&#x27;re doing&quot; programmers for everyone to move to management, so people&#x2F;companies will start waiting until programmers hit the experienced mark to make the leap.
StillBoredover 3 years ago
Maybe everyone needs their ansi.sys moment though. Back in the early 1990&#x27;s, I, and probably half the programmers using DOS, rewrote the dos ansi.sys driver&#x2F;TSR because its was _SLOW_. mostly IIRC because it was calling the BIOS text output, but also because it was a pretty solid implementation of the ANSI terminal&#x2F;esc sequence &quot;standard&quot;.<p>So, the first half took about an hour or two to handle output (just write a character at the right location in the framebuffer) and get the INT&#x2F;TSR boilerplate right. Then for the next 20 hours fight with all the edge cases the cropped up with corrupted text in various TUI programs that were calling the DOS string functions. Then as the size+perf approached NANSI.sys (<a href="http:&#x2F;&#x2F;www.kegel.com&#x2F;nansi&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.kegel.com&#x2F;nansi&#x2F;</a>) give up...<p>Learning experience.
hintymadover 3 years ago
&gt; Based on my limited anecdotal evidence, it seems to me that the software industry doesn’t value technical excellence as much as it values having warm bodies report to you. This in turn limits the amount of experience an average programmer working on these big projects will have, just because they are incentivized to leave the hands on implementation work for some sort of a leadership role as soon as possible.<p>+10000. This is so true. It&#x27;s not just that people are incentivized to leave hands-on work. Every level of the management genuinely believe that a senior engineer should not spend much time on hands-on work but instead should focus on &quot;tech leadership&quot;, which in a big company means going to meetings, influencing other teams, writing white papers, and of course &quot;coordinating&quot;.
greyhairover 3 years ago
From the linked article itself, I can attest to the constant push to move up into &#x27;leadership&#x27; roles, particularly in some companies. I have stayed and worked as an engineer for 37 years. I have been &#x27;team lead&#x27; a half dozen times, but never a full manager role. Why? Because I would be a poor manager. I have personally experienced managers that where technically brilliant, but not good at managing (or inspiring) the technical staff. They should have remained as engineers&#x2F;scientists. Some corporations used to have parallel paths for technical staff that had management level pay and benefits, but the suits in the &#x27;C suite&#x27; have eliminated that for the most part over the last twenty years. Bell Laboratories (now a shell of its former self) was once one of those places.<p>So in the current environment, there is constant pressure to move up or move out. Even startups are no longer immune to that. If you want to have enough shares for it to really matter in a liquidity event, you need to have a team of people below you, or at least a director level title. The startup environment in 2000 was completely different, and technically astute engineers (mechanical, electrical, software) could attract strong stock grants as engineers. That has changed. I am fortunate in that after 37 years of doing this, I am at a position where I don&#x27;t even have to think about these issues any longer. I feel sorry for younger engineers breaking into the field, the management pyramid is such a PITA.<p>And back to the topic of strong technical engineers that are poor managers? If you get stuck into one of those situations, constant micro management, constant downward pressure of &quot;you don&#x27;t know what you are doing&quot;, get out. Find a new position elsewhere. Good managers will coach you when you need help, but will let you do your own work. Good managers will help identify your deficiencies but also guide you to work that plays to your strengths. Good managers will provide you opportunity for growth. I learned this early in my career, blessed with having an awesome manager. Since then, every job I have had, first thing I did was figure out which managers were good, and which ones were not, and made sure that I never had to work under a bad manager.<p>So you can make a career in engineering, but it has to be a choice, and you have to learn to manage your managers.<p>Also note, while I recognize that I would be a poor manager (for various reasons), mentoring is a different skill set. If you are a senior engineer, take every opportunity to mentor a starter in the field.
lmmover 3 years ago
This seems like giving up. The article is right about the problems but seems temperamentally opposed to actually fixing them. Number of people under you is a terrible metric in many ways, but it is at least objective (ish) and hard to fake; so is years of experience. If you take the position that programming skill requires years of particular kinds of learning and there is no way to assess whether someone with x years on their CV has actually done y years of that kind of learning... well, maybe that&#x27;s true, but what&#x27;s the actionable takeaway from that?
评论 #28743958 未加载
评论 #28744233 未加载
otheraccover 3 years ago
Hm... It&#x27;s totally okay, to not be able to do it. Nobody can know everything. Doesn&#x27;t mean you are in a &quot;lower&quot; category compared to your colleagues.<p>Okay, it&#x27;s not a global problem (ie. &quot;needs PHD&quot;) but just a personal problem (ie. &quot;I have no clue how to solve it&quot;). Trying to get as much stuff done as possible, I&#x27;ve said similar things in the past, though. Not really thought about it before typing. Happens...<p>Nobody got hurt in the process, right? Let&#x27;s forgive this little misinterpretation and move on.
评论 #28744450 未加载
pjc50over 3 years ago
&gt; the software industry doesn’t value technical excellence as much as it values having warm bodies report to you.<p>One of those can easily and objectively be measured, and the other one can&#x27;t.<p>Various orgs have tried to measure financial &quot;value&quot;, imperfect in and of itself, but then face serious problems attributing that to individual developers.<p>Fundamentally, discussing &quot;good&quot; software is performing subjective evaluations against subjective criteria. There&#x27;s no easy route out of that.
PicassoCTsover 3 years ago
The problem with the excuse parade is, that it has to justify itself. They have to be special, the avant-garde, selected through countless interviews to live well inside the castle. If some wandering apprentice can outperform them, the hot air escape from the &quot;rockstar&quot; developer, wrestling with complex code sitting inside the compound of a FAMG firm.<p>Then nothing remains, but embarrassed silence. And the question, why this people are paid for, if they waste the customers money, aka performance of the customers computational platform and the outcome is so sub-par. Which is why they are sitting all in one huge meeting today.
loufeover 3 years ago
I work as a mining engineer and in my eyes these stages are effectively the same as the author describes in the software world. I&#x27;d even argue they apply to most &quot;professional&quot; careers.
easton_sover 3 years ago
I remember a post Msoft Dev wrote about adding a fairly simple feature to a web api. The code itself could be written by a single dev in a day or two, but the logistics needed for testing, documenting, supporting and communicating this involved hundreds of people with thousands of man hours. It also would bind them to maintaining this feature almost indefinitely. Because of that last point alone it took months to years to get a signoff on features.
mattgreenrocksover 3 years ago
Most of the industry seems structured to keep devs at an intermediate level: resume-driven hiring, ageism, proliferation of open source that prioritizes easy over simple, little discussion of software design, complete lack of education&#x2F;resources to move devs past that, and incentives that push people into management.<p>Another thing I realized when writing this: where do experienced devs congregate? (It isn&#x27;t Twitter.)
NhanHover 3 years ago
&gt; A few hours later another programmer came up with the prototype of a much faster terminal renderer, proving that for an experienced programmer a terminal renderer is a fun weekend project and far away from being a multiyear long research undertaking.<p>I read through the Github issue and can&#x27;t find the prototype mentioned here. Can anyone link the PR&#x2F;code if they know it please?
评论 #28744043 未加载
评论 #28744057 未加载
评论 #28744317 未加载
Shorelover 3 years ago
Whatever the comments from both Microsoft and Casey Muratori about particular details of their implementations, Windows lacks a terminal like Linux Kitty (there&#x27;s an unrelated Kitty that&#x27;s just a fork of PuTTY).<p>And by that I mean speed and features. Kitty is fast and a joy to use, and it is the software I miss the most when I am using Windows.
allo37over 3 years ago
I noticed that when you propose a new idea, often there is no shortage of resident &quot;experts&quot; giving you hand-wavy reasons as to why it can&#x27;t work, won&#x27;t work, etc. I kind of feel like you DO need a PhD just to have enough clout for these kinds of people to trust you.
firebazeover 3 years ago
In other news: <a href="https:&#x2F;&#x2F;github.com&#x2F;microsoft&#x2F;terminal&#x2F;issues&#x2F;11405" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;microsoft&#x2F;terminal&#x2F;issues&#x2F;11405</a>
mbrodersenover 3 years ago
My company hired a number of PhDs. They were all smart and well educated but for some reason couldn’t turn that knowledge into working software. So they were all fired in less that a year.
stephc_int13over 3 years ago
This story should be pinned somewhere for all to see.
ezoeover 3 years ago
Other example of slow performance in MS is file system access and process creation.
评论 #28744888 未加载
sitzkriegover 3 years ago
i swear half of this is sunken cost fallacy of cs educations
评论 #28744398 未加载
Trex_Eggover 3 years ago
Nice ending by the way.
hnfongover 3 years ago
There are a couple claims&#x2F;assumptions in the article that feel weird to me.<p>1. The article derides those using &quot;years of experience as some sort of a badge of knowledge&quot;, yet keeps on referring to &quot;experienced&quot; programmers as if they were better. Maybe it&#x27;s terminology, but in my experience (no pun intended) there&#x27;s no useful correlation between the time one is writing software and their ability to tackle hard problems. &quot;Experience&quot; seem to matter much less than talent, imagination and passion.<p>2. Article says &quot;Sitting in an office and shuffling papers around for a decade doesn’t make you a master programmer. Writing software does.&quot; -- writing software for a decade really doesn&#x27;t automatically make somebody a master programmer. The author states elsewhere in the article: &quot;I believe your self interest and curiosity matter more than the years spent writing getters and setters&quot;. So, which one is true? As mentioned in the previous point, I tend to think the latter.<p>3. The article mentions &quot;the vast majority of software is written by the ones who are still learning the ropes&quot; as if it were a bad thing. It really isn&#x27;t, in fact this is the only way people can get &quot;experience&quot; in a growing industry where junior devs outnumber senior devs simply due to how large the industry has grown over the past ~40 years. It has everything to do with exponential growth in the software industry and has nothing to do with programmers going into middle management and leadership roles.<p>4. To make sure software is competently written even if most of them are written by junior devs, the managers&#x2F;leads have to make sure everybody is assigned tasks that they can handle, perhaps with supervision by a more senior&#x2F;skilled dev. The job for the tech lead is to figure out which is which, and ensure that the critical parts are competently dealt with by appropriately skilled people. <i>This</i> is a skill that requires competence and experience. Unless you have an endless supply of senior devs, you definitely want to &quot;distract&quot; the senior developers from their implementation work and put them in charge of this work.<p>5. Article says &quot;the experienced programmers will take care of the design problems, but that is not going to save your bacon if the implementation of a great design is terrible.&quot; -- this is of course true if you have a team of truly terrible programmers, but not necessarily true if they are just &quot;mediocre&quot;. Design decisions include choice of language and architecture (and sometimes process), and some demand more of the developers than others. There are ways to isolate bad implementation with clean(ish) interfaces, so that &quot;big ball of complicated code&quot; becomes small balls of bad code that can be fixed up bit by bit.<p>6. This is one of the most confused claims in the article: &quot;If you want to produce a high quality software, you also need enough experienced people in the trenches that are not merely delegating the orders from the ivory tower.&quot; The only way this can work is if you only hire &quot;experienced&quot; people and reject all junior devs. Because in the author&#x27;s ideal world there&#x27;s really no place for junior devs. They can&#x27;t be mentored because that will distract &quot;experienced programmers&quot; from the real work in the trenches. They can&#x27;t be groomed for management roles because then they can&#x27;t become &quot;experienced programmers&quot;. It really sounds like to me that the author doesn&#x27;t really know how to properly manage junior devs in a team and simply assumes that if &quot;experienced programmers&quot; who have kept writing software in the trenches were able to keep writing software, then the result would automagically not suck. I don&#x27;t think the real world works that way, not until the software industry collapses and only the best programmers are able to keep being employed.<p>In all it feels like the author was trying to sound insightful by stringing together a story that, at best, is just pointing out that &quot;experienced programmers&quot; are better than &quot;wet behind the ears&quot; without providing a suggested solution, and at worst, making up superficial narratives that doesn&#x27;t really hold up when you try to poke it.<p>Sure, for every senior dev taking on management or mentoring duties, the team loses out some quality man-hours on coding, but that is presumably a positive trade overall, or people would stop doing that. The only way to keep &quot;experienced programmers&quot; focused on coding are: don&#x27;t hire junior devs, don&#x27;t mentor junior devs and don&#x27;t let technical staff enter management. I&#x27;m pretty sure that&#x27;s not what the author tried to say, and unless I&#x27;m missing some obvious solution pointed out somewhere, the whole point of the article seems to be spinning a flamewar from github into a sentimental narrative that doesn&#x27;t lead to any conclusions..
jtdevover 3 years ago
Such an interesting case. We need to encourage respectfully disagreeable people like the developer who raised this issue. A less disagreeable person would have stopped pushing after receiving the GitHub feedback regarding how complex the problem was.
jimmyvalmerover 3 years ago
tldr; common sense.
intricatedetailover 3 years ago
It&#x27;s a shame that engineers commit their time for free for the benefit of multi billion corporation. Why do they do it? These corporations are not your friends.
评论 #28744833 未加载
评论 #28744107 未加载
评论 #28744529 未加载
j_barbossaover 3 years ago
On the one hand you have idealists who think the most important thing in the world is getting the last bit of performance out of every program. On the other side you have businesses who don&#x27;t care too much about performance of their applications (especially when no money can be made out of it) as long as 80% of use cases are covered.<p>Whichever side you sympathize with, it&#x27;s pretty arrogant to think the other side is completely wrong.