Hacker News new | past | comments | ask | show | jobs | submit login
The Leverage of LLMs for Individuals (mazzzystar.github.io)
547 points by mazzystar on May 10, 2023 | hide | past | favorite | 301 comments



> More importantly, it gives me the courage to dream and attempt things beyond my current abilities.

This is one of the small things that GPT has pushed me to do. I'm an experienced programmer and grew up playing video games, but I am not a game developer. I've dabbled over the years but can't build anything outside of a tutorial.

The other day, using GPT I went through and made a Pixel Dungeon clone using Phaser (JavaScript game engine). It was such a delight. Together we got the game to a working state before I started to change some of the fundamental design, and then GPT started hallucinating pretty badly. When that happened, I stopped for the night, and then just started new focused conversations to add or change a feature, putting in the relevant code. It's turn-based, with simple AI, enemy monsters, fog of war, line of sight, and a victory/losing condition.

Being able to build this in a couple of days is an absolute game-changer, pun intended. I can only imagine the riches of experiences we will have as people are unblocked on skills and can pursue an idea.


I taught myself to code just to build a prototype of an app I wanted to create. My plan was to launch the prototype, get some market feedback, and then find a technical cofounder or hire someone.

It took me 8-10 months of learning to build a prototype. But then GPT-4 came along and I could suddenly ask it questions about features I wanted to add. I then realized that there were so many features I could build on my own.

It has made me far more ambitious as a noob programmer.


I am software engineer and I have certainly attempted use GPT for coding with mixed results.

But what I am really impressed using it for writing. I am writing the story of my abusive upbringing with a mental ill mother. I am not a writer, but this thing is awesome because I can ask it to give me prompts and it is jogging my memory more and more then I can give it rough outlines and thoughts and it will organize it into more of a literary style, then I can go through and update most of the wording to my own liking or leave as is as I see fit. I am easily able to produce much more and a better quality than without it.


I use GPT-4 for coding and technical tasks every day, its abilities to make ideas a reality which would otherwise take me days or weeks is astonishing.

I wanted to try to make real-world terrain in Unity - GPT-4 guided me to the USGS's LiDAR data, took me step-by-step through creating a mesh from a point cloud, and created several scripts to edit and filter the mesh programmatically.

There are some caveats and many dead-end conversation branches - GPT-4 seems to know 'about' more libraries than it actually knows how to use, so certain library choices tend to produce erroneous code.

GPT-4 sometimes picks a poor method, for example conflicting methods of moving an object in a single script, but can usually resolve the issue when notified.

Dozens of hours fiddling with technical details saved.


Very sorry to hear about your upbringing, btw. I hope writing your story helps.


Given the token count limits on input and output, I've been wondering how folks work on these long-running projects? Is it just not a problem, or are there some tactics? I find in trying to build up lengthy outputs that it starts truncating or leaving out things from way before.


I think this is a good question. Screenshots are hard on HN, but I could write up a blog post about it all once I have a demo of the game.

I've been using ChatGPT and GPT-4 since they came out, so I'm pretty aware of their limitations. You can't build an entire project in a single project. GPT loses the context at one point.

With that in mind, break down the project into chunks and make each one a conversation. For me, that was:

1. Initial Setup

2. Add a randomly generated tilemap

3. Character Creation and Placement

4. Movement

5. Turn-based execution

6. Fog of War

7. Enemy Monsters

Each one of these is a separate thread. They start with:

> You are an expert game developer using Phaser 3 and TypeScript. You are going to help me create a game similar to Pixel Dungeon using those technologies.

I then copy in relevant code and design decisions we already made so it has the context. If it gets the answer totally wrong, I'll stop the generation and rephrase the question to keep things clean.

Lastly, I'll frequently ask it to talk about design first saying something like:

> We are going to start with the world map and dungeon generation to start. We'll add a character sprite and movement next. What's the best way to do tilemap generation and store the data? Don't write any code, just give me high level suggestions and your recommendation.

This lets me explore the problem space first, decide on an approach, and then execute it. I'll also ask for library suggestions to help with approaches, and I'm generally surprised by the suggestions. Like all software, once you know the design, the pattern, the goal, and have good tools to help you achieve it... the coding isn't all that hard.


Super useful, thanks for writing this up. I bet a short blog post with screenshots would go over great.


What happens when you ask chatgpt to create a game similar to one that does not exist?


If you can induce it to hallucinate, it should just do whatever it associates that the words in that title with.


I use the API and have a generic prompt prefix for each programming language and type of task to try to get as much bang for my buck with as small of a token count as possible, and then tossing in a single query with a bit of project-specific code fleshes out the rest of what I'm asking it. Prompt tokens are usually around 300-1000, leaving over 3000 for the response (which it rarely fully uses).

It's garbage at pulling in things from all over the codebase, so as a sort of co-evolution I write code that mostly only needs local context and only ask it questions that only need local context. That works great at home but doesn't suffice on the existing code at $WORK.

It's still helpful here and there at work (e.g., given this example string please output the appropriate python datetime formatting codes), but only because it's a wee bit faster than synthesizing the relevant docs and not because it's able to consistently do anything super meaningful.


Shameless plug: I created promptr to help with this.

https://github.com/ferrislucas/promptr

Edit: this PR has some examples of what’s possible https://github.com/ferrislucas/promptr/pull/38


You have to input just the pieces you want help with. It can't do a whole project, but you can tell it the tech stack, and maybe give it a few of your classes, and it can then write a new class for you.


I like how everyone has been using ChatGPT to code in Javascript, as I have done something as well.


ChatGPT benefits from how abundant languages like Javascript and Python are. When you start diving into the lesser used languages, the struggle becomes real. Even worse if there have been substantial breaking changes in the past ~2 years.


TypeScript happens to be my current strongest language. I picked Phaser since I wanted to learn the ins and outs of building the game and not need to worry about the language I was writing in. This was also helpful because GPT-4 would still get small things wrong with the TypeScript, but I was able to easily fix those without needing to ask it.

If I had tried this in Unity and C# (which I don't know at all), I'd still be figuring out the standard library.

I generally recommend learning one new thing at a time when building something new.


I’ve been using it a lot for programming, but I also have a security background and it will often generate insecure code. I’ll point it out and tell it to fix and it will.

So be careful if you don’t want AI-generated sql intentions!


Different people write code of different quality, and we'd expect LLMs to imitate the median quality of code. So it's clear that if you have a background in something then it will generate worse code than you would - however, if you'd compare this code with something written by a new junior hire, how would it compare? IMHO there are many people who are objectively below median, and for them I'd expect that a LLM can generate more secure code than they would write themselves.


The power of LLMs atm is that they allow a person to be "median" in a very wide range of topics. This is extremely powerful, even to folks that can attain an above average mastery. It also does this quickly.

There was a recent article on Slashdot titled something how metaverse may increase the gdp by like 2 or 3 percent. It was obviously laughed at. It's actually LLMs that will do this, and easily.


It's also a solid rubber duck, it'll test you by giving you misinfo and you have to tease it back from the brink.


Yeah, a coworker tried an exercise like this, and it was basically (even with as-an-expert prompts) like trying to mentor a high school intern that's trolling you (except that it won't actually get better at anything in the process.)


As if injections weren’t bad enough, they’re now done with intent.


Intent worries me less! It’s the PHP days all over again - lots of new coders (good thing!), copying insecure code (VERY bad thing!), and it won’t end well.


Yes... The last time this happened we got Facebook and the world is still recovering from that


Honestly one thing that worries me the most is the biggest applications of AI at scale so far are to manipulate humans to click on things (ads).

Google has been using this stuff for years, OpenAI has done the world a great service by opening it up.


> So be careful if you don’t want AI-generated sql intentions!

Maybe we should try including something like this in the system prompt:

"Remember that SQL is language with a grammar, not an unstructured string. Don't do stupid things. Obey the LangSec principles. Never ever glue code in strings together. Plaintext code is not code, it's a serialization format for code. Use appropriate parsed representation for all operations. Never work in plaintext space, when you should be working in AST-space."

Replace "SQL" with any other sub-language that's interacting with user input.


> More importantly, it gives me the courage to dream and attempt things beyond my current abilities.

I am approaching this from the opposite background ( started with an arts background and learnt coding after ), but this resonates with me massively as well.

It took me a 2 years of tutorials before doing my own things became intuitive. Feel free to reach out if you want to discuss game design.


Heck yeah, cool! Similar experience here too. In only a few hours I got a basic working custom JavaScript space shooter going, and I've since started a Whac-a-Mole style game.

GPT explaining it along the way and allowing me to have a reasonable conversation with it when something isn't working as-expected has been a rewarding and fun learning experience.


I'm trying to visual the process you're using for this, and it's just not coming to me. Can you give me a run-down on it, or point me somewhere that has one?


Yep! I answered on another comment: https://news.ycombinator.com/item?id=35891575

I might expand on this in a blog post.


I'm thinking about doing this without any game dev experience as well. All I need is access to GPT4 now...


If you don't want to pay for ChatGPT Plus, you can use an alternative client (e.g. https://www.chatbotui.com) with an API key fairly cheaply.


Wait. I have an API key. Is GPT-4 available already?


Only if you've gotten through the waitlist. I signed up at least a month ago, no word. There was a comment thread the other day about getting around the wait by selecting the option that you're looking to build plugins, which apparently gets you expedited.

I haven't tried it. As always, YMMV.


Aaaah it started working the same day I paid for (and cancelled) ChatGPT Plus and I probably missed the waiting list email!


