Ask Slashdot: What's the Most Sophisticated Piece of Software Ever Written? (quora.com)
An anonymous reader writes: Stuxnet is the most sophisticated piece of software ever written, given the difficulty of the objective: Deny Iran's efforts to obtain weapons grade uranium without need for diplomacy or use of force, John Byrd, CEO of Gigantic Software (formerly Director of Sega and SPM at EA), argues in a blog post, which is being widely shared in developer circles, with most agreeing with Byrd's conclusion.
He writes, "It's a computer worm. The worm was written, probably, between 2005 and 2010. Because the worm is so complex and sophisticated, I can only give the most superficial outline of what it does. This worm exists first on a USB drive. Someone could just find that USB drive laying around, or get it in the mail, and wonder what was on it. When that USB drive is inserted into a Windows PC, without the user knowing it, that worm will quietly run itself, and copy itself to that PC. It has at least three ways of trying to get itself to run. If one way doesn't work, it tries another. At least two of these methods to launch itself were completely new then, and both of them used two independent, secret bugs in Windows that no one else knew about, until this worm came along."
"Once the worm runs itself on a PC, it tries to get administrator access on that PC. It doesn't mind if there's antivirus software installed -- the worm can sneak around most antivirus software. Then, based on the version of Windows it's running on, the worm will try one of two previously unknown methods of getting that administrator access on that PC. Until this worm was released, no one knew about these secret bugs in Windows either. At this point, the worm is now able to cover its tracks by getting underneath the operating system, so that no antivirus software can detect that it exists. It binds itself secretly to that PC, so that even if you look on the disk for where the worm should be, you will see nothing. This worm hides so well, that the worm ran around the Internet for over a year without any security company in the world recognizing that it even existed." What do Slashdot readers think?
He writes, "It's a computer worm. The worm was written, probably, between 2005 and 2010. Because the worm is so complex and sophisticated, I can only give the most superficial outline of what it does. This worm exists first on a USB drive. Someone could just find that USB drive laying around, or get it in the mail, and wonder what was on it. When that USB drive is inserted into a Windows PC, without the user knowing it, that worm will quietly run itself, and copy itself to that PC. It has at least three ways of trying to get itself to run. If one way doesn't work, it tries another. At least two of these methods to launch itself were completely new then, and both of them used two independent, secret bugs in Windows that no one else knew about, until this worm came along."
"Once the worm runs itself on a PC, it tries to get administrator access on that PC. It doesn't mind if there's antivirus software installed -- the worm can sneak around most antivirus software. Then, based on the version of Windows it's running on, the worm will try one of two previously unknown methods of getting that administrator access on that PC. Until this worm was released, no one knew about these secret bugs in Windows either. At this point, the worm is now able to cover its tracks by getting underneath the operating system, so that no antivirus software can detect that it exists. It binds itself secretly to that PC, so that even if you look on the disk for where the worm should be, you will see nothing. This worm hides so well, that the worm ran around the Internet for over a year without any security company in the world recognizing that it even existed." What do Slashdot readers think?
It depends on what you mean by sophisticated:
If you mean something that does a lot of functions, then I would probably propose Busybox or emacs.
If you mean something cleverly engineered to handle a lot of attacks, pgp, TrueCrypt, and VeraCrypt come to mind.
If you mean something that makes a framework, Kubernates can be considered there.
Then, there are hypervisors that wind up not just doing the functions of an operating system, but providing the same functions to an OS.
The software in the Apollo moon lander is probably one of the most qualified in this category considering that it had to be reliable and it was used in a solution that couldn't be tested for all eventualities on Earth.
If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
I called it successful, not sophisticated.
It has to support over a billion different conputers with different drivers and hardware plus support decades of backward compatbility. Android/Linux come close.
The GNU Compiler Collection, although this may depend on what you mean by "sophisticated".
Who ordered that?
"It has to support over a billion different" security bugs
cause can't do stuxnet without windows.
i for one am waiting on the win10 bugs relase notes by stuxnet2
It always works and never crashes.
By that analogy, the Micosoft Windows becomes the most sophisticated piece of software.
sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
Human DNA is the most impressive software ever written. It uses extremely complex feedback control structures, analog and digital. It has also lent its name to "genetic algorithms". It is a simple construct but so complex that we have barely understood the outlines of it after five decades of global research. It may not be "written", but that's another story.
Stuxnet on the other hand is a rather short piece of code that based its success on using secrets obtained from external sources. A good example of cross-domain collaboration and a masterpiece in its own domain. But hardly the most sophisticated piece of code ever written.
why am i here?
Because God hates you.
It can do it all, from simple Tic Tac Toe to Global Thermonuclear War.
So sophisticated it's impossible to add proper Unicode support.
seL4 microkernel, which is formally verified (algorithmically proven that all it's functions are correct)
https://en.wikipedia.org/wiki/L4_microkernel_family#High_assurance:_seL4
I think you could consider when the software was made. For instance, VMS was an incredibly advanced, scalable OS with partitioning and virtualization features, an advanced filesystem (current filesystems are still catching up in some ways) designed to run on hardware less capable than most smartwatches today.
I've seen some ridiculous spreadsheets. Real works of art. Iterative computations, beautiful plots. So resource intense, it will bring a modern PC to its knees.
It's a shame someone wasted their talents on Microsoft Excel.
One of our competitors trademarked the term "hypothesis". From now on, we will call them "boneheaded ideas".
MAME = stuxnet x 1000
COMSOL is a physics and chemistry finite element simulation package. it's a huge, monstrously big package comprised of an encompassing (and respectably well done) UI, a programming interface, and a large number of interlocking modules (interlocking done through the physical models the user creates). So it's rather challenging and sophisticated purely from a software point of view. But then you have to consider the fact that each module implements some very sophisticated computational math for solving some very sophisticated set of physical or chemical/physical equations.
"The agriculture ministry is not in charge of Gundam" - Japanese ministry official.
at the current pace, systemd will include all other software within the next 5 years, so by definition it will include the most sophisticated software ever devised
First lets define Sophisticated: "developed to a high degree of complexity"
Second, it would be impossible to any one person to accurately compare different pieces of software as it's too much information to know.
So, what software program has the highest degree of complexity? My first thought is Windows 10. Linux/Unix has a philosophy of lots of smaller programs combining together to make a useful system, even if we counted that, I think the Windows Core is more complex then the Linux kernel and Windows 10 is more complex then say Ubuntu.
But who knows what the department of defense has, the NSA, Google's algorithms, Amazon, YouTube, China, North Korea, Russia? The more I go down this rabbit hole the more I come back to my second statement: it is impossible for any one person to accurately compare them because no one person knows them all.
Because the worm is so complex and sophisticated, I can only give the most superficial outline of what it does
Everything else aside, this is bullshit.
You could say "I don't know how it works, so I can only give the most superficial outline of what it does". No matter how complex a thing is, if you know it well enough, you can explain it to a 5 year old. And that has a cool feedback system that helps kids get smarter faster. Standing on shoulders of giants and all that.
The use of 4 zero-days is indeed pretty sophisticated. The rest is pretty run of the mill standard operation that would have been neat in the 90's. I think this guy just isn't familiar with the industry and was pretty amazed when he took the tour. That or it's more puffery.
Personally, I wouldn't count any layers underneath, or library calls or such, that a thing makes when trying to figure out complexity and sophistication. Otherwise we'd include EVERYTHING that goes into a linux distro. So early projects that had to do it themselves all by hand would be the most sophisticated. To that extent, I'd have to go with something from early NASA. The software for the Apollo program sounds good, solely form that one picture with Margret Hamilton and the stack of sourcecode. It got man on the moon, which is way more impressive than taking a metaphorical wrench to some centrifuges.
Hmmmm, I don't want to worship lines of code though... a really sophisticated piece of software would be short and sweet and do something amazing and new.
I would disagree as the LM software was pretty straightforward - no routines was started without the astronauts (and NASA) not knowing exactly what the current state of the LM was with expected parameters and then execute quite simple routines. Don't forget that the Apollo Guidance Computers (AGCs) in the LM and CM only had 32k of ROM and 2K of RAM.
The "1201" and "1202" issues encountered during the Apollo 11 descent are probably the best examples of what you're talking about. They were caused by Aldrin leaving the CM rendezvous radar on during descent (this was done in the simulator without any issues because the landing simulator didn't include this radar because the LM designers didn't think it would be used during landing). Input from the radar was continually passed to the computer even though the software was written to process it or take it out of the memory area that it was automatically stored in...
This is where the genius of the hardware came in, when the data area the extraneous radar data was dumped into (as I understand it, causing the equivalent of a stack overflow), instead of trying to resolve the issue (which is what I would consider sophisticated software to do) the computer reset itself while returning to the currently executing routine. The landing routine itself would continuously poll altitude and attitude which means that upon reset, it would re-establish where the LM was and make the necessary computations for the engines & thrusters as necessary.
So, the MIT engineers did design for the unknown and to compensate for it, it just wasn't in the software.
Mimetics Inc. Twitter
As others have pointed out it depends on what you mean by sophisticated. Several candidates come to mind though each are sophisticated for different reasons. This is obviously a very incomplete list.
1) The code to control the Space Shuttle
2) The code for the Voyager probes
3) The code controlling the Curiosity rover, particular the bit to land it
4) Emacs
5) Unix and derivatives
6) GNU software stack
7) Encryption software
8) Self driving car code
9) Cruise missile control code
10) Weather modeling code
11) Code to control the Large Hadron Collider
12) Microsoft Windows
13) Control software for the F22 and F35
14) Sonar code for navy nuclear submarines
15) TCP/IP
16) Code to evaluate the human genome and proteome.
17) Nuclear explosion simulation software
18) Code breaking software
My complaint about how Slashdot operates relies on the fact that, despite having a well established user base who are arguably more educated and science savvy than your average person, it doesn't take that as an opportunity to do a more in-depth article than the major news outlets can achieve. In the past, we have had many successful Ask Me Anything (AMA) style posts from notable figures in the tech industry. I'd like to see Slashdot expand on that. Any time a new study comes out or a new tech is getting hyped, I think the Slashdot editors should try and approach the original authors/researchers/developers and ask them if they'd be willing to participate in an AMA session. Instead of endless debating the points that appear in the necessarily condensed news articles, go straight to the horses mouth and get the facts that the news articles left out, get corrections or clarifications for what those news articles published.
I need a wheelchair van for my son. Help me get the word out. https://www.gofundme.com/wheelchair-van-for-jj
Google Search has been maybe ten thousand people working for more than a decade, and they're largely solid engineers.
I'm... guessing Stuxnet isn't within many orders of magnitude of that effort.
The crux of this question is the interpretation of the phrase "most sophisticated". I feel it has a density of complexity component. So I'd lean towards candidates that must perform complex tasks under difficult constraints, either physical or virtual.
It actually makes me think back to bygone days of trying to cram complex tasks into 8-bit embedded controllers.
A representative case that comes to mind was a function in an armament controller - the computer that controlled dropping dumb bombs from a fighter travelling 500+ miles an hour. The processor was an Intel 8080 in the days when 64K was a lot of memory. The specification we had to hit was for the bombs to hit the ground at the spacing dialed in, typically 50 or 100 ft, with +/- 1 foot of accuracy. We were not allowed to require that the plane be flying level or at constant speed. Also, when you drop a 2000 pound bomb off a wingtip, the plane lurches in the opposite direction so that the next one dropping from the other side a second later has an additional acceleration. These and other factors required that we be able to perform a multivariable integration problem in real time on an 8 bit processor running something like 5MHz with no floating point capability. It took a lot of thought, creativity, and simulation. Carefully constructed tables were used to speed the integration and a tremendous amount of trial and error to make it always converge. All of the code was in assembly language though it had been prototyped in a slightly higher level language that is likely long dead. But, the specification was met. That software was sophisticated. I've worked multi-million line projects since that didn't begin to approach the art that went into those KBs of assembly.
Other examples I'd think of are in the device logic arena, which I also consider software. Getting PLAs to perform more sophisticated operations often involved dispensing with synchronous logic and working in the asynchronous realm. Getting that to be stable across devices with gate speed variations could be pretty tricky, but the end result of having functions performed at throughput levels that others considered impossible at the time was oh so satisfying.
I can understand the anonymous reader's thoughts of the complexity of the worm. It has constraints that fall in that "virtual" arena. It must do its job without being detected until it is too late or having a signature that indisputably reveals its creator. That is very challenging. The task of creating software like that is more art than science. Requiring "art" is also a very necessary component of "most sophisticated" IMO.
This "most sophisticated software" question is from the same doofus who also asked / answered:
How is murdering people considered fun in video games? What happened to all those innocent games such as Frogger, Qbert, and Donkey Kong?
Apparently he doesn't understand games are an escape from reality and has to be told what fun is. Games are fun because we don't have to worry about real-life consequences and can do things that we normally could never do in physical reality, dumbass.
e.g. Frag my buddies, drive an expensive sports car, slay dragons, virtual fishing, etc.
Maybe he should go play DnD to actually learn the answer.
Genocide in video games isn't (solely) the problem when you want to take a break from the stress of day-to-day responsibility. It becomes a problem when you do that to the exclusion of all your other responsibilities.
If you don't like violence in games there are enough good puzzle games like The Witness, Pythagorea, Top 10 Geometric Puzzles for iOS (2016), etc.
Sophisticated? Not sure how to evaluate that, but 'elegant' seems to fit that 1984 ROM. Doing more with less was an Apple tradition begun with the Woz' original design and continued with Bill Atkinson & Andy Herzfeld's Mac ROM. Similar elegance would bring MS Office down to a 2MB size.
...omphaloskepsis often...
I called it successful, not sophisticated.
In a discussion titled "What's the most sophisticated piece of software".
Every end has half a stick.
nah, the programming language is crap, on the level of basic or fortran. Sagemath uses python and for most people can do with Mathematica does with less effort.
Yes, I've used both. used to own Mathematica
Commonly mistaken for a planet, the Earth supercomputer has been working on finding the The Ultimate Question of Life, the Universe, and Everything for quite a while now, whose answer we know to be 42.
Unexpected, but I'd go for Excel - it is very, very damn good at what it does (and it does a lot).
1, Engelbart's Demo - All of the wonders of GUI well before everyone else.
2. Lisp / Forth / APL - Pick your favorite
3. OS/9 on the Radio Shack CoCo, it supported multiple users, and the hardware didn't even have a real UART for serial communication.
4. VAX/VMS
5. Any of the "4k Demo Scene" type programs.... it's amazing what they pack into 4k, or 1k, or whatever.