Don't assume "there is no money in X", but rather assume "there are no VCs that wish to invest". (Further, this is what ONE guy tells you, it's not unusual to have to talk to two dozen -- though I'm not sure you should). You might still be able to sell a PHP optimizer if you can figure out how to make parts of it proprietary and keep your company very small and tight. Picking up a VC will change the way they expect you to grow in ways you might not wish to grow, as they want very very large exits for large companies. You may still have a sustainable business or a side project that you can love and make money on. However, be sure if you do or you don't, if you are giving up gainful employment.
Realize the VCs motives are about extremely rapid growth, however, and that's not really required.
I believe there was an article on here recently about a Ruby task manager that had a proprietary plugin selling for $400 or so, and (I could be wrong) I believe that was enough to operate as a business for the guy running it.
You probably have something you can charge more than for, if you can get away from the pure OSS route.
Support may not work as a business model. It might, but it would be harder to sell.
What you need first, though, is lots of users using your free edition, because otherwise you're going to have to spend a bit too much time in sales to people who might not really wish to change things over.
For much of the last 5 years, I've been one of a very small group of people maintaining, developing and improving Open Dylan (http://opendylan.org/) (a Lisp-like language without Lisp-like syntax).
I've managed to fund some of the work by doing other contract work. It has also given me a lot of experience working with pretty much anything I want in the compiler, debugger, linker, run-time libraries, performance tools, C bindings generators, networking code, garbage collection, type systems and so much more. Some of this has resulted in further contract work, some has resulted in contributed fixes or improvements to other libraries.
(I'm now looking to potentially fund a student for some work this coming summer.)
Now, I'm taking a lot of what I've learned from that and starting up a small business (not looking for VC) to produce a new kind of developer tool. We plan to be open source and have some customizations and packaged products that businesses will be interested in and suspect we can fund ourselves that way. It'll be a long hard slog to get there, but we're pretty excited about what we're doing.
In general, I think there are a lot of things that could really use improvements. Our shells haven't changed much in the last 20 years. (I wrote a post about this last October: http://waywardmonkeys.org/2014/10/10/rich-command-shells/.) Almost everywhere you look, there are things that could be better. Most of them are a hard sell as a business. Some sort of increased infrastructure funding would be great.
Along those lines, there are programs that provide funding for some of those sorts of things. Stripe had an open source residency program for a short while. Mozilla funds some projects. The Knight Foundation funds a number of things a couple of times a year. Even Comcast has a funding program (http://techfund.comcast.com/). I'd love it if organizations over a certain size allocated some funding for some work that might benefit them, but would also have a wider benefit. If someone has 50 or 100 programmers on staff, they can probably afford to sponsor someone for 3 months or a year at a time. And who knows what might come of some of it...
A question: do you think it would make sense/be reasonable to try to write a racket language extension for Dylan? Sort of as an alternate implementation? (Not really asking if it would make sense for the Open Dylan project to use resources for that, more if there are obvious things/differences between Dylan and Racket/scheme that would make it infeasible).
>> I've managed to fund some of the work by doing other contract work.
To be clear, you are donating your time to the project. There is no other source of funding. This is the same as a side project on top of your consulting gig.
I made phc (http://phpcompiler.org), which is conceptually similar to HippyVM, before applying to YC. And I got into YC, and now run a post-Series A startup, so I probably have a tiny bit of insight.
Trying to sell a PHP compiler is a very bad business plan. In fact, trying to sell any compiler is a very bad business plan, because you're basically competing with free. You have to compete against OSS with massive communities (like gcc) or against deep pockets (like Visual Studio) or against reference implementations (like the OSS PHP engine).
Imagine trying to sell a PHP compiler. You can try to get wide community adoption and sell bottom-up. Good luck with that, the PHP community is not that interested in tools. So you can try to sell top-down to enterprises with slow PHP problems. Very few companies have slow PHP problems, and those that do could just use HHVM.
For 30 years, commercial lisp engines, C++ compilers, Java VMs, and tons of similar things have all been commercially unsuccessful (though not all failed outright). A PHP engine will have to compete with with Facebook's HHVM (OSS + deep pockets), against the Zend engine (community adoption + reference implementation) and against Zend corp (a known and established quantity in the space).
I spent a bit of time in compiler research and met with tons of compiler companies at events. One of them said that they couldn't think of any compiler company that didnt make its money off consulting, and that worse, about 85% of them made their money off a single client.
Quick, name a successful compiler company! There aren't too many and they weren't that famous. There is Coverity in the closely related static analysis space, that sold for $375m. There is Cilk that sold to intel for $100m. Dredging my memory there's companies like Anamorphic which was acquihired by Sun in 97 to work on Java.
You're almost better off being a HHVM consultancy than building a competing compiler and ending
up having to innovate on the product as well as providing consulting.
"In fact, trying to sell any compiler is a very bad business plan, because you're basically competing with free."
Don't discount writing new types of compilers that people want.
At one stage pre pg stepping down, an RFS explicitly asked for compilers. Special types of compiler that have yet to be written that speed up programming across multiple machines. Disappeared in the RFS list: cf http://www.ycombinator.com/rfs/#program
Definitely don't trying writing new types of compilers hoping that people will want them! You could conceivably get lucky, but you won't.
You should be fine writing new frameworks (meteor), or working in closely related areas like static analysis (coverity, fortify), CI/CD tools (CircleCI), or even things like DB optimizers. I just wouldn't write a straightforward compiler.
I'd consider taking your existing consulting stuff and adding a hosting/service component. "We'll run your PHP backed sites better and cheaper than you can." Pick up a few customers (hopefully from your existing customer list) and get some revenue coming in (this would be annoying and a lot of work though). Grow things a bit and use the revenue to fund the development of the optimizer. At first it would be a bit of smoke and mirrors and a lot of work, but the knowledge gained from production operations would be invaluable to building a great optimized PHP runtime.
Struggle like this for a while until things are really working well, then sell hosted, fast and reliable PHP IaaS at a way cheaper pricepoint because you're more efficient.
Now you've got money coming in, a great piece of infrastructure built on real production experience, and a healthy customer list. Sell the company (or just enjoy the profits), keep the proceeds for yourselves (without sharing with some VC). Win!
Its an interesting story but not at all surprising. I wouldn't think that VC funding is a good model for core infrastructure programs, and author correctly identifies the two common routes at this point: control by large organizations or open source.
Hopefully most organizations have realized at this point that it is not a good idea to build your infrastructure around the big players. Just try to fire IBM and move off of WebSphere and see how easy that is.
That leaves open source and the author brings up a good point about the inequity of how much value they bring vs. how their contributors get paid. I wonder how many companies give back to infrastructure projects (money I mean, not code contributions, which are of course also important). Things like Google Summer of Code are great and beneficial, but what about giving actual cash to these ladies and gentlemen? Seems like someone might even be able to create a startup around that concept :)
I worked at a company with an anonymous suggestion box. I put a suggestion that we should donate some money to some of the open source projects we used. For many of those projects even a few hundred dollars is a big help. I wasn't expecting anything but the VP, who was the one that read those things, thought it was a great idea and that year we donated several thousand dollars from our budget surplus to a couple of the prominent open source projects we used. It may not happen, but it doesn't hurt to suggest it in your company.
There seem to be a few initiatives happening in this space, some of which are being used to crowdfund/support open source teams. Once example would be https://gratipay.com/about/
Docker, Meteor, ElasticSearch, NPM there is plenty of start-ups doing infrastructure stuff.
Market don't need fast PHP compiler look how low is adoption of HHVM. PHP is legacy codebase used for simple CMS. If someone need performance it will use Java, Node.js etc
HHVM is not a compiler that it used to be with Facebook, it compiles PHP and Hack into JIT bytecode now. PHP has opcache, which speeds it up quite nicely, and PHP7 has great performance improvements.
"Do open source stuff" is very different from "being open source companies".
I actually do think that the 'sweet spot' is to use open source as infrastructure, and make money with something proprietary, but that's not something that makes purists happy.
Well, you wrote "doing open source stuff", not me :)
I agree that it doesn't make purists happy, but frankly, I don't find it particularly important. As long as proprietary software exists, whether companies are separated between open and closed or hybrid isn't particularly relevant, in my opinion.
The dichotomy is this in any event: it's easy enough to work on free infrastructure stuff if you make your money elsewhere, but it's difficult to work on free infrastructure stuff as your business.
> there is no money in infrastructure like programming languages. Very few people are willing to invest in such companies and the contenders these days are all Open Source without a decent funding model or backed by a large corpo (Oracle, Google, Microsoft) or both. [...] we're missing a business model where infrastructure people can get attention from VCs and a revenue model that somehow corresponds to the value they're bringing.
>> there is no money in ... programming languages.
And yet there's Mathworks (MATLAB), Wolfram (Mathematica), SAS Institute, Kx Systems (q/kdb+), etc. Granted, these are all proprietary languages, but they aren't backed by the likes of Oracle or Google.
In my opinion, The value of programming "systems" like MATLAB lie in the fact that their primary customers are not really programmers but people like scientists and engineers who need to use computers and don't really want to (or have time to) learn new or better programming languages; These companies make their customers' lives easy by giving them easy to install and use, complete programming environments including a large set of domain-specific libraries.
I would add the very large old codebase in science. These systems gained popularity well before the advent of Python and other more user-friendly/approachable languages, so very large numbers of people in academia are familiar with them and have large volumes of code written for them.
As a grad student you're going to want to solve some problem, and your choice will be 1.) reimplement large segments of the lab's codebase in your language of choice or 2.) build something on top of the old code in Matlab.
I tried convincing my grad advisor to do things in python and not matlab, but no dice. He went with matlab for the problem he (and to as certain extent I) was trying to solve because of these kinds of institutional factors.
"...we're missing a business model where infrastructure people can get [...] a revenue model that somehow corresponds to the value they're bringing."
It's a problem now and always has been, from the days when C++ suddenly got popular and C++ library vendors suddenly discovered they had to pay for real customer support and everyone realized per-use license fees were ridiculous.
Clojure is an interesting model where you have the company Cognitect built around the language. You have the product arm with Datomic, the consulting arm creating client projects in clojure and finally paid clojure/datomic training. All three feed into each other while helping to improve the language ecosystem at the same time.
What would be revolutionary in infrastructure? What would make infrastructure an order of magnitude cheaper? Or infrastructure such a sexy cool product, everyone would want their own? What would be an infrastructure play that would make a VC drool?
Infrastructure in this context is a bit nebulous. I think something like dead simple self hosted email would qualify. Built into ones home router so they'd never have to think about it.
That's not the infrastructure he means. An email server has to be coded in a language / runtime; who develops those pieces? That's what Maciej means by "infrastructure": the languages and runtimes everybody else then uses to build sexy products.
Agreed. And within that space, given 2 hours, I can probably come up with a list of 30-40 projects which could be done for budgets between $5k and $100k that would have meaningful impact on multiple organizations.
Typesafe (from their web site) sells a packaged version of their "stack" (similar to RHEL), plus support, plus what looks like a proprietary management tool (ConductR, which I think is pretty new). Also training and consulting.
If I understand it correctly they build on the JVM, so the "infrastructure work" Maciej mentions (building the actual JVM) has already been done before they come into play.
I feel that a good infrastructure by itself is hard to sell, but easy accessibility of the infrastructure and stuff built around it (for example the play framework in case of Typesafe) could be a good sell.
A very wise developer I know, John Baldwin, (hey if you're reading this) once told me an important lesson: People don't pay for technology, they pay for a solution to a problem.
PyPy can't use introspection, like the standard logging framework (http://pypy.org/performance.html,) without severe performance penalties. Fix that and you've got a solution to a problem.
That quote doesn't quite hold water: the Vitamin industry is a multi-billion dollar one. Maybe it doesn't quite compare with Bayer, but it's still quite profitable.
Yes, I don't think you can take that quote too literally, or the intent is lost.
Figuratively, of course, it means people will pay handsomely and hurriedly for you to take their pain away, but it is difficult to get them to pay for potential small improvements.
I don't think that's true at all. The trouble is the aspirin is free. Node, jQuery, Python, pick-your-language-or-framework, almost all are free. The point of the article is that if you want to make a pain killer, it better be vicodin not aspirin. And even then, if it's a large enough problem, likely someone who can offer it for free will make slightly-less-good-but-free vicodin.
I think for infrastructure as a business to work you need to find a sweet spot of: 1.) a serious pain point 2.) for a large number of customers who do not have the resources to solve it themselves, and 3.) that is hard enough to solve that it can't be solved by a quickly hacked together product. In particular to 3, one example I can think of is a problem requiring a very complicated but powerful user interface.
Oh, and then you actually need to solve it, track down the customers and convince them to pay for it. Overall it's a tough needle to thread.
that problem is fixable within a week or developer time. I'm very skeptical i can actually find someone to even pay for that week. feel free to prove me wrong
You mean a version of PyPy that runs super fast as regular PyPy but that can also handle introspection? If it were that easy, why doesn't PyPy have that in place already? I think it's a lot harder than it sounds.
a version of pypy that handles enough introspection for logging to work, not e.g. dynamically modifying locals. it's not done because i have more important things to do in my free time essentially. as i said, if i can justify a week of paid time to do that, i would make logging fast.
I thought there were two fundamental ways to make a business: 1) You build a product/service and sell it. You sell the company for market share and revenues. I think everyone understands this.
2) The second way is more like a financial derivative, it's a bit more risky, a bit more complex, a bit more limited in terms of exit strategy, but you build a technology company and you sell the company for the technology itself and team that invented it. In this world, patents and actual IP matter more. It's a technology play, not a product play.
Apple and Google buy these companies, ARM, Qualcomm, Rambus are some examples of big ones.
I could see Hippy positioned 2 ways, 1) product, it's going to take 2 years to build (and that's probably really ugly to most of the hipster/cool kid VCs right now) it's going to be some kind of proprietary PHP VM that's 2x to 10x faster running unmodified code. It's going to cost $x per core or host or something. You're going to build it, you're going to market it and you're going to sell it. Maybe there will be a free community edition to help market it. I don't know, but that's the rough outline of the story. Hopefully PHP is still really popular in 2 years... Long lead time, product, then presumably you'll know how to market and sell it. Maybe my cold meds are fogging things, but that's kind of ugly but it seems almost palatable, these guys build compilers, without Pypy it's super ugly.
Alternatively you could position it like a technology company. This seems a lot more compelling, these guys have a great track record of doing great technology. They're doing legitimate cutting edge compiler stuff, routinely delivering it, routinely making improvements.. Tackling hard problems (like the GIL) and making headway. If you've got technology to make unchanged php 2x to 10x faster, you can't tell me there isn't a market for that, Facebook is building that for themselves. I'm sure Yahoo and others would be interested. There are existing php accelerators on the market. Plus, you're only funding the development team so it's a bit more inexpensive. What you need is like a VC backed by Facebook or Yahoo one of those interested parties already looking at this stuff or a VC with the right kinds of connections with other tooling companies that might be interested in buying this kind of technology. With their track record, it seems like a fairly safe technology play, they just need to find the right investors. Now asking them why Pypy doesn't accelerate certain types of code would be part of the process, perhaps understand their strategy to avoid that problem with PHP would come up.
PHP optimization can be direct sold to hosting companies. They want it - they want their shared cloud hosting to use less resources, they want it to be faster. Because faster PHP means more clients on less servers, which means more money.
Take the percentage increase over the "classic" optimizer, multiply by total hardware costs of the hosting provider. The result is the dollar figure that it will save the company. Now your sales pitch is "Our software costs $X and will save you $Y > $X", which is a familiar and usually successful enterprise software pitch, since it is pure cost savings from the POV of the customer.
The tricky part is getting integration costs down to < $Y - $X, which is why the most successful enterprise products tend to be turnkey solutions like CloudFlare or AWS that build off already existing APIs. New programming languages usually fail because there's a massive hidden cost in learning the language and rebuilding the ecosystem that is greater than any potential savings the language could offer.
Things like HHVM are frequently not suited for shared hosting environments
So what can be done to make things like HHVM suitable for shared hosting?
It's a huge market, and a difficult problem to solve.
I think the big question is: what is the cost/risk/reward benefit is for the hosting providers.
You need to be cheaper than buying more hardware, safe enough to install without breaking everything, and provide a significant improvement in e.g. the number of hosts per server.
> It's a huge market, and a difficult problem to solve.
It's a market I expect will go away entirely. You can get VPSes for comparable pricing to shared hosting these days - DigitalOcean is $5, Heroku is free for the first dyno, etc.
It's a market I expect will go away entirely. You can get VPSes for comparable pricing to shared hosting these days - DigitalOcean is $5, Heroku is free for the first dyno, etc.
I'm not convinced the market will go away.
There are plenty of people who:
- Want hosting
- Don't have the technical abilities and/or time to set up a VPS
- Just want something that works - right now this very second
- With an easy-to-use control panel
- And want to pay $5 - $10/mo for the pleasure
Cheap hosting for non-technical and/or busy people is huge and I just can't see it losing market share to VPSes.
PaaS like Heroku is more or less exactly what such people want, isn't it? See the "deploy to heroku" buttons you see on more and more project websites.
Looking on their main homepage again with that in mind: I have to agree, such potential customers probably wouldn't realize that this is what they want. So yes, there is potential for someone to make a Heroku for that crowd.
It is tough to find a business case for a technologic innovation. It is easier to start with a business case and then derive the technology necessary for that.
That said, there are companies like TypeSafe and Cognitect that found a way to sell solutions and services (often in a consultancy/agency/training model) and through that business model they can invest in fundamental longer-term building blocks (like languages, runtimes, libraries, databases).
It's not easy but might be a possible angle to deliver tangible value now & still drive long-term vision and innovation.
A bit off topic, but I wanted to comment on U.S. visa part (when the author realizes that valid visa was in the passport he did not have with him) in hopes that it may be useful for someone. I was in a similar situation, except that was an overland crossing from Canada. I had new non-Canadian passport with me and driving up to the border I realized that my expired passport with valid US visa was left at home, 4 hours of driving away. That was especially embarrassing as I had friends in my car. Turns out that after me contributing around 500$ to Uncle Sam coffins they can pull visa information and previous entry records and admit me into the country after getting authorization from higher ranking officer. Usual disclaimer: it may or may not work for you, especially for air travel, and that was back in 2007.
YC has publicly stated that long-term big visions are exactly what they are looking for. The problem isn't that you need time, it's that the result of waiting won't be big enough to justify it.
author here. we do sell commercial support for pypy and python performance problems at baroquesoftware.com. let's say it has not been a spectacular success so far and it's not enough to fund someone to do more boring infrastructure stuff for pypy like buildbot maintenance. one commercial thing we're working on is vmprof, which is a multi vm profiler and we plan on selling it as a service to your existing infrastructure. Feel free to ask me anything
Does HippyVM actually work or do anything? Their website is so barren.
I wonder if it really offers any advantages these days. HHVM is really fast, PHP 7 is really fast, and PHP now has Zend (ew) OPcache and its optimiser built-in.
HippyVM is quite weird, too: it's made by Python developers who don't seem to have ever contacted anyone from PHP.
From the article: the difficulties in funding generally caused the HippyVM project to come to a stall.
Even the mother-project PyPy is struggling with finances. It's this weird thing that most of the Python world thinks is great, but doesn't quite understand...
There are quite a lot of other language implementations in RPython, since it is relatively easy to get off the ground. Use a comparatively high-level language to write the byte-code-interpreting loop and you get a JIT more or less for free (Seriously, if that kind of thing is interesting to anyone reading this, try it)
I agree with you and would like to add (to the author of Hippy): Why not contribute to HHVM (or fork it and improve it)? If you made a few tactical improvements to HHVM that sped it up a bit, and kept a few good ideas in your back pocket, I'm sure the whomever is PMing the project at Facebook would love to talk to you.
Don't want to work at Facebook? I understand that, but before you say no, infrastructure teams at large companies tend to have a lot of freedom and lack of politicos sniffing about. It might actually be quite a bit of fun on the HHVM team.
hippyvm as it is is indeed quite useless. it's faster than php7 on par with hhvm but it needs funding to get somewhere where you can actuaply run wordpress on it
As many people have pointed out, many VCs want a fast ramp up. Also be aware that taking money from VCs will introduce a new level of complexity to your operations. Some VCs will even try to essentially make decisions for you and the future of your business.
VC money always comes with "strings attached".
While I'm not against taking money from VCs, seriously consider if it will benefit your company's growth and business models by taking money from them. There are ways to bootstrap and grow a business without external funding like VCs. This is something a lot of people seem to have forgotten in this current startup 2.0 mindset.
To the founders of HippyVM don't let Y Combinator's rejection stop you!
I agree that it's hard to make money off infrastructure, but at some point maybe it makes sense for YC to start just donating money to the open source projects its startups are using or could otherwise benefit from. E.g. if PyPy got a hundred bucks for each YC startup using Python, I'd have to imagine they'd be able to make enough improvements to make it a no brainer to use, which would produce enormous savings across the portfolio in terms of EC2 bills and electricity usage.
One way or another there needs to be a mechanism for solving the free ridership problem, and it seems like doing this at the investor level is as good a place as any.
Did you consider looking into any crowdfunding options? Perhaps with Kickstarer or Indiegogo? That's been used by some to both generate seed capital, help get products to market, and test/validate the model.
Maybe this sort of effort could be supported by some kind of hybrid MOOC/crowd sourcing framework. A big part is perhaps a cultural shift. In the US, tipping servers is voluntary, and yet most people are fairly consistent about tipping mostly due to cultural norms (plus having a tip line on the bill/receipt).
There's a potential cultural shift from "I like this" to "I value this" which could make many activities economically viable which are now pet projects or personal passions. You should be able to tweet cyber currency or something.
I feel bad for you. But I think you have a few choices:
a) Forget about doing difficult things and focus on something easy like dating, swipe left/swipe right app. It is not that Europe does the hard things like compilers, it is that America does the easy things like dating or cat apps or farting and stuff. However, there is hope. Look at what Slack is doing with yet another messaging app. Is there another app that is simply "a bad solution" which you can come up with a better, easier, more delightful alternative?
2) If you already did the hard stuff, what about packaging it with other elements of the stack and providing a fully optimized stack? Then you can offer it as a solution to enterprises. It is hard though. Enterprise sales.
3) Don't open source. Get paid for what you do.
4) Open Source but charge for the services around it. Consulting services. But you are already doing something along these lines.
To me, meaningful monetization of something like a compiler requires identifying big dumb companies for whom it would provide a significant competitive advantage, and tackling enterprise sales.
The misfit with YC/VC is that such a company is more consultancy than startup. The potential paying customers are snowflakes if not unicorns.
Here is an IDEA ! Add optional static types support in RPython to provide further compiletime optimizations (along with any type support). This adds static types to Ruby[1] , PHP [2], Python [3] or any dynamic X. I am sure people would pay for enterprise support for this compiler toolchain.
It's the wrong level: the RPython toolchain has no notion of PHP-level types, they're entirely implemented by the interpreter. Besides, optional static types are nearly useless (performance-wise) when you have a JIT.
The most useful thing I can think of for HippyVM is some sort of *aas play. Maybe they offer a service like google app engine or heroku who's default vm is faster (and therefore cheaper to run).
If something like New Relic didn't work on your vm you could offer a competing service that utilized jit-specific tracepoints. People who care enough to want a faster vm and have money will probably want great performance insight, and vm developers are uniquely positioned to offer that insight.
The http://hippyvm.com/ site looks really nice and it is impressive they managed 2x Facebook's offering's speed. Too bad it also says it is too incomplete to work for web servers yet. Not sure I would want to compete with Facebook's huge team and resources either, if I was company or an investor.
I wanted to punch my screen while reading this. Every anecdote, including the airport blurbs, screamed "stay away from this crew".
No, most businesses/investors looking for a return cannot wait forever. So you have 2 options: a) find the few who will or b) figure out an interim step that has value and can show results in a shorter time frame.
Realize the VCs motives are about extremely rapid growth, however, and that's not really required.
I believe there was an article on here recently about a Ruby task manager that had a proprietary plugin selling for $400 or so, and (I could be wrong) I believe that was enough to operate as a business for the guy running it. You probably have something you can charge more than for, if you can get away from the pure OSS route.
Support may not work as a business model. It might, but it would be harder to sell.
What you need first, though, is lots of users using your free edition, because otherwise you're going to have to spend a bit too much time in sales to people who might not really wish to change things over.