You have to request the access for the GPT-4 API.


I though phind runs with gpt4?


release it !


There's a long gap from:

  I built a podcast search website
to:

  Staying in any company right now is a negative return.
We humans are too easily impressed by tricks, and are too willing to extrapolate them to fantasy land.

GPT can certainly accomplish an impressive variety of small tasks. Whether it can build large-scale systems that will power tomorrow's world is uncharted territory.

Can you build something meaningful, substantial, robust out of statistical knowledge, without real reasoning behind?

If you believe it's possible, where's everyone's array of profitable, newly-founded ventures? Or at least have you automated your job away yet?


Despite the novelty and excitement, the profit potential for AI generated applications and content isn't particularly strong. If you can make something using AI, so can everyone else. You work at a company to make money. Using AI doesn't magically allow you to do that. If you have the ability to make a profitable company, AI may help, but it's not a business plan.


> If you can make something using AI, so can everyone else

The idea / creativity is hence the key. Novel ideas don't occur to everyone.


Not really. Ideas have always been cheap. They occur to everyone. Most of them aren't great, let alone good.

But good ideas, even great ones, rarely mean much on their own. It's always been execution.


Well you need both, a great idea and great execution. I agree with your sentiment though that execution (and timing) are the differentiation.


A decent idea and great execution is often enough.


And a deep or wide, or preferably both, market. Without this last ingredient, all you have is a hobby project.


fair, but I was considering that part of "decent" in "decent idea".


With AI making execution bit easier, the idea will become relatively less cheap.


Technically, you are necessarily speculating....an idea that does not occur to many people during real time cognition.


If it's trivial to implement someone else can just take your idea and easily spin up a competitor, devaluing your idea.


This is the ultimate fate of any interesting or useful idea. What matters - if you're doing it for fame or profit - is the delay between you and your competitors executing on the idea.

