7,416 karma · joined October 23, 2009
Email: charles@codemix.com
I've been in this part of the market for a while (getting startups to launch). There are very few people who have that kind of money to drop on initial development, usually you're talking about 1/10 of that at most.
The companies that do have that kind of funds are not looking for an individual "rockstar", they're looking for a nice established company that gives them confidence and can be sued if things go wrong.
`new Foo` has simpler semantics than `Object.create(FooProto)` and therefore I believe it will always be faster. That performance gap can of course narrow, but I think `new` will always be the fastest. Happy to be proved wrong.
if (!(this instanceof User)) {
return new User(name, lastname);
}
I'm pointing out that this doesn't work if you extend the class.The point is - don't forget `new` because tricks like this will not save you, in fact this is arguably worse - you think you're getting a `Person` but you get a `User` with no immediate errors, at least if you forget `new` then you'll get an error straight away in strict mode.
The only way I'd make the first mistake is if I was unfamiliar with `your-class`'s API, so nothing can save me there.
JSHint would catch the second one.
`new Foo()` is faster because it can be compiled to more efficient code today and probably always will be. Your argument is a bit like the "given a sufficiently intelligent compiler" one, I don't care about what JS engines of the future might do, I care about my code's performance today.
var Person = User.extend({});
var person = Person();
person instanceof Person; // false!
person instanceof User; // trueThere are many reasons to keep on using `new`, the biggest one is probably performance, `new Foo` will always outperform `Object.create(FooProto)`.
Really though, this kind of article just grinds my gears. There are so few absolutes in software development, articles like:
"You should always X"
"Stop doing Y"
almost always really mean "I don't actually understand X or Y"Competitors like OrientDB use something that's nearly SQL but not quite, and it's the discrepancies between the two that catch you out. Arango's query language is pretty nice when you get used to it.
The one criticism I have of Arango is that they're doing a lot of wheel reinvention with foxx, when I think they'd be a lot better off leveraging more of the node ecosystem.
If you own a house in a nice quiet street, and someone buys the place next door and wants to turn it into an inn, you'd expect to be consulted about that, right? You'd presumably expect that if everyone else in the street also objects, then planning consent for that business should be denied. If your inn analogy holds, then AirBnB provides no such opportunity for consultation.
The problem of high ratios of short-term occupants destroying communities is well known. The canonical example in the UK is student lets - landlords buy up properties close to universities and let them to students, over time the long term residents are forced out, leading to more and more student housing. These areas attract crime and other social problems because the community is vacant. This is why many councils in the UK restrict the number of HMOs (Houses in Multiple Occupancy) in a given street or area, presumably this happens other places too.
There are good reasons for regulating something like AirBnB or Uber, and it will happen, it just takes lawmakers a little while to catch up.
If you put the effort in to learn it thoroughly, you'll be rewarded with an incredibly productive platform that is great not just for getting apps out of the door super quickly, but also provides a secure, scalable foundation which is easy to grow and maintain.
Codemix is a small, experienced team of 4 freelance developers who specialize in shipping high quality web & mobile apps quickly. We have some availability at the moment and are interested in working with startups or larger, established companies who need to bring their product to market without delay.
For a chat, email me at charles@codemix.com
you can also see our github page at https://github.com/codemix - we mostly work with PHP and Node.js
So, disregard the average user. Market this as a paid product which offers a superior web browsing experience for the technology connoisseur and the privacy concious. These people, on average, have a lot more money, are easier to sell this product to, and don't mind paying.
Another reason to just charge money for this is that this provides assurances about your income stream which should mean that you are less likely to consider anti-user practises in order to generate income at some point in future.
The kind of people who care enough about their web experience to install a new browser are the kind of people who won't mind parting with a few £$€ to do so.
To be profitable, free apps must target the broader market, but this is a relatively niche product. I don't think you'll get enough IAP fast enough to be sustainable.