4 ms·
I've done two successful startups with lisp variants in my career, and continue to do clojure development at Cisco. The advantages of using lisps are real, if
by cbrozefsky 9y ago
I've done two successful startups with lisp variants in my career, and continue to do clojure development at Cisco. The advantages of using lisps are real, if you stay focused on the problem domain and stay close to the customer -- you have great agility and flexibility. Woe to those who are tool jockeys and get too infatuated with their tools and code base, because there is a lot of rope to hang yourself and your teammates with.
The first was a Common Lisp web app for resource management, that was recently sold. Not a giant payout, but over it's entire life, starting in 2000, it paid peoples mortgages and put kids thru schools.
The second was a clojure based malware analysis engine, which we sold to Cisco about 3.5 years ago. That was a more conventional startup exit. We have scaled that into a global product. Additionally, we are developing even more clojure products within Cisco, and hiring...
I know from hiring clojure devs for the last 6 years that there are alot of companies, big and small, using it.
- darkhorn 9y agoYou cannot use data as a program in Clojure, can you? I mean is data also a program in Clojure?
- dragandj 9y agoYou can, and yes, it is.
- i_feel_great 9y agoOut of sheer curiosity, is Chez Scheme still used at Cisco?
- malloryerik 9y ago"Woe to those who are tool jockeys and get too infatuated with their tools and code base, because there is a lot of rope to hang yourself and your teammates with." Could you expand a bit on this? I'm not entirely sure what you mean, but sense some good advice.
- kornish 9y agoNot the grandparent poster, but stepping in. Lisp, due to its easy metaprogramming, gives abstraction enthusiasts rather more rope to hang themselves than languages which make abstraction inconvenient (e.g. Go, which has a simple type system, or Java, which is very verbose). So, if one isn't careful, it's possible to write a very clean, very nice Lisp DSL which is totally incomprehensible to anybody but the author, and thus hell to maintain over time. Relevant quote, from https://www.joelonsoftware.com/2000/07/22/microsoft-goes-bonkers/ https://www.joelonsoftware.com/2000/07/22/microsoft-goes-bon... – > When great thinkers think about problems, they start to see patterns. They look at the problem of people sending each other word-processor files, and then they look at the problem of people sending each other spreadsheets, and they realize that there's a general pattern: sending files. That's one level of abstraction already. Then they go up one more level: people send files, but web browsers also "send" requests for web pages. Those are both sending operations, so our clever thinker invents a new, higher, broader abstraction called messaging, but now it's getting really vague and nobody really knows what they're talking about any more. > And if you go too far up, abstraction-wise, you run out of oxygen. Sometimes smart thinkers just don't know when to stop, and they create these absurd, all-encompassing, high-level pictures of the universe that are all good and fine, but don't actually mean anything at all. More here: http://wiki.c2.com/?TooMuchAbstraction http://wiki.c2.com/?TooMuchAbstraction
- flavio81 9y ago>So, if one isn't careful, it's possible to write a very clean, very nice Lisp DSL which is totally incomprehensible to anybody but the author, and thus hell to maintain over time. This is a myth. DSLs in Lisp are almost always done in Lisp syntax, no surprises. The idea of having a higher abstraction is to make the problem domain map more clearly to the code. >totally incomprehensible to anybody but the author Now, what people who like to repeat this myth forget to say, is that when using an OOP language, say, Java, and using another's person code, one also needs to learn the classes that this person has created, the methods and how they interact. And this can be "totally incomprehensible to anybody but the author". >Relevant quote No, not relevant. Joel Spolsky is talking about device abstractions.