Live data from Hacker News

Benefits of Not Using an IDE

alexander-hansen.dev

241–250 of 389 posts

Re: Benefits of Not Using an IDE

#241
Hey Alexander,

thanks for your genuine post. I can't help but notice the big red disclaimer you put on the beginning.

Once I wrote a blog post about a thing I didn't like about Typescript and submitted it to Hacker News [1]. Bad choice. The hate was immense and unnecessary. I even had one guy write a long post about what a "soy dev" I am. That made me feel sad and dislike the HN and dev community.

Anyways, I just wanted to say that I appreciate your blog post and that I think you've made some good points. Thanks!

-1: https://timdaub.github.io/2020/09/01/typescript/

Re: Benefits of Not Using an IDE

#242
whenever people are talking about not using an IDE I do wonder

whether they had an opportunity to use Visual Studio's features like

expression evaluation during debugging with access to local variables,

ability to change code at fly,

ability to execute code in immediate window with access to local variables

Re: Benefits of Not Using an IDE

#243
If I am the main developer on a three year project, I use whatever editor, command-line tools and custom scripts I need to get the job done. The whole project, from code to ops, architecture, security and documentation, is in my head.

However, if I'm thrown in half-finished projects as consultant, the tooling in IDEs can help me to get a grasp on what needs to get done without necessarily having to construct the whole map inside my head. Whether this approach leads to better code is highly dubious, but one doesn't always get to pick outside factors.

These are just tools, each with their own purpose, benefits and weak points. The main criticisms of IDEs seem based on a certain type of developer that does not know the world outside of their favourite IDE and programming language, which of course is not a problem of the tool itself.

Re: Benefits of Not Using an IDE

#244
post #236

Earlier quoted context omitted.

>An IDE can be a powerful abstraction how IDE "can" be an abstraction? It's tool, it's wrapper (e.g button over commandline commands), but abstraction?

The line between the two isn't very clear, nor is it productive to really argue about it, IMO

>nor is it productive to really argue about it

I do agree

Re: Benefits of Not Using an IDE

#245

Listen, long story short: just say no to nonsense like this. Given the choice of a) tooling, or b) no tooling, you’re not being smart, cool or clever by choosing b. Obviously, what tools you pick are important and heavy IDEs like IntelliJ are a trade off between speed and functionality, and yeah, more nimble tools do exist, and it’s definitely worth trying different development tools to see what makes you most produc…

The best developers I've found are the ones who know how to work without an IDE, even if their preference is to use one. Contrastingly, the worst, slowest developers I've worked with rely on their IDE without understanding what it's doing for them, and are helpless in new/unsupported situations. They also, 100% of the time, screw up their git repositories on a regular basis, and need someone who knows what they're do…

I'm not even sure what to make of this. No sane developer I know will work without an IDE, much less prefer not using an IDE.

Sure, we can probably write code without an IDE but in what way does that mean I'm a better developer? I feel myself cringing whenever I hear that a developer is going to reach for TextEdit or Notepad++ to write code.

Re: Benefits of Not Using an IDE

#246

Earlier quoted context omitted.

“Power drills have batteries or cords and motors that wear down and they’re more expensive and complex and can break more easily and it’s just smarter to bring hand crank tools to the worksite.” - Nobody

Portable electric power tools are such a game changer when working on cars. I could never go back to the days of doing it by hand, it would be ten times worse for construction.

I would never use power tools on my motorcycle or car. On threading, nuts/bolts/screws should always be torqued gently into spec. On unthreading, I prefer to feel if there's significant resistance, warranting a cleaning/deoxidization of the part.

Predrilling a screw hole in some hard wood? Yeah I don't need to feel anything except the power of lithium cells dumping electricity into torque.

Re: Benefits of Not Using an IDE

#247

In Linux, it often feels like the whole OS is the IDE. In the same shell, you can edit source files, compile, debug, execute, rename, search, create and execute scripts to do literally anything with any language, use git, surf the web, update, reboot, launch a game, etc, etc. An IDE on top of that always felt restricting to me. Like why limit yourself? But maybe that's a windows/Mac thing.

> the whole OS is the IDE

This view is exactly the view esposed by Brian W. Kernighan and Rob Pike in The Unix Programming Environment from 1984:

https://en.wikipedia.org/wiki/The_Unix_Programming_Environme...

Re: Benefits of Not Using an IDE

#248
So, we are talking about tools. First some generalities:

We can expect that considering tools has to be complicated, e.g., apparently the rise of civilization involved the development of many tools for many purposes.

