Want to build a side business? buy a great domain name - <AUTHOR> https://www.deepsouthventures.com/build-a-side-business/ <comment><USER2> My mind works exactly the opposite way. If I see a domain like BikeTours.com, I immediately assume that the business is built primarily on the domain name, and the quality of the product or service is inferior. Hence I don't click it. But I assume the majority of internet users don't think this way, so it can be a profitable strategy.

Edit: Well, thinking about it, it's not always true, but at the very least I check out the other options too.

<comment><USER3> I laughed out loud at this example, because I run a site with (what I reckon to be) one of the best domain names for exactly that use-case:

[https://cycle.travel](https://cycle.travel)

<comment><USER4> Do you think having an unusual TLD (travel) is hurting you at all? If someone told an average person to go to "Cycle.travel", I'm not sure that they would understand that to be a web address.

<comment><USER5> From my experience, such an effect is generally far to small to be a deciding factor (in the beginning).

If you look at the traffic of most websites, very few visitors come directly to your website by entering the domain into the address bar (because visitors are far too lazy to type out an address). The biggest chunk normally comes from other websites directly linking to you (this includes search engines and social media sites), or paid advertising (if you do that).

<comment><USER6> As a kid I knew every one of my friends phone numbers. I couldn't tell you my nearest and dearest now because typing this kind of info manually is long gone.

<comment><USER7> I've had to enter in my wife's phone number for various things enough times I know it better than my own phone number now (Meijer mPerks alone I've done it probably 300 times). But outside of that, my own, and my parent's phone number, which has never changed, I don't know any phone numbers.

</comment></comment></comment></comment></comment></comment><comment><USER8> The best thing about coming up with and then buying a great domain name for your new business idea is that thinking of one uses so much creative and analytical energy, diverted from considering the business itself, and delivers such a dopamine hit on completing the purchase transaction, that you don't need to proceed any further with developing the idea whatsoever.

<comment><USER9> lol this perfectly explains why I have a collection of domain names. might as well be an idea log where you pay for each entry.

<comment><USER10> maybe it's synchronicity, the number 23. my favorite number and i thought yeah, 23bay! short and sweet and sounds like ebay.. that has to work.. but then what? ha. i let it expire, and it turned into a casino in china. it felt like i lost a child. eventually got it back and it feels good to just have it back even if it never does anything. a domain collection that aren't really that valuable but more like sentimental, too hard to let go, and it's strange.

</comment></comment></comment><comment><USER11> The advice is to buy descriptive domain names and build a business basing your decision "solely off the domain name" that you're able to find. His About page claims that he himself does this. But does he actually do that?

Of the examples he gave – ComputerCamp.com, ShippingSupply.com, KobeBeef.com, CameraBag.com, Pacifiers.com, ZoysiaGrass.com, SouthernCookbook.com, Ziplines.com, CannedHam.com, SexyBastard.com – every one of them except ShippingSupply is a parked domain, spam site, or fails to resolve. Since the article is from January 2017, it seems like the average price of $5388 that people paid at auction for the 9 unproductive sites has been wasted for the last 3+ years.

As far as I can tell, his business is buying and selling domain names. (ShippingSupply, although it looks real enough, does not belong to the author; he writes "sell shipping supplies [is] exactly what this buyer did".) I can believe that the author has a profitable business doing what he does (buying & selling domains), but the artilce does not convince me that _building_ a business around nice-sounding but arbitary domain names with no expertise in that business is a good idea. It doesn't seem like he's doing that.

<comment><USER12> author here. I sell onions on the internet. does that qualify? Check out my homepage for other developed domain projects.

<comment><USER13> And damn good onions to boot. I'm a very happy customer.

<comment><USER14> Just got this year's 10lb box about a week ago or so. He does old school postcard mailers to remind you the upcoming season is arriving. Nice way to cut through the noise. It worked on me.

<comment><USER12> many many thanks for your business, kovacs. Postcards FTW! -Peter

</comment></comment></comment></comment></comment><comment><USER15> I tried this with a domain. It's related to used beer kegs. The reason is because I was volunteering at a brewery, and one of the hottest commodities for small breweries is used kegs from bigger breweries that are replacing them. Most of the major breweries use keg management services and rent the kegs, which is overkill for smaller breweries, so owning kegs is important starting out.

Kegs are also sought after for the homebrewers market too; you can save a ton of money buying used, and they become available as people fall out of the hobby.

My plan was to either set up a market place or buy and resell kegs for a small profit. Even a bulletin board that just shows announcements for used keg sales would be helpful.

There are a few reasons I haven't pursued this. First, specifically for homebrewers, is gaining momentum from other marketplaces like Facebook, Craigslist, and local homebrew shops. For commercial kegs, these sales are usually announced word of mouth, and I am not well connected enough to be in the loop, and also, there is really no friction selling these kegs that a website could reduce. They "fly off the shelves". There are other issues too with the frequency these sales happen.

My point being, in a long winded way, is that buying a domain name and getting business ideas from it still requires business acumen, networking (which the author does mention), and a innate sense of the problem space and what desire there is for a web based solution. Just like every other way of sourcing business ideas.

<comment><USER16> > For commercial kegs, these sales are usually announced word of mouth, and I > am not well connected enough to be in the loop

I'd have thought if you had to be "in the loop" to know if something's for sale, it means there's a possible market for that knowledge, which a website can step in to provide.

</comment></comment><comment><USER17> HN trending expectations: how eBPF works

HN trending reality: How I make a zillion dollars a day with a yet another SEO/web scraping/reselling domains business

<comment><USER18> I still enjoy reading HN because every once in a while something good comes up. But you're right, most of the time this site is overrun by a lot of SEO types and folks who want a quick buck.

In my opinion, most people see a posting and go directly to the comments to see _what I should feel about this_

<comment><USER19> Option 1: I don't really care enough about this to read through the story and develop an opinion. I'm certainly never going to domain squat since I'm quite happy in my career anyway.

Option 2: Alright, well I can at least go get a brief overview of the prevailing sentiment through the comments.

There's nothing wrong with letting experts dictate your opinions on subjects you don't have even a minor interest in. Of course, that comes with the caveat that one must judiciously choose which subjects to do this with (thus our current political climate).

</comment></comment></comment><comment> david-cako This is awesome advice. Taking incremental steps towards what you want to do makes a big difference. If you already have a domain, hosting, and DNS set up, you've got something cool and tangible to work with.

I actually trust less descriptive domain names. When I see biketours.com, I more often expect blog spam and ads. When I see GoSojourn.com, I expect an actual business providing bike tours. It's also peculiar to me when I see local contractors with domains like MyCityElectrician.com putting "Denver Electrician" in big text and hiding their brand name. I recommend a branded domain name and relying on good page titles and descriptions for ads and SEO.

</comment><comment><USER20> I think this really overstates the importance of domain names.

Owning CameraBag.com isn't going to do anything for you until you have a competitive product to sell and getting that lined up is what you should be focusing your talents on.

Sure, it might make you look a little more impressive to the discerning consumer who actually reads the URLs. But such users probably also check what the competition offers anyway.

And with modern browsers with search suggestions and modern Google, owning the .com doesn't bring you many extra visitors, either.

So if you want a side business, create something people will want to pay for. Don't fret about the domain name, it hardly matters.

</comment><comment><USER21> I think this is a much better article about this from the same guy: [https://www.deepsouthventures.com/i-sell-onions-on-the- inter...](https://www.deepsouthventures.com/i-sell-onions-on-the-internet/)

<comment><USER12> thanks Alex (author here).. that domain article was one of my first, so I was (and still am) trying to find my writing voice. whatever that means.

<comment><USER22> Don't sweat it. A runaway hit like the onions piece is like catching lightning in a bottle. It's not really something you can plan and, so far, I haven't found a formula where you can reliably recreate it to any degree.

(I've had two posts do about a tenth as well on HN as your onions piece, both on different blogs of mine and that didn't result in follow-up posts on those blogs being similarly successful. So my opinion is somewhat informed by firsthand experience, fwiw.)

<comment><USER12> thanks.. just enjoy sharing this domain name world as I see so much opportunity there for small builders to compete with big corps.

<comment><USER22> Feel free to post some of your stuff to r/GigWorks. I'm the mod there and I also run r/ClothingStartups and I am always actively on the lookout for "tipping point" style ideas where a small thing makes a big difference and can be done as a microbusiness, which is smaller than a small business. Small business is typically defined as like 10 to 100 employees and I am looking at tiny teams of more like 1 to 5 people as my target audience.

I was also born and raised in Georgia, so I just loved your onions piece because I'm from the Deep South. For health reasons, I will never again live in the Deep South, so I like nostalgically visitating via internet from time to time.

I may, at some point, post some of your stuff myself on r/GigWorks, but I'm a one woman show here with too many irons in the fire, so lots of stuff either takes me forever to actually get around to or just never happens even though I would like to get to it. Sometimes, life just keeps getting in my way.

<comment><USER12> for your nostalgia, here's a video that the GA Dept of Ag just produced on our farm.. Aries (farm owner) is in vid (I'm not in this one).. notice the domain at the end : ) [https://www.youtube.com/watch?v=V0oNolfKfgc](https://www.youtube.com/watch?v=V0oNolfKfgc)

<comment><USER22> Thanks. It took me a bit to get to it, but I've watched it.

I am something of a fan of onions. They are good lung support, but can be somewhat hard on the gut. Vidalia's have always been my favorite onion because they are so mild, so they are easier on my touchy gut.

It's one of the reasons your article caught my eye.

Best of luck with your endeavors, both online (finding your writing voice) and off (selling onions, or whatever it is you do out in meat space).

</comment></comment></comment></comment></comment></comment></comment><comment><USER23> I love this article just because so many commenters hate it. I really like the super niche side-projects -- I ran an analytics site for minor league football, built with a couple of Ruby scripts and a free Netlify plan. Was featured on ESPN, famous NFL twitter accounts, and did a million pageviews in 2 months.

I licensed the data to a fantasy football site and it was starting to make money before the league shut down.

The stakes are so low that it's really worth giving it a go.

<comment><USER12> author here. It is fun to see the differing opinions on domain names.. very split audience. thanks for sharing.

<comment><USER23> Yeah I didn't do it "domain-first" but love the idea. Still own the domain: noextrapoints.com, seems good for a football related site.

Just bought "streamerjobs.com" for $13 inspired by your post. Maybe a job board for Twitch/YouTube people to hire video editors.

<comment><USER12> that's a good jobs domain. nice grab.

</comment></comment></comment></comment><comment><USER24> I thought "goSojourn.com" was a catchier domain name so I had to go back to browsing Facebook (Hacker News in this case).

<comment><USER25> Right, I felt a little insulted when he suggested me to go back browsing FB.

</comment></comment><comment><USER26> You don't need to bid up the price of existing .com domain names. Even in 2020 there are plenty of perfectly good ones that nobody has claimed yet!

All you need are two or three words that satisfy the following criteria:

1\. The words, when spoken, should be easy to spell.

2\. The words, when read, should be easy to pronounce in any English dialect.

3\. The words, when concatenated, should not create any ambiguity (a la expertsexchange.com)

A tool that generates these kinds of domains is available for your convenience at [https://startupname.website](https://startupname.website)

<comment><USER27> > [https://startupname.website](https://startupname.website)

The best one I got was roofpotato.com

Sell rooftop potato garden kits? I guess that's my life now...

<comment><USER28> Funnily enough I am growing rooftop potatoes right now, so I'm in the market.

<comment><USER27> Alright, I'll let you have it since you're already living the roof potato life.

</comment></comment></comment></comment><comment><USER29> This is an excellent roadmap (or the start of one at least) to build a nice side business with very little effort. People with a tech orientation, like the audience here, are VERY far removed from how most people use technology. So austincitytours.com turns you off? Me too. But the VAST majority of people are not like you. They click on the .COM that has the name/descriptor of what they want.

No, it isn't like it was 10 years ago where people would type the thing in and add ".com" BUt it's not that far off either. A LOT of traffic will gravitate to the trustworthy sounding .com

Additionally, as a guy in the lead gen business I can tell you that every business out there wants more demand. Finding partners to offer fulfillment takes almost no time at all.

The hardest part, perhaps the ONLY hard part of this whole model is getting traffic in the first place. As for me I don't spend any time at all on dropshipping or service fulfillment but rather on simply selling the leads. Leads are worth a LOT more money than many people realize.

</comment><comment><USER30> I own a bunch of domains but don't really follow the expired market...however the example expired domains in the post seem really expensive for a side project.

If I were looking to invest $5-$15k cash into marketing a random new side business and still needed an idea, it seems like it'd make more sense to follow the post's advice by watching the expired domains come through, then take the inspiration from, say, 'bakedbeans.com', but buy 'stevesbeans.com' for $7.95 and put the remaining cash into performance marketing.

<comment><USER31> > domains in the post seem really expensive for a side project.

It's probably worth considering that the domain is an asset you can resell. Plus, an auction should, in theory, limit your potential losses to amount you outbid the previous winner by, since they theoretically would buy it. The math is probably a little more complicated but you get the idea.

<comment><USER32> > It's probably worth considering that the domain is an asset you can resell

Yes this is true. Also, I've met one of the top domainers of all time who got in early and one of the things he told me was that valuations have gone up considerably, in good part, due to the interest by foreign entities who want the .com for its prestige and to be able to tap into the US market, and/or be the sole branded domain for their worldwide presence.

</comment></comment></comment><comment><USER33> That's the worst advice ever. Domain parking is a business and if you specualte randomly you are probably going to lose money.

<comment><USER34> typical HN comment. meanwhile the author is doing pretty well for himself doing just that.

<comment><USER35> This is a guy who accidentally spent 4 figures on a domain he didn't want. And it was no big deal to him because he knew he'd be able to break even on it due to his expertise

He's an expert domain reseller. Novices would get burned.

<comment><USER36> I've been in the room with people spending well over $10,000 on domains. It's crazy. I could never guess that actually happened until I saw it myself.

I thought those prices were just absurd fantasy

<comment><USER37> It's just a business expense, right? If you're actually going to be building a business on a domain name, it doesn't necessarily make sense to cheap out, just like any other business expense.

<comment><USER36> It's not about cheapening out, it's an exorbitant amount without much real customer value. "news.ycombinator.com" apparently works just as well as if this was "techtalk.com" or "bizchat.com" or whatever.

Yahoo isn't about cowboys, Amazon isn't about rainforests, uber isn't a firm from Germany, Google isn't about mathematics... It really doesn't seem to be correlated with business success.

Any made up name will do. Blorpblip, flipturf, dundrill, yepyip, nodnod, whatever. Those only look weird because it's your first time seeing it. Substance comes before brand

The meaning is assigned by the business praxis, not the other way around.

<comment><USER38> Does it though? There's little doubt in my mind that this site would have far greater reach (the actual desirability of that aside) if it were located at hackernews.com. I have no idea what the current owner would want for it but I'm sure it's substantial and rightfully so.

<comment><USER36> That's only because of naming cadence.

If they really cared they could come up with something. There's countless clones and proxy sites with closer and shorter names but they don't have large audiences because having a 4 (cuil) versus a 10 letter domain (duckdudckgo) doesn't actually matter - only what you put there.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER37> > _Read this story about Warren Royal of Bobbleheads.com_

Cool, are there any other stories about lottery winners I should read before I buy my scratch-offs?

<comment><USER39> Why is Bobbleheads a lottery win? Buy a domain for something people like to buy. Find a supplier to manufacture them. Build a reputation with good product and service. Has to be as far from a lottery winner as exists.

</comment></comment><comment><USER40> I sort of did this the other day, I've got an idea, I think it's a good one, but it's inchoate. I got a domain name (.live because it was on sale! $6.99!) and spun up a $5/month VM on digital ocean, running Caddy server (https FTW!) to present a bare landing page with a little animated network eyecandy.

The point is, _it 's so motivating!_ I feel like a real participant now! I'm on the Internet y'all!

<comment><USER41> If you sign up for a free Cloudflare account you get HTTPS, and you can point it at a Github Pages page for FREEEEE :-)

<comment><USER40> Cheers! Thanks for the tip.

They also let you serve a static site over IPFS from your domain with a DNSlink record, also for free. :-)

<comment><USER10> there's a lot of value for $5 though. many, many things you can do with an ubuntu droplet. digital ocean has excellent tutorials for a lot of them too. it's fun.

<comment><USER40> Yeah, this. :-)

</comment></comment></comment></comment></comment><comment><USER42> And yet, I still didn't make a single dime from [http://butt.ventures](http://butt.ventures)

<comment><USER43> The author of the article would probably scold you because it's not trustworthy. You lack the .com

<comment><USER44> butt ventures Dot Com

</comment></comment></comment><comment><USER45> Just a reminder that the type of person who comments on HN is probably not that representative of the average consumer.

I don't know if the approach outlined in this article is a good one or not, but I wouldn't be even slightly surprised to find out that the way the typical person searches for things, selects results, evaluates credibility, and takes action, bears virtually no resemblance to how many of us here on HN approach the same things. So take all the withering criticism of this article and approach with a huge grain of salt. I've made many hundreds of thousands of dollars online with methods that would never work with many HN users.

</comment><comment><USER46> I don't think I would have started rsync.net if the domain rsync.net had not been available.

It sounds ridiculous - a completely artificial stumbling block that would be easily hurdled ... and yet ... the _entire basis of the business_ was a cloud storage platform that was so basic you could understand exactly how it worked just by seeing the domain name.

As an aside, I asked for, and received, explicit permission from the maintainers of the 'rsync' tool before launching and using the domain name ...

</comment><comment><USER47> So many domain names I bought and never used. Haha the idea seems so great at the time. I suppose you just have to go about trying different things until you start to have some traction. it's just important to recognize that it's easy to fall into the trap of thinking something is going to be super simple, and then starting to execute without any sort of detailed plan. The result ... Wasted time and money

<comment><USER48> Yeah, but it's a relatively low investment and you often just need one idea that works to pay for all the crappy ones

<comment><USER49> Or just keep telling yourself that

</comment></comment></comment><comment><USER50> > You chose BikeTours.com didn't you? You better have.

If in a hurry, I am basing my decision on search engine rich snippet. If there is a lump sum in the game - I'll check both sites.

> If you didn't, you can close this browser tab

Thank you for saving my time :)

