Live data from Hacker News

I finally understand why I'm not allowed to use Lisp

groups.google.com

101–110 of 121 posts

Re: I finally understand why I'm not allowed to use Lisp

#101

> I work in C# (worst language EVER!) You lose all credibility right there. C# is far from the worst language ever, and a pretty decent one among mainstream object oriented languages.

He loses all credibility because he don't like you religio.. I mean language? Strange metrics of credibility. I disagree with you, therefore you have no credibility.

You misrepresented my point. C# is far from my favorite language. He loses credibility however by making a statement which would appear wrong to any person with some knowledge of the programming language panorama. It's a red flag to either ignorance or intellectual dishonesty. Note that he didn't say, "C# is a language I don't like" or even "I find C# to be a horrible language", which would have been perfectly reasonable stances.

Re: I finally understand why I'm not allowed to use Lisp

#102
post #93

Earlier quoted context omitted.

I'm not sure where managers come into the discussion, but the second example is good, but even better like this: arr.sum()

In what language are arrays of numbers their own class?

In dynamic languages where arrays can be homogenous, the array can still have a sum method, it just assumes decent coercion rules and overloaded + (or it barfs...).

Re: I finally understand why I'm not allowed to use Lisp

#103
post #66

Earlier quoted context omitted.

My understanding is that Microsoft hired the IronPython developer full-time for a period of years. I think that it's only natural that MS would target Mono if they felt it was a threat. Right now it is in their interest to support Mono because it introduces more people to C# and MS feels that this is good for the long-term health of their platforms. They are also able to iterate quickly enough that Mono (and Moonligh…

Linux is a big threat, given how they have destroyed a lot of Windows Server's market. And I'm pretty sure Microsoft has a few patents on operating systems, that they could sting Linux for. However, there are too many developers who would riot (i.e. advise their boss not to go MS) if MS started playing too dirty.

Windows Server and Linux kind of "grew up" together in that Linux didn't really steal away a dominant Windows market with servers, but they both established their market shares in this space over the same time frame.

Microsoft has tried to underhandedly support efforts to kill Linux (like buying tons of crap from SCO after its suit was filed), but they haven't gone "all out" yet. I don't think that means that they won't ever do that. Again, the deal with Novell is posturing; by offering customers the guarantee that they won't get sued for using Linux by MS, they are essentially saying they may sue non-customers as they feel appropriate.

Microsoft's cash cow has always been in the desktop -- desktop OS and office productivity suites. This is the market they'll fight to the death to protect. Bringing legal action against Linux now would only serve as a distraction and a big PR help to things like Ubuntu, exactly what MS doesn't want. They seem to understand the Streisand Effect. There's no point attacking an enemy that is struggling for traction.

Re: I finally understand why I'm not allowed to use Lisp

#104
post #79

