
Revenge of the Nerds - jacquesm
http://paulgraham.com/icad.html
======
jacquesm
It's a great piece, this little gem is the reason why I posted it:

"If you start a startup, don't design your product to please VCs or potential
acquirers. Design your product to please the users. If you win the users,
everything else will follow. And if you don't, no one will care how
comfortingly orthodox your technology choices were."

at about 2/3rd into the essay.

~~~
aditya
The trouble with that, of course, is that even though tipjoy pleased users
they just didn't have enough of them or enough transaction volume since the
market wasn't ready.

What does one do in that case? Keep going (bleeding money) or give up? Lots of
startup ideas are so bold that they're clearly early for their time.

~~~
jacquesm
I think tipjoys major problem was simply not being integrated in the platforms
they were targeting, not that they did not please their users enough. You have
to go through _all_ the gates to score, not a subset of them.

And not having enough users is just as much a reason for failure as having
dissatisfied ones.

The market is ready alright, it's just that as a third party add on offering a
payment service you have to cross one more hurdle.

I'm pretty sure if the tipjoy principle would be implemented from within the
network that it would be an instant smash hit.

~~~
MaysonL
Hmmm... wonder how Tipjoy would work folded into Disqus or somthing like
that...

------
asimjalis
Is this an attempt to earn some quick karma?

~~~
jacquesm
I don't think I'm in the need of that. You can have all of it, it wouldn't
make any difference to me. Let's trade uids, my email is in the profile.

~~~
aditya
Wait, you can do that? Exchange uids?! I want nickb's... :-)

Oops. My bad. Pre-edit: "so why post this and why now? :)"

~~~
sho
_"I want nickb's"_

Bah. I almost wish this place didn't have points, or at least didn't have them
so visible. Just knowing they exist weighs on me, and discourages me from
saying what I really think, towards what would be popular. I can't help it.

~~~
jacquesm
I know... it's my strong belief that karma works best 'behind the scenes'.
Even if the system in general would remain it would be nicer to disable the
visible points next to each item & article header.

I wonder if the poster really would feel better with nickb's user id, after
all he wouldn't actually _be_ nickb...

~~~
sho
More to the point, why would he want to be? What is the actual value of HN
karma, outside the confines of one's head? I know none of my friends could
care less - in fact they'd probably call me an idiot for spending so much time
here. And I would like to think HN members resist judging each other by their
karma; except in extreme cases the text should stand by itself.

Still, the system does seem to work(1). Perhaps this eternal fight with the
inner "karma farmer" demon is the price we have to pay for effective group
moderation.

(1) Unfortunately, there is only one data point, insufficient to form any firm
conclusions

------
billswift
I'm not much of a programmer yet, and a lot of the C bashing I read complains
about pointers and how necessary they are in C, yet according to this:

"Dynamic typing. In Lisp, all variables are effectively pointers. Values are
what have types, not variables, and assigning or binding variables means
copying pointers, not what they point to."

They are even more fundamental to LISP. Also if dynamic typing is good and
most posts seem to claim it is, and dynamic typing more or less equals
pointers which is what this seems to be saying, doesn't that mean using
pointers is good? Also, I have seen frequent complaints about C's "static
typing", but if using pointers results in dynamic typing, doesn't that suggest
that static or dynamic typing is a stylistic choice in C programming?

~~~
pg
Pointers in Lisp are implicit. Lisp uses pointers only in the sense that loops
use gotos.

------
padmapper
I highly recommend PG's book of essays Hackers and Painters (it contains this
essay).

------
TweedHeads
(defun foo (n) (lambda (i) (incf n i)))

def foo(n): lambda i: n += i

Give me two powerful languages with the same features and I'll pick the latter
for its syntax.

So no, lisp may be the best right now, but it won't be the best forever, its
syntax is its best friend and worst enemy.

Something lispers will never understand. Love is blindness.

~~~
pg
In this case it's more that ignorance is blindness. That syntax _is_ a
feature. The fact that Lisp code is expressed in Lisp data structures makes it
easy to write programs that write programs.

~~~
TweedHeads
Dear Paul, when I say its syntax is its best friend, that's exactly what I'm
talking about.

Now, say I fork lisp and change one little thing:

(defun foo (n) (lambda (i) (incf n i)))

to this:

[defun foo [n] [lambda [i] [incf n i]]]

or even this:

{defun foo {n} {lambda {i} {incf n i}}}

or how about this?

<defun foo <n> <lambda <i> <incf n i>>>

Hmm, trees are powerful, no matter how they are expressed huh?

What if we can represent the same trees using colons and commas as delimiters?

:defun foo:n, :lambda:i, :incf n i.

Maybe spice it up a bit using periods as recursive closing delimiter.

See? still powerful trees!

Between common lisp and colon lisp, I still use the latter.

Love is blindness.

~~~
TweedHeads
Taking a closer look at my macbook keyboard, of all the lisp forks, I'd go
with squared brackets [lisp] for convenience.

Ergonomics win.

~~~
Kw2987
If that's the only thing stopping you, just tweak your editor's keymappings.

