Hacker News new | past | comments | ask | show | jobs | submit login

The thing is there was enormous progress in natural language processing lately; it's now conceivable to enable some simpler forms of programming using your voice commands only (imagine webapp or mobile app builder controlled by voice) that would satisfy needs of 95% of population, putting many companies out of business. Even at top 5 companies there is a panic about it and many managers will tell you in private they personally think in 10 years there won't be many high-income sweng jobs unless you are in ML or related field, as they see demos from their research labs.

I guess we will see how this pans out in the end...




The thing is that no matter how good NLP becomes, natural language is inherently fuzzy, just like humans are inherently fuzzy. Human languages do not provide the precision that a computer must have. It is possible that the computer can learn to guess correctly in some percentage of cases, perhaps even a very high percentage of cases, but it can never be more than a guess because that information is simply not expressed in conversational English (and I'm monolingual, but I assume it is pretty much the same in other human languages).

Perhaps we are moving to a day when all programming will occur verbally, and each programmer will be paired with an Echo which he verbally instructs as it writes a program. But we will still need a person who is assigned with converting natural language to machine language, including reading in the contexts and assumptions necessary to make assumptions that are almost always correct.

That's the part that I don't see how computers are ever going to be able to beat humans on. You can't squeeze blood from a stone, and if the data isn't there and isn't in any of the spied-on data collected by all the listening bugs all over the house and all the location bugs carried in a person's car and pocket and all the network bugs on the person's computer and ISP, and so forth, the computer won't have the data necessary to furnish the desired response.

Conversational language will not have the necessary precision without special effort being dedicated to expressing ideas in a logical, mathematically-valid way. The people who expend that special effort are called "programmers".

IMO the only hope of a programmerless future is one where the language has meshed to the point that every conversational statement is a valid program after the NLP's macros have been expanded or whatever, and the computers understand this with a 0% error rate. A world where a master programmer reprogrammed human language to be computer-native. I don't see us getting there.


It's like LEGO - you have some basic building blocks and you can compose some cool things with them. Your first LEGO set has only 3 different blocks, but nevertheless you make some nice tools just with them. Then some smart person adds another 2 blocks later. Then another 3 blocks. Then an electric engine. Suddenly your scope becomes much bigger. Then somebody makes mini LEGO to mask rough edges, making your creations almost realistic.

In other words, initially intelligent app builders will have very limited capabilities. As research advances, those capabilities will increase, in a snowball effect. At some point you'll be just talking to your phone and maybe touching screen here and there when making most web pages/apps, and all will be assembled from those building blocks. I believe we can now finally see a dimmed light at the end of the tunnel.


How is that different from say Unreal Engine, where you can already make a top-notch (graphics wise etc.) 3D game without any programming - by using their blueprint model? The point it, it still requires someone expressing the desired gameplay mechanics in terms of the blueprints ("lego blocks") -it's not that different from programming, except maybe looks more friendly than code.

It's a looong way from tools like that to a state where a CEO can ramble on his vision for some app in 100% natural language into the microphone, and clever AI figures out all the blanks and automatically programs it for him.


Yes, you are getting it ;-) So currently Unreal allows you pretty fast development using some blueprints. Now what is missing is some AI tool that understands a bit of context. Imagine you want to animate some character there. You can stand in front of a webcam and tell UE that the character should move like this, and perform the move. Then you review it, you see you really don't look nice on video, but the basics of movement are there. So you say "do it like this, but more artistic", and your AI will try to figure out what that does mean from some pre-trained "artistic" movements, and you can pick from the results; then you'd like to beautify it as you are out of shape and generally don't look like a model, so AI takes some pre-trained model info and launches a GAN to construct 3D body that looks like a "model" but follows your movements. Treat it as an advanced "pocket knife" that can automate some higher cognitive functions in the sense like "computer is a bicycle for our mind", and current AI allows you to do more complex tasks automatically. This will get better presumably, so each new iteration can do better than before.


I see your point now. I agree that, thanks to better tooling and libraries (some of those maybe based on AI), there'll be less reinventing the wheel, and so less jobs for non-awesome programmers. I think it has already happened in games, where, due to widespread adoption of engines, there's less need for experienced C++/maths/etc folks (and, thus, less room in the job market left for non-geniuses) and instead we see jobs for lower skill "engine operators" (ex. gameplay programmers in C# for Unity).

It has not happened yet in the general/business programming field thanks to:

1. Software and automation being applicable practically everywhere (and also in part thanks to bubble money) - the field is still growing at a mad rate.

2. Business problems being less conducive to algorithms and AI. For example, try coming up with a good AI which can figure out how to handle an edge case in a supply chain app. The AI would essentially need to understand humans.


Consumer demand is endless. The more they have, the more they want. Machine Learning, or whatever it turns into, will just expand the opportunities and the requirements.


...but also enable laymen to do many things all by themselves instead of hiring another person to do it for them. If done right, ML will increase power of everyone, if not done right, only of a few.

Currently the "art of programming" is a gift to a few. But if you look around you, almost everything people do is some sort of an algorithm, i.e. sequence of steps affected by inputs. ML will allow grasping some very difficult concepts which our brains can do naturally and help automate them, making those algorithms easier.




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

Search: