HNHacker News
TopNewBestAskShowJobs

wes-exp

984 karma · joined July 11, 2011

submissionscomments
wes-exp··on Why Racket? Why Lisp?
Still ahead of mainstream programming languages, which are typically imperative by design, and usually overly "noun" focused compared to the "verb"-friendly nature of Lisp. Adding map/reduce/etc. to the noun languages is a bolt-on that is not exactly ideal.

Take Java 8 which now has map: sure, you can pass a lambda expression with a custom function body, but is using functions (particularly side-effect-free ones) as arguments idiomatic otherwise? I can only imagine the amount of ceremony code that ensues when trying to merge those worlds. Don't get me wrong, having map/reduce/etc. is an improvement to Java for sure, but Lisp is still well ahead on the overall cohesion and utility of such things within the context of the rest of the language.

wes-exp··on Why Racket? Why Lisp?
Yes, it was a poor choice of terms. To be clear, eval isn't equivalent except within the narrow theoretical notion of turing completeness: it can do I/O, for instance file I/O. And it accepts high-level language code directly which is very important in a practical sense compared to, say, accepting nand instructions only.
wes-exp··on Why Racket? Why Lisp?
I'm thinking you're right in the theoretical sense, but I'm right in the practical sense. Every time I've looked at hygienic macro systems, it just seems like now I'm jumping through extra hoops to overcome a more restrictive way of doing things. Is that extra information you cite typically useful for anything besides safety? Can you give an example?
wes-exp··on Why Racket? Why Lisp?
Fine, but can you name some language features that came out after the '90s that weren't in Lisp already? Excluding type systems?
wes-exp··on Why Racket? Why Lisp?
I understand what you're saying. What I mean is not the trivial "nand is turing complete" sense, which I agree is harmful and silly, but full eval capabilities. Lisp macros can fully evaluate Lisp code, and I consider this a great feature, but I don't know how else to describe them. "Full evaluation macros"?
wes-exp··on Why Racket? Why Lisp?
Type systems are the one exception, but it still remains broadly true that Lisp was way ahead of everybody. There are many things we could talk about besides type systems:

Lambda expressions - just now reaching Java and C++, been in Lisp forever

Garbage collection – (obviously)

Turing-complete (edit: fully evaluating) macro systems – I've heard C++ is moving in this direction (not sure to be honest) but Lisp is still ahead on this

Gradual/optional typing – Others have been moving towards this, CL has had it forever

Interactivity/REPL – e.g. Swift may finally give a REPL to systems programmers, Lisp has had it forever

Dynamism/late-binding – Lisp is still way ahead on this, goes hand-in-hand with interactivity

Everything serializable – Lisp is still ahead

Structured code editing (paredit) – Lisp is still ahead, not sure anyone else even knows what this is

Multiple inheritance – I think this is coming to Java finally

Image systems (hibernating a running process) – Still ahead

Condition system / advanced exception handling – Still ahead

Functional programming techniques (map, reduce, etc.) – Still ahead

Keyword arguments – Recently added to Ruby, Lisp has had them forever

wes-exp··on Why Racket? Why Lisp?
Author is wrong about hygienic macros – they are not more powerful. They are less powerful, and more complicated, in order to enforce safety. Whether this is preferable or not is a matter of debate.
wes-exp··on Google, it's time – We want Scala for Android
Indeed. Developers look to Google to set an example, but it seems that Google itself is looking to developers to set an example. Hence we have a circular pattern of language adoption :) But it doesn't have to be that way.
wes-exp··on Google, it's time – We want Scala for Android
When I say proven out, I don't mean in the sense of being widely used; I mean academically. In other words, I am trying to say that it's not a research problem, it's a problem of, say, engineering and marketing to bring it to reality. Cool language features are well established in academia (but tend not to go anywhere due to entrenchment and industry complacency – in that sense I would agree that they aren't 'proven').
wes-exp··on Google, it's time – We want Scala for Android
I think WebOS was going to use JavaScript.

The thing about Java and C++ is that they themselves are around for historical reasons. Far better languages have already been proven out. But, it will take a major industry player to move the masses forward on this. Apple's Swift effort gives hope on this.