(The delay may sometimes be negative. I'm reminded of a few cases where someone made a successful Kickstarter, only to discover mid-way through fundraising that factories in China are already busy manufacturing their product for someone else.)


As always, you still have to bring your own ideas and hustle to the table. The difference is that GPT flattens the learning curve on a lot of things that would previously prevent you from executing on your ideas and it helps keep the momentum up when you hit the hard part of the grind.


It’s amazing for prototypes and writing utility functions, but for fully scalable and supportable architecture it’s a long ways off.

Likewise, it often generates very complex and confusing code - specifically regex in my experience where I can get the job done in a much more readable way.

Don’t get me wrong, I use it all day as a little coding helper, but while it can say, advise you on how to set up a distributed system, it’s not rolling out VMs and DB clusters.


Being amazing at prototypes is exactly what a one dev operation needs. You can worry about scaling after you know whether people will pay for it or not.


100% agree and that’s what I use it for. My point is more it’s a time saver, but not a replacement for higher order operations. Yet.


Yeah people haven’t used GPT enough if they think it can do all these things. Same with AutoGPT - it’s a total joke that got hyped up to high heavens. Go try to make it actually do anything of value and watch it struggle to parse Google results and get stuck in an infinite loop every time. LangChain has the right idea because you must break down the task to small parts and program the thing to do the correct thing after each step


It’s a really good intern.


What's the fundamental difference between generating Terraform to a spec and "rolling out VMs and DB clusters"?


And it does so for everyone else. The landscape is as flat as ever, the winning party is whoever you pay for running GPT.


While I agree that is a bit of an extreme statement (many companies are also adopting LLMs from what I've been reading here on HN), this part just below that does seem insightful:

> Unless you work for OpenAI, your GPT leverage is likely wasted on trivial business code, and even more likely that due to the overwhelming amount of poor code, GPT with its 4/8k context window is unable to optimize, further weakening the leverage.

If you are sitting at a company in this situation it is of course arguable that you were already experiencing a negative return pre GPT-4, but certainly that productivity feeling from GPT-4 probably makes it seem even worse.


> If you believe it's possible, where's everyone's array of profitable, newly-founded ventures? Or at least have you automated your job away yet?

Come on now. GPT 4 is not even out for two months. API access is not yet widely available. Legal questions are preventing many conservative players from adoption. How fast do you think progress propagates?


a lot of good software doesn't take off today because selling it is a slog. AI could help there too, but probably not much (especially for getting the first 10 to 100 customers).

e.g. say you used GPT-4 to clone something like Fivetran but with your own unique features. It could even be way better across some dimensions, but you still need to convince users to try it and I don't see AI helping with that (at least not yet!).


On top of no generally available API, GPT-4 in ChatGPT is really damn slow right now.

Unless you have a special deal (Microsoft) the only performant option is 3.5-turbo. In my experience for coding and text summarization it’s totally fine with a limited benefit from GPT-4, which is more impressive at higher order reasoning and planning.


Interestingly (or not), Perplexity's GPT-4 chatbot is noticeably faster than ChatGPT-4 for me. I don't find its implementation quite as helpful, though, which is weird I think?


The OP better buy some ketchup cause they’ll be eating those words in a few months.


I read it as an experiment and hypothesis. The author is on a quest to prove their hypotheses. I appreciate the insight into the work in progress and the potential outcomes. It's more beneficial for me than waiting several months to see it fully proven.


It's worth noting that the podcast search website makes request to Apple's podcast search API, then formats the results.

I would be interested if OP could glean enough from GPT to build the search index as well, a much more complicated project.


>GPT can certainly accomplish an impressive variety of small tasks. Whether it can build large-scale systems that will power tomorrow's world is uncharted territory.

There is an INCREDIBLE amount of opaque BI that can be unlocked with GPT/AI etc.

I have already used it to get some extremely quick market infor about certain things.

AI is going to make a lot of people smarter, much faster and cheaper than current institutions.

classes are going to get more refined, and honestly, certain industries need to be utterly destroyed by AI (legal being my primary target, as they have too much fraud)


And yet another use for it:

GPT4: In the context provided, 'BI' likely stands for 'Business Intelligence'.


Indeed, it is far from clear that, even if an individual can leverage the productivity gains, that individual can generate revenue from what they're doing.


Totally agreed.

Punch cards are such an arduous technology to use, they're effectively useless. Therefore it's pretty clear to me computation is not really going anywhere as a technology and I highly doubt much more progress can be made.

(Sentiment of some, years ago)


I am happy that so many people get to experience the feeling me and other software engineers feel when we write code. OpenAI democratize some of this feeling and now people that never knew how to code can experience the rush of creating something new using code.

In a world where a lot of AI Researchers that develop these amazing models are slowed down by their lack of "normal" engineering skills I think it's very apparent that software engineering goes well beyond writing a snippet of code.

Like the internet, stackoverflow, forums and other advances in technology that opened new doors and opportunity and democratized the industry - this is another one, a big one! the smart ones will use this push as an entry point to the software development world rather than looking for an oracle function for software development (which does not exist yet)


> the smart ones will use this push as an entry point to the software development world rather than looking for an oracle function for software development (which does not exist yet)

Very much agree. I think mentorship becomes even more important now. I have a friends that's switching careers and starting to learn software engineering. Just for fun, I back-seated him while he tried to build a really simple app using GPT-4.

Even with really fine-tuned prompts, some of which I helped with, the code that was generated was either barely readable, had performance issues, and/or in some cases was just completely broken. At the time, I made the quip that for junior/entry-level folks it's like getting cybernetic implants in your legs before you know how to walk or run.


People who use ChatGPT to spit out code as a method of learning software engineering are going to be seriously deficient in fundamentals like performance.

I've already worked with way too many engineers who copy/paste code without understanding what it does.


I've seen similar results with teams I work with. The strongest engineers who can spot the deficiencies or errors in LLM generated code generally get a huge productivity boost, as they can compare the "shape" of the output to what they would expect for a given problem.

The junior devs, lacking the experience that provides the context or knowledge to analyze the "shape", let all manner of minor and major issues from the generated code slip past.

I really notice this particularly with say less popular frameworks or code libraries, where many LLM code generators appear much more likely to hallucinate invalid code. I see similar issues with DSLs too, where the LLM starts to just guess at the DSL syntax. I really hate when an engineer new to a framework just goes to the LLM first, without at least spending a little time learning the framework for the task.

All said, I suspect these code generation tools will get good enough that the rate of errors goes down enough it maybe won't matter in the longer term.


I think this is currently an open question.

It may turn out that ChatGPT results in a new generation of developers who produce terrible code, full of flaws, with no understanding of how it actually works.

Or... it might be that ChatGPT helps newcomers get over that horrendous initial learning curve, start by writing bad code... and then get better at it.

I'm currently cautiously optimistic that the latter scenario is going to win out.


In my experience newcomers and junior engineers don't get better by writing more bad code. They learn mostly by 3 methods. 1) finding flaws in their code the hard way (slow) 2) getting careful feedback from more experienced people (has to be done well) and 3) reading better code for a problem they already understand.

I'm not sure GPT helps with any of those yet, as it seems to be more likely to spit out incorrect-to-sortof-okayish so far.


It goes the other way too. I've had it generate code using better methods or features new to me, when I thought I knew the language well.


I'm the hallucinating LLM? And Other Such Crises it has given me.


I'm on year two of my journey to become a game developer, i am focusing on programming and if i realize i don´t want to work with games in the future at least i have solid knowledge on how to deal with a broad area of software problems.

I don´t rely on ChatGPT to write any code for me but i do use it whenever there´s a concept i don´t understand and if there´s any problem blocking me from getting forward in my many programming books. Having a tireless teacher/mentor with extensive knowledge and who does not care however stupid question you ask is a very good tool for learning.


I share your optimism.

ChatGPT could also empower individuals who may not have considered learning programming to create practical programs that enhance their daily routines, similar to how VB6 significantly reduced the barrier to entry for developing various applications.


I don't think it will help people learn as much as having to write everything yourself. Sure it will get them productive 10x faster, as a shortcut. You can only get so good at riding a bicycle by watching others ride a bike. Remember that caching issue that cost you hours of debugging? You don't forget that. Maybe the generated code doesn't produce a bug this time, but the 5th or 6th time? It's hard enough to debug code you wrote yourself sometimes, let alone generated code.


The good news is that those copy/pasters are probably going to be copy/pasting higher quality code if they’re using GPT4.


I don't think this is good news, it's at best not-bad news. We're already inundated with content, most of it copycatting other content, and it's replacing meaningful things, like archetypal stories and philosophy. Look at how people describe Marvel movies and Star Wars shows - it's content, not stories. Scaling the ability to just repeat things without an understanding of those things will at best just add more content. It will likely contribute to the further creation of complex systems people don't understand and can't control.

"Um, I'll tell you the problem with the scientific power that you're, that you're using here. It didn't require any discipline to attain it. Ya know, you read what others had done, and you, and you took took the next step. You didn't earn the knowledge for yourselves, so you don't take any responsibility for it. You stood on the shoulders of geniuses, uh, to accomplish something as fast as you could..." (Emphasis mine).

https://www.youtube.com/watch?v=4PLvdmifDSk&t=61s


Just about any original scientific text or undertaking begins with a literature review.


But the awesome part is that you can ask it to explain parts and it usually does pretty well.

I was using it for debugging WINE - where I have no DirectDraw4 / DirectX6 experience, and it's much nicer than trying to trawl through ancient MS documentation myself.


If performance is a concern, just re-prompt GPT if there are any performance concerns, and to propose fixes for them if there are.

This is called reflexion and has been found to be an effective way to improve response accuracy and usefulness (also reduces hallucinations).

https://arxiv.org/abs/2303.11366


I don't like the use of the word "democratize" in this context, there's no secret authority of programmers preventing people from learning. You need only a computer, which is practically a commodity in first world countries; the users really have all the power and resources they could ever possibly need. I don't see how it could get more democratic at all.

The reason people can't code isn't because an external force is preventing them, it's because they aren't putting the work in.

I don't know how to paint, is the solution to "democratize" painting by waiting until an AI can do it for me?


You don't get that feeling around solving complex logic puzzles in your brain. You do get to copy and paste


I use GPT-4 for helping with my code all the time and I still get that feeling, because once the code base is sufficiently complex there's no avoiding the logic puzzles.

Maybe one day it can look at your entire code base and just fix it / writea new feature, but it's definitely not there yet.


The models AI researchers develop are cutting edge, and mathematically involved; the kind of thing I would expect an LLM to fare poorly at. And today's researchers are capable of implementing their models in pytorch and the like.


Learning something with GTP-4 is so much more fun than using google/Stack Overflow.

It's like having a tutor that knows your code and gives you hints and solutions based on your actual project. It's a real game changer for learning


And this is what you might say while you're learning. As you gain more experience, you realize that there's a wide range of solutions with some spectrum of a fit to your situation. A given solution may fall down in certain cases. What I love you Stack Overflow, is the context which comes with it. You get replies on a given proposed solution which point out where the solution may fail.


The silver lining of LLMs impact on Stack Overflow may be that the platform focuses on facilitating the deeper type of problem solving you describe. My experience with Stack Overflow over the years has been mixed. Frequently users misunderstand the question, threads take weeks or months to resolve, users are called incompetent by frustrated experts, answers are indecipherable to a non expert, and sometimes toxic. ChatGPT frequently outperforms these weakpoints.

If they embrace a chatGPT interface as a first line of defense for users questions, it may improve the quality of real questions, reduce repetition, and filter through actually good and compelling questions. LLMs still need systems that encourage high quality data generation from humans to improve its model. I would like to imagine a world where there is a win-win for AI and the website we've relied on so much over the years.


The worst is the large amount of questions that solve an unrelated problem that's specific to the single asker's use case. Question, how do you do x? Response, oh, you can y instead and avoid x. Sorry, I want to know how to x, change the question


This is partially down to good promoting though.

It has seen those Stack Overflow responses and if you ask it to give you more context about a certain approach, it will.

I've learned when asking GPT-4 for help to push past the first answer, or ask it to offer more solutions. Also to ask why it choose a certain approach.

Quite often it will give me a response that doesn't fit well with my code, and I'll say "I don't want to do it this way, please give me another option, keeping in mind that [some important aspect of the code base]."

It then spits it out and it's usually way closer. Iterate on this and it's often quite good.

I think you're completely right if a person were copy pasting the first response every time, but that person is simply using it wrong in my opinion.


GPT4 absolutely does the same thing if you ask it to. Tell it to suggest approaches and discuss pros and cons and future pitfalls and it does, which makes sense because it is in part stack overflow.


Step 1: Microsoft buys Stack Overflow

Step 2: They implement GPT-4 responses to questions

Step 3: The community + context provide the same feedback

Step 4: GPT-5/6/7 gets progressively better


If they train GPT-4 to post wrong answers on the internet, and then learn from the responses, we'll have the singularity in a month.


>you realize that there's a wide range of solutions with some spectrum of a fit to your situation

I ran into this the other day and it's made me very leery about using chatGPT for learning things I don't already know. I moved on from toy examples and tried getting it to write a program in a domain I was already intimately familiar with: I immediately realized that this thing is going to help people churn out all sorts of code that is a poor fit for the surrounding system or ecosystem.

Basically I had it write a program in Elixir as a GenServer. After that was done I asked it how I could integrate that solution into a Phoenix web application. I had to hold chatGPT's hand, so to speak, as we evolved the solution from:

(1) Spawning (and linking!) the GenServer to a controller i.e. in response to a web request.

(2) Spawning and linking the GenServer to the application but outside the supervision tree.

(3) Spawning the GenServer inside a supervision tree.

Now technically the application could have worked, more or less, if you ran it at any one of those intermediate steps. However only the last solution is the robust and idiomatic one. It felt almost like a constraint solver to me: we iteratively arrived at the right answer by adding more and more constraints to the solution. The problem, as it relates to a novice, is that they don't have a list of constraints rattling around in their head. (Language idioms, best practices, framework knowledge, system architecture knowledge, etc.)

The insidious thing here is that 1 or 2 are syntactically valid programs. If you try to beat 1 and 2 into submission you're going to have a subtly broken system, one that makes a lot of Elixir programmers very sad.

---

I'll be watching the Khan Academy guys pretty closely, because they seem to have put a lot of thought into how students could use these systems safely and effectively.[1] I think the answer is going to be we need AIs that are aimed at professionals, and AIs that are aimed at education. The hard part will be that somehow we need to direct people to use one appropriate to their skill level.

[1]: https://www.ted.com/talks/sal_khan_how_ai_could_save_not_des...


I'm leveraging this to build https://codeamigo.dev. Basically it's learn to code, but with an AI assistant. The main reason people drop off of coding tutorials or stop learning is when they see their first error message. I'm already seeing people get un-stuck by using the AI as an assistant, this tech (GPT) is going to completely revolutionize learning.


Looks very cool. I am also working heavily in this space (using AI to help learning).

One minor point: In your demo, you state that "Today, almost 50% of code is written by AI, so why shouldn't you learn how to code with AI?"

Citation? I thought this might be true of developers using Copilot (based on their recent publications), but even that seems a bit of a stretch. I guess you could claim this because it's so easy to generate LOTS of code with an AI model. How much of that code is used, though? Really 50% of ALL code written now?


Thanks for checking it out!

"Today, GitHub Copilot is behind an average of 46 percent of a developers' code across all programming languages -- and in Java, that number jumps to 61 percent." - https://visualstudiomagazine.com/articles/2023/02/15/copilot...


That post just cites an original [1] from someone at GitHub which says:

> Case in point: When we first launched GitHub Copilot for Individuals in June 2022, more than 27% of developers’ code files on average were generated by GitHub Copilot. Today, GitHub Copilot is behind an average of 46% of a developers’ code across all programming languages—and in Java, that number jumps to 61%.

I'm not sure what this means. GitHub does not have the ability to measure Copilot usage across all code written anywhere in the world, so surely it can't be that. Do they mean code generated by Copilot as a fraction of code produced by someone using an IDE with the Copilot plug-in? That number still seems high to me.

[1] https://github.blog/2023-02-14-github-copilot-now-has-a-bett...


I guess it depends on how they calculate the percent. I assume it's by character count.

So it wouldn't surprise me. For repetitive code it's pretty good. And even with non repetitive code, once you start typing a bit it is good at finishing it.

Especially in a verbose language like Java. How much of copilot use is something that autocomplete would have handled anyways?


Even if they were somehow measuring all code created in the world, considering it's even easier than copy & pasting general code to ask AI for shitloads of code without even bothering to review it, so code created would be quite a poor metric compared to code put into production at least once.


This tracks since 90% of all Java code is boilerplate.


Check out the new StarChat model by hugging face, might be useful for your project


Your website looks nice, but I don't like this statement: "Today's developers didn't learn C before learning Python [...]" Makes me feel like I am a "yesterday's developer" and that it is bad thing.


How about binary before Python?


I think the parallel in that sentence doesn't work with binary and C. I would rephrase the sentence to something along the lines of: Today's developers don't use punched cards, why should you learn how to code without the most modern tools?

BTW, in some countries, you learn binary in grade school :)


I understand the excitement feeling of using something like this to greatly reduce the learning effort. Before GPT/ChatGPT, it was definitely frustrating to "bootstrap" your knowledge in any new area where you don't have prior experience.

But still, I treasure the old ways I learned how to program. It was such a fulfilling experience by making newbie mistakes and getting corrected in hard ways, and you really only get the authentic insight by going through that process, and by reading all those important books chapter by chapter. It's probably not as "fun" as using GPT-4 though.


I've been trying to do it to some extent but I can't say it's been enjoyable (granted most of it has been GPT-3). It's more like a tutor that never calls out your mistakes and gaps. Anything you ask, it comes up with an affirmative answer, I try the answer and it ends up being a hallucination.

At this point, i am in a place where GPT gives me good solutions that might not work vs having to go through all the noise Googling stuff to find a working solution.

But it is great just to learn different concepts at a high level. Helps me clear my mind when coming up with designs


I actually often add GPT4 responses into a markdown page and build a whole library of “how to do x”


I think fun is the key difference as well! Even when it takes longer it’s a lot more engaging.


Yeah, but how do you get access to 4?


You need to pay for ChatGPT Plus, or sign up for their API (there’s a waitlist).


FWIW, I got API access quite quickly. Applied March 20, got access March 27. My application was only some 2 line bullshit, their example for "why do you want access" rewritten.


I applied March 16 and I'm still waiting.


I got API access to GPT-4 almost immediately too, but I know people who have been waiting weeks. On the other hand, I don't have plugin access on ChatGPT yet, even though I applied for that as soon as it came out. There's probably quite a lot of luck involved.


I'm almost at 2 months of waiting at this point.


Huh, that’s weird. I thought it was simply generally quick. Did you already have a paid account?


Strange. I applied April 6th and still don't have access


I've been waiting for over a month.


There is also https://nat.dev - $5 with no expiry


Login or signup as only options, w/ zero context? Seems sketchy.


The site is made by Nat Friedman, Github's former CEO.


Ok... relevance?



Thanks! THAT is the context I was looking for.


By paying $20/month with no trial.

Decide for yourself whether that's worth it based on other people's experiences. Personally, I'll pass.


Bing is free, and runs on 4.


Yeah, but it is weaker and provides different, more search focused, results than ChatGPT4.


I feel we have been given a very valuable tool. I think the most sublte aspect for personal use is the freedom from having to ask seemingly stupid questions. It turns out there are a lot of interesting things on this earth. While a good education can prepare you for a lot, nobody knows everything. Asking seemingly stupid questions can be an issue for some. I have tried to cultivate this ability during my lifetime, and have practiced it with people I know are knowledgable in a specific field. But even with that, I catch myself feeling liberated to be able to "privately" ask questions that come to my mind in a more specific way then just firing up a Google search. A search is always more involved. True, I have to be on a different sort of guard when asking an LLM for an explanation for something, but it feels like very useful and time-saving for the quick introduction to something you just happened to think about.


> freedom from having to ask seemingly stupid questions With almost no risk of receiving a rude answer


> I even think that joining any team is a kind of slowdown. Only by sailing alone in a small boat can one maintain agility.

I'm reminded of this proverb:

If you need to go fast, go alone.

If you need to go far, to together.


> If you need to go far, have an AI carry you.

Modernizing that proverb.


This has been true for any new tool, you can do more alone using those tools. And you can now do alone things that could only be done with a small team of people.

But still, using those tools you can achieve more with a team than alone.


I think it depends on whether you want to go wider or go deeper


Deep-diving submersibles can only hold a small number of crew. They often require a lot of support personnel, though. Same with going deep on a research/development effort.


AI tools are absolutely useless once you get past any initial stage in a software development cycle

They just can't comprehend what needs to be done even if all that's required are 2 lines of code

However, we keep seeing posts from people who don't know html or how to create a chrome extension paternalizing about how we can be much more productive with AI tools. Last I heard a CEO was demanding dev increased productivity or firing some devs because he saw a Youtube video about how easy it is to create a website now

The only usefulness I see is in AI replacing SO. Once SO dries we'll have neither


This sounds to me like you have no idea how to properly integrate LLMs into your workflow. Just because they’re not useful for changing large code bases doesn’t mean they can’t be valuable. A few examples of things I’ve used LLMs for:

Writing bash scripts to automate various parts my workflow

Quickly interpreting complex regex

Tutoring me on how to use poorly documented APIs

Proof reading important emails

Everything copilot, writing java docs, auto completing all the cases in a switch statement, etc.


> Writing bash scripts to automate various parts my workflow

Would you share some of those? Bash is fraught with gotchas and intricacies and seldom have I read Bash code where I couldn’t immediately spot flaws. There’s often something which left unchecked may come back to bite you later.

I’m skeptical the LLM code would be any better, since it’s (presumably) trained on a corpus of subpar code. But I could be wrong.


Give the LLM access to `shellcheck` and have it iterate on the warnings. I think promising results have been shown when you allow LLMs to reflect on their answers and give them access to tools.


Shellcheck can't check everything though. I think using LLMs on difficult to verify code like shell scripts and complex regexes is a pretty bad idea.

I've found them useful as a "smart search engine", e.g. if I don't even know the magic terms to search for.

Most of the time it gives me answers that are completely wrong, but are close enough that I know where to look to find the right answer.

E.g. "Using the rapidcheck C++ test framework, how do you test a function that takes two vectors, one of which must be exactly 8 times as long as the other."

It gets it wrong but it still helped. I definitely wouldn't want to use its output unquestioningly though.


Depends entirely on if the shell script is mission critical. I couldn't care less about the quality of my LLM shell scripts most of the time. My only success criteria is that is that it solves a problem. These are scripts I'm never going to touch again, things like batch converting files, or like one time I had it generate a script to titrate stable diffusion parameters. As long as I can skim the output and see that its correct I'm happy.

You call it a bad idea, but it's saved me hours of work.


> Tutoring me on how to use poorly documented APIs

Good luck with that.

GPT-4 is _incredibly_ bad at Metal (most under-documented GPU api I've ever worked with), but more importantly it's _even worse_ at Vulkan, which is complete opposite - it's meticulously documented.

The stuff LLMs are good at is the stuff that a lot of people use and talk about all the time, in public.

There's just not a lot of public discussion (with examples) about e.g. how to properly use Vulkan in a production application, and the LLM itself can't "reason" within the framework of the detailed specification, so most things it outputs is wrong.

In the long run though, a very likely outcome is that tools that the LLMs have a poor "understanding" of just wither and die, or are relegated to being something only 3.5 people in the world use. I can see a future where literally all software is written in python just because that's the language that OpenAI's LLMs happens to know best.


It has an 8kb (or 32kb if you are lucky) context. Try giving it the relevant documentation examples before asking a question.


the point the grandparent was making was that GPT-4 can teach you how to use an under-documented API. that means the relevant docs are either sparse or non-existent, otherwise there wouldn't be a need to ask GPT-4 in the first place.


No, that wasn’t my point. You don’t need docs, just feed in the raw source code. GPT4 can make sense of code without documentation.


feed it raw source code of what exactly?


>Tutoring me on how to use poorly documented APIs

Can you elaborate on this? I would find it very useful.


My current workflow is to copy a bunch of relevant code into GPT4 and then ask it questions about how to use the API. GPT4 is very good at inferring how to use an API, even from code snippets. The key is that you can paste large amounts of unstructured code and GPT4 will make sense of it.


Could you? Do you have to? Would someone pay you to implement an FPGA design, given that you know nothing about it but have access to GPT-4? In practice, I've found that the advantage it might give you quickly ebbs out. It surely helps filling details and blanks though.


I’ve been programming for two decades and you’re just plain wrong here. It’s useful throughout the dev process for many things, the worst part right now is just how slow GPT-4 is to run inference. You’re probably not using it right, aren’t using GPT-4, or something. It’s a multiplier, for specific parts of development - the amount of annoying nonsense I no longer have to spend my limited time on earth thinking about makes me want to cry.


Also got a couple decades, a ChatGPT Plus subscription on top of running my own local instance of Vicuna and access to Bard.

Enjoy it while it lasts. The training set (Stack Overflow) will dry as people move away from it, resulting in model degradation, resulting in not having a useful AI AND not having a useful SO

I admit to using AI, but only for what I was using SO before. Which is 0% of the work I actually get paid for (maintaining existing software that requires expert knowledge). For personal projects, sure, it's useful. Want to code something in a new language? Great. You'll still be a beginner, and will have contributed nothing to the body of knowledge that has trained the model you are using


What? You're jumping to so many conclusions here, it's absurd. You're going to have to go into research for a few years if you want to get anywhere on proving that the capability of the current systems is somehow determined by the presence of StackOverflow. Sounds like you have a very tall tower of speculative assumptions about LLMs today, LLMs in the future, the evolution of the web corpus, and other big, dynamic, absolutely unknowable things.


This is starting to sound like a debate, but I feel that the burden of proof lies more in that LLMs are anything more than a blurry representation of the data they have been trained on than otherwise. I personally don't feel like I've brought Frankenstein to life each time I load a LLM into memory..


I'll be really impressed the day models can generate code by just grokking the language spec and documentation.


It can do that now. Has an 8kb (or 32kb) context. You might need to do a bit of work preparing a concise description and language examples.


Does anyone have any blog posts that elaborate on this?


This is why its important to reverse mentor executive leadership so they better understand best practice usage of LLMs.

I obsoletely see benefits of tools like ChatGPT through the entire lifecycle of a product, however not as a replacement for things like good requirement elicitation, architecture, and product market fit.

In the near future I expect companies to train models on their internal code base/documentation allowing developers to learn about available libraries, API usage etc.


You are expecting it to replace a senior+ dev; that is not yet reasonable.


> Last I heard a CEO was demanding dev increased productivity or firing some devs because he saw a Youtube video about how easy it is to create a website now

reminds me of Donald Trump complaining about the health exchange website costing millions of dollars when he can build a website for $3


Semi-serious question: how do we help those too old to begin the training?

When I went through profound burnout in 2019, the part of my brain that handles planning and execution shut down for about 6 months. I could barely get out of bed, brush my teeth, etc. The grieving process was rough, as well as the struggle to relearn how to function in a culture that doesn't allow breaks. And it was physical, perhaps brought about by sleep apnea and digestive warning signs from stress that I ignored. I survived by separating the planning from the doing, by keeping todo lists and forming habits over weeks that began to rebuild the wounded parts of my psyche so that I could task and adult again.

I've since regained my executive function, but the experience changed me. The stuff that used to be automatic became manual, so work takes an even higher toll than it did before, and may even even have all-consuming qualities. I feel, institutionalized, like Brooks in Shawshank Redemption.

I know that AI offers a way to automate much of the doing, and within 5-10 years the planning as well. All I have to do is use it. But I'm just so tired physically, mentally and emotionally that the potential benefit feels like a burden. I struggle profoundly to make long-term plans or deal with the logistics around that. I will almost certainly miss this wave of innovation, just like I missed the VR, mobile and gaming bubbles before that. Living my most laborious life instead of my best life.

What I'm feeling deep down is that this time is different. AI should not be about personal empowerment. It should be about lifting others who are too infirm after a lifetime of hard work to do it themselves, so that they can rejoin the human race and make the contributions in their hearts that fulfill the promise of their self-actualization. I just don't know where to go with that sentiment, or if my feelings are even relevant anymore.


It _is_ a "dog-eat-dog" world and AI _should_ make it possible to "raise all boats". For that to be possible then we need new paradigms for society. It's very difficult but AI should also help us move in that direction.

As far as your particular problems, I hope you find the help you need. It sounds like you may have depression and/or some other psychological issues, but I'm not a doctor. The way I see it is that these types of opportunities in VR or AI have not actually passed by.


Just wanted you to know that I read this comment and I get those feelings too. We as a society need to take better care of each other, using whatever technology and infrastructure we have access to. That should definitely include AI.


I feel your struggle. I can relate to it. I think I've gotten by in a way bc of the support systems around me, but I don't think any of them know just how much my relationship to work has changed since around 2020 or so.

If you're able to think and type this profoundly, you, personally, are not too old to contribute to something that motivates you. I haven't found that yet, but I haven't given up hope yet either.


I started using GPT-4 for writing ESLint rules whenever I do a code review and I feel it can be an ESLint rule. Simply give it the instance of "bad" and "good" code and let GPT-4 write both the ESLint rule and the unit tests for you. Initially I did a little touch up on the code before submitting. Like using `array.at(-1)` instead of `array[array.length - 1]` but now I do that with GPT-4 too. I say "try using the latest JS features like Array.prototype.at" and it finds other nice things to do too!


Has anyone been able to use it to effectively build more than a green field poc? It's absolutely great for that, but it's been a little clunky when trying to iterate when the context gets too large or when trying to add stuff to am existing system.


> Has anyone been able to use it to effectively build more than a green field poc? It's absolutely great for that, but it's been a little clunky when trying to iterate when the context gets too large or when trying to add stuff to am existing system.

I'd like to see that too. Just this morning I got it to generate a whole lot of boilerplate. Then it appeared to get dementia: forgot which language the boilerplate was for, when I reminded it it then started creating type aliases for no reason, when I reminded it that the previous snippet (which was the first part of a single long snippet) didn't need those types, it switched languages again.

Very difficult once you get a long enough conversation going (something like 5 prompts in and it starts going haywire in random places).


I've used ChatGPT-4 to create new components in a larger game of mine. I provided an example class that does something similar and an interface and it flawlessly created a new component the way that I would have with the new functionality, in like 10 seconds.

I've also used it to create new functionality in the game, but those were mostly isolated features. Like I implemented controller rumble support yesterday in about 10 minutes thanks to its help. Probably would have taken me several hours on my own.

I don't know to what extent I can integrate it directly into the game, but I think the main limiting factor is the token limit and my desire to manually copy+paste enough context, not limitations in its actual abilities (which it does have some, I'm debugging along with it an issue in a 3D graph class I had it create last night).

The code it created worked fine when it was just drawing thin lines, but I had it convert the drawing to 3D rects so it could have different widths (technically it recommended that solution when I asked for line widths) and there's been some glitches, namely only one team is showing and the rest of it is now only visible when I set the draw mode to not cull anything.

Hoping to get past that tonight or tomorrow. It at least is giving me some good ideas for approaching debugging it, I'd be pretty much at a loss if it was just me, as I've always struggled to debug 3D graphics issues when the graphics just don't show up on the screen.


BTW, turns out changing to CullClockwise for the RasterizerState made the graph show up again, so the order of the vertices were in the opposite order, which it also noted and provided the corrected code for it (basically just reversing the order of vertices), so I could set it back to the default of CounterClockwise again.

Now on to curved corners!


Oo.. interface driven design, good idea.


The beauty of abstraction, though, is that it liberates a person from needing to worry about lower-level complexities. The same should be true for LLMs. It shouldn’t need to know your entire system. Start a new thread with judiciously restricted context when you move on to the next task.


Yup. We're back to the real problems that matter in sdev -- thinking about the problem, breaking it down, scoping things. Let an LLM do the grunt-work of writing the code, sure.


I agree, but I'm worried about where that leaves junior devs - what are the entry level jobs for coders in a post-LLM future?


They'll be the ones begging and cajoling LLMs to write the code.

Notice that even these days, senior devs aren't supposed to code much - they're supposed to train up junior devs, up to the point said juniors become competent, at which point the juniors join the rank of seniors and begin to teach fresh junior hires.

I.e. increasingly, juniors are the only people actually coding anything, and LLMs will only reinforce this trend.


> they're supposed to train up junior devs, up to the point said juniors become competent, at which point the juniors join the rank of seniors and begin to teach fresh junior hires.

Some of the shittiest code comes out of developers with this level of experience, but they're senior now and teach fresh junior hires?


Assuming it actually happens, how different is it from a ton of other things? Hpw many rote sysadmin or paralegal tasks of 20 years ago still need basically a warm body to do them?


Fewer, I'd assume? What I'm curious about is whether anyone has advice for people getting into programming now.


I doubt anyone has a clear enough crystal ball to give confident, actionable advice. Obviously AI, among many other things, erodes the value of most easy to acquire knowledge skills at the low end. But that kind of thing is constantly being eroded all the time and while uplevel/upskill is generally good advise, it's hardly unique to AI. Nor is there evidence yet that computer programming/software engineering is going to be uniquely impacted by these new technologies.

Content farms and other low-end writing almost certainly will be impacted significantly. But that was mostly not a good place to be anyway. Writing generally isn't a good bet unless it's effectively in support of something else that pays the bills or you get very lucky.


reasonable statement. I think of programming as a discipline with three core skills, those being choosing what problem to solve, writing a solution, and debugging the solution. I suppose it's the writing that's gotten a lot easier with the addition of GPT, debugging has gotten slightly easier, and choosing what to work on has gotten a lot more competition.

From that framework, debugging is the new code monkeying... anyone have thoughts on that analysis?


If the future proponents envision actually comes to pass, there won't be much need for new coders anyway.


This is dangerous! How do you know it's correct!? What if you need different memory management!? What if it writes the wrong thing?!

Program only in Assembly, because otherwise you risk some real dangers of not knowing what's going on with the code!


I'm sure you could get code that would work going this route, but I'm worried about the code base growing to have lots of duplication and it generally just growing into a mess without any standard patterns and it would become a nightmare to maintain if that's the case.


That will always be an issue and, moreover, always has been an issue — not only with code one obtains from other humans through forums, stack overflow, and blog posts — but also with code written entirely by oneself.

Code we get from an LLM, or someone else's fallible wetware, or our own fallible wetware, all need thoughtful consideration prior to committing.


I've been able to get it to write functions for me which I can then plug into a larger system.

As an example- I have data representing a cylinder defined like so- {radius: x, depth: y}, give me a function which takes this object and calculates the volume of the cylinder.

It is unable to understand the context to deliver a feature end to end, but if you can give it the fingerprint of a function you'd like it can implement it for you (sometimes)


I see limited context and the lack of sandbox dev environment is the main obstacle on way to have more sophisticated usage and faster feedback loop. The value would be greater if it could know everything about the code base, business requirements, related documentation, and, it could even avoid a lot mistakes by simple running type checks and the tests and correct itself before giving the answer.


Could this be done with a vector database?


I'm trying to (as a hobby-programmer / itsec(compliance :|) / admin / devops guy) https://github.com/idncsk/canvas (early early alpha stage)

The biggest benefit for me is I can ask it design and programming-pattern questions for my particular use-case(given A, should I split some methods of A into a separate module, should I implement B as a facade of C or maybe implement some observer pattern instead etc)

One strange thing I noticed is the degradation of "quality" of the answers some time after a new version gets released, but that may as well be just my internal drift for expectations


It's nice for guidance when you start a project but you quickly run into problems if you want to rely on it entirely. I tried to use it to build a small library which implements an established algorithm from scratch where I can guide it and give it feedback but I'm not writing any code, only copying and pasting and relaying any errors back to it so it can correct itself - it doesn't do great, it loses track of its own implementation of things and suggests inconsistent code.

Still useful for many other use cases, just not for "write my entire project for me and I'll only copy and paste" yet


I use AI to help my productivity while coding a lot. I handle the big system, it spits out code for me where i know what i want but don’t know the libraries/syntax.


And of course, each project will eventually no longer be green field.

While it can help you understand code blocks, I'm not sure that it can help you understand an application as a whole.

I don't know that it can help discover edge-case types of bugs and suggest fixes. For example, the types of problems which crop up when system meets reality.

The can see this leading to a lot of spaghetti coded projects.


Yes. You need to really focus on decomposing your problem and use like "there is" "it is" and "it has" to describe the overall system instead of relying on it remembering everything. Which honestly makes code more organized and easier to read.


I imagine you could ask general architectural questions and it would give you general architectural answers. And then you ask more and more specific questions and get more and more specific answers.


Domain knowledge of projects becomes effective when apps gets complex. Asking the right questions to ChatGPT will warrant you answers to help you tread unknown territory. To ask the right questions is to first understand how your app is structured, know it’s major components, what’s potentially missing. It gets technical.


> Staying in any company right now is a negative return; you are wasting personal leverage.

I think it's a bit sad that the only benefit someone can see in their workplace is their salary.

Also, I get the feeling this person has never done anything outside of consumer app development with minimal stakeholder interaction.

Overall I think it's great we can supercharge our learning and coding capabilities, but it would be naive to think knowledge and coding can let you do anything you want.


> I think it's a bit sad that the only benefit someone can see in their workplace is their salary.

It's not the only benefit, but it's the only one that you can't get in some other way. I suspect that very few people -- even people who love their jobs -- would continue working in them if they weren't getting paid.


Well, obviously - you need to make money. So if you're not getting paid at your current job, many people can't afford to stay at their current job. If I had UBI or some kind of trust fund, I might stay at my current job. I really do enjoy it and think I'm better off with the structure it provides me.


Well yeah, but we're unlikely to ever live in a world where there aren't paid jobs. Personally, I enjoy working with people. I may not make as much money as going solo but holistically my work life is improved by having colleagues. I think the same is true for most people. No person is an island.


There are plenty of ways of collaborating that don't involve a Paid job.

"No person is an island". I hate quotes like this, things that have the veneer of truth without any actual corroborating data. I am a textbook introvert, I get no greater joy and contentment when spending a Saturday morning pursuing a personal project solo style.


> I think the same is true for most people.

Sure, the same is true for me. But that's also a need that can be filled without working for someone.


Hard agree on this.

I think what we're talking about here is having a sense of community or at least human to human interaction. I can think of so many ways to get that without the obligations that come from having a job.

I generally enjoy my job but that is far from the main reason I do it. If money was not an issue, there are so many other things in life I would enjoy doing far more not to mention enjoying the general freedom that comes from not needing to work.


> I think it's a bit sad that the only benefit someone can see in their workplace is their salary.

I enjoy clean water, food, shelter, and providing for my loved ones. I was not born rich, and I am not rich now. I am 53 and have worked for others as well as myself since I was 15. When I provide my expertise, experience, time, and skills to a 3rd party, I want to get fairly financially compensated for that. If I want camaraderie of some sort, I’ll join a relevant club or activities group, and will pay my dues. If I want to learn new skills, I will join some training course. I work for others for financial compensation, and financial compensation right now. I don’t want some vague promises down the road. You tell me what you need to get done, and I will tell you what it is going to cost you.

We live in a society where the performance of work for others is compensated financially. Money makes the world go round, and allows us all to live. If you have any examples of additional benefits besides getting paid, please let me know.

We work for money, which allows us to purchase the things we need and want on our own terms. If anybody convinced you that it is _not_ about money, you’ve been tricked.


As the author of the article, I would say it has nothing to do with money. It has to do with your definition of living your life in a more meaningful way. By return I don't mean money, but your energy, time and potential.

Also, I admire the group that optimized OS, but I'm just not used to teamwork. In my previous job, once I had come up with an idea of having a virtual pet, and they thought it was awesome, but when I said that you could define having any content, including a ball of lightning or even a nebula, no one seemed to know what I was talking about.


Thanks for replying! Also, great username, great band.

I totally agree there are different strokes for different folks, and some sectors are really well suited to solo work. I personally enjoy the security of working for a company and having a large set of diverse colleagues. I know many here on HN are more of the startup mindset, like yourself.


Yes, so I believe the target audience for this article is people who want to create and make a small difference in the world using only their own hands.


A) awesome username, b) I love my work and hired somebody who also loves the work. I told them explicitly up front this is a relationship based on the capitalist structure we live in and to keep an eye out for better pay but to give me a chance to make a counter.

