Quote:
Originally Posted by tyler_cracker
dave,
1. you'll have to work pretty hard to get the *compiler* to fail while compiling your code.
2. for understanding deep compiler behavior, there are few tools as useful as reading the generated assembly.
Sorry, I didn't mean I want to destroy my compiler. I simply wanted my compiler to tell me to tell me to **** myself and not produce anything new. This is what happens when I forget to put a ; somewhere. The whole program just doesn't compile. I was wondering why the compiler was willing to accept this new stuff. Maybe because it doesn't pre-compile, run the program for me, and tell me that I don't have enough memory or something. Eh, this is all too far afield for now.
Quote:
Originally Posted by candybar
A language that ranks too high in prestige/snob-appeal/idealism relative to its real-world usefulness is going to attract too many people who want to use it to feel better about themselves and cherish their minority status, as opposed to people who want to get things done. This leads to an ecosystem that is oriented towards maintaining its prestige, as opposed to being useful to allow everyone else to get things done. This is a bit unfair, because there are tons of Lisp programmers who don't fit this description, but Lisp in particular has a history of attracting uncompromising idealists, language snobs and others of elitist mindset.
Expressiveness matters for adoption and productivity but abstract cleanness and nonbrokenness of the language that purists care about usually only become relevant for extremely large applications which these clean languages ultimately never get used for, in part because the community refuses to compromise.
This I agree with. The chicken-egg problem, at least from what I've seen in some conversations is something like:
"Only the top N% of all programmers can use Lisp well, but there is no way to know you are a top N% until you try"
Then the opposite argument goes:
"Lisp makes you a top N% programmer, you have to force yourself to try it out, but you need to stick with it."
I'm nowhere near a top N% < 90% programmer and this is the biggest issue with all of this stuff. People grab onto stupid minor things and then conflate those issues into large road-blocks, and that perpetuates the mythos surrounding Lisp / Haskell / OCaml / ETC.
Of course it doesn't help that there is the whole "do it yourself" attitude surrounding Lisp / Clojure. The refusal to upkeep or acknowledge frameworks keeps people from having a chance to explore the languages. I get the idea is that it isn't for the feint-of-heart, but I really don't think that Lisp is the "hacker's language" people trumpet it to be. Sure, some people are perfectly comfortable staring at nothing and creating something from it, but I don't buy the argument that all good programmers prefer to work this way, and I most certainly don't buy that bad programmers are those that don't want to work outside of frameworks and some pre-fab stuff. There is a lot to be said about no reinventing the wheel, though I don't think that I ever did anything in Lisp that is reinventing wheels.
Quote:
Originally Posted by sdturner02
Strong observations from both of you.
This is precisely what I was alluding to with my "boys club" question. It's also one of the reasons that I like the 2p2 Programming forum -- an eclectic mix of backgrounds keeps this in check.
The issue seems somewhat analogous to inbreeding, or perhaps water stagnation. It's a problem that perpetuates itself because it needs outside influence to improve, and yet the greatest effect of the problem is that it repels outsiders.
Maybe this is how programming languages die?
Could be... I think that what kills programming languages is the desire to answer a few questions:
"Can I use this at work?" -- Will Mr Pointy-hair approve of this new language? Clojure gets it right because its on a JVM but gets it wrong because its a Lisp. I bet Scala will become more corporate and probably more popular in the long run. The irony is that Clojure opened up the FP conversation and allowed Scala to gain it's initial traction.
"What can I build with this that is unique?" -- RoR allows you to build large websites. Wordpress has blogs.
"How easy is it to get started?" -- Clojure fails miserably in this regard. Lisp is a heck of a lot easier, but there isn't anything to give you that extra boost, like simple frameworks and then deploying it is nearly impossible. Heroku helps Clojure a bit here, but that's the end, not the beginning. Hell, my old shared hosting had WordPress and RoR. I'm led to understand the Scala isn't very easy to start with either.
"How familiar is it with X" -- X can be OOP, Brackets, Variable creation, and a whole slew of items. Lisp is just too damn weird for people.