Closer to Hacker News, there is a LOT of data. The explosion in price/performance of computing and digital communications has the amount and variety of data growing. So, handling data can be a challenge, and picking tools can also be a challenge.

For handling data, there are some tools/data types, e.g., SQL, IDEs, Word, TeX, Aspell spelling checker, the old file search utility grep, HTML, JPG, comma separated values (CSV), spreadsheets, ....

Of course, if concentrate on one source of data for a few narrow purposes, then can have some specialized tools that were expensive to develop and needed training to learn to use but with a lot of usage can be very productive. Maybe a good analogy is the factory that produces the cans of beef ravioli that I eat sometimes for a fast meal -- no doubt they prepare ravioli by the square mile, and I doubt that they use a rolling pin!

Then there are people; they tend to be different: Some of these people work in a gold/copper mine, coal mine, on a huge fishing trawler that goes from catching the fish to having them frozen in retail packages, ..., down to changing the air filter in the family car once a year, getting the garage door back on track about each two years, cleaning up after the kittens have accidents, .... Some of this work uses big, expensive, specialized tools, and some uses just simple, old, general purpose tools, hammers, pliers, screwdrivers, maybe Vise Grips, a 1/4" electric drill, etc.

So, to give some evidence of case n = 1, me, and in computing, I use various tools. Examples include Google, Wikipedia, YouTube.

But for what I do on my PC where Google, etc., doesn't help, I settled on a broad strategy: As much as I reasonably and efficiently can, stay with text, standard ASCII (maybe more accurately with some UTF definition) text. Then to manipulate this text, use my favorite text editor, KEDIT.

I can customize this editor using its macro language, Kexx, a version of the M. Cowlishaw Rexx. Rexx is no toy -- before internets or the Internet, IBM had something similar in their internal computing, and a lot of it was run by servers written in Rexx. Currently I have something over 250 Kexx macros for KEDIT.

So, where I make use of KEDIT directly?

(a) Since some of my most important writing is pure/applied math, I've had to get good with D. Knuth's math word processing TeX -- I've written about 100 macros in TeX. So, I use KEDIT with its macros to type in documents in TeX with my TeX macros. Now that I'm good with TeX, it is also my favorite word processing for letters, business cards, and more.

(b) For remembering URLs, phone numbers, mailing addresses, other little items of information, I have a very simple little system based on KEDIT and a few, simple macros. All the data is in one file of, currently, 3,368,455 bytes. Currently I have 5947 such entries starting in September, 2005 and more in other files going back some decades. With the 5947 entries and 3,368,455 bytes, that is an average of

3,368,455 / 5947 = 566

bytes per entry.

Since

5947 / 16 = 371

on average I add an item to this file about once a day.

KEDIT makes it fast and easy to count the number of entries.

(c) In a file I maintain with KEDIT, I keep medical, diet, exercise, etc. history. I have some macros I use to extract data to read in with Excel and draw graphs.

That Excel will read in data from just simple text files is terrific.

(d) Mostly KEDIT is good for editing files one or a few at a time, but I use the Windows file system as a taxonomic hierarchy for organizing the files. Then I have a little program in Rexx that puts the data describing a file system subtree in a text file with several columns of fixed widths and use KEDIT to sort, search, select that content.

(e) One of my favorite macros is IDC, insert dated comment, e.g.,

     Modified at 13:24:42 on Saturday,
     August 21st, 2021.
So, with IDC I can slap time/date stamps on content and do so many times a day. Yes, the little macro reads the file type and puts in appropriate comment delimiters.

Just these time/date stamps are a good, fast, single way to provide first-cut documentation of work -- that months or years later are great to have if don't have anything else.

(f) I wrote a little KEDIT macro calc, abbreviates calculate to evaluate simple numerical expressions. E.g., at one point in my career my manager believed that a disk drive of 100 million bytes was large, much larger than necessary. At Amazon I just ordered an external hard disk drive with 5 trillion bytes. So, using calc, we can find the ratio

(5 * 10*12)/(100 * 10*6) = 50,000

(g) So I write code in Rexx, Kexx, TeX, C (occasionally), and Microsoft's .NET. And now that I'm good with KEDIT, I use it to write all this code. In .NET, with a little C, for my startup I typed in code in 100,000 lines of typing with 24,000 programming language statements. So, about 75% of the lines are documentation for me to understand the code! Some random exogenous events pulled me away from that code, but I will be back to it soon, and then the comments will be very welcome, get me back to 100% in understanding all the code.