Nobody should be exploited and in my experience the easiest people to rip off are the passionate ones - which is why my advice to such people is always to get paid because somebody up the stack is siphoning off what should be yours.


> Within 5 months, I single-handedly launched 5 iOS apps.

> Staying in any company right now is a negative return; you are wasting personal leverage.

Isn't it obvious that this doesn't work if _everyone_ does it?

Also, if the bar we use to measure how useful a tool is for society, is that it allows an individual to release 1 app per month, then we're doomed whether before AIs take over or not.


> Isn't it obvious that this doesn't work if _everyone_ does it?

Why not? We could have 1000 small businesses instead of one business with 1000 employees.


I have also been using GPT as a force multiplier for my coding, especially in areas where I'm less comfortable like frontend.

I put together a tool called `aider` for chatting with GPT-4 about code, having it make changes and keeping track of it all in git. It's feeling like a very nice workflow.

@mazzystar you might want to give it a try if you have GPT-4 api access:

https://github.com/paul-gauthier/aider


Thanks, Will try!


AI tools are absolutely useless once you get past any initial stage in a software development cycle

They just can't comprehend what needs to be done even if all that's required are 2 lines of code

However, we keep seeing posts from people who don't know html or how to create a chrome extension paternalizing on how we can be much more productive with AI tools. Last I heard a CEO was demanding dev increased productivity or firing some devs because he daw a Youtube video on how easy it is to create a website now


