Innovation on the Edge?
MCassatt asks: "It's a truism in many fields that breakthroughs come from the edge: the scandalous Impressionists become pretty pictures for posters and umbrellas; the world of science fiction becomes the world of science.
The wonderful, the fantastic, and the mad of today are tomorrow's mainstream. Are there examples of this in computer science? Not extreme programming, but extreme programs?"
Gnutella
Bit Torrent
Freenet
Reiserfs
Linux Kernel
Open SSH
Encrypted Filesystems
GnuPG
At least in my opinion p2p and crypto are the edges in coding right now. Both can be hugely successful if you succeed in writing them properly. They can also be a huge failure if done improperly. Personally, I'm amazed that there aren't more p2p worms/remote exploits out there. Every now and then there are a few breaks in crypto from a weird angle, but in general they have been very successful as well.
Karma: SELECT `karma` FROM `users` WHERE `userid`=138474;
To this day this prolific timewaster has left a very impressive swath of damage to production. If that isn't extreme, then I don't know what is.
Lots of fun little things to place with at Google Labs.
http://www.lmcdms.com/
DMS is the US Government's international secure email implementation. At a glance it looks like a bunch of crappy obsolete code and operating systems trying to do email, but when you stop and think about what is DMS is doing, it is pretty damned impressive.
I think it's the new Pet Rock.
Much of theoretical computer science is all about some crazy professor looking at a problem that he thinks is cool, without worrying about its utility. Then in a few years, somebody finds a practical application.
Does anyone have a definitions for Bricoleur? Would you be wiling to share it?
quis custodiet ipsos custodes
Look at how quickly organisations leapt upon these tools to boost worker productivity to the point where they are ubiqutious now.
Do not try to read the dupe, thats impossible. Instead, only try to realize the truth
What truth?
There is no dupe
I cut my hand using Microsoft Excel. Does that count as on the edge?
"I only speak the truth"
Karma: null(Mostly affected by an unassigned variable)
I'm looking at the headline in Mozilla on Redhat 8 and the apostrophes look like little domino pieces like they were edited in something that made them "smart" apostrophes like Ms word. This behaviour isn't showing up on any of the other stories.
Some guy thinks one day, "Life is just the replication of information. Computers can do that". We all love to hate them, but you could argue that conceptually, computer virii are as "alive" as organic virii. If that isn't an etreme idea, what is?
If I seem short sighted, it is because I stand on the shoulders of midgets
What happened to the icons for each story catagory next to the story itself?
-ty
It's not our fault you insist on using a buggy OS that cannot even read standard ASCII.
It fails it.
I dunno, gaming in general I think is a remarkable thing. When you think about it, it has many benefits. Increased hand/eye co-ordination, creative problem solving, even stress relief. A good round of Quake on the Necropolis level with some god cheats always helps after a trying day.
The question of what is on "the edge" can be answered by how much controversy the thing recieves - Something accepted by all will be mainstream, "the edge" denotes a radical departure and whenever there's a radical departure there's going to be quite a few people complaining about it.
It would seem to me that this whole palladium situation is the most controversial software project in a while, so it could probably be termed "on the edge", too.
Why this need to equate a flowchart with life? Because that's all a program is, some flowchart.
A computer can hold a piece of fruit in it's bowels like a human,that doesn't mean it can digest it.
Analogs are OK, but there comes a point where the items are completely different animals.
the thing is if a program is really innovative and radical you really cannot tell. example an example of new radical science in work would be an "ionic engine" it took princeples found from earlier sciences and applied them. we don't have this in CS. Nobody comes up with a theory about how "the computer space" works, and then tries to prove it, because everything is pretty much well documented and everything is understood because we created, so you really can't have really extreme programs. unless that is if someone uses a function really weird and gets it to something else, and i really don't see alot of that.
For The Best Jazz/Hip-hop fusion > COlD DUCK
Should revolutionise computer usage when it gets more reliable in a few years. IBM have been at it for a while now.
Do not try to read the dupe, thats impossible. Instead, only try to realize the truth
What truth?
There is no dupe
This is obviously a microsoft ploy to discover what's new and interesting so that they may destroy it! you have been warned!!
Who are y oo ?
I agree. Legalise vigilante execution of slashdot trolls NOW!
"...the scandalous Impressionists become pretty pictures for posters..."
I dunno... impressionist programing? It would only look like code from far away.
Besides, Microsoft already makes programs that look useful from far away but crappy close up.
that are used in movies becoming the basis for Winamp plugins, or systems like in "The Matrix" becoming fairly accurate screen savers?
And there's the ever present commandline on a Macintosh, from Independence Day back in 1996 that spawned a whole generation of Apple-loving UNIX geeks, command line administerable Apples, and scorn from the Original (calling themselves True) Mac Geeks...
Do not look into laser with remaining eye.
I'd like to put a vote up for relational databases... Relational Databases before they were cool!
Fnord.sig
The edge is where the known meets the unknown. That's where all innovation comes from - you find out or do something new, something that has never been done before. What new can you find in a territory already explored? Only a place that hasn't been explored yet (or some interesting bugs/plants/animals).
Hell is not other people; it is yourself. - Ludwig Wittgenstein
There are a bunch of different levels that this goes on - First there are new types of programs (p2p and crypto), then there are new languages (Java, etc.) and then there are programming approaches (OOP, etc.) and finally there are organizational approaches (OSS, distributed teams, etc.)
"Computer space" is the object of study of computability theory. Turing Machines, Post Machines, the \lambda-Calculus, the Language of WHILE-programs, function (morphism) composition, etc. These are all theories about the nature of computer space. Since the Church-Turing thesis and complexity theory pretty much cover the fundamental physics of the space, instead we worry about different ways to visualise and apply the space. It's much closer to engineering than physics is style, but you must admit that there's some similarity.
There is a possibility of people saying "In theory, our computers could do this..." But as soon as something makes it as far as actually being implemented, it's no longer fantasy but already in the realm of science. This is why there's very little "fantasy" in the computing world.
"Inflammable means flammable? What a strange country!" -Dr. Nick, The Simpsons
I'd like to put forward this Turing machine, implemented using the rules of Conway's game of Life. It astounded me when I first saw it, and it astounds me still. Have a look at some of the components using the provided applet. If you've ever played with Life, you'll know how hard it is to create anything non-random at all.
Sweetcode often has interesting pieces of programming too.
"Virii" is _not_ an official word of any form of English.
Stop trying to use Latin influences on a language not based on Latin.
I run windows 2000 without a firewall! Can't get more dangerous than that!
(I'm joking. I have a firewall and I am actually getting portscanned right now - wheeee)
Robots are everywhere, and they eat old people's medicine for fuel.
Having been involved in the development of Kai's Power Tools, I'd have to say that Kai's user-interface designs had a strong influence on what's out there today.
Our philosophy while writing those programs was based on the observation that existing UI paradigms were created for processors hundreds of times slower than current machines; why not leverage that power to create interfaces beyond the standard buttons, menus, and 16x16 pixelated cursors?
Say what you will, the OSX Dock (for example) is indisputably Kai-like. I think that's a good thing.
Weeks of coding saves hours of planning.
Any programming language, class, tutorial or method seems to have Hello World.
WhatMeWorry!
Software that enables one to turn a bunch of ordinary off-the-shelf computers into a distributed cluster to run message passing programs on were pretty radial at the time, but now it seems everybody does it. I run my codes just as often of Linux clusters as on big IBM SP/3 machines, and for a lot of tasks, the Linux clusters cannot be beat.
My votes would be for the following
File under 'M' for 'Manic ranting'
I think running the Microsoft Word paperclip applet should be considered an extreme sport, at least. I think, on a serious note, that more and more people are going to start using apps that allow them to view data constructs in visual terms, like the network map thingamajig I saw for instant messaging the other day. It allows you to see circles, cliques, newbies, etc., and how they're distributed through the IM world. New ways of looking at data for those visual types.
Extreme programs... try using Microsoft Word in a cage filled with rabid woodchucks, strapped to a rocket being fired downhill.
The only examples of science fiction becoming science are those things which happened to become real. Just because one makes a lot of predictions and a few happen to be true does not mean any of the other predictions will be true.
And, of course, does it count when it is a self-fulfilling prophesy? The dream of flying cars is exactly what caused one man to labor for decades to create the technology which allows a car-sized device to fly.
And, of course, some science is found to not be real. Flat Earth, Earth-centric universe, things made of fire/water/earth/air, atoms being indivisible, protons having no components, oil being from plants.
Check out the Avalon project. If is a framework encompassing the ideas of Component Oriented Programming and Separation of Concerns.
Also, read about Aspect oriented Programming, which "modularize[s] crosscutting aspects of a system" by allowing a programmer to specify "aspects" of a class or component such as logging, security, remotability, and more.
Spreadsheets. I am not aware of any other application that can be said to have had as much of an impact on computers. The spreadsheet on an Apple II was what brought personal computers into buisness, and was what gave users the power to do their own research and experimentation.
Once Personal computers came out, and Lotus came up with 1-2-3, the economics of volume production became powerful enough that costs dropped to the point that personal computers became useable for other activities (word processing was already being done on mini and main frames, so it doesn't count, databases have been on mainframes for a very long time, etc.)
Eventually costs got to the point where users could afford a computer simply to play games on. Of course then Games got to the point where a good gaming machine costs more than an excelent business grade PC.
-Rusty
You never know...
This is taken from my copy of "They Have a Word For It", by Howard Rheingold:
bricoleur (French):
A person who constructs things by random messing around without following an explicit plan. [noun]
I have often heard it applied to people who use objects or systems in ways the original designers did not anticipate; Levi-Strauss also defines it as someone who plays with objects and technology in order to gain a deeper understanding of them. Or, in short, a hacker (in the original sense).
On the Internet, nobody knows you're a woof grrr arf arf arf
Current candidates I would pick for innovative would be some of the p2p stuff that has evolved in response to the **AA's. Also some of the current concepts in gaming, like, The Sims...well, it may not be much to look at now, but once we have technology that could handle it....imagine a lifelike immersive game that simulated every aspect of life, or at least many of them. holodeck. Every geeks dream, I know, but the practical uses, such as experimenting with things in the simulation and having it provide data that is applicable to the real world would be mindboggling. And yes, then there's the pr0n.
Buy Steampunk Clothing Online!
Nah, if M$ hadn't pulled their typical "embrace, extend, envelop" on ISO-8859-1, this would not have been a problem.
-uso.
Dreams, dreams, don't doubt dreams, dreaming children's dreaming dreams. Sailor Moon SS
SETI@home
Leveraged the internet to show us what distributed computing could do and created the world's cheapest & most powerfull supercomputer in the process.
http://setiathome.berkeley.edu
http://boinc.berkeley.edu
I'd say that the cutting edge is the stuff being done in A-life and evolutionary algorithms, and probably neural nets.
Logic, macros, and more
I remember a few years ago there was quite a bit of excitement about the potential of fractal compression for audio, video etc. Has any of this stuff happened yet ?
Not a troll
retarded, perhaps.
But the buzzword index of this thread is high and I think he has a valid point.
Ah yeah, the pr0n. *g* *resumes playing "Bishojo Janshi Pretty Sailor 18kin"*
-uso.
Dreams, dreams, don't doubt dreams, dreaming children's dreaming dreams. Sailor Moon SS
The analogy here is somewhat false. Science fiction is proto-unresearched science, but for Computer Science, that isn't extreme programming, it's just science fiction again.
The WWW and Net were information systems I lusted over in David Brin's Earth, and 10 years later I'm living in the middle of it. I'm not saying the Earth is going to wake up and talk to us, but the did anticipate the Net well. Now if only we could implement his idea that you have to subscribe to a news feed to get the vote...
Similar anticipations in the past have been Voice Recognition, OCR, streaming video, 3d-modeling and so on. Probably in the future: better voice recognition, organic interfaces, nano-technology. On the programming side: increased use of evolutionary algorithms and not so artificial intelligence.
For example:
The programs used to link mobile, wearable webcams to websites in real time.
The programs used to link normal appliances to web servers or the Internet.
Applications that take optical cues from their wearers and turn them into menu selections or mouse clicks.
Any speech recognition software that causes a computing machine to perform a function.
Any piece of software that provides us an interface with an appliance we don't yet own (or that only six people in the world now own or borrow).
Software on the edge is all around us. We need only become aware of the progress of evolution.
Bureaucracy loves company.
Much of theoretical computer science is all about some crazy professor looking a problem he can make other people THINK is cool so he can defraud the taxpayer of grant money. Occasionally some student doesn't make it up through the hazing levels to become a full fledged gang member, and drops out and desparately applies his skills and accidently does something useful. In this case the professor claims credit for the "spin-off", and the university sues the student for violating IP.
I agree. Legalize vigilante execution of spammers now!
Old, but a good example IMO. One of the first programs to provide entrancing feedback to a sound input. Probably provided a good driver for the inclusion of plugins in most all music players.
This is a crazy monster switch/router for the Internet core! In fact it is in principle an infinitely scalable switch and its architecture supposedly departs radically from that of even the most monstrous inventive switches/routers from Cisco or Juniper. The basic idea behind it was that of Larry Roberts who incidentally invented the Internet. Well, so to speak; he was in charge of the first ARPA contract awarded by director Ivan Sutherland to implement a packet-switched network, back in early 1965.
With Apeiro, you can stack module upon module in an existing 10 Gig router until it becomes a monster multi-Terabit router! All this without any downtime practically and with linear cost increase. Try that with a Cisco core router upgrade, hehe. Also Apeiro claims micro-flow-grained QoS handling capability. If it works well, it may well destroy the conventional religiously applied end-to-end philosophy of keeping the Internet core dumb as possible. Can you imagine the fantastic applications once support for fine-grained QoS comes to the core? HDTV quality video-on-demand, real-time 3D holography.. these would only be the beginning. I wouldnt be surprised if the Internet architecture of 50 years from now radically departs from a blindly applied end-to-end philosophy/religion.
Apeiro's workings are a trade secret of course. But lets hope their claims aren't far fetched.
Roberts' company is Caspian Networks and here is a link to their QoS and scalability claims: http://www.caspiannetworks.com/products/benefits/
Why might this be an innovation on the edge? Because Larry Roberts (and his company) were dismissed as far out nutcases by most leading researchers and experts in the Internet community. Lets see who turns out to be right.
(Disclaimer: I have nothing officially or unofficially to do with Caspian Networks.)
Surprised no one has mentioned this.. MP3 (audio) and especially MPEG-4 (divX video) codec development is pushing the edge of what was thought even possible 5 years ago.
i'm pretty impressed with the software that keeps the segway ht upright at all times, self balancing in the real world wasn't something i expected to see in a commercial device for quite some time.
"The Sims" is a very crude glimpse of this, but there's almost no 'psychology' in The Sims, and the sorts of science you learn in psychology class are almost entirely useless for this purpose.
So one extreme 'fringe' involves wrestling with the literary side of behavior, trying to analyse and classify the real behaviors people do. My whole website is devoted to this, including a minimalist notation-scheme for story-skeletons, an exhaustive analysis of the psychology of romantic love via quotes from love poems (which I view as preliminary research for a computer game about love), and most extreme-fringe-y of all, an analysis of James Joyce's "Finnegans Wake" as a deep, systematic model of human emotions.
I like to lump things that computers should do into two categories - communication/entertainment and mindless tasks. My crystal ball says there's still a lot to be explored in both of these areas.
As far as mindless tasks go, there are plenty of applications for computing all around us: automating our work, controlling our living environments, checking what's in the fridge. A lot of this will be networked microchip stuff that will tie into a central computer somewhere to visualize them. A lot of it will be robotic. Some of it will be applications on computers that do things you do over and over at work. There are still many, many mindless repetitive tasks that can be computerized.
The other realm is entertainment and communication, which have been revolutionized recently by the internet and digital copying. This will continue to develop, and a lot of the development will concentrate on distributing content and managing access rights. Managing communication should also be handled - there is a need for a way to connect your many telephone numbers and email, etc into one portable device that won't ring in the movie theatre. Video games and porn will branch out from the computer into the real world with wearable interactive gear.
And while I'm sort of on the subject... It used to be that you could look to sex (esp. porn) for innovation. It helped drive the adoption of VCRs and video content on the Internet. It's developed profitable methods of internet content distribution. I think it's time as a big innovator may be ending though. Most of it's influence has been in getting life like sex content to people in as anonymous a way as possible. The VCR and internet push in porn was all about anonymity - not having to drive somewhere and walk into a theatre or book store in front of someone. That's pretty much taken care of with the Internet. The only area left is to make the content more life-like. Which is also a concern for gamers. Porn and gaming will be coming together in more and more new ( and potentially socially dangerous) ways.
Simula-67
and
Smalltalk
(a historical comparison of both)
Also the first web server: CERN httpd
combined with the first web browser
(history of the WWW)
WTF did GCC change? Umm, ok, so it's a free compiler and some code isn't compatible, but it adds _nothing_ technically and is in many ways an inferior compiler. Whatever significance GCC has, has nothing to do with the code and everything to do with the license it was filed under. If you're going to take the non-technical argument, then I can sort of see where you're coming from, but at the same time you must have tunnel vision, because you're missing the much more significant and popular applications on the world as a whole. How about the word processor? Whomever you wish to credit with it, regardless of its respective technical innovations, it has had a much more profound impact on people across the world than GCC has had on the very small group of people that even know what it is.
www.pixory.org
Yes. Imagine that. Bwahahahahahahahaaaaaa!
If I seem short sighted, it is because I stand on the shoulders of midgets
Nothing has changed the world more in computers than the simple TCP/IP stack. BBSes were cool, but TCP/IP brought digital porn to the mainstream.
If you really want to find out where the edge of computer science is, pick up the procedings from any CS conference. NIPS (Neural Information Processing Systems), AAAI, SigGraph, Robocup, UbiComp (Ubiquitous Computing)... There are MANY more than this. The whole point of conferences is to publicize the most recent developments in a field, so that other researchers know about them. Of course, they are largely written by gradstudents and PhDs and intended to be read by the same. But, if you try it, you'll soon realize that there is much more to computer science than overclocking your CPU or writing yet another browser.
These are known by mainstream techies today.
Think instead of what these techies do *not* know.
Remember when you first saw email or a web browser?
These apps changed *so* much in our world.
Think in that arena.. what could change so much?
Cheers, Joel
...embrace >> extend >> improve.
Microsoft, we upgrade life.
Let's review, shall we?
VisiCalc ...and its successors spawned a trillion dollar industry, made Steve Jobs a billionaire, and almost singlehandedly eliminated the profession of "bookkeeper".
WordPerfect ...ditto for the profession of personal secretary. Only executives use them now.
Mosaic ...let's see. Trillion dollar industry, hundreds of business models, hundreds of thousands of businesses, millions of lives and careers changed... seems pretty extreme to me.
I could go on, but you get the idea...
Recent History:
How about an operating system written as a substitute for massive commercial systems, written initially by one guy, then by a bunch of people collaborating, without direct compensation, via email? (Linux)
How about a system to allow anyone with a computer and a pipe to publish structured hypertext and images for all the world to see? (Mosaic)
How about a system for independent individuals to type to each other in real time? (talk, IM)
How about a system for people without a static IP to share files? (P2P)
How about a system for people to contribute spare CPU cycles to a collective social work? (Distributed.net, SETI@Home, Folding@Home)
The Future:
What's on the edge now that will be huge tomorrow? If I knew that I'd be in angel capital. (speaking of equity, how about online stock trading systems?)
What's on the edge and either hasn't found a niche or isn't sufficiently advanced yet (and may never be)? 3DUIs, Freenet, Complex Adaptive Systems, Face Recognition; and those are less than a cube in the iceberg.
Stop-Prism.org: Opt Out of Surveillance
Dance Dance Revolution is a wildly popular video-game, even with demographics that normally wouldn't be caught dead in an arcade (ie: girls.)
One of the keys to its success is user-prompting... an interface where visual and audio cues (the arrows and the music) indicate what the user should do next to achieve a goal without rote memorization or exhaustive trial and error. This is something that will revolutionize UI design once it is better understood... a graphics program walking you through the steps needed to resize a photo without leaving the programs interface to refer to a help file... or an IDE that can ease newbies into coding.
Speaking of newbie coders, Squeak is a very interesting and active project that combines an "educational" IDE with a completely portable run-time environment that also has its own user interface... and everything in it is an object than can be modified on the fly. Extraordinarily powerful while being simple to learn. You can and do jump right into GUI, graphics and network programming almost from the beginning, from a compltely OO standpoint. It's interface needs a ton of work, tho... Smalltalk 80 was ugly and awkward to start with, and it has not improved with time. It also needs more interesting high level objects in its arsenal like those available for Java.
SoupIsGood Food
Actually this site is pretty interesting, www.radiantprimes.com.
A great blog with interesting programs and algorithms. Some of the stuff is really experimental and cutting edge:
http://www.sweetcode.org
Emacs is an editor that has been around for 20+ years, it is so extensible that you can use it as your debugger, you can use it to compile stuff, you can modify EVERY behaviour of it. You can also add lots of stuff like a doctor, a tetris game, an interface to gnuchess, etc. Emacs is also extremely stable, safe (no buffer overflows or stuff like that). Even if I don't use Emacs (I prefer Vim), I think it's one of the most extreme programs ever designed.
Lets talk about extreme applications, those which changed our views and methods to act. I do not believe that any application has ever been created without some examples been existent before, but there is often one specific version that got used widely and opened the eyes of a lot of people.
Spreadsheets: Visicalc was not the first, but the first on personal computers. These tools allow you to play with a number of different scenarios in a way you could never handle without them and therefore give a chance to see into the future.
1st person shooters: Doom (and Wolfenstein and hundreds of followers) realized least some of the promises of virtual reality. A artificial world, created in real time, in a way that was realistic without to much burden on your own fantasy, dense and moody enough to really immerse yourself into that world. A copy of our real world as an interface to a computer, more coming.
Communication (Email/News/Chat): The video text system Minitel pushed by France Telecom during the 80s and early 90s by giving away the (primitive) terminals for free. This is most likely the first electronic mass medium that existed with up to 35 million users, more than 50% of the whole population of France. Was used massively for mail and chat (and porn), but also included a micro payment system and was a huge ecommerce success more than a decade before the web became popular. Communication is the killer app of all killer apps.
ebay: ebay is its own category (and, of course, it's an application), everything else is a copy. First worldwide successful C2C business, could not exist without the web, but has proved that the low cost of a medium can generate markets where there was no margin before. Removed the costs for advertising, customer service, handling etc. by reducing its own function to a mere communication enabler.
Search engines: Google comes in mind, but Google is just a very clever version of Altavista, I do not remember who started it. Whenever you search in a text with your preferred text processor, you're using its search engine to run a full text search, so it's not really new. But applied to an enormous body of data (unsorted, in contrast to classical databases) gave us a kind of 'instant knowledge' unthinkable before. I own dozens of dictionaries and never leave without my Encyclopaedia Britannica (on my iBook), but nothing can compete with billions of pages of unstructured information at my fingertip.
web browsers: Mosaic was for many people the first look into the computer interface of the near future. A system, easy to use from a consumer and producer perspective, at low cost, to enable exchange and access anything that can be squeezed into HTML and some pictures.
bioinformatics tools: BLAST (Basic Local Alignment Search Tool), a dedicated database for storing, comparing, finding and annotating sequences of DNA etc., to be run at home (if you want to) or in your lab or easily accessible on the web. Enabled researcher worldwide to get immediate access to the most current findings, therefore increasing the speed in which the humane genome could be decoded (and stealing Celeras show). This kind of technology will speed up our acquisition of knowledge in many ways.
When you look at this list, there are some common themes:
- eases the access or handling of data
- works on low tech machines
- enforces communication
These will be found in a lot of 'extreme applications', be it p2p, encryption, proteomics or whatever.Chriss
memomo: free web based language trainer DE-EN-ES-FR-IT
Funny that no one has mentioned any of the embedded systems that have had a broad, tangible impact on everyday life...
- DVD video, Dolby Digital audio
- Fly-by-wire aviation
- CAT, PET, MRI
- Automobile controllers
- Routers and switches, to say nothing of ESS and its descendants
- Toys
- Credit card readers, ATMs
Plus a dozen others on the tip of my tongue, and those are just the ones I'm aware of. Anyone care to post something about power grids and other infrastructure? How about applications in manufacturing, business, medicine, art, military, construction?
More generally, the well-known When Things Start to Think generally illustrates the kind of dramatic effects that can occur when you add just a bit of intelligence into a mundane object (or process).
--
Dum de dum.
Freedom is not the license to do what we like, it is the power to do what we ought.
...this software that has been in beta for a couple of years now that is supposed to be pretty cutting edge. They still haven't got it completely working, but if you're willing to spend half your paycheck and countless hours of patching and tweaking, you can check it out...I think its called, Windows?
When the number of carpal tunnel syndrome sufferers reaches a critical point, voice input/control will explode.
What changed under Obama? Nothing Good
According to one definition (Capra's, for a start, and others) for a biological entity to be 'alive' it must have some encoding for reproduction (DNA/RNA, or other), and a metabolism.
Viruses require an external metabolism to do the reproduction, so they are not alive. Think of them as nasty messages.
dna computing quantum computing
The OO-hating Tablizer is not the only one who likes tables of algorimths and data dictionaries.
It's extreme. Extremely what, I don't know But it's definitely extreme.
Don't drop the soap, Tommy!
http://www.ioccc.org
When the number of whiners faking carpal tunnel syndrome reaches a critical point, there will be jobs for those of us willing to work again.
p2p is nice, but somehow the idea doesn't strike me as so special. MP3 encoding on the other hand is what made all this possible to begin with. So I'd have to vote for that being even more revolutionary than the p2p networks - with mp3 around, thinking about ways to distribute music was just a natural next step...
WordStar was the big killer app when word processing first became a big deal. WordStar killed themselves through some stupid decisions. (They admited their interfaced sucked, and built a better one, but didn't provide a good migration path. Since everyone then had to migrate they looked around and decided wordPerfect was better)
Mind you there were other word processors at the time. I doupt wordStar was first.
When ever you use the "copy" program you are accomplishing the oldest and dearest dream mankind has ever had - you are both having your cake and eating it too.
The ability to infinitely replicate something, each copy being absolutely identical to the first, but also infinitely distributable to however many desire it, is earth shaking.
This is the major thing human kind must learn to deal with into the future. More then any other single event or "discovery" the lowly copy program (and it's brother "paste") will have greater effect on the way we view our world then any other thing.
I've been developing software to help computers associate language with perception. Here's a recent workshop paper if you're interested. More info on my site (see sig).
You don't know shit you white-ass cracka!
You;re the mans minion...
I have been playing Neverwinter Nights for the last week. And even in Linux I still try to move the cursor to the window edge to rotate my view to see any other docs or interesting events. It is a pretty natural interface. It would be interesting to see a similar window manager that allowed a 360 panorama with stairs going down or up .. and locked doors heh heh ... hmmm yeah ... really warming to the idea. No don't include the quake like one , I don't want to have to go into combat with files in order to delete them. Though some of the NWN spells are so spectacular it would be fun just every now and then to nuke some file. Of course the normal apps could just sit there on the screen as always but you could rotate around them ... like a continuous switcher without the jumps that occurred in Enlightenment.
Bitter and proud of it.
I would count the early arcade games, and the Apple II games.
These machines and programs jammed an enormous amount of programming functionality into incredibly tight spaces. Many of the old arcade programs ran on 4K, 8K, or 16K 8 bit computers, and ran on machines with clock speeds of under 1 MHz, and effective instruction rates of mere hundreds of thousands per second. Even a fully loaded Apple II gave you under 32K of actual program space to work with, once you subtracted the low RAM, the hires graphics areas, and the BASIC ROM space, and people did a whole lot with that 32K.
The last two games I've purchased (Simcity 4 and C&C Generals) require minimums of 500 MHz and 800 MHz processors respectively and 128M of RAM. Of course, they do a lot more, but they are certainly not 500, or 800, or 8000 times as entertaining as the Cocktail Space Invaders machine that graces my hall entryway and is such a hit when we throw parties.
Early arcade games were heroic, wildly successful efforts. Truly examples of extreme programming.
Without a doubt, video motion detection is going to be huge. Programs like Homewatcher, GOTCHA, and many others (I'm too lazy to set up links) can sense motion very accurately, take timestamped images, upload them to a webserver, send them via faz and email, call your phone, run external programs, etc, etc. If you live in a dangerous neighbourhood like me(and if economic downturns persist, perhaps you soon will) they are hugely useful. Couples with cheap cameras and cheap low power hard drives, systems like this could make crime very dangerous for the potential thief if they were extremely widespread.
We take Google and AllTheWeb's search and indexing capabilities for granted now, but even though it wasn't a TCP/IP application, Lotus Magellan broke open the door and changed our ideas of what searching and indexing should look like.
Pretty innovative and daring if you ask me.
As an OO language, Java is not perfect:
On the other hand, Java is not only a language, it is an entire platform. It has lots of libraries and frameworks, the sum of these make it something different. There is a reason why MS "invented" the .NET platform, it attempts to "embrace and extend" the platform Java has become.
And there are several reasons why this happened with Java, and not Smalltalk, C++,...
Last but not least: platform "independence": not that it is always trivial to write applications that work on different platforms (programming errors and VM bugs might hinder that) but the possibility to use the same language (and developers) on very different platforms:
- A server (almost all OS's
- A workstation
- A cellphone/GSM most recent models have a JVM
- PDA's
- Chip cards
- ...
Which enables new forms of interaction between appliancesMy vote for Controversial piece of software that becomes ubiquitous goes to Java
Agreed, I've seen a Java project: 10developers*3yrs == 20classes*2000lines+hundreds of text files == nobody.understands() (the actual figures might differ slightly ;-) )
"... and then, and then, and then, and then, and then, and then, and then!"
No but seriously:
And then you realize there's a government backdoor in about.c. It's clever as heck. Who would look there anyway?
The only radicaly different, as in 'different axioms' different, approaches to C.S. I've come accross are quantum computing and molecular (as with using DNA to solve NP-hard problems) computing:
Both, if ever implemented, will not only increase our capabilities, but will also change (actually have somewhat changed) our conception of what calculation actually is.
In fact, quantum computing has evolved from trying to apply different laws and axioms (quantum laws) to computer science.
Now that is what I call the "cutting Edge" of science.
Working for necessity's mother.
We will see computers becoming a cultural technique and books become rare. That is only a decade away at most, imo. Display technology needs a little more improvement an mass market capability, we need a little more tweaking in the 'human interface' dept. and shurely some optimization in power consumtpion.
Then books are going to start to go away. Degrading 500 years of means of information storage from pole position to #2 or 3 within a few years is quite a breakthrough if you ask me.
Gathering information and sharing distributing it amongst others is going to merge. This will also influence the way we think a great deal and maybe even the developement of the human brain.
We suffer more in our imagination than in reality. - Seneca
...they're all over the place! Really nasty alien parasites mutating our cops! :-)))
That's what I wrote, no?
Ah, well, forget it....
We suffer more in our imagination than in reality. - Seneca
I will look into it, seems interesting. But is it widely adopted ? I mean, java is far from perfect, but it has already reached critical mass. I see that as the main reason for using it. BTW, ericsson phones have Java to...
To play the devilry advocate for a moment, what makes anyone think the programming of quantum monstrosities will be any easier than it is today?
Think of it, the model of computing we use today is one silly little processor chugging its way through memory, fetching data and instructions, doing one thing at a time. The "frontier" thusfar has been learning to do those things faster and faster, albeit one thing at a time. In limited cases and situations, we can throw concurrency at these problems, but they are still apportioned at the problem level, not at the compiler or hardware level.
So, with quantum, you can explore a billion alternative pathways at a time. Great. How do you ever make a decision? And, once made, how do you keep from making (optimally) half of those pathways irrelevant at each step? Suppose you explore a thousand trillion pathways at a time? How many decisions = powers of two are needed to reduce that to essentially a single pathway? Something like 55.
Yeah, right. Big breakthrough.
Jan Theodore Galkowski, (Oo) http://www.smalltalkidiom.net/ MySQL,PHP,ETL,SQL,MinGW C, and plucking the Web
what makes anyone think the programming of quantum monstrosities will be any easier than it is today?
...) solve today.
It won't, of course, but will enable solving problems you cannot (unless P=NP
As an example, look at SAT, all you have to know is wether there _IS_ an input satisfying a certain circuit.
By running all the possible options in parallel, and measuring only the outcome, you'll have the answer; this is enough to solve all and any NP problem.
(of course, this is all still theory in it's infancy; possible future practice involves a lot of dirty details involving coherency, purity, quantum measurement theory, control and measurement of nanoscopic properties, and more.)
So, with quantum, you can explore a billion alternative pathways at a time. Great. How do you ever make a decision? And, once made, how do you keep from making (optimally) half of those pathways irrelevant at each step?
The decision for each pathway in paralel is made using logical circuits, similarly to today's logical machinery. The difference is you now manipulate complex probability amplitudes instead of measureable real (\in R) properies.
As for your second statement, I don't understand it; the purpose (in fact, the meaning) of a decision is to remove a significant portion of the pathways; why is that bad ?
Computing is about making decisions, quantum computing is about making an exponential number of decisions in parallel , using our current understanding of the quantum nature. This current understanding may be somehow wrong or inadequate; or it could very well be that the practical aspects of QC will render it impractical. But all these are not a reason not to try; quite the oppposite - we may even learn a thing or three about nature or engineering.
Yeah, right. Big breakthrough.
I don't understand your sarcasm (or credentials for making it). Can you think of a bigger breakthrough currently in the works in C.S. ?
Working for necessity's mother.
CatsEye technologies (and the associated Esoteric Languages mailing list)
While a lot of the time the radical languages (and associated compilers) that the esolang folk write consist of little more than either a Turing machine as a VM (eg Brainf--k) or an attempt at humour (eg Valgol), every so often a radical new programming paradigm presents itself.
coldcity
code, life, art
Chuck Moore strikes me as a perfect example of a computer science iconoclast. His groundbreaking language designs became the model for PostScript and Open Firmware - among the most ubiquitous, useful, and indispensable interpreters in the world...
More at http://c2.com/cgi/wiki?ChuckMoore (which describes him as "Radical thinker and inventor").
you had me at #!
The goal of quantum computing has always been claimed to be greatly increased computation speeds by applying massive, exponential parallelism. There is no limitation claimed for the kind of computation that can be sped up in this manner, merely that it is sped up.
If the problem is a matter of searching through a massive computational space for one item, however that item is characterized, and computation stops--or might as well stop--as soon as it is found, then I agree, quantum computing can result in a great speedup. But most computing is not of that kind.
Most computing is above rearranging memory into some kind of preferred state. The computing we do today which we characterize as requiring a lot of MIPS or GIPS is the kind that involves large amounts of memory to be massaged or filled, e.g., image manipulation, weather models.
The problem with trying to apply "general purpose parallelism" to the average computation as expressed today is that it rapidly devolves into a case where only a few of the concurrent units, however small and fast, end up computing the execution sequence leading to the answer. In that case the net speed of the computation is whatever the speed is of the individual units, for concurrency has been forgone during this process.
Consider what happens when modern processors pre-fetch contents of memory on both sides of conditional instructions ahead of the computation deciding the conditional being completed. There is some gain in speed because whichever path on the conditional the plan is finally decided, the processor does not have to await the fetch of results from memory. However, if there is yet another conditional instruction on each branch, while those can be pre-fetched as well, only 1/4 of them will be used along the actual execution path. That means, yes, the cost of pre-fetch doesn't need to be incurred, but 3/4 of the effort to do the pre-fetch is thrown away to gain that. As more conditional instructions are encountered to save the cost of the pre-fetch, only 2**(-N) where N is the number of conditionals will actually apply to the execution path. This quantity gets small very quickly as N increases and 1 - 2**(-N) approaches one. This means that in any computation involving conditional choices, speedup rapidly decreases so the speed of the single unit is all that matters.
Of course this only applies to problems and programs which have been designed for sequential computers that are attempted on such concurrent machines. If the program is specially structured for the machine and to take advantage of the characteristics of the problem, as is done for today's processors which feature large amounts of concurrency, large speedup is possible. But the arrangement and architecture of the program doesn't survive a change in problem. It has to be designed all over again.
This is quite different than simply giving your C program to a compiler and having a reasonable expectation that it will compile, execute, and run. Because that expectation doesn't survive the move to any massively parallel environment, I am skeptical about its prospects, be it realized through quantum computing or anything else.
--jtg
P.S. Oh, regarding credentials, consider: If even the Devil states that 2 x 2 = 4, I am going to believe him. (P.P.Waldenström)
Jan Theodore Galkowski, (Oo) http://www.smalltalkidiom.net/ MySQL,PHP,ETL,SQL,MinGW C, and plucking the Web
I do research in this area and I can't begin to tell you how many things can go wrong. The paint on the walls, the kind of lighting you use (quick mental experiment: halogen light cycles brightness at ~60Hz, video streams come in at say, ~15Hz. Think you can get them to synchronize? Good luck.), shadows, reflections, etc. etc. etc. are all a huge problem so large that I still have a job. Yes, there are cheap (