6 ms·
Basically: I started with my conclusion, and then went through all the other options and rationalized them away until it seemed like my choice was based on obje
by WilliamLP 17y ago
Basically: I started with my conclusion, and then went through all the other options and rationalized them away until it seemed like my choice was based on objective reasoning.
- smanek 17y agoI think you drawing that conclusion may be a result of how I structured my essay (I introduced my conclusion, then my reasoning). I freely admit my personal biases and experiences eliminated a lot of potentially good options without ever giving them due consideration (e.g., Haskell, Scheme, Lua). But I really did try to give the 3 options listed in the article a fair shake at the time. For what it's worth - I was about 50-50 on using Python till the very end ...
- wheels 17y agoI too thought the logic was weak. Here was my basic objection: you chose not to use two popular web programming languages because of their potential volatility, but then went with one that has been so infrequently used in web programming that it almost certainly has opaque deffeciencies. It's not that your reasons were bogus, they just didn't carry the decision.
- smanek 17y agoThat's a fair point. For a programmer without Lisp experience, that would be true. But I've written enough Lisp-based webapps that there aren't really that many 'unforseen' problems for me anymore (rule of thumb: use software by Edi Weitz - everything he writes is golden :-D)). That being said, I still ran into trouble with Elephant, so I probably should have taken these sort of 'unknown unknowns' (which are more prevalent in unusual languages like Lisp) into consideration upfront. To not do so was certainly an oversight.
- ube 17y agoIf you are going to be the only programmer on the project then your reasons make sense. However, if you are going to have other people on the projects - then your reasons do not make sense from a longer term point of view. How many lisp programmers do you have out there as compared to python or ruby programmers? If you and the founders decide to go your separate ways how likely is the project going to be continued in lisp? It seems like a somewhat precarious decision to let you use Lisp for this project. There's nothing supremely special about the problem you are attacking that warrants Lisp (outside of your comfort level which you clarified very clearly in your post). Perhaps I'm just old and cynical but I've been on too many projects where the first (and therefore "lead") developer chose a particular language and architecture that in the long term was not sustainable.
- smanek 17y agoThere are, obviously, far more ruby/python programmers. But, at the very most, I might only ever need a dozen Lisp programmers and I already know 20 that I would love to work with. Lisp is even pretty easy to pick up if you're smart know other dynamically typed, functional, and OO languages. As a point of reference, ITA Software has no trouble hiring 100s of Lisp programmers. Minor correction: I am a founder - and if I were to leave (while my co-founders continued), I'd make a point to find my replacement first.
- rbanffy 17y ago"How many lisp programmers do you have out there as compared to python or ruby programmers?" This one is a tired argument. Any good programmer will grok Lisp (or Python, or Ruby). If your Python/Ruby programmers can't get Lisp from a couple days of training, then they are not good programmers. And, BTW, I would risk betting they are writing FORTRAN code in Python and Ruby.
- swannodette 17y agoDjango/Python and Ruby/Rails present their own (sometimes very significant) opaque complexities. Being complex, they actually hide their deficiencies for a long time. Enough so that sometimes rolling your own thing is not a significant time sink in comparison. This also alludes to the popularity of do-it-yourself microframeworks. If you're planning on using a microframework anyway, I'm not sure your argument really holds up. You can pretty much use whatever not-completely-marginal language you want and be just fine. Honestly the only valid argument that I come up with is that you can't find enough programmers that know or are excited to know that language to join your team.
- LucaDuval 17y agoI don't read the article this way. He candidly admits his bias towards functional languages and he says that Ruby and Clojure could have been his choice if not for reasons related to the specific time-frame in which he took the decision.
- scott_s 17y agoTo be fair, I think most explanations for the decisions we make work this way.
- Confusion 17y agoI think it just seems that way, because it takes effort to explicitly pull all those arguments into our consciousness, to explain a decision that was taken subconsciously. The subconscious is often equated with the emotional or the irrational, but there is no reason to suppose the subconscious is incapable of rational decision making. Looking at it from that perspective, you are not rationalizing an irrational decision when you explain your reasoning: you are simply remembering/recreating the process that lead to the initial, perhaps even rational, decision.
- pp 17y agoTo my knowledge, the famous experiments of Kahnenman and Tversky have proven otherwise. When studying the effect of "anchoring", for example, they would actually explain to their subjects how their rational decisions are influenced by this irrational heuristic. Yet the subjects could not rid their decisions of that influence.
- Confusion 17y agoWhich showed that there are probably irrational heuristics involved in every decision. However, it doesn't show that irrational heuristics are important, or even dominant, in every decision. On the Wikipedia page for 'Anchoring', there is an example about thinking of a number and subsequently bidding (experiment by Ariely). What happens when you tell people with a high number that they are likely to make a relatively high bid, so they should try to make a relatively low bid? Do they make 'normal' bids or extremely low bids? This shows that saying people can't rid their decisions of that influence is an overstatement. When you are consciously aware of the heuristics and the decision is taken over a period of time, you can downplay them.
- pp 17y ago
- btilly 17y agoA man always has two reasons for what he does: a good one and the real one. - J.P.Morgan