| ▲ | UltraSane a day ago |
| I find it so fascinating how many programmers proudly declare how they don't use any IDE when incredibly sophisticated tools like solidworks or Synopsis are universally used in engineering |
|
| ▲ | asa400 a day ago | parent | next [-] |
| Completely agree, having worked with engineers and scientists for a large part of my career. Programming is still in this goofy phase as a profession/industry where lots of practitioners interpret suffering and complexity and difficulty as signals of underlying quality. There are still large numbers of programmers who see advances in human-computer interaction and tools as basically childish, because what matters to them is the feeling of machismo they get while programming, rather than whether their efforts make their users more successful. See the pushback against IDEs (as you said), syntax highlighting (“syntax highlighting is for children”), Rust (“_I_ know how to manage memory, everyone else is an idiot who needs to git gud”), types generally (“_I_ don’t make type errors”). Even high level languages and garbage collection were met with similar derision when they were going mainstream. There are so many examples of this throughout the history of programming. If something is hard to do, or resulted in something impressively complex rather than something underwhelmingly simple, it must be good. Basically, we’re still a very immature profession and it’ll take time before we shed the “the most important thing about programming is that I get to be a wizard” stuff. The users care that the bridge doesn’t fall down when they drive over it. The users don’t care whether designing the bridge made me feel powerful and wizardly because I used a crayon rather than Solidworks. |
| |
| ▲ | kodoman a day ago | parent | next [-] | | Basically all text editors now do syntax highlighting, I have not heard any one say they avoid syntax high-lighting. I personally avoid the usual auto complete interface style and stick with the emacs default of explicitly requesting the editor to completion at point, not because it can't do it or that I am being macho but because I find it distracting and find it obscures code I often want to look at. I hate with passion GUI's that stop be copying text and other crack that modern IDE's often do. I don't avoid modern features at all and actively use pretty much all of them. If something like and IDE works for you that's great. But their is not some deep psychological need I am fulfilling, other then using tools that have less friction for me. Additionally the post is about haskell a very high level language with the type system being the main feature, this persons choice in emacs is clearly different to the type that shun type systems and GC. Additionally I do not actually think the types that shun GC and shun type systems intersect as much as you make out, the types that shun GC are performance obsessed kinds of people in which type systems can improve performance significantly and those that shun type systems are (a dying breed) tend to be those who like scripting languages and hacking something together quickly. Most people recognize that both have their place I think. Maybe the example of a carpenter who has a set of trusted tools and might like or a chefs set of knives, if we really need to look at other professions and measure are self against them. I think if you ask people why they use text editors (or IDE's) they will give their own valid reasons for each. | | | |
| ▲ | ux266478 a day ago | parent | prev | next [-] | | I think that's an incredibly ignorant and hostile read, frankly. It's a manifold of human behaviors manifesting as something you're painting with a large brush. In the largest stroke, if you have any empathy and a competent theory of mind, you understand it's simple identity protectionism. People attach their identities to their methodologies and tools, and are generally close-minded. I like to think of it like an energy saving trait hardwired into the human mind, even if it's a little bit annoying. The behavior also isn't unique to programming at all. You can observe it in the various engineering fields. As a single example, in civil engineering you have the conflict between allowable stress design or load and resistance factor design. You even see the behavior in fields like medicine. Different doctors have different views on different methodologies, treatments, etc. Ascribing it to the "youth" of programming as a field is strange, not just because of its observability in older professions, but because the things you're complaining about are things that emerged as the field got more mature. I think there's a serious self-flagellation problem some programmers have for themselves after being talked down to by other fields that you're exemplifying here. There's nothing particularly unique about the social dynamics of programming. | | |
| ▲ | asa400 a day ago | parent [-] | | I have literally seen this firsthand enough to consider it repeatable. I am not making up characters for effect. I have seen and worked with people who didn’t want to write tests because they thought it made them appear weak. I have seen people say they use Ruby because they “don’t want a compiler holding their hand” as if a compiler diminished them personally (I have nothing against Ruby specifically). Programming is a young field compared to basically all the others. It is immature. It is undergoing massive change quickly. It does have an immature, barely developed theory of practice. This has weird effects, just like how other disciplines had weird quirks when they were young too. What was young medicine like? I have a great deal of empathy and respect for programmers. Same for engineers and doctors. None are infallible. Doesn’t change my read that our (programming) culture could be better than it is in specific ways, which could result in better decision making in the aggregate. As for your last point, I agree! I’ve worked too closely with them for there to be any mystique left. I don’t want programming to become civil engineering or medicine but I think we can learn things from how they think about quality and systems. They’ve had more practice at it. | | |
| ▲ | UltraSane a day ago | parent [-] | | I know I've seen enough people online proudly declare their hatred of IDEs and how real men code in text editors often enough to notice it as a pattern. | | |
|
| |
| ▲ | mrkeen a day ago | parent | prev [-] | | Well, put forward your tool-chain and we'll start insulting immediately | | |
| ▲ | UltraSane a day ago | parent [-] | | I just generally use the JetBrains IDE for whatever language I'm using. |
|
|
|
| ▲ | agentultra a day ago | parent | prev | next [-] |
| I don’t like LSPs. They’re slow and bloated. I’ve been using clangd but I think I’ll stop. It’s slow as molasses. It constantly tries to insert headers into source files that cause compilation issues. There are easier and faster ways to jump to definitions. I don’t use LSPs with Haskell anymore. I work on multiple projects which use different versions of GHC and the base library which means having multiple LSPs installed for each one. Trying to get eMacs to reliably detect which project is using which version is not something I have been able to figure out. Plus it’s slow and uses way too much memory. At current job I’m doing C# and man does the ecosystem there really push you to use an IDE. Most of my org uses Rider. I find it just as fascinating that people actually like using tools like it. Too bad it doesn’t have a decent text editor built in. |
| |
| ▲ | kodoman a day ago | parent | next [-] | | For me, though not blown the dust off it for emacs is to simply use direnv with nix and direnv will set your bins to the correct lsp server configured correctly for that project via nix and then load it using eglot (I have set eglot purposely to not load by default for as you say it can be slow and not always what one wants to load especially for small edits). I have to agree with your comment about lsp in general they feel a little over engineered or old tags are nicer and feel less bloaty even if less powerful. | |
| ▲ | inigyou a day ago | parent | prev [-] | | Which is very strange when you remember that Visual C++ 6 on Windows 95 on whatever hardware from that era was pretty fast. |
|
|
| ▲ | renox 15 hours ago | parent | prev | next [-] |
| You're phrasing this as if using an IDE was always an advantage, but unfortunately this isn't always the case: -IDEs are more resources hungry, I remember when trying to use CLion on a big C++ codebase, until increasing the garbage collector maximum heap size all I had was a blank screen, after it was just unusably slow... -even when IDE work, LSP for C++ codebase aren't very good, for example the caller hierarchy is usually very incomplete.. -I remember having been asked quite a few times, about "how do I use the IDE's integrated debugger to debug a target which was available only through ssh and then you had to telnet from one board to another?"
My answer? Use gdb. That said, I use VSCode now because its multiple tab handling is very nice, but I use it mostly as a glorified text editor (not by choice but because C++ is really IDE's unfriendly). |
|
| ▲ | mrkeen a day ago | parent | prev | next [-] |
| The language dominates the tooling. Real C programmers probably can't imagine doing real programming without gdb and valgrind. Real Java programmers probably can't imagine doing real programming with gdb and valgrind. |
| |
| ▲ | refactor_master a day ago | parent [-] | | Off topic but the way the four “program…” words line up on an iPhone is truly mesmerizing. | | |
|
|
| ▲ | kodoman a day ago | parent | prev | next [-] |
| They are using Emacs that's basically an IDE. |
| |
| ▲ | theokrueger a day ago | parent [-] | | IDE tends to be a curated tool for one specific language though. I guess in that sense Emacs is an ELisp IDE, but without any sense of curation. | | |
| ▲ | kodoman a day ago | parent | next [-] | | Yeah and you just have one interface that you have to know and customize rather then 100. not to mention the pleasure of shell mode and and tramp and dired. I feel people are missing out not using emacs or emacs like tools where all your customization and custom functions, bindings and minor modes apply to everything else you do (should they be applicable). | | |
| ▲ | theokrueger a day ago | parent | next [-] | | haha I am in fact a long-standing near-vanilla emacs user. never said it being uncurated was a bad thing, the customizability is unrivalled and the reason I use it. | | | |
| ▲ | inigyou a day ago | parent | prev [-] | | An interface that does everything does nothing well. | | |
| ▲ | kodoman a day ago | parent [-] | | Strongly disagree, Having a generalized interface IE text and being to manipulate things as text using all the same commands and functions is better then bespoke interfaces for everything else. It's not like you don't have custom interfaces for various things but that the interface is a text buffer and can be treated as such in all emacs modes. |
|
| |
| ▲ | inigyou a day ago | parent | prev [-] | | What's Eclipse then? | | |
| ▲ | theokrueger 18 hours ago | parent [-] | | ...a series of IDEs offering curated experiences for a specific target language The Java and C++ IDEs are separate packages built on a shared base. | | |
|
|
|
|
| ▲ | mcdow a day ago | parent | prev | next [-] |
| every tool present in an IDE is available elsewhere. it’s not that the IDE-avoidant aren’t using sophisticated tools, they just aren’t using them packaged up in a single application. |
|
| ▲ | ux266478 a day ago | parent | prev [-] |
| Because 'engineering' is a different field, with a different software ecosystem? What's fascinating about it? It's pretty blatantly obvious, engineers pay Dassault through the nose for Solidworks because there are no real alternatives. The same is not true for programming. If there was a high quality CAD server that was interfaced via plugins for programmable 3D editing software like Blender, then we can start making comparisons. Fact of the matter is that this isn't the case, not like what programmers have gotten in the last 20 years. It's absolutely not impossible for such a thing to exist, it just doesn't. Building things like high quality heuristics for the topological naming problem is quite hard. It doesn't help that almost every IDE in existence these days is also not a real IDE. Visual Studio, Xcode, Jetbrains, etc. are just a more rigid programmable text editor, they lack the "I", and quite a bit of the "E". Compare them with things like LispWorks and Delphi, and the difference is stark. For the former category of "DE"s, there are often tools which are just as high quality, if not higher quality, elsewhere. Speaking as someone that uses a very wide variety of tools, including the ones mentioned, there's really not a lot of point to them unless you just really like their specific UI/UX. |
| |
| ▲ | inigyou a day ago | parent [-] | | I remember when I moved from netbeans to eclipse and the speed of compilation was amazing. For the uninitiated, Netbeans uses a traditional "compile and run" button, but Eclipse does incremental compilation as you type (and actually wrote its own Java compiler for this purpose, which almost exactly matches the Oracle compiler). You get real errors as you type, and when you press run the program instantly runs. Didn't Donald Knuth or someone of that era write about this effect in Pascal IDEs? (The best feature though is that you can run a program containing semantic errors or even minor syntax errors; the body of any function that doesn't compile gets compiled as a throw-exception statement, so you don't have to comment it out when you're working on another part of the code) |
|