""" As a postscript, I’ve heard several stories about people who leave Google or Facebook and have a hard doing being productive at the next place. Both of those companies have planetary-scaled systems and the amazing tools to handle that. The next place doesn’t have those tools, and suddenly you have to know how to do things at much lower levels. If you never learned those levels, you are practically starting over and your previous experience isn’t that important. Their tools do their things, not general things, and certainly not someone else’s things. """
What do you really get from IDE-driven development?
131–140 of 143 posts
Re: What do you really get from IDE-driven development?
#132Earlier quoted context omitted.
Well, what's the old saying - nothing can parse Perl, but Perl? As for JS and IDEs, you should try an IDE again. Far better.
Haha I've not heard that one. Perl is very much an unreadable code soup. I will have to try on next time I'm in plain JS. It doesn't happen often. I have a preference for strongly typed languages. I suspect I have something similar to dyslexia. I mix the spelling of words and sometimes even the words. Strong typing is the tool that makes that problem go away.
But I fully agree wrt types. Even if I'm not using an IDE, types, or type hints a la Python, help me understand what's going on far better.
I once heavily refactored a hand-rolled build tool written entirely in Python that read and write JSON. Everyone was terrified of touching it.
Introducing Pydantic to replace dicts of dicts of dicts with dicts of App instances that had Environments immediately made the code far easier to understand.
Then introducing type annotations and mypy completed the transition of a business critical tool from one everyone previously approached in what I called a "special forces" manner (get in, achieve your very narrow goal, get out before anyone notices you) to something where code flow was easily understandable.
Immediately, the tool received a lot of attention and refactoring. Something like 20% of it was dead code, amd there was some functionality that, had it been used, would've corrupted the build state or just flat out died.
And it was simply adding types that made this obvious, and made the code accessible to people who wanted to refactor it fearlessly.
(Unit tests were entirely absent, but without the understanding of the code that types brought, how would you even start?)
Re: What do you really get from IDE-driven development?
#133Earlier quoted context omitted.
I want to improve & grow, get better at computing. This idea of being good enough, embracing mediocre capabilities for life & only focusing on shirt term output forever is exactly the local minima this post is warning against. Selling yourself a compromised future, being a passive consumer of technology, is anathema to the greater objectives of life & computing, in my view. Selling yourself on comprimise, swearing yo…
We build on the shoulders of giants and there's nothing wrong with that. The terminal is just one abstraction down of an abstraction of an abstraction of an abstraction of an abstraction of an abstraction. Not very impressive.
There's no better way to see real truth in computing. The shell exposes the base truths of the OS abstraction directly: processes, environment variables, stdio, signals, pipes. This is the fundamental toolkit of computing, and what higher-level abstractions we see (from language's stdlibs, to things like Kafka or SQS queues) are better understood in terms of the base computing fundamentals. The base unix tools define a clear set of capabilities we should be familiar with, & to call them just another abstraction, to focus on our own local platforms, ignores the base root that all computing so far eminates from.
This abstraction-relativism you present is highly dangerous. Arguing we shouldn't care about anything because there are abstractions everywhere ignores a realer truth, that some abstractions have been around & underpin nearly all systems & likely will continue to do so. We're only barely starting to play around with alternative conceptions, in projects like Fuschia. But this is a rare, novel, & just-emerging break from our common frameworks of computing. One that would behoove people to gain some competency in.
Re: What do you really get from IDE-driven development?
#134Earlier quoted context omitted.
Completely agree. I recently had to work on an unfamiliar JS codebase. After initially pulling my hair out trying to understand what objects were being passed where, I decided to define some types and parameters using JSDoc . VsCode picked them up instantly and it was like coding with a language server after that.
Also recommend this to learn a new code base which will log every function call: https://www.npmjs.com/package/@phenomnomnominal/debug
Re: What do you really get from IDE-driven development?
#135Earlier quoted context omitted.
Powerfull, but sloooow. I really want a faster Jetbrains IDE.
Usually when people have speed problems with Jetbrains IDEs it's one of two things: 1. Heap size is too small and it's GCing a lot without the user realizing. Open IDE VM options and double the -Xmx setting. 2. Using a 4k display on macOS. Try the new JBR17+Metal builds. They aren't shipped yet but switch it to using Metal to render. Makes it a lot faster.
My heap size is already at 3GB, which I feel should be enough for opening a bunch of 5kb text files :/
Re: What do you really get from IDE-driven development?
#136Earlier quoted context omitted.
I'm currently mentoring someone from scratch and they're using autocompletion a lot. Have mixed feelings about it to be honest. I'm not a big fan of tools like Copilot and it'll be really hard for someone to convince me of its value. On one side, it's as you mentioned. If you randomly pick a "solution" and hope that it works, you won't understand why you use that specific solution. And sure enough, many times they'd…
> One particular problem I remember was a type difference issue. They had a string and needed to compare it with a string in an object. Easy, just do something like myObj.myVar == "string" right? But autocomplete suggested myObj.equals("string") instead. This is java code. Then I had to explain why it didn't work as intended even though the code compiled. Actually, you need to use `.equals()` for value equality on re…
Re: What do you really get from IDE-driven development?
#137Earlier quoted context omitted.
> One particular problem I remember was a type difference issue. They had a string and needed to compare it with a string in an object. Easy, just do something like myObj.myVar == "string" right? But autocomplete suggested myObj.equals("string") instead. This is java code. Then I had to explain why it didn't work as intended even though the code compiled. Actually, you need to use `.equals()` for value equality on re…
Nitpick! You should always use the constant for the first part of an equality check so you won't get NPE if myobj is null: "string".equals(myobj);
Re: What do you really get from IDE-driven development?
#138Earlier quoted context omitted.
> Is it true that "90% of code is crud"? It is, if you want it to be. You're being way too generous from a false sense of compassion. Most code is not written from a place of serene comprehension. It's written under the pressure of getting features out the door fast enough to justify a paycheck. Add in that programming is a task that is rapidly changing over time -- so what's good today, is a naive implementation tom…
Kind of my main point, I just choose not to think of it as "crap", but as the best expression of the coder's intent given the all the constraints at the time it was written, including deadline pressure, context, experience. Try it out. Now instead of "wading through crap" you can think of it as "sifting for nuggets of wisdom". Or whatever you like.
Given that framing, what expectation can there be that an automated platform like CoPilot can acquire the wisdom to recognize gold from dirt? I believe it may be a question of does the overlapping, correlated portions of code from the corpus of repos signal the gold or signal the common dirt encasing the gold?
I largely expect it's the latter, and that the trends copilot is likely to recognize and use as foundations for its suggestions are motivated from dirt. To accept them and to learn from them is to internalize a horse without a cart philosophy.
Re: What do you really get from IDE-driven development?
#139Earlier quoted context omitted.
Usually when people have speed problems with Jetbrains IDEs it's one of two things: 1. Heap size is too small and it's GCing a lot without the user realizing. Open IDE VM options and double the -Xmx setting. 2. Using a 4k display on macOS. Try the new JBR17+Metal builds. They aren't shipped yet but switch it to using Metal to render. Makes it a lot faster.
Huh. Nr 2 is applicable to me. Will give it a try. Can’t see how it’ll fix my permanent indexing, but maybe it’ll at least feel faster. My heap size is already at 3GB, which I feel should be enough for opening a bunch of 5kb text files :/
Re: What do you really get from IDE-driven development?
#140I'm not sure I buy his argument. I see many programmers who produce inferior code with an IDE and many programmers who produce excellent code with an IDE. I'm in the Java ecosystem, where IDEs are pretty much ubiquitous. But I've used plain editors in the past mostly for other languages. All in all, I don't see the link between using an IDE or not and the quality of the outcome. But I do see the link between using an…
> I'm in the Java ecosystem, where IDEs are pretty much ubiquitous. Isn't that because dealing with the complexity of many modern Java frameworks and surrounding tooling is pretty much impossible without an IDE?