Advertisement

Programming changed? Forever?

Started by January 05, 2011 03:55 AM
27 comments, last by Ravyne 13 years, 10 months ago
http://en.wikipedia.org/wiki/Memristor

http://www.pcworld.com/article/152683-2/future_tech.html#1

This new technology claims it maybe can replace RAM and flash memory, in addition to making memory more dense, cheaper, and smaller.

THE INTEREST I HAVE IN THIS IS THAT IT CAN SAVE MORE THAN ONE ELECTRICAL STATE.

Does this mean that we are able to have more than 1's and 0's?! Imagine, ten years, from now...

Programming will need to change if the hardware changes. This means that variables can then be defined as not binary, but perhaps finally base ten, base three?! This means that we can have BIGGER variables and BIGGER capabilities?! Does this mean that switch statements will take up less memory? Will this mean that we can create Troolean logic? True, false, and NULL?!

I'd like to see programming in the future. I can't believe it: will the first company to pounce and market a operating system running on this technology be the next king of the market? Will Microsoft finally go down?
http://thsotusgames.wordpress.com/ - My beginning, sad, studios.
You can program with enum{True,False,FileNotFound} if you want to... Computers are built in base-2 only because it's usually more cost efficient. Current languages could be compiled for a base-3 computer.
Earlier computers used many different number systems.
Advertisement
Quote: Does this mean that we are able to have more than 1's and 0's?! Imagine, ten years, from now...


Magnetic Hard Disks can save a near infinite number of different states as well.
Analog Computers work with "infinitly" more than just 0's and 1's, this isn't really new ;)

Quote: Programming will need to change if the hardware changes. This means that variables can then be defined as not binary, but perhaps finally base ten, base three?!


The reason for the Binary system isn't the memory, it's the CPU. As stated earlier, a Base 10 Digital System would have been possible with Magnetic Hard Drives, though quantesizing the different states from 1-10 would create a high possibility of error.
All the Mathematical Operations in the CPU are performed via logical Gates. And these logical Gates only handle false and true.
I don't even know if a Base 10 Digital Calculater (non-biological/mechanical) exists?
And I highly doubt that Intel would reinvest all their money in new CPU technology just to have a Base 10 System.
I don't even know if a Base 10 Digital Calculater (non-biological/mechanical) exists?

As mentioned, Babbage's Analytical Engine used Base 10.
Quantum computers use a qubit which can be 0, 1 or both.

I don't see any of this making programming any easier?
[size="2"]Don't talk about writing games, don't write design docs, don't spend your time on web boards. Sit in your house write 20 games when you complete them you will either want to do it the rest of your life or not * Andre Lamothe
The thing about programming is that it's many layers of indirection. The binary thing is near the bottom of that stack, and most programmers writing, say, C++, wouldn't even notice if the whole "binary layer" changed. They wouldn't need to.
Quote: Original post by daviangel
As mentioned, Babbage's Analytical Engine used Base 10.
Quantum computers use a qubit which can be 0, 1 or both.


I counted the Analytical Engine as Mechanical, but the Quantum Computers sound Interesting. I'll have to take a look into that

Advertisement
Quote: Original post by Thsotus
BIGGER variables

Yeah, current variables are too small, especially for hardcore MMORPG programming.

On a more serious note, I think the future in programming is in even more abstraction from hardware, so however cool this new technology is, I don't see it change the job of the average developer.

Microsoft is doomed anyway, because apparently 2011 will be the year of the Linux desktop (and Duke Nukem Forever).
Quote: Original post by Thsotus
THE INTEREST I HAVE IN THIS IS THAT IT CAN SAVE MORE THAN ONE ELECTRICAL STATE.

Does this mean that we are able to have more than 1's and 0's?! Imagine, ten years, from now...


From what we've learned at school at least, the electrical/magnetic state is analogue anyway. It's just that we assign "1" and "0" to the maximum/minimum, say -5V for "0" and 5V for "1", so they can be detected with more accuracy. If you decide to sample more frequently, you've got more information, but bigger chance of errors. which you then you have to correct using more hardware, or more software, and so on and so on. At some point, you're going to get errors from simply turning on the TV 5 feet across the room. At least that's what I've understood. On the other hand, it would be great for devices that need to be small and last longer, like those that regulate blood pressure for people with heart problems? Although I guess that's what they intend to use them anyway.

On the other hand, look what teams like the .kkreiger guys have done with just 96KB of storage(program+data, not RAM). I don't like the idea of depending too much on every possible hi-tech gadget that you can think of. With these new GPS things many taxi drivers get lost 5KM from their "base" because they don't have to learn the roads anymore. Or those äugmented reality" things, which you supposedly turn to the Eiffel tower and you get "layers of information"? As if you can't just google Ëiffer tower" while at you're on-site anyway? It's a bit silly.

[Edited by - mikeman on January 5, 2011 10:47:29 AM]
Quote: Original post by m1o1d1
All the Mathematical Operations in the CPU are performed via logical Gates. And these logical Gates only handle false and true.


The idea that logic gates only handle 'false and true' isn't quite true. It is more correct to say that they work on High vs Low input/output states.

It is possible, and has been done in the past, to produce gates that have a wider range of inputs and outputs. Binary became the dominate, (And then basically the only method used) to produce digital systems because it is fairly easy to make small low voltage systems with only two working states.

The key is that you need a buffer between each state, and if I remember correctly, modern chips technically have 5 states, not two. No/under power, low power, state gap, high power, over power. The chips only produce a valid out put on a low or high power input.

Without the buffer state between logic states, you can produce a region that will rapidly switch between logic states, or be inconsistent between chips due to manufacturing errors.


What does it mean for programmers? Assuming you're not using very low level stuff, it doesn't mean a whole lot.
Old Username: Talroth
If your signature on a web forum takes up more space than your average post, then you are doing things wrong.
Quote: Original post by daviangel
Quantum computers use a qubit which can be 0, 1 or both.


That's not really accurate - a qubit can be 0, 1, or 'not yet observed.' The difference is significant because you can't examine a qubit and say 'yep, it's in the "both" state' - you can only determine whether that's true about it from the context in which you're using it (i.e. whether the computer has been directed to observe it yet).

Richard "Superpig" Fine - saving pigs from untimely fates - Microsoft DirectX MVP 2006/2007/2008/2009
"Shaders are not meant to do everything. Of course you can try to use it for everything, but it's like playing football using cabbage." - MickeyMouse

This topic is closed to new replies.

Advertisement