> AI tools are absolutely useless once you get past any initial stage in a software development cycle

Not sure I agree. The initial stage will be the one where most of high-level, broad thinking happens. Once the cycle starts in the earnest, more and more time is spent on the usual software drudge work. I find GPT-4 excels at helping with this kind of coding.

I'm reserving judgement on the higher-level / more abstract aspects of software engineering, as I haven't had a chance to try it. My suspicion is that GPT-4 will excel at helping you think through an issue interactively, but may have trouble actually coming up with whole designs on its own, not unless you spend so much effort crafting a context for it ("getting it up to speed" on your problem space) that you'll quickly find better designs in the process.

> Last I heard a CEO was demanding dev increased productivity or firing some devs because he daw a Youtube video on how easy it is to create a website now

With wix, squarespace and other brands I consciously try to forget about (in proportion to how much advertising spam from them I see, despite using adblockers everywhere I can), plenty of web devs are having a hard time justifying their salaries. At this point, AI tools aren't even competing with them - they're competing with wix, squarespace, et al.!

Still, I hope that CEOs replacing workers with ChatGPT are a myth. If not, that's IMO an idiot thing to do. Not because ChatGPT won't manage to do the job - but because the only model in existence, that has capabilities required to effectively replace humans in some jobs, is owned by a single company, has been available for only two-three months so far, and that's in a limited beta. We don't know yet what the limits of GPT-4 are, how to effectively use it, and at any point OpenAI can just take their access away. At this point, it's a great tool to use while it's available, but it's not something you want to hinge your project/business on mid-to-long-term.