</comment><comment><USER51> Bit of a tangential rant ahead...

> Shhhhh shhhh. It's ok. Sure, some domains were. And the buyers aren't > scumbags. If someone buys real estate dirt and won't sell to you for pennies > 10 years later, do you suck thumb and whine? Nah. Same deal here. While you > were binge watching Walker, Texas Ranger in 1995, these folks were spending > hours faxing through domain name orders & risking their own cash on a new > thing called the Internet. They're just investors, and smart ones at that.

Every asshole has a way to rationalize his or her behavior. Scalpers, thieves, scammers, et. al. justify their toxic behavior exactly the same way. Being a saavy business person doesn't make you not a piece of shit. I see real estate and come to the exact opposite conclusion of what's written above. It _is_ shitty that you get to bleed money from me just because you showed up 50 years earlier with $30k before I was even born. How the fuck is that business accumen? It's profiting off of your position against people who never had the same opportunity. I would call it predatory.

<comment><USER52> Isn't the same true of Bitcoin or much of everything else?

<comment><USER51> I guess it applies to almost anything where arriving first gives you a significant advantage over those arriving later, and you use that advantage to extract value from those who have little or no choice but to follow you.

</comment></comment></comment><comment><USER53> "That's what I'm trying to introduce – that domains can be viewed as a trustworthy asset."

