But an opportunity to whip up public support for the cause appears to have been wasted here.
In the small, local community where all of these people live, work, and see each other at their children's PTA meetings, you don't "whip up public support" by acting like crazed San Francisco PETA protestors screaming thru megaphones, blocking traffic, vandalizing property, wearing face paint, beating bongo drums and dancing on their neighbors' cars.
In an ordinary community where few people have even heard of Linux but do care about a number of genuine life and death issues, you could certainly whip opposition to "Linux wackos" pretty fast by overdoing the self-righteous outrage over this issue in front of the local news cameras.
...so I guess he and I don't disagree about everything.;-)
(Don't take this post too seriously, those of you who consider Stallman your messiah. I'm definitely not a fan of his and can personally attest to his difficulty interacting with people, but I do consider some of his opinions to be insightful.)
I'm replying to myself, because I hit submit too soon and it may not be clear what I'm saying.
I'm saying that many times you have the option to put strict limits on how much you'll work and get less money, or work "overtime" and get paid a lot more. Just because there's no formal recognition of overtime doesn't mean you're not essentially being paid for overtime.
I could get laid off tomorrow. I don't go to extremes to sacrifice myself for the company in hopes of one day being rewarded, but I do make the first move. I go the extra mile and see what happens. If nothing happens, then that option (more work for more pay) doesn't appear available. Oh, well. But often it is.
Sometimes I prefer the money and essentially sell the extra hours. Sometimes I prefer the extra time, and sometimes my choice seems limited to one or the other for a while, but the "I want you to pay me more and don't expect me to ever work past five" option isn't one I've come across very often.:)
Because I *am* willing to work past 5pm and to do 12-hr days to help the company succeed. As a result, they pay me a lot more than yours apparently pays you.
That doesn't make me better, it simply means that I'm getting paid more to do more -- effectively being paid well for overtime that I'm choosing to work.
Only client-side GUI apps that use WinForms need WINE. All other.Net apps -- including ASP.Net, non-GUI apps, Web services, apps that use browsers for their UI, client-side GUI apps using GTK, etc. -- will run without WINE.
Could you provide more info about Remote Agent? Was it written in Lisp? (It seems to have been written in a custom language, but was that language created with Lisp?) Is it being rewritten in C++? If so, do you know why?
The thing that should have bothered you is the utter ambiguity of such a claim. This is just one of those "newspaper statistics" that sound as though they mean something but don't.
What is the diversity of all humans? Is it more than the diversity between the two most different humans? What is the means of quantifying difference? Is there some standard, or are there lots of standards, or are there just countless ways, each of which yields a different answer?
What about the diversity in a group of chimps? Is that a family of chimps, or a small group randomly chosen from all chimps, such as one might find at some zoos?
I'm just not sure how to interpret the comparison of diversity between a small group (of chimps) and a large group (all humans). Size of group wouldn't have been mentioned, presumably, if it weren't part of the equation. What part?
Unless you know what it is they really mean, I'm not sure it makes much sense to go looking for deeper meaning.
There are some contractual things you can't get out of. You can't cancel existing contracts, which is the reason a "poison pill" defense sometimes works, and there are various contractual guarantees made to major investors that can create "classes" of shareholders (preferred, common, etc.), which makes it a little more complicated than just a question of percentages.
However, the answer to your question is mostly "yes". As 51% shareholder, you can typically completely replace the board of directors, because the board is elected by the shareholders (which means the owners) to represent their interests. New 51% owners usually want new representatives for their new interests, and the 49% owners can't raise the votes to stop them.
Then, since the CEO works for the board, the new board appoints a new CEO, who then replaces the senior execs, who all report to the CEO. They can then replace anyone below them who doesn't support the new regime.
I should add that the term "hostile takeover" is frequently just the viewpoint of the existing management. It's hostile to them because they may be thrown out by the new owners. It may not be hostile at all from the perspective of the existing small-scale shareholders -- the "outsiders".
Another possibility (in some cases) is that the old insiders club (the board and their pet CEO and his cronies) may have been milking the company for their own personal gain and there was nothing the small-scale shareholders could do about it. The big guys are making a pile of money off the company, while the company itself goes nowhere because it's being managed for the benefit of the top management, not the common shareholders.
Then a new team comes to town and offers a lot more money for common shares than the shareholders were going to get any other way. Whether the shareholders sell to the new guys or keep their now-higher-valued shares, the game has changed. Now, the old management tells everyone that the new guys are "hostile", but that may not be the way everyone sees it. They may end up more corrupt or incompetent than the old management, or they may be the first good thing for the common shareholders in years, but either way they'll be called "hostile" by the old management.
You seem all hung up on the terms amateur and professional. I took them simply to mean "amateurish" and "demonstrating mastery", and I think he did a great job of contrasting the two ends of the continuum.
A young, collegiate-looking guy gets into the express checkout line in a supermarket in Cambridge, Mass. The sign clearly says '10 items or less', but he probably has thirty items in his cart.
The cashier looks at him and asks, "Are from Harvard and can't count, or are you from MIT and can't read?"
Insurance should absolutely cover stuttering as it has the potential to cause serious, lifelong problems, yet it is highly treatable (meaning completely or almost completely cured in a high percentage of cases) if treated *immediately* at onset. (Interestingly, the treatment that needs to start immediately is an interesting twist on "do nothing", which sounds like a contradiction, but it's very important and not obvious.) Sometimes treatment doesn't solve the problem completely, but you have to try because the odds are pretty good that you'll get pretty good results if you act fast.
This is clearly one of those highly leveraged early treatments with huge payoffs over a lifetime. I speak from personal experience.
If you know of a child who has started stuttering, do a little research on the Web (Google "stuttering") to assess the problem (a little bit is natural, so see the professional guidelines) and as soon as the symptoms get near the "might be a problem" line, take the child to a speech patholgist at a real speech and hearing clinic for a consultation. DON'T WAIT!
"We concluded that taking courses is frequently a waste of time."
Well, unless you are resorting to a truism (in which case, your anecdote was unnecessary because "doing X is frequently a waste of time" is trivially true for most values of X), I'd say your anecdote doesn't support your conclusion.
It sounds as though the reasonable conclusion is that to get really great at something you have to work hard at it for a long time and that simply taking a class is not enough.
Nothing about your story implies that taking the class would have wasted your time. You could have worked hard in class and, armed with the theory, your work afterward might have been even more productive. Your experience (at least the portion you described) doesn't appear to imply otherwise.
Slashdot's search is so unhelpful that I never consider using it. Go ahead and mod me down for "redundant", but it's worth it to make the point that this poster isn't alone in this opinion.
Being a pathetic racist strutting around with a chip on your shoulder about how much more attention the Korean girls (on both sides of the Pacific) pay attention to "white boys" than to you surely qualifies you for mainstream status among "chae mi kyo p'o", but hardly makes you "proud".
And your assumption that those who are not ethnically Korean can't really know as much as you do about events in Korea as you do is an absurd idea. Ask your father. If I didn't know him, I knew people he knew. And though I don't intend to provide any details, I assure you that visualight is not unique, and that some of us not only spoke fluent Korean but had access to people, places, and events that you will never know of.
I'll also add that your father's contemporaries had a grace and class that bears no resemblance to your concept of "pride".
Those with the historical perspective of a mayfly combined with "progressive" political indoctrination (nobody hates progress more than progressives) see every local downtick or potential for problems as signs that the world is falling apart.
We have more choices in music and easier access to it than ever before in history. We have more books to read. People in the wilds of Montana now have a greater selection available than residents of Manhattan had twenty years ago.
When I started using email, it was literally a tool of the military industrial complex. Now even children regularly use it and there's so much "power to the people" that it's as if everyone in the movie theater were given his own megaphone.
And I just love the endless blather about dissenters being kept quiet in this age of personal megaphones. Sure, if the world isn't paying rapt attention to me, then it must be the fault of some vast right-wing conspiracy silencing dissent. Yeah, what else could it be?
Excellent info. Thank you so much. I find lots of lists of pointers to various implementations, but it's pretty hard to find "reviews" of the pros and cons of each, informed opinions on which would be best for what and why, what direction each appears to be going, which appears to be obsoleting which, and so on.
These must qualify as frequently asked questions, so I'm hesitant to ask them on online forums, but they aren't addressed in any FAQ I've seen so far because, presumably, it's politically incorrect for a FAQ to pick favorites. So, information like your posting here is greatly appreciated.
If the unpopularity of Lisp despite so many advantages is really the result of guilt by association (AI) and backing the wrong horse (LispM v. Unix) -- and that sounds plausible -- then maybe it is worth investing some time in.
You mentioned CMUCL as "high-quality" and CLisp as "up and coming". Would you mind explaining what you mean by that? Those are the two I hear mentioned most often (among free Lisps), but I don't know what the differences are among Lisps, nor how to evaluate them for suitability for commercial software dev (say, database-backed server-side web apps or natively compiled Windows GUI apps, for example).
And why would CL be more practical (as you suggested) than Scheme? Scheme seems to be taught even more than CL these days, and used even less in the real world: sort of the paragon of the overall Lisp phenomenon.;-)
And thanks for the info. Lisp, for me, is one of those cases of something sounding too good to be true, so I'm grateful for any practical guidance from those with experience.
I keep hearing those two examples over and over again whenever I ask about Lisp, and it just deepens the mystery for me. If Lisp really gives its users such an advantage (in actual practice), why are there so few examples, given the number of top notch CS grads who have learned it over the years?
As for taking time to master, it doesn't seem any harder to master than C++ (the federal tax code of programming languages), so I don't understand why it isn't more popular, especially for server-side apps. Do all of those MIT grads who spent years using it know something about its unsuitability for the real world that I haven't discovered yet?
...it seems to me that you are mostly describing the mystery instead of answering it.
It seems to me that you are saying that Lisp is excellent, easily available, the right tool for really hard jobs, and yet "relatively few programmers seriously use Lisp". In addition, using Java instead of Lisp for most work on the server side (where the architects are free to use whatever they think will give them a competitive advantage) is how you "ensure the value of the [project] over the long haul".
Guy Steele, the creator of Scheme, pushes Java instead of Scheme for server-side work just as you do. Of course, he works for Sun, but if Lisp were such a superior tools, why isn't Java an upgrade of Scheme?
So my question remains, if Lisp is so great (and a lot of impressive people make impassioned and yet solid-sounding arguments that it is), why isn't using Lisp the way to ensure the value of server-side projects?
I'm being persistent (but hopefully not obnoxious) because I can't figure out the reason for Lisp's unpopularity. If it were because it's really hard, then I'd be delighted and work hard to make it my secret weapon. I enjoy using a variety of languages, too. But if it's because it has failed to pay off in actual use after years and years of (flawed) theoretical claims, then I'd like to know that, too.
This isn't a troll question. It's a question a lot of people wonder about, and I'd be interested in genuine opinions.
If Lisp is as great as the best and brightest often claim it is, and if it has been around longer than any of the major popular languages, and if it has been taught for years to the alpha geeks who become opinion leaders......then why is it that even relative newcomers with no corporate backing or marketing budgets at all and that are never taught in the Great Halls of CS Learning -- like Perl or Python -- are significantly more popular than Lisp and growing moreso as Lisp fades into the sunset.
And don't say "Python is a lot like Lisp". If you take Lisp itself, Python, and Perl, rank them in order of Lispiness, then turn the list upside down, you'll have their relative popularities.
Again, though that's strong language, it's not a troll. I just can't figure out what I'm missing in this picture.
If Lisp is this great secret weapon, why aren't all those thousands of Lisp programmers from the major universities putting their code where their mouth is and destroying all their Java-, C-, and Perl-using competitors? Why isn't a small army of elite Schemers taking over the industry? Is it that their secret weapon isn't as much of an advantage in practice as their theory claims, or that they could but they just don't want to, or what?
I don't believe that popularity in a language is based simply on usefulness. Other factors such as first-mover lock-in, corporate backing, programmer egos (part of C's popularity), etc. play a big role. But it would seem as though Lisp has had all of those advantages at some point, so I just don't get it.
I don't agree, but as you said, language features are a matter of personal preference.
You agree with delegates for wrapping a single method with a name of your choice instead of implementing a full set of method stubs the Java way.
For properties, I find a.b.c = foo to be much cleaner and easier to read than the Java way of a.getB().setC(foo). I wouldn't call that "getting fancy with syntax".
The Java way of handling enums (static member vars) was really clunky. C# just has clean, simple enums. After years of telling us that the clunky way was good enough, Sun saw enums in C# and now Java 1.5 will have enums.
Cycling thru a container in Java with an "Enumerator" (which isn't enumeration at all) is really ugly. In C#, all containers implement an interface that ties in to the "foreach" keyword, making the code for applying something to each element in a container clean and clear.
Compare this sort of approach in Java:
Enumeration iter = collection.getIteration();
while (iter.hasMoreValues()) {
Object item = iter.next();...body of loop...
}
to C#'s:
foreach (object o in collection)...
And then there's conversion between types. Java has a different approach between every two types. C# mostly just uses the same technique for all conversions.
Or how about this in C#:
int i=3; string str = i.ToString();
I don't find that to be confusing relative to any approach you take in Java to do the same thing.
I don't have time to write an essay full of examples (and the collections one above was just shooting from the hip, so it may be off a bit).
A lot of programmers are pretty cavalier about readability as a language feature. Not me. I agree with you. I just find these features of C# to be more readable than their Java equivalents, not less.
I understand the aversion the Java designers felt for "syntactic sugar". They equated it with the spiral of Perl into syntactic chaos.
I understand it, but don't accept it. I think that the best programming language is the one that makes you tell the computer the fewest number of things to get it to do exactly what you want it to do.
I think the Java designers were way too conservative about syntax and way too conservative about incorporating popular, proven features from other languages. They should have had smarter enums than C++, not no enums. Smarter function pointers than C++ (delegates, for example) instead of no way to pass a single function as an argument, etc.
And more syntactic sugar of the sort you see in Python and Ruby.
Java is a very solid, valuable production platform as it is, but I think Java would be a better *language* if it were a little more like Python and less like a simplified C++.
Of course, I could say the same about C#, which obviously didn't want to venture too far from the familiar features of Java, C++, and VB. My understanding, though, is that the designers of the underlying.Net runtime made a lot more effort to include features in the bytecode system that will enable languages to use generics, multiple dispatch, multiple inheritance, tail calls, and others, which could support more interesting languages (or new C# features) in the future than may be practical with the JVM. (I'm not an expert on that last point, so consider it a *rumor*).
But an opportunity to whip up public support for the cause appears to have been wasted here.
In the small, local community where all of these people live, work, and see each other at their children's PTA meetings, you don't "whip up public support" by acting like crazed San Francisco PETA protestors screaming thru megaphones, blocking traffic, vandalizing property, wearing face paint, beating bongo drums and dancing on their neighbors' cars.
In an ordinary community where few people have even heard of Linux but do care about a number of genuine life and death issues, you could certainly whip opposition to "Linux wackos" pretty fast by overdoing the self-righteous outrage over this issue in front of the local news cameras.
...so I guess he and I don't disagree about everything. ;-)
(Don't take this post too seriously, those of you who consider Stallman your messiah. I'm definitely not a fan of his and can personally attest to his difficulty interacting with people, but I do consider some of his opinions to be insightful.)
What good is your extra money if you never have TIME to do anything with it?
...don't agree to be a slave
"Never"? I told you about what I was doing now, not what I was going to be doing for the rest of my life.
Go ahead, stand up for those rights, and leave work every day at five o'clock. I'm working on being able to leave work, period.
What a politically "progressive" society we have, where someone with my life is encouraged to consider himself a victim of oppression.
I'm replying to myself, because I hit submit too soon and it may not be clear what I'm saying.
:)
I'm saying that many times you have the option to put strict limits on how much you'll work and get less money, or work "overtime" and get paid a lot more. Just because there's no formal recognition of overtime doesn't mean you're not essentially being paid for overtime.
I could get laid off tomorrow. I don't go to extremes to sacrifice myself for the company in hopes of one day being rewarded, but I do make the first move. I go the extra mile and see what happens. If nothing happens, then that option (more work for more pay) doesn't appear available. Oh, well. But often it is.
Sometimes I prefer the money and essentially sell the extra hours. Sometimes I prefer the extra time, and sometimes my choice seems limited to one or the other for a while, but the "I want you to pay me more and don't expect me to ever work past five" option isn't one I've come across very often.
Because I *am* willing to work past 5pm and to do 12-hr days to help the company succeed. As a result, they pay me a lot more than yours apparently pays you.
That doesn't make me better, it simply means that I'm getting paid more to do more -- effectively being paid well for overtime that I'm choosing to work.
Only client-side GUI apps that use WinForms need WINE. All other .Net apps -- including ASP.Net, non-GUI apps, Web services, apps that use browsers for their UI, client-side GUI apps using GTK, etc. -- will run without WINE.
Could you provide more info about Remote Agent? Was it written in Lisp? (It seems to have been written in a custom language, but was that language created with Lisp?) Is it being rewritten in C++? If so, do you know why?
The thing that should have bothered you is the utter ambiguity of such a claim. This is just one of those "newspaper statistics" that sound as though they mean something but don't.
What is the diversity of all humans? Is it more than the diversity between the two most different humans? What is the means of quantifying difference? Is there some standard, or are there lots of standards, or are there just countless ways, each of which yields a different answer?
What about the diversity in a group of chimps? Is that a family of chimps, or a small group randomly chosen from all chimps, such as one might find at some zoos?
I'm just not sure how to interpret the comparison of diversity between a small group (of chimps) and a large group (all humans). Size of group wouldn't have been mentioned, presumably, if it weren't part of the equation. What part?
Unless you know what it is they really mean, I'm not sure it makes much sense to go looking for deeper meaning.
I really appreciate your doing this!
There are some contractual things you can't get out of. You can't cancel existing contracts, which is the reason a "poison pill" defense sometimes works, and there are various contractual guarantees made to major investors that can create "classes" of shareholders (preferred, common, etc.), which makes it a little more complicated than just a question of percentages.
However, the answer to your question is mostly "yes". As 51% shareholder, you can typically completely replace the board of directors, because the board is elected by the shareholders (which means the owners) to represent their interests. New 51% owners usually want new representatives for their new interests, and the 49% owners can't raise the votes to stop them.
Then, since the CEO works for the board, the new board appoints a new CEO, who then replaces the senior execs, who all report to the CEO. They can then replace anyone below them who doesn't support the new regime.
I should add that the term "hostile takeover" is frequently just the viewpoint of the existing management. It's hostile to them because they may be thrown out by the new owners. It may not be hostile at all from the perspective of the existing small-scale shareholders -- the "outsiders".
Another possibility (in some cases) is that the old insiders club (the board and their pet CEO and his cronies) may have been milking the company for their own personal gain and there was nothing the small-scale shareholders could do about it. The big guys are making a pile of money off the company, while the company itself goes nowhere because it's being managed for the benefit of the top management, not the common shareholders.
Then a new team comes to town and offers a lot more money for common shares than the shareholders were going to get any other way. Whether the shareholders sell to the new guys or keep their now-higher-valued shares, the game has changed. Now, the old management tells everyone that the new guys are "hostile", but that may not be the way everyone sees it. They may end up more corrupt or incompetent than the old management, or they may be the first good thing for the common shareholders in years, but either way they'll be called "hostile" by the old management.
You seem all hung up on the terms amateur and professional. I took them simply to mean "amateurish" and "demonstrating mastery", and I think he did a great job of contrasting the two ends of the continuum.
I'm grateful for the advice.
A young, collegiate-looking guy gets into the express checkout line in a supermarket in Cambridge, Mass. The sign clearly says '10 items or less', but he probably has thirty items in his cart.
The cashier looks at him and asks, "Are from Harvard and can't count, or are you from MIT and can't read?"
I wholeheartedly agree.
Insurance should absolutely cover stuttering as it has the potential to cause serious, lifelong problems, yet it is highly treatable (meaning completely or almost completely cured in a high percentage of cases) if treated *immediately* at onset. (Interestingly, the treatment that needs to start immediately is an interesting twist on "do nothing", which sounds like a contradiction, but it's very important and not obvious.) Sometimes treatment doesn't solve the problem completely, but you have to try because the odds are pretty good that you'll get pretty good results if you act fast.
This is clearly one of those highly leveraged early treatments with huge payoffs over a lifetime. I speak from personal experience.
If you know of a child who has started stuttering, do a little research on the Web (Google "stuttering") to assess the problem (a little bit is natural, so see the professional guidelines) and as soon as the symptoms get near the "might be a problem" line, take the child to a speech patholgist at a real speech and hearing clinic for a consultation. DON'T WAIT!
"We concluded that taking courses is frequently a waste of time."
Well, unless you are resorting to a truism (in which case, your anecdote was unnecessary because "doing X is frequently a waste of time" is trivially true for most values of X), I'd say your anecdote doesn't support your conclusion.
It sounds as though the reasonable conclusion is that to get really great at something you have to work hard at it for a long time and that simply taking a class is not enough.
Nothing about your story implies that taking the class would have wasted your time. You could have worked hard in class and, armed with the theory, your work afterward might have been even more productive. Your experience (at least the portion you described) doesn't appear to imply otherwise.
Slashdot's search is so unhelpful that I never consider using it. Go ahead and mod me down for "redundant", but it's worth it to make the point that this poster isn't alone in this opinion.
"Growing up in a proud Korean household...."
Being a pathetic racist strutting around with a chip on your shoulder about how much more attention the Korean girls (on both sides of the Pacific) pay attention to "white boys" than to you surely qualifies you for mainstream status among "chae mi kyo p'o", but hardly makes you "proud".
And your assumption that those who are not ethnically Korean can't really know as much as you do about events in Korea as you do is an absurd idea. Ask your father. If I didn't know him, I knew people he knew. And though I don't intend to provide any details, I assure you that visualight is not unique, and that some of us not only spoke fluent Korean but had access to people, places, and events that you will never know of.
I'll also add that your father's contemporaries had a grace and class that bears no resemblance to your concept of "pride".
Those with the historical perspective of a mayfly combined with "progressive" political indoctrination (nobody hates progress more than progressives) see every local downtick or potential for problems as signs that the world is falling apart.
We have more choices in music and easier access to it than ever before in history. We have more books to read. People in the wilds of Montana now have a greater selection available than residents of Manhattan had twenty years ago.
When I started using email, it was literally a tool of the military industrial complex. Now even children regularly use it and there's so much "power to the people" that it's as if everyone in the movie theater were given his own megaphone.
And I just love the endless blather about dissenters being kept quiet in this age of personal megaphones. Sure, if the world isn't paying rapt attention to me, then it must be the fault of some vast right-wing conspiracy silencing dissent. Yeah, what else could it be?
Lots of useful content, then a bit of childish name calling to spoil the effect
Excellent info. Thank you so much. I find lots of lists of pointers to various implementations, but it's pretty hard to find "reviews" of the pros and cons of each, informed opinions on which would be best for what and why, what direction each appears to be going, which appears to be obsoleting which, and so on.
These must qualify as frequently asked questions, so I'm hesitant to ask them on online forums, but they aren't addressed in any FAQ I've seen so far because, presumably, it's politically incorrect for a FAQ to pick favorites. So, information like your posting here is greatly appreciated.
Thanks.
Thanks for the excellent summary.
;-)
If the unpopularity of Lisp despite so many advantages is really the result of guilt by association (AI) and backing the wrong horse (LispM v. Unix) -- and that sounds plausible -- then maybe it is worth investing some time in.
You mentioned CMUCL as "high-quality" and CLisp as "up and coming". Would you mind explaining what you mean by that? Those are the two I hear mentioned most often (among free Lisps), but I don't know what the differences are among Lisps, nor how to evaluate them for suitability for commercial software dev (say, database-backed server-side web apps or natively compiled Windows GUI apps, for example).
And why would CL be more practical (as you suggested) than Scheme? Scheme seems to be taught even more than CL these days, and used even less in the real world: sort of the paragon of the overall Lisp phenomenon.
And thanks for the info. Lisp, for me, is one of those cases of something sounding too good to be true, so I'm grateful for any practical guidance from those with experience.
I keep hearing those two examples over and over again whenever I ask about Lisp, and it just deepens the mystery for me. If Lisp really gives its users such an advantage (in actual practice), why are there so few examples, given the number of top notch CS grads who have learned it over the years?
As for taking time to master, it doesn't seem any harder to master than C++ (the federal tax code of programming languages), so I don't understand why it isn't more popular, especially for server-side apps. Do all of those MIT grads who spent years using it know something about its unsuitability for the real world that I haven't discovered yet?
...it seems to me that you are mostly describing the mystery instead of answering it.
It seems to me that you are saying that Lisp is excellent, easily available, the right tool for really hard jobs, and yet "relatively few programmers seriously use Lisp". In addition, using Java instead of Lisp for most work on the server side (where the architects are free to use whatever they think will give them a competitive advantage) is how you "ensure the value of the [project] over the long haul".
Guy Steele, the creator of Scheme, pushes Java instead of Scheme for server-side work just as you do. Of course, he works for Sun, but if Lisp were such a superior tools, why isn't Java an upgrade of Scheme?
So my question remains, if Lisp is so great (and a lot of impressive people make impassioned and yet solid-sounding arguments that it is), why isn't using Lisp the way to ensure the value of server-side projects?
I'm being persistent (but hopefully not obnoxious) because I can't figure out the reason for Lisp's unpopularity. If it were because it's really hard, then I'd be delighted and work hard to make it my secret weapon. I enjoy using a variety of languages, too. But if it's because it has failed to pay off in actual use after years and years of (flawed) theoretical claims, then I'd like to know that, too.
This isn't a troll question. It's a question a lot of people wonder about, and I'd be interested in genuine opinions.
...then why is it that even relative newcomers with no corporate backing or marketing budgets at all and that are never taught in the Great Halls of CS Learning -- like Perl or Python -- are significantly more popular than Lisp and growing moreso as Lisp fades into the sunset.
If Lisp is as great as the best and brightest often claim it is, and if it has been around longer than any of the major popular languages, and if it has been taught for years to the alpha geeks who become opinion leaders...
And don't say "Python is a lot like Lisp". If you take Lisp itself, Python, and Perl, rank them in order of Lispiness, then turn the list upside down, you'll have their relative popularities.
Again, though that's strong language, it's not a troll. I just can't figure out what I'm missing in this picture.
If Lisp is this great secret weapon, why aren't all those thousands of Lisp programmers from the major universities putting their code where their mouth is and destroying all their Java-, C-, and Perl-using competitors? Why isn't a small army of elite Schemers taking over the industry? Is it that their secret weapon isn't as much of an advantage in practice as their theory claims, or that they could but they just don't want to, or what?
I don't believe that popularity in a language is based simply on usefulness. Other factors such as first-mover lock-in, corporate backing, programmer egos (part of C's popularity), etc. play a big role. But it would seem as though Lisp has had all of those advantages at some point, so I just don't get it.
I don't agree, but as you said, language features are a matter of personal preference.
...body of loop...
You agree with delegates for wrapping a single method with a name of your choice instead of implementing a full set of method stubs the Java way.
For properties, I find a.b.c = foo to be much cleaner and easier to read than the Java way of
a.getB().setC(foo). I wouldn't call that "getting fancy with syntax".
The Java way of handling enums (static member vars) was really clunky. C# just has clean, simple enums. After years of telling us that the clunky way was good enough, Sun saw enums in C# and now Java 1.5 will have enums.
Cycling thru a container in Java with an "Enumerator" (which isn't enumeration at all) is really ugly. In C#, all containers implement an interface that ties in to the "foreach" keyword, making the code for applying something to each element in a container clean and clear.
Compare this sort of approach in Java:
Enumeration iter = collection.getIteration();
while (iter.hasMoreValues()) {
Object item = iter.next();
}
to C#'s:
foreach (object o in collection)...
And then there's conversion between types. Java has a different approach between every two types. C# mostly just uses the same technique for all conversions.
Or how about this in C#:
int i=3;
string str = i.ToString();
I don't find that to be confusing relative to any approach you take in Java to do the same thing.
I don't have time to write an essay full of examples (and the collections one above was just shooting from the hip, so it may be off a bit).
A lot of programmers are pretty cavalier about readability as a language feature. Not me. I agree with you. I just find these features of C# to be more readable than their Java equivalents, not less.
I understand the aversion the Java designers felt for "syntactic sugar". They equated it with the spiral of Perl into syntactic chaos.
.Net runtime made a lot more effort to include features in the bytecode system that will enable languages to use generics, multiple dispatch, multiple inheritance, tail calls, and others, which could support more interesting languages (or new C# features) in the future than may be practical with the JVM. (I'm not an expert on that last point, so consider it a *rumor*).
I understand it, but don't accept it. I think that the best programming language is the one that makes you tell the computer the fewest number of things to get it to do exactly what you want it to do.
I think the Java designers were way too conservative about syntax and way too conservative about incorporating popular, proven features from other languages. They should have had smarter enums than C++, not no enums. Smarter function pointers than C++ (delegates, for example) instead of no way to pass a single function as an argument, etc.
And more syntactic sugar of the sort you see in Python and Ruby.
Java is a very solid, valuable production platform as it is, but I think Java would be a better *language* if it were a little more like Python and less like a simplified C++.
Of course, I could say the same about C#, which obviously didn't want to venture too far from the familiar features of Java, C++, and VB. My understanding, though, is that the designers of the underlying