Hacker News new | ask | show | jobs
by Ozzie_osman 1545 days ago
This is a game-changer, even if it doesn't work 100% of the time. I only infrequently need to use notebooks and dataframes, I'd say once every few months. Frequently enough that I have a vague idea of what I need to do but not frequently enough that I can remember syntax.

With this, I don't need to memorize the syntax OR be bottlenecked on looking at documentation or stack overflowing the commands I need.

1 comments

> With this, I don't need to memorize the syntax OR be bottlenecked on looking at documentation or stack overflowing the commands I need.

In other words: you're celebrating the fact that a tool allows you to become more and more incompetent.

I don't have much hope for future generations at this point.

People said that during the switch from assembly to C, and then again from C to managed languages. Yet, at each point, there are more and better software engineers, solving more and more challenging problems at each step - the modern web would not exist if all we had at our disposable was 80's era assembly.

Aren't you at least a bit curious what new possibilities this technology could enable? What new discoveries could e.g. an expert doctor or a biologist achieve given access to programming tools without spending decades learning programming?

I disagree that the problems are more and more challenging - "modern web" applications mostly only do what desktop applications did in the 80s/90s, just with some added complexity due to client/server and trying to use a technology that grew "organically" and wasn't designed for building such applications (HTML/CSS/JS).

Also, while the programming languages you mentioned did evolve to higher levels of abstraction, one thing that didn't change was that you still were telling the computer what it should do. Of course, you could still run into problems when the abstractions you were relying on didn't do quite what you were expecting, but now you have Copilot giving you globs of code that supposedly do what you want to do. How are you supposed to check if it really does that if you haven't got the slightest idea about programming?

I don't think there's any objective measure by which software has not become more complex over time.

The uefi bootloader contains more code and complexity than your average 90s OS. Your smartphone is running at least two, possibly more operating systems. Desktop software of the past decades did not have to deal with even a fraction of the security considerations of even a simple web app. The base runtime of your typical managed language alone is more complex than complex desktop apps of the past.

> How are you supposed to check if it really does that if you haven't got the slightest idea about programming?

This one is easy: you check if its output matches your expectation. In the same way you don't need to know how to program a calculator in order to use one.

If you want to get fancy, you could even ask it to encode your expectations as a test suite.

You may be surprised to hear that a large amount, maybe even the majority, of academic research does not use source control, unit testing, etc, yet they still manage to get work done.

I've even encountered this in industrial research from teams in large companies that you'd expect to know better...

Well, for starters, I'd love to count myself as a "future generation" but statistically speaking I'm older than most people in our field by a good margin.

More importantly, only about 10% of my job time is spent doing work that is hands-on technical work. I'd say probably 1% of that total time is spent doing notebooks with dataframes. Whether I am competent or not is in no way determined by whether I can memorize the syntax to how to group by and count a dataframe. In fact I'd argue it's probably a poor use of time.

Whether memorizing things like syntax is part of competence or not is highly dependent on context. The ROI of me memorizing that specific syntax would probably be highly negative.

I'd fathom there are countless examples like that. There are people who only rarely need to code. There are people who code a lot but only rarely need to use a certain library or language. For people like that, making the code more accessible is a huge win (that includes IDEs, auto-complete or easy links to documentation, and things like Copilot).

Is memorization of an API surface competence? This feels very much like a "back in my day" argument.