Totally agree with this, back in print days great typography featuring ample white-space was a signal to the consumer of a high end / luxury brand. Perhaps the unstated logic is we make so much money that we can spend much of it on empty space ina fancy magazine. That is a kind of gravitas in design which implies success which implies authority / social confirmation. A more desirable domain name can be seen in the same light, "ohh they must have spent a lot for that name well can't be some fly-by night operation." Cost limits creating exclusions serve as signals of authority / reliability / success etc. all over the place, think of the country club, it's got a very high membership fee, if you're there you must be wealthy and important, and imagine the networking. That is the logic anyway.

</comment><comment><USER54> What is a great domain name? Decades ago it was essential to have an e in your name (eBay et al), then it was cute to replace that e with i, but the whole while the golden rule was to definitely whatever you do, do not use a name out of the dictionary, to make it easier for consumers to identify your product and to save you legal headaches.

Nowadays, companies seem to love having a real dictionary name. Lemonade: refers to the drink, the renters insurance startup, and a chain restaurant in my town, and google couldn't tell you which one I want at a particular time, because Lemonade is a terrible name for your company. Pretty much any piece of software or company with an English word for a name is immediately forgettable in my mind, and impossible to follow up with due to piss poor SEO on the 2020 internet.

<comment><USER49> >Decades ago it was essential to have an e in your name

howabout turbobiking2000.com

<comment><USER55> 2000 is the most futuristic number, as we know.

</comment></comment></comment><comment><USER56> All I can say is that I wouldn't go into this business today without either lots of automation (someone a while back had a script that flagged single- dictionary-word dot-coms as they expired) or some statistics-backed way of identifying keywords likely to pay off down the road.

