8 ms·
Google Common Lisp Style Guide
- tivert 3y agoThat's interesting. Where is Lisp used at Google? I vaguely recall reading long ago that Google had some kind of policy against using Lisp or Smalltalk for projects, but I can't find the article I am thinking of [1]. [1] I'm not 100% sure, but it was probably some kind of article about "programming languages used by Google in production." I recall it talking about how C and Python were approved, as well as Java (~"because there are a lot of good programmers who write Java"). Lisp and Smalltalk were explicitly banned, mainly because engineers so frequently proposed using them because of their appeal, despite the supportability issues w.r.t. skillsets.
- mrcode007 3y agoFlight search
- cageface 3y agoIt’s from the ITA software acquisition that became Google flights. https://franz.com/success/customer_apps/data_mining/itastory.lhtml https://franz.com/success/customer_apps/data_mining/itastory...
- deleted 3y ago[deleted]
- znpy 3y agoHonest question: is there any meaningful open source software writt In small talk (any implementation) ?
- PeterStuer 3y agoMediagenix's "What's On" ( https://www.mediagenix.tv/whats-on/ https://www.mediagenix.tv/whats-on/ ) is written in Small-talk. The main reason is the company's ancestry had strong academic roots, but it worked for them. It's not Open Source, but since there aren't that many successful commercial Small-talk products in the wild I thought I'd mention.
- __s 3y agohttps://wiki.c2.com/?WhatsBeenDoneInSmalltalk https://wiki.c2.com/?WhatsBeenDoneInSmalltalk https://www.reddit.com/r/programming/comments/7nm8u/comment/b50l https://www.reddit.com/r/programming/comments/7nm8u/comment/... Over time I expect systems died or migrated away from Smalltalk
- cess11 3y agoPharo would be the practical one, Squeak the less industrial one. Lots of stuff has been implemented with both, enough that you could run a consultancy and build applications for people. You'd need to be a bit of a Smalltalk nerd though, and be prepared to do most of the work yourself since there aren't that many smalltalkers to recruit from. You'd also be in competition for developers with companies building software for insurance or ERP, and many smalltalkers spent relatively much time in academia so that could affect salary expectations.
- igouy 3y agoDepends what you mean by "meaningful".
- thequux 3y agoAbsolute mountains. Consider: Ruby is Smalltalk with alternative syntax and core library. I'm only being a little bit flippant here; the only core language feature in ST that Ruby is missing is thisContext, and most of the things that end developers do with thisContext (continuations, exceptions, and the debugger) are natively supported by the standard library.
- zilti 3y agoGlamorous Toolkit
- v9v 3y agoThe Google chapter of "Lisping at JPL" (https://flownet.com/gat/jpl-lisp.html https://flownet.com/gat/jpl-lisp.html) may be what you are remembering.
- tivert 3y ago> The Google chapter of "Lisping at JPL" (https://flownet.com/gat/jpl-lisp.html https://flownet.com/gat/jpl-lisp.html) may be what you are remembering. That's close, but I think it's reflection of the same policy, not the same article. The article I remember talked about more languages that just Lisp, Smalltalk, and Java. It was overall down on Java, but had positive things to say about some Java programmers.
- singron 3y agoThere is something nostalgic about these old Google documents. It reminds me of when search ads were on the right side. Google is famous for only supporting a few general languages. Initially it was just C++, Python, Java, and Javascript (browser only!), although a few more eventually trickled in. The language deviants kept writing "official" style guides and adding support to random infrastructure and libraries, hoping that one day the next major project might get written in OCaml. New Googlers often had a confusing moment after learning the restrictive language policy when they compiled their first program and blaze would print that it was generating protocol buffer bindings for Haskell (this would eventually be suppressed).
- tho3i55u4oi234 3y agoThis is not 'old'; nor 'obscure' (like OCaml/Smalltalk etc.) Google's monorepo has a large actively used lisp code-base (anecdote: it's one of the largest Borg jobs) inherited from their acquisition of ITA.
- danpalmer 3y agoOne of the largest Borg jobs? Really? This goes hard against my expectations, both based on my understanding of the software involved in flight search, and in terms of my knowledge of things that run on borg and how big they get. Feel free to reach out internally, I'd love to chat about it!
- p_l 3y agoI'd figure that it might be differently "distributed" in its resource requirements, given what I remember of ITA and post-acquisition talks at ELS. But it's pure speculation from an outsider.
- fire_lake 3y agoRemarkable to me that Google would spend so much on software engineers and then hobble them with blub languages. If they decided to push a niche but superior language then people would learn it (as they did with Go).
- SeanLuke 3y ago> You should use one semicolon if it is a parenthetical remark and occurs at the end of a line. I know this is common. It is also bad. A single semicolon is small and easily visually lost in the visual noise.
- Ferret7446 3y agoThat's what syntax highlighting is for.
- reikonomusha 3y agoIt's a recommendation of section 2.4.4.2.1* of the standard. :) * https://www.lispworks.com/documentation/lw50/CLHS/Body/02_ddba.htm https://www.lispworks.com/documentation/lw50/CLHS/Body/02_dd...
- SeanLuke 3y agoYes, and it's proven an awful suggestion; I'm surprised Google was promulgating it. Specs from the 1980s are filled with terrible design choices. Heck, equalp and equal are recommendations of the standard as the only two "structure-equality" options for hash tables -- and both of them are broken.
- reikonomusha 3y agoI disagree that it has "proven an awful suggestion." Proven how? Through what experience? I've found the one-semicolon comment placed at a suitable column (as recommended by the spec) leads to very clear and easy to read code annotations, even without syntax highlighting. Emacs does a fine job managing the formatting of these one-semicolon comments (e.g., setting at the right column, justifying/reflowing the comment over multiple lines, making sure the comment doesn't overflow your preferred source code width), and with syntax highlighting, they're even more patently visually obvious.
- SeanLuke 3y agoYou seem to think that the choice is acceptable because "it works fine in Emacs". Language design decisions should not be based on the choice of editor. Indeed Google's own examples are not syntax-highlighted. And offsets won't do the job either: Google also recommends that lines not be longer than 100 characters, which makes it rather hard to guarantee that inline comments be offset by very much.
- nyc111 3y agoIs there a way to publish my emacs org-mode outline interactive like this page?
- masfoobar 3y agoCant say I particularly like the way the page is generated under the hood.. but then I guess I have never been fond of XML (with the exception of forced HTML for websites) Anyway, after digging around the page, I wonder if this covers it? Maybe you can add .xsl to it, etc. https://github.com/ndw/org-to-xml https://github.com/ndw/org-to-xml
- vindarel 3y agoThanks to ITA Software (powering Kayak and Orbitz), Google dedicates resources to open-source Common Lisp development. More specifically, to SBCL: > Doug Katzman talked about his work at Google getting SBCL to work with Unix better. For those of you who don’t know, he’s done a lot of work on SBCL over the past couple of years, not only adding a lot of new features to the GC and making it play better with applications which have alien parts to them, but also has done a tremendous amount of cleanup on the internals and has helped SBCL become even more Sanely Bootstrappable. That’s a topic for another time, and I hope Doug or Christophe will have the time to write up about the recent improvements to the process, since it really is quite interesting. > Anyway, what Doug talked about was his work on making SBCL more amenable to external debugging tools, such as gdb and external profilers. It seems like they interface with aliens a lot from Lisp at Google, so it’s nice to have backtraces from alien tools understand Lisp. It turns out a lot of prerequisite work was needed to make SBCL play nice like this, including implementing a non-moving GC runtime, so that Lisp objects and especially Lisp code (which are normally dynamic space objects and move around just like everything else) can’t evade the aliens and will always have known locations. https://mstmetent.blogspot.com/2020/01/sbcl20-in-vienna-last-month-i-attended.html https://mstmetent.blogspot.com/2020/01/sbcl20-in-vienna-last... https://lisp-journey.gitlab.io/blog/yes-google-develops-common-lisp/ https://lisp-journey.gitlab.io/blog/yes-google-develops-comm... The ASDF system definition facility, at the heart of CL projects, also comes from Google developers. While we're at it, some more companies using CL today: https://github.com/azzamsa/awesome-lisp-companies/ https://github.com/azzamsa/awesome-lisp-companies/
- deleted 3y ago[deleted]
- gwern 3y agoI am looking at the source of this '.xml' URL and... that's not something you see every day.
- gwern 3y agoLook at the XSLT stylesheet this XML uses - it is doing parsing and indenting of Python in XSLT! I know XSLT is Turing-complete, but that is still highly unusual these days. Who knew that would even work in contemporary browsers...