15 ms·
Is hand coding becoming obsolete?
- the_gipsy 4y agoBetteridge's law of headlines is an adage that states: "Any headline that ends in a question mark can be answered by the word no." https://en.m.wikipedia.org/wiki/Betteridge's_law_of_headlines https://en.m.wikipedia.org/wiki/Betteridge's_law_of_headline...
- rcarr 4y agoHaha came here and posted the same thing then saw you beat me to it.
- Dalewyn 4y agoIf by hand coding you mean actually learning how computers work and writing competent code, yeah it's obsolete. Coding today is taking six dozen frameworks off of Stack Overflow and abstractioning them together to solve all your problems.
- fm2606 4y agoThis got a laugh out of me even though it is sad how true it is.
- AstixAndBelix 4y agoThe funny thing is that would be decent if those frameworks were formally proven to work. Instead you're glueing together stuff that barely works on its own
- shapefrog 4y agoBy the time the stuff I have glued together breaks down there is a new glue based solution that has been invented with all the buzzwords of the day that barely works. Makes me glad I didnt get too invested in the previous hacky solution.
- CWuestefeld 4y agoYour comment is a bit snarky, but absolutely true. I've been in the industry for nearly 40 years, and in that time I have NEVER directly programmed the computer - if I can define that as directly entering machine code, or even the mnemonic of assembler. The entire path of the industry has been about climbing up layers of abstraction. Back in the early 80s, for example, the hot thing was 4GLs, which was supposed to allow such a high level of abstraction as to put development into the hands of business analysts. Obviously that went nowhere. And LLM AIs are just one more step in this, albeit a potentially large one. As Carmack says, the real skill is to understand what you're trying to develop, how it relate to the needs of your users, and to apply this systematically. That understanding might be replaced at some point in the future, but that is not today.
- bombolo 4y agohttps://xkcd.com/1988/ https://xkcd.com/1988/
- cykros 4y agoI was going to say, "hand coding" was on the way out once libraries were created, and it's just been accelerating since then.
- irrational 4y agoI’m reminded of a short story where everyone has forgotten how to do math by hand since computers have long ago taken over all computational tasks. Then this one person rediscovers how to do it by hand and is hailed as a hero.
- pjc50 4y ago"The feeling of power", Isaac Asimov, 1958. https://en.wikipedia.org/wiki/The_Feeling_of_Power https://en.wikipedia.org/wiki/The_Feeling_of_Power The twist is that this allows the replacement of expensive computerised missiles with inexpensive manned ones ...
- whatch 4y agoAs someone who just felt the urge to re-/read a lot of science fiction recently, I would really appreciate it if you added a spoiler alert
- pjc50 4y agoI appreciate that many SF short stories revolve around twist endings or reveals which spoil particularly badly, but I also think there needs to be a time limit on this or we can't discuss a story from 1958.
- preommr 4y agoI know I am missing the point but I hated that short story. There's no way any digital society loses record like that naturally since it's so cheap to store such information and have it last a long period of time and there's always enthusiasts that keep such things alive where sufficient advancements in technology mean people have more spare time. Also, it's way more unbelievable that an AI so advanced wouldn't be able to design simple manned machines.
- noarchy 4y ago>it's so cheap to store such information and have it last a long period of time It may be cheap, but when YouTube (as one example) takes down a channel that may have thousands of hours of content, that's gone forever unless someone archived it and is willing to make it available.
- pjc50 4y agoAssembly isn't even obsolete yet. "Next generation" languages, in the old 4GL/5GL sense, have never managed to obsolete the old ones, just expand around them.
- M4v3R 4y agoIt’s not totally obsolete but for 99% use cases nowadays there are faster ways to achieve the same goals than hand writing assembly. I predict that the same will happen with AI-assisted programming.
- ghaff 4y agoOr for that matter, literally writing out code by hand before typing it in line by line. Which used to be the typical workflow.
- williamcotton 4y agoFunny enough, that seems like the workflow we’re headed back to with LLMs in the picture, although instead of writing down ASM before typing, we will be writing high level specs.
- psychoslave 4y agoHave you tried "Show optimized Newton Raphson Algorithm implementation in GNU assembly." in chatGPT? I’m not versed enough in assembly to judge quickly the result honestly, but if you are, please let me know your opinion. Here is the answer I got: Sure, here's an example implementation of the optimized Newton-Raphson algorithm in GNU assembly (also known as GAS) for x86 architecture using the SSE2 instruction set: perl .section .data .float constant, guess, tolerance .section .text .globl main .type main, @function main: movl $0, %eax # set loop counter to 0 movl $100, %ebx # set maximum iterations to 100 movl $1, %edx # initialize sign flag movss constant, %xmm0 # load constant movss guess, %xmm1 # load initial guess movss tolerance, %xmm2# load tolerance negl %edx # negate sign flag jmp .loop_start # jump to loop start .loop: addl $1, %eax # increment loop counter comiss %xmm2, %xmm1 # compare guess with tolerance jbe .done # jump to done if guess is within tolerance movss %xmm1, %xmm3 # copy guess to xmm3 divss %xmm0, %xmm3 # xmm3 = guess / constant subss %xmm3, %xmm1 # xmm1 = guess - (guess / constant) movmskps %xmm1, %ecx # get sign mask for xmm1 testl %edx, %ecx # test sign flag against mask jne .negative # jump to negative if sign flag matches mask jmp .positive # otherwise, jump to positive .negative: addss %xmm2, %xmm1 # xmm1 = xmm1 + tolerance jmp .loop_end # jump to loop end .positive: subss %xmm2, %xmm1 # xmm1 = xmm1 - tolerance jmp .loop_end # jump to loop end .loop_end: negl %edx # negate sign flag .loop_start: cmpl %eax, %ebx # compare loop counter with maximum iterations jb .loop # jump to loop if loop counter is less than maximum iterations movl $-1, %eax # set return value to -1 if maximum iterations exceeded ret .done: movl $0, %eax # set return value to 0 if success ret In this implementation, the algorithm takes three input values: the constant value for the function, the initial guess for the root, and the tolerance value for the accuracy. The algorithm uses the SSE2 instruction set for floating-point arithmetic operations, and it also includes an optimization to avoid branching based on the sign of the difference between the current guess and the previous guess. The tradeoffs involved in using GAS for implementing the Newton-Raphson algorithm include the complexity of the code and the potential for portability issues across different architectures. Additionally, the performance of the algorithm can be affected by the availability of the SSE2 instruction set on the target architecture.
- brightball 4y agoNo.
- Philorandroid 4y agoNot on a meaningful timeline, no.
- Joker_vD 4y ago> The reality is that we will need less programmers if programmers can get more work done in less time. Well, that... is a non sequitur. Jevons paradox is a thing that exists, after all.
- gregjor 4y agoThe elephant in the room: the job market and LLMs will make some programmers redundant. Maybe a lot of them. The programmers who will get hit hardest have spent their careers mastering the parts of programming easiest to automate or outsource. They have not spent the time to learn communication skills, organization skills, or develop business domain expertise. They just know how to code, and not even proficiently enough to compete with a really good auto-complete bot.
- gaudat 4y agoAka web front-end developers?
- gregjor 4y agoAnyone who conflates knowing how to write code with adding business value. Front-end, back-end, doesn’t matter. If you don’t bring more to the table beyond knowing Java or Javascript or HTML at the advanced bootcamp level, skill up.
- wildrhythms 4y agoI feel like backend is more predictable. Known inputs and outputs (think an API). I can get ChatGPT to act like an API with a single query; but actually building a front-end application not so much.
- jmuguy 4y agoWhat do you imagine the backend is doing? Just providing a connection to a database somewhere?
- serpix 4y agoI wonder how you are currently predicting a random api change, login flow change, business reorganisation change, inheriting and integrating a new microservice to the ecosystem of n existing other applications.
- quonn 4y ago
- recursivedoubts 4y agoNo. Coding may move up the abstraction hierarchy a bit more, but high level languages are already in a pretty good spot: much more abstraction and it's hard to understand the ramifications of particular code changes. We will certainly have more crappy generated code that no one understands, which may replace some crappy copy-and-paste jobs from Stack Overflow that no one understands.
- jslind 4y agoI find the initial texts from the college student a bit funny for the reason that all kids in college now that I know of studying computer science are in major fear. Many are predicting doom and even leaving the major saying itll be taken over by AI before they even graduate.
- vonseel 4y agoAs if CS is the only major in jeopardy of this? I predict the accountants and admin staff etc. will be replaced long before the people who build the systems that replace them.
- twawaaay 4y agoHand coding is definitely not becoming obsolete. But some people may need to grow up and start treating more seriously skills other than just coding. And a lot of people will lose their jobs if the only thing they can do is coding boring application and that only barely.
- boredumb 4y agoNo but you will probably find yourself hand coding routines that will interpolate data into some prompts for an LLM to do produce something for end users. I'm sure there will be a lot of people building entire things through prompts to output code and try to stitch it together, but I am equally sure that the approach will require expensive consultants to 'hand code' the solution into something that is correct and remotely efficient.
- danpalmer 4y agoLLMs can currently auto-complete a medium complexity function, and with some hand-holding can just about manage a class with basic state. I'm not talking about a text-book binary tree implementation, they can obviously manage those or problems that boil down to those, because they have clear patterns to them and have been repeated again and again, but that's not most code. I think they need to be roughly 3 orders of magnitude better than they currently are to meaningfully replace engineers. Managing architecture across many classes is a clear step change up from one class (or your language abstraction of choice). Managing state, persistence, consistency concerns, are another significant step-change in ability – not at the level of 3 interdependent variables, but more like 100s of data structures across asynchronous code. And lastly, debugging all of this and understanding how the system works as a whole is another significant step change. It's not obvious to me that a large _language_ model has the ability to understand these abstractions. I suspect LLMs will therefore max-out for programming applications (and others) "soon", and that we'll need another technological leap to get there.
- mlboss 4y agoThis does not match my experience with ChatGPT 4. Just now I added a new api endpoint complete with database changes with unit test. Everything took around 1 hour with back and forth communication. This is at the level of developer with 5 year experience.
- jstummbillig 4y ago> to meaningfully replace engineers When engineers are producing any significant increase in productivity by use of any tool, this tool is statistically replacing engineers. And, with what is currently happening in AI (going by the self reported numbers that I picked up) the former seems to be true to a wild degree.
- jeremyjh 4y agoYes and this is true of most use-cases of ChatGPT. It makes experts more productive but it cannot reliably produce expert quality work in the hands of a non-expert.
- 4y ago
- hoseja 4y agoCould we at least get smart compilers first?
- AnimalMuppet 4y agoDepending on what you mean by "smart compilers", I may not want them. Do you mean "able to produce better error messages, and suggest fixes"? Sure, that would be great. Do you mean "able to decide what it thinks I meant, and compile that, rather than error out on what I actually said"? I absolutely do not want that. Or at least, I want a flag to turn it off.
- ChatGTP 4y agoPrediction, we'll actually innovate less because we'll all be trying to do things that are compatible with "the machine". Coding will become more generic and less innovation solutions will be standard.
- rcarr 4y agoBetteridge’s law of headlines strikes again. https://en.wikipedia.org/wiki/Betteridge's_law_of_headlines https://en.wikipedia.org/wiki/Betteridge's_law_of_headlines
- cs02rm0 4y agoMaybe it will, but we're not even close yet. I've tried so many times to get ChatGPT to generate code and every time it produces something that looks like code, looks like it would work but doesn't work - for fundamental reasons, like it's made up APIs that don't exist. It might make getting some small functions or one liners in place quicker, especially for someone in a language they're unfamiliar with. But IME it falls apart pretty quickly and can cost you a lot more time figuring out why its fantasy code doesn't actually have a hope.
- quonn 4y agoFeeding the output in a compiler and the error messages back is probably enough to fix these kind of problems. After all it also can fix errors that I‘m pointing out manually.
- mywacaday 4y agoI don't code for a living although I do have a programming based college degree from 20 years ago. I use a few Outlook VBA scripts to help with mail management, I was playing with ChatGPT last night to see if it could reproduce the functionality. It only took about 10 minutes to get the output I needed after updating my description and telling ChatGPT about any errors which it promptly corrected. For these trivial script like tasks I would say hand coding is dead. I can see it making Excel a lot more powerful/dangerous in the hands of end users.
- nuc1e0n 4y agoProgrammers haven't been doing hand coding for a long time already. But for any system to be useful it must be consistently modifiable without introducing regressions and it must be possible to confirm whether the desired functionality is being met. LLMs today don't meet those criteria. Generating boilerplate code automatically is only useful for languages that have such busywork baked into them.
- cuddlyogre 4y agoThe only way this will ever happen is if ChatGPT and others like it become fully open source. Relying on the likes of Google, Facebook, Twitter, and Microsoft to do your thinking for you turns the very act of development into an app store submission. If they don't like what you're doing or think you're too much of a competitor, they will lock you out. They will take your work and either discard it or use it for their own purposes. Leaving you dead in the water because you don't have anyone that knows how to do anything because they let the AI do their thinking for them. Does it not strike anyone else how terrifying it is that we are headed toward a future where everything you do is owned by big tech? Or how we are being conditioned to think how big tech says we should think, or else you don't get to play? Say we do wind up using something like ChatGPT for everything. In a generation, everyone's mind will have atrophied to the point that even the most basic tasks will be impossible. Most people already can't do basic arithmetic in their head, spell, count change, read a clock, or remember their schedule because of the reliance on computers and phones. Without people having to engage their brain to do anything, it will turn into some kind of Zombieland.
- freefaler 4y agoThe market would solve this in one way or another, not because of the needs of the single developers, but because megacorps need to control their own code and infrastructure. Core competitive advantages are related to information processing in any organization even a factory. Also attempts for "pausing" for 6 months will fail, because this is Internet and even if OpenAI, Google, Facebook and etc... decide to honor this pledge (and lose competitive age) Chinese government/companies won't stop. The same discussion was held at the dawn of atomic age after the scientists saw what it may lead to. Never worked in the age of paper communication. Won't work on the age of instant information distribution.
- bombolo 4y ago> because megacorps need to control their own code and infrastructure. explain npm then…
- precompute 4y ago
- moltar 4y agoI started coding with my feet