</comment><comment><USER57> For anyone interested, or likes looking at recently deleted/expired domains, Pool.com has an interface to find these: [https://www.pool.com/deletingdomains.aspx?ia=DomainsDeleting...](https://www.pool.com/deletingdomains.aspx?ia=DomainsDeletingToday)

I'm not in the business, but occasionally browse to see if any "local" domains pique my interest. You'd be surprised how many people "let" their domains expire - if I was a less than ethical hacker, I'd be able to hold many local organizations and businesses hostage (without infringing on trademarks).

<comment><USER58> What a shitty thing to suggest doing—especially at this time.

<comment><USER59> The author acknowledges that it is unethical.

<comment><USER57> Comment author here: Yeah I don't get it either, I clearly said it was unethical. Oh well.

</comment></comment></comment></comment><comment><USER60> For those who have bought domains but haven't had much time to develop them (like me..)

[https://www.newsy.co](https://www.newsy.co)

It's something I've been working on to scratch my own itch.

<comment><USER43> Isn't that mostly copyright infringement? From what I understand, it does automated copying of articles and images from other blogs?

</comment></comment><comment><USER61> I run a ramen profitable SaaS and did this. I don't really have a comparable but I think it helped my product gain traction.

The problem is, the sexy keyword I used was an OSS product (my product is a wrapper over it) that was discontinued over the years. My domain+brand still references this product though I have moved over to the "modern" equivalent OSS version.

So now, I think my domain name is a liability, implying out of date/obsolete technology.

I do also own the equivalent domain name for the new OSS software, will use it for a v2. So if it's an industry you care about, keep up to date :)

</comment><comment><USER43> While everyone in here seems to disagree, I believe that a good domain name can be worth a lot of money, if it comes with links and traffic.

For example, purchasing a domain to market my audio app which has 100+ inbound links and 500+ unique visitors per day from various blogs for relevant keywords.

If you convert 10% at $9.99, that traffic is worth roughly $15k monthly to you. But it might have been worth significantly less to the previous owner, who only used adwords and didn't sell his own product.

<comment><USER62> Can you really convert 10% of that sort of traffic though? I would have thought 1% would be ambitious. Quite prepared to be wrong though - I suppose if the relevant keywords are really strong then maybe it would perform higher.

<comment><USER43> It's a niche product and people who search for those keywords usually already know what it is and that they need it.

That's the beauty of organic search traffic.

When I did paid ads, in the other hand, the best I remember was 2% click rate, then 20% trial download, then 10% purchase. At those percentages, a $2 cpm will cost me $5 per acquisition for a $9.99 app, so I have little wriggle room before it becomes cash flow negative.

<comment><USER62> Interesting! How did you find a relevant domain with backlinks that were going to work for you? This is something I've looked into in the past, but discounted as I thought it wouldn't work, so would love to know more about how you did it...

</comment></comment></comment></comment><comment><USER63> Reminded me of the recent corp.com story that Microsoft eventually ended up paying for to a well known domain gatherer. [https://krebsonsecurity.com/2020/02/dangerous-domain-corp- co...](https://krebsonsecurity.com/2020/02/dangerous-domain-corp-com-goes-up- for-sale/)

</comment><comment><USER64> I tried to register a really cool name. Suddenly it was registered after all. Funny how that goes... Thought me to never trust a domain name registrar again. Could I have sued them? Perhaps, but at the time that was way too economically risky a prospect for me to undertake, while most likely having to pay court costs even if I won.

<comment><USER65> > _I tried to register a really cool name. Suddenly it was registered after > all. Funny how that goes... Thought me to never trust a domain name > registrar again._

Let me guess… GoDaddy?

<comment><USER32> Yes, don't search for domains at GoDaddy unless you are going to buy it right away if available.

</comment></comment></comment><comment><USER66> "That's what I'm trying to introduce – that domains can be viewed as a trustworthy asset."

To this point: My name is Josh and I'm from Minnesota (abbreviated MN in the states), and I have josh.mn. People seem to think I'm a big deal.

I'm not.

</comment><comment><USER67> On the one hand it is harder and harder to find a decent dot com domain name, on the other hand I see some crazy prices that make absolutely no sense. Even if you choose to buy a name on the second market why pay these ridiculous prices?

[https://www.healthinsurance.com](https://www.healthinsurance.com) sold for over 8M bucks, is the difference between this name and something like [https://insurancemavens.com](https://insurancemavens.com) (for sale @ $395) worth 8 million?

<comment><USER68> It comes with the expectation that the average user is dumb enough to think that by going on a "premium domain name" that it, therefor, makes the product better and marketability even more attractive.

It's stupid.

<comment><USER54> Yet it works, because someone's grandma will always type healthinsurance.com and get phished before they find the actual website for medicaid.

</comment></comment></comment><comment><USER69> This article is from 2017.

</comment><comment><USER70> After seeing the prices that these "premium" domain fetch auctions for a side project it reminds me of a quote: If you want to become rich in the music business, sell instruments.

Domain squatters are making a killing by selling generic "premium" domains to startups that odds are will not get off the ground. And then the process starts all over again with the domains cycling back through the expiration -> squatter -> auction process.

</comment><comment><USER71> This seem smart but I have a bad feeling about the success rate. The article seem to imply a lot of survivorship bias by only talking about success.

</comment><comment><USER72> There's something gross about DNS land grabs.

</comment><comment><USER73> Something that came up with our team the other day, somewhat related. How do you guys feel about .net when the .com is unavailable?

</comment><comment><USER74> tbh this is far from the reality, not everyone is capable of selecting industries at random and making turning it into a profitable online storefront, in fact ide go so far as to say that a physical storefront is easier these days. Have read the vidalia onion story, its great but the fact of the matter is without an immense amount of knowledge on things like web marketing and SEO, you are going nowhere. I use to own the domain name fixmyfreecreditreport.com, we were piggy backing off of myfreecreditreport.com, driving traffic was still a massive undertaking, and then trying to get those visitors to convert into customers for lead generation, yikes. Shortly after that owned groomzter.com, still own this but shut it down after 6 months for the same reason, driving traffic. Want to rank for that common of a keyword? You had better be a fucking ninja at SEO, or have someone working for you that is.

</comment><comment><USER75> if this idea has merit (ironically enough) it means that ideas themselves are even weaker than one might expect in terms of startup outcomes.

however, i'm skeptical. i think there is a need for _some_ early initial conditions for startup idea conceptualization that matter other than drawing a name out of a hat. perhaps its just a multiplier and pure execution wizardry can get you through anything by just doing lean startup methods. but i can't get past the idea that the best companies grow out of a seed that originates in deep domain knowledge, but then lets go of assumptions from that point and iterates with users from there. you're not gonna get that seed by just picking up a domain randomly. it feels to me like this is a worthy concept though for taking the idea of lean startups to its logical extent - if nothing else, respect the 'purity' of it conceptually.

</comment><comment><USER76> Reminds me of when people say 'you don't need fancy equipment to make music'. Sure, you don't _need_ it, but a new fancy synthesizer or guitar is investing in your own ability to make art. More than the instrument itself, knowing I made an investment in myself helps motivate me I think.

<comment><USER77> A tool is a tool, domain name can be a marketing tool, if you can establish a trademark that is

</comment></comment><comment><USER78> I think that you are at least 20 years late for building a real domain business. I have been into in that game for more than 15 years and yes, it is fun, but it's not a (profitable) business. And if you want to make it profitable, it's not even close to a sidebusiness.

</comment><comment><USER79> This feels like the domainers fallacy.

If this was true, then search.com would be more important than google.com right?

</comment><comment><USER80> We've gotten a lot of flack over our domain name, from everyone except our customers. [https://terusama.com](https://terusama.com).

Has anybody ever experimented with how company names relate to clicks in email campaigns?

<comment><USER81> Haha, it's a good point about customers not caring about that stuff.

Side note though, the stock video at the bottom of your homepage made me irrationally upset at how pointless it was.

</comment></comment><comment><USER82> My problem is that I go through spree's which I was fine so you're later when Go Daddy tries to hit me with a $500 bill.

That's how I lost: Porcelain.com Getreviewed.com Helpmebreathe.com And a few others well hundreds of others but the stand out

</comment><comment><USER83> Reminds me of the infamous milk.com squatter

dishing out the _fu_ while waiting for the _fu money_ :

[http://milk.com/value/](http://milk.com/value/)

</comment><comment><USER84> Also, pick a value prop that you enjoy fulfilling. You'll do better at it. My current project has "Fast" in the name. Building fast software is always fun.

</comment><comment><USER85> This article is very cultural-contextual. Indians are more likely to click on .in because it's more likely to have Indian languages supported, etc.

</comment><comment><USER86> What about for non dot com domains, any advice?

</comment><comment><USER87> Am I the only one who tried to click all the underlined sentences, which look very much like a link?

<comment><USER12> author here.. I need to fix that.. working on it.

</comment></comment><comment><USER88> I don't expect much from bland domain names like keyword.com

Which one would you visit? search.com Or google.com

</comment><comment><USER89> I'm the owner of BitHub.com. Who wants to help to make a side-business out of it? :)

<comment><USER90> I could send you some bits

<comment><USER89> Feel free to reach out, would love to chat.

</comment></comment></comment><comment><USER91> Not sure what is the real business? If you want to start a new business, you got an idea and then try to find a domain name. Or random like the b head story, find a name and start a business. Or ... initially that is what I thought, buy some domain name and then re-sell it once success (but seems odd, it is very old squatter hat).

What is it?

</comment><comment><USER77> Sounds like a solution in search of a problem

</comment><comment><USER92> I hear jet.com might soon be available.

<comment><USER93> I think I might start an airplane brokerage.

</comment></comment><comment><USER94> I feel attacked! I was scrolling HN, not Facebook!

</comment><comment><USER95> dongtales.land

</comment><comment><USER96> Isn't this the basis of domain squatting? Buy up great domain names and sell it.

</comment><comment><USER97> This article sucks. I think author is brain damaged.

</comment><comment><USER98> Alright y'all I bought cum.pizza where's my million dollars

</comment><comment><USER99> There is something about this guy's writing that really irritates me. He writes like he is condescending to millenials by emulating their stereotypical speech patterns. It's hyper-conversational.

</comment><comment><USER100> Domain name is one of the "trends" where being early literally pays (the other ones are crypto and making fart apps for iOS).

(Un)fortunately, what's left are ridiculouslylongnames.com that somehow still sells for a few hundred a pop. The long tail.

I'm not a fan of that. Instead, when .id was open for public, I immediately acquired generic names such as every.id, awesome.id, printed.id, even ultimate.id (notice a pattern?).

I own a few hundred in total—managing them is a headache. I've lost a handful of really good names because I forgot to renew (last-minute renewals due to limited budget and procrastination). Also, sometimes I wonder about the performance of my assets, and whether I'm profitable.

I'm building an app, Axtiva, to help manage domain names. It's not a unicorn idea, but I'm scratching my own itch. If you're in a similar situation, take a lot at [https://s.id/axtiva-android-test](https://s.id/axtiva-android-test) or just put your email in [https://www.producthunt.com/upcoming/axtiva](https://www.producthunt.com/upcoming/axtiva) so I can update you when it's launched in iOS (it's a Flutter app).

<comment><USER101> Domain squatters are the worst</comment></comment>


Seeking an Objective Test for Attention Disorder - <AUTHOR> http://www.nytimes.com/2010/06/01/health/01attention.html

<comment><AUTHOR> In a book I read by Russell Barkley, one of the doyens of ADHD research, he said that if screening questionnaires were boiled down to just one question, the best question to ask would be "Are you easily distracted?" That question goes a long way toward identifying children or adults who have issues with attention control. He says multiple question screening questionnaires are still more reliable, but that one question about ease of distraction has enough sensitivity and specificity

<http://en.wikipedia.org/wiki/Sensitivity_and_specificity>

to be useful for brief screening.

What I find interesting, as a Baby Boomer, is how much the paradigm has changed. When I was a kid, only children who were "hyperactive" were considered to have a problem. People who had trouble concentrating were not considered to have a psychological [after edit: or medical] issue, and of course in those days it was thought that few or no adults had any such issue [after edit: as "hyperactivity" or "attention deficit."] There does seem to have be evidence that many people grow out of either the hyperactive or inattentive type of ADD/ADHD, and that impulse control and attention focus are learnable, but apparently they are more learnable for some people than for others under matched training conditions. The medical interventions do appear to be helpful in their own right.

<comment><USER2> "What I find interesting, as a Baby Boomer, is how much the paradigm has changed. When I was a kid, only children who were "hyperactive" were considered to have a problem. People who had trouble concentrating were not considered to have a psychological issue, and of course in those days it was thought that few or no adults had any such issue."

More than likely when you were growing up, homosexuality _was_ considered a mental illness. We've learned a lot since then. :-)

"There does seem to have be evidence that many people grow out of either the hyperactive or inattentive type of ADD/ADHD, and that impulse control and attention focus are learnable, but apparently they are more learnable for some people than for others under matched training conditions."

You don't grow out of bonafide ADHD. It's with you for life much like OCD or bipolar disorder. You can learn to cope with it better, but you can't really make it go away (even with drugs though they help a lot).

</comment></comment><comment><USER3> Tests for AD(H)D focus on 2 different aspects: attention and hyperactivity/impulsiveness. Key to any diagnosis is not the occurrence of individual symptoms, but how many you have in each category, the degree to which you have them, whether they appear in different settings, for longer than 6 months and they are actually life impairing. Simply being forgetful/distracted/dyslexic/argumentative etc by itself isn't a clear cut sign that you have AD(H)D, as they may have entirely different causes.

Slightly unrelated, but if anyone is interested in reading more about the topic, Edward Hallowell's 1994 book Driven to Distraction is a seminal book on the topic and includes some of the classic signs used to analyze the condition.

<http://en.wikipedia.org/wiki/Driven_to_Distraction>

His 2005 follow-up Delivered from Distraction, focuses on how to make the most out of it if you have it and harness your strengths (creativity, charisma, energy, intelligence).

</comment><comment><USER2> > "It's essentially a dull, boring task," he said of the Quotient system, "so > do you want to medicate your child to pay attention to dull, boring tasks?"

Absolutely. Real life isn't always fun and games. Of course, medication won't make your child enjoy those dull, boring tasks. But it will at least make them capabale of paying attention to them.

</comment><comment><USER4> This is just my personal experience with friends who had add. My previous 2 roommates at two different places were taking ADD pills. Somehow after their pills ran out they kept complaining how they're not gonna be able to do their homework, study, etc, yet they were able to sit and play complicated computer games for hours on end.

<comment><USER5> That's not surprising, since (despite the name) ADD doesn't imply an inability to focus at all times. Those with legitimate ADD have an unusually hard time directing maintaining focus except under highly stimulating conditions. Complicated computer games are one of the few things that an ADD person is likely to maintain focus with.

That's not to say that your roommates cases were legitimate. They may not have been. But your description isn't necessarily evidence of a mis-diagnosis.

</comment></comment><comment><USER6> tl; dnr

Just kidding. In reality, this is a very helpful read. I'm wondering whether I have an attentional disorder myself, and many of the same questions the author closes with are my questions.

</comment><comment><USER7> So will dissenters now say that we are just treating people for the test and not for real life?

<comment><USER6> That's exactly what the dissenter in the article is asking.</comment></comment>


Python is not a great programming language - <AUTHOR> https://gist.github.com/RobertAKARobin/a1cba47d62c009a378121398cc5477ea <comment><USER2> > a big part of my frustration comes from having a JavaScript background

Yeah, I thought so when I was reading the list of "problems". In fact, many of those are _features_ (e.g. lists & tuples being different, list comprehensions, lazy evaluation, distinction between maps/dicts and objects, ...) but the author doesn't actually understand them. I hate to sound so negative, I guess I just didn't realize how bad a programmer knowing (only/mainly) JavaScript causes you to be.

<comment><USER3> There's some annoyances that have accumulated in python, like the inheritance patterns and too many underscored things. Decorators are kinda weird, too.

I think Python is pretty awesome, but to pretend that it's super clean is a bit of a stretch.

(a,) for a single-elem tuple-- avoiding colliding with (a) as a paren'd expression-- is wonky, too.

<comment><USER4> The tuple notation is one of those places where the obvious way is a distraction. A non-empty tuple doesn't need the ()s - it's the "," which makes the tuple! The following two are equivalent:

      x = 1,
      x = (1,)

Of course, then there's no way to express the empty tuple using commas, which is where () comes in.

Using (a,) is the belts-and-suspenders way of saying "this is a 1 element tuple".

<comment><USER3> Which is just further elaboration on the syntax being excessively special cased.

<comment><USER4> Oh, agreed. Just wanted to point out that I think the transition from "()" to "a," is the underlying problem, not from "(a)" to "(a,)"

</comment></comment></comment></comment></comment><comment><USER5> Part of the problem here is clearly this person is mapping JavaScript idioms to python; in particular "Needing to put dict property names `{'in': 'quotes'}": these aren't object _properties_ , these are keys in a map, and they can be and often are variables themselves, (also, can be any hashable type, not just strings) and I don't see how that can detract from the 'greatness' of python.

Also "foo['bar'] returns a KeyError", then saying sometimes this is resolved by "getattr(foo, 'bar', None)" \-- the split between attributes and items are one of the best things about python.

I don't know why list comprehensions are "magic syntax", and you can't complain about having to type list(map(...)) and then complain that you don't like list comprehensions!

"You have to cast your data back to a list/tuple after using enumerate() and map()." \-- I don't know what that means

"Different syntaxes for lists and tuples." \-- Again, what? They're different types!

How is r'a\nd' less "goofy" than String.raw`a\nd` in JS or any other language with prefixed strings?

Python is clearly not for everyone nor for every problem, but in my opinion it is a great programming language.

<comment><USER6> > "Different syntaxes for lists and tuples." \-- Again, what? They're > different types!

Lists and tuples have different syntax in a weird and surprising way. List syntax is straightforward, just square brackets and commas. Tuple syntax pretends to be list syntax with parentheses but it's actually only about commas except when it isn't.

Typically you write `(a, b)`, but the parentheses are only for precedence, and can be left out if it's unambiguous: `a, b`. You can write a 1-list as `[a]`, but a 1-tuple is `(a,)` because `(a)` is just `a`. An empty tuple on the other hand is `()`, without any commas, and with parentheses doing something other than precedence. It's very ugly.

I can't think of a better way to fit it into the rest of the syntax but I still count it as a flaw.

<comment><USER7> It's the one of those common situations where there's no perfect solution, so one from a number of suboptimal ones needs to be chosen. This rubs random folks in random ways, and is endemic to language design. Just try to design one without no such compromise.

In this case the problem stems from the overloading of parentheses. There aren't any more paired delimiters in ascii available unfortunately. Perhaps t[] could have been chosen, but as you see it isn't exactly elegant either.

</comment></comment></comment><comment><USER8> These all just seem related to syntax, not actual program structure or capabilities. The only program structure thing I see is list comprehensions, which is one of Python's great strengths. Ironically they say Ruby is more pleasant to write, when Ruby has the deepest structural flaws of any dynamic programming language.

<comment><USER9> I've always been super happy using Ruby. Never had any experiences that would cause me to label it in the way that you have. However, I am interested to know what those flaws are. Could you elaborate?

<comment><USER10> Disclaimer: I do ruby for my day job, and python for fun Disclaimer 2: I don't hate ruby, despite all these criticisms. If I had to pick a worst dynamic language it would be PHP.

Things I don't like about ruby: \- two string types, symbol and string, with string being the mutable by default one.

This means given a random thing back from an api, you don't know whether to do thing[:id], thing["id"], or thing.id

This has been acknowledged as a pain point by Matz, which is why in ruby 3 strings will be immutable by default.

\- Simultaneously too many names for things and not enough.

Is it .length or .size or .capacity (probably not capacity)? is_a?, kind_of?, or instance_of?? Why can I do .select or .keep_if but not .filter?

\- Too many function types.

Do you want a method, a block, a proc, or a lambda? There are subtle differences between each, so choose wisely. I'll note that python suffers from this too (method, function, lambda, comprehension).

\- Too much emphasis on magic

Novice rubyists get frequently bitten by all the advanced (and very hard to google) ruby concepts. How do you know what arr.map(&:id) is without already knowing that it's calling symbol.to_proc? How about $1 $? $! (if you know what all these do, you're a better rubyist than I am).

Since the author of the referenced post criticizes django for being too magical, try rails. In addition to the names of files mattering a ton, there's the routes DSL, the migrations DSL (which is not well specified in the guides), and ActiveSupport, which you only realize you're using when it's gone.

\- Horrible error messages

undefined method :[] for nil:NilClass (when you try to get something out of a hash and it's nil) cannot convert Symbol into Integer (this is on an array being returned where a hash is expected) Also, if you get a stack trace, it's completely inscrutable. Python's stack traces (at least ipython's) show you both the line number and the line in question (often with context).

</comment></comment></comment><comment><USER11> Something not mentioned in list that I had never considered until a conversation last year: meaningful whitespace is biased towards sighted programmers. According to a blind acquaintance, it is much easier to keep track of opening and closing parentheses and braces. Meaningful whitespace forces blind programmers to always check the number of tabs at the beginning of each line to make sure scope hasn't changed.

<comment><USER12> Couldn't whatever tool they use just apply a transformation from indentation change to brace?

</comment></comment><comment><USER13> This is so surface level it's not even worth addressing

</comment><comment><USER14> > The syntax for classical inheritance. Half of each Django app is > super().__init__( _args,_ *kwargs)

Care to show proof? I don't see this a lot.

The code of the official Django site for example has 8 occurences: [https://github.com/django/djangoproject.com/search?q=super+_...](https://github.com/django/djangoproject.com/search?q=super+__init__&unscoped_q=super+__init__)

</comment><comment><USER15> > you have to do foo.get('bar')... or in some cases getattr(foo, 'bar', None)

This is a mistake based on thinking in Javascript: in JS the index operator is effectively the same as the dot operator, for example foo["bar"] == foo.bar. In Python those are different. [] corresponds to get in dicts, and . corresponds to getattr in objects.

My personal biggest gripe with Python is that there isn't a better story for typing as I'm spoiled by TypeScript and static languages that have a better development experience and prevent certain classes of mistakes.

<comment><USER16> How about post 3.5 type hints?

<comment><USER15> Every time I mention typing in Python, people point out the existence of type hints and type checkers. However, I've yet to be able to meaningfully use one in practice. I have used MyPy but it didn't offer nearly as much benefit as say, TypeScript, and brought problems of its own. There's been some work done but for example, Django middleware is problematic here. A lot of Pythonic code would be extremely challenging to actually cover with robust typechecking.

Not to mention, a lot of software treats type hints very differently. PyCharm is able to do powerful inference that MyPy can't do.

</comment></comment></comment><comment><USER17> I /feel/ like this gist is largely on the money, and also uninteresting at the same time. All languages suck, and often suck in different ways for different users. We just have to pick the one that is working best at the time, and that we're best at working with.

I will say that I do like the act of writing a pro and con list for a language or tool though(which is why I read the linked doc), and I often push co- workers to do so when they're suggesting things. Sometimes it shakes a bad choice out just with the simple act of jotting down a 5-point list.

Unless, of course, there actually is an ideal language out there. In which case I retract my point ;)

<comment><USER18> There is, and it starts with L. (Lua, of course.)

</comment></comment><comment><USER19> There are plenty of things about Python that are not good, and only two are touched on in this list (the cumbersome double-underscore syntax and "magic methods" in general, although the author clearly has experienced python mainly through Django, which has other problems). The rest read like someone who doesn't really know the language that well and hasn't a lot of experience in general.

</comment><comment><USER20> TLDR: if you're a new programmer, don't take this seriously.

This person clearly doesn't understand programming languages so well. Sorry to make this response an "ad hominem" one, I should revoke the claims. But it's impossible if they don't understand basic concepts of programming languages.

For example, complaining that a dictionary key must be place in quotes. It's not that "the key needs quotes", but that you're using "a string" as a key. In fact in Python, you can use any immutable object as a key (tuples, for example). They clearly come from Javascript, Python works differently (and arguably better), and they're complaining that it doesn't work the way they'd like it to work.

Then complaining about list comprehensions as a "weirdo" thing. Clearly not understanding the functional paradigm and the beauty of expressions (see Smalltalk for the ultimate example of beauty and expressiveness).

<comment><USER21> > any immutable object as a key

Any hashable object, technically. Especially with custom objects, the two (immutability and hashability) don't necessarily have to overlap, although it's often a bad idea to have hashable, mutable objects

<comment><USER22> Mutable objects can't be hashed right?

<comment><USER23> As the comment you responded to says: An object can be mutable and hashable. E.g. any custom class by default has mutable and hashable instances.

<comment><USER22> How can you get both mutable and hashable instances at the same time?

<comment><USER23> the only requirement on a hashable instance is that it implements a proper __hash__ function. The default implementation in CPython returns the address of the memory the object is stored at, so all instances are considered unique, values play no role at all.

</comment></comment></comment></comment></comment></comment><comment><USER24> I think I agree.

Here are a couple of more, from someone who has worked for years in a number of languages:

\- few limitations means you can easily make a serious mess, which means you are more dependent on good programmers to avoid the mess.

\- lack of typing information isn't "free solo" hard but it certainly makes life a lot less pleasant.

<comment><USER17> > lack of typing information isn't "free solo" hard but it certainly makes > life a lot less pleasant.

One of the projects I work on has switched to full type hinting along with heavy mypy¹ usage, and it has become an absolute pleasure to work with. Along with hypothesis², I can't recommend mypy enough. It must be said that retrofitting either to an existing project is a _lot_ of work though.

1\. [http://www.mypy-lang.org/](http://www.mypy-lang.org/) 2\. [https://github.com/HypothesisWorks/hypothesis](https://github.com/HypothesisWorks/hypothesis)

<comment><USER25> What I can't reconcile with myself is, if I'm going to add type hinting in Python, why not use a language where my efforts of adding type hints result in performance gains? I get why it's nice for a team, but it seems like a lot of work for half the potential benefit of a typed language.

<comment><USER26> I think that sort of thing is coming, with e.g. `mypyc` that compiles typed Python into C.

</comment></comment></comment></comment><comment><USER27> It doesn't matter about its quirks. The most important thing nowadays is that it's reached critical mass. We're at the point where even non-developers can now cobble together a bit of python code to do simple things to make their jobs easier. This means it's here forever, IMO.

<comment><USER28> I remember our salesmen back in 90's cobbling together some Visual Basic or whatever it was called. So where it is now?

<comment><USER29> Has the same happened to Python yet? No? So bookmark this thread, and come back in here when the very same happens to Python :)

<comment><USER28> I just made a note. I do not really give a flying hoot to what happens to Python. I only use it in places I do some consulting since they require it. I do not use it for my own products.

</comment></comment></comment></comment><comment><USER30> I love Rob Pikes idea that is dumb to have scope determined by invisible characters

<comment><USER31> It makes scope visual and consistent. IMO it's less dumb than having scope defined by pairs of curly braces which are impossible to read without indentation and require extra effort to keep matched - unless you try to automate the matching with a good IDE.

<comment><USER32> There are a lot of tools that shred whitespace but not curly braces.

</comment></comment></comment><comment><USER33> I think the adage goes "Python is the best at being the second best at... almost everything"

<comment><USER34> I've never heard that one, and not going to take a stance... but I WILL make the argument that if true, that's a HUGE strength!

</comment></comment><comment><USER35> There's plenty to criticize Python about relating to performance and developer operations (pypi, virtualenvs, cumbersome version juggling), but most of these language features mentioned have a valid need to exist, or are purely stylistic, and therefore not admissible to the "not a great programming language" debate imo.

</comment><comment><USER18> I wish more languages did something like the D feature where method syntax and function syntax are really just syntax - i.e., str.len() is equivalent to len(str), and you use the syntax that best improves readability at your call site.

<comment><USER36> [https://en.m.wikipedia.org/wiki/Uniform_Function_Call_Syntax](https://en.m.wikipedia.org/wiki/Uniform_Function_Call_Syntax)

Called uniform function call syntax, an I idea I first saw in Nim and found really cool, but then found really dumb. Can't remember the reasoning for both opinions, which is a strong indicator of "probably doesn't matter".

For a while I was entertaining a thought regarding mutability and returning copy's. Like foo.bar() would mutate, bar(foo) return a modified copy. Don't know if that concept has a name or if it actually makes sense at all.

</comment></comment><comment><USER37> It's certainly not a perfect language (no multi-line lambdas, double underscore keywords everywhere, converting generators, significant white space means problems working in other environments, typing, isn't called lisp), but you know what...

I've been pleasantly surprised how shallow the "general python rabbit-hole" is.

If i can express this in words, one of the ways I like to judge a language when I program: i think of something a computer could theoretically do, then I look for ways to express it in that language. How many independent jumps I have to take down the conceptual rabbit-hole before I get to the solution is a nice little arbitrary metric.

Does python do everything the way I'd do it? No. You get over yourself and just accept that's the way it is in this language.

Once I've done that, so far most problems in python have been pretty shallow: do this arbitrary thing and then this arbitrary thing and you're done.

Compared to some of my past languages where you have to go 4 or 5 levels deep with N compulsory but conceptually irrelevant steps, it's pretty damn good. Makes for a reasonable quick pathway to actually getting anything done...

Purely my subjective opinion.

</comment><comment><USER38> As usual, the worst things about a thing are also the best things about it, and the best things about it are the worst things about it.

</comment><comment><USER39> I personally hate virtualenv. I just install pip dependencies in a vendor directory and point PYTHONPATH to it.

</comment><comment><USER40> That's just like, your opinion, man

</comment><comment><USER41> There are two kinds of languages. Those that people complain about, and those that nobody uses.

</comment><comment><USER42> I hate python, but it is still invaluable to me for its ability to let me get shit done. Getting meaningful data from a 100mb CSV? No problems. Everything I need can be found in the STDlib.

From my main perspective (scheme programmer): I am constantly amazed by the bad code python programmers write in scheme. Take a nice recursive function, sprinkle it with set! (which leads to boxing and general slowness in many implementations) and if that wasn't slow enough for you, wrap it in a call/cc to be able to return from arbitrary places in the function. As a bonus, forget to discard the captured continuation to make your program use insane amounts of memory.

Then proceed to complain on Reddit.

</comment><comment><USER43> You can write your dicts as keyword args to the dict() cast if you don't like putting your keys in quotes, but it looks like shit.

There are two paths to take when one encounters something new; adapt and learn, or reject and mock. This sounds like the latter.

</comment><comment><USER44> This list is so deliciously sophomoric. The best one is, and I quote: """To many other weirdo bits of magic syntax, like [list comprehensions]""" Obviously without actually proposing how comprehensions could be made better one has to hope the author would say he likes the equivalent Haskell better, but there is a strong doubt that is not the case.

<comment><USER45> I personally find list comprehensions in python pretty horrible.

They seem to exist only to do lots of stuff in one single line of code. You end up with totally impenetrable unreadable perl-esq garbage write-once-read- never code that is too clever for its own good. And people say python is easy to learn and good for beginners...!

A better approach would be something like Java Streams/.net Lync/RxX pattern IMO. Explicit, clear, no magic, logical.

<comment><USER46> dic = {k: v for k, v in dic.items() if k in other_dic and v == "bar"}

How could that be improved? That's 3-4 LOC minimum in any other language

My main grip is python's ternary operators, since the True value is evaluated before the condition, if you are doing ternaries on things that might throw exceptions the False value has to come first

value = 0 if key not in dic else dic[key] * 5

rather than (throws indexerror if key isn't in dic)

value = dic[key] * 5 if key in dic else 0

<comment><USER47>
        dic = {k: v for k, v in dic.items() if k in other_dic and v == "bar"}

> _" How could that be improved? That's 3-4 LOC minimum in any other > language"_

If I'm understanding the comprehension correctly,

        (into {} (filter (fn [[k v]] (and (get other-dic k) (= v "bar"))) dic))

Though, for readability, I'd likely write it as:

      (->> dic
           (filter (fn [[k v]]
                     (and (get other-dic k)
                          (= v "bar"))))
           (into {}))

Legibility is in the eye of the beholder.

<comment><USER46> Each to their own, but both the snippets you posted crossed my threshold for headache inducing parentheses tracking

<comment><USER47> Similarly, my parsing of special-case syntax in the Python.

<comment><USER46> What special-case syntax? The only brazenly pythonic thing in there was the (iterative) tuple unpacking, as in

(for) k, v in dic.items()

which is just

k, v = (<key>, <value>) for every key value pair in the dictionary

<comment><USER47> There are a number of precedence rules you need to keep track of to parse the list comprehension. There are two different syntaxes that do the same thing. Arguably you need to do the same if you don't already know how the threading macro in the my second example works.

I posted due to your claim regarding all other languages necessitating increased verbosity. I should have left it lie, as I didn't intend to promote a language war, just to post a counter example. My apologies.

<comment><USER46> No language war intended, just curious how something I see as a wheel could be improved.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER48> I actually dislike Python, but this list ain't it.

</comment><comment><USER49> I love python. I just really wish there was a typed equivalent of python like Typescript. The python3 types are very weak compared to TS.

</comment><comment><USER50> One realizes the true cost of Pythons forced indentation when using MicroPython over a serial connection, for example It's a big PITAS, tbh. I see Python as a Vala-like glue language for C (as in Cython or FFI) but this singular weakness makes you pay attention to it in a context in which it' s truly beyond ridiculous. One may as well lisp for such use-cases...

</comment><comment><USER51> If you complain in the same post: about top level functions like list and map, and about list comprehension, you've lost me. To have lazy and eager types and list processing, you either have to have functions or syntax for both. If you complain about existence of both, you either need to propose a new paradigm, or you're just grumpy about everything.

</comment><comment><USER52> This reads like a list of complaints about Django. There's much, much more to python than Django!

</comment><comment><USER26> Sure Python has many problems, but these aren't a great selection.

> The syntax for classical inheritance. Half of each Django app is > super().__init__( _args,_ *kwargs). At least you don't have to pass > arguments to super anymore.

Yes, inheritance is hard to do well, but that's generally true. Much better to prefer composition ([https://en.wikipedia.org/wiki/Composition_over_inheritance](https://en.wikipedia.org/wiki/Composition_over_inheritance))

> Too many magic __double-underscore__ methods and properties that you have to > just memorize.

Better to just start using [http://attrs.org](http://attrs.org) or dataclasses so you don't have to do all the manual work. Classes without boilerplate.

> Too many top-level built-in functions that (a) you have to just memorize, > and (b) get really ugly. You end up with stuff like list(map(...)). I > haven't used so many nested parentheses since my early days in PHP. Guido's > explanation makes sense in theory, but is really annoying in practice.

I agree, there should be a pipeline operator |> like F# has. A similar proposal has been made for JS. [https://github.com/tc39/proposal-pipeline- operator](https://github.com/tc39/proposal-pipeline-operator)

> Too many other weirdo bits of magic syntax, like [list comprehensions].

List comprehensions are good, they just take 5 minutes of getting used to.

> Django specifically is so full of magic words, and its documentation is so > convoluted, that I've basically given up on documentation altogether and > just look at the Django source code now.

Pyramid has a much more principled design IMHO. [https://trypyramid.com/](https://trypyramid.com/)

> Needing to put dict property names `{'in': 'quotes'}.

Or use `dict(foo=5)`. Python mappings can contain non-string keys, so `{5: 1.2, 6: 3.4}` maps ints to floats.

> You have to cast your data back to a list/tuple after using enumerate() and > map().

Don't use map, use comprehensions.

> Different syntaxes for lists and tuples.

They are different objects, why would they have the same syntax?

> foo['bar'] returns a KeyError, so you have to do foo.get('bar')... or in > some cases getattr(foo, 'bar', None), but not in others because getattr and > .get are different things.

Python is a different language from Javascript.

> You can't just tack on flags to /regular_expressions/ig.

Yeah that's annoying.

> All the goofy string literals: f' ', u' ', r' ', etc.

That's a good thing, not a bad thing.

> Pipfile does not work that well.

Poetry works better. [https://poetry.eustace.io](https://poetry.eustace.io)

<comment><USER53> _Sure Python has many problems, but these aren 't a great selection._

Yes. I have my disagreements with Python, but those are not it. The article author is mostly complaining about ways Python differs from Javascript.

\- Agree that the mechanism for talking about parent classes wasn't very good. Multiple inheritance usually adds complication without adding much necessary functionality. That's not just a Python problem. It's a leftover from viewing objects through an "A is-a B" lens, one of the dead ends of early AI.

\- Python has too much gratuitous dynamism. Any thread can find and mess with any code and data in another thread. The implementation has to support that, which knocks out many valuable optimizations. The language model, and the original implementation, use "everything is a dict", which implies "slow".

\- One consequence of the above is Python's terrible one thread at a time thread system, with the "global interpreter lock". The "multiprocessing" hack to get around that is ugly and uses too much memory, since each subprocess has its very own Python system instance. To some extent, the "async" add on is yet another hack to get around the limits of threading.

\- Another consequence is a tendency to call C code where Python performance is terrible. The C code has to carefully obey the rules of the Python system. Mostly it does.

\- Optional typing is a marginal idea, but unchecked marginal typing is just weird. Language design seems to be converging on implicit static typing - result variables are automatically typed whenever possible. Go, Rust, and now C++ (with "auto") took that route.

\- And, of course, the botched Python 2 to 3 transition set Python back for a decade.

On the other hand, Python exceptions work out well. A reasonably sane exception hierarchy helps. Although the one for 2.x was better than the one for 3.x; the 2.x one made a clear distinction between external problems ("Environment errors") and internal problems.

The "with" clause system plays well with exceptions, and nested exception failures unwind correctly. It's far better than Go's "defer". C++ and Rust try to handle this sort of thing with RAII, which never handles trouble in a destructor well.

<comment><USER26> Regarding performance, I'm hoping alternate interpreters like pypy start thriving. Theres no reason python needs to be as slow as CPython.

</comment></comment></comment><comment><USER54> Django is ok if you have a web site with content and forms that map nicely onto SQL tables. Any 1998 website, basically, with not too much of a load. Any other setup, and it gets messy.

> Needing to put dict property names `{'in': 'quotes'}.

Now that's a part I like.

<comment><USER55> The inclusion of that made me question the entire thing. It's just so...wrong.

Does the author not realize that you can use (almost) anything as a dict key?

        a = 123
        b = 'foo'
        d = {a:456, b:123, 2.3:'2.3'}
        print(d)

        >>> {123: 456, 'foo': 123, 2.3: '2.3'}

<comment><USER56> > _Does the author not realize that you can use (almost) anything as a dict > key?_

You can do that in JS too, it's just coerced to string, so you can do e.g.

      {foo: "bar"}

where foo is not a variable, but assumed to be the string foo. In Python you can't, because you couldn't tell if it's foo the string, or a reference to an existing (or non-existing) foo variable.

That said, in JS, not only you're limited to using (real or coerced) strings as keys to Objects, but you also need to use the square bracket:

      {[foo]: "bar"}

syntax, so it can tell that you need it to use the value of the variable foo as the key (else it will understand {"foo": "bar"}).

<comment><USER55> That's different though. In python there is no coercion going on with the keys.

</comment></comment></comment></comment><comment><USER57> I mean, one could complaint about many things in Django, but the documentation....??? Really?

</comment><comment><USER58> Jack of all trades, master of none.

The article has a silly premise - I don't know anybody who would claim it's a great programming language. For the moment, it's just the most practical in certain areas (notably data science and machine learning.)

<comment><USER59> Python's power comes from the fantastic array of libraries to which it provides access. Much of my Python coding involves stringing together calls to SciPy, Matplotlib, lxml, and the like. It's a super productive language so long as you don't need multithreaded performance.

<comment><USER28> Too bad you can not use it to write those libraries ;)

</comment></comment></comment><comment><USER60> The biggest beefs I have with Python are inconsistent syntax and dynamic typing. But I've basically decided that dynamic types are a waste of time for me personally, so I'm not really the target audience anyways.

<comment><USER26> The new static type analyzers like Mypy and PyType give it more of a static feel IMHO.

<comment><USER60> As I understand it those are not really complete though, are they? Do they offer algebraic data types and exhaustive pattern matching?

<comment><USER26> I'm not sure. There is Union[Foo, Bar] which matches instances of Foo or Bar [0] and there is @overload [1]. What would it need to be complete?

[0] [https://docs.python.org/3/library/typing.html#typing.Union](https://docs.python.org/3/library/typing.html#typing.Union)

[1] [https://mypy.readthedocs.io/en/latest/more_types.html#functi...](https://mypy.readthedocs.io/en/latest/more_types.html#function- overloading)

</comment></comment></comment></comment><comment><USER61> Yes. Because python is a programming language.

</comment><comment><USER62> He has insulted list comprehensions and therefore my honor!

</comment><comment><USER28> I would agree about "magic" parts.

</comment><comment><USER63> So be it. It is useful nevertheless.

</comment><comment><USER64> Most of these are pretty dumb, but there are some inadvertently good points.[5]

> The philosophy of "one correct way to do things."

I miss those days. T_T

> A huge ecosystem of good third-party libraries.

Python also has a huge ecosystem of huge ecosystem managers, which is less than ideal.

> Half of each Django app is super().__init__( * args, * * kwargs)

Haven't used Django, but if I were providing a suite of classes people were extending, I'd provide lifecycle hooks.

Using super().__init__ is not a syntax problem as much as it's a semantics problem, because it's so fragile.[1]

> Too many magic __double-underscore__ methods and properties that you have to > just memorize.

Yup, dunders are the ugly consequence of duck-typing. Maybe Python could tuck them away in some kind of traits system.

> Too many other weirdo bits of magic syntax, like [list comprehensions].

But the Python syntax _is_ weird:

        [elem for outer in iterable for inner in outer]

Which is essentially:

        for outer in iterable:
            for inner in outer:
                result.append(elem)

It's backwards. The PEP[2] doesn't explain why, but looking at the JS syntax[3] it does seem less worse.

Other weirdo syntax:

        while some_condition():
            if check_a_thing(elem):
                break
        else:
            print("never broke from loop")

The meaning sort of makes sense if you think of `while` as an extension of `if`.

But I would have expected this:

        for x in y:
            do_a_thing()
        else:
            handle_empty_case()

Or, really, a more descriptive keyword.

> You have to cast your data back to a list/tuple after using enumerate() and > map().

I thought it was the coolest thing when generators got full support in py3k, but it's _horribly_ broken.

This does not raise an exception:

        x = list(some_generator)
        y = list(some_generator)

y will be empty, which is a completely silent failure. The same is true for iterators. And everyone's been bit by strings being iterable[4].

Sometimes it's useful to do this:

        i = iter(some_generator)
        x = next(i)
        for elem in i:
            ...

But Python should _not_ :

1\. make iterators be iterable.

2\. allow spent generators to be reused without exception.

3\. make strings be iterable.

(All of which could be bypassed with a method call when you really want that behavior.)

> foo['bar'] returns a KeyError, so you have to do foo.get('bar')

LOL, only javascript devs could not have noticed the hours they've spent tracking down the source of some mysterious undefined. Python _definitely_ got this one right.

[1]: [https://fuhm.net/super-harmful/](https://fuhm.net/super-harmful/)

[2]: [https://www.python.org/dev/peps/pep-0202/](https://www.python.org/dev/peps/pep-0202/)

[3]: [https://developer.mozilla.org/en- US/docs/Web/JavaScript/Refe...](https://developer.mozilla.org/en- US/docs/Web/JavaScript/Reference/Operators/Array_comprehensions)

[4]: [https://mail.python.org/pipermail/python-3000/2006-April/000...](https://mail.python.org/pipermail/python-3000/2006-April/000759.html)

[5]: Wait, am I talking about the OP or this comment?

<comment><USER65> I wrote this package to provide model lifecycle hooks (similar to Rails callbacks) because I didn't like the frequency that my codebase was overriding __init__(): [https://github.com/rsinger86/django- lifecycle](https://github.com/rsinger86/django-lifecycle)

Django's ecosystem (mainly DRF and django-filters) makes it very productive for me, but I find Django core to be lacking for developer ergonomics in certain areas.

<comment><USER64> That's exactly what I was imagining. You can tell it's a nicely designed base class because the dunders are all tucked away so the only thing left is actual logic.

</comment></comment></comment><comment><USER66> yeah i agree, it is so weird to see that python is the only language that haven't implemented in its own language atleast to my knowledge

<comment><USER67> That's not what the article is about. And most interpreted languages (bash, ruby, perl, JS, ...) are not implemented in themselves, because it makes no sense (who interprets the interpreter?).

However, Pypy is a Python interpreter that is written in (a compiled subset of) Python 2.</comment></comment>


I stumbled across an Airbnb scam that's taking over London - <AUTHOR> https://www.wired.co.uk/article/airbnb-scam-london <comment><USER2> I travel a _lot_. I've had so many bad experiences with AirBnB. Despite their high fees, it's almost impossible to get their customer support to read any kind of complaint and give an apropos response. Their responses are usually non-sequitur: they don't give an on-topic response to the issue.

I switched to just using Bonvoy/Marriott and staying in hotels. Now I have a high status level (titanium), and they really do anything they can to make me happy. And actually, there is much rarely any issue for me to complain about: mostly they just get things right in the first place. And with high status, they give me room upgrades, free breakfast, late checkout, free nights and points.

Now I only use AirBnB for stays of a month or more.

<comment><USER3> The killer feature with AirBnB for me was always the ability to cook a meal and save money, but once you are Platinum at Bonvoy you generally get free breakfast and lounge access (depending on the property). The lounge has breakfast, snacks, alcohol, drinks, and enough apps to qualify for a dinner (and also dessert). It's a very underrated feature.

</comment></comment><comment><USER4> Vice covered a similar scam (also in Nov. 2019) [https://www.vice.com/en_us/article/43k7z3/nationwide-fake- ho...](https://www.vice.com/en_us/article/43k7z3/nationwide-fake-host-scam-on- airbnb)

</comment><comment><USER5> I think it's a cheap shot to call out "the Catholic church" in the subhead like that, implying they have any involvement in the scam simply because they are the freeholders of the land in question.

<comment><USER6> If the leaseholder covenants to the freeholder that it will have certain types of sub-tenancies only (e.g. two year terms, assured tenancies, and so forth -- these are common terms in leases) than the leaseholder is in breach, and the freeholder can (if it chooses to) enforce. The whole cost of enforcement is almost always borne by a leaseholder in breach, and the threat of forfeit is an exceptionally strong one.

When a freeholder becomes aware that a leaseholder -- especially one on a very short-term lease of five years -- is engaged in behaviour that is almost certainly a breach of leasing conditions, and does nothing to enforce, it is perfectly reasonable to call both the leaseholder and the freeholder out. Especially where the freeholder obtained concessions from the local government. This applies to any freeholder.

The idea that this particular freeholder is somehow trapped into the freehold (or can do little or nothing about a bad leaseholder or its sub-lessees, guests, customers, or whatever) is pretty ludicrous, even for an organization which has proven untruthful on other scandalous matters. And this _is_ a scandalous matter, and seems like it might become an actual scandal.

Local elections in London are scheduled for Thursday 7 May 2020.

</comment></comment><comment><USER7> If your host is called something like 'Robert & Team' then you're pretty much assured of a bad experience.

</comment><comment><USER8> This is why when I do book with AirBnB I make sure that I'm booking with a superhost. It shouldn't have to be that way, but it is, and I'm happy to put a dollar amount on my sanity. There are stories of "bad superhosts", or rather bad stories of bookings with hosts that have superhost status, but they're measurably fewer.

Like every marketplace, there are going to be fraudsters taking advantage of it. It's the world we live in. No marketplace is immune to fraud.</comment>


Review my simple twitter app -- weatherizer - <AUTHOR> http://whynoti.org/twitter/twitter.imager/select_theme/

<comment><AUTHOR> Hi, I made a dynamic background changing twitter applicaiton called Weatherizer. It's mostly for fun and pedagogy. In the spirit of learning I'd love to get feedback. Thanks.</comment>