Ask Slashdot: Successful Software From Academia?
An anonymous reader writes "A lot of masters and PhD theses are about development of software targeting the solution or the automation of a specific problem. Bioinformatics, for example, has a lot of journals about software tools that are coded in academic environments; some of this software is the final result of a four-year PhD. But my question is, how much of this software will see the light outside the universities? I know of some examples, like BSD, but they are an exception, right? Is there any list of successful software created entirely inside universities' labs that became widely used?"
I am pretty sure that, for example, Condor started as an academic project, but now it is Red Hat's grid computing platform:
http://www.cs.wisc.edu/condor/
http://www.redhat.com/mrg/grid/condor/
Palm trees and 8
Blackboard.
Grad projects and student-assisted research projects (most recently some OCR work and some prime factoring studies) are always released at the end of each study term under some sort of open-source license. I'm not sure _where_, though. I know my friend used the project he contributed to in his own business software, but don't have any examples beyond such simple anecdotes.
That seems silly. When I worked in a bioinformatics group as an undergrad, we use a *LOT* of software that was only used inside of a university, partially because the kind of research it targeted wasn't necessarily popular in commercial areas yet, and some because what we used was OSS and many commercial organizations preferred closed sourced alternatives (sometimes for speed optimizations, sometimes for support reasons).
Maybe you should define your criteria as widespread use in the context of the target field, rather than outside of a university?
That being said, I think a lot of it either directly or indirectly (through a third party reimplementation), does make it out.
Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
That work for you?
PostgreSQL
"I use a Mac because I'm just better than you are."
kerberos, ganglia, folding?
In this day and age, most good software developed in acadamia tends to get spun into a business venture that makes its academic developers very, very rich. See Google, for example.
#DeleteChrome
There was this company called Google that came out of some phD students' work. I think it's still around and doing business.
Successful software created entirely inside universities' labs... I wouldn't know about that, but Facebook and Google are products of students at universities at the time said applications came into existence. Both addressed specific problems (Google -> search, Facebook -> social contact/updates/etc.).
Viable Slashdot alternatives: https://pipedot.org/ and http://soylentnews.org/
The problem with software in academia is that it is often devoted to a sole purpose. It is not a generalized solution -- conversely -- it's often a demonstration of a solution so specific that it's never been done. Hence the awarding of a title to the creator. On top of that the teams are usually small and time is usually tight. It's also usually a side effect of the greater thing, the thesis. It will always take a backseat to the theory.
... if it had depended on hardware or the constant change of text files like PDF and DOC, I think you can understand how hard it would be for academia -- let alone the originating researcher(s) -- to maintain and support for the community. An open source effort could pick up that slack but then who deserves credit for that work?
When software is widely adopted, it is because it has been widely supported and is a more generalized solution to a problem. If it uses hardware, it supports all kinds. If it reads or writes files, it covers all formats. This leads to widespread adoption but also takes a lot of time and a lot of contributions. If you're also working on your thesis, this is a daunting task to work on the side.
Nobody gets their PhD by making a predecessor's implementation support more file formats or hardware. So this is left to the licensing of the originator and the community -- who are often recognized as the real workhorses that go from prototype to actual usable software. That's why you don't find many PhD projects turned instant open source hit.
In bioinformatics , a relatively young field, most consumers of the software work in a lab and the input is fairly simple. But even with simple input they first had to agree on a format (those are just a few of what used to be many). BLAST and FASTA go back to the 1990s and 1980s respectively
My work here is dung.
both ended up commercial, but both were academic projects. I think as a general principle, academia does not have the capacity to maintain commercial products - academic institutions don't have sales, customer support, marketing etc. So...genesis in academia, but significant "light of day outside of academia" is almost always going to involve a commercial entity.
I don't know of any list but I'm pretty sure that tons of successful software has come from academia.
Racket is a particularly nice example. I'm too lazy to Google so perhaps others can provide a few hundred more.
Subject says it, X was mainly developed at MIT. I guess Ingress and Postgress where originally also university projects.
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
* Kerberos (Widely used, part of Active Directory)
* X11
* AFS (Andrew File System)
* MACH (Used by GNU HURD and OS X)
And that's just a starting sample.
-- Sometimes you have to turn the lights off in order to see.
Postgres (now Postgresql) was started at UC Berkeley. There was a long evolution, but it is an outstanding and widely-used relational database.
And valgrind
The problem is that a lot of useful academic code disappears when the degree is awarded to the candidate. It's a big problem that's only exacerbated by the publish-or-perish culture of the scientific community at large--this code is often written as an afterthought to acquiring a degree and the development practices exercised by the authors often reflect that.
I think a major contributing factor is that the academic culture breeds advisors who are less interested in sound software development and more interested in graduating their students/getting papers published. It's difficult to place much blame on anyone in particular, since this behavior appears congruent with our expectations. It's really too bad that society loses out on interesting software this way.
web browsers
TCP/IP
I'm pretty sure these are used outside of universities.
I think most of the finite element/multiphysics packages started as research projects, either in university or government labs (some military, some conventional). For studying e.g. electromagnet design, heat deposition by currents /EM radiation e.g. microwave studio. Most of the radioactivation and nuclear shielding simulations used by the nuclear industry for designing radiation shielding are or were academic projects (e.g. MARS, FLUKA, MCNPX).
Oh wait that was Pre-K
There are quite a few open source projects on bioinformatics.org. Some of these are little more than quick command line tools. Others are entire frameworks. Personally, I use the following tools on a regular basis. Bioconductor (with R), EMBOSS, Primer3, and ImageJ.
Give me Classic Slashdot or give me death!
and LLVM
Subject of several theses:
http://www.tug.org/docs/liang/
http://www.pragma-ade.com/pdftex/thesis.pdf
https://www.tug.org/docs/plass/plass-thesis.pdf
(John Hobby's on METAPOST http://ect.bell-labs.com/who/hobby/thesis.pdf )
Probably others. More information at
http://www.tug.org/
and
http://www.latex-project.org/
and
http://wiki.contextgarden.net/Main_Page
William
Sphinx of black quartz, judge my vow.
I think this is the wrong question to ask/wrong approach to take. Providing a final, production-ready product is not usually the goal of scientific research (my area). Especially when it's not done in collaboration with some engineering firm.
Usually the goal of scientific research is to provide new knowledge about some very specific domain. For example, some of my coworkers are developing a "cloud simulator" which models EC2 and allows you - among other things - to do stuff like predicting how many machines you will need and what the cost will be.
My point is that research does not have a goal to deliver production-ready software. That should not be the goal of a PhD thesis. The scientific method is about something different: Science, that is. :)
I'd say it is an engineer's task to take those new advances in Science to produce something which is "working" for them.
TL;DR;
So to provide my final answer in a nutshell: I would say yes, that is the exception. Science is about providing advances in knowledge that others can then use for producing better.. "stuff".
It started out as someone's graduate research project in the late 80s/early 90s, and today it is the #1 aircraft design software tool in the world. Its installed in universities, aircraft manufacturers, aerospace consulting firms, and government and military institutions across the planet.
Disclaimer: I worked on the software after it went commercial.
If it doesn't *BSD definitely does.
Being formerly from a research institution I can say it happens... sometimes. Usually the people in charge of the project realize they can make money at it and spin off a company.
Other times, really excellent software, that would be great for the community, goes absolutely nowhere because there isn't an easy path to profit. Once the grant money ends, the project dies. Then other groups write more proposals to solve the same problem over and over because there's nothing in the market.
Rocks clusters (http://www.google.ca/search?gcx=w&ix=c1&sourceid=chrome&ie=UTF-8&q=rocks+clusters) CHARMM (http://www.charmm.org/) Gaussian as an example of how academic-inspired software should NOT be commercialised (http://www.gaussian.com/)
Everything from GNU and Symbolics to (as others have noted) PostgreSQL, Google and beyond.
Let's not forget programming languages like Python and Haskell. Even Facebook was conceived in a university environment, if not as a part of any specific research.
The backend for quite a few compilers, and a few shader compilers...
Care about electronic freedom? Consider donating to the EFF!
I'm not sure if "Research Institutes" count in your criteria, but as far as software for dealing with maps, http://www.falconview.org/ comes immediately to mind.
o The LLVM Compiler Infrastructure (University of Illinois, Chris Lattner's Master's Thesis)
o The Mosaic Web Browser (NCSA)
o The Apache Web Server (Based on a web server from NCSA)
o BSD Unix (which encompasses *a lot* of programs) (University of California Berkeley)
o The Pine mail reader (Washington University). Other mail readers were probably in academic institutions as well.
o Eudora (originally developed from NCSA, I think)
o Washington University IMAPd
o I think one or more versions of popd
o Potentially Valgrind (Julian Seward has a few papers on it)
o SESC (hardware simulator from University of Illinois, I think)
o I think VMWare was born out of a research project, but I can't find a definitive source.
The University of Manchester developed a free matchmoving piece of software called Icarus (http://aig.cs.man.ac.uk/research/reveal/icarus/). You can still use the old versions of this software for free.
It was later turned into comercial software that is a major player in the comercial matchmoving software area:
http://www.pfhoe.com/products.php
Is there any list of successful software created entirely inside universities' labs that became widely used?
That is an odd restriction to make. Students are only at university for a short time. If their work during that time turns into something useful then they naturally continue it after they leave, either as a an open source project or as a business venture. This is how it is meant to work, and there are tons of examples of such software.
MATLAB and Maple were both created at universities and later commercialized. Same for SPICE. On the open source side there is Apache, Sendmail, PostgreSQL, and the original implementations of nearly every RFC protocol on the internet.
Three more example: LLVM -- http://en.wikipedia.org/wiki/LLVM
RT Linux -- http://en.wikipedia.org/wiki/RTLinux
KSplice -- http://en.wikipedia.org/wiki/Ksplice#History
the SNMP server
http://www.net-snmp.org/
A good IMAP server
http://www.washington.edu/imap/
From Univ of Illinois - it arguably changed the internet from a tool for techies to a new way to do business. One of the problems is if something is really good commercial companies may morph it into products that eclipse the original; but their contribution, when though of as basic research, was invaluable. So the definition of success should not be limited to widely used, popular, or well know; but also include defined a new industry or way of approaching a problem.
I'm a consultant - I convert gibberish into cash-flow.
Posted by timothy on Tuesday September 27, @10:41AM from the how-about-ncsa-mosaic dept.
"A person is smart. People are dumb, panicky dangerous animals and you know it." - K
I think autostitch is used in real life....
http://www.cs.bath.ac.uk/brown/autostitch/autostitch.html
right up front: I know about this only because I work for these guys, but...
there's a whole host of Linear Algebra-related software written for high performance computing environments that is attributable largely to various teams of academics throughout the past 30 or so years. It is my understanding that these libraries get used by most anyone doing high-performance computing.
http://www.netlib.org/lapack/ http://en.wikipedia.org/wiki/LAPACK
Linux itself wasn't used for a thesis or for grade was it?
Parts of the kernel might have started that way, but as a whole, wasn't it just a project for self-education, fun, and production of a more useful too than what was otherwise available?
Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
Others have given pretty many examples. It may be worthwhile to mention the Web, from CERN http://public.web.cern.ch/public/en/About/webstory-en.html
Colorless green Cthulhu waits dreaming furiously.
Here's a list of my (important) favorites:
meep (finite difference time domain electromagnetics)
FFTW (fourier transform)
MPB (photonic bandgap solver
Elmer (finite element solver)
The title of Linus' thesis is: "Linux: a Portable Operating System" - so yes, it counts.
The real question is, if it is enough that a project can trace it's roots back to a academia - even if >90% was added later and or by developers outside academia. I bet many products considered purely commercial started out started out in the back of the head of students during their studies. Many of those dropped out to build a company rather than stay and write a thesis about it. If you include those, and even consider some studying other majors than CS - your probably looking at the bulk of all software in existence.
Run with the lemmings, and you'll get your feet wet.
And QNX http://www.qnx.com/
Tesla was a genius. Edison however was a overrated hack who liked to torture puppies.
Frequently the software doesn't start in a given academic lab, so much as it starts somewhere in a given research community and propagates to the academic labs as research needs dictate. ImageJ, for example, started at NIH, but now it's available to all and in use all over the place (including my lab).
Other software is developed cooperatively, and then academic contributions are added as they're needed to enable someone's research. If you run R (the statistical program) and start looking through all the extensions available in CRAN, you'll see tons of additions that have been generated in academic labs and released for use by the wider research community.
I work in biomechanics, and I've seen a few programs come out in that field through largely academic development. AnimatLab began (I think) at Georgia Tech, and I think Cofer et al. are still developing it within the university. OpenSim started at Stanford as an open source musculoskeletal simulation program, and is vastly preferable to the godawfully expensive SIMM, which does pretty much the same kinds of things. OpenSim is still alive and well at Stanford, although the developer network spans multiple institutions, academic and otherwise.
Much as I might wish that I could spend more of my time developing programs and playing with software within the academic sandbox, more often it's simply more practical to cast the nets for software from someone, somewhere doing somehow similar research, and then using the software you find if it's useful to your work, rather than reinventing the wheel in favor of advancing academic software development.
"What's the use in being grown up if you can't be childish sometimes?" --Fourth Doctor, "Robot"
IIRC, rsync was the culmination of its original author's thesis.
tasks(723) drafts(105) languages(484) examples(29106)
A number of HPC applications funded by NSF/DARPA/DOE grants are able to provide a continued source of new research while maintaining and improving the applications.
One example is OpenMPI. BLAS/LINPACK/LAPACK are also examples. Some of the C++/Boost libraries also are maintained in academic, such as the Boost Graph Library.
-Chris
Hugin (well, at least parts of it), Postgres (at least its origins), ...
Emacs and other GNU software (RMS worked for an university then,
afaik), LISP from MIT, Pascal from ETH Zürich,
Python (at least originated) from CWI,
FWIW, I'm a PhD student at a reasonably large institution in the US.
Very little of this stuff sees the light of day. The vast majority of software is written simply as a proof of concept for some particular method/system/algorithm in order to get published. Good conferences/journals will typically want not only a well thought out idea, but an idea that you can and have implemented it to some extent, and that it works. That having been said, most of what gets produced is complete and total garbage -- typically just enough code to be able to prove that something runs correctly and in a given amount of time.
Personally, I have written a bunch of junk code during my time here. I'd like to think I know more or less how to write good code after all these years, but writing good, well documented, well tested code takes time we don't have -- writing code is simply a means to an end (publication) -- and so most of the code I write is hasty and ugly. This even applies to code that people say is for "wide distribution".
Before you go hounding on academia however, I'd warn that writing "good code" isn't really the point of what we're doing -- the point is to produce a reasonable method of solving some particular problem or type of problem. Going into bioinformatics for example, there are a whole bunch of problems that involve performing more efficient analysis of certain types of graphs. If a researcher discovers something along these lines, he/she will likely write some junk code to prove that the bare algorithm works, perform some analysis of it, publish it and move on. This may or may not end up actually being a useful improvement -- if it is however, then some implementer whose actual job it is to code whatever medical software might be using this algorithm then has a basic blueprint of how to proceed.
As for some examples of software from academia that have made it out, let me think...
Coverity - static code analysis tool, started at Stanford then moved into being a startup and is now quite successful
PostgreSQL - Originally from Berkeley
Bro (Intrusion Detection System) -- written by a researcher from Berkeley/ICSI -- is still somewhat "in academia", but I have heard of several production deployments
That's all I feel like coming up with right now, but I think the general pattern here is that if/when some piece of software produced in academia is seen to have value in its own right (e.g., away from the original research/publication that spawned it), it typically gets spun off in a start-up or a more concerted effort is given to its development, at which point one can actually spend the time to write good code.
Wuala is a recent example, developed at the ETH Zürich, then spun off and bought by LaCie.
"I love my job, but I hate talking to people like you" (Freddie Mercury)
Firefox came from mozilla, which came from netscape, which came from NCSA Mosiac; done by Marc Andreessen at UIUC.
The LLVM compiler & runtime are both university projects from Vikram Adve @ UIUC.
VMWare came from SimOS, via Mendel Rosenblum of Stanford.
Coverity come from the work of Dawson Engler's students at Stanford.
BerkeleyDB started from work by Margo Seltzer at Berkeley.
Kerberos was done by Steve Miller and Clifford Neuman at MIT.
The Lustre filesystem is due to Peter Braam at CMU.
For a long time a lot of OSes used TCP/IP implementations out of academia (either Stanford, Berkeley, or University College London, depending).
Apache started as a series of patches against NCSA's HTTPd code (UIUC again).
PostgreSQL started from Ingres, which is from Micheal Stonebraker's group at Berkeley.
And now I'm bored looking these up. Let's just say there is a LOT of software that came out of academia.
This is a loaded question:
But my question is, how much of this software will see the light outside the universities?
The truth is that most software projects (even the ones developed outside of Universities) never get widely adopted. Just take a look at Sourceforge, how many of those projects become widely adopted? or even get anywhere? 1 percent? 0.00001 percent?
That being said, I believe Universities have a disproportionately strong influence on the software industry (which is by design of course). Take for instance, Intel, Linux, Google, InfoSeek, SendMail, Internet Explorer/Netscape (which both used the initial code base from Mosaic), Cisco, Yahoo, Sun, etc. They were all started initially as some kind of school projects.
Backrub (Google)
which is totally what she said
PageRank! Google was just one big master's thesis. And quite academic, if you're a stranger to linear algebra.
It started out that way - but by the time Linus graduated in 1997, linux had become a huge thing, and I bet that if he hadn't made it the topic of his masters - he wouldn't have finished at all.
Run with the lemmings, and you'll get your feet wet.
Does a software package need to be "widely used" to be classed as "successful"?
My company, for example, was built around an academic software package. We are nowhere near the league of the Googles or Oracles out there, but we provide a fair number of employees with a good salary. I'd never say our software was widely used as I can count our customer base on the digits of my hands and feet. Our kind of niche market will often use software from academia - because that's the main source of innovation - and the purely commercial argument for developing and validating the software in the first place would be weak.
To answer your question directly, in my field a vanishingly small fraction of academically developed software is ever used outside the research group that produced it. Even in the cases that the software would be more widely applicable, it just isn't shared/sold/licensed more widely. A couple of times, we have tried obtaining commercial rights to software that we thought could be valuable outside academia but we've never managed to negotiate realistic terms with the universities. Either the researchers aren't interested in pursuing this option as there is no personal reward for them, or the I.P. departments get greedy and the royalties they demand just makes the whole idea unviable.
If you're looking for examples of "successful software created entirely inside universities' labs", you're never going to find anything. University research is fundamentally different from product development. While a grad student or faculty member might do research on a hard problem and write some software to solve it and publish a paper, that software is going to be enormously buggy, perpetually incomplete, and probably require constant support in order to work at all.
But there's another side to it, which is that nobody's going to pay for that team of developers either. Even an R01 grant (the classic "run a research lab" grant) is around $250k/year in direct costs. You can't hire a full time .NET or Java developer (let alone a team of them) and pay your own salary and tuition for a couple grad students on that budget. Even if you could, you'd have a hard time justifying it as a research expense to the federal government.
So how does stuff end up on the market? Spin-offs, collaborations, and cross-licensing. Universities have smartly become much more willing to license out technology developed on campus, even when done 100% on University time & money. Having that flexibility encourages your smart people to think big, and discourages the best people from leaving to do it.
Apache got its start when NCSA (U of Illinois) decided to turn support of their httpd server over to an outside group.
Rumor has it that, upon looking at NCSA's code, they remarked, "This certainly is a patchy web server" (true?).
Have gnu, will travel.
While there are some academic software projects that make it big, that vast majority don't. This is because PhD's are trying to do research, publish, and get their doctorate, not write quality code. I know I would never release any of the code I have written so far, not because I'm anti-FOSS, but because the code is crap and I know it.
The software is written to see if something was possible, or to scratch some very specific itch. The result is that there is no documentation, very little abstraction, and a lot of cowboy coding. The problem is you write code to follow the results, so you cannot plan ahead. You can write beautiful code for a week, then get the results and discover the whole approach needs to be changed. You also tend to code very specific to the task because you don't want your results to be messed up by coding shortcuts or needless abstractions. But most important, for me at least, is time. Most PhD just don't have enough of it to spare starting and maintaing a project. Sometimes Profs do (Zeus bless them) but the students rarely.
What you do see happen is for research to prove something novel, then get rewritten to become a proper project sometimes FOSS, sometimes as the poduct of a new company. I have seen a few Profs. start open source projects and have their students work on it in partnership with other researchers, and that maybe more common in the future. But right now, most code never gets out and you wouldn't use it even if it did.
Hspice and Pspice are popular commercial, closed source versions of Spice. I wonder if Spice would be used more or less if it had been GPL? It certainly resulted in a lot of money that did not go to the original developers.
I've been using a Network Documentation Tool (Netdot) for a while now. It is still in active development but certainly useful. It can easily be adapted to networks outside of academia. They implement feature requests pretty often too. https://osl.uoregon.edu/redmine/projects/netdot/wiki
Etc.
Impossible to answer. What defines a serious project versus someone's pet project or proof of concept? Then of those, how do you measure success? How many Sourceforge projects "see the light" outside Sourceforge?
This is the question you seem to be getting an answer to in the forum here. Hopefully it helps.
Blackboard.
*shudders*
Someone tell me their thesis was rejected...
SPICE is a general-purpose circuit simulation program for nonlinear dc, nonlinear transient, and linear ac analyses. Circuits may contain resistors, capacitors, inductors, mutual inductors, independent voltage and current sources, four types of dependent sources, lossless and lossy transmission lines (two separate implementations), switches, uniform distributed RC lines, and the five most common semiconductor devices: diodes, BJTs, JFETs, MESFETs, and MOSFETs. SPICE originates from the EECS Department of the University of California at Berkeley.
'The tyrant will always find pretext for his tyranny.' - Aesop's Fables
The critical part of "see the light outside" is marketing. Universities were never supposed to be corporations with a marketing department. now, i'm sadly aware, that many universities are changing in that regard ("office of technology transfer" by any other name) but historically there's your explanation. That being mumbled, if you were to start with every major software package "outside" and faithfully trace it back to its origins, i'd say you'd nearly always discover yourself in a university setting. ("why that's mere sophistry, sir! because computers themselves can all be tied back to university professors and the like!" ...yep)
Both SAS and R were originally developed inside academic environments. I'd say they both enjoy a rather wide audience (one FOSS, the other rather on the expensive side).
WebCT was developed at the University of British Columbia, became widely used enough to become a company and then it was big enough to be bought (and put out to pasture to die) by Blackboard...
Don't blame me, I voted for Kodos
BIND
BIND was written by Douglas Terry, Mark Painter, David Riggle and Songnian Zhou in the early 1980s at the University of California, Berkeley as a result of a DARPA grant. Versions of BIND through 4.8.3 were maintained by the Computer Systems Research Group (CSRG) at UC Berkeley.
Battlemaster--Game with friends in medival realms
The basis of SAS came from while a student at NCSU. From Wikipedia: SAS was conceived by Anthony J. Barr in 1966.[2] As a North Carolina State University graduate student from 1962 to 1964, Barr had created an analysis of variance modeling language inspired by the notation of statistician Maurice Kendall, followed by a multiple regression program that generated machine code for performing algebraic transformations of the raw data. Drawing on those programs and his experience with structured data files,[3] he created SAS, placing statistical procedures into a formatted file framework. From 1966 to 1968, Barr developed the fundamental structure and language of SAS.
In relation to another post - Multi-Touch as implemented in the iPhone came from Academia ....
Puteulanus fenestra mortis
I'm not sure if you're only considering popular non-commercial software or work specifically done by grad students, but there are several examples of numerical packages that started out in some sort of academic environment.
* SAS - used for a variety of statistics-related purposes by businesses, originated from some academics at North Carolina State University. They eventually spun off and created the company that now develops the software (and donated a bunch of money to build a new math / statistics building here)
* R - programming language for statistical computing. This is apparently an implementation of the "S" language, invented at Bell Labs, but R was created by some academics at the University of Auckland.
* MATLAB, LAPACK, LINPACK - a library for numerical linear algebra. This is the forerunner to LAPACK, which is used by MATLAB and lots of other numerical-computing related software. This was developed by a number of people, including Cleve Moler, who went on to develop MATLAB for use by his students at University of New Mexico, which he later commercialized with some of his collaborators. Also Jack Dongarra, who was one of Cleve Moler's students, is credited.
* Octave - this is a mostly-MATLAB compatible numerical computing language. It originated as a project by John Eaton, to accompany his nuclear reactor design course (I guess at University of Wisconsin). I don't actually know how widely used this is, but I personally use it as an alternative to MATLAB in my research (I'm a graduate student in applied mathematics).
I'd imagine most of these things are exceptions to the rule, though. Generally, as other posters have said, a lot of academic software (at least in applied mathematics and some related fields) is written as a proof-of-concept to validate whatever the researcher is working on, rather than a practical set of tools for others to pick up and start using.
I use a GNU GPL licensed modelling program created at Carnegie Mellon. http://www.ascend4.org/
expletives welcomed
I think the original poster is looking at it from the wrong perspective. Often academic research papers are about a new technique and any accompanying software is rather rough from a user standpoint. Such software in not intended to be marketed to the masses but rather to demonstrate that the idea is sound. Business then takes ( licenses ) these ideas, improves on them and produces something that they can sell. Just because academia doesn't directly market software doesn't mean that their contribution to development is small. How many of the products we use today are based upon some academic research?
And a thesis and accompanying software tend to be written for your advisor(s) and the committee that will review your work (mostly the written thesis). Spending time tailoring software for the public is often considered a waste of time, something to be done after graduation.
www.kuali.org
Universities are coming together to create financial, research administration, student, human resources and many other enterprise level applications. These are targeted more towards non-profit organizations, but they'll be all over the world sooner or later.
R was created by John Chambers, who worked at Bell Labs initially. He's now at Stanford, and most of the development for R is done in academia.
the University at Champaign-Urbana lays claim to one or two projects that have some popularity ..
the Mosaic browser and its offshoots Netscape, Internet Explorer and Oracle Screens began there.
Javascript (as part of Netscape??)
Apache web server
Project Gutenburg
and, if 'travelling' across the universe fictionally counts as 'widely used outside of the university' then there is HAL in 2001, that (who?) claims to have been activated at the Urbana campus.
The original version of WordPerfect was developed by Bruce Bastian while a grad student at BYU (with Alan Ashton as his faculty advisor). At that time, it was a screen-oriented editor that ran on Data General minicomputers. I know because I shared an office with Bruce during my senior year at BYU (1977-78) and used his existing version of the editor to write several papers for my classes. :-) Bruce & Alan went on to sell a (DG) version to a local city government (Orem, UT) and then founded Satellite Systems Int'l to commercialize the product and ended up owning the MS-DOS word processing market. Word Perfect still might be dominant were it not for Microsoft's brilliant head-fake with OS/2 and Windows 3.0, but that's another story. ..bruce..
Bruce F. Webster (brucefwebster.com)
a couple of small businesses come to mind, there's one called google - the pagerank algorithm was developed by Page and Brinn at Stanford, and another called Autonomy which initially started out as a company called Cambridge Neurodynamics who's main product was the CEO's PhD thesis
And Mach (kernel developed at CMU, used in NeXT and MacOS).
-Dave Haynie
There were two very different versions of SPICE - SPICE2 was a fortran program, and is the basis for the PC version PSPICE (Microsim>OrCAD>Cadence) and minicomputer version HSPICE, though many newer simulators are based on the code for spice3 re-written by a subsequent Berkeley effort in c. Its legacy in electronics engineering is such that even independently generated simulators (Eldo, spectre) rely on the conventions and methods from SPICE, though incorporating incremental improvements (a new algorithm here or there, and distinguishable mainly by how it differs from SPICE).
whatever is - the music is
The Eclipse Mylyn (http://eclipse.org/mylyn) project started out as a university research project before it came under the eclipse.org umbrella. Furthermore, It became so successful that a company was launched around its work, Tasktop (http://www.tasktop.com).
You really need to define what you mean by "created" and "entirely within." Very few software development projects are purely academic and a lot of development is done with both academic and non-academic contributors.
Gimp... Well at least the core image processing part was an 11th hour switch from a failed LISP compiler thesis project.
UCODE
PEST
Dakota
Visit
PETSc
There are a good number of small packages like these from academics with one intended purpose that are successful within the field they were developed for. Many times, people not in the field won't have any use for them.
Advanced Maryland Automatic Network Disk Archiver
Written at University of Maryland College Park.
Solves the problem of backing up zillions of servers and workstation to a single massive storage medium (tape, SAN, whatever)
http://www.amanda.org
Don't kid yourself. It's the size of the regexp AND how you use it that counts.
It seems no one has mentioned it yet, so I will.
I believe Lua (the programming language and virtual machine) is from academia -- the Pontifical Catholic University of Rio de Janeiro in Brazil.
Lua is used in a lot of games and embedded in a lot of software. I think even World of Warcraft makes use of it.
For more information and links, see About Lua.
NT Emacs (now GNU Emacs for Windows) - University of Washington Computer Science and Engineering
Save the World! Use a Quote!
The original winsock code for Windows was taken directly from BSD source.
The apache web server and the first graphical web browser (Mosaic) were originally developed at NCSA.
And as you said BSD gets plenty of use in 'the real world'
But more importantly, many concepts that are now industry standard get their start in academic prototypes. A lot of standard operating system concepts were developed specifically from BSD version of Unix. The first relational database system (ingres?) was an academic (berkeley?) effort. One could also argue that cloud computing really owes its beginnings to the grid computing effort, which was driven by academic work.
Just one more project that I haven't seen in the previous posts: OCaml is a nice programming language that is used for teaching in France, and also used in a few real-world projects.
However, some of the modules which people find really useful are rewritten by the core team, so one could say that they were not an output of the PhD/Masters.
In the larger scheme of things, the solutions by academics remain solutions for academic only until they are widely adopted. Then they permeated textbooks, and become the standard solutions of a useful problem. For this, there will exist a software (probably a rewrite) which has optimized it to within an inch of its life.
So the ideas behind the software live on, while the actual lines of code might not.
Never trust a spiritual leader who cannot dance -- Mr. Miyagi
Scrach project? Developed by MIT guys.
Some apps are WYSIWYG. Some others are WYSIWTF.
A lot of software that is written for graduate school is by nature specialized. So if you are looking for "widely used software" you probably won't find it there, unless you modify the qualifier to "widely used within a field".
That, and very few people complete a bioinformatics PhD in 4 years as asserted in the summary - unless they enter the PhD program with a master's degree already in hand - most take more like 6-7 years. It can often be one of the most difficult PhDs at any institution in part to the fact that it often involves negotiating a minefield of conflicting departmental requirements between departments of Biology, CSci, Math, Statistics, and others.
Damn_registrars has no butt-hole. Damn_registrars has no use for a butt-hole.
There. I said it.
Vision with execution is hallucination.
http://moodle.org/
VLC (VideoLAN) player.
It may just be a boardgame to you, but I thought his thesis involved the AI. It WAS widely used.
SPICE started out as somebody's research at UCLA Berkley and has since "inspired and served as a basis for many other circuit simulation programs, in academia, in industry, and in commercial products." http://en.wikipedia.org/wiki/SPICE
If we are talking about my subject (machine learning / NLP) a lot of the successful tools are open source and developed in academia.
Now I admit there aren't many large NLP companies out there (Nuance springs to mind, but they have their own software), but there are quite a few medium-sized companies that do quite well using open source Machine Learning tools. (After all, the machine learning algorithm is not what is unique about a specific solution anyway).
For instance, TiMBL ( http://ilk.uvt.nl/timbl/ ) is widely used in several small companies (mainly for development of solutions as it is extremely easy to use).
The math tool. Fantastic piece of software.
Running with Linux for over 20 years!
I believe Tripwire grew out of an academic environment. (Purdue? I think.)
The 'problem' with bioinformatics is that the field is extremely broad. Unless you write BLAST or one of the big sequence assemblers, your software is only going to appeal to a tiny fragment of an already small bioinformatics community.
I wrote software as part of my Ph.D. that is now distributed world wide. I guarantee you've never heard of it - it sets the standard for how to do certain types of phylogenetic analysis, but almost no one does that analysis.
During my time as a postdoc, I wrote a very simple curve fitting routine and put a minimal GUI on top of it. I am now getting requests from multiple countries to modify it to read in files from their instrumentation. Once again, only the tiniest handful of people care, but for those people, this is revolutionary stuff.
The question here is, how do you define success? Like a lot of the responses to this thread, I wrote a small script here or there to solve my own problem. Turns out, it solved a problem for someone else, too. My best known piece of software was a hack, a one-off script, written in an afternoon, that I got yelled at for even bothering to spend time on, and was only ever intended for my own use. It turned out to be the lynchpin for our project, got published in a peer reviewed journal, and has since gone global. I found out later that one of my undergrad computer science profs had solved the same problem 20 years before I did, in a more elegant way, and published it in a good, but non-science, journal - no one has ever heard of it.
Neither of us had the expectation that our software would amount to much. I would define the prof's work as 'successful' - he published a paper on an interesting academic topic. I would define my software as 'wildly successful' - I got an unexpected publication and a global (if small) user base, along with a reputation for fixing problems that would later get me a good postdoc position.
This isn't really an academia question. The most common advice in the open source community is 'scratch an itch'. Write something to fix a problem you see. If you write good stuff, maybe your code will become 'successful'. Or, maybe your afternoon worth of hacking will just turn into an afternoon worth of experience you can apply to the next problem.
-V-
Who can decide a priori? Nobody.
-Sartre
FWIW. ROOT is a data-analysis framework/toolbox that was originally developed by a few guys at CERN and is now used all over the work in research. Mostly in fundamental physics, but I believe there are a few companies that use it as well (see the website). The papers application is another interesting example...
I guess gnuplot and xmgrace fall in a similar category. There must be specialised utilties/toolboxes in other fields as well, but I would not know where to look.
Apache Mahout is based on a Machine Learning using MapReduce paper by Andrew Ng (Stanford)
In my field (molecular dynamics), nearly all of the major codes are from academic groups: Gromacs, Amber, Charmm, NAMD... About the only one I can think of that isn't is Desmond, which is from a private (but non-profit) research institute.
"I'm too busy to research this and form an educated opinion, but I do have time to tell everyone my uninformed opinion."
Havok is a physics engine commonly used in video games. It was originally developed by Steven Collins while at Trinity College in Dublin.
ImageJ
CellProfiler
Open Microscopy Environment
Hugin
Micro-Manager
R
OK, it doesn't actually fit the question, since it asked about "universities' labs", but it was the first thing that popped to mind.
I won't go into the details here, since you can read it at Wikipedia, but Oregon Trail started at a school, then went to MECC, which was state-funded.
http://en.wikipedia.org/wiki/The_Oregon_Trail_(video_game)
http://en.wikipedia.org/wiki/Minnesota_Educational_Computing_Consortium
I seem to remember the Java thread pool libraries came from the State University of New York at Oswego; now I see that were written by prog. Doug Lea and it looks like they have been absorbed into the Java standard library (java.util.concurrent).
[Sir Garlon] is the marvellest knight that is now living, for he destroyeth many good knights, for he goeth invisible.
Tcl/Tk began at UC Berkeley.
I don't know if anyone has mentioned it yet- too lazy to read through the hundreds of responses.
Spice was developed at UC Berkeley. It is the basis of dozens of commercial time domain circuit simulator programs.
You can get a great one for free from Linear Technology- it used to be called switcherCAD, they now call it LTSpice.
Get it here: http://www.linear.com/designtools/software/
Isn't the first one that comes to mind the world wide web? CERN is definitely academia. I'd imagine many other protocols originate in academia. Any idea about SMTP, Usenet, etc.?
BSD, X11, Mach, PostgreSQL, and SSH were all explicitly academic projects.
There is also a question about what qualifies as academia beyond simply universities and government labs. Linus Torvalds started Linux while a PhD student but later landed in industry. Bjarne Stroustrup worked at AT&T Research when he started C++ but he landed at Texas A&M shortly after.
Virtually all programming languages originate in or near academia : Lisp was MIT. Python was started at CWI. Haskell. OCaml. etc. Among the non-academic languages most originate within huge organizations who's research departments start to resemble academia : Smalltalk was PARC. Fortran and Cobal were IBM. C was AT&T. Erlang was Sony. etc. Java and Perl were seemingly further from academia, but academia's influences upon them abound.
Afaik, all computational libraries used for serious numerical programming, like stock trading, computational fluid dynamics, etc., were developed in academia.
The Christian religion has been and still is the principal enemy of moral progress in the world. -- Bertrand Russell
It started out that way - but by the time Linus graduated in 1997, linux had become a huge thing, and I bet that if he hadn't made it the topic of his masters - he wouldn't have finished at all.
It started out as a method for Linus to access his work on the school Minix computers (source: Just for Fun). He later did use it as part of a Masters project for doing multi-architecture Operating systems, but that's it. It is mostly a development as a personal (prior to 1995, part-time/full-time without pay while he pursued academic degrees) and commercial (since 1995 when he's been paid to work full-time on it) project.
Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
There is now.
Pico and Pine are from some Washington University if I recall correctly. And the Sphinx voice recognition software is from CMU.
By Paul Asente of Adobe. MIT decided to use it as its GUI platform and productionized it.
GIMP was the project of a couple of Berkeley CS students.
I think they may even have been undergraduates.
There are many other factors, does anyone have favorites? Note that not all academic software is destined to be used outside of academia or to even survive past the end of the semester. That's ok.
Just to nitpick a bit, Erlang was developed by Ericsson, not Sony.
SPSS grew out of Stanford University in the 1960s, bought by IBM for $1.2 billion in 2009. SAS, which grew out of NC State, is the world's largest privately held software company.
GENERATION 26: The first time you see this, copy it into your sig on any forum and add 1 to the generation.
SUN actually got it's name from Stanford University Network and SunOS started there as did Cisco. The first Cisco prototype router was built there. And did not Google start there as well? And wasn't Yahoo's first page hosted on Stanford's hardware and started there as well.
Comment removed based on user account deletion
In other words, the code may be ugly, and the code may be brittle, but do academics run validation tests?
archie -- Princeton?
CAP (appletalk for Unix) -- Columbia
cops/tripwire -- Purdue
GNU everything -- MIT
Gopher -- Minnesota
Kerberos -- MIT
Khoros -- New Mexico
Mach -- CMU
NNTP -- UC San Diego
Mosaic -- Illinois
sendmail -- UC Berkeley
BSD -- UC Berkeley
RCS -- Purdue
Usenet -- Duke/UNC
tcl/tk -- UC Berkeley
multi-CPU Unix -- Purdue
cu-seeme -- Cornell
I'm sure I'm forgetting quite a few. And of course not all of these are STILL successful, but in their day they made their mark, and often paved the way for other projects.
In the early 1960s, the Biostatistics Unit of the School of Medicine at UCLA developed BiMed (or was it BiMd). This was a package of statistical analysis applications that ran on a main-frame computer before the advent of desktop computers, the Internet, or client-server systems. It was widely requested by medical and non-medical researchers, not only at universities but also at various corporations. BiMed went through several versions. No, I don't know whether BiMed still exists today.
MetaCrawler was originally developed in 1994 at the University of Washington by then graduate student Erik Selberg and Associate Professor Oren Etzioni. This is a meta-search engine that sends queries to other seach engines. If you want to search Google, Yahoo!, Bing, and a few others all at once, your query at MetaCrawler uses all those. As with other software developed in universities, MetaCrawler is now owned by a for-profit company. Nevertheless, I still use it. It's at http://www.metacrawler.com./
nope, but two of the founders met at school and were married before starting it.
Kermit, from Columbia University, was at one point the most popular file transfer program (probably). McGill University's MUSIC enjoyed success as a time sharing system. The Logo programming language originated at BBN in Cambridge, so its academic roots are a bit fuzzy, but it was at one time the most popular instructional tool in computing for children. PLATO, from the University of Illinois, became very successful and invented (or at least popularized) numerous computer-based services we now take for granted, such as online forums and instant messaging. Model 204 originated in academia and runs Australia's social security system, among other things.
Sort of. It was built from patches a bunch of webmasters had made against NCSA httpd.
https://httpd.apache.org/ABOUT_APACHE.html
From Cleve Moler's "The Origins of MATLAB" --
"In the late 1970s, following Wirth’s methodology, I used Fortran and portions of LINPACK and EISPACK to develop the first version of MATLAB."
http://www.mathworks.com/company/newsletters/news_notes/clevescorner/dec04.html
Well, the genere of automated config management based on convergence pretty much owes its existence to Mark Burgess's thesis, and Cfengine is his implementation of promise theory. Now you've also got Puppet - which basically exists because Luke didn't like the way Cfengine was going (my opinion may vary), and Chef because that guy didn't quite like how Puppet worked. And several others which are probably listed in a table on Wikipedia or something.
And if you're a sysadmin completely unfamiliar with those, you should rectify that situation now. You're doing too much work.
As I note upthread, virtually all important programming languages originated in academic-like environments, even if they are officially corporate.
There are I think two revolutionary non-academic programming languages :
- Smalltalk was developed by Xerox PARC, but ultimately created object oriented programming, which certainly used academia to gain traction.
- C was developed by AT&T, but completely revolutionized our world. It's almost surely the most important language ever written. There had been structured languages before. I think Fortran and Cobal were developed by IBM. And academia had all it's research and teaching languages. Yet, it was C that brought structured programming and type-safty to system level programming, previously dominated by assembler. Imho, const is pure genius. C could not help but succeed with or without academia, but AT&T was still a fairly academic environment at that time.
In other words, your classification of generalized academic project doesn't include either afaik, but clearly both can fall under some generalized academia. You could not design C, and maybe Smalltalk too, without thinking deeply about languages from a hybrid academic and industrial perspective. If you pursue a blind industry perspective, you create garbage like PHP or VB.
The Christian religion has been and still is the principal enemy of moral progress in the world. -- Bertrand Russell
Erlang is Ericsson.
-- SouNerd.com
Erlang was Sony.
Erlang is and always have been developed at Ericsson.
I guess this thread is a good start for writing a wikipedia page of "Successful Software From Academia" .
(Likely to be linked with some OSS pages)
Any volunteer ?
Yes - the two companies have a joint venture that produces mobile phones, but they haven't merged.
Need to type accents and special characters in Windows? Use FrKeys
Science is like sex: sometimes something useful comes out of it, but this is not the reason we are doing it.
The role of academia is not to produce successful widgets, it is to produce successful ideas. As it turns out, in computer science, ideas are embodied in software, some of which eventually is picked up somehow and becomes successful. However academia shouldn't be judged by its capacity to produce widgets, this is entirely the wrong metric. It is engineering's role to turn ideas into products and services. This doesn't mean PhD graduates can't go on to become successful engineers, on the contrary, they might better understand the whole lifecycle from great idea to great product.
Cheers to all.
Some of my undergrad courses used WebCT... god that was awful software.
and then it was big enough to be bought (and put out to pasture to die) by Blackboard...
I wish. WebCT is alive and well, and still in use at many universities and other colleges. I have seen it in use over 12 years of academic life, since it seems to have become a fixture at my uni. That doesn't stop me hating it, though.
Erlang was Sony.
Huh!
Erlang = Ericson Language
Ericsson developed Erlang in the 1980's, about 15 years before they had a joint venture with Sony. Sony, Ericsson and Sony-Ericsson are different companies. Sony (an consumer appliances maker) and Sony-Ericsson (a mobile phone maker) have nothing to do with Erlang, as far as I know these companies don't even use it in any product or production, Ericsson (a maker of communications system, the worlds largest, the first maker of automatic telephone systems in the 1870's, the ONLY maker of automatic telephone systems for about 40 years) on the other hand, use it in most of its products.
Even before Sony-Ericsson, the mobile cell phone manufacturing that Ericsson started in 1954 (yes, nineteenfiftyfour) was never more then a side project, something to show off the communications systems with and something to keep in touch with the customers customers. In 2001 they started the joint venture with Sony and ceased production of their own mobile cell phones, because the cost of making mobile phones had increased as they had become increasingly popular outside Northern Europe since the late 1980's. The only large manufacturers of mobile cell phones at that time was Ericsson and Nokia (wow, it is only a decade ago, how the world have changed) and Ericsson wanted more mobile phone users in the world to sell more of their mobile phone systems. It was believed that Sony's expertise in making consumer products would improve the mobile phones user interfaces and their expertise in making large quantities of consumer appliances would reduce manufacturing cost.
While there are former U.Wisc. Condor staffers at Redhat now, and Redhat is a major contributor to the Condor project and has much invested in it, it is most definitely owned and operated by Miron Livny and the U.Wisc. computer science department. There's a large group of staff and students there that run the project and add the bulk of the new features to Condor. Anyhow, Condor is definitely an academia project with huge success that comes to my mind.
Exim MTA - http://exim.org/ - may still be the default sendmail-replacement in quite a few ditros.
Nick Waterman, Sr Tech Director, #include <stddisclaimer>