[HN Gopher] Reddit 1.0 was written in Lisp
       ___________________________________________________________________
        
       Reddit 1.0 was written in Lisp
        
       Author : newsoul
       Score  : 202 points
       Date   : 2023-06-17 04:19 UTC (18 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | wudangmonk wrote:
       | The current reddit seems to be written in js/python. I can see
       | the logic behind js since its a lot easier to find devs and
       | thanks to all the hard work of the engineers behind v8 its not a
       | slow language. I do not understand why python was chosen though.
       | If you need more speed you would go with c++ and not python which
       | is the slowest popular language.
       | 
       | Anyone got any insight into why python was chosen?.
        
         | colordrops wrote:
         | I imagine because it's obviously "fast enough" performance-
         | wise, and an order of magnitude faster dev-wise and hiring-
         | wise.
        
           | littlestymaar wrote:
           | Not fast enough to keep their operational at bay though.
        
           | buildbot wrote:
           | Not fast enough to develop good moderation features with 2000
           | employees
        
             | winrid wrote:
             | I would argue that's because they went the microservices +
             | react route, so now everything is probably more difficult
             | to implement, especially since the monolith is still in the
             | center.
        
         | badrabbit wrote:
         | Ummm...same reason as JS? Why do you think they need more speed
         | to the point they need c++? Do you think finding c++ devs
         | easier than python devs?
        
           | wiseowise wrote:
           | > Ummm...same reason as JS? Why do you think they need more
           | speed to the point they need c++?
           | 
           | Well, given complaints how much 3rd party apps cost them,
           | they'd better off optimize their crap first.
        
             | badrabbit wrote:
             | It's not really about cost, it's about convincing investors
             | CEO dude is in control and can make reddit profitable for
             | their planned IPO. "We spent a shitton of money migrating
             | to C++ and hiring expensive and harder to replace C++
             | talent to optimize shit" is not a good selling point.
        
               | wiseowise wrote:
               | I know what their plan is, just pointing out their
               | hypocrisy.
        
         | hickelpickle wrote:
         | Because Spez can't read it, he can only parse shapes.
         | 
         | https://www.youtube.com/watch?v=oq7DEUhr7o0
        
           | sen wrote:
           | I can't tell if this is an AI fake or not, and that scares
           | me.
        
             | mtlmtlmtlmtl wrote:
             | It was uploaded 9 years ago. Definitely real.
        
           | dimal wrote:
           | That's not what he said. He's actually making an interesting
           | point about readable code. I'm not defending his current
           | behavior, just these comments about readable code.
        
         | traverseda wrote:
         | Do you actually think CPU usage is a concern here? Database
         | performance and optimization, horizontal scaling, cache
         | optimization (and cache invalidation) are the big problems.
         | Security is also a big problem.
         | 
         | The performance critical part is the database, and that at
         | least used to be written in Java (cassandra db).
         | 
         | Writing the bit of glue code between your high performance
         | database and your fronted in cpp would introduce all kinds of
         | really bad potential bugs, scary remote code execution bugs.
         | 
         | CPU usage of that glue code might take up 10% of your hardware
         | budget worst case, even with a "slow" language. It's just not a
         | concern.
        
           | TeMPOraL wrote:
           | We're not talking about 10% factors, but 10x factors between
           | slow and fast languages. People say CPU usage doesn't matter
           | when you're horizontally scaling, but horizontal scaling
           | increases your ongoing operational costs, and you often are
           | horizontally scaling precisely _because_ your code is too
           | slow.
        
             | traverseda wrote:
             | What percentage of cpu time do you think would be spent in
             | python land?
        
         | phire wrote:
         | I'm not sure why python was chosen.
         | 
         | But I contributed a tiny bit of code to reddit back when it was
         | open source and chatted with reddit engineers on IRC, so I do
         | know the official justification (as of 2010ish) for reddit
         | sticking with python:
         | 
         |  _Websites are mostly IO bound anyway. The hot parts like
         | markdown formatting and templating are already c modules. So
         | the performances gain for rewriting in a compiled language aren
         | 't large enough to justify it._
        
           | Baeocystin wrote:
           | That seems reasonable to me, even today. Am I off-base?
        
             | vlakreeh wrote:
             | Incredibly reasonable. People love to trash on the
             | performance of Python and JS saying that they're totally
             | unsuitable for backend services with non-trivial amounts of
             | traffic when they're usually the most cost effective
             | solution for a business. These higher level languages are
             | easier to hire for, much easier to prototype, allow for
             | faster iteration, allow for substantially faster on-ramp
             | time, and are fast enough to run these io bound workloads.
        
               | dilap wrote:
               | we have account servers for a game in java that end up
               | being cpu bound (we have to scale up based on cpu, not
               | network), which is much much faster than python.
               | 
               | so i would be surprised if a server written in python
               | could saturate the network, for a reddit-style workload,
               | which i imagine would be similar.
               | 
               | any1 have relecent experiences to share?
        
               | hedora wrote:
               | I have had the opposite experience with every python team
               | I have interacted with.
               | 
               | On top of it being slow and brittle, dependencies break,
               | needlessly destabilizing stuff.
               | 
               | Worse, the python team ends up having the hardest job,
               | due to self-inflicted problems, so it either ends up with
               | junior devs that don't know better, or bitter senior devs
               | that could be 10x more productive doing something else.
               | 
               | As always, it varies from company to company, but this is
               | what I saw on four teams out of four at multiple
               | companies.
        
               | pphysch wrote:
               | > dependencies break
               | 
               | You can abuse dependencies in every language. This
               | doesn't sound like a Python problem but a bad tech
               | management problem (i.e. who signed off on allowing
               | 'randomguy69/left-pad' as a dependency).
        
               | varjag wrote:
               | With Python it doesn't take abuse. You blink and the
               | bloody thing rots away.
        
               | pphysch wrote:
               | Relative to what other language?
        
               | varjag wrote:
               | Any other than JS/node really. But since this thread
               | mentions Common Lisp, its package management system
               | rarely blows up in your face.
        
               | lanstin wrote:
               | go lang
               | 
               | done a few services and CLIs and never had updating deps
               | break anything unless you count newer linters complain
               | about new things.
        
             | veave wrote:
             | reddit never cared much about performance, they blame it on
             | IO but they chose to use cassandra, they used it as a key
             | value store, then they put python on top of it, with the
             | result that most pages would take seconds to generate and
             | the website would go down almost every day.
             | 
             | With the "new" reddit they replaced most of the frontend
             | with javascript and it really shows. That's not to say I
             | like sites that use too much javascript but python is slow
             | enough just parsing and filling html templates, seemingly.
        
         | winrid wrote:
         | It was chosen because at the time because python was much more
         | mature and productive. They didnt use Django, but as an example
         | Django is still more productive than any Node framework I've
         | tried thus far, too, and we have types now. :)
        
           | markdown wrote:
           | Aaron Swartz replaced the Lisp with web.py
        
             | earthboundkid wrote:
             | Yes, web.py was his baby. He also had some markdown parser
             | stuff.
             | 
             | Baby boomers always tell me about seeing The Doors live in
             | dive bar in NYC. I can say I used Reddit when it was
             | written in Lisp. :-)
        
           | brabel wrote:
           | There's a post explaining exactly why they moved from CL to
           | Python, and it was basically because of library availability.
           | 
           | https://web.archive.org/web/20060206185841/http://reddit.com.
           | ..
           | 
           | Why they moved away from CL:
           | 
           | "If Lisp is so great, why did we stop using it? One of the
           | biggest issues was the lack of widely used and tested
           | libraries. Sure, there is a CL library for basically any
           | task, but there is rarely more than one, and often the
           | libraries are not widely used or well documented. Since we're
           | building a site largely by standing on the shoulders of
           | others, this made things a little tougher. There just aren't
           | as many shoulders on which to stand."
           | 
           | And why Python was chosen:
           | 
           | "So why Python?
           | 
           | We were already familiar with Python. It's fast, development
           | in Python is fast, and the code is clear. In most cases, the
           | Lisp code translated very easily into Python. Lots of people
           | have written web applications in Python, and there's plenty
           | of code from which to learn. It's been fun so far, so we'll
           | see where it takes us."
           | 
           | So, basically, they were happy with CL except for lack of
           | libraries, and because they also knew Python already, and
           | they knew there were more libraries for Python, they picked
           | it. Simple as that.
        
           | codetrotter wrote:
           | NodeJS didn't even exist when Reddit started using Python, as
           | far as I can tell.
           | 
           | Initial release of NodeJS was May 27, 2009; 14 years ago.
           | 
           | Swartz was involved in the development of Reddit until he
           | departed from the company in 2007.
           | 
           | And we know that parts of the Python code for Reddit was
           | written by Swartz.
        
             | littlestymaar wrote:
             | Wow, that sounds so early to adopt Python!
        
               | xcv123 wrote:
               | Python was released in 1991.
        
               | littlestymaar wrote:
               | And Ruby in 1995, but it wasn't before 2005 (and Rails)
               | that it reached traction. In 2007, albeit 16 years old,
               | Python was still far from mainstream, especially out of
               | its scripting niche.
        
               | js2 wrote:
               | That's not true. We were using Python 1.5.2 at a well-
               | funded startup I was at from 2000-2007. We were an early
               | cloud provider and maybe 1/3rd of our customers were
               | using Python. This was in the 3-tier stack days and Zope
               | was fairly popular for the application server.
               | 
               | The internal tooling we built was mostly in Python.
        
               | grogenaut wrote:
               | I'd used python on 3 commercial apps by 2007. One for
               | Boeing, one for the navy one for an insurance company.
               | Ruby was a little different. Ruby without rails had no
               | real standards for making big apps. And I'm not sure when
               | gems was made at rails con by Seattle ruby. Rails was for
               | a long time a mega library for ruby... Ruby was missing a
               | ton of features without rails. Similar but worse than a
               | node web app versus working in a react app. No hot
               | reload, no lib directory, many other features.
        
               | wk_end wrote:
               | That doesn't match my recollection. I'm not sure how to
               | prove anything, but I'll note that Python 3.0 was
               | released in 2008. If Python 2 wasn't already extremely
               | popular and well-established at that point, I doubt we'd
               | have seen the brutal 10+ish year migration from it.
        
               | littlestymaar wrote:
               | > I'm not sure how to prove anything, but I'll note that
               | Python 3.0 was released in 2008. If Python 2 wasn't
               | already extremely popular and well-established at that
               | point, I doubt we'd have seen the brutal 10+ish year
               | migration from it.
               | 
               | This is about the "scripting niche" I was talking about:
               | in 2008 every Linux distro included Python and lots of
               | build scripts were written in Python 2, but Python for
               | the back-end was really rare back then.
        
               | scrollaway wrote:
               | Yeah python for the backend started taking off with
               | Django, which only released 1.0 and picked up steam in
               | 2008.
        
               | qup wrote:
               | Django was already very good well before 1.0, and had at
               | a minimum some of the best documentation out there. I
               | seem to recall a decent community, video tutorials, etc.
        
               | nostrademons wrote:
               | It depends how you define "mainstream".
               | 
               | Python was definitely around, had a very strong
               | community, and a number of very significant programs
               | written in it. (Among them: the first versions of
               | BitTorrent and Google.) However, if you were a random dev
               | applying for a random job, you would most likely have to
               | work in C++, Java, or C#. It was relatively difficult
               | getting a job where you would write the majority of your
               | code in Python. Certainly they existed, and many jobs
               | would have you write small one-off scripts in Python, but
               | the actual core product would usually be one of
               | Java/C#/C++.
               | 
               | Remember that in 2009, Google had 20K employees while IBM
               | (which was a major booster of Java) had 400K. And at
               | Google, Python wasn't really allowed for major projects
               | (Search had been rewritten from Python to C++ when it got
               | big in 2000), so you'd be using Java or C++ anyway. Data
               | science wasn't really a thing, and if you did machine
               | learning you used frameworks like Weka or home-grown
               | stuff.
        
         | mg wrote:
         | I have a theory (which nobody I ever met shares) that the
         | visually most beautiful language is the one that long-term
         | results in the fastest development of a project:
         | 
         | Visual noise is like inflation. A constant tax on what you do.
         | But you barely notice it. But it accumulates because it is
         | constantly leading to slightly worse and more complex code.
         | Since it is harder to focus on a noisy something in front of
         | you, you make slightly worse decisions. Over time this
         | accumulates. And similar to how Warren Buffet noticed that a
         | Dollar of his youth is not even worth a penny these days, over
         | time, exponentially more effort is needed to develop the more
         | and more complex system.
         | 
         | So over a longer timeframe, a visually more elegant language
         | wins by a long shot.
         | 
         | Python is the visually most elegant language.
        
           | mtlmtlmtlmtl wrote:
           | __visuallyelegant__
        
             | paganel wrote:
             | That should trigger the good sense of any "Zen of Python"
             | die-hard. Not saying I haven't used/got access to double-
             | underscore thingies in Python in my 15+ years of writing
             | Python code, but I always felt dirty in doing that.
        
               | asplake wrote:
               | But isn't that the point? The naming convention is for
               | protocols that have syntax support
        
           | jitix wrote:
           | What you're saying is only partially correct - Yes, for more
           | exploratory programming for a new product with full
           | US/EU/CANZUK based dev workforce it makes sense to prioritize
           | maintainability.
           | 
           | For a company complaining about infrastructure costs for a
           | product that has been cloned many times over, and which is
           | large enough to hire offshore devs, the cost equation favours
           | rewriting in something like Go, Rust or even Java. These are
           | quite tailored towards Reddit's current use case and many
           | companies including Twitter did that rewrite.
        
             | mg wrote:
             | Using a language with a faster runtime makes the system run
             | faster. But it does not compound. So you are limited to a
             | ceiling at about an order of magnitude faster execution.
             | 
             | Making better decisions on a daily basis compounds. You
             | evolve towards a better architecture. Which can make the
             | code multiple orders of magnitude faster.
             | 
             | One of many examples: In a complex system, developers often
             | have a blurry vision of what can be cached, in which
             | situations it can be cached, and how cache invalidation
             | should be done. While in a more elegant system, the borders
             | between different approaches to caching are clearer.
             | Leading to the more elegant system being multiple orders of
             | magnitude faster as it can leverage the different caching
             | layers (in memory cache, on disk cache, the CDN ...) more
             | effectively.
        
               | TeMPOraL wrote:
               | This doesn't sound like argument in favor of Python,
               | though. In my experience, Python code quickly reaches the
               | level of an impenetrable word salad, at which point all
               | the compounding stops.
        
           | Ferret7446 wrote:
           | Those hypothetical tiny gains are instantly and completely
           | eclipsed by the lack of static checking support.
        
           | ssivark wrote:
           | > Python is the visually most elegant language.
           | 
           | Having program login buried in a nauseating amount of
           | boilerplate doesn't feel very "visually elegant" :-P
        
           | isatty wrote:
           | I agree with you. C++ and Python are great. Haskell looks the
           | best but it's way too tiring to write. Go is the worst
           | offender.
        
           | Aardwolf wrote:
           | This depends on your editor color settings though. C++ can
           | look very handsome
        
             | wiseowise wrote:
             | C++ looks very handsome.
             | 
             | Usually someone will pop up showing crazy meta programming
             | template code and use it a straw man to declare cpp=bad.
        
               | TeMPOraL wrote:
               | Which is why elegance argument would've favored staying
               | with Lisp - not only it looks elegant, but also you can
               | do all the "crazy metaprogramming" without the crazy, but
               | rather in straightforward and elegant code.
               | 
               | And I say that as someone doing C++ for a living, and
               | occasionally engaging in said crazy template
               | metaprogramming stuff. Occasionally, because people tend
               | to frown at it during code review; apparently,
               | metaprogramming is reserved only to library authors...
        
               | nurettin wrote:
               | I've bee using C++ since the late 90s, and namespaces are
               | still annoying.
        
               | lenkite wrote:
               | Just use `using namespace std;` inside your function and
               | C++ suddenly becomes nice.
        
               | wiseowise wrote:
               | How so?
        
           | bitwize wrote:
           | Scheme has entered the chat.
        
           | stuaxo wrote:
           | Although now people use types with python, is it still ?
        
             | mg wrote:
             | What other people use does not change how you can use the
             | language. You don't have to use types.
             | 
             | I just took a look at the 4 latest Show HNs which are
             | written in Python. None of them uses types.
        
         | marcinzm wrote:
         | In my experience one of the limiting factors of a language as
         | you scale is library support. You want to do more complex
         | things (for better or worse) or integrations (monitoring, etc.)
         | but the development cost is very high since you have to write
         | the whole part yourself or make tradeoffs on the limited
         | libraries available.
        
       | susam wrote:
       | MathB.in, a simple pastebin for mathematical snippets, went in
       | the opposite direction. It was first written in PHP and then
       | later rewritten in Common Lisp. See
       | https://susam.net/blog/mathbin-turns-ten.html for the full story.
        
         | o1y32 wrote:
         | I would argue that for such a small website (in the sense of
         | both codebase size and traffic), which language is used does
         | not matter, and is almost purely a personal preference.
        
           | susam wrote:
           | Yes, it was personal preference indeed. I have written a
           | little more about that here:
           | https://news.ycombinator.com/item?id=32980708
        
         | prirai wrote:
         | I've tried mathb and it feels amazing and blazing fast. Perhaps
         | the best way to go for typing in quick snippets and sharing
         | with others.
        
         | vjust wrote:
         | I checked out MathB.in. Neat stuff!! I've started and stopped
         | with the Lisp/Schema family several times. When other languages
         | frustrate me, I go back to lisp for some therapy.
        
       | jeffrallen wrote:
       | > (defvar _database-password_ "pgcwip42:")
       | 
       | Hope they changed that password!
        
       | mchaver wrote:
       | So I've read that they wrote it in Lisp at Paul Graham's request
       | or to win favor. Does anyone know if writing your startup code in
       | Lisp still has that benefit?
        
         | lc9er wrote:
         | Yes. The best decision they made was to flatter a billionaire's
         | ego. Then Reddit largely succeeded despite them.
        
           | defen wrote:
           | I doubt pg was a billionaire in 2005
        
         | agumonkey wrote:
         | i have very very limited experience, but at the time lisp still
         | had some values that weren't mainstream
         | 
         | that said a language can push you to the moon or help you crash
         | faster, team culture and fit will matter more IMO
        
         | coldtea wrote:
         | It never had any particular benefit to write your startup code
         | in Lisp.
         | 
         | That myth came from a few posts by a person who was a huge
         | proponent of Lisp, in an era were web (front and backend)
         | development was much easier, and web-related libraries were
         | lacking in all languages (so it wasn't like Lisp's smaller
         | popularity would hurt you there).
         | 
         | It's an example of one.
         | 
         | If they didn't get lucky and Yahoo! bought some other company
         | in the same domain in their place (they already have a few
         | competitors) the whole "Lisp as a secret weapon" would be moot.
         | 
         | Statistically speaking, 99.9% of succesful startups were
         | written not in any Lisp, and 0.1% of them in Lisp. Not the
         | biggest 0.1% either, more towards the bottom, in the context of
         | web company deals during the ramp up to the dot-com bust.
         | Viaweb was sold for $50 million. For context, Yahoo! bought
         | Broadcast.com a year later for 5 billion and doc.com startups
         | of the era routinely raising and burning $50-$100 million for
         | fun - heck, Razorfish (a design consultancy) built websites for
         | clients like Levis, Sony, Mercedes Benz, etc. for $20-$40
         | million (and that's late-90s era websites, nothing especially
         | fancy).
         | 
         | Of course all that's irrelevant to whether Viaweb was written
         | in Lisp. Which is my point, exactly. What's more, Yahoo! even
         | scrapped all their Lisp code soon after.
         | 
         | Now, writing your startup code in a productive language, that
         | doesn't slow down the development team, allows for easy+quality
         | hires, and so on - even if it's not the best for when you get
         | huge, is a benefit. That hardly requires Lisp.
        
           | PheonixPharts wrote:
           | > Statistically speaking, 99.9% of succesful startups were
           | written not in any Lisp, and 0.1% of them in Lisp.
           | 
           | I think the point that PG was making wasn't that
           | P(lisp|success) > P(blub|success) is what's key but that
           | P(success|lisp) > P(success|blub)
           | 
           | > What's more, Yahoo! even scrapped all their Lisp code soon
           | after.
           | 
           | I'm hardly a PG fanboy, but I have to say this is exactly
           | what's expected in PG's original post on the subject[0]. It's
           | precisely because big companies will only stick to blub
           | languages that Lisp becomes an advantage for a startup.
           | 
           | The point of "Beating the Averages" isn't that you must use
           | _Lisp_ but that small groups of elite hackers can use more
           | powerful tools than larger organizations can 't get away with
           | because they generally have lower skilled, only comfortable
           | with blub, programmers.
           | 
           | The reason we don't see many startups following this advice
           | now isn't because it's wrong (necessarily), but because since
           | that essay was written, the vast majority of the startup
           | ecosystem has come to resemble large companies. We've had a
           | pipeline churning out devs for many years now. The ones that
           | are great at leetcode and playing the game go to FAANG, the
           | ones that aren't go to startups. It's not even about where
           | the higher skilled devs are because that hasn't played a
           | factor in most companies success in a long time.
           | 
           | With rare exceptions, startups are no longer created by
           | brilliant hackers looking to change how things are, but by
           | business minded people looking to take advantage of the easy
           | VC money in the last decade. Interviewing at startups used to
           | be exciting, now the vast majority feel like they're run by
           | people who couldn't manage to get a director role at a FAANG.
           | 
           | 0. http://www.paulgraham.com/avg.html
        
             | jocaal wrote:
             | I think the real reason startups are using blub is
             | something else entirely, tooling. The reason lisp was cool
             | in the early days were because it allows you to easily
             | build abstractions to improve productivity, but these days
             | any language comes with a decent web framework. You also
             | get fancy IDE's and language servers and SDK's from your
             | cloud provider. The productivity a large ecosystem gives
             | you IMO is much larger than what a language can provide.
        
             | jcpst wrote:
             | > We've had a pipeline churning out devs for many years
             | now. The ones that are great at leetcode and playing the
             | game go to FAANG, the ones that aren't go to startups.
             | 
             | What about companies with a technology department that
             | aren't FAANG or a startup? Isn't that where most devs go?
        
             | antupis wrote:
             | I think that difference is that now every mainstream
             | programming language is so good that there is not that much
             | difference outside very specific niches. That was not case
             | in 2003.
        
             | coldtea wrote:
             | > _I think the point that PG was making wasn 't that
             | P(lisp|success) > P(blub|success) is what's key but that
             | P(success|lisp) > P(success|blub)_
             | 
             | Perhaps, but that was handwaving from an example of one.
             | 
             | Would Lisp startups dominate if more people did Lisp
             | startups?
             | 
             | I seriously doubt so, but in any case, the examples we see
             | are people not doing Lisp startups and succeeding just fine
             | - with the language used hardly being a serious factor
             | (compared to timing, feature set, user adoption, VC
             | interest, and mere dumb luck).
             | 
             | > _Interviewing at startups used to be exciting, now the
             | vast majority feel like they 're run by people who couldn't
             | manage to get a director role at a FAANG._
             | 
             | Isn't the latter true for most real hacker types?
        
           | abecedarius wrote:
           | Lisp-vs-mainstream was just a very different comparison in
           | the 90s versus now. Most of Lisp's advantages have been
           | incorporated into its big competitors. At the time the
           | advantages were nothing to sneer at, even though there were
           | counterpoints then too.
        
         | FlyingSnake wrote:
         | While I'm sure there are startups using Lisp, Clojure might be
         | the most widely used List dialect amongst startup.
        
         | fnordsensei wrote:
         | As someone who's been involved in both, it's not like the
         | language you pick doesn't make a difference, but I'd say that
         | there are other factors that vastly overshadow it.
         | 
         | For example, one thing we were told when choosing to write in a
         | lisp was that we'd have problems finding developers. It turned
         | out to be true in that we received fewer applications, but
         | compared to the same process with a more mainstream language,
         | I'd say the applicants were on average of higher quality. So by
         | the final step, we were approximately considering the same
         | number of resumes in both cases.
         | 
         | But in the end, the language is not what has made the biggest
         | impact. It's been other, more universally applicable things,
         | such as team dynamics and communication, clarity of vision and
         | consistency in execution, process and planning, and a ton of
         | other things where the particular language is not a factor.
        
           | bitwize wrote:
           | Many of the most famous "done in Lisp" products I know of
           | have the delightful feature that it's not Lisp itself that
           | provides a solution that other languages _can 't_. Rather:
           | 
           | 1) Developers who like Lisp tend to be really smart, well-
           | read, and well-educated.
           | 
           | 2) Lisp streamlines these developers' thought processes,
           | allowing them to get more done with less, fast.
           | 
           | For example, the early Naughty Dog games written in GOOL/GOAL
           | take clever advantage of asset data to produce effects close
           | to the very edge of what the PlayStation/PlayStation 2 can
           | do. No feature in these Lisp languages made this possible
           | where C or C++ could not, but working in Lisp enabled the
           | developers to iterate quickly, experiment, and arrive at
           | interesting innovative solutions within the required time
           | frame.
        
             | gnatman wrote:
             | I'm sure the commenter above has seen this but for anyone
             | who hasn't: Andy Gavin talking about pushing the envelope
             | of the Playstation for Crash Bandicoot.
             | 
             | https://www.youtube.com/watch?v=izxXGuVL21o
        
             | erichocean wrote:
             | > _No feature in these Lisp languages made this possible
             | where C or C++ could not, but working in Lisp enabled the
             | developers to iterate quickly, experiment, and arrive at
             | interesting innovative solutions within the required time
             | frame._
             | 
             | You just described key Lisp features that aren't in C++.
             | It's almost the entire point of using Lisp.
        
             | grogenaut wrote:
             | I worked at a game studio who used a lisp like that had
             | morphed into a pythonic c with parens instead of curleys.
             | 
             | I asked the dev who made the engine why lisp.
             | 
             | "I had a month to build a new scripting engine. Lisp is the
             | easiest to implement in c/c++ or in assembly and I had done
             | it in college. So I made a compiler /emulator in like a
             | week. If I had more time I would have made a dumbed down
             | python with parallelism"
             | 
             | The parallelism was cool because you could have multiple
             | conditions running at once like 5 ai walking 5 simple
             | action loops until one of 3 conditioned collapsed them all
             | into attack mode. Easy to model as threads with joins in
             | this language. Could have been done with other languages
             | but harder to do the memory management.
             | 
             | So not really cause it was a lisp
        
           | mchaver wrote:
           | Thanks for the insight. I've had a similar experience with
           | using Haskell. It is a smaller pool of developers, but they
           | tend to be higher quality on average.
        
           | unshavedyak wrote:
           | > For example, one thing we were told when choosing to write
           | in a lisp was that we'd have problems finding developers. It
           | turned out to be true in that we received fewer applications,
           | but compared to the same process with a more mainstream
           | language, I'd say the applicants were on average of higher
           | quality. So by the final step, we were approximately
           | considering the same number of resumes in both cases.
           | 
           | I can echo this statement with Rust. Same story. Our
           | comparison was Python to Rust. Same app. Big leap, i know.
        
           | 40yearoldman wrote:
           | I think requiring your startup in lisp also keeps the type of
           | engineers away you don't want.
           | 
           | In all of my career, it's not those who know who have been
           | good. It's those who know how to learn new things fast that
           | are good. It's people who problem solve that make good
           | engineers.
           | 
           | In the inverse. If somebody has a negative reaction to lisp,
           | it's a sign of a poor engineer.
        
         | philwelch wrote:
         | It's probably not the way you're making it sound. This was in
         | the early early days of YC, when there were like eight
         | companies per batch, and at the peak of PG's influence as an
         | online essayist. He wrote a lot about the benefits of Lisp and
         | how Lisp was a competitive advantage for Viaweb. So it was
         | probably less a case of trying to win favor with a seed
         | investor and more a case of actually being convinced it was a
         | good business decision.
        
         | formerly_proven wrote:
         | Arguably the value of Lisps has been diminished quite a lot
         | with the advent of highly dynamic "multi-paradigm" scripting
         | languages like Ruby and Python. The "Lisp superpower" has
         | traditionally been that small, tightly coupled groups (quite
         | often n=1, the most tightly coupled group) can achieve a lot
         | very quickly without wasting a lot of time on "boilerplate".
         | Those scripting languages enable largely the same thing.
        
       | vindarel wrote:
       | Here's an updated version with DB tables (PostGres) that runs:
       | https://github.com/tamurashingo/reddit1.0/
       | Require:              CommonLisp (tested on SBCL)
       | PostgreSQL         memcached         smtp server              CL-
       | USER> (reddit:startup-reddit)         #<HUNCHENTOOT:EASY-ACCEPTOR
       | (host *, port 8000)>
       | 
       | Writing a CL web app today is definitely doable. You won't find a
       | framework with bells and whistles (yet), but all the required
       | building blocks: web servers (Hunchentoot or Clack, like WSGI for
       | Python), choice in templating engines (Djula is Django-like and I
       | like it a lot), etc.
       | 
       | To replace JS a maximum I use HTMX which is language and
       | framework agnostic, life is beautiful.
       | 
       | In the end, you can build a static binary with all the static
       | assets, send it to your server and run it.
       | 
       | - https://github.com/fukamachi/clack
       | 
       | - https://lispcookbook.github.io/cl-cookbook/web.html
       | 
       | - https://github.com/CodyReichert/awesome-cl#web-frameworks
        
         | Capricorn2481 wrote:
         | HTMX is not anymore framework agnostic than JS. It's a JS
         | library. You can use any backend with either.
        
       | FpUser wrote:
       | >"written in Lisp"
       | 
       | And why does that matter? Whatever turns one on.
        
         | tmtvl wrote:
         | It matters for the same reason that "X written in Rust" or
         | "which companies are using Lisp?" matters: some people refuse
         | to give Lisp a look unless every F500 company has at least 3
         | major projects written in it.
        
           | FpUser wrote:
           | >"some people refuse to give Lisp a look"
           | 
           | Nothing is wrong with this. There are crapload of languages
           | and very little benefit from a practical standpoint for a
           | single person to use them all. They're just tools. Some are
           | better, some are worse and some are highly specialized. What
           | is being built is important, not how.
        
           | hcks wrote:
           | [flagged]
        
             | pinkcan wrote:
             | lisp is from the 60s
             | 
             | python is from 91
        
       | _ph_ wrote:
       | Time flies. I still remember when there were quite some
       | discussions in the communities when the initial reddit team made
       | it public that they were switching from Lisp to Python for
       | development. It created a lot of controversy, especially the
       | specific reasons they named. I think quite some of them happened
       | here on hacker news. Back then of course reddit was just a tiny
       | startup as many.
       | 
       | So it is funny to see this now popping up as a news item. Shows,
       | how long this is in the past and how much reddit has grown in
       | size.
        
         | jychang wrote:
         | [flagged]
        
           | ijk wrote:
           | Funny coincidence, but Fortnite now has Verse, a scripting
           | language that's pushing the envelope and using Haskell-
           | influenced ideas to do distributed computation.
        
       | newsoul wrote:
       | Here is the twitter thread about it:
       | https://twitter.com/ShriramKMurthi/status/166987750603426611...
        
         | paganel wrote:
         | Thanks for the link. Among other things it made be feel old, as
         | in I have a post on my blog from back then writing about the
         | Lisp to Python switch that Reddit was carrying out and it's
         | interesting to see computer programmers that look like they're
         | in their early 30s or such and not knowing about it at all.
         | 
         | Those were more interesting and especially more vibrant times
         | when it came to the web. Granted, the money was not as abundant
         | as it is now.
        
         | esperent wrote:
         | The source code is much more interesting than some Twitter
         | bro's hot take.
         | 
         | "We took a wrong turn w/ software."
         | 
         | ... apparently.
         | 
         | Save your energy and check out the repo instead.
         | 
         | I don't totally blame the guy though. If you want to play the
         | stupid Twitter game, you have to add a trite but provocative
         | hot take to every post you make, lest your writings languish in
         | obscurity. The only way to win is not to play, truly.
        
           | defrost wrote:
           | Takes me back .. once upon a time I was an admin on old OG
           | Freenode + #C + #lisp and recall when that was floated to
           | take potshots at and use as a beta test crowd.
           | 
           | The first non reddit team submissions were some very dry comp
           | sci papers and tech manuals .. the cats came not long after.
        
           | optbuild wrote:
           | He is not a Twitter bro though. He has developed software
           | extensively. He is a PL researcher, a professor at BrownU,
           | now working in computing education.
        
             | esperent wrote:
             | No doubt in real life he's a smart guy. I don't dispute
             | that. It proves my point even more - when on Twitter, even
             | the smartest people get reduced to playing the dumb hot
             | take games.
        
             | wiseowise wrote:
             | That's the point.
        
       | dotcoma wrote:
       | What language is HN written in ?
        
         | dang wrote:
         | https://news.ycombinator.com/item?id=23483715
        
         | bennyg wrote:
         | Arc I believe.
        
           | KerrAvon wrote:
           | OMG, Paul Graham actually released Arc in some form? I
           | thought he never finished it.
           | 
           | I was going to make snarky comment about how between spez and
           | PG, Lisp must actually be extended-release brain poison for
           | people in executive management positions; now I wonder if
           | spez just knows PG personally and takes his advice.
        
             | dang wrote:
             | _Arc 's Out_ - https://news.ycombinator.com/item?id=106398
             | - Jan 2008 (124 comments)
        
         | thatwasunusual wrote:
         | Arc, which is a Lisp dialect.
         | 
         | Too obscure and weird for me, but quite interesting. :)
        
         | krapp wrote:
         | http://arclanguage.org/
        
         | allanrbo wrote:
         | https://github.com/wting/hackernews
        
           | raydev wrote:
           | This appears to be a mirror of HN as it was 11 years ago. The
           | site could've been entirely rewritten in something else since
           | then.
        
       | jjwiseman wrote:
       | A comment by Steve Huffman on my blog[1], from back when they
       | switched away to Python:                 I didn't say the are
       | *no* shoulders to stand on. There are       just fewer.
       | Without a doubt, Edi Weitz single-handedly made reddit
       | possible. He's an army-of-one producing good Lisp
       | libraries. The issues that made it really hard to stick
       | with Lisp weren't particularily Lispy.            The biggest
       | trouble that plagued us was that we could never       quite get
       | Lisp reddit stable enough to sleep at night.       There were
       | weird threading issues that would bring the site       to its
       | knees a couple times a day and required constant
       | monitoring.
       | 
       | Another comment, from Paul Graham:                 > One can
       | argue that they betrayed the worth of a       > philosophy merely
       | for cheap money.            Ye gods, enough with the conspiracy
       | theories already. Y       Combinator didn't know Reddit was going
       | to use Lisp when       we funded them. And the reason they
       | switched (or at least,       the last straw) was all too mundane:
       | some thread bug in       CMUCL that made the site keep crashing.
       | 
       | 1. http://lemonodor.com/archives/001301.html
        
       | nabla9 wrote:
       | It was announced in comp.lang.lisp most early adopters were lisp
       | users.
       | 
       | The first Reddit drama was when Paul Graham was caught having a
       | sock puppet account to defend his arguments :)
        
         | fuzztester wrote:
         | How was he caught?
        
         | jimsimmons wrote:
         | wouldn't surprise me if he has like 8 alt accounts here and on
         | Twitter
        
         | chimeracoder wrote:
         | > The first Reddit drama was when Paul Graham was caught having
         | a sock puppet account to defend his arguments :)
         | 
         | Do you have a link to this thread?
        
       | omgmajk wrote:
       | I was pleasantly surprised when I stumbled on the Abuse source
       | code a while ago and started reading through it, I've seen other
       | people talk about it here but here's a link:
       | 
       | https://github.com/videogamepreservation/abuse
        
       | allanrbo wrote:
       | Would be fun to see what it takes to run it!
        
         | avodonosov wrote:
         | DB schema is missing. If there was an .sql script to create all
         | the tables, I could run this reddit version.
         | 
         | Most of the information about columns and tables could be
         | recovered from data.lisp and view-defs.lisp. Maybe also
         | old.lisp
        
           | vindarel wrote:
           | Here's an updated fork with DB migrations:
           | https://github.com/tamurashingo/reddit1.0/
        
           | PawBer wrote:
           | You'd also have to find a copy of the web framework it uses
           | because it got renamed and the author disabled the old
           | download address.
        
             | avodonosov wrote:
             | The tbnl web server was indeed renamed to hunchentoot.
             | 
             | I found the old tbnl versions in the wayback machine. One
             | of the snapshots: https://web.archive.org/web/2008013115205
             | 4/http://www.weitz....
             | 
             | Most likely adapting to the current hunchentoot would not
             | be difficult too.
        
               | vindarel wrote:
               | It has been done \o/
               | https://github.com/tamurashingo/reddit1.0/
        
               | avodonosov wrote:
               | Cool. So db schema is actually present, in the form of
               | clsql clas definitions (the view-defs.lisp)
        
       | choas wrote:
       | scraper.lisp contains parameters for a "delicious-scanner" to
       | http://del.icio.us/popular/ ... also something which is gone /
       | replaced
        
         | beached_whale wrote:
         | The original del.icio.us was pretty good, it got weird later
         | on.
        
         | shakesbeard wrote:
         | wow, now that's a website I haven't thought of in a while
        
       | tonetheman wrote:
       | [dead]
        
       ___________________________________________________________________
       (page generated 2023-06-17 23:02 UTC)