manhobby wrote:
Which is the system that does this?
Mine.
Quote:
Why its designer will no longer be programming in machine code?
Because machine code isn't portable. It only makes sense to program in machine code in a big system if you are a compiler, but a compiler should be software rather than a person. My aim from the start has been to replace myself with an intelligent compiler that writes code in the same way I do, except that it should do the job much better than I can - I usually only have time to get routines working, but an intelligent program which crafts its machine code and carries out experiments to optimise it should always produce code that gets the best out of the machine, and it will be able to replace all the code that I wrote with perfect code. There's no point in me spending a year or more tidying up my code when an intelligent system will be able to do that job better within the space of a few hours, so it's better for me to focus all my effort into building the intelligent system. The only reason I ever programmed in machine code was that I wanted to understand how such an intelligent compiler should operate, and the best way to do that was to imagine that I was the intelligent compiler and to work in the way that it would - while doing this, I think a lot about the thinking skills that I use to solve problems and try to work out how to replicate those skills in software so that an intelligent system can carry out the same work in the same way. Once that system is built, there will be no need for me to write in machine code ever again, and the intelligent system will be able to switch to using any other kind of machine code for any other processor, so it will be able to port itself to any new kind of hardware.
There are other people trying to build intelligent systems where the human programmer uses natural language to write programs, but they're building them using higher-level programming languages. I don't think that puts them at any great disadvantage - it's really just a matter of working in whichever way you're comfortable, and for me that happens to be machine code because that's what I used when I learned to program. But there's no future in it for anyone else, and my aim has always been to switch away from it to using natural language, so why would you want to move into a place that practically everyone else has avoided for decades and where the one person who has found a way to make machine code programming practical wants to switch away from using it? You should forget about working in machine code - you need only take a big interest in it if your want to write a compiler.
Quote:
Few programming in Pascal, Visual Basic, Delphi, C and Java.
Then you should continue to work with those (or the ones that are most in demand), and extend your range by learning one or two other languages that look as if they might become more important in the future. You should maybe do a little work with assembler (just so that you can put that on your C.V. and back it up with proof - even if no one employs you for that ability, it will show that you are versatile and that you can adapt well to different ways of working). Your main priority should be to become expert at using a range of mainstream languages so that you aren't seen as a less capable candidate than your rivals for any job you apply for, and if you also have expertise with a couple of exotic languages which the others don't have, then that will make you stand out above the crowd, but knowledge of machine code and assembler won't impress any employers unless you've already matched everything else that everyone else has. Choosing languages is a gamble, but you can push the odds in your favour by studying job adverts to see the trends - that's something you need to do yourself so that you can see what's in demand where you are. So get on with doing that, then make your decisions, and then commit to them and get on with learning without wasting time looking back. You are in a race against hordes of other people who are learning an extra programming language or two in the time that you're wasting trying to decide which languages to learn.