>If you are an individual developer, the leverage it provides might be 10 times greater, but when you work for a company, that number might be only 2

These numbers are arbitrary and if you're looking for leverage, a company with a lot of customers is a good way to find it.


I wonder if this is really a benefit for learning something.

A teacher who tells you the right answers doesn't sound like a good teacher.

In hindsight I learned the most from my mistakes and the errors I'm to fix over longer period of time. Sometimes these failures were of use in later projects.

I missing all this from GPT. It doesn't really sound like learning more like cheating.


I think that depends on how you use the tool. For example asking for answers vs asking probing questions while working something out. So it’s probably up to you as an individual. If you’re missing out on “all this” you might just be asking for answers.


If people built pages or software in one day, they seem to ask for answer too.

These means they are the less useful part in the development process and can easily be replaced.

That's why I don't see the big leverage for individuals in that kind of development. They will be one of millions with exactly the same skill set and lost without GPT. It sounds like those boot camp courses: Build ten projects in ten days to become an genius programmer.

Doesn't work, and I think people will overestimate their skill because GPT helped them to do a clone of something that already exists thousandfold.


> It sounds like those boot camp courses: Build ten projects in ten days to become an genius programmer.

> Doesn't work, and I think people will overestimate their skill because GPT helped them to do a clone of something that already exists thousandfold.