A better question is whose going to maintain all those for-loops that are buggy because human error means even a basic thing like a loop will get screwed up. Managers are always talking about code reuse but as soon as you pass a function, they are like "Woah thats crazy how can we maintain that" Only managers would think that int accum; for(int i = 0; i is more readable and maintainable than... arr.sum(x => x) Oh loo…

This was written in May 2007. C# 3.0 was released in August. We are talking about c# 2.0 here. No Lambda syntax, no Linq, no Type Inference, no nothing. Anonymous methods were clearly intended to handle events, and even that was discouraged in favor of On_SomethingHappend(...) methods in the MSDN docs.

His code must have looked like this:

    public delegate TResult Func(T input);
    public delegate TResult Func(T inputA, U inputB);
    
    public static TResult Fold(IEnumerable collection, TAcc state, Func f) 
    {
        TAcc acc = state;
        foreach(T item in collection) 
        {
            acc = f(acc,item);
        }
        return acc;
    }
    //[...]
    public int FunctionalMasturbation() 
    {
        int totalWithdrawed = Fold(0,_withdrawals,
                delegate(int acc, int value) 
                {
                    return value+acc;
                }
        );
        //...
    }
This is an abomination. Right, for developers with a background in FP, than it's pretty clear what's going on, even if it looks like puke. But in 2007 you could hold a conference for all .net devs with knowledge of Functional Concepts in a telephone booth.

Re: I finally understand why I'm not allowed to use Lisp

#105
post #87

Earlier quoted context omitted.

I'd say clever is defined by your audience. If you're writing something that others on your team would consider clever, then you're responsible for making sure they understand it. Even if that means losing whatever time you saved by writing something clever (the advantage is still creating a smarter team though). Responsible developers write a lot less clever code because it means they feel obliged to comment the cra…

Your response assumes that clever code exists to save time writing programs, and that for any problem there are a wide range of equally good solutions possible from "takes a long time to write but is easily readable and maintainable" to "quick to write but impossible to read and maintain by those who don't have doctorates in functional programming idioms." I don't dispute the existence of code that is unnecessarily c…

I suggest that sometimes what appears to be "clever" for a given audience is in actuality the local optimum. Attempting to optimize it for readability without further study will worsen the code in some way, such as conflating concerns that have been carefully separated or introducing dependencies.

If "clever" is often necessary to avoid things like conflating concerns or introducing dependencies, I think this points us in the direction we need to take in improving programming languages. (Off the top of my head, this applies to both Ruby and Smalltalk.) Though, I've also observed that bolt-ons to programming languages to address these issues are often a bit too "clever" themselves. (Example: The original implementation of Objects in Perl.)

Re: I finally understand why I'm not allowed to use Lisp

#106
post #26

Earlier quoted context omitted.

The only benefit I'm aware of is slightly faster code and even then the dynamic version is almost always more readable and easier to maintain and refactor. The ideal would be a dynamic language with optional static typing but I have yet to see a language like that.

> The ideal would be a dynamic language with optional static typing but I have yet to see a language like that. That would be Common Lisp.

That would be Common Lisp.

There was such a version of Smalltalk called Strongtalk, but it never got a community behind it.

Re: I finally understand why I'm not allowed to use Lisp

#107
post #37

Earlier quoted context omitted.

IP in Mono falls into several categories. 1. There is stuff covered by the ECMA/ISO standards. This is covered by the Microsoft Community Promise, which is legally binding. This stuff is safe from Microsoft. 2. There is a lot of .NET stuff that Microsoft has released under the Apache 2 license, which includes a patent pledge. If any of this stuff is implemented in Mono, it is safe. 3. There is stuff in .NET that is n…

My understanding is that Microsoft hired the IronPython developer full-time for a period of years. I think that it's only natural that MS would target Mono if they felt it was a threat. Right now it is in their interest to support Mono because it introduces more people to C# and MS feels that this is good for the long-term health of their platforms. They are also able to iterate quickly enough that Mono (and Moonligh…

Hugunin made his farewell to Microsoft.

http://hugunin.net/microsoft_farewell.html

Re: I finally understand why I'm not allowed to use Lisp

#108
post #56
post #48

Earlier quoted context omitted.

The ad hominem was made against techrights, not against me. I didn't even make an argument. I just linked to a few articles that criticized Microsoft's "Promise". Did tsz address the substance of techrights' argument? No. He just smeared them by implying that merely citing an article by them would make me lose credibility. That is a perfect example of an ad hominem. Attacking me was more of a case of shooting the mes…

> smeared them If you do a Google site search on that blog you'll see that the term 'smear' is used endlessly and quite carelessly by the author. It's interesting to see that you use it in the same way - and like the author I don't think you understand very well what the term means. I sure hope "gnosis" isn't one of the various aliases the guy allegedly uses across the internet, including on Slashdot where he became…

I don't think I have to point out that this is yet another ad hominem.

But, be that as it may, I'll just say that yesterday was the first day I've even heard of techrights, when I found their site through a google search.

And, honestly, I don't even care much about Mono. I'm just very suspicious of anything originating from Microsoft, and the techrights and FSF articles support these (well founded) suspicions.

Re: I finally understand why I'm not allowed to use Lisp

#109
post #50

Earlier quoted context omitted.

> Smart developers write complex code, just because they can (and often it does make it shorter), but then mid- and junior-level developer struggle with it. You know, I can't help but be reminded of Harrison Bergeron when I read this. I'm waiting for the day when someone comes up with a handicap for programmers so that we can all write code with the same ability as the least intelligent and least experienced members…

"I'm waiting for the day when someone comes up with a handicap for programmers so that we can all write code with the same ability as the least intelligent and least experienced members of our teams." Java? ;-)

Touché. I must admit that I've never thought of Java as something from Kurt Vonnegut, but the analogy is apt.

Re: I finally understand why I'm not allowed to use Lisp

#110

> I work in C# (worst language EVER!) You lose all credibility right there. C# is far from the worst language ever, and a pretty decent one among mainstream object oriented languages.

I think I can explain the author's point of view. C# 2.0 was still the cutting edge for most of 2007. Most shops were still using 1.1.

The author's qualm, coming from a Lisp POV, is most likely that if you are a consumer of C# 1.1 you can't just build C# 2.0 or 3.0 or 4.0 features. Using Lisp, he had access to everything that would eventually become C# features and then some, because if you want a fancy new language feature in Lisp you just add it. You don't have to touch the compiler (you write functions, macros, or a micro-compiler at the limit).

So there's some hyperbole there, but it's true that C# 2.0 or 1.1 was really not anything special and felt a lot like "Microsoft's Java" at the time.

Post reply on HN