Hacker News new | past | comments | ask | show | jobs | submit login
What Will Programming And Architecture Look Like In 2020? (highscalability.com)
30 points by experiment0 on Dec 27, 2012 | hide | past | web | favorite | 10 comments

I have some issues with this.

1) Programming isn't reverting to guilds because there's no way to restrict people from learning about programming, and there's no way to restrict people to only hiring guild programmers.

2) No, not everyone will become a programmer. But a greater spectrum of people will do programming type things as the rewards for being able to control computers effectively (via programming) will continue to increase.

3) Bigger People vs. Bigger Ideas seems a statement that is so generalized and open to interpretation as to be meaningless.

4) Finally, no mention is made of things like superior parallel processing, something that is integral to continuing to do fancier things with advancing technology.

"Programming isn't reverting to guilds because there's no way to restrict people from learning about programming"

Sure there is: nondisclosure agreements, secret APIs, expensive proprietary tools, etc. You already see this to some degree with video game development. App stores are going to make this worse, as people are going to have to pay more in order to develop software and will not be able to just run development tools on any old system.

"a greater spectrum of people will do programming type things"

Those people will also be more restricted in terms of what they can do. People will know how to write macros for a specific product; they will not be able to write programs in general. I suspect that the number of people who can write general-purpose software is going to decrease as platforms become less open.

"Finally, no mention is made of things like superior parallel processing, something that is integral to continuing to do fancier things with advancing technology."

First of all, we do not even know if we can benefit from parallel approaches to certain very important problem classes (see: NC v. P). Second, we have heard the "parallel processing will save us" argument in the past, but we were not saved. From where I sit, algorithmic improvements will be more important than parallel programming over the next decade: better approximations, better heuristics, and faster operations are going to win over more cores.

yes, app stores and console game development in particualar are very good examples

1) Guilds could form more through the power of evolved authority and authentication. The assumption is the role of the University is reduced and education becomes more specialized and short term results driven. In that world how do you know who has real skills?

With Cisco training, for example, your Cisco certifications are your credentials. We haven't seen this model of certification move to programming in general. We probably will as these new training hubs form and begin to monetize through being a body shop rather than through fees. A few Guilds will become popular and their certs will have more value. Via small networks potential programmers will flock to these services and the phenomena becomes self-reinforcing. Guilds may specialize around certain subjects, as guilds did in the past. These Guilds will recognize their power and monetization opportunities and take a greater and greater role across the entire value chain.

The scalability of online training means vast numbers of potential programmers can be filtered out and stratified into various skill levels and specialties, much like a MMORPG across a vast virtual world. Programmers will gain experience points by being apprenticed on projects that have been bid out. Each project can be thought of as a quest. As new skills are required the Guild can bring on new training and integrate it into the game, quickly creating pools of new subject matter experts. This will be cheap labor and will be highly profitable. Masters will evolve that can access large pools of labor. Specialized tiger teams can form to solve difficult problems, all mediated by these new training Guilds as the Game Master controlling their Game World.

Virtual economies can evolve around code and skills. Each Guild may evolve their own infrastructure, code banks, tools, styles, networks and processes that will make bootstrapping new projects even more profitable. Instead of GitHub we'll see Guild Hubs. Instead of the Amazon Cloud we'll see Guild Clouds. Instead of Frameworks we'll see Guild Frameworks. These will not be open as they will be used as a competitive advantage as the open source community is compelled by game mechanics to become part of a Guild.

Will guilds, like in the Renaissance, be formal parts of the government having government enforced powers and benefits? It's not hard to imagine, especially if privatization becomes more popular. But even without the government picking winners, through market forces very powerful actors can emerge by controlling the supply of a necessary good.

Will this happen? Who knows. That's why it is a prediction :-)

2) Agreed.

3) Sorry you feel that way. I think the emphasis on building things rather than people is a central subject of our times.

4) Lots of people are more qualified than I to speak on those subjects. And have. What are your thoughts?

I like the idea of creating software that resemble patterns found in nature. I invented 2 directions (not very popular yet, but I like them anyway): 1. organic programming: grow the systems, not build them. This idea lead me to creation of 2 frameworks (one is open source, but beta: https://github.com/salboaie/shape) My original idea about organic programming was about a tight integration of the tools used for developing the program with the program itself. These tools can be used at runtime to customize or even to create new features. This approach have interesting implication on the framework, some good, some not so good but the organic paradigm changed the direction and reduced complexity and arbitrariness of some design decisions. 2. swarming and swarms as better metaphor for asynchronous messages. This idea has very nice implications and I believe that it is an approach that goes towards essential complexity regarding programming with asynchronous messages. For details, asm me or take a look here: https://github.com/salboaie/SwarmESB

I think there will be a paradigm shift in programming styles.

In the last few years I noticed a change from inheritance to composition, from imperative to declarative and now reactive programming is looking very promising.

Multi-core concurrency and cloud scalability are the biggest game changers I can think of. Programming will evolve towards building such systems in a more deterministic way, with faster iterations, less debugging and more reusable components.

Pretty loose article with only one central idea of human resource specialization.

It includes factual inaccuracy gems such as

"It wasn't until after WWII that there was a conscious move back to a system of world wide free trade, which resulted in another era of solid economic growth."

This has nothing to do with historical fact. The pre-Bretton Woods and Bretton Woods system were strongly characterized by very high capital controls and very high progressive taxation systems, only abolished in early 70s due to various shocks. Interestingly enough, it is likely there has never been a more global economically productive or financially stable period in human history and it is often known as the "Golden Age of Capitalism".

Maybe not by 2020 but I think the future of "programming" lies in the machine learning and ai subsets within the CS field. At some point, to cope with the complexity we're going to have to have programs that write themselves and adapt over time, optimizing and creating functions based on input. I think programming will become a matter of clearly defining problems and desired outcomes, providing intelligent feedback to the system, running tests over the software, and essentially letting the programs build themselves.

praptak posted (http://news.ycombinator.com/item?id=4966827) this link: http://www.patternlanguage.com/archive/ieee/ieeetext.htm

In this keynote Christopher Alexander is trying to convince us programmers to write more human or living software. Maybe that's where it should be heading?

Java and C# and scripting languages, just like the last 10 years.

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