I don't mean to be rude, but was this text generated by GPT? It's breaking my brain.


You don't need to understand every problem you encounter. Some things are just an obstacle to be overcome any way possible. Pick your battles.


Corporations serve a purpose - to organize human labor to fulfill a greater task that usually cannot be completed by an individual. So while I don't disagree that GPT-4 in the hands of a layperson programmer may suddenly turn them into a 10x developer, I don't know if that fact alone allows that individual to create great things.

In addition, there will be a great crowding out effect. If websites and apps are so easy to create now, there will be a deluge of junk to come. Every mediocre idea will be put forth.


> In addition, there will be a great crowding out effect. If websites and apps are so easy to create now, there will be a deluge of junk to come. Every mediocre idea will be put forth.

Perhaps it will be the opposite. There's a lot of domain experts out there that might be able to turn their idea into reality.


This is already the case. See the Apple App Store as an example.


I was watching yesterday the 2006 movie "The prestige", with incredibly atmospheric locales that feel so alien. And yet, that world is but one hundred years away. It wasn't until 1934 that the Public Utility Holding Company Act recognized electricity as a utility.

Less than one hundred years after that, we have managed to juice out a general digital intellect from humanity's joint efforts. Let's see if we survive the next one hundred years, but boy, way to go!


> a general digital intellect

That's a pretty bold claim.


ChatGPT has been useful to me for learning/looking-up a lot of things, although it sometimes drives me crazy. Often I'll want to use libraries which are rapidly developing, and the training data ending at 2021 kills the accuracy. A webcrawler + chatGPT would be incredibly useful. So far I've only found tools designed for the web admin (finetune on your support docs + make a chatbot for users) rather than something designed for the end user.


Take a look at https://phind.com

Being able to search the web allows it to deal with recent information: you can ask it to limit its search to the API documentation for the library you're working with.


Oh this is pretty good, thanks! I do have some non-developer use-cases which this may not work for, but definitely helpful.


I have had success just pasting the relevant documentation for using the library into the chat and telling chatGPT to reference that.


I'm talking about stuff like Bevy where the docs are scattered across multiple web pages. ChatGPT can still be helpful but typically copying/pasting a whole doc, asking a question, reading the answer, is slower than just reading the page myself. And if it's the wrong page, then chatGPT won't help.


Have you tried https://www.phind.com ?


There's a lot of focus on AI taking away jobs. I believe it will constitute an existential threat to a lot of companies. Highly productive solo individuals and very small teams will outcompete large companies by leveraging AI. When capital requirements, transaction and information costs drop dramatically, the optimal size of a firm will change. I believe they will become dramatically smaller.


> When capital requirements, transaction and information costs drop dramatically, the optimal size of a firm will change. I believe they will become dramatically smaller.

I hope so. Oh how I hope so.


LLMs provide nonlinear leverage for experts. So far, I see them increasing the divide between developers or tech-oriented people and end users.


This post reminded me that I’m still somewhat surprised ChatGPT-like systems did not arise out of China first due to their massive investment funds for AI and their base of stem talent.

Once they catch-up their censors will have a super power and people will have their writings censored before they hit submit.

Will be an interesting decade.


> somewhat surprised ChatGPT-like systems did not arise out of China first due to their massive investment funds for AI and their base of stem talent.

Does China innovate in this way? I think software is not a linear function of money in, value out. Inventing new programs and techniques is interesting as I’m sure what the spark is, and it certainly takes money, but that’s not the most important part.

I remember reading in Masters of Doom about how John Carmack came up with some of the innovations id software used and was amazed that he, alone, came up with stuff that large, well-funded teams could not.

I expect that China could have invested its entire GDP into stem and AI for the past 10 years and would not have came up with LLMs and ChatGPT. Or perhaps they did, but kept it secret and would never release it as a product to the public.

But I believe the former based on the few software companies and few software innovations coming out of China in the past 20 years.


US export controls certainly must slow down China somewhat. They can't import Nvidia's fastest GPUs, but are stuck with buying hobbled variations. Getting a domestic industry on par is hard.


IMO China is a "long-term country". LLM does not lead to General Intelligence. While the former is profitable (financially and socially), the latter is the holy grail.

Time will name the winner.


It heavily depends upon the definition of general intelligence, because we haven't really settled on a definition as of yet. In some circles (of course the ones from Microsoft) the list of requirements is very close to being met by some of the more sophisticated multimodal models (GPT-4 et al). General intelligence is a strange question because it's more about the data/environment than the architecture, (obviously if it were about theoretical capabilities of architecture, AGI was found ages ago).

Much of the LLM capabilities have to do with the generality baked into language. Pairing that with the well known proof that GNNs are dynamic programmers, you can get some very nice properties directly from the setup.


The censors are one of the main reasons why China is so far behind on AI R&D.

No unfiltered training data, and severe penalties if the AI hallucinates something that is against the party line.


This is already possible using simple Bayesian filters.


“48 hours of conversation with GPT-4“

Heh, sounds like a novel form of torture. The author probably means 48 hours total over a (much) longer time, and it had all been an enjoyable ride of turbocharged learning and discovery, but that's not how it reads to my eyes.


GPT-4 is still limited to 25 queries/3 hours and that is likely why it took longer.


Every 3 hours. But also, if you have API access you can use the OpenAI playground to query GPT-4 as much as you want. Sure, you pay a cost (per token), but if you're willing to front the bill you can move pretty quickly.


The API rate limit is 40k tokens per minute (I’ve hit it with a personal project).


That's high enough for most users, I reckon.


40k tokens per minute is enough for most users is the next "640K ought to be enough for anybody"


Indeed, if context lengths grow to millions of tokens, and prices are cheap enough, I could see users feeding their entire codebase in to ask a simple question about it - or feed in every email from their inbox to find something specific they're looking for, or use as style/content guides to write a response.


Typo on phone, fixed it. Thanks!


What all are you using as your primary interface for ChatGPT et al LLMs? I've had some success with OpenAI's default UI but mostly I've been trying out various community Neovim plugins.

I feel strongly that I want an in-IDE pair-programming assistant, but so far I've had at least one or more blocking issues with many of the currently available open source options.

NeoAI is great - for example - I've had it working well on multiple machines before - but today after a Neovim / Astronvim update I'm getting errors about my quotas (which are fine) back from the plugin - and I don't really have time to debug that because I need to get some work done :/


