An App Store for Algorithms
wired.com
wired.com
e.g. game engines being free til you hit significant volume.
IMO implementing algorithms is what computer programming and software development are all about. It's the fun part of the job. A person buying an algorithm as a web service makes me wonder why the person even became a software engineer at all.
Not to mention that if this idea takes off, it will ruin it for the rest of us by encouraging algorithm researchers to patent new algorithms and not publish them.
I do wonder, though, if a person won't look for a freely available, openly published algorithm, why would they look at this service for an algorithm they have to pay for?
Implementing algorithms is what software developers do. If, as a software developer, I'm just a middle man between the client and the people implementing everything on algorithmia.com, it's kind of stupid for me to even be involved - the client should hire the people posting to algorithmia directly.
More often than not, you outsource items that are not the highest value projects your resources could be spent on. Or, you simply cannot afford to hire a specialist for a specific need. Try to find me experts for some of the pattern recognition algorithms offered who will work at your shitty startup, your shitty big-co with minimal tech wing, or your random mid-sized in the middle of nowhere. I just described 95% of companies on the planet.
And to second relix's point, try to justify implementing something that may have taken years to optimize, even if you think you can do it better. Also, do you want to maintain it? What happens if/when the company loses you? Would they rather have some poorly documented, poorly optimized in house version with nobody around who knows how it works or have a contract with another party they can count on for maintenance and support?
Is this always the case? No. Sometimes it's a core function you want to develop in house. But, it's usually considered.
As a developer, a big step in growth is realizing how to best spend your time and resources, and realizing that contracting implementation of X to further speed up building Y is a choice you'll often have to make.
Component reuse is generally preferable to re-implementation, but it's not a blind creed to follow.
I have to agree. I can imagine the exact type of person to make use of such a service, and can see a considerable hype following becoming the market. The creators no doubt had the best of intentions in mind, but I think it does prey on the uniformed, even if unintentionally.
Also, a bulk of the work would probably go to massaging your input to satisfy the input constraints of this web service. If you go that far, you might as well implement the rest of the algorithm yourself.
Maybe instead of an Amazon-style store, it could be more of craigslist/elance/topcoder type of store – people submit the exact classes/data/input they have, with the desired output. Developers write code (and the platform checks input/output validity), and the submitter can then haggle with the coder with the best score for the fee to pay. I guess it could be used as an outsourcing tool for companies that can't be bothered or don't have the brains to develop these kinds of things. Just an idea.
All code would be unrestricted and the value-add would be in the search, review, and benchmarking functionality of the service.
This is the same model that makes me pay Amazon for instant video rather than nothing to TPB.
Anyone that's used/written algorithms knows they need to be run natively on your machine/server to run the fastest. Calling a web service will slow this down greatly.
If this site was turned into a marketplace of code listed for each algorithm that can automatically translate between languages, I could see it going somewhere.
I'm not sure what value they're providing, exactly. Anyone can put algorithms on the web now: you write them in a standard language like PHP and upload them to any hosting service.
I imagine you ship off the data, let them run the algorithm, and they return the results. This has no effect on the Big-O efficiency of the algorithm; the only additional cost is a simple roundtrip of the data.
I'm failing to see how that's so different from ex. running an intense algorithm in a worker thread.
Although the algorithms may run efficiently, ferrying significant amounts of data to and from a web service could quickly negate any gains.
I think, as a startup, you might want to cut down on "making money" part and especially muddy waters of patents. These are likely not the greatest incentives either for researchers or consumers given that lot of grants don't allow this and even if it did many researchers settled in academia have severe repulsion to it. Instead try to grow the site organically keeping it as frictionless as possible for both sides of users. Motivate researchers to post code and data, for example, to allow them compete against state of the art. Be the that reputed site for computational problems and algorithms that people go to like they go to Stackoverflow for programming problems. Once you establish yourself like that, researchers want to get benchmark from you to cite in their papers and that's great motivation for them to give you their code. Consumers can then find them in your repository. I would suggest to keep making money as TBD. Just grow the site making it largest possible index of computational problems and known state of the art solutions.
https://news.ycombinator.com/item?id=8120070
...gets written up in WIRED. Nice PR work.
What kinds of algorithms is this even good for? Cryptographic algorithms are right out. The image on the page says "Dijkstra's shortest path planning algorithm" - I don't think that's a candidate. Results for pure functions can just be cached ...
The only possible beneficial (and profitable?) use I can imagine is to gather statistics on algorithm performance with real-world data provided by developers from around the 'tubes.
Algorithms are worthless by itself.
I've long wondered if this business model of service components is how industry will evolve. It seems to make economic sense - but so did ordinary components, and they lost to (free, modifiable) open source libraries.
Another thing is. Implemented algorithms are useless since they solve no real-world problems. For example, take an implementation of Dijkstra's shortest path. No real-world problem can directly use this implementation. It will have to be modified and adapted to a specific situation. This means customers will have to figure out somebody else's codes and modify it. Why don't they simply write it out themselves while consulting a classic algorithm textbook, instead of buying it?
Idea is good and certainly has potential.