Most of the comments have tree names on my development computer of, usually, HTML files of .NET or other documentation, and, sure, I have a macro that helps with that. E.g., with one keystroke, Firefox will display a file of HTML documentation.

The comments are essentially just text, technical writing, and KEDIT with its formatting is good for that. Also my standard spell checker, Aspell, works with that text. That is, the code is, to KEDIT and Aspell, just text.

(h) Sure, I use KEDIT to write email and often to read email. I went for some years using some code I wrote in Rexx for email -- then email got more complicated and I had to use Outlook or now what my ISP provides (I intend to return to Outlook). But when I write email, I still use KEDIT. When I receive email that is just simple text, I use KEDIT to format (flow it) and read it.

(i) Sometimes I still want to print some things, e.g., shopping lists, envelopes, etc., and use KEDIT for that.

I'm numbering, labeling, my external hard disk drives with PASSPORTnnn sequentially with integers nnn, and I print these with KEDIT.

(j) Sure, eating is necessary, and I cook my own food. For that, I develop recipes and use KEDIT to create those. To take a recipe to the kitchen, I can print via KEDIT.

(k) Sometimes URLs have hex characters. So, I have a little KEDIT macro to convert those URLs back to just text.

(l) And, sure, I'm using KEDIT for typing this Hacker News post.

So, as in these examples, (a) -- (l), as much as I can I use just simple text files maintained with KEDIT. Then I get good with KEDIT, macros, muscle memory, etc. and use that skill as much as I can.

I can't use KEDIT for everything, so sometimes I use other tools.

Once I tried to use Microsoft's Visual Studio. I didn't like the documentation but charged ahead. I created a project, and before I had typed in any code I looked and saw a directory subtree with maybe, IIRC, 50 files I knew nothing about. I stopped right there. Maybe someday I will see need to use an IDE, maybe Visual Studio, and will return to it.

All the programming I do is in languages where the code is in just simple text files. To me that use of simple text is terrific, and I take advantage of it.

So, net, I use KEDIT and simple text files for dozens of varieties of work; in principle each variety, done with enough volume, could be done with more productivity with a specialized tool, but for just my work, where I use KEDIT and text files, none of the varieties are worth the investment, overhead, of a specialized tool.

By analogy, to me KEDIT is like a Swiss Army knife with 15 tools including a can opener. If I opened enough cans, I might want some restaurant kitchen $500 counter top electric can opener, but for me, now, the Swiss Army Knife is better.

Re: Benefits of Not Using an IDE

#249
post #63

I think the benefits of working with KISS tools - the opposite of 'everything but the kitchen sink' in Emacs parlance - is that it significantly lowers the cognitive load. This may sound odd when comparing a rather bare-bones vi + tools setup with a bells-and-whistles IDE like Visual/Android/whatever Studio but it just ends up working that way for me. I already need to keep enough state in my head for the project I'm…

> I think the benefits of working with KISS tools - the opposite of 'everything but the kitchen sink' in Emacs parlance - is that it significantly lowers the cognitive load. No. You're wrong. Not having the right tools raises the cognitive load. You just think it's simpler because you are severely restricted in the complexity of the programs you can create with just your brain and the documentation. IDEs expand the c…

I feel like this is reductive and a better way of looking at the question is that for any given situation you have to figure out where to most effectively allocate your available cognitive load budget.

Sometimes, all the things the IDE lets you not think about is hugely more helpful than the additional cognitive load of modeling what the IDE itself is doing in your head.

Sometimes, having the thinnest possible layer between you and what you're running is hugely more helpful than the additional cognitive load of handling the things the IDE would've turn for you in wetware.

As ever, it's trade-offs all the way down.

Re: Benefits of Not Using an IDE

#250

Earlier quoted context omitted.

> Do I have to spin up a whole session of the IDE just to run my test suite? In the java ecosystem at least, the answer is no. But in highly CI-based situations, the answer is still no, but you DO need the CI system to be up, and the only way to run a test at all is to just commit something and see the CI system run it, e.g. because the tests require a database engine that isn't installed on your development machine.…

In my current organization I saw a project, where there is no Maven. The build system is a couple of configuration files for Eclipse IDE and that's the only way to run it. I'm glad I didn't have to do anything around that.

That definitely does happen with really poorly considered starting points, but in my experience it's also maybe a day's work to pull that apart and put it into Maven/Gradle (unless you've also got, like, some really terrifying ant stuff to go with it, and even then you can sometimes ask "is this even necessary?" and get with the chopping down).

IntelliJ even has tooling to get you started:

https://www.jetbrains.com/help/idea/convert-a-regular-projec...

Post reply on HN