Why Reddit has been rewritten in python: https://redditblog.com/2005/12/05/on-lisp/ http://www.aaronsw.com/weblog/rewritingreddit
When in JavaScript, I'd always lean on TypeScript. Is there something similar for Python?
81–90 of 117 posts
Why Reddit has been rewritten in python: https://redditblog.com/2005/12/05/on-lisp/ http://www.aaronsw.com/weblog/rewritingreddit
When in JavaScript, I'd always lean on TypeScript. Is there something similar for Python?
Earlier quoted context omitted.
It goes both ways, being open-source can also make your product more secure, as it's out in the open and a lot more eyeballs look at the code.
Tell that to OpenSSL
On the other hand, with closed source, people are presumably being paid to study the code, potentially fewer but a still fixed number of eyes on the code, as it were. But then, since it's closed source, no one really knows what's going on outside the company.
Moral arguments aside, neither system is perfect.
Why Reddit has been rewritten in python: https://redditblog.com/2005/12/05/on-lisp/ http://www.aaronsw.com/weblog/rewritingreddit
What is it like maintaining a large project in such a dynamic language? I guess if you have proper unit tests and good coverage, you could quickly find any runtime bugs that you may unintentionally introduce with refactors/changes. When in JavaScript, I'd always lean on TypeScript. Is there something similar for Python?
https://medium.com/@ageitgey/learn-how-to-use-static-type-ch...
What kind of Lisp system was used to run this? Would it work with any Common Lisp? What other things are required, like libraries or a database etc.? I'm guessing reddit.asd lists some: :tbnl (a toolkit for building dynamic websites) :cl-ppcre (a regex library) :trivial-http (a HTTP client) :cl-who (a library for using S-expressions as HTML markup templates) :clsql (a SQL database interface and ORM) :clsql-postgresql…
Earlier quoted context omitted.
Reddit was lisp, then python, then python, then React (and some other stuff).
There UI doesn't look like it is using React. Maybe they are still working on it?
I chuckled over this bit of lines [1]. Fortunately (for Reddit) this name is being consistently used throughout the code. Can't guess why. (email :type string :accessor user-emai) [1] https://github.com/reddit-archive/reddit1.0/blob/bb4fbdb5871...
[1] https://github.com/reddit-archive/reddit1.0/blob/bb4fbdb5871...
I chuckled over this bit of lines [1]. Fortunately (for Reddit) this name is being consistently used throughout the code. Can't guess why. (email :type string :accessor user-emai) [1] https://github.com/reddit-archive/reddit1.0/blob/bb4fbdb5871...
Heh. If you see [1], they define a function called "user-email" (spelled correctly). The lisp convention here would be to define the accessor as something like "%user-email." While the code isn't too bad, these little things betray a lack of knowledge of lisp lore. Perhaps another reason for the rewrite was that the team actually didn't have much experience writing lisp code. [1] https://github.com/reddit-archive/red…
%assertion-failure doesn't look like an accessor.
http://clhs.lisp.se/Body/f_car_c.htm
car described as "accessor", not named %car. No public function in CL is named this way. In fact, the character % doesn't make an appearance at all:
http://www.lispworks.com/documentation/lw50/CLHS/Front/X_Per...
I've never named a function or macro %something in 18 years of Lisp.
Beyond that, this is actually fascinating to look at. It's small enough that you can actually understand it, but it's more complete than a simple 'toy' application. I'm also fascinated to see how SQL constructs are expressed in LISP. I don't know LISP at all, but it's pretty obvious how the queries in the language map directly to SQL.
Earlier quoted context omitted.
Heh. If you see [1], they define a function called "user-email" (spelled correctly). The lisp convention here would be to define the accessor as something like "%user-email." While the code isn't too bad, these little things betray a lack of knowledge of lisp lore. Perhaps another reason for the rewrite was that the team actually didn't have much experience writing lisp code. [1] https://github.com/reddit-archive/red…
https://github.com/Clozure/ccl/blob/master/lib/case-error.li... %assertion-failure doesn't look like an accessor. http://clhs.lisp.se/Body/f_car_c.htm car described as "accessor", not named %car . No public function in CL is named this way. In fact, the character % doesn't make an appearance at all: http://www.lispworks.com/documentation/lw50/CLHS/Front/X_Per... I've never named a function or macro %something in 18 y…
Edit: ah, I think I understand. I don't mean to imply that all accessors should be named in this way. That would be gross.