12 ms·
Does Visual Studio rot the mind? (2005)
- cglan 5y agoAs a person who has to use visual studio every day, I find that it’s by far one of the worst IDEs I’ve ever used Beyond being slow and confusing and unintuitive I think the most annoying part is whats mostly mentioned in this article. Either you do things the visual studio way or screw you. Even creating a blank file is annoying and it keeps trying to shunt you into various templates.
- vlovich123 5y agoHaving worked on in a wide variety of C++ development environments (Linux, Windows, & Mac with a variety of IDEs), VS is hard to beat. It’s parallel stacks feature is particularly helpful in debugging threading issues.
- ed_elliott_asc 5y agoThe debugger is hard to beat, the rest of it is a bit crap.
- garaetjjte 5y agoIt would be fine but it is slow. Watch window refreshes and responds to expanding trees like it is traversing dozens of gigabytes on every single action. (if you enjoy watching rants there's one: https://youtu.be/GC-0tCy4P1U?t=1767 https://youtu.be/GC-0tCy4P1U?t=1767)
- dagmx 5y agoWhat other IDEs do you rank higher than Visual Studio? (Emphasis on IDE and not code editors). I'm going to assume C++ or C# dev. Eclipse is surely worse. Qt Creator and CLion/Rider are the only two I think are better . Xcode is terrible in comparison too.
- black_13 5y ago
- jcpst 5y agoRider for sure. I commonly see mistakes in code reviews that likely wouldn’t have happened if they were using an IDE that provided more information. Once Rider and dotnet core liberated my work from Windows, I don’t see myself going back to VS unless there’s some technical reason it’s use is required.
- andi999 5y agoHow about eclipse?
- achn 5y agoI don’t see how anyone can have this opinion. If you are producing code for which VS was designed (.net for example) it is obviously and definitely one of the greatest IDEs ever produced. If you are having to fight with VS, then you may not be using it for one of its main use cases. I certainly don’t think it is perfect (git support being quite annoying at times) but to say that it isn’t an incredible achievement is ridiculous.
- amelius 5y ago> If you are producing code for which VS was designed That's literally what GP is trying to say: "either you do it the VS way or screw you."
- n8cpdx 5y agoTry programming for Xamarin, UWP, or anything involving multitargeting. The list of actions for which closing visual studio, deleting a bunch of random folders, and restarting is long. Unfortunately it includes any changes to project files, because the project system is super broken with anything multitargeting related. That basically means I have to completely restart my IDE and run a script to clean everything maybe 15 times a day. And fuck me if I’m trying to find where a regression happened (which means changing dependencies, which live in the csproj). I remember when I didn’t have to restart VS 30 times a day, and memorize which build errors actually aren’t errors, and do random sequences of events to work around bugs, and memorize which unsuppressable warnings are legitimate and which are not. Before those days, Visual Studio was indeed an incredible accomplishment.
- lazulicurio 5y ago> Try programming for Xamarin, UWP, or anything involving multitargeting. The complaints in the original article fell rather flat to me, but this is one area where it's absolutely fair to criticize VS. More generally, the reason that build tooling in the .net sphere is such a mess is because of historical baggage from VS. With that said, if you're coloring within the lines[1], VS is very powerful and productive. [1] To an extent. There definitely are use cases that are "supported" only in name.
- hnthrowaway0315 5y agoHowever, I'm not sure if other C++ IDE beats VS. The thing about VS is: I started to use VS back in VS2012, and for EVERY version that follows, it seems to be slower and slower. The last version that I stay put is VS2017 and I still have it installed. I have very good experience about Jetbrain products so maybe I'll try their C++ product as well, but so far I heard it's not very good for large projects.
- dustymcp 5y agoWierd i have the opposite progression where its gotten faster 2022 also added abit more speed and laughable hotreload might give it a try?
- hnthrowaway0315 5y agoSure I'll see if 2022 is better.
- GiorgioG 5y agoI find VS2022 to be anything but slow now that it’s 64bit. Having said that, without ReSharper I find VS to be a terrible experience (I’ve been using R# for 15 years.) Rider is also a viable alternative.
- tester756 5y agoHave you tried Roslynator instead of R#?
- hughrr 5y agoI have a project here that won’t even open with Resharper on in VS2022. It just hangs and wedges the CPU at 100%, then my shitty laptop overheats and hibernates. Then I get pissed off and go for a walk and wonder why the hell I ever invested so much time in this.
- GiorgioG 5y agoLaptops have always been a compromise between portability, battery life, thermals, and performance. In my opinion, Visual Studio was never meant to run well on a laptop.
- ejb999 5y ago>>without ReSharper I find VS to be a terrible experience Resharper was always one of my favorite must have utilities to use for C# development in VS - but I have had the opposite experience as you, it became so slow and so bloated I had to give it up - often spiking my CPU to 100% and making the entire solution unusable - until I uninstalled it. Never could figure out why, but maybe resharper has gotten better since then?
- SantiagoElf 5y agoI strongly disagree with Visual Studio being slow. Visual Studio 2022 is hands down the best IDE ever created. (I have been using Visual Studio since 6.0 and .NET since the Beta of 2000) On this machine[1] Visual Studio 2022 flies :) [1] - https://valid.x86.fr/nkby1v https://valid.x86.fr/nkby1v
- thrower123 5y ago2022 does seem reasonable. 2017 and 2019 have been very bad. If they had moved to 64-bit a decade ago when it was obvious that they needed to do so, they would have never developed this reputation for being unusably slow and kludgy.
- SantiagoElf 5y agoWorst was 2010, when they tried to switch to WPF or something. It was really slow. The top versions of Visual Studio for me: VS 2022, VS 2008 and VS 2019. The Chief Architect of Visual Studio mentioned on the VS 2022 launch event that they were planning to migrate it earlier, but according to telemetry data - just the past 2-3 years people started to use 64 bit operating systems et mass :) Btw I would love to see percentage of programmers who have families and children broken down by: 1. Ones using IDE like Visual Studio, Eclipse, Rider, etc. 2. Ones using IDE-ish editors like VS Code, Sublime 3. Ones using vim/emacs :)
- jen20 5y ago> according to telemetry data - just the past 2-3 years people started to use 64 bit operating systems et mass This is what happens when you blindly trust telemetry when the target group of a product is the most likely to disable it because of company policy or personal preference.
- kaetemi 5y agoYeah. You just create new code files outside of VS, and re-run CMake or add them to the project. Adding a new source file in VS will always shoot it in the wrong folder, and apply some useless template. Other than that, VS is great.
- gromitss 5y ago
- thrower123 5y agoRemarkably little has changed in Windows programming in 17 years.
- vsareto 5y agoWell sure, we mostly fucked off to building websites and APIs
- n8cpdx 5y agoSame could be said for Mac or Linux development, but those ecosystems have continued to evolve, and the modern approaches to things can generally be taken seriously (unlike WinRT/UWP/WinUI2/WinUI3). It’s worth meditating on how thoroughly Microsoft failed to keep their stack modern. I think it’s much easier/faster/cheaper to create a great product using web tech these days than Windows, and that’s 100% on Microsoft.
- ripley12 5y agoAgreed. It's not for lack of investment either; they invested staggering amounts of engineering time in WinRT and UWP and they actually built some cool stuff. But, well... it certainly didn't help that they made it so difficult to adopt the new technologies. Project Reunion/WASDK makes it seems like they've learned that lesson and are trying to salvage what they can - but it's much too little and much too late.
- tailspin2019 5y agoTheir cloud “stack” is pretty modern. I thats clearly where a lot of their effort has gone. And not to be too “fanboy” about it, .NET 6 is superb (for web dev at least). I think it’s worth giving MS some credit for what they’ve achieved there. Like it or not, Azure is impressive. But I agree with you with regards to the traditional Windows stack. It’s not in a good state at all. I rarely use Windows any more, at least where I can help it. And I’ve been an MS orientated developer (starting with VB/ASP) my whole career. At this stage I’d be very happy to never touch Windows again unless they make a very sharp course correction in the next year or two! (And to the point of the article, I’ve switched from a career-long use of Visual Studio on Windows to Rider on the Mac and I’ll hopefully never go back!)
- aklein 5y ago> What the Internet seems to do best is make commonly available enormously vast resources of mis-information that we never knew existed. Wow - so prescient
- unbanned 5y agoSuch as the title of this post.
- diego_moita 5y agoI used Visual Studio a lot until 3 years ago, to the point that I was almost addicted to Intelisense. I'd answer yes but it is not just Visual Studio, it is the whole comfortable, automated, well integrated and productive environment of MS tools: VS, .Net, SQL Server, ASP .Net, C#, etc. But that can be said about all sorts of sophisticated, strongly integrated and powerful tools, not only Microsoft's. The whole XCode/Swift/Apple ecosystem is not very far off. The good thing is that these tools will never be the ultimate answer. Computing environment changes and that moves people away from their comfort zones and forces them to try new environments.
- dragontamer 5y agoCounterpoint: > API Proliferation While Windows has a huge API, the Unix/Linux-side is particularly huge as well. Win32 API includes a wide variety of cryptography for example, while modern Linux leverages a 3rd party open source program: OpenSSL or similar, to accomplish the same thing. Another example: Windows Jet Red, which is roughly equivalent to Berkley DB (older style database focused on concurrency of access features / transactions, WITHOUT building up to a higher level SQL interface) There's also obsolete / legacy technology. GDI is fully legacy these days (GDI is simply a layer on top of the "modern" DirectX framework, replaced by Direct2D). So all of those HBrush / Printing code is as unused as GTK 1.0 (or perhaps lower level XWindows code). 1. The Win32 team is very good at supporting legacy code. The API is monstrous, but it accomplishes its goal to a significant degree. Code written 30 years ago largely still works, you can't say the same about any other modern windowing API. 2. The technologies used in Win32 API cover a huge number of competing technologies. Not just OS-level stuff (files and IPC), but also cryptography, databases, threading and more. Furthermore: this API has remained consistent for decades (while Linux has had huge threading changes: the shift from Linux threads to NPTL threads for example). 3. Obsolete portions of the Win32 API hang around. Both the good and bad bits. Other OSes retire these supporting libraries (ex: GTK 1.0 or GTK 2.0, or KDE) more quickly. > Avalon and XAML Oh man. Petzold didn't even get the half of it since he couldn't see the future. XAML's biggest issue is the lack of legacy support. Here he's talking about how Avalon/Longhorn (precursor to Vista, precursor to Silverlight, precursor to Win8) was being handled by programmers inside of Microsoft. Maybe if Avalon stuck around for a while, it'd have been cool. But the amount of change that occurs over the next 17 years has made any bet on XAML a poison pill. Win-Vista gadgets are gone, fully obsolete and unsupported. If you moved your stuff to Silverlight, too bad, Silverlight is _also_ gone. But don't worry, your Silverlight code got translated to Win8/Metro right? Or... was it UWP? I think ultimately, the XAML has become much more beautiful and elegant. But these days, its an issue of "trust". Its a big and expensive hassle to rewrite your code into other frameworks, and Microsoft just didn't want to build XAML-stuff on top of anything steady. It does seem like things have settled down upon UWP finally. Win10 / Win11 seems like its holding that API "steady". But Microsoft really shot itself in the foot too many times.
- ripley12 5y ago
- hughrr 5y agoIgnoring the entire article, after using it for 20 years now, it rots my patience and will to live on large projects. It’s like driving a 30 year old car that was serviced 20 years ago and veers off the road uncontrollably once an hour. I suppose the last feature is modern if you compare to a Tesla. The twisted thing is that from what I have seen, the entire .Net development community is so compartmentalised that they think this is business as usual. Literally spending all day in pain with no idea there is a better life out there.
- alkonaut 5y agoWhat’s better out there? I’m using VS with a solution that eaaily has VS use 10Gb ram. I have tried vscode and Rider too, but Rider really wasn’t an option with parity until this last year or so. The perf in Rider is a bit better but I wouldn’t say it’s a dramatic difference. VS on reasonably small solutions (fewer than say 50 projects or 10k source files) is more than snappy enough these days. It’s on those large solutions it runs like a dog when each GC collects 2-3gigs of garbage in 5 frozen seconds and runs every minute.
- hughrr 5y agoWhat would be better is if they actually tore down the myriad of shitty misfeatures, bloat and bugs and did some housekeeping rather than change the theme and pile on features like an Indian train at rush hour. The one that kills me is the moment I hit . After an identifier I have to wait 30 seconds for it to work out what to do. That’s just broken. As always with Microsoft they need to actually go talk to the customers rather than collect telemetry.
- alkonaut 5y agoThey can’t because VS is a pile of COM-mess compatibility. So when they clean up they did it in vscode because there are decades of compat to maintain in VS. Every VS has to do what every old VS did and the new things. And it has to do it the same way too.
- dustymcp 5y agoim having a hard time to relate to this, i like vs for c# .net, where i can see it as a problem if its forced upon clients with js or nodejs projects these do not seem to run well.
- jcpst 5y agoWorked on nodejs projects like this before, where VS was the prescribed IDE. All it does is mix in the worst parts of the VS experience into node development. I would make changes in Webstorm, and then other devs couldn’t see my changes in VS because the proj file wasn’t updated. So then you _have_ to open VS to impose it’s junk on something that would normally be editor-agnostic
- dustymcp 5y agoOh yeah i loved that part, if i had a cent for all the times the build dont work and i replied, did you remmber to include?
- michaelhoffman 5y ago> I don’t speak to user groups or developer groups very often, partially because of a bad experience I had a number of years ago… I decided to talk about something that people could not read about in my book… Well, people went berserk. I suppose they had been expecting me to tell them everything they needed to know about Windows programming in the space of a few hours, and that’s certainly not what I was interested in doing. > That was a very traumatic experience for me, and since that time, I have been reticent about speaking before groups like this… This is bizarre! It's hard for me to imagine an audience reacting this way to a talk. Maybe it's because I haven't been to any user group or developer group meetings. What does "went berserk" in a way that was traumatic for him mean? Did people start heckling him in the middle of his talk? Even harder to imagine!
- alkonaut 5y agoI think VS of 2005 and VS of 2021 is wildly different. Back then, chatty Apis like MFC made wizards and code generation almost a requirement for doing anything useful. Putting a window on screen required the equivalent of rendering with Vulkan today. The problem wasn’t Visual Studio rotting the mind, it would have rotted under Win32+mfc anyway. For comparison, a netcore6 command line app is now a one liner.
- xyzzy_plugh 5y ago> Putting a window on screen required the equivalent of rendering with Vulkan today. I'm honestly doubting you've done either because these are not remotely comparable. A "hello world" win32 program that draws a 2D image is easily at least one or two orders of magnitude less code than the vulkan equivalent. I've sold win32/mfc software that was only a few hundred lines.
- UglyToad 5y agoTalking just about the title since the contents of the article are about as relevant as a discussion of Java 1 nowadays. No. I had a huge amount of insecurity about this until I tried AoC this year. You know what's really great? Tools, power drills, printers, word processors, chainsaws, indoor toilets, heating. You know what's also great? Not trying to code in notepad with a paper reference manual. There's a weird subculture of developers who get off on playing on hard mode and I can finally see there's no great secret in the suffering, it's just rubbish. Language servers, autocomplete, intellisense, inline documentation, time travel debugging, it's just better. Sure if you enjoy the challenge of coding in Google Docs go for it. But if I want to get work done I'm going to use tools to assist me and I'm no longer going to feel lesser for being productive.
- DangitBobby 5y agoI think "no" as well, but I still think it's an interesting read because he lists some consequences that I hadn't ever thought much about. None of them have anything to do with mind-rot, though.
- Clubber 5y agoI remember having a discussion with someone in the late 90s. He said he could code websites in notepad. I assume he was trying to brag. I said so could I but who the hell would want to.
- ridiculousthrow 5y ago
- dnautics 5y agoI think it's worse than that. If you are expending mental energy on your dev environment, that's energy you're not spending on thinking about security, readability, maintainability, etc.
- marcodiego 5y agoMy father learned to program in FORTRAN in the 70's. He used punched cards, wrote his code, left the batch of cards at the computer operator and came back a few days later to get the printed results of his program. Sometimes the results were "syntax error in line 11". He never saw the computer but he learned to think before writing. I met some real old people who used to print their code on paper for review. They made annotations, spent some time reading it like old people used to do with newspapers. They thought about it, sometimes discussed about it, you could see the code was carefully studied out by marks of coffee or cigarette ash. I learned to program on 8-bit 80's home computers. I later turned to IDE's on PC's. I was impressed by the apparent gain in productivity. I then tried to use linux as old time unixers did. I was impressed that I could feel and sometimes even see what was happening. I saw some great and productive coders who used nothing else than a well configured programming text editor and a terminal. For me that was the most productive and advanced way to write code. I didn't change my mind even after using jetbrains IDE's. I then became a teacher. I saw students who couldn't tell the difference between a programming language and an IDE. I heard people say java was much better than C and asked why; they explained how great eclipse was. I saw students who were not really writing code, they were writing some random code here and there and waiting the IDE to suggest corrections. One day I said: "Today we'll write code, but we'll do it on pen and paper first and then we'll type it." After a few days, their skills clearly improved. Syntax errors were rare, off-by one errors mostly disappeared and they started thinking before writing. I'm not against IDE's, but it is easy to get bad habits because of them. I don't think IDE's are a good replacement for a terminal with a good set of tools. They can improve productivity of good and experienced developers, but when used as a complement, not as a replacement.
- sokoloff 5y agoThis resonates with me. I’m teaching myself Clojure and doing AoC questions as the vehicle. The highly interactive nature is a blessing and a curse. It’s a blessing if I’m thinking clearly and just want to quickly test my code. It’s a curse when I’m not thinking deeply and instead just layering bandage after bandage on the code until it “works”. It’s not the tools; it’s the carpenter.
- BeFlatXIII 5y ago
- ChrisArchitect 5y ago(2005)? Anything new here since then? Some previous discussion not that long ago: 2 years ago https://news.ycombinator.com/item?id=22258198 https://news.ycombinator.com/item?id=22258198
- sblom 5y agoHis IntelliSense-enforces-bottom-up-programming rant couldn't be more wrong these days. IntelliSense (plus refactoring suggestions) is perfectly happy for you to speculatively make a method call that doesn't exist and then to infer (and auto-implement) its definition based on the types of the parameters passed in the example call. I find meet-in-the-middle works quite well, starting with a top down outline of what I'm trying to accomplish combined with implementations of the design-critical algorithms that I know I need at the bottom, and having all of that come together in the middle. I find that the bridge rarely fails to join up correctly in the middle of the lake.
- ozim 5y agoSometimes I get some rubbish automatically filled in by IntelliSense but most of the time I can just press 'esc' and continue doing what I want and not what editor is proposing.
- sblom 5y ago> Most of the really innovative interactive design stuff found its first expressions in the Windows-based versions of Visual Basic, and here’s where I started becoming nervous about where Windows programming was headed. Not only could you move a button onto your form, and interactively position and size it just the way you wanted, but if you clicked on the button, Visual Basic would generate an event handler for you and let you type in the code. At this point in the essay, we find ourselves arm-pit deep in get-off-my-lawn. He goes on to make the argument that a disjoint pile of event handlers attached to UI elements do not make a coherent program. Even while conceding that this claim is 100% true, there most definitely exist cases where all you need is a hand-drawn UI with disjoint event handlers to breathe a little bit of life into the experience. Frankly, most simple web pages find themselves DELIGHTFULLY in this category.
- dang 5y agoPast discussions over the years: Does Visual Studio Rot the Mind? (2005) - https://news.ycombinator.com/item?id=22258198 https://news.ycombinator.com/item?id=22258198 - Feb 2020 (118 comments) Does Visual Studio rot the mind? - https://news.ycombinator.com/item?id=3386102 https://news.ycombinator.com/item?id=3386102 - Dec 2011 (2 comments) Do modern IDEs make us dumber? - https://news.ycombinator.com/item?id=387495 https://news.ycombinator.com/item?id=387495 - Dec 2008 (37 comments)
- gigel82 5y agoWhen just editing code, I prefer VSCode. But for debugging C++ there is nothing that comes even close on any platform productivity-wise to Visual Studio. I guess if you're not doing cross-platform and staying within the ecosystem (MSBuild, NuGet, etc.), the project management is also nice.
- cercatrova 5y agoFrom Plato's dialogue Phaedrus 14, 274c-275b: Socrates: I heard, then, that at Naucratis, in Egypt, was one of the ancient gods of that country, the one whose sacred bird is called the ibis, and the name of the god himself was Theuth. He it was who invented numbers and arithmetic and geometry and astronomy, also draughts and dice, and, most important of all, letters. Now the king of all Egypt at that time was the god Thamus, who lived in the great city of the upper region, which the Greeks call the Egyptian Thebes, and they call the god himself Ammon. To him came Theuth to show his inventions, saying that they ought to be imparted to the other Egyptians. But Thamus asked what use there was in each, and as Theuth enumerated their uses, expressed praise or blame, according as he approved or disapproved. "The story goes that Thamus said many things to Theuth in praise or blame of the various arts, which it would take too long to repeat; but when they came to the letters, "This invention, O king," said Theuth, "will make the Egyptians wiser and will improve their memories; for it is an elixir of memory and wisdom that I have discovered." But Thamus replied, "Most ingenious Theuth, one man has the ability to beget arts, but the ability to judge of their usefulness or harmfulness to their users belongs to another; and now you, who are the father of letters, have been led by your affection to ascribe to them a power the opposite of that which they really possess. "For this invention will produce forgetfulness in the minds of those who learn to use it, because they will not practice their memory. Their trust in writing, produced by external characters which are no part of themselves, will discourage the use of their own memory within them. You have invented an elixir not of memory, but of reminding; and you offer your pupils the appearance of wisdom, not true wisdom, for they will read many things without instruction and will therefore seem to know many things, when they are for the most part ignorant and hard to get along with, since they are not wise, but only appear wise."
- burke 5y agoThis is spot on, and I've found myself making the same argument recently about GitHub's Copilot. It's changing the way I write code in a way that I can already tell is allowing me to be much lazier than I've previously been about learning various details of languages and libraries. There's an obvious tendency to play Thamus and judge that as a bad thing, but I think the reality is that Copilot and future generations of tools inspired by it will completely change the operation of programming in ways we can't even imagine yet, allowing us to build software more quickly than we currently suspect. It's a train of thought that spans the arc of history: the New Thing, which allows young people to get by without developing deep skills in an area that was previously critical to success, is inherently bad because it enable laziness. In reality, it provides the leverage necessary to do things faster, or sometimes to do previously-unimaginable things.
- ninkendo 5y ago> Well, the debate is now over. In order to get IntelliSense to work correctly, bottom-up programming is best. IntelliSense wants every class, every method, every property, every field, every method parameter, every local variable properly defined before you refer to it. If that’s not the case, then IntelliSense will try to correct what you’re typing by using something that has been defined, and which is probably just plain wrong. This gives me an idea: somebody should make an inverse intellisense that lets you type as if a function exists that you haven’t created yet, and instead of using a bunch of red squigglies and making you feel like a fool for typing broken code, offers you a shortcut to create the code that doesn’t exist yet. Bonus points if it uses the language’s type inference to inform what to create, like: String s = foo.bar(someInt); Would offer a quick way to make the stub: // (class of foo) String bar(int someInt) { // TODO } There’s probably tons of ways to make this super ergonomic too, maybe with an easy keyboard shortcut (maybe if ctrl+space triggers intellisense, ctrl+enter could trigger the “make stub” functionality) and could work quickly and with no fuss. The method just gets added in the background, you don’t even see it, you just get to keep typing out your train of thought. This could be extended to more than just methods, but whole classes/structs/etc. I know IDE’s have lots of affordances for creating new code from templates/quick actions, but there would be something magical about being able to just type out your mental model at the current abstraction layer, all at once without distraction, and have the IDE better help you “make real” the code you just referenced.
- gregors 5y agoThere's a code first approach that's pretty common in VS - but it's at the class level - Just write the code inline and click on it and it generates the class/method stub. So What you are suggesting already exists in standard VS. The tweaking of allowing possible results in the dropdown is a very very interesting idea - imagine if you let copilot suggest possible methods based on the domain context of the current project.
- ninkendo 5y ago> pretty common in VS - but it's at the class level I haven’t used VS in over 10 years - what does “at the class level” mean? Does it only create stubs for the current class, or any class that’s in the current project? It is interesting that VS has this at all though, as a daily Xcode user I’m jealous. Especially because ObjC and Swift have first class (and popular) ways to add methods to classes you don’t own via extensions… the concept of adding new methods automatically as you type is even more attractive in this ecosystem.
- misschresser 5y ago> And I sincerely hope that in five or ten years from now, we’re not still watching reruns of Friends 17 years later checking in here.. humanity shows barely any reduced appetite here.
- logbiscuitswave 5y ago> Eventually, the interactive design stuff found its way into development with C++ and the Microsoft Foundation Classes, and there, I truly believe, code generation was used to hide a lot of really hairy MFC support that nobody wanted to talk about. Every so often for my day to day job I need to work with some really old and crusty MFC-based UI code and while Visual Studio still technically supports MFC, in practice it seems to be basically unusable. I doubt anybody at Microsoft actually tests this functionality because much of the time it fails spectacularly for me - even the templates don’t even really work. So this means I need to struggle through manually messing around with impenetrable machine-generated code files and hope for the best through extensive trial and error.
- olliej 5y agoMany of the arguments against IDEs in general apply just as well to the punch card -> text editor transition. It's just that the arguments are more easily seen as folly in the latter case. In terms of code completion, the complaints in the article seem more focused on it being buggy, but there's also complaints about it dictating how code is written or feeling bad for using it (??). Code completion is a win. Automatic completion of names is a speed win. The ability to get essentially an locally relevant API reference is a win. Even the ability to write code by relying on code completion giving you correct suggestions is a win: it clearly lowers the barrier to writing functional code. The issues people have with the last one boil down to "people can get the job done without knowing how everything works". A lot of the rest of it seems more griping about VS default behavior rather than the impact it has on the code being produced. When push comes to shove, the real issue people have with many of these things is essentially that it lowers the bar to getting a program to "work". It lets "bad coders" succeed. Sure, such tools can result in bad code, but in the end the goal of anyone writing code in any form is to getting a task done, in which case "bad" code is better than no code. Even better is that people who start off thinking that programming is some magical impossible skill may start with some basic tutorial + stack overflow + code-completion code, but in doing so and getting something to work they may do it again, and after a while develop their skill. Maybe they'll laugh at their old code, maybe they won't, but the important thing is that the tools doing some of the work made it possible for them to do the rest. Another simple analogy is manual vs. automatic cars. Are automatic cars bad because learning to drive in an automatic means you don't know how to drive a manual? Some people argue yes, despite the abundant evidence that the existence of automatics made driving much more accessible. It also reduces the need for a driver to focus on anything other than driving, which is very clearly a good thing. [edit: minor (?) tone issue]
- logbiscuitswave 5y agoIf anything things like refactor suggestions and the like can make bad coders better by telling them things to fix before they even save their changes. It’s like a “code review in a can”. I try to encourage the people I work with to use these tools because it means less time is wasted on nitpicking over things like style and common mistakes during code reviews and everything can go more smoothly.
- pcdoodle 5y agoShout out to Xojo for being a good replacement for basic!