I suspect a "startup" is any company that is serving a market that has yet to prove it is viable. Many folks use that term to describe any privately held company that is growing into something much larger.
Maybe I'm a lot more cynical than I thought, but I think this is the best definition of a startup in this thread. I'm continually amazed by stories on HN where people invest significant portions of their lives and/or wealth with no idea of how they can generate revenue.
Now I AM going to get cynical by saying it's in the VCs' interest for this to happen, because they can swoop in and grab the few that do turn out to be profitable. The HN dream is a bit like Hollywood - most of the hopefuls who chase the HN dream are going to end up eating ramen through three or four pivots, before they realise quite how bad the odds are against them. Sorry for such a black thought at the start of the week!
So in other words, your actual definition of startup is "a company that doesn't make any profit"?
Apple is designed for growth since their inception (when they were still a startup, by anyone's definition of startup) and that haven't changed much ever since (except, perhaps, on the Scully phase... and probably now, under Cook): they kept iterating fast on new products, predating their own margins with internal competition and all those other small things companies designed for growth do...
Dunbar's number makes little sense for directly determining/classifying organizational sizes. Most of peoples' relationships lie outside of the organization they work for. You'd probably have little to no relationship with people in your organization way before you reach Dunbar's number.
I see your point, but there's more numbers when it comes to companies, there's a break at 7 or 8, and another one somewhere around 20. I might have fudged the numbers a littlebit, but they're both breaking points when a company needs to change its organisational structure: Starting with a flat, informal startup, at 7 or 8 is where people may feel their voice is not informally heard at (for instance) meetings, that needs to be addressed by a (slightly) more formal type of meeting. Somewhere around 20 there's a second break which is when you need to start thinking about an extra level of management (just one at first, of course). There's probably a few more that I don't know of and I would not be at all surprised if Dunbar's number is one of them.
"In my opinion it is at 5 that the feeling of "team" really starts. At 5 to 8 people, you can have a meeting where everyone can speak out about what the entire group is doing, and everyone feels highly empowered. However, at 9 to 12 people this begins to break down -- not enough "attention" is given to everyone and meetings risk becoming either too noisy, too boring, too long, or some combination thereof. Although I've been unable to find the source, I've heard of some references to a study from the 1950s that says that the optimum size for a committee is 7. Likewise, it's fairly easy for us to see and agree that a dinner party starts to break down somewhere above 7 or 8 people, as do also tabletop games of both the strategic (I prefer 5) and role-playing varieties (I prefer 7). These size limits can be overcome, but require increased amounts of "grooming".
"The chasm that starts somewhere between 9 to 12 people can be especially daunting for a small business. As you grow past 12 or so employees, you must start specializing and having departments and direct reports; however, you are not quite large enough for this to be efficient, and thus much employee time that you put toward management tasks is wasted. Only as you approach and pass 25 people does having simple departments and managers begin to work again, as it starts to really make sense for department heads to spend significant time just communicating and coordinating (and as individual departments become large enough to once again allow for the dynamic exchange of ideas that had previously occurred in the original 5-9 member seed group).
"I've already noted the next chasm when you go beyond 80 people, which I think is the point that Dunbar's Number actually marks for a non-survival oriented group. Even at this lower point, the noise level created by required socialization becomes an issue, and filtering becomes essential. As you approach 150 this begins to be unmanageable. Once a company grows past 200 you are really starting to need middle-management, but often you can't afford it yet. Only when you get up past that, maybe at 350-500 people, does middle-management start really working, primarily because you've once again segmented your original departments, possibly again reducing them to Dunbar-sized groups."
I honestly don't know why you'd need 250 people to run a service like Dropbox. Dropbox is a piece of software that could recreated in about a month by a smart hacker; and if you're using AWS, you don't have worry about the servers (so don't need a sysadmin/maintenance staff) -- so, theoretically could be comfortably run by a handful of skilled core engineers.
Why are 250 people working at Dropbox? Is Dropbox overstaffed?
> Dropbox is a piece of software that could recreated in about a month by a smart hacker;
A service running on AWS with intra-account deduplication, with signup, referrals, billing and support, Windows, Linux, Mac, iOS, Blackberry, Android, kindle and web clients, all internationalised into English, French, German, Italian, Japanese, Korean, and Spanish (both European and Latin American), and an API with six platform-specific SDKs for Dropbox integration.
It's a genuine question. To my mind, a startup has a small number of employees and not very much money. This is hardly the first time I've heard of a company with >100 employees described as a startup, so I'm interested to know what people's definitions are.
>A startup is a company designed to grow fast. Being newly founded does not in itself make a company a startup. Nor is it necessary for a startup to work on technology, or take venture funding, or have some sort of "exit." The only essential thing is growth. Everything else we associate with startups follows from growth.
Well, it can get confusing when "a company designed to grow fast" doesn't, and yet still has enough revenue coming in to not die. I worked at a company that considered themselves a startup when I first interned there in 2004 (they'd been founded around 2002 and had just gotten their first 7-figure contract). When I left in 2007, it was apparent they were really a small business, they started calling themselves a small business around 2009, and they finally went out of business in 2011. I think headcount topped out at around a dozen in 2006 - it'd been around 7 at my first internship, and I think it was down to just founders when they went under.
It seems like you're taking the term "fast" to refer to the number of employees. I think it refers more to revenue, or maybe user acquisition for those "we'll figure out how to make money later" companies.
Technically I believe any company that is less than 2 years old is a startup, they have a limited operating history. VC funded startups that are supposed to grow hyper fast but lots of statistics we see also count every new small business.
Billion/million rule is the cutoff for "real startup".
It stops being a startup when, if acquired or IPO'd for $1 billion, a full-time entry-level engineer makes less than $1 million after taxes. For straight equity, that puts the cutoff around 0.2%. For options, it depends on the strike.
By 250, new employees are getting much less than that.
I'll be very interested to find out what role Guido will take up at dropbox. When someone like Matz/ Guido/ etc gets hired, what do their job responsibilities, for the community include exactly? Are language writer hires such as this purely symbolic?
Having worked with Guido on App Engine, I believe I can answer this.
Just because someone wrote a language doesn't mean they have no other talents as engineers. I will say that apart from being a good language writer, he is also a good Engineer. For us having so much invested in Python, Guido has been an important part of App Engine. But even if that wasn't true (as it may be for Dropbox), having well-known programmers is an important way of marketing to other engineers, be they customers or potential hires.
TL;DR - App Engine got great use out of Guido while he worked with us, and I'm sure Dropbox will too.
Guido wrote the NDB framework for AppEngine, which, as an AppEngine user, I'd say has one of the most clever ways to do async requests that I've seen in any major language. I'm used to the C++ frameworks for async that are used in the main search stack, and switching to AppEngine and having things pretty much "just work" has been great.
He also did Mondrian, which kicked off the trend toward web-based code-review and was a huge step forward from just critiquing patches over e-mail.
Usually famous programmers get famous because they've done a lot of programming; that experience translates into some pretty cool programming chops.
I'm not sure how I can see Guido having the effect at Dropbox that he had at Google. Dropbox's engineering difficulties, while large, are not near that of Google's. Is this more of a Matz being hired by Heroku scenario, in name only sort of thing.
This isn't just Dropbox deciding to hire Guido, it's Guido deciding to work for Dropbox and, perhaps most interestingly, deciding NOT to work for Google anymore. Surely a company the size (and type) of Google could come up with some pretty amazing projects for an engineer like Guido to work on if he got bored but, for some reason, Guido left. The reason could be something as boring as a big raise or a shorter commute, or something more interesting (a new internal policy to start replacing Python with Go, a clash with one of the big shots that leaves Guido forever on the shelf in the celebrity trophy case, or whatever.)
It could just be that Google was too big. Maybe Guido just wanted to be the Big Man on Campus. Google is filled with brilliant/famous engineers. Dropbox is much smaller so going to a smaller company, he can have a much larger impact. Just a theory though, there are tons of possibilities.
Google has a reputation for being cliquey. I've also noticed a tendency toward trying very hard to make your coworkers look stupid rather than trying to look smart by actually accomplishing things.
I'm sure it depends on where you're working, but there seems to be a lot of that Marissa Mayer "excellence means putting other people down" attitude. And because of that, there is a lot of mediocre talent at Google despite its reputation.
I have no idea whether any of this has to do with Guido's decision, a lot of engineers like to change jobs for all sorts of reasons, sometimes for the sake of it, but I'd probably prefer Dropbox to Google as well.
I would assume that someone like Guido would be really valuable when architecting complex project written in Python. Maybe he won't be directly writing a bunch of small features, but at the scale Dropbox works at some REALLY good code reviews and language-related design decisions could produce big dividends.
I think it's a good thing for Python that Guido doesn't work on it full-time, and instead keeps his hands dirty with other projects. It allows him better exposure to the experience and perspective of regular Python users, and the sorts of problems that they use Python to deal with on a day-to-day basis.
That has nothing to do with it. GP said that it's good for Python that Guido doesn't work on it full-time, and instead keeps his hands dirty with other projects. But this experience of Guido's doesn't really expose him to 'thousands of people' any more than looking at the Python issue tracker would.
Maybe GvR is not interested in working only on Python language design, and wants to see other kind of projects. I mean, I am sure he has reached the point that he can pretty much decided what to do, so if he hasn't go to be a "full time language designer" is probably because he don't want to, not he doesn't have the opportunity.
Probably very similar to why Universities want Nobel Laureates on the faculty. Sure, they want their brainpower, but it's also huge for prestige and a symbol to the World of what a great University they are.
This will probably help greatly with recruiting. What Python engineer wouldn't want to work with him?
It always strikes me as odd when something like this happens. Guido is still working nine-to-fives and Drew never has to work again. Can someone tell me why a brilliant person like Guido isn't worth a billion dollars? Have tons of fancy cars and a fancy house? Has to work for another company?
I know nothing about Guido outside of his work with Python but I assume he's not hurting for money at all. Nevertheless, our capitalist system does not reward people for brilliance alone; it rewards people for taking risks. Some very wealthy people are still being rewarded for the risks of their ancestors, and others have managed to keep wealth gathered in different economic systems, but that is generally how new wealth is created in our economy today.
(By definition, risk takers are collectively expected to fail more often than they succeed. There is probably some level of intelligence below which success rates drop even further, but I would be surprised to see any strong correlation between success rates and intelligence above that level.)
I don't get it. How is creating a new programming language in your spare time not a risk? You're spending valuable time creating something that is likely to fail (see the scores of niche languages no one uses).
I think what you mean by "risk" is something very specific: financial risk. If Guido had instead put time and, more importantly, money into starting a "lifestyle" startup on the side, he would have been financially rewarded if successful.
We were discussing financial success; I assumed financial risk was implicit. Investing time in the creation of a new programming language is likely to pay off in many other ways, but the potential financial rewards are very low and therefore so is the element of financial risk.
People tend to overestimate the amount of money required to start a successful business.
You shouldn't assume anything about the personal wealth of...well, anyone. There are rank-and-file, post-IPO engineers at Google sitting on multi-million-$ hiring/retention stock grants. The only difference is that there's no press release when your boss quietly prevents you from leaving for another company, or hires you away from another company. Most smart people, if given the choice, would rather that other folks not know that they're wealthy.
Has to or wants to? Guido has chosen to focus on building an awesome language rather than maximising his personal wealth. Some people just like programming, and I'm sure he's extremely well compensated and does not have to work 9 - 5.
According to Borland's 1997 lawsuit against Microsoft, Anders Hejlsberg had a signing bonus of $1 million plus stock options to move to Microsoft. That sounds like a rich language designer.
I think of language design like running. Almost everyone can run, a lot of people run because they enjoy it, some of those enter competitions, but mostly because they enjoy the social and competitive aspects. Very few people make a living by running, and almost no one gets rich as a professional runner.
A lot of people enjoy making new languages. Some of these languages are used by more than a handful of people, though most of those are domain-specific languages. Only a few languages enter wide-spread use, and of those language designers, very few get rich from that work.
Mathematica is much more than a language. People buy Mathematica for system, the language is just a small part of it. (And it's crap, just like MATLAB language is crap, but the full product itself is massively useful).
Linus Torvalds is at least a multi-millionaire; when RedHat and VA Linux went public, they each gifted him with shares in gratitude for inventing Linux, reportedly worth around $20M . Some sources put his wealth at anywhere from $150M  to $1B ; his actual wealth would vary significantly based on when he sold and what he's invested in since, since those shares shot up 10x on IPO day.
hm ok, i read some article on that suggesting that he didnt make much money at all from the RedHat stint. But yeah i am sure he is a millionaire, but i am also sure Guido is too, just considering what he earned at Google for the last 7 years.
Would someone like this be paid based on their fame and/or positive PR value, or would they be paid based on position just like everyone else? I've always wondered if these "programming celebrities" make substantially more just based on their personal brand, or if their personal brand just affords them the opportunity to have any job they so desire (but with the "standard" pay)
That would be up to them, wouldn't it? I mean, if you could get a job anywhere you wanted and money was the most important differentiator, there would be nothing stopping you from increasing your price until you had sufficiently decreased your options.
Speechless. This is definitely one of the best decisions that Dropbox will probably ever make. Not only will this mean that Dropbox can hire other equally great Python developers, but as a company you can't get any more humbling than, "hey we hired the guy who wrote the programming language this site is based on and makes its money from"
Guido is an exceptional engineer as well, not just a guy who knows Python really well. The dude is seriously one of the rare gems in the community.
Sorry, my statement was more generic. I wasn't trying to say that Guido is motivated by money, just that these are common ways to get someone to stay if that is indeed the issue that makes them want to leave.
On the issue of challenges, maybe Guido has more pull on this, but there were recently some articles/discussion on HN about Google's hiring practices. They might hire you based on your PhD in databases, and then have you writing shell scripts for work because some randomized 'sorting hat' tells you what group you end up in. It's possible that even Guido doesn't have enough pull at Google to overcome this. :-\
The discussion I'm referring to represented ending up somewhere that you don't want to be as a bit of a trap.
E.g. if Guido ends up writing shell scripts, but his real skill-set/passion is for databases. It's quite possible for him to under-perform, and then that performance used as a reason for the 'database team' to not take him.
Yeah but the problem is, reasons for a career change are highly personal, and by the time the employee wants to leave, it's usually already too late to keep them by sweetening the deal. The only way to know is to ask Guido himself.
In any company there could be changes that are simply imposible to fulfil. Let's say that there is something on the company culture he don't like. You can't call upper management and say "I can't stand the level of politics on this company". Or the way we hire. Or the kind of products we are doing. Or the impact I have on the company (no single person is going to have a big impact at Google, no matter how great he is)...
There are also things related to company size. I am more confortable working for small companies than big ones, there are other people that is the other way around...
It's not as simple as saying: "please stay, whatever you want"
Probably nothing. I just find it interesting that an organization like Google with practically unlimited resources can't keep someone (who can probably get anything they want in terms of perks) around.
He was a core member of the app engine team, wrote ndb (the next generation datamodel library for their schema-less datastore), wrote the code review web app tool that was awesome, and a bunch of python infrastructure AFAIK.
They kinda kick everybody out on Friday evenings, actually. (Not actually kick out, but make it easier to just go home, especially as compared with Mon-Thurs.) And, in fact, that's even more true now than it was two weeks ago, because of a change in food-service policy.
This is not true. I use git practically every day, working within the main source tree. Google's a big company with thousands of engineers and multiple ways of doing things. Some use git, some don't. You use what works best for you.
A decade ago, Python being widely used in Google and the creator of Python being employed by the company was a big endorsement for the language. Now Python is quite mainstream. Actually, Guido was allowed to devote 50% of his time at Google for Python. Hope the good work continues at Dropbox.
FWIW, Guido's role at Google wasn't specific to Python. He worked on real product teams and contributed much more than his Python expertise.
The article seems to think that Dropbox hired him for his thorough knowledge of Python, which probably had some role in the hiring decision, but I expect that the primary motivation was to acquire an excellent engineer.
I wonder, will Dropbox still allocate 50% of Guido's time toward Python development?
Further, donning our tinfoil hats, is it reasonable to suspect that Google is phasing out the use of Python internally? I've heard rumors that Python is no longer permitted for new projects within Google; hoping some Googlers here can confirm or deny this.
Now, it depends on if he actually knows more than what he stated. They could be weasel words if he actually knows on some future date such a prohibition will be made, or that they are currently prohibiting Python on some level.
My suspicion is that he was trying to be specific, not weasel-like.
Not aware of any prohibition against Python. The rule as I understand it is (not surprisingly) "use whichever of the supported languages best fits the goals and requirements of your project". If that's Python (and you can support your reasoning), use it.
Python has been a backbone of Dropbox since its early days as it
allowed the startup to write code once but deploy it across platforms.
Can anybody elaborate on this? Is the argument that Python is cross-platform because everybody uses GNU tools on every platform, or are there other reasons why Python is more cross-platform than other languages?
1) CPython is written in portable readable C code.
2) CPython has been around since 1991, and thus people have had the time to port it properly.
3) Python have shown an interest in supporting both Unix and Windows for a long time (and later OS X), thus every new change has to describe how it will interact with both systems.
You as an python developer don't have to worry much about different platforms since every new library and language feature tries to work the same on all supported platforms. (of course this doesn't always happen)
Perhaps as Python has had Windows installers for a longer period of time?
If me memory serves me correctly, Python has had simple Windows binary install packages (from Python.org and ActiveState) longer that most other scripting languages in the same class, that did not need require an additional layer like Cygwin.
No compile STEP means there is a REPL, there is no waiting seconds, minutes, hours while a compiler compiles and links code to native format, code on arch 'A' can be run on arch 'B' without [re|cross]compiling it and a few other less important things.
That there happens to be an PURELY optional for performance only pre-parsed representation for the interpreter is immaterial.
I really don't the sentence as "the best language to deploy across platforms", but as "it works across platforms".
I started using Python on Windows machines, and I was able to develop programs that run without any problem or adaptation on Linux servers. That include thing like GTK, making a GUI and working on Windows and Linux.
It is possible that I could achieve that in other languages, I guess. But it had that capability, for sure... And for Dropbox that's a very interesting feature, as they have a client that needs to run on Windows, Linux and OS X...
Not if we're talking about the real world (implementation), rather than the theoretical capability of a language in itself. Perl and Ruby don't see much love on Windows, particularly with GUI toolkits and the like. Python is the only one of the three that feels comfortable using on Windows, from the skeleton of the app down to actually distributing it.
Java is really good at cross platform apps though.
This is one of the few things that irks me in programming communities, often you'll seen criticism or praise of a point in a language, and then some language lawyer comes and talks about what said language can do in theory, rather than looking at the practicalities of actual, real world implementations, the community and culture surrounding it and so on. No one gives a crap if any dynamic language COULD be made to work the right way on many OS, people care if the work is done, not if it COULD be done.
The worst offenders are of course people victim of the sufficiently smart compiler curse.
If you're pulling a pure python package (like Django, Tornado or requests) then you're golden on any platform python is available for. If you're pulling a python package that contains C bits (like PIL, msgpack-python) then you'll need the compiler toolchain and associated libraries.
Luckily, most such packages (the popular ones at least) can be obtained in other ways (PIL through a win only download, or get a pure-python alternative like msgpack-pure-python).
I use Ruby for light scripting on a Windows machine. RubyInstaller worked just fine and so do the irb shell and my scripts. Dropbox is a web app, so who cares about GUI toolkits? Perhaps you're right that the Python community tried harder, earlier, to support Windows and other non-UNIX platforms. But it's hard to imagine Dropbox actually selecting Python to build their web app for that reason. Maybe in their earlier days they used a hosting service that supported Python but not Ruby, Perl, etc.? Who knows...
You wrote 513 characters about a subject you don't know anything about. Why is that ? You didn't use dropbox, you don't know how it works (hint, what made it so popular is the desktop client that syncs your data in the first place. And it's written with wxpython.), but you felt compelled to write 513 chars about your ignorance and wild speculation ("Maybe in their earlier days blabla").
Then comparing apples to oranges "I use Ruby for light scripting" vs "widely deployed desktop app with users from the three major desktop systems (Windows, OS X, Linux)."
This kind of behavior is a serious annoyance in online discussions.
I'm sorry if I annoyed you, but there's really no need to be rude. It's a subject I never claimed to know a lot about, but it's also false to say that I don't know "anything" about it. I'm here to learn more, not to show off what I already know.
If you were actually here to contribute, you might give a concrete example of why Python is more cross-platform compatible than other interpreted languages (because someone built a better Windows GUI toolkit for it?), but if you just want to put down and feel smarter than someone you don't know, you're wasting your time and keystrokes.
The fact that you actually bothered to count how many characters I typed strongly suggests the latter.
Dropbox also have a desktop client that's written in python. Presumably with a slightly different UI layer and packaging method depending on the target OS, but with the underlying functionality shared.
Well that was pretty clearly stated at Pycon 2012. Someone asked Guido that question he answered pretty diplomatically that it was a "political decision" _but_ you could tell it was a issue he cared by the tone of his voice.
Speaking as an ex-Googler, when I left, Python was largely relegated to glue code, scripts, internal projects, and App Engine -- consumer-facing frontends were written in Java, and backends in C++. He probably wanted to move to a company where Python was more pervasive, and he felt like he could have more of an impact, given that he _is_ the BDFL.
+1. Google is a C/Java shop, and App Engine doesn't have a motivated team behind it (some App Engine apps make a lot of money for Google, but the GAE folks don't provide them with adequate support, much less external customers). When I stopped working on Google projects there were large parts of what would have been in the SDK provided by random teams in Creative Lab.
Python wasn't phased out of consumer-facing applications because it was never in. Google has a lot of machines, but those machines receive a lot of traffic. Efficiency matters, and byte-for-byte, cycle-for-cycle, Java is more efficient than Python.
Don't ask me why Google didn't throw lots of resources at making Python more efficient like they did with JS and V8. I often wonder that myself.
they did throw a significant amount of resources at python with the creation of unladen swallow. In the end i believe it was decided (due to GIL issues, and other language design choices in python) that it was never going to match up performance wise, so unladen swallow was canceled, and Google began to move away from python.
IMHO, Python would have been in a far better place if Guido and his team would have been getting paid to maintain and evolve Python, the language, rather than apps and platforms based on Python. I think in the early days at Google he was able to do so, later, appengine took most of his time.
Dropbox is still a startup - despite the substantial investments rounds - since it is still relying on external money (investments) to grow.
I agree this is true for small companies. However Dropbox is not a small company by most measures. Also pg's remarks about how you couldn't acquire Dropbox or Airbnb for (some large dollar amount I forget) lead me to believe Google won't be acquiring them.
I'd imagine Google wants to acquire them. However I doubt Drew Houston would go that route.