I have heard good things about the Genie AI VS Code plugin. (I personally decided against installing it because it's closed source)


I've been really liking Raycast on my mac with the ChatGPT plugin

- https://www.raycast.com/ - https://www.raycast.com/abielzulio/chatgpt

I have it set up to open on CMD + Space


> Current documentation is written for human reading, with a mix of text and code blocks that makes copying a poor experience. Perhaps soon, documentation and APIs will become GPT-friendly first.

Yes.

I have recently annotated my Pydantic models and fields with the explicit intention to use the resulting JSONSchema to inform GPT how to structure some information (in effect, writing a one-off client for an internal API I'm creating).

As a happy side effect, this is now better document (information about semantics of the data structure elements is closer to the definition of the structure itself, not in some external Markdown text file or in some walled-off wiki).


I thought the point of GPT is to be human like and not that humans adapt to GPT.


Humans are limited in their language too, so that's still human :) It's just that you're surrounded by humans who speak your language.


It's a tool. Humans that adapt to any tool they use frequently.


I've used ChatGPT for personal project planning. I like to use Trello for personal organization. I just prompt ChatGPT with things I'd like to work on.

For example, I've given a prompt akin to: "Can you create for me a plan for organizing my email? It should be a list of tasks to be completed in 15-30 minutes. It should follow the S.M.A.R.T. format."

Then I gave it prompts to split all the tasks into single line sentences with a new line in between.

You can copy paste this into a card and Trello will ask if you'd like to split it up into multiple cards!


The part that the author conveniently doesn't go into is income, other than mentioning that people sitting in companies are stuck there because they need the income.

Well, this very concept applies to you too, dear solo captain. Nobody is going to pay you any money for your podcast search app that you prompted together in record time.

As you get better at this, sure enough you might create something tangible and substantial that otherwise would have taken a small team or take 10 times as long.

But guess what? These super powers aren't exclusive. Anybody will be able to do it. So the execution becomes irrelevant and value is based on the idea being unique, and even if that, it will be instantly copied.

Even an idea being unique doesn't have to translate in success. We don't exactly have a shortage of software or content, we're already drowning in it and can't even keep up with tools. How would you be even be noticed in an abundance of ideas?


I’m genuinely excited about integrating AI into our IDEs and metrics gathering and pipelines because I think it’ll pay off dividends in tracking down bugs and preventing shipping regressions.

But I am having existential dread over my pay decreasing by a large margin over the next decade. Not sure what I’ll do next. Maybe general contracting.


That's really exciting, LLMs make a lot of exploratory work trivial.

Unfortunately I feel like I'm hitting a wall here. I've gotten pretty good at learning new things and stamping out prototypes - I still appreciate the help from LLMs a lot. But a big part of my work is people stuff: Follow up with X, make sure Y does Z, find a consensus, and so on. GPT does nothing there, maybe except for helping me formulate a mail.

And I'm also not sure it helps with architectural questions. GPT will build you a game, but there are 100s of ways to do it, and it will pick one at random that might be not optimal down the line.


The confusion in terms called out here (and even demonstrated) is probably not to OpenAI's benefit and I am surprised they haven't spent more effort in trying to correct that.

ChatGPT is a website that lets you do chat completion [1] against LLM models, and it exposes some extra functions like plug-ins if you are lucky enough to be white listed for them.

GPT 3.5 and GPT 4 are the actual models.

Someone telling you that they did something cool with ChatGPT probably means GPT 3.5

[1]: https://platform.openai.com/docs/api-reference/chat


> Someone telling you that they did something cool with ChatGPT probably means GPT 3.

The confusion is that ChatGPT is using GPT-3.5 by default, but if you pay the $20/month subscription price, you can switch it over to GPT-4 (with query limits). Usually, when someone is telling you they did something really cool with ChatGPT, they're actually using GPT-4.

An extra layer of confusion is the API access: GPT-3.5-turbo and GPT-4 models are both optimized to be used in chat, which is somewhat different than earlier text completion models. Because of it, people using GPT-3.5 or GPT-4 via API access (possibly with one of the "alternative ChatGPT frontends"), will often also say they're using "ChatGPT". This is almost, but not completely accurate - the actual ChatGPT contains a bunch of hidden "features" (hidden prompt, extra moderation), that are mostly detrimental to the output/experience you get.


Correcting the correction of a correction: The chat interface is no longer using GPT-3.5, since May 3rd. What is the default model called? I have no idea. The release notes page [1] calls it ChatGPT model, the bottom of chat interface calls it "ChatGPT May 3 version".

Also people usually call out when they use GPT-4, but in the end you can only assume and be wrong 50% of time.

[1] https://help.openai.com/en/articles/6825453-chatgpt-release-...


For whatever it's worth, playing with the model selector gives you a parameter in the URL.

The default model is "text-davinci-002-render-sha"

The legacy one is "text-davinci-002-render-paid"

GPT-4 is just "GPT-4"

One other useful tell if someone is showing you a screenshot of chatGPT is that GPT-4 uses a black logo avatar, where 3.5 uses a green one.


Wait, isn't the default model of ChatGPT called "gpt-3.5-turbo"? IIRC "text-davinci-002" is the old one.


ChatGPT is more than an interface, the models it uses have gone through additional training and modifications.

> Someone telling you that they did something cool with ChatGPT probably means GPT 3.

This seems like an incorrect assumption. 3 is very old at this point, 3.5 is free and the best demos are based on 4 which is a huge improvement compared to the previous versions.


Have they? Querying 3.5 through the completion API does not return meaningfully different results than doing it through the website. Aside from the extra functions like plug-ins that most of us can't use yet, the main difference appears to be everything on the website is forced through the moderation API as well.

Typo fixed.


Similarily, reminds me of "bitcoin" the currency and "Bitcoin" the protocol.


I would be grateful for an example prompt for the following quote:

>>> Copying and pasting documentation and APIs to GPT-4, asking it to write interfaces based on them.

Sounds very interesting but I cant quite work out how to phrase the prompt


> Staying in any company right now is a negative return; you are wasting personal leverage.

I left my job at big tech a few months ago and started using ChatGPT (and now GPT 4) shortly after for personal projects.

100% stand by the author's statement. The ability to iterate and execute on my ideas in a way I've never been able to do before—combined with not having to worry about whether I'm infringing on my previous employer's intellectual property rights clause—feels so incredibly freeing.


I really liked this article overall, but was very confused by this section -

> If you are an individual developer, the leverage it provides might be 10 times greater, but when you work for a company, that number might be only 2.

Where do these numbers come from? Did ChatGPT hallucinate them? I don't understand why both can't be true. Why can't I have 10x leverage in my job and use that productive to unlock more time and then further leverage myself as a personal developer? Very strange sentiment here and also a baseless claim IMO.


The podfind example in the article is a tailwind page fronting itunes search API.

The big question here feels like: how should AI do retrieval? 'Generate an interface to hit existing DB' is probably one of the answers, I suspect this use case will grow.

Separate question, should it take a few hundred lines of html + js to provide this? Can low-boilerplate DSLs make humans and LLM codegen better at delivering on these asks


>Unless you work for OpenAI, your GPT leverage is likely wasted on trivial business code

But trivial code is the only level of code GPT can really write.


I think the point is that the individual doesn’t reap the full reward of trivial code written for an employer. Instead, the individual should leverage the new tool to scratch his own itch, build products for his own use or as part of a business which more directly benefits him.


This is an interesting view, but I reached a different conclusion than the author. If GPT-4 (and successors, presumably), are so empowering, then leveraging them as a collective could potentially be even more powerful. We shouldn't underestimate the power of highly enabled teams.

As another commenter wrote: "if you want to go fast, go alone; if you need to go far, go together".


Anyone have any good examples or tutorials of specifically how to use ChatGPT for greenfield code development ?


I usually ask it to write me a nextjs app and deploy it to vercel. It gives me a few commands and files to plop in the right directories. E.g. `npx create-next-app foo; cd foo; ...; vercel --prod;`. Often I only make a couple changes then 5 mins later it can be deployed for free on vercel. Eg, it took me a couple mins to create a lil app to enable a user to drag/drop words of your sentence. I asked chatgpt (gpt-4) the following: "Write me a nextjs app (and deploy to vercel) that shows the sentence 'Anyone have any good examples or tutorials of specifically how to use ChatGPT for greenfield code development ?' but each word is draggable and re-arrangeable such that a user can drag any word to anywhere in the sentence. Add a randomize button too."

See the result here : ) https://dndexamplehn.vercel.app/

It's incredibly empowering to be able to easily spin up little proofs-of-concepts or bootstrapping larger projects. I think all the naysayers have not experienced its power yet.


I've thought it would be cool to see something like this:

1. Go on Twitter and find a famous account (for visibility). Maybe they say something like, "The data shows..."

2. Pop into ChatGPT and create a data viz.

3. Deploy to Vercel.

4. Go back to Twitter, post the link, enhance the convo, naturally gain followers in exchange for providing that value.


I asked it to design and implement an entire software system. I just copy-pasted the output and it (almost) worked the first time.

(It ran out of context window and started forgetting the design; if I'd started each message with the design and class layout it would have probably worked the first time!)

Specifically I asked it for a design, then a main class, then for each of the other class files. (This process could probably be automated.)


The post says there's a huge difference between GPT-4 and ChatGPT? But which version of ChatGPT?


They mention the 25 messages per 3 hours limit, so I assume they're talking about the difference between GPT 3.5-turbo and GPT-4 that's available when you pay for ChatGPT Pro.


I disagree w him about that. For a podcast search app I think ChatGPT could do every easy part of that just as well, and without any rate limit. I’d use ChatGPT for the most part unless you need to switch.


ChatGPT March Version, I think.


But if you're a paid subscriber you can access GPT4 through ChatGPT's interface. Are you saying there's a difference between using the GPT4 model alone vs. the GPT4 model in the ChatGPT interface? If so, could you please clarify with an example?


That's right. I just went to look and it looks like ChatGPT has been updated to the May version. But in terms of previous experience: ChatGPT's code is almost unusable, it always ignores the most basic logic, and I only use it to write short scripts. But GPT-4, even if it contains multiple files referencing each other, it gives code that I don't even need to do Code review.


I have had the opposite experience. Many domains where it can’t produce correct code (counting BitSet, WatchOS apps), or doesn’t even begin to understand (distributed consensus).

When it works it is great. When it doesn’t gap can be large.

When you ask it to correct itself it will make new mistakes and keep alternating between different mistakes and omissions.

I haven’t tried it yet on a real codebase like say a database. Is it even possible to give it that context?


My understanding is that the author was talking about using GPT-4 via the ChatGPT interface. That's where the 25 messages every 3 hours limit comes from.

When they compare it to regular ChatGPT they are comparing GPT-4 to GPT-3.5 turbo.


> Perhaps soon, documentation and APIs will become GPT-friendly first.

I can imagine documentation becoming ChatGPT plugin aware. Like, the automatically generated stuff that comes out of Swagger and the like. Maybe a killer feature for a new API documentation startup?


My dream is that we all adopt tools for detecting when docs have become stale. That risk is one of the big reasons for not writing extensive docs in the first place, so the whole dynamic could change.


GPT-4 got me through porting a near SoTA image segmenter to the browser and building a prototype UX that uses the webcam to grab decals from the real world in a few hours that prob would have taken me at least 5x longer.


I actually feel in the same way of how GPT-4 has increased my capabilities as an individual than for company. It's insane how fast the idea iterations can be and you can actually execute it pretty fast.


Small teams are the future

AI is the new Linux

No single entity can own it or control it

This will impact everything in tech


Feels like a pretty rosey take. It seems to me that corporations and other monied groups will still have the upper hand. But who knows what's coming really.


I think it's really cool that folk are using this as an opportunity to explore beyond the boundaries of what they think they're capable of.


How good is GPT-4 in programming something new?

This reminds of all these web programming courses that build a todo list or simple insta clone.


Sure, more people writing and running more code that they understand less will work out just fine.


the average person doesn't know the distinction between chatgpt and gpt4. it's all the same thing to them. keep that in mind anytime you're talking with a non-tech person about this.


how do i use gpt4? i've tried requesting the api with that model and get denied. nor do i see anywhere in the chatgpt ui to upgrade to gpt4.


Upgrade to Plus in your chatgpt web page and you will see a new model choice.


LLMs are great for Rubber-ducking!


Are they comparing CHatGPT 3.5 with GPT4 or ChatGPT4 with GPT4? Because you can now select GPT4 when using CHatgpt.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: