I’m not a programmer, and I used AI to build my first bot
blog.replit.com
blog.replit.com
LLMs have supercharged me as an experienced dev, not writing code[0], but rubber ducking[1] with something that talks back and I can ask my question in an infinite amount of stupid ways and it won't balk.
If it can do that for me, designing a database, it's about to introduce a whole new wider range of "I'm not a programmer"s into being programmers. Good timing too, the world needs it.
I know particularly prickly devs will be annoyed by people they see as not true developers, but, and sorry to be so blunt, fuck em. It's short sighted because if you're as deep and skilled as you think you are, you won't intersect with this new wave of programmers anyway.
[0] I stopped using copilot, it got in my way too frequently even after initially liking it. [1] I use GPT4 and I intend to publish my entire history of my back and forths I've had with it for designing a database after I release my project, but it basically just let's me bounce ideas off it. The caveat is this area is not unfamiliar to me, and the techniques I'm discussing I know enough about to call bullshit on when I see it.
I disagree a bit. Code is the precision vehicle. A majority of our job is problem solving; some problems can be solved generally, other problems require precision. Not all programmers will ever encounter a problem that requires precision solutions.
> I also maintain that for a lot of the programming that makes the world go round, it's not that hard. People just convince themselves they won't be able to.
I also disagree on this. I've taught a good number of people to code to different degrees and I can confidently say that not everyone is going to have an appetite for this as a job or hobby. That's to say, hobby coding is different from career coding, the incentives are different, and attract/require different personality characteristics to be successful. I think infantilizing programming does no one any favors.
I like to describe it as a job where you solve many, many tiny problems and put them together. You must like breaking big problems down into small ones, coordinating and communicating asynchronously and clearly, and have a good head on your shoulders to tolerate the literal endless stream of failure that you'll encounter along the way without being too dissuaded. Lastly, you'll constantly be learning something new; sometimes learning about the same old things, other times learning things far outside your domain. The single most important tool in a programmers war chest is not knowing all the things, but where to look and how to discern good information from bad or so-so information.
I'd argue strongly against understanding. Our computers are just sophisticated version of Jacquard Loom and music box.
If a machine can interpret instructions and follow them then that is a sort of understanding. At least it has the same kind of result as handing instructions to a human and having them follow the directions to complete a set of tasks.
Does the human understanding of instructions differ significantly? Yes a human can understand much more ambiguous instructions and perhaps complete a larger set of possible tasks, nonetheless it's a similar process going on at least on the surface.
Where is this player piano that creates original works every time, and sounds so good we almost can't tell the difference?
Well in the case of Python, the interpreter is indeed interpreting.
We could also talk about how the word 'executes' implies some kind of agency which computers lack. It's like saying a rock just executes the laws of physics when it rolls down a hill...
"Programming" is not the same as "hacking".
I can hack away in any new language and produce something that works, and I have the benefit of a programming background and decades of experience.
That said, the areas where a hardcore, professional "programmer" is really needed, are quite few and will be even fewer in the future.
Now in the world we have zillions of software engineers doing the same thing redundantly. In a way the software development industry protects itself not creating the tools to reduce the industry itself. This is a typical innovation dilemma for a whole industry. Not saying that this is conscious but there is a big focus on pleasuring ourselves with new things that continue a well known road of fancy programming languages, etc.
I've been laughing to myself a bit, not about your comment, but because predictably there are so many people who chose the most uncharitable way to view, both my original comment and the people using these tools. Copying and pasting, never learning and becoming knowledgeable, as the most probable outcome that will come from this. That's just not how it works.
Excluding the people who will stop anyway of which there will always be, what this will do is break down barriers for a lot of people (not everyone), who thought they wouldn't like it or couldn't be good at it and entice them, hook them, and then build them up. It's just a new way of learning programming. Hacking with LLMs is going to be the entry point for these people, not the final destination.
I agree overall that LLMs will lower friction and barriers to entry for some folks looking to get into hobby hacking, programming, or software engineering as a profession. Anecdotally, I think that's true beyond software. In wood working I find LLMs helpful when youtube leaves me with unanswered questions. More anecdotally, I have some high hopes for when LLMs can use tools, I think paired with the knowledge I've gained over the years that using an LLM that uses tools will be like the force multiplier I gain when using a compiler.
To some degree, like any useful tool (eg: StackOverflow) there will be those who use it recklessly, but I'm less concerned about that because those people will always exist. The "anyone can do it" sentiment is highly inclusive, but also a bit falsey and what I took more disagreement with. I've met a good number of people who got into the industry of software engineering based on sentiments like that, thinking the job would eventually become "easy" and it never does for them. That or they falsely equivocate that sentiment with working at a FAANG, that these are just easy jobs where you get paid beaucoup bucks only to find out that's not so true, or at least not nearly as common as the sentiment invokes. That's worth being a bit cautious in language in my opinion, but I say that out of having experienced how hard it is to navigate this industry at times. To find out the things that you knew to be true that got you into it in the first place were false or falsey would be a big let down.
I think these things are worth talking about and I don't want to make this industry look more gatekept than it is so I don't think I'm 100% right with my opinion, but I also don't want to give people false impressions. I appreciate you being willing to respond and talk about this stuff.
I think ultimately if I had to try and make a more balanced take, it would be that this will help a non trivial amount of people become programmers as it makes programming more approachable where traditionally as a field we struggle with that. It will not magically make you a top programmer or anything like that. I also think it's unavoidable that some people regardless will not be cut out for it.
I really wasn't trying to suggest that this will solve the difficulties of becoming a professional programmer, but I do think it is going to be the entry point into the field for a significant amount of future programmers.
I am glad that for once I'm being cautioned about being overly optimistic though, typically I fall on the other side of that spectrum and it's something I've had multiple people tell me to work on.
If your an Expert and you only care about that one subject it's probably not that useful. or you expect perfection from AI it makes mistakes. but you know what they say. To err is human but you need recursive AI to really fuck thing up.
Coding...is engineering. Put the world behind the wheel of a car and they can make it go places. This...does not make them an automotive mechanic.
What a terrible analogy, just because you know the car's firmware doesn't mean you know how to properly diagnose something not related to the electronics (worn wheel bearings or suspension components) let alone how to diagnose or repair.
While I agree coding serves engineering, it's always funny to me how quick people want to use the term 'engineer' when it suits them, but then developer when things go wrong and accountability is on the table. Furthermore, engineers tend to have licenses in their respective fields, something I don't personally agree with, and to this day I have yet to see the same in IC roles.
Sidenote: As a former tech (mechanic) there were times when you would question not just an engineer's competence, but their entire sanity given how something was deployed, and needed to come up with a work-around for it to function correctly; which is why I think coders (at least the proficient ones) are more like techs.
I don't necessarily disagree with this, but if you just regurgitate code that a bot gives you, are you actually solving the problem? Every time I see someone post "I asked ChatGPT and it says x", it seems pretty clear to me that the poster doesn't actually understand the topic and just handed it off to the bot.
> Code is simply an unfortunate vehicle to do so.
It makes me sad that people feel this way. I got into programming because I love writing code. It's exhilarating, there's nothing I would rather do with my life. What you're saying is kind of like if you said "working with the wood is just the unfortunate vehicle for making furniture, so much the better if you can use a CNC machine". You certainly can make furniture more efficiently with tools like that, but it also sucks the joy out of the process.
Right now, I think machine generation of code is not usable because you can't trust it. The current tools are known to confidently give wrong answers, and accordingly I don't trust them (same as I wouldn't trust a human teammate who did that). But I think that's a problem which will be solved, and once that happens it'll be quite simple. Developers who use such tools will outcompete those who don't, so everyone will have to adapt or die.
I'm not worried about not having a job, because I have been in the tech world long enough to know you have to be ready to adapt. I'll adapt, and I'll keep on trucking. But I do think that I will stop enjoying my job, and that makes me sad.
ChatGPT and Copilot definitely increase productivity by a non trivial margin and atleast in my experience, I never once thought "Oh I wish I had written that code by hand." In fact, I feel the opposite: LLMs take out the drudgery of much coding and allow you to focus on writing code for the difficult parts.
Like your position doesn't really make sense to me because you're saying you want to write all the code yourself, but you already don't write all the code yourself. Like what's the difference between using a library someone else wrote vs a LLM implementing that functionality for you?
The difference between what I was able to build before and after chatGPT is miles apart.
But to do that, I'd have to make sure there are no duplicates and frame the question with every appropriate detail.
Or, I could just have a quick conv with the AI. Sure, it'll get some things wrong, but so will SO answers. :) And it is amazing at how clarifying it can be. Even the wrong answers are sometimes a clue that the questions themselves are a little off.
I'd like numbers on what % of questions are scolded for having been asked
Collaboration on writing a better question is the only way its answers could get to the next level and customized for your specific use case. I'm imagining it spinning up a generated SO clone for you to browse and scolding you just the same (but at least giving you a decent link), or at least asking why an answer you found isn't good enough.
The way collaborating with AI works now is too wordy and error prone. You don't know what you don't know. Chat bots still don't talk back much and that's a problem.
When we get to this level of AI, maybe some people will finally understand that getting your expectations broken is not a form of hostile communication.
Just think of a genuinely good question and show you've done a modicum of research and people will happily reply to it
You're being whined at for not knowing the very specific incantation which will summon the results. Which, if you knew, you likely wouldn't need to ask anyway.
"You're stupid and your question is stupid. I forbid answers. I will keep it up and nofollow all of the scalped resources it links to in the hopes others can come here and benefit from this lack of answer"
Which is my point. ChatGPT is the most basic modicum of research and it is excellent for that. But it also can do a lot more.
stackoverflow.com/users/8610114/sensanaty
Seriously just check out questions I've asked on SO. They're nothing groundbreaking, a lot of them are pretty beginner/basic questions, yet I've never really had adverse reactions to any one of my questions. Some go unanswered sure, and I might have one or two marked as dupes (they are more or less) but if you've ever browser the "new" portion of the site it's inundated with hudreds of shitty, low effort questions, so it's understandable.
SO is also an excellent jumping off point for figuring it out yourself. I've had dozens of times where I figured out a solution midway through typing a question, since you have to make good quality questions there in the first place.
technology moves on
in 2030, when stackoverflow have folded due to lack of visitors, and all new data on new libraries/APIs are locked up beyond OpenAI's reach
how useful is the AI going to be?
the whole thing sows the seeds of its own destruction
It is, as before: if the service is free, you are the product.
That being said, I think that to the extent AI is an actually helpful product, as opposed to social media, public forums, or free video hosting, the tradeoff is way more worthwhile. In my most humble opinion. I'm sure your calculus will lead to different outcomes.
yes, it's asked to produce something, but it won't see the result after substantial effort required to actually make it work
the interaction is not going to be nearly enough to produce useful training data to replace e.g. stackoverflow
and if GPTBot can reach your site, you are the product, they would make you their product even if you don't use their free service
but now they are not allowed to complain when others train models on GPT-4 data, they can become someone else's product too - see Orca, TinyStories and Phi-1.5
> how useful is the AI going to be?
In 2030 the AI can go and and search for the answer itself, by installing the environment in a container and trying to find a solution. It's something that is in some way possible even now, but probably not practical yet.
Then I download the docs and feed it into the LLM I have running locally.
>> parasitise
What else is data for?
if the fair use lawsuit succeeds and copyright protection over open source is essentially terminated: what companies are going to open source anything?
Some of the work people put into getting Stable Diffusion to create the results they want takes plenty of time and skill. But event then I would say that putting in time and skill is not strictly required to make art.
You can absolutely be an artist using generative AI, but you of course wouldn't be a painter if you use generative AI.
In this example you can be an application developer but still not a programmer.
There are two answers:
a) No, that only proves you can type. b) Yes, you are an artist just like everybody else.
People can stretch the definition however they like since there is no hard acceptance of where the line is drawn. Sure the general term musician means a person who plays/creates music. A person who hums can be a musician.
However in my own opinion, I disagree. DAWs are not instruments in themselves. The main functionality of a DAW is in recording, arranging, and mixing audio. They are the digital equivilent of a tape recorder and manual cut/splice process. They have evolved to include many software add-on emulations of instruments and packages around the production process: synths, pianos, mastering tools, additional recording tools, etc. Using a DAW does not make you a musician, but using provided instrumentation in a DAW can make you become a musician.
Doing so helped me become a better assembly programmer.
Consider the Python function 'max', which, given an iterable, will return the iterables biggest item. Now suppose I ask ChatGPT to generate a function (in whatever language you like) called 'max' that does the same thing and it returns a block of code that I copy and paste.
In what way is Python's 'max' meaningfully different from ChatGPT's 'max'? It seems to me that these are essentially both just higher-level abstractions.
Is someone a plumber if they followed step-by-step directions to replace the flush valve in their toilet, without understanding how any of it works, or what the parts are for?
Where is the boundary? To me, it boils down to two things - do you spend the majority of your work time on it, and do you understand how your tools work? The former is necessary because even though I was an electrician’s apprentice as a teenager, and can explain how pretty much anything electrical works, it’s not my primary job, so it would be weird to claim that. The latter is necessary because otherwise, you’re diluting the title for those that have it. I can explain how max() works (or at least, an implementation of it). I can give pros/cons for functions.
I'd say the label programmer has far more in common with guitarist than with electrician and I think calling it a title is muddying the waters, even though it can also be a title. (I also think because we use the term that way, some people prefer other titles that make it clear they are professionals.)
However, the point I was making wasn't that people who have used ChatGPT but otherwise haven't programmed necessarily are programmers, but that: (1) Code isn't fundamental to programming. We can imagine programming interfaces other than code that people--even people who spend most of their work time doing it and understand their tools--can use to create programs. (2) A ChatGPT-derived copy-and-paste language is not fundamentally different than other higher-level languages in that it is simply an abstraction.
<programmer friend> == human => ?
<programmer friend> == ChatGPT => ?
In your example the human and ChatGPT are interchangeable. In my example, they are also interchangeable. Your situation yields a "probably not" answer. My situation yields a "probably" answer. These answers contradict each other, despite their identical basis and despite both being correct answers. Therefore, it must be that this human/ChatGPT comparison must not be the locus of the difference between the answers.
I think people ought to take a breath and think about what is actually fundamental about programming. It might be "code"; but then we've sort of just kicked the can down the road, because now we've got to figure out what's fundamental about code and how that means something is or isn't programming. And without this sort of definition, it really isn't meaningful to ask whether this or that thing is programming.
But I havent seen a fully blown app running a business written by chatgpt.
To me, chatgpt is still a next generation wizard, like using a wizard from Lotus Approach.
or, to put it another way, if everyone is a programmer, the word is meaningless.
We've been raising the level of abstraction in code for decades and it looks like LLMs might just be the next level up. Yes, using LLMs will put more complex code within reach of more people but I'm sure it won't be nearly everyone, and I bet that it'll raise the ceiling of what the best programmers can do at the same time.
Of course, we're free to redefine what "programmer" means at any time as well, if a new definition proves to be more useful.
To apply the same system to programming, one is a programmer if they dedicate themselves to the study and mastery over their computer, usually in a particular discipline. The disciplines of programming may be defined around the abstraction level. While everyone specializes, programmers also have general skills that the average person lacks. I would argue that the most important of those general skills is understanding the relationship between instructions, execution time, and memory usage as well using that knowledge to weigh different approaches. How do we separate a hobby programmer from someone who regurgitates AI responses with no understanding? I don't know. Maybe their ability to derive new answers if the AI didn't give them a correct answer.
Words do have meaning and we should be careful not to degrade the meaning down to anyone who is capable of asking an AI questions but I doubt we'll ever have a non-fuzzy definition of programmer
I see "no code" tools the same way: It _is_ code, visual programming is programming too. If that works for you, that's cool.
One of the main things I do in my CTO/consulting work is ironically to reduce the fear "non-programmers" often have of software. If they can program to some degree, my experience is that they'll respect the "real" programmers more - and collaborate better.
As they say, there are two kinds of people: those who think they can program and those who think they cannot, and they are both right.
I'm not on the LLM hype train either, but if they can get more people involved with programming that's genuinely awesome! Everyone has to start somewhere, is typing random stuff into Turbo C or whatever else was the "first contact" point of your generation really any better?
If, for this next generation, it's an LLM on Replit, that's genuinely awesome.
ianbutler: Congratulations! You're a car mechanic! And to be blunt, fuck anyone who disagrees with me!
Nobody is a programmer, really. We live in particular moment of the world where this new idea of professionalization tricks you into thinking sometimes what you are is first and foremost defined by what you trade on the labor market. And this is an especially potent spell for those, like us, who for right now particularly well compensated in this market. But either way you must try not to forget that this is just a kind of illusion. That we are more united by shared capacity than discriminated by "skill".
Why not take joy in the idea that what you have devoted yourself to, presumably, can be a more shared and understood thing for the world at large than that of a doctor or college professor?
You're standing in the dojo wearing the black belt you bought at Wal-Mart and condescending to the masters for acting as if any of the discipline and hard work they put in meant anything, because look - you have the same belt as everyone else, and didn't have to do shit for it.
This is why people hate AI and the people who use it.
For me personally, I just hate that they don't stop talking about it!
I think focusing on the AI-shit is missing my point: why do you even care about this? What is really at stake in this? Is it really just the idea that there is some kind injustice being done? An injustice to whom?
If you spend your life doing all the hard work it takes to excel at something, the rewards of that hard work are intrinsic to your new mastery. What someone calls you or not because of your skill is like the least important thing about the entire pursuit.
I too am quick to point out how annoying the AI stuff is, but I think if we are going to defeat them we need to hold on and affirm shared human capacity more than we need to protect titles.
Fine. Don't say you weren't warned, though.
At least for the first one: I definitely do! "Defeat" is maybe a little clumsy, and its less wanting to squash AI itself (for one thing, because this new stuff isn't really "AI"), but rather what it represents and who is going to use it, or even right now, who is going to use the bare idea of it to hurt workers and demoralize us in general. The whole hype train is a big jumping of the shark of an already fraught and misguided industry. An industry propped up by senseless financial instruments and false ideals of technological determinism. It is no good!
If you really can only see this whole argument as only a pure black and white dilemma, that either this guy is a "programmer" and AI is good || this guy is definitely not a programmer and AI is bad, then I would urge you maybe to invite more nuance into your thinking. But also not a big deal! It's more important we are on the same side about the big stuff, then whether we agree about words. Which was kinda my whole point all along!
And you all sound like luddites.
what's your plan for when the only humans needed for the world economy to function are Musk and Zuckerberg?
you certainly won't be needed
I don't think so
Yes. It does make me mad. And I should be mad. Everyone who cares about anything but the bottom line should be mad. The wholesale commoditization and destruction of human intellectual skill and creative talent in service of the relentless pursuit of capitalism through automation is a bad thing and you should feel bad for cheering it on. "Adapt or get left behind" isn't what someone who actually cares about the quality of their craft says, it's what the Borg say before injecting their nanoprobes into your brain. "we only want to improve quality of life." Fuck that.
Maybe the luddites made it clear that destroying capital doesn't make for a winning endgame, the Amish might be a better model - they still participate in the broader economy but they've built their pockets of antiquity where they get by with more elbow grease than they otherwise would have to, and have a spiritual basis for meaning that most of secular society lacks. I probably won't be joining them but could see a new movement that accepts diesel engines, lithium batteries and computers, but draws the line at anything that starts to mention "hidden layers" or "nondeterministic behavoir" (outside that randomness needed for accurate simulations and cryptography)
Haven't come up with a name yet.
Hardly anyone ever asks where this progression is leading, and if they do, usually the answer is to "more progress." Which, to me, doesn't really sound like progression at all! It's just a way to justify not actually changing anything that matters, and to make sure there is always some faux-horizon of greener pastures to promise your customers.
You should be angry!
>I don't want to simply be forced to adapt to a life where my only option is to blindly consume what the machines feed me like I'm in a tube in the Matrix.
How is that any different from your life now, except it's humans feeding you slop instead of human-guided machines?
>Everyone who cares about anything but the bottom line should be mad. The wholesale commoditization and destruction of human intellectual skill and creative talent in service of the relentless pursuit of capitalism through automation is a bad thing and you should feel bad for cheering it on
Go join an Amish commune then. I love the irony of a programmer (I'm assuming) complaining about automation.
https://www.vice.com/en/article/ae379k/luddites-definition-w...
https://doctorow.medium.com/brian-merchants-blood-in-the-mac...
Huh. So, being almost 50, having spent 35 of those years writing code and orienting the majority of my life around it - somehow that's separate from my identity?
Do tell.
"No one is an artist. No one is a programmer. No one is a football player."
It doesn't make any sense of course, but it makes them feel like less of a loser.
It's a sad coping mechanism.
Life can be many things to people, friend. I feel like I know the meaning of commitment, and focus, but even if I didn't, that wouldn't make me a loser! You can live a life in ascetic focus toward mastery, or one filled with family and companionship and simple pleasure. Or something else entirely. It's all just people living life!
I just think its more important to focus on what we do, rather than what we call ourselves. I don't think that precludes the existence of talented, amazing people!
And to describe what we do, we use words. I use the word "programmer" to describe how I spend my work day, mostly programming. I use the word "Londoner" to describe where I live, London.
You can't escape using words to describe yourself!
You will never reach the peak, and there will almost always be people below looking up at you. Try to find peace in this.
It has led me into this sorry, loser state where I constantly deny myself the humility due to me, of appreciating the single minded devotion and sacrifice of great masters of craft and skill and knowledge! Instead, I reject this beautiful aspect of humanity, plunging everybody into a purgatory of dilettantism!
Perhaps one day, when I am tired keeping this up, when my own existential failures have exhausted even my own bad faith arguments, I will stand back and see life for what it is. I will see the programmers and the doctors. I will notice the calm adeptness and global purview of the grandmaster. The life-or-death meditation on the body and force of the karate master. The almost impossible marriage of precision and emotion of the musician.
I will see this eventually, after my insecurities wither in age and malnourishment. All along I thought it was a source of pain, these great people, a reminder of my own inadequacy. But I'll realize, in the future, that this can actually be the most affirming thing about anyone's life! To even know of these great people! To be given a horizon itself, a set of peaks to aim for, is all that matters. Humility and admiration are blessings of life, and the high bar of human achievment only generates ever greater accomplishments for the world at large. It is important, even necessary, to recognize and attribute mastery and great accomplishment only where its due. Because otherwise nothing is real and everybody is fake.
But I'm not there yet. I am young and I am more a dilletante than most, so it will take some time.
Also anecdotally, I know several people who majored in philosophy (one with a CS minor) and they all do quite well. I'm in my mid 30s and the people I'm talking about are between 28ish and 45.
citation please!
Not sure if you'll still find this relevant, but here's a source I had saved where you can see philosophy is in the highest third:
https://www.weforum.org/agenda/2018/07/which-college-degrees...
And a now-somewhat-broken 538 article: https://fivethirtyeight.com/features/philosophers-dont-get-m...
https://cew.georgetown.edu/cew-reports/valueofcollegemajors/
For some reason it groups "philosophy and religious studies" and the latter might not lead to very high paying careers, so it's hard to tell what that means for "just" philosophy.
The report [0] has them below the median of all "humanities and liberal arts" majors.
[0] https://cew.georgetown.edu/wp-content/uploads/The-Economic-V...
Depends on what you mean by "makes the world go". If you mean the shopping cart of a website makes the world go then sure, but if you mean the underlying database engine or OS kernel or deepest part of the stack, then it is definitely not easy.
Ultimately, learning the fundamental concepts of programming is not hard at all and anybody can learn them. Programming is hard or easy solely depends on - what the program is supposed to do.
Code is generally more efficient and definitely less ambiguous than natural language. Why is that unfortunate?
I rather my rubber duck didn't tell me lies though. I really hate it when I'm given incorrect information - a waste of my time.
I know mileage may vary, but I just haven't had this often quoted (but I suspect actually less first hand experienced) situation when it comes to development.
Bad information is worse than no information.
This is akin to saying "Eating is simply an unfortunate vehicle to get energy"
Lastly, there is no distinction here between ephemeral code like this week's JS, versus domain knowledge and abstraction like an engineer or architect.
personal take - the enthusiastic F-U sounds like stimulants talking...
I'm usually a thorough pessimist, your comment just goes to show can't win either way.
But maybe please don't fuck them?
I use Chat GPT 4 for one-off scripts, to explore new technologies/frameworks.
Sometimes it's great, but I find it hurts me as much as it helps me in terms of time.
The only big win is it really helps me start doing new things whereas without it I would procastinate more.
I've seen a colleague mention a Chat GPT discussion in a PR in what I thought was a straight-forward issue, where Chat GPT was just wrong. I find that worrying.
I guess it depends. I maintain that getting something mostly working is not that hard. But I haven't worked on a webapp that didn't have many obvious (to me) concurrency bugs in them.
So does that make it easy or hard? I dunno. Maybe writing correct webapps is hard, but maybe their correctness doesn't really matter.
Both copilot and GPT4 have been wonderful 80/20 tools in different ways, and give a remarkable new way to learn.
> I attempted to learn Python to automate some basic data manipulation and scraping tasks we did.
The ambiguous human language is a pretty horrible vehicle compared to that and I see english to code in LLMs more like the way people use Excel; just keep messing around until it works (with often with inefficient and completely wrong sub parts because the direct and correct solution was never found) without really caring if the end result is really what you meant, because actually you cannot translate what you meant in anything formal like a precise formula or a piece of elegant code.
I see nothing really wrong with that; actually, I have a perverse interest in it; my company troubleshoots and fixes urgent code and infrastructure issues for companies, no matter how bad/old/messy/broken it is. I see my company grow a lot the coming years because of this new wave of software coming up. Because of course, this will go from
> you won’t intersect with the new wave of programmers
To
Mostly everything now is written by this new wave of programmers
Why? Because it’s cheaper in the short run. Why hire me for 300$/hr to write something when the dropout with 2 months of experience waiting tables at Wendy’s can use $20/mo chatgpt4 do it faster and for far less? And I agree with that from a business standpoint IF the software wouldn’t need to live long.
However, I am older and because of my company activities, I know that a LOT of these short lived departmental or startup software hacks end up as vital parts holding up the company over the decades.
I read somewhere (I think here on HN) of someone saying ‘but no one expects me to statically type out a script that removes dollar signs from a csv’ or something like that. If you would give me a $ for every time I encounter a script like that, that started with that same mindset, but has been integrated over the years into vital processes and breaks things in unexpected ways because it’s not made to be there, I would have a free high spec laptop every year. There are 100s of these in every spaghetti hell of a company I walk into.
LLMs and the tooling around them will get better; there is my hope that, in a few decades, the LLMs will deliver code for programmers and end users alike that is robust and even proven and 100% test coverage mostly without extra effort on the human side. Then I can retire my company. For now, I see a bright future with exciting new and unexpected horrors (although, to be honest, it cannot get worse than what outsourcing sweatshops produce; we are doing a project now which has 1000s of lines (so far, it is early days) of code which are unreadable (hard to explain, but they are logically wrong mixed by human obfuscation to hide the fact they didn’t understand the tasks they ‘completed’); it almost seems a joke to write code like that).
> I [had] tried to learn to code to earn some money to support my training. At Boston Consulting Group, I attempted to learn Python to automate some basic data manipulation and scraping tasks we did.
Seems contradictory.
/s
Or maybe they can ask a friend.
Or maybe they can learn a bit when it becomes necessary.
Does a chess computer need to understand chess in order to win?
Whether someone wants to let the behaviour of a company's founder color their judgement of the company is upto them. But painting the whole thing as "one badly handled issue" undermines is.
Those 20 million, what are they? Created user accounts? Active user accounts? User accounts that created at least one Repl?
I have at least three Replit accounts - one on my uni email (which I no longer have access too), a previous work account (experimenting for doing interviews with it), and my personal account. Am I three developers? None of those accounts are active, do they count or not?
If that 20 million figure is taken from anything less than active users I'd consider it deceptive. Which doesn't mean Replit the app is bad! But it does make the company a bit suspicious.
That being said, using AI to code can just screw you over by presenting bad code, faulty code or the LLM simply not understanding the demands. It's not a tool to use in lieu of actually knowing/learning how to code and understanding the programming language in question.
How... how, I ask, does not asking a question for fear of being judged get you anywhere? I hold that overcoming that shortcoming is a critical part of becoming a builder of systems. Using an AI to try to spackle over that interaction rather defeats the point.
The ability to write code and perform in-depth engineering is a fantastic skillset. It's also relatively rare for it to be done well.
For the easy to potentially middling cases, AI-generated applications are going to help a lot.
The downside is now there is pressure for quantity over quality. Might be fuzzy in the market for awhile.
I don't know, it's been that way for a while now, hasn't it? Every C level / product manager bombarded with "new tool / language this", "new tool / language that" hype, when often its a bunch of noise and only a small selection are likely the correct choice for the org.
2023: Hey dude can you fix my program?
I predict this is all LLMs are going to result in.
The "what" is always the hardest part, both to acknowledge as being necessary and to get right.
Programming is to software engineering what knowing music theory is to be a composer. LLMs might replace the mechanical aspect of our job, but that was the easy part all along.
This form of argument appears in every thread about LLMs: They are fallible, what will we ever do?!
As if people haven't been fallible in both the same and different ways all along. How have we ever managed...
Others will come to do the same. Some others will not.
Not sure that your generalization is true here.
On the other hand, good job and welcome to the club. I think this shows what many have said in the past months, that one major success of LLMs is to make consultants, business people, etc. more proficient by LLM aid.
On one hand, ChatGPT provides a hell of a quick start template for getting going with a new app. This can be super useful if you're seasoned and don't want to boilerplate, or you're not as seasoned but still know things and want to get started quickly.
On the other hand, writing tons of code while not understanding what's happening at all is a huge liability.
What happens when Slack changes OAuth scopes for those endpoints, or Google pulls a Google and changes their Search API endpoints, and ChatGPT doesn't know about it due to the knowledge cutoff? What happens when you run into a runtime error and GPT keeps feeding you wrong answers? What happens when you run this in the cloud as a serverless function and get a huge bill after your first scaling event?
We've seen this today with devs who copypasta stackoverflow answers into their codebase and leave little traces of tech debt that result in massive outages that require Herculean efforts to solve. It's a huge problem, IMO, and GPT is making it worse.
My last thought on this. It is absolutely bonkers that so many of us are gung ho for using GPT to code. It is absolutely crystal clear to me that this will decimate programming as a career for future generations, and we're...letting it happen? We're (labor) the most expensive expense for most companies; founders/executives are obviously going to use this stuff to justify offshoring SWE dev to cheaper markets.
Good tools to learn and take over mundane tasks but in the end you're the one owning and maintaining this code (no matter if a contractor wrote it for you, copied it online or used AI)
At least for smaller things. For larger projects I do above, wrap it as api in docker and use it via python that way for wider project
I regularly use AI to help me write multiple microapps for personal and work use.
Yes, it absolutely will spit out the answer to something as complicated as your take home interview problem from description alone, but you wont know how to fix it for a presentable touch up, or adding more to it
Instead break it out into smaller problems and do many of those
Second, the use case described in the submission is functional and internal-only, and does not deprive or have the potential to deprive software developers or artists of any lost revenue or recognition. It's purely a reflective experiment.
There's some nuance into the scope of generative AI, which normally Hacker News does well at discussing. But kneejerk "AI art is theft" comments only serve to discourage people from sharing their experiences with AI.
There's another story on HN posted today about balancing money and meaning and one of the top comments is a sarcastic put-down about the AI generate image at the top of the blog post. If the author had used AI to create the web page they'd almost certainly receive similar praise as the comments on this one. Both AI's are trained on other people's work, yet you seem to think even pointing this out is unfair. Very strange imo.
Most of the comments on that submission are negatively and fairly accusing it of being ChatGPT generated: https://news.ycombinator.com/item?id=37779591
That submission also appears to have been flagged/penalized, so yes, people aren't happy with it.
There is a significant difference between using AI for a functional purpose that others can learn from and using AI for low-effort marketing blogspam.
Only thing I've seen was artists on Reddit and Twitter getting angry about the AI art.
I think you mean that artists mostly think AI art is bad, while programmers mostly thing AI generated code is good.
So I could write an article about prompt engineering with AI art and use the headline "I made an amazing art for my blog without ever taking an art class!"
For example:
https://medium.com/geekculture/i-used-ai-to-create-marvelous...
Either way, it's irrelevant to the GP's comment.
None of this is knee-jerk. These systems alienate massive amounts of labor from the people and communities that did that labor. There is a huge amount of risk involved with mass adoption of this technology that most people on hackernews seem content to either ignore or say it's not relevant to the discussion like you are.