wes-exp··on Google, it's time – We want Scala for Android
If I asked a restaurant if they would serve something besides bowls of gruel I would at least expect some sympathy like "we wish we could, but..." Instead they were actually mocking the idea and seem to have no clue how bad Java is.
wes-exp··on An Iron Curtain Has Descended Upon Psychopharmacology
To say that drug patents are nothing but greed is way off base. The cost of R&D together with the work needed for FDA approval is typically astronomical – the only way you're recouping that is with a monopoly and a high price.
wes-exp··on Ask HN: Would a .Net back-end put off potential acquisitors?
For what it's worth, I agree that .Net could be a viable and good tool for many startups, in principle. I just think that it isn't very popular amongst Silicon Valley startup types, and one should take that into account if we're talking about hiring issues and so on.
wes-exp··on Ask HN: Would a .Net back-end put off potential acquisitors?
The sheer numbers are for the legions of ho-hum programmers building CRUD data-entry systems for e.g. aluminum can factories. The majority of startup-oriented engineers are a different group and I agree that .Net may be off-putting to them.
wes-exp··on Microsoft Looks to Cut Up to 18,000 Jobs
Is there any value in keeping the kernel closed source ?

It prevents forking. MS doesn't want to compete against its own kernel. Even Android doesn't want to compete against itself, hence the manufacturer agreement(s) that make it effectively closed.

wes-exp··on Microsoft Looks to Cut Up to 18,000 Jobs
Don't underestimate the value of the Nokia brand. Until recently, IIRC, Nokia was the world's largest seller of mobile phones. That brand image is worth a ton to help MS sell its phones.
wes-exp··on Learn Lisp the Hard Way
totally unparsable

Completely and utterly false. Lisp's s-expression syntax is trivial to parse because it is so regular.

The thing with imperative programming

Common Lisp is multi-paradigm, as mentioned in the site's FAQ. You can write imperative code all you want.

wes-exp··on Learn Lisp the Hard Way
Just because Lisp looks foreign doesn't mean that it's harder. The syntax is different, but it is also very simple. If this were untrue, Scheme wouldn't have survived as a teaching language all these years.
wes-exp··on Goldman Sachs Demanding E-Mail be Deleted
Understandably GS is not a very sympathetic figure, but in general I don't think it's unreasonable to wish for an email "undo" if you fat-finger the recipient address and realize it immediately.
wes-exp··on Amazon sues employee for taking Google cloud job, in new test of non-competes
Yes, but consider this: you have a government-protected monopoly on your home when you own it. Imagine if anyone could compete for your home simply by occupying it. That would be economically ruinous.

Intellectual property is also a government-protected monopoly, created for the advancement of society.

Basically I'm saying that monopoly can be good or bad depending on the specifics. So competition can be very destructive in some cases.

wes-exp··on Tor users are selected and monitored by the NSA as extremists
Keep in mind search engines often know what link you click on, and NSA probably also monitors which site is subsequently visited pursuant to a keyword search.
wes-exp··on Amazon sues employee for taking Google cloud job, in new test of non-competes
Competition isn't magic fairy dust that makes everything better.

e.g. "Progress comes from monopoly, not competition" — Peter Thiel

That said, lack of non-compete enforcement is often credited as one of the contributing factors to California's excellent startup environment.

wes-exp··on The new 501(c)(3) and the future of free software in the US
It's a wake up call: real charity is stuff like stopping malaria in destitute villages. Releasing software without charging a fee? Not so much.
wes-exp··on Lisp CPU
Yet again in the Lisp world, the past is more futuristic than the present.
wes-exp··on Lisp CPU
I'd like to see a modern CPU that handles dynamic typing in hardware. Registers can store values as well as the type, e.g. 32 value bits and a few type bits. Basic arithmetic like addition can automatically compare the type bits and just do the right thing with a single instruction (fixnum add, float add, bignum add, etc.).

Would this be cool or am I dreaming?

wes-exp··on Egison: A Lisp Written in Haskell with Advanced Pattern Matching
I'm baffled why the creators of Egison seem to think pattern matching is so significant for a Lisp. Common Lisp has a variety of pattern matching libraries. Clojure has a pattern matcher as well. Is there something radically better about Egison that I am missing?
wes-exp··on Effect of mobile telephones on sperm quality: Review and meta-analysis
https://experiment.com (science crowdfunding)
wes-exp··on Supreme Court rules on software patent case Alice Corp v. CLS Bank [pdf]
Summary: http://patentlyo.com/patent/2014/06/claims-invalid-section.h...
wes-exp··on Effect of General Anesthesia in Infancy on Long-Term Recognition Memory
I believe there are similar issues with children and x-rays to the head/brain.
wes-exp··on Crane: An ORM for Common Lisp
The project page makes claims that it doesn't fall into common ORM traps such as recreating SQL syntax

I don't see anywhere on the page where it is critical of recreating SQL syntax. I think the trap the SQL stuff is trying to avoid is doing everything through OOP method calls — something like Django's filter method, which the page explicitly calls out.

Even if it was critical of recreating SQL, the point of an s-expression syntax is that it is still SQL, rather than a naïve reinvention that ends up missing important features.

← PreviousPage 2 of 12Next →