What is computer science actually like?

What will Computer Science and Programming be like in the far future?

  • When 5th and eventually even 6th generation languages become powerful and viable enough to replace current languages, how will it affect software development, and the field in general? Will programming become something even the most technically challenged users could accomplish to some degree? Will software engineering become a "blue collar" profession? Also, eventually, we will have discovered and achieved the maximum in computer science, where software, hardware, and reality converge into one. Hardware will have reached the limits of von Neumann architecture. What field would exist to replace computer science when that time comes?

  • Answer:

    There's no programming language that's good for everything. Not even "natural language". We invented maths notation so that people who are "natural intelligences" could communicate more precisely and effectively about certain abstract things. No profession, from medicine to law to theoretical physics to art criticism is without its jargon which can only be understood by those who've taken the time and effort to achieve a certain level of familiarity with it. Programming won't therefore become something that untrained people do by conversing in everyday language, for the simple reason that most programming will still be about involving the computers in specialist activities, and will need specialist understanding of those activities. Such specialist understanding actually prefers more formal and unambiguous notation rather than trying to use conversational natural language. (Even ideas and services that everyone uses and thinks they understand  (think banking, or Facebook) still have complex conceptual ideas  specifying how they actually work and deal with edge-cases behind the scenes. You would be hard  pressed to specify how your bank or Facebook work to another human  being, despite that human being being "AI complete". ) So, most likely, programming will fragment into more and more "domain-specific languages" for the increasing number of niches that are programmable. Each will be full of domain-specific assumptions and knowledge, though they may sometimes be different dialects of some basic grammatical syntactic patterns. (An example of this is XML which acts as a syntactic substrate to many different data formats.) Apart from XML, C and Lisp are syntaxes which will probably still be hanging around. There'll be many of these specialist languages that still use C-like or Lisp-like notation because that's what people are used to. The other thing about these domain-specific languages is that many of them will be hooked into huge online data-bases and cloud hosted services. (A bit like the Wolfram Language). You'll rarely write code to run by itself as much as you'll use it to present your problem to the cloud service and reformat the returning data. There'll still be "serious" programming languages for defining and orchestrating what goes on behind the scenes.  Such languages will have the following characteristics : - they'll be good for defining and hosting these other DSLs. - they'll have facilities for defining data-flow between systems. (Most likely some kind of reactive programming). Because the important thing about programming in the future is that you'll very rarely be programming one computer. You'll be programming an application that's distributed amongst many : servers and phones, the sensors and actuators of the "internet of things", multiple robots etc. - they'll aim to be as powerful, expressive and error free as possible. (If all of this leads you to think of Haskell, that's deliberate .. .though it may not be Haskell itself.)

Phil Jones at Quora Visit the source

Was this solution helpful to you?

Other answers

In the far future, commercial programming will have assimilated and be deriving benefit from a 50 year backlog of important ideas in Computer Science. Right now we are stuck in a perpetual 1980, while imperative concepts are continually regurgitated and taught, and engineering is ring-fenced from innovation, by those who know only the most-talked-about, least interesting tools. In the words of Alan Perlis: Some programming languages manage to absorb change, but withstand progress.

Toby Thain

Lot of thinks become easier, but lot of other emerge by the time the technology evolves. For example: The power/speed of computers will grow so much that will become possible to break passwords, encryption and security just by using brute force. New methods will require new programmers to invent and implement new ways. Drivers made using a keyboards or a printers very easy, but still a 3D graphic driver requires a hell of a good programmer to drag from it the best of animation for a good game. Speech-to-text may be a easy to-plug-in module, but making your spoken gibliesh talk become a trusted command for whatever the computer does with it, requires again a lot of talent (and user trust.) Computers will still require compilers (or interpreters) to translate tasks and business needs in machine code, even if tools like ReSharper can move some tasks from the developer to the compiler itself, writing a lot of code by itself; however tasks as inventing new algorithms will continue to request programmers, mathematicians, business intelligence or analysts, etc. New languages may also not include too much intelligence: moving too much maths in the language may make it hard to understand and master by most of humans aspiring to program: Mixing layers of programming (databases, services, BI and UI,) dealing with asynchronous responses or concurrent programming, protocols for eCommerce or security is quite difficult to swallow in one do-it-all solution: the learning curve will be long, while such programmers will be quite inflexible to change. The current model, languages and technology is a good fit for humans, and while I accept that AI can go a lot further, I take the risk to say that programming will stay in the current shape for long years to come. Languages may changes, model and architectures will change but only as variations of the current state. What will be more notable will be the migration of big chunks of business functionality from APIs to Services - but this is what we already see now.

Horia Tudosie

Eventually, I think computers do not need us as an engineer or expert coders. Everyone'll be able to code and create programs just writing their wishes with some natural language commands or just thinking about it. You might see the increase of coders with last decade. It is because of coding is more easier than old times. Punch cards to Ipads :)

Eren Golge

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.