Ask HN: How do you see the future of computing ?
20 years from now ?
20 years from now ?
That said I think the improvements we will see in 10 years will be based around the maturation of frameworks. In just about every environment, be it Rails or .Net or whatever, you see programming in general moving to a higher level. People using mature algorithms to focus only on what they need to customize and in doing so making programs that are easier to use while being a lot more stable.
I think that leads to the 20 year question. As programs become more stable and a generation of kids grows up with computers they trust not to crash I think you’ll see computing in general change. Add that to cheap, widespread touch screens and I think you’ll see a lot of things that are currently "physical" become "virtual". You can already see this now with things like EC2 which turns physical computers into virtual constructs that can be manipulated through software.
Think about it. Other than your oven or refrigerator what else do you even have in your house that couldn’t be made virtual? Your entertainment system, your computer, your alarm clock, etc... can all be moved "behind the screen". Even the oven and fridge can be made into components that interface with a virtual console.
That’s when the fun really begins for programmers because that’s when we get into the business of creating virtual worlds. I don’t know how that will take shape exactly as far as programming is concerned but I assume you’ll start to see hybrid functionality where physical interaction becomes a lot more important than back end functionality (which again will be largely covered by frameworks at that point). In many ways it will probably mirror how physical electronics are created now. Most electronics are built using pre-fab Integrate Circuits that do most of the work. The manufacturer just creates an appearance and a user interface.
Anyway, that’s one man’s opinion.
I think touch screens will be cool toys for the toddlers, but adults will use something different. Think about it, your fingers are blocking your view just when you need it the most.
I don't know what will happen, but I hope some technology would get the drones out of those cubicles. Something like chorded keyboards and holographic eye-wear combined with wireless network.
If some country would start to teach the use of chorded keyboard in elementary school, it might be a huge leap for the economics of that country.
If you work in small room, your ideas will be smaller too, if you work while sitting, your mind will be sitting too.
Nowadays programmers work to make software for other people. That will change. In future people will increasingly do their own software as programming is already taught in some schools as a basic skill. And programmers will increasingly make software for other programmers as the percentage of programmers/workforce constantly rises.
Both of these will shape programming towards "write what you want, and the machine will optimize it for you".
Actually some of the programming might not be writing at all. Some people are way better with images than words, and even today dudes draw pictures to help themselves to grasp what they are doing. Look at well formed C and the python, indentation was meant to help, now in python it's the way of doing things. Same might happen for other stuff originally just meant to display the info a bit clearer.
> In future people will increasingly do their own software as programming is already taught in some schools as a basic skill.
Especially scripting-languages have evolved hugely, and I think we're pretty close to where "regular" office-people will be expected to put together small scripts to get things done. Instead of going through a complicated change management process to add a button to some in-house app to save some time, users will increasingly be empowered to script such a thing themselves.
Programming is increasingly de-mystified, and it's really no harder tying together a couple of objects in, say, Python, than to do a proper mail merge in Office.
As soon as you go beyond "glue," you run straight into this http://www.xkcd.com/568/ (second panel). No matter how high level your programming language, it doesn't read minds. When we write programs we trivially understand that a program is a precise description of what needs to be done. Sure we have more advanced primitives for doing stuff nowadays, but we still need to say exactly what we want. Remember, if your programming language is ambiguous, that's a flaw. I believe there always will be a clear distinction among programmers and non-programmers, as I don't believe that this will ever change. 90% of people want to say "make a cool game" and have it happen, regardless of whether or not that actually works.
I do believe that in one day, Information Technology will invade each place, home, school, office, road... anything that exists in everyday life... I dream that everything in life will be connected and Internet will become more important than oxygene, something like cars, TV and cellphone now.
The IT world will be very promising, it'll be big and no one can control it. I think. In my opinion. The IT market will be so big that even giant companies like Google and Microsoft will be nothing rather than companies dominating a niche with a considerable market share.
I think in the future, the IT will grow strong, companies like msft will grow their sales but loose more market share, as the IT growth is stronger.
I think it's time for many "big" companies formed of 3 or 4 poeple. Look at startup now, it's just the begining, how was the web in 95? it was a few number of websites, they made good income and dominated the web (like yahoo.com and msn.com) now they still make money, but the web grow in a way they can't control it and the market is far big than their potentiel.
I think the future of IT will be so complicated that you can never, anyone, understand it... many new things everyday, startups launched each seconds... and many news, ideas and discoveries... It'll be fantastic, but we'll miss the days of the simple Hacker News interface.
meet you in 2040, hope this thread still exist...
Illustrative Programming will fit particularly well with, and benefit from, programs that collect, crunch, and display data - this being area that I agree will see a lot of growth and attention.[2] "The ability to take data—to be able to understand it, to process it, to extract value from it, to visualize it, to communicate it—that’s going to be a hugely important skill in the next decades,"[3]
Tools that are more suitable for large and complex data sets than Excel, and easier to use than R will become available. These will be used, as many current programming languages are, by people that are not trained in software development. Visualization will become much more important, so programming tool usability will improve. We'll see the influence of statisticians in our programming tools. Chasing down posts by others with similar problems and bugs will become easier. I'm not sure how much headway Illustrative Programming will make into the more hackerish areas of programming, though I hope it's a fair bit. For the best predictions on what languages will be like, just look critically at the languages that are at the start of their lifespans now (http://mythryl.org/ ? Arc?) and also at current research.
I think, though, that the most interesting changes will come from the sort of programs we'll be writing, the sort of people we'll be working with, and the sort of tools we'll have available, rather than from some feature x or y of some future major language.
[1] http://martinfowler.com/bliki/IllustrativeProgramming.html [2] http://flowingdata.com/2009/06/04/rise-of-the-data-scientist... [3] http://flowingdata.com/2009/02/25/googles-chief-economist-ha...
What has changed since then? Certainly not much in terms of programming productivity. What has changed is that we program the web now instead of a PC or a Mainframe. The architecture has changed. Esthetics have changed. Collaboration has changed. And we can crunch a lot more numbers now. Programming hasn't changed much.
And I think it won't change in the next 20 years unless some hard AI problems can be solved.
Turing-completeness will always look like Turing-completeness, but this is hardly interesting or relevant. I think that your claim about productivity is entirely false (see something like http://www.cs.umass.edu/~yannis/law.html ), but that's beside the point of my post.
"Illustrative programming" is just a classical case of a consultant inventing fancy marketable language. In Excel the illustrative parts are not the ones that involve programming in the sense of Turing completness. I think we need to use Turing completeness as a benchmark, or any interaction with computers can be called programming.
And I stand by my claim that programming something like KWIC has not become much more productive in the past 20 years. You could do it in Perl or in Lisp just as easily in 1989 as you could do it today. Even in C it's not that much less productive to flip and sort a few words than, say, in Java.
But productivity is admittedly a complex concept. Of course we have a much greater effect writing software today, but I think that has very little to do with the core techniques of programming. We may be more productive on average, simply because more people make use of techniques that fewer people were using in 1989.
It's not wrong to dream, is it? :)
And they say the magic's gone out of programming!
The progress in software engineering seems to be in finding good practices and giving them names, when they have names one can write papers about them where their usage in actual projects is analysed.
Example: there was a time when object orientation had not been coined as a term. Now that we have it we can move to the next step and explore variations on it. We can teach it, we can make languages adapted for it.
(I'm not holding up object orientation itself as an example of progress here (or the opposite), but the concept of giving a practice a name and exploring it.)
It's a great advantage if one can talk about 'unit tests' and a new hired person knows about it. People were writing what qualified as unit tests before the name existed, but now that we have a name we can write books about it, discuss problems in doing it, etc.
I'm sure bridge building and other engineering efforts have had much of the same development in their infancy. Clever individuals were doing successful things without thinking much about it they worked what they had, others needed to talk about it and books were written... and now we know arch bridges, suspension bridges.
What I was trying to get through in the GP post was more that the changes we've seen in software are evolutionary and incremental. I can't really think of any revolutionary breakthroughs in software for the last 20 years.
As you point out that doesn't mean that progress hasn't been made, and we haven't been walking further down the road of enlightenment. It's just that we've been taking one step at a time down a straight road without many surprises.
but we write Java on eclipse ;-). IDEs have made a lot of progress in languages most people use in their day to day work.
The number of Java library calls is a nice example, what an unbelievable overkill of library functions.
I expect such a breakthrough to be achieved via two possible paths:
(a) By brute force : the effect of interconnecting the worlds information via the internet.
(b) Parallel processing to be stimulated further by breakthroughs in bio-informatics.
> data Zero
> data Succ a
> class Add a b ab | a b -> ab, a ab -> b
> instance Add Zero b b
> instance (Add a b ab) => Add (Succ a) b (Succ ab)speech is my hammer, bang the world into shape -- now let it fall! my restleness is my nemesis. it's hard to really chill and sit still, committed to projects, i write lines, sometimes won't finish for days. scrutinize my literature, from the large to the miniature. I mathematically add, minister, subtract the wack, selector, wheel it back, i'm feelin that. -- haha! from the core to the memory and back, you know the motto - stay fluid even in staccato.
-- altered lyrics of Mos Def's Hip Hop
Any syntax you want, running on the same JIT compiler, but designed from scratch without marketing breathing down your neck.
But I think that we need to move away from both object and lambda architectures rather than finding ways to marry them. In my humble opinion, the "blue plane shift" is in an entirely different ocean than the ones we've been swimming in.
I'll tell you a little about the research I'm working on: All software is created directly as key-value pairs which can self-assemble into labeled, directed graphs. These are understood directly by an OS which acts essentially as a simple layer over the hardware. No programs are compiled or interpreted. There's no assembly code. There's more to it; I'll email you.
10 or 20 years from now, 100 million corporate drones will be sitting in cubicles looking at screens that look more like 37Signals or Wufoo than SAP or Oracle. Nimble web apps will steal the enterprise away from the monoliths just as surely as the PC stole it from the mainframe.
Edit: maybe its further away, but still worth thinking about.
And who's going to develop this magical new energy source that will replace petroleum, the most storable, efficient, easily-accessible energy source the world has ever (or will ever) seen? (Short of fusion.)
We need facts, not vague hopes.
look at the new electric cars and motos? aren't they the future? maybe!