Cancer Patient Effectively Donates A Life-Saving Organ--To Himself - <AUTHOR> http://www.fastcompany.com/1765822/with-an-artificially-grown-trachea-transplant-the-futures-here

<comment><USER2> The ignorance the writer displays in the last paragraph is ridiculous. "Anti- stem cell research campaigns" are against use of _embryonic_ stem cells. But the writer's own article indicates that adult stem cells were used here.

That said, assuming his description of the technique is reasonably accurate (which, given the above-mentioned nonsense, is by no means certain), this sounds like an interesting and useful technique.

<comment><USER3> >The ignorance the writer displays in the last paragraph is ridiculous. "Anti- stem cell research campaigns" are against use of embryonic stem cells. But the writer's own article indicates that adult stem cells were used here.

Some opponents have argued that stem-cell research is useless as well as, in the case of embryonic stem-cell research, ethically questionable. I take it the author's point is that now we can prove the general case: stem-cell research can lead to cures, and so disprove one of the (tactical) arguments of opponents. Rush Limbaugh at one point said embryonic stem-cell research in particular is useless, so he won't be bothered by this news.

<comment><USER4> I've never heard anybody argue against adult stem-cell research, but I suppose it's possible that somebody out there is making that argument. The only time I've heard people bring up adult stem cell research is to point out that all of the actual treatments derived from stem cell research to date have come from adult stem cell research, and that it is therefore more pragmatic to focus resources on adult stem cell research rather than directing any resources into embryonic stem cell research.

Also, most of the arguments I've heard against embryonic stem-cell research acknowledge that it _might_ in fact produce life-saving or life-changing treatments, but that it is nonetheless morally and/or ethically wrong. A literary parallel is Le Guin's "Those Who Walk Away from Omelas:" enormous good comes at the price of involuntary sacrifice on the part of a single innocent. Some conclude that the trade is morally and/or ethically acceptable because of all of the good that is obtained, which cannot be obtained by any other means; others conclude that the good obtained from the sacrifice does not justify the evil of the sacrifice.

</comment></comment></comment><comment><USER5> I was flabbergasted to read that the new trachea grew in two days. Is this normal, or would they have had to put some sort of growth stimulant in the bioreactor?

If I sound ignorant, it's because I am, and I'd love for someone more knowledgeable about biotech to set me straight.

<comment><USER6> tspiteri 3 hours ago | link

The BBC site has a more detailed article from three days ago: <http://www.bbc.co.uk/news/health-14047670> It says that the organ was made of glass in London, and then flown to Sweden and soaked for two days in a solution of the patient's stem cells.

<comment><USER7> That's nice, but it doesn't answer the question of whether two days is a normal amount of time to grow a trachea or if they used a growth stimulant.

<comment><USER8> The linked article basically answers the question. The physical shape of the trachea, carina, and right and left mainstem bronchi was created from glass. Over the course of two days, that glass became lined with the patient's cells.

To be clear, the claim is not that the glass was replaced by human cells over the course of two days.

</comment></comment></comment></comment><comment><USER9> The BBC site has a more detailed article from three days ago: <http://www.bbc.co.uk/news/health-14047670>

It says that the organ was made of glass in London, and then flown to Sweden and soaked for two days in a solution of the patient's stem cells.

</comment><comment><USER10> So they mention this being used for kids' surgeries. Would a replacement trachea grow with the rest of the body though?

<comment><USER11> My only-slightly-educated guess based off what I've read on this (read a few mentions of this story over the past week) is that while the child-sized trachea wouldn't just stop working/become disconnected, most likely there would be a later adult-sized replacement.

</comment></comment><comment><USER12> This warms my heart. The one I 3-D printed just now.

</comment><comment><USER13> I would like to grow myself a new body from my own stem cells without a brain, and transplant my brain into it. With any luck I might be able to squeak out another 100 years with only my brain decaying at the original rate.

<comment><USER14> Given that we seem to have reached a point that medicine can cause the body to outlive the brain's shelf-life (eg Alzheimer's and the like), I'm not sure your plan is going to work out that well for you.

<comment><USER15> From my perception of death statistics for old people; it's diseases and cancer that may be said to kill, but it's lack of blood flow to the brain that kills.

<comment><USER16> Yeah, IIRC, a lot of the apparent loss in brain function is really just cardiovascular.

<comment><USER17> People tend to overlook the 'vascular' part.

I've read some pretty disturbing examples of how some people have their bowels rot due to the blood flow in the artery (arteries?) becoming restricted or even blocked from supplying the bowels the same way arteries in the heart are but it's not as apparent as it is for the heart.

<comment><USER16> D:

I've also heard things about how, for example, simply walking regularly for exercise can sometimes be more effective than chemotherapy.</comment></comment></comment></comment></comment></comment>


On the Darknet, Reputation Is Everything - <AUTHOR> http://nautil.us/issue/55/trust/how-darknet-sellers-build-trust <comment><USER3> I think it's a really positive thing that people are able to leave reviews for drug purchases. In the absence of FDA regulation, a public reputation system incentivizes dealers to avoid harming their customers with dangerously- adulterated products.

In the midst of an opioid crisis, with people overdosing on heroin cut with fentanyl, having this accountability can save lives. There's a subreddit (whose name I won't mention) that facilitates meetups between opioid sellers and users, encouraging buyers to leave feedback once the meetup is complete. I'm glad it exists.

<comment><USER4> Unless trying the product becomes fatal. Wouldn't this be a selection bias?

<comment><USER5> No. Always test purity of the products before consuming.

<comment><USER6> And if you can't test it (but you indeed really, really should - and if not easily available to you, a lot of DNM markets also have sellers of reagent tests), at the very least start with minute amounts - and a sitter - <USER2> increasing it.

</comment></comment></comment></comment><comment><USER7> It's kinda funny to notice that in the article the writer is describing the stereotype of a drug dealer being untrusted, yet based on my experience and what I've seen, I would rather trust an online drug dealer than for example my bank or the people running our government. That's kinda fucked up right there, won't you say ?

<comment><USER8> You're comparing apples with oranges. A drug dealer is a peon, someone at the very bottom of an enormous multinational pyramid who sells a commodity product in a market where every disgruntled customer has the ability to put them behind bars, rather than just leave a bad review online.

This is actually the most prime example of an 'untrusted' relationship. If it weren't for the total imbalance of power you have to bring the full force of the government down on a drug dealer without any need for a reason, you wouldn't do business with them at all.

If, on the other hand, you had to do business with the head of one of these multinational drug syndicates, you would start to understand this power dynamic more completely, as the power balance would flip. All of a sudden, the person you are dealing with no longer fears law enforcement. They are no longer a peon - they have bought off people in the government, acquired arms, trained a small army of their own, and now have to power to kill you or your associates without fear of reprisal. Would you still describe doing business with these people as a 'trusted' transaction? Of course not. You would start showing up to all your business dealings with your own goons, weapons, and armored vehicles. There would be zero trust that each transaction wouldn't end in a firefight.

Compare this to walking into your local bank branch, where with the correct documentation a typical local branch manager can give you a loan for over $1M without having ever done business with you before. _That_ is the definition of a trusted transaction.

You've just become so desensitized to the marvel of it all that you might not be aware of what the alternative looks like.

<comment><USER9> The local bank manager is also a peon.

If you were considering selling your company to Jamie Dimon - well, you can probably trust that he's not going to kill you, but you _will_ show up with an army of lawyers and investment bankers to make sure you get a fair deal.

</comment></comment></comment><comment><USER10> This article is total bullshit.

Reviews on SR were rarely negative because the venders didn't do "some bad business". They did really good business, followed by really bad business and disappeared. It was common for vendors to cash out ESPECIALLY on the 4/20 sales and various other sales. They would offer incentives to FE (finalize early, ie release funds from the arbitrage) for months. Then, they would have a big sale. People would FE because they had such good rep, and then the vendors would disappear.

It was a common tactic. I'm not a DNM researcher anymore, but I'm sure it is still a common tactic. I expect that few reliable dealers are around for more than a year. That was certainly the case with SR, and the few that followed quickly in their footsteps.

The new markets are based around forums instead of marketplaces because the markets themselves were bigger targets (everyone considers the forums owned) and the markets offered no real security for buyers or sellers. It was just a costly place to unite the two, and often a source of theft themselves (hacks, or corrupt admins absconding with the funds.)

Acting like it was some sort of utopia is ridiculous. I'm very much on the liberty side of the political landscape, but we don't do anyone any favors by sugar coating the darknet drug industry. The lack of street violence doesn't mean that there aren't wars raging. From the sources of the heroine (mostly from rural Afghanistan), cocaine (mostly from the jungles of South America), and as close as Mexico thousands die at the hands of violent monsters. Go watch some cartel videos on liveleak if you need a reminder.

We don't need to allow ourselves to be satisfied with violence as an externality. We need to consider massive changes in drug policy and defund the violence.

<comment><USER11> Part of why I'm so up on pot legalization - locally grown, conflict-free drugs.

<comment><USER12> Conflict-free?

I never understood that. Is Sugar considered conflict-free?

<comment><USER11> The comparison being to conflict diamonds (and conflict-free diamonds) - a lot of wars are fueled and escalated by revenues from natural resource extraction, and a pretty simple kind of ethical consumption is to decide to not buy diamonds from, say, the DRC. The market will adapt somewhat, especially if the good is a commodity whose origin can be obscured in the supply chain, but substituting a whole different good avoids that problem. Buy gems other than diamonds, for example.

<comment><USER13> >if the good is a commodity whose origin can be obscured in the supply chain

Like what happens with diamonds: [https://www.salon.com/2013/01/07/the_myth_of_conflict_free_d...](https://www.salon.com/2013/01/07/the_myth_of_conflict_free_diamonds/)

</comment></comment></comment></comment></comment><comment><USER14> > _For instance, on eBay less than 2 percent of all feedback left is negative > or neutral. One explanation is that dissatisfied customers are substantially > less likely to give feedback. It means the most important information, the > negative reputation data, is not being captured._

Can negative feedback on eBay be cancelled? Because if it can be, then I'll give you a _much more plausible_ explanation - sellers bribe customers to revert their negative feedback. This is pretty much standard practice among companies selling on Polish equivalent of eBay/Amazon, Allegro. The bribes are usually heavy discounts and/or free products. Part of the reason this happens is because for a seller, it takes only few negative reviews to lose promoted spots in the service, which can be life-threatening for a small business.

<comment><USER15> It's against the ToS, considered Feedback Extortion. Most sellers don't want to risk their account, being totally banned is a much bigger deal than being less promoted for a while. Messages like that are monitored, and I assume transactions are too. I'm not saying it doesn't happen, but most sellers will just suck it up and deal with the rare negative. Further as a seller you don't want to "just give out refunds/free stuff" every time someone throws a negative at you because you're just inviting in all the scammers.

Also sellers cannot leave negative feedback for buyers -at all- so that also contributes.

[https://pages.ebay.com/help/policies/feedback- extortion.html](https://pages.ebay.com/help/policies/feedback-extortion.html)

</comment></comment><comment><USER16> For those that missed it yesterday, Nautilus is on the brink of bankruptcy [1], yet here it is once again with an article featured on the HN frontpage. If you appreciate the content, and are in a position to do so, please consider subscribing.

[1] [https://news.ycombinator.com/item?id=15977166](https://news.ycombinator.com/item?id=15977166)

<comment><USER17> Luckily, even if Nautilus goes under, this content can be found in the following book, [https://www.amazon.com/Who-Can-You-Trust- Technology/dp/15417...](https://www.amazon.com/Who-Can-You-Trust- Technology/dp/1541773675/ref=sr_1_1?ie=UTF8&qid=1513711563&sr=8-1&keywords=Who+Can+You+Trust?+How+Technology+Brought+Us+Together+and+Why+It+Might+Drive+Us+Apart) , from which this article is copied.

</comment></comment><comment><USER18> It is somewhat amusing that the cocaine in the stock photo costs 0.13BTC at a price of $27. I know people who have bought weed for the equivalent of hundreds of thousands of dollars in today's bitcoin (even post crash).

The comment about eBay is interesting - that negative feedback is scarce because people don't bother if they're unhappy. I think one aspect is that it's more difficult to leave a negative review, and if you've ever sold on eBay then you're probably more reluctant to neg other sellers. I'm certainly willing to wait for a seller to sort things out rather than give them a negative, because of the stigma not having 100% can bring you.

<comment><USER19> TL;DR Seller did wrong and it cost _me_ reputation.

I left a neutral feedback one time because of a legitimate seller problem, but otherwise things were fine. The feedback didn't affect his seller score.

The seller left negative retaliation feedback and then offered to have us both unpublished (or something) the feedback so that it didn't affect my reputation.

I learned you don't ever leave negative feedback on ebay.

<comment><USER20> I wish you could have personal blacklists of sellers so they don't appear in your own search results.

Many years ago I avoided leaving negative feedback on a seller that agreeably accepted a return on stuff that was obviously counterfeit. A couple years later I felt like an idiot when I received garbage again, then realized that it was the same seller that had tried to quietly scam me before.

<comment><USER21> > Many years ago I avoided leaving negative feedback on a seller that > agreeably accepted a return on stuff that was obviously counterfeit.

I would've never sent it back. Explain this situation to your credit card company.

If it isn't illegal by statute to send counterfeit goods, it's certainly against policy. All financial institutions have policies against moving these goods around if you can prove to some very low standard that the goods are counterfeit (take a handbag to a Macy's and have the counter clerk tell you it's counterfeit.)

<comment><USER22> It's also against eBay policies to require the return of counterfeit items:

> If a buyer suspects that an item is counterfeit and there are strong > indicators that the item is counterfeit, the buyer isn't required to return > the item to the seller. The buyer agrees to cooperate with us to ensure the > proper disposal of the item. In such cases, we refund the buyer for the full > cost of the item and original postage, and the seller reimburses us for the > refund. The buyer may not sell the item on eBay or elsewhere.

[https://pages.ebay.co.uk/help/policies/money-back- guarantee....](https://pages.ebay.co.uk/help/policies/money-back- guarantee.html)

</comment></comment></comment></comment></comment><comment><USER23> Somebody in the comments of the article brought up a good point. What happens when the site gets shut down? As apparently is the case according to the comment author.

I know it's a trope, a huge joke and everything, but this seems like a perfect place to leave notes on the blockchain. It's something that can't be "cleaned" outside of the darknet, it's permanent, and supposedly impossible to forge a private key to manipulate one party's records. It would make it possible for customers to look back for the records of that wallet, or some tagged transactions to see a record of interactions to give credence to the reputation of that user.

It's a neat idea, removing enough anonymity in a world of the anonymous to establish trust, but not enough to establish a hard identity in order to carry reputation across the *net.

<comment><USER24> There are meta sites (like Grams) that aggregate reviews from all the other marketplaces. Sure, blockchain would be more decentralized, but in this case what's easy is good enough.

</comment></comment><comment><USER25> What are the latest dark net markets these days anyway and have they gone Monero native yet?

2-of-3 multisig will at least provide software level trust of the escrow process. The reviews on quality of goods would still be important though, but from an enforcement side it will be exponentially more expensive to take down one of these sites.

Prior DNM busts typically also got the warchest of everything held in escrow, making it more worthwhile to try and nab cryptocurrency. They were also aided by transparency blockchains to determine social graphs, which Monero makes almost impossible.

<comment><USER26> I checked a few sites I found from the list in the sidebar of /r/darknetmarkets. A couple of them allowed paying into their escrow service with Monero, and for vendors to receive Monero, but it looks like they're still fundamentally based on a multisig Bitcoin transaction.

This seems like a mistake to me; I would have expected faster Monero adoption, especially with Bitcoin hitting performance bottlenecks.

<comment><USER25> yeah, darknetmarkets should have dropped bitcoin completely a while ago

I'm not sure Monero's 2-of-3 multisig is actually merged into production yet, but they have 2-of-2 so thats still a real limitation. Also Monero has and will hit performance bottlenecks very quickly too, cryptonote coins have no layer-2 scaling solution on the roadmap. Although they have had adaptive block sizes from day 1, the block sizes grow very slowly compared to spikes in traffic. The transaction fees would quickly reach unoptimal $ amounts, but the market itself would just require larger deal flow.

</comment></comment></comment><comment><USER27> > "One explanation is that dissatisfied customers are substantially less > likely to give feedback"

This is given as a truth in the article but the opposite seem to be the truth for the app stores. From a pool of around 300k app users using our apps, organic reviews are much more likely to be negative. The explanation to this is believed (at our company) that unhappy users want to retaliate where the majority of users, the satisfied ones, doesn't have the energy or incentive to leave a review. The way we develop apps nowadays always include a prompt to rate after $conditionOnlyActiveUsersMatch is met. This skews our reviews to the positive side, leaving us with 4.5+ ratings. If we didn't artificially "game" the stores by asking happy users for reviews, we would be at one star because of the organic reviews being from 0.001% angry users.

</comment><comment><USER28> I've never been on the darknet. Where are all these reviews? Are there different drug selling sites where the sites are trusted enough not to remove negative reviews?

<comment><USER24> The big ones don't seem like they remove negative reviews. That would be fairly easy to spot by the reviewer and would hurt the markets reputation, which is worth a lot more than one dealer.

</comment></comment><comment><USER29> Ironic how this is being published right after nautil.us suffered a large reputational loss after not paying their writers. I wonder whether the author got paid for this yet or if they will get paid. Clearly, the reputational loss wasn't enough to deter them from writing this article.

Edit: "Reproduced with permission from Hachette Book Group.". So they likely got it for free to promote the book.

</comment><comment><USER30> Not sure if completely on topic, but I know of a few friends who every now and then when they go to party do some Ecstacy and they told me a site like [https://www.pillreports.net/](https://www.pillreports.net/) is invaluable to them in that they can check the quality of the stuff before they actually buy it, because a bad batch can actually kill you. In such a case, reviews can actually save your life and, I guess, guarantee you a good time.

</comment><comment><USER31> In high risk/high volatility environments, it's either regulation or reputation. That's why the smell of regulation is always telling: the inter- human natural trust scheme can't cope with the risk... or someone is looking to bend it in favor of one side.

</comment><comment><USER32> As someone who genuinely believes that providing a legitimate (or as legitimate as possible) avenue for people to purchase drugs (I'm less sold on arms trafficking and sale of stolen credit cards) I was surprised to find how much a genuinely felt like I disagreed with the bulk of this articles content.

While I haven't been in the market for any drugs for a while I know enough people who regularly frequency DNM's and I tend to check in every now and then just because I find the whole ecosystem fascinating.

This article seems to imply that the entire dark net market thing is as simple as ebay or airbnb, but it's actually a lot more complicated. There's a ton of extra stuff you need to do to protect yourself not just from the vendor/buyer but also from the market places themselves, because they are also "untrusted" this means things like multisig transactions and the like are a must.

Additionally the view that a vendors pseudonym is important is just flat out untrue since people realised how much money there was to be made by hacking vendor accounts or claiming a known vendors name on a market that vendor does not yet have a presence on. The key thing is being able to do what is generally considered reasonably high degrees of security based validation, by verifying an identity out of band from the market. This means using GPG keys that you have sourced from previous interactions to communicate, double checking with vendors over wickr or secure anonymous email services to ensure they are the person you are dealing with on a marketplace.

Essentially once a vendor has a reputation the marketplace becomes irrelevant entirely. If it where me, I'd rather do a direct deal using GPG encrypted messages over wickr with a vendor I trust than buy from a vendor I don't personally know on a market that I shouldn't trust (exit scamming must be way to tempting).

I admit that I'm not entirely engaged with the current workings of the DNM's at the moment, but other than being a place where new vendors can earn some reputation, the value add isn't that high. And now that it's a mainstream activity (relatively to buying drugs in the open before silk road) I feel like it's only a matter of time before new vendors can earn enough reputation just frequenting reddit boards on the topic and making sure they have good opsec. As soon as they get one or two people happy with what they've bought, it's all word of mouth from there. (Obviously they need to deal with security of being on the clear Web, or just set up their own onion site)

With regards to a point that was mentioned about block chain history being useful here, it isn't. All it does is help law enforcement, unless you mix your coins appropriately through a trusted party in which case the history if your transactions isn't verifiable and it's useless anyway.

What are useful are services like grams, which (at least when I last checked) scraped reviews from market places, reddit, etc and aggregated them based on the vendors public key.

I feel like this article was either written about 5 or so years ago, or the information it contains simply hasn't been updated in a very very long time.

</comment><comment><USER33> How do you know as a buyer/seller that you're not dealing with someone from the NDA? Isn't it possible that accounts get seized?

<comment><USER32> Yes, and they do. Which is why people _should_ rely on the gpg keys of vendors as well as watching forums and other buyers to work out if things have suddenly become suspicious.

</comment></comment><comment><USER34> No one trust the reviews written on the site. They could be easily faked, along with reputation, in most (all, in different ways) DarkNetMarkets. You have to research on communities (on the "white" web, reddit for example) where each sellers has feedback, and famous ones got their products verified by indipendent company.

</comment><comment><USER35> Its funny seeing the HN famous Gwern in the comments of this article.

<comment><USER36> Arguably, you should phrase that as 'funny seeing the DNM famous Gwern showing up in the HN comments of this article' :). I'm much better known for my DNM work like my DNM archives than I am on HN, I think.

</comment></comment><comment><USER37> So...just like real life drug/arms dealers? Shocking.

<comment><USER38> No.... You buy from a dealer in a club or somewhere else -- there is no reputation. I feel like you didn't get the whole gist of the article?

Would you buy a toaster oven from someones cargo van on the side of the road in a shady street or prefer to purchase it form Amazon?

<comment><USER14> > _Would you buy a toaster oven from someones cargo van on the side of the > road in a shady street or prefer to purchase it form Amazon?_

Locals who know the owner of that cargo van will quite often prefer that source, as evidenced at least by the very fact that the van is still there selling toaster ovens. That's a form of reputation-based purchase, too.

<comment><USER39> i think the point of specifying that it's being sold from a van is that the merchant is transient and not tied to any local reputation framework

<comment><USER14> Could be, but sadly it wasn't explicit. I interpreted it the way I did, because plenty of semi-permanent merchants I've seen do their business from vans, for reasons most likely involving location permits.</comment></comment></comment></comment></comment>


Surprise Visitors Are Unwelcome At The NSA's Unfinished Utah Spy Center - <AUTHOR> http://www.forbes.com/sites/kashmirhill/2013/03/04/nsa-utah-data-center-visit/

<comment><USER2> No doubt there are Russian spy-sat pix available with incredible resolution for sale somewhere online for $5 ... without the hour-long wait and the interrogation.

</comment><comment><USER3> I wonder what could be the ratification of the agent to request that she deletes 2 photos. It seems like an insignificant act.

<comment><USER4> He explained to her that he didn't want to be identified personally with pictures of their car / license plate. That's reasonable on an individual level.

The problem is that in that situation he had a large amount of threatening influence, and used it to censor a journalist. There should be clear training and guidelines for how to handle this kind of thing, because letting individual guards make up rules on the spot to protect themselves isn't ok.</comment></comment>


Ooh Ooh My Turn Why Lisp? (2008) - <AUTHOR> http://smuglispweeny.blogspot.com/2008/02/ooh-ooh-my-turn-why-lisp.html <comment><USER2> "The question is where will we be in five years, the answer is using Common Lisp, because of language features" says the author in the comments. This was 8 years ago.

Kind of rude of me to take that potshot, but it's there. I've been reading these "Why Lisp?" Arguments for years and yet it still remains pretty niche. The longer this goes on the more I am unable tell Lisp advocates apart from Perl advocates. They both sound like write-only languages. They make a lone programmer feel very productive and Free, but it results in essentially unmaintainable code. I've written and attempted to maintain much more Perl than Lisp, many years ago, so please tell me if I'm wrong.

<comment><USER3> Heh, yeah. Lisp has powerful features, I'm sure, but something that's always stumped me is, if that power mattered for delivering better code, would we have to strain so hard to find examples of why it's better?

Paul Graham's viaweb story, well, that's great, but why wasn't there a whole cohort of super-powered startups winning the day with lisp in the original dot com boom? Why are there so few big wins with lisp? The "lisp is powerful" story just doesn't seem like the whole story, when there are so few successes on the ground compared to C, C++, Python, Perl, PHP, Ruby, VB, you name it.

<comment><USER4> You confuse powerful with popular. Many startups don't need powerful tools, other than a CRUD framework and JQuery. Also, existence and abundance of libraries is a factor, and Lisp didn't get much love from the OSS web folks til recently.

<comment><USER3> Well, no, I'm not confusing powerful and popular. I'm asking why, for all lisp's power, there's almost no examples of that power actually doing anyone any good.

Is it because most projects don't need something powerful? The benefits of that power aren't actually that great compared to the rest of the lisp baggage?

We have this trope of the smug lisp weenie and there's definitely a whiff of high wizardry around lisp, but who's actually shipping anything with it?

<comment><USER5> > doing anyone any good

There's a difference between doing and talking about. Compare an amount of noise from Rust crowd to anything useful being done in Rust.

Let's look at only one product implemented in Lisp, by only one vendor, and it's users in only one industry - [http://allegrograph.com/healthcare/](http://allegrograph.com/healthcare/). Pfizer, Mayo Clinic, GSK, Novartis - should we stop with that 'doing anyone any good' mantra?

<comment><USER3> The thing is, I'm trying to ask, if lisp is super-powerful and a secret weapon (the general sense of the claims) why isn't the real world littered with examples of companies who seriously out-competed using Lisp?

So far all people can do is say "no, SOMEONE is using Lisp!"

Well, great, but that's not the claim from the Lisp community.

The claim is that Lisp is powerful, so powerful that it's a secret weapon. Why is there so little evidence of that power being meaningful in actual competition?

<comment><USER4> The competition you're referring to is an economical one that's based on the product. For any product which is a software application (whatever UI should it sport, native, web based, remotely hosted, etc.), it's commercial success is tied to its features and UX. For something like Amazon or Google, it's not all that important if it's written in Lisp or BCPL or Prolog or whatnot, that's irrelevant in the competition among products.

Lisp's competition is on a technical level with other programming languages, and it's target audience is programmers. It can only help allowing easier development of technology, more fluid continuity from idea to product, robust and helpful debugging tools.

So writing a search engine in Lisp won't necessarily mean that you'll be one step ahead of Google in search business in terms of end product, you still need to come up with a better idea or better UX if you want to compete them, and other factors like advertising, conversion etc are in the play too. But with Lisp you may need less development resources to produce the product than you'd need with C++ or Java.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> I'm of the opinion that there is only one lisp right now with some serious potential to dominate in the future, and that is Racket. Why? For one very simple reason: unlike all other lisps, there is serious, ongoing, and lengthy research into _correctly_ bringing a static type-checking process to the language. Clojure's core.typed doesn't count here, as it is full of significant holes that invalidate its entire point -- though, those holes are very possibly getting filled in the coming years as they attempt to refactor core.typed following the Racket model. But the Racket team is doing something with lisp that is true to its core, not just with types, but with many other features as well.

Interesting piece of trivia: this website you are reading right now is built on top of Racket.

<comment><USER7> It might be good to point out to you that the general industry cares very little about things like this.

Racket could have literally the most advanced and robust type system out of all programming languages in existence, and still be used by the same amount of people as today and have a hard time convincing anyone else to use it.

What makes a language popular from what I have seen are libraries, frameworks, and community.

Edit: Racket has all of the above, so obviously there are other factors as well.

<comment><USER8> The general industry is in fact starting to care about static typing; I've seen it happening lately. The last batch of hot languages included a lot of untyped languages like Python, Ruby, and JS. But the latest batch of rising star languages are typed, eg Go, Rust, Scala. And C/C++, C#, and Java are still all going strong.

People are no longer buying the myth that the benefits of static typing can only be gained at the expense of heaps of boilerplate. The gospel is slowly spreading.

<comment><USER6> Don't forget Apple's new flagship language, Swift.

</comment></comment></comment></comment><comment><USER9> The post linked has another interesting post in the comments: [http://www.defmacro.de/?p=13](http://www.defmacro.de/?p=13) . Its about an interview McCarthy gave in the year 2000 to infoQ.

</comment><comment><USER10> It's a nice perspective. Very practical and down to earth. There is another side though, and that is that learning to think of code as data is extremely empowering and translates well when working with a fairly large set of other languages (Perl, Python, Ruby, and now even Java). Learning Lisp turns you into a better programmer.

<comment><USER11> I like Scheme/Lisp but I don't know if I buy the whole "learning Lisp turns you into a better programmer". Maybe more knowledgeable but not necessarily a better a developer.

In some ways learning a really flexible language like Lisp can turn you even into a really bad developer. I say "developer" instead of "programer" because I want to emphasize working with others and thus sharing code with others. Of course this is based on some past observations working with MIT grads and various other academia so take my opinion with a grain of salt.

IMO the language that really changed everything for me was the ML family of languages and maybe C. I would say knowing C and ML is more worthwhile than Lisp (Lisp is not exactly hard to learn anyway... the basics that is).

<comment><USER12> I'm biased, but there's a big difference between "learning lisp" (well enough to transliterate that python program) and really getting the code as data concept.

I'd say that learning X really well is always a positive because whenever you learn something in depth you can then apply the concepts elsewhere. And there are still lisp-only concepts, so learning lisp is positive. ML is good too. Also spending time with a well designed concurrent language is beneficial.

<comment><USER11> With Lisp I get the data thing but with ML you learn almost everything is a language.

I can't really explain it but the whole variant/ADT pattern matching really forces to make you think of your problem domain as a specification or language (e.g. DSL). It is one of the reason why I think so many compilers are written in ML (that and the toolset is awesome for it).

<comment><USER12> Having looked up variants just now, I can definitely see how it would be useful. It seems (to me) to fall into the same category of macro-like things that enhance the expressiveness of the language. I think the most important point is the idea of lifting the programming language into the problem domain. When you can do this in a clean way, the result is a very readable solution that you can reason about.

<comment><USER13> I think there's a difference, though. With ML (IIUC), you build a language on top of ML that is a set of functions (and the data structures they operate on) that make it easy to express the program.

With Lisp macros, though, you change the _syntax_ of Lisp. You take things that were not valid Lisp syntax, and you make them valid for your program.

So ML "language building" is in terms of _semantics_ , but in Lisp, it's _both semantics and syntax_. (Again, IIUC).

</comment></comment></comment></comment></comment></comment><comment><USER14> > object identity for everything but numbers and characters

Since when is this supposed to be a selling point? Not having compound values (not the same thing as compound objects!) is a pain.

<comment><USER15> You seem to be very confused. This is referring to #'eq (which is why #'eql exists). What lack of compound values are you lamenting? Lisp has built in classes, structs, arrays, lists, and maps. What is missing?

> An implementation is permitted to make ``copies'' of characters and numbers > at any time. The effect is that Common Lisp makes no guarantee that eq is > true even when both its arguments are ``the same thing'' if that thing is a > character or number.

[http://www.lispworks.com/documentation/HyperSpec/Body/f_eq.h...](http://www.lispworks.com/documentation/HyperSpec/Body/f_eq.htm#eq)

<comment><USER14> > Lisp has built in classes

Objects aren't compound values. Objects are compound, well, _objects_. And pointers to objects are primitive, indivisible values - not compound!

> lists

Racket and ML have lists. Lisp has mutable linked data structures, built out of `cons` cells, whose value at any given point in time may be a list. But the value itself isn't first-class, because you can only bind the identity of the cons cell to a variable.

<comment><USER15> Contiguous memory structs: [http://www.lispworks.com/documentation/HyperSpec/Body/m_defs...](http://www.lispworks.com/documentation/HyperSpec/Body/m_defstr.htm)

Contiguous memory vectors (multi-dimensional arrays, too!): [http://www.lispworks.com/documentation/HyperSpec/Body/t_smp_...](http://www.lispworks.com/documentation/HyperSpec/Body/t_smp_ve.htm)

Native hash tables: [http://www.lispworks.com/documentation/HyperSpec/Body/f_mk_h...](http://www.lispworks.com/documentation/HyperSpec/Body/f_mk_has.htm)

<comment><USER14> > Contiguous memory

I wasn't talking about the memory representation of anything. A first-class value is something that a variable may denote. In ML, if the variable `xs` denotes the list `[1,2,3]` within a given environment, it will always do so. In Lisp, I can mutate the cons cells out of which `(list 1 2 3)` is built, so what is actually bound to the variable is the object identity of the first `cons` cell. Not a list value!

<comment><USER15> Oh. You have a strange way of phrasing your critiques, but you're right, it's all in IO/IORef.

<comment><USER14> I wanted to formulate my observation in very general terms, rather than mention specific facilities of other programming languages. I also wanted to avoid suggesting a connection with static types or effect segregation. The main benefit of values over objects is that using values leads to designs that have less moving parts, and thus are easier to understand, modify, extend and test.

</comment></comment></comment></comment></comment></comment></comment><comment><USER16> For UI application programming You can do without FP language features. Hell, you can even do without smart pointers checked arrays or GC.

But you cannot do without a decent desktop or web development experience. I got involved with pretty large desktop applications written in delphi. The design-time, the debugger, native compilation without having to install some msvc runtime, deriving and combining visual components, it just gives a smooth experience for desktop apps. If lisp has such well thought-out frameworks, I would jump ship just to get at the language features it offers.

<comment><USER17> Would you pay for it?

[http://www.lispworks.com/products/capi.html](http://www.lispworks.com/products/capi.html)

<comment><USER16> I did buy frameworks for work, and this does look OK, but coding gui by hand is not something our developers can handle in large scales.

<comment><USER17> It seems that there is an interface builder.

[http://www.lispworks.com/documentation/lcl50/clwug/clw-216.h...](http://www.lispworks.com/documentation/lcl50/clwug/clw-216.html)

<comment><USER18> CAPI is pretty nice. Years ago, LispWorks gave me free licenses in return for my doing some cleanup on their documentation. LispWorks is very good, but my licenses are for what is now a very old version, so I now use SBCL and sometimes Clozure. For industrial settings, LispWorks and also Franz are very good products. I used Franz products on a medical large data project several years ago, and their support was nothing short of amazing. That said, on the same project we had an issue with SBCL and we simply paid one of the maintainers to promptly fix the issue.

Sometimes it just takes spending some money.

</comment></comment></comment></comment></comment><comment><USER18> Classic Kenny!

Common Lisp used to be much of my programming world also.

</comment><comment><USER19> I want to see people's list of reasons for why not lisp.

Edit: Ok, this is not trolling. I quite liked Lisp and actually had implemented a version of common lisp from scratch based the Guy Steele's CL reference back in the undergrad time. I just found that beyond academic and a few Emacs packages, I didn't use Lisp at all, for one reason or the other. I just want to hear people's reason for not picking Lisp for their work.

<comment><USER20> I've tried on a few occasions to really like Lisp. I love it's simplicity and recursiveness. The "code as data, data as code" thing is really cool.

But I love static typing. Not only for "safety-net" reasons, where the compiler lets you know that you've broken stuff, but also for documentation reasons (I don't have to guess at the shape of each "c" in "cs" in "(mapcar some-fun cs)", I can just look at its type and know its shape), and I _really_ like it when that type system lets me be more expressive, like in MLs (where I can pattern-match by the various members of an ADT and destructure them as I go).

I also find that idiomatic Lisp likes to nest things too much to be _really_ readable for me. If I don't have types to tell me how the data's being transformed, at least give me named functions and well-named variables instead of very-deeply-nested anonymous functions everywhere.

And finally, I've never been completely convinced that macros are a great idea. They're far too easily abused to create "the Scala problem" of having code in language X that is still unrecognizable to someone else who also writes in language X.

<comment><USER21> I totally agree with you here; statically typed languages (OMG OCaml) are great for making code very readable/documented, IMHO. I just have so much more confidence in my code when the compiler has my back.

Another commenter pointed this out, but Typed Racket is a Racket variant (which is a scheme-ish variant) that implements "gradual typing". I've played with it here and there and am about to dive in again.

[https://docs.racket-lang.org/ts-guide/](https://docs.racket-lang.org/ts- guide/)

</comment></comment></comment><comment> unpop-opinion Okay, I've spent a lot of time writing Common Lisp and even more time reading about Common Lisp, and to be honest, I'm just a little tired of the cult around it. People who know it well gloat about how great Common Lisp is, which _just so happens_ to make them look great too. And people who _don 't_ know Common Lisp all talk about the little Common Lisp they know, because they don't want to seem like they aren't in on it, and because they don't know better.

Let's talk about this fabled exchange between Norvig and McCarthy, where McCarthy asks if Python can gracefully manipulate code as data, and Norvig said no, and supposedly a thousand words were said in the ensuing silence.

Here's the thing; a thousand words _weren 't_ said. I don't know what Tilton thinks was said there, but it certainly wasn't a one sided silence in which only McCarthy's side gets to smugly smirk as if it proves anything.

Let's talk about code as data, shall we? What enables that? Of course, it's the s-expressions and prefix notation. So let's write a macro. But we won't want to write a macro that simply sits at the beginning of an s-expression and takes in a bunch of arguments, because then we could just write a function. No, we want to do a transformation on the code that creates a domain-specific language, because that's the power of macros, right?

So the very first thing you do with your macro powers, and pretty much the _only_ useful thing you _can_ do, is break s-expressions. Once the first macro is written you can no longer assume that inputs to macros will be s-expressions with the function at the beginning and arguments following. Every future macro must account for every previous macro. The more you use the capability to manipulate code as data gracefully, the less graceful it becomes.

And, in my opinion, far more damningly, macros make your program harder to reason about. Before macros, a reader could assume that the first thing in the s-expression was operating on everything else in the s-expression. But no longer. We can't even assume that sub-s-expressions in the s-expression are evaluated first.

This isn't a hypothetical problem. Common Lisp programmers spend a ton of time talking about how to write macros so that they're not going to come back and bite you in the butt when they get used in an unexpected situation. And the reason is, nobody really knows how to do it.

So, with a great deal of respect for McCarthy based on his many other achievements, I have to say I don't care about macros, and actually think we're better off without them. First-class functions are a much more coherent, consumable way of using code-as-data.

Most of the features of Common Lisp I actually want are in other languages now. Garbage collection? REPLs? First-class functions? Higher-order functions? They're all in other languages now. Python, for example has all those things.

And to be honest, other languages have done a lot better things with the functional programming aspects of Common Lisp. McCarthy gets credit for inventing a lot of stuff, but we don't fly Wright-brothers style planes today and we shouldn't use Common Lisp just because it was first to have those things. More sophisticated type systems make lambdas more powerful (and incidentally, a lot of the problems with macros can be seen as type problems).

People on this thread are claiming, "Learning Common Lisp turns you into a better programmer". But I tend to think that learning _functional programming_ is the part that people are referring to, and frankly, there are better languages in which to learn functional programming. Haskell, Standard ML, or OCaml would be a better choice.

And sure, there are other features that only Common Lisp has, but nobody is talking about those. Restarts? I'd love to see more people experimenting with those. Then again, Erlang has a way better threading model than anything else and much more sophisticated pattern matching. Scheme has call/cc. Standard ML has a powerful type system. Haskell has functional purity. Prolog has unification. A great many of these are more interesting than restarts.

I don't hate Common Lisp; if nothing else, Common Lisp has a few very solid implementations out there and lots of existing libraries that make it a very useful tool. There are some programs which I wouldn't consider writing in another language. I just don't really think it's the be-all and end-all of programming languages any more, and I'm kind of tired of the cult that has formed around it.

EDIT: s/Lisp/Common Lisp/g because not everyone takes "Lisp" to just mean "Common Lisp".

<comment><USER14> > So the very first thing you do with your macro powers, and pretty much the > only useful thing you can do, is break s-expressions. Once the first macro > is written you can no longer assume that inputs to macros will be > s-expressions with the function at the beginning and arguments following. > Every future macro must account for every previous macro. The more you use > the capability to manipulate code as data gracefully, the less graceful it > becomes.

You should check out Racket's macro system. It's a lot more sophisticated than Common Lisp's. Common Lisp macros are to C (e.g., gensym is a macro-level malloc, you need to manually destructure S-expressions, etc.) as Racket macros are to ML and Haskell (syntax objects are aware of which variables are in scope, so automatic fresh name generation is possible; user-defined syntax classes and patterns let you process arbitrarily complicated structures in a sane way, etc.). If you like the idea of metaprogramming, but `defmacro` left you with a bad taste in the mouth, Racket is totally the language for you.

> First-class functions are a much more coherent, consumable way of using > code-as-data.

First-class functions are easier to use than macros, but they are not "code as data". Furthermore, "code as data" itself is only true with a caveat: the full version is "code in an object language is data in the metalanguage", which is obvious to anyone who has written a compiler. Of course, macros make it easy to use Lisp as its own metalanguage, but there's still a phase distinction between macro-expansion time and when the generated code is actually used.

> And to be honest, other languages have done a lot better things with the > functional programming aspects of Common Lisp.

Common Lisp is a ridiculously powerful language, but it isn't a functional language. It fails to meet the zeroth nonnegotiable requirement in a practical functional language, namely, a notion of compound value: [https://news.ycombinator.com/item?id=12199981](https://news.ycombinator.com/item?id=12199981)

<comment> unpop-opinion > You should check out Racket's macro system. It's a lot more sophisticated > than Common Lisp's. Common Lisp macros are to C (e.g., gensym is a macro- > level malloc, you need to manually destructure S-expressions, etc.) as > Racket macros are to ML and Haskell (syntax objects are aware of which > variables are in scope, so automatic fresh name generation is possible; > user-defined syntax classes and patterns let you process arbitrarily > complicated structures in a sane way, etc.).

Agreed. I did play around with this part of Racket quite a bit and I'm convinced that it's the best system if I wanted to create a domain-specific language. But it still runs into the problem where you're defining a new language with new syntax, which forces you to define even more new language with more syntax in order to make that language useful. It's the best way to build a DSL

But given we already have a pretty good multi-purpose language with a lot of work put into it (Racket) the number of situations where it's worthwhile to create an equally-well-thought-out DSL is pretty low. Racket makes it _easier_ , but it's still not _easy_. Add to this the fact that other people are going to write half-assed DSLs in my code, the net tradeoff is still usually negative, even with Rackets clearly superior macro system.

> Furthermore, "code as data" itself is only true with a caveat: the full > version is "code in an object language is data in the metalanguage", which > is obvious to anyone who has written a compiler.

Uh, I've written a compiler and that's not obvious.

If you want to disagree with me on what "code as data" means, you're welcome to do so. As long as you understood what I said I don't care which words got me there.

> Common Lisp is a ridiculously powerful language, but it isn't a functional > language. It fails to meet the zeroth nonnegotiable requirement in a > practical functional language, namely, a notion of compound value: > [https://news.ycombinator.com/item?id=12199981](https://news.ycombinator.com/item?id=12199981)

How about we assume when I said "functional programming" I'm using the Wikipedia definition[1].

[1] [https://en.wikipedia.org/wiki/Functional_programming](https://en.wikipedia.org/wiki/Functional_programming)

<comment><USER14> > Racket makes it easier, but it's still not easy. Add to this the fact that > other people are going to write half-assed DSLs in my code, the net tradeoff > is still usually negative, even with Rackets clearly superior macro system.

You have a point there. In any case, metaprogramming shouldn't be an everyday activity.

> If you want to disagree with me on what "code as data" means, you're welcome > to do so.

What I mean by "code in an object language is data in the metalanguage" is that, in the (meta)language in which you're writing a compiler or interpreter, the (object language) program that you're processing is represented as a data structure (say, as a syntax tree). It's just a triviality, I'm not saying anything really deep.

From this point of view, it should be clear that a macro system is essentially a language-integrated facility for writing compiler plugins.

> How about we assume when I said "functional programming" I'm using the > Wikipedia definition[1].

My definition of functional programming is "using (procedures that compute) mathematical functions whenever possible". A mathematical function is a mapping from values to values, so if a language doesn't have a good notion of (possibly compound) value, then you're going to run into trouble writing procedures that compute mathematical functions.

EDIT: The Wikipedia definition essentially agrees with me.

"In computer science, functional programming is a programming paradigm—a style of building the structure and elements of computer programs—that _treats computation as the evaluation of mathematical functions_ [emphasis mine] and avoids changing-state and mutable data."

And a mathematical function is a mapping from values (in a domain) to values (in a codomain). Again, quoting Wikipedia[0]:

"A function can be defined by any mathematical condition relating each argument (input value) to the corresponding output value."

[0] [https://en.wikipedia.org/wiki/Function_(mathematics)#Specify...](https://en.wikipedia.org/wiki/Function_\(mathematics\)#Specifying_a_function)

<comment> unpop-opinion > What I mean by "code in an object language is data in the metalanguage" is > that, in the metalanguage in which you're writing a compiler or interpreter, > the object language program that you're processing is represented as a data > structure (say, as a syntax tree). It's just a triviality, I'm not saying > anything really deep.

I understood what you were saying, and didn't ask for an explanation. I just don't see why you felt the need to correct me on my calling first=class functions "code as data" and substitute your own definition that had nothing to do with what I was saying.

> My definition of functional programming is "using (procedures that compute) > mathematical functions whenever possible". A mathematical function is a > mapping from values to values, so if a language doesn't have a good notion > of (possibly compound) value, then you're going to run into trouble writing > procedures that compute mathematical functions.

Again, I didn't ask what your definition was, because it wasn't relevant to the conversation.

You're basically interrupting me to tell me I'm not using the same definitions of words as you are, and it's not particularly endearing. If you don't understand what I'm saying, I'll be happy to explain. If you do, however, understand what I'm saying well enough to correct me on my usage of the English language, then my usage of the language has been clear enough for my goals, so I wouldn't be interested in your corrections even if they represented HN's common usage (which they don't).

<comment><USER14> > I just don't see why you felt the need to correct me on my calling > first=class functions "code as data"

Because first-class functions aren't "code as data". When you have a first- class function, the only thing you can do with it is call it. If it were a data structure, you could analyze its constituent parts.

> You're basically interrupting me to tell me I'm not using the same > definitions of words as you are,

The Wikipedia article you linked says:

"In computer science, functional programming is a programming paradigm—a style of building the structure and elements of computer programs—that _treats computation as the evaluation of mathematical functions_ [emphasis mine] and avoids changing-state and mutable data."

The emphasized part is just what I said. That a mathematical function is a mapping from values to values is unquestionable - it's not something I'm saying, it's a mathematical fact. So if you can't express compound values, you're limited to a world where mathematical functions can only manipulate primitive values.

<comment> unpop-opinion > Because first-class functions aren't "code as data". When you have a first- > class function, the only thing you can do with it is call it. If it were a > data structure, you could analyze its constituent parts.

There are lots of ways in which you can treat a first class function as data, even if it can't be treated 100% equivalently to data in every single situation. You can, for example, pass it to other functions like data. Sure, most languages don't let you inspect the internals, but that's only one way of treating code as data.

> The emphasized part is just what I said. That a mathematical function is a > mapping from values to values is unquestionable - it's not something I'm > saying, it's a mathematical fact. So if you can't express compound values, > you're limited to a world where mathematical functions can only manipulate > primitive values.

I said, "And to be honest, other languages have done a lot better things with the functional programming aspects of Common Lisp." Common Lisp isn't a _purely_ functional language, but it does have functional aspects. Note in the article I quoted, that Common Lisp is the first language listed in the "prominent programming languages which support functional programming such as" section.

You're literally not even disagreeing with me, you're just defining "functional programming language" as "purely functional programming language", when I literally never even called Common Lisp a functional programming language.

Insisting on your definitions instead of trying to understand what I said doesn't make me want to engage with you further.

<comment><USER14> > There are lots of ways in which you can treat a first class function as > data, even if it can't be treated 100% equivalently to data in every single > situation. You can, for example, pass it to other functions like data.

Strictly speaking, you can't pass functions as data. You can only pass thunks that, when forced, yield functions. A thunk is data, but a function is a computation. Computations are "too active" to be stored or passed around unthunked. The technical details are here: [http://www.cs.bham.ac.uk/~pbl/cbpv.html](http://www.cs.bham.ac.uk/~pbl/cbpv.html), [http://www.cs.bham.ac.uk/~pbl/papers/](http://www.cs.bham.ac.uk/~pbl/papers/). (I am not the owner of the website, just in case.)

> Sure, most languages don't let you inspect the internals, but that's only > one way of treating code as data.

What are the others?

> You're literally not even disagreeing with me, you're just defining > "functional programming language" as "purely functional programming > language",

How did you conclude that? I never said anything of the sort. What I said is "functional programming is programming with procedures that compute mathematical functions whenever possible". Pure functional programming imposes further requirements, like effect segregation (as in Haskell) or even the total absence of effects (obviously unsuitable for a general-purpose language). FWIW, I'd count ML, Racket, Clojure and Erlang as functional languages.

> when I literally never even called Common Lisp a functional programming > language.

You said Common Lisp has "functional aspects". Well, closures make a language higher-order, but so do Java-style objects! For a language to be called "functional", however, it has to make functional programming actually pleasant. I showed one fundamental limitation of Common Lisp in this regard: you can't define functions that take or return compound values, because Common Lisp doesn't have compound values in the first place.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER22> A great read. Few words, and everything relevant mentioned.

</comment><comment><USER23> > most Common Lisp implementations are native compiled. ... isn't it nice to > compile down to the metal?

Is just the interpreter native or does cl compile your app to native as well?

<comment><USER24> SBCL compiles to native. In fact thats how you check if the function was tail- optimized -- it will have a JMP opcode instead of CALL

<comment><USER12> To add to this, Most of them compile to native. I think the exception is CLISP. Certain implementations have both because compiling was costly at one point.

</comment></comment></comment><comment><USER25> > he simply asked if Python could gracefully manipulate Python code as data

Have there been any big LISP macro code injection vulnerabilities in the wild?

<comment><USER26> As the other comment says, that doesn't really make sense. However, I have had to debug a codebase where lisps unhygienic macros led to extremely weird errors. The second time that happened in a big project I decided that schemes hygienic macros are superior. The extra cruft writing them is worth it. I have literally spent weeks debugging weird macro errors introduced years after the macro was first written.

<comment><USER27> You're not wrong: simple macros can be written poorly. Macros which don't properly use GENSYM should be rejected in review. Also, it's entirely possible to write a hygienic macro implementation with DEFMACRO: nothing stops a team from doing that (or using one off-the-shelf).

But sometimes you do need the full power of DEFMACRO, and it's not possible to write DEFMACRO with DEFINE-SYNTAX. So one tool enables you to do anything you need, and the other only some of what you need. I know what I prefer.

<comment><USER26> Let's agree to agree then :) I much prefer Racket's macros. Their version of syntax-case is a bit simplified compared to the one shipped with other schemes like guile and chez.

If you want to see where you can go by (ab)using racket macros, watch this: [https://www.youtube.com/watch?v=WQGh_NemRy4](https://www.youtube.com/watch?v=WQGh_NemRy4)

</comment></comment></comment></comment><comment><USER28> Did Kenny ever release his educational software?

<comment><USER29> It appears so, yes: [http://tiltonsalgebra.com/#](http://tiltonsalgebra.com/#)

<comment><USER28> This is amazing. Kenny, please fix the fonts.

</comment></comment></comment><comment><USER30> Is there any advantage in using a functional language when programming non- mathematically related code?

I see how it can help write Neural Networks, AI, financial code, etc. But if you know Python,Ruby,PHP,Java and Lisp (well), why would you choose to write a blog, webstore, webmail client or social media* app (which probably is about 90% of what people actually do) in Lisp over the four three?

I'll tell you why I would chose the first four:

1\. Large community. 2\. Many more libraries. 3\. Easier to hire.

*Except for (perhaps) a small spam-block/feed ai module

<comment> nv-vn Yes. Functional programming (although it isn't necessarily a trait of Lisp) has, in fact, little relation to math (despite what many people believe). It's also very far removed from the field of AI right now (not for any particular reason, but there's no more specific reason to switch to Lisp for AI than there is for desktop or web apps). The reason you'd use Lisp is quite simple -- it saves time and makes programming easier. Macros are the biggest time saver in the world, and you don't realize how much time you waste writing repetitive code until you get to use them.

As for your 3 reasons in favor of the other languages, I think the first means almost nothing at all. Lisp is much easier (once you grasp it) than many other languages, so I think the fact that you'll get less answers on StackOverflow is irrelevant. As for the second reason, as long as you have one library that works for what you want -- say some library for writing web servers -- it doesn't really matter after that. There's rarely any reason to reinvent the wheel here, and there's always someone that attempted such a common task before you. Just because you don't have 3,000 different choices like in Java, doesn't mean that you won't find high-quality code for what you need to do (in fact, I'd argue that Lisp code has a much higer quality on average than Java code). As for hiring, I think Paul Graham has already given the best comments on this. Simply put, a good programmer can be taught to write good Lisp, even if they don't know it by the time you hire them.

</comment></comment><comment><USER31> The whole manipulating code as date just always seems like such a rich target for exploitation like that ruby yaml bug from a while ago [0]. It seems like a features that would be great if your code never needs data from anywhere else but as soon as you gave data coming in from other sources it would be a bit of a nightmare.

0: [http://blog.codeclimate.com/blog/2013/01/10/rails-remote- cod...](http://blog.codeclimate.com/blog/2013/01/10/rails-remote-code- execution-vulnerability-explained/)</comment>


US Ride-Share Drivers Ready for Countrywide Strike Ahead of Uber IPO - <AUTHOR> https://www.thedrive.com/news/27824/us-ride-share-drivers-ready-for-massive-countrywide-strike-ahead-of-uber-ipo <comment><USER2> Sorry but if taxi drivers are committing suicide due to losses on medallion value, they should be protesting city hall, not Uber. If the government wants to create rent seeking monopolies then it needs to have a plan to unwind them when things change.

<comment><USER3> > _Sorry but if taxi drivers are committing suicide due to losses on medallion > value, they should be protesting city hall, not Uber._

Taxi drivers aren't protesting, it's the ride-share drivers who are protesting. Ride-share drivers have grievances with Uber outside of what's happening to traditional taxi drivers.

<comment><USER4> Ride share drivers are protesting;

Taxi drivers are committing suicide;

Please read the article before you take a side;

<comment><USER3> I'm very capable of reading the article, and have.

If you had read and comprehended my post, and the post I responded to, you would have seen that the OP was taking offense to the idea that _taxi drivers_ were protesting Uber.

Having read the article, it is clear that the OP is mistaken, because _taxi drivers_ are not protesting.

Hope this helps.

</comment></comment></comment></comment><comment><USER5> Because Uber's drivers are "independent contractors", there's a legal argument that could be made that this sort of coordinated activity to raise the cost to employ ride-share drivers is illegal under the Sherman Anti-Trust Act.

<comment> kiran-rao Is there any way to enforce this act?

<comment><USER6> Just as an FYI if we do start taking antitrust seriously again there are a lot more important and consequential targets than some low paid car service drivers.

</comment></comment></comment><comment><USER7> and the drivers who refuse to strike will reap the large surge price increases due to shortage of drivers.

<comment><USER8> Short term gain for an arguably-larger long term loss.

<comment><USER9> For drivers, there are only short term gains to be had. Fully autonomous vehicles are the centerpiece of the ride share roadmap (for Uber, Lyft and even Tesla). Drivers might as well capitalize on short term opportunities while they still exist. There is no long term game for them.

<comment><USER10> As a commuter I long for the day after which I never have to interact with a human driver again.

<comment><USER11> It's already wonderful seeing touch screens and self checkout kiosks replacing retail workers who hated being there.

The only issue is that the highest paid blue collar jobs left are in transportation and construction. Those are on the chopping block.

Then what?

What new system will we use to ensure those people have a life they find agreeable.

<comment><USER7> > What new system will we use to ensure those people have a life they find > agreeable

After blue collar jobs are eliminated, people will need to skill up in order to create an agreeable life. The best that the state can do is UBI, but that's not an agreeable life - it should be at best, just life.

<comment> jo-wol Software engineers are new blue collar class.

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> Primary source: [http://www.nytwa.org/home/2019/5/3/strike-uber-lyft-all- app-...](http://www.nytwa.org/home/2019/5/3/strike-uber-lyft-all-app-drivers- on-wed-may-8th-7am-9am)

</comment><comment><USER13> 2 Lyft drivers in a row ditched me today. Maybe the strike started early.

<comment><USER14> More likely you were going to an undesirable location, were asking to be picked up in an inconvenient place, or didn't come out within 5 minutes.

<comment><USER13> 1) I was going to one of the fanciest neighborhoods in my city

2) There was a marked Lyft pickup location because it is a local hotspot

3) I was on the curb before ordering the car.

Per the GPS, first car just never moved. Second one just kept driving further and further away while I waited.

<comment><USER14> Fair enough, the driver may not have perceived it that way though. Just because it's a fancy neighborhood doesn't mean it's a desirable drop-off location for the driver's purposes. Just because there is a Lyft pickup spot out front doesn't mean it is easy to get there from where the driver currently is.

Another possibility is that your ride wasn't subject to a primetime fare and they thought that they had a good chance of getting one that was by canceling and waiting for the next request. That doesn't justify poor driver behavior, but I'm just being realistic.

Apologies for implying that you were doing anything wrong, I only meant to give a driver's perspective of the valid reasons for avoiding rides.

That said, I've gotten the impression that I'm more 'honest' than most drivers so it's possible there are some scams or strategies which create weird incentives/behavior that I'm not aware of.

</comment></comment></comment></comment><comment><USER15> Isn't Uber giving drivers up to a $10k bonus on IPO based on how many rides completed, with the option of taking it in cash or equity at the same IPO price?

That is really significant and pretry equitable.

</comment><comment><USER16> It'll be interesting to see what happens once all the workers in the gig economy recognize the power they have to just destroy these companies. Uber can't really retaliate people organizing against them because they aren't employees.

<comment><USER17> They have no power. They have numbers but they can't use them.

They are too poor and too desperate to be unemployed for long, they have no benefits, and many will be replaced with robots.

The gig economy is an underclass. They are serfs. Unless they rise up violently nothing will change.

<comment><USER18> or take up a skilled trade

<comment><USER19> Leaen2code

<comment><USER20> Could you please stop posting unsubstantive comments to Hacker News?</comment></comment></comment></comment></comment>


Why Hundreds of Mathematicians Are Boycotting Predictive Policing - <AUTHOR> https://www.popularmechanics.com/science/math/a32957375/mathematicians-boycott-predictive-policing/ <comment><USER2> "The technology is supposed to use probability to help police departments tailor their neighborhood coverage so it puts officers in the right place at the right time."

So if there have been many shootings in a neighborhood, the police should ignore that data in deciding where to patrol? That is stupid and will result in more people being shot. So many things done in the name of Black Lives Matter actually cost the lives of blacks and others.</comment>


Why I DON'T regret getting straight A's in college - <AUTHOR> http://robbieallen.com/2007/12/thirtysomething-why-i-dont-regret-getting-straight-as-in-college/ <comment><USER2> I'm in university now, and I hate seeing the people around me more concerned about their marks than how much they are learning. For one thing, it's been shown that people enjoy things more - and do better - when they are motivated by an internal desire instead (say, curiosity or a desire for education) of an external reward (marks).

I am in the fortunate situation that I don't have to prove myself to anyone [1] (although I try to keep my options open for grad school), so I can focus on learning instead of pretending to. That isn't to say that everyone who gets straight A's is pretending; but in my experience someone who's main motivation is to maximize their marks does so at the expense of their education. In theory the two are perfectly correlated, but in practice they aren't.

[1] I don't mean to say that I don't have a psychological need to prove myself to others and others do, but that I don't have an immediate need to keep high marks. Between scholarships, marks, internships, etc. most people I know need to stress over marks for one reason or another.

<comment><USER3> "I hate seeing the people around me more concerned about their marks than how much they are learning."

I hate seeing the people around me more concerned about anything than how they treat other people.

</comment></comment><comment><USER4> I find grades are only a cursory indicator of intellectual worth. For sure, those who achieved A's are definitely hard-workers and have most probably looked into certain subjects at more depth and breadth (which they'll hopefully remember lest the whole educational experience seems totally worthless to me).

I achieved A's in university. But then I know a guy who did poorly in comparison. Whereas I found what the markers expected of me he found what he wanted to know and explored what he wanted to explore, often deviating with standard practice to the detriment of his grades.

Although we are both as competent as each other his university edification seemed far more personally worthwhile; I learnt for the markers and industry he learnt to increase his understanding and capability in areas sometimes not formally rewarded (with marks).

I'm sure you can do both: accept the curriculum and learn it for your own benefit. I'm sure this is more or less everyone's ideal. But it seems a lot of people loose focus on their personal edification and concentrate on pleasing their markers.

For an example, I'm sure there are courses on XML. You could spend your time becoming adroit in your Schema definition et al or you could spend your time pondering about the general subject in more depth and even rejecting the conventional wisdom. I'd argue the latter course of action is quite valid; but you won't get any marks for it.

</comment><comment><USER5> "I too was obsessed with getting straight A's in college (undergraduate)."

Makes me wonder about the other casualty besides friends & time -- namely experimentation at the time you should be exploring fields of interest. The drive to get straight A's could prevent students from taking "risky" courses, ones that could ruin that perfect GPA. Pre-meds/law that take Physics for Poets instead of Physics for aspiring Physicists. Going for the grades might lead you to avoid interesting courses that are far from your perceived strengths, or jumping into a cool grad-level course where you don't quite meet the prerequisites.

<comment><USER6> There may indeed be a correlation to gpa perfection and incuriosity.

<comment><USER7> Because no one ever takes classes they're interested in _and_ actually manages to do well in them...

<comment><USER6> Hardly. And I'm sure you're not the type I'm referring to, one who throws an equal amount of energy into everything and therefore focuses on nothing. They are looking for the grade rather than mastery, insight, or comprehension.

<comment><USER7> I actually am the type, sort of. Which is why I take exception to the generalizations you're making.

I think it's entirely plausible that a person goes through college taking classes--including difficult ones--that they're interested in and getting good grades in all of them. I also think it's not impossible to have mastery or insight or comprehension (or all three) in spite of breadth of study. I base these beliefs on my own experience...

<comment><USER6> You are not the type I am speaking of then because to you comprehension and insight _are_ important, and good grades are an artifact of that.

</comment></comment></comment></comment></comment></comment><comment><USER8> Skimping on sleep in undergrad and not regretting it, chalking it up as "practice" for life sleeping in a cube? That doesn't sound very fun. I think there's a saying. . . something like "A students end up working for C students."

I've always wondered where that leaves B students. I have no ideas how many A's I earned, exactly, but I do recall my GPA to a vague notion of a range between 3 decimal places.

<comment><USER9> I believe the C students work for the B students in the business world.

B > C > A.

And the D students run the country (into the ground.) ;-)

<comment><USER10> That sure sounds like a joke.

</comment></comment></comment><comment><USER7> _"For type-A personalities like myself, it is very difficult to turn my passion for achievement off and on like the flip of a switch."_

Basically all that needed to be said.

</comment><comment><USER11> Many of you are missing the point. (neilc has it right) I didn't want to achieve straight A's for the sake of achieving straight A's. It is not like I told anyone (or needed to prove myself to anyone else). I did it because that was the mark of achieving mastery in the course (now you may disagree with that). Most of the poeple I knew that claimed to be learning a lot outside of the class curriculum and ended up with C's actually didn't learn very much because they spent more time slacking off than trying to learn.

As far as spending time to get A's instead of exploring, I didn't mention it but besides the two internships I also participated in a study aboard at the University of Manchester (England) and traveled all over Europe.

People see this issue as black and white, but trying to get A's does not preclude you from doing other things. You just have to be willing to put in the time to get A's (ie, learning the subject matter) PLUS do other things. Most people don't have the work ethic.

-Robbie

<comment><USER12> > People see this issue as black and white, but trying to get A's does not > preclude you from doing other things.

I believe that it does. A small number of people, in general, make good use of the extra time afforded by slacking on grades, but we here on yc news probably aren't talking about the average person.

People I know who got straight A's were very one-minded. The huge number of clubs that they were in fools no one. Straight A's is almost a guarantee that the person has expertise in nothing else substantial, from what I've seen.

</comment></comment><comment><USER13> Sleeping in your cubicle? Yeah, you rock, dude.

</comment><comment><USER14> The other guy's argument was much, much better.

<comment><USER15> Agreed. I was fairly entrepreneurial in College (at the expense of my grades) and I'm really glad of it. I wish I'd traveled more and done a bit more on the intramural front, but am damn glad I didn't invest the time necessary to get straight As.

<comment><USER16> If you're actually using that extra time to pursue entrepreneurial activities and you're sure you don't want to attend grad school, then you're probably right. For the _vast_ majority of students, though, I don't think that is the case: much of the time saved by not doing well in class is just squandered doing the typical things college students do. If you're willing to put in the effort, you should have enough time to get As and still do lots of worthwhile extracurricular things (I certainly did, in any case). Also, having good college marks (plus good letters of recommendation from profs) is always a useful backup in case you ever decide you want to go to grad school in the future.

<comment><USER12> For the typical student, I'd say they're far better off having something of a social life than chasing after straight A's.

<comment><USER16> Well, perhaps for the "typical" student, sure -- but by most metrics I would say the YC news audience is atypical. If you have a small amount of natural ability coupled with a work ethic, it is not a matter of getting As _or_ having "something of a social life" -- you can have both.

<comment><USER12> You brought up the "vast majority of students".

</comment></comment></comment></comment></comment></comment><comment><USER17> I sucked in almost all my classes for the time I went to uni. A part of me really started believing that I was simply dumb at all those subjects I was doing bad in. In last six months since I took a leave, I have enjoyed learning stuff on my own that I can recall being taught in classes I hated.

Now it is almost like when I _do_ go back to school someday, I will be better prepared having self-studied what is being taught in class. A whole new reason to leave school: so you can better prepare yourself for it=)

Do what works for you!

</comment><comment><USER18> The point of college is more babysitting, except this time you pay for it (in grade school, taxes paid for it).

If this gets you in debt, you then have to work it off by being supervised in yet another babysitting situation/nanny-state position, working for The Man.

Any benefits you manage to get out of it are incidental.

<comment><USER12> I definitely agree with compensation being incidental for most people. Everyone just follows the expected route.</comment></comment>