Re: A problem statement (and a proposed solution)
- From: Tim X <timx@xxxxxxxxxxxxxxx>
- Date: Sat, 16 Jun 2007 13:51:15 +1000
Christopher Browne <cbbrowne@xxxxxxx> writes:
PHP programmers aren't even *close* to the market Lisp should be
after.
Exactly right!
I am living in an edge of the PostgreSQL realm, these days; not much
direct Lisping for me, and there seem to me to be some relevant
parallels.
The comparison that frequently gets drawn is between PostgreSQL and
MySQL(tm), as they're obviously the two most popular OSS SQL database
systems. But they're NOT very close in intent or in relative
behaviours of communities.
PostgreSQL grew out of advanced DBMS research work at Berkeley, and
interest *began* from people interested in using the "advanced
features" like rules, triggers, funky kinds of indexes, custom data
types, numerous languages for stored functions, and such. It's kind
of like the "Common Lisp" of database systems :-).
MySQL(tm) was basically a SQL processor hacked onto the side of a
B-Tree library, and throwing in "advanced stuff" like basic data
integrity and support for transactions was something that only came in
with rather a lot of kicking and screaming. This very much parallels
the way PHP evolved from a way of adding bits of templates to web
pages into being a full-blown under-designed sorta-clone of Perl.
The "market" for successfully promoting PostgreSQL tends not to be
amongst the sorts of people that (5 years ago) were jumping to
MySQL(tm), looking for a "simple way of stowing web application data."
No, it tends to be more readily sold to people who think they would
sorta like to run Oracle, but can't afford the various costs of it
(it's expensive to buy, expensive to get a DBA to administer, and
rather a pig to install).
having worked as an Oracle developer and as an Oracle DBA, you are spot on
about it being a pig to install - and its not a nice pink domestic pig, it sone
of those big black razor back wild monsters!
They tend to get happily surprised that modern versions *aren't* as
slow as they were told. (Visions of discovering that CL garbage
collection isn't slow, anyone?)
PostgreSQL doesn't take up much space, unless you're storing terabytes
of data. [Indeed, it might even be smaller than a base MySQL[tm]
install, maybehaps :-).] (Just as an install of CLISP or SBCL
probably makes Perl/Python/PHP/GCC/Visual Anything look pretty cheap
on disk and memory space.)
I'd like to think there's a synergy available; there seem to be some
nice CL/PG libraries kicking around these days :-).
You mirror my experience exactly. 10 years ago I was developing apps with the
early releases of Java JDBC and MySQL. I came to hate MySQL because it was so
primitive and made me do much more at the application/client level rather than
in the database where I think it should have been (i.e. full referencial
integrity checks, foreign keys, triggers etc). I then worked with Oracle for a
time (actually, I still have to a bit), but now, most of the stuff I do with
databases uses postgres and I've grown to quite like it. I certainly prefer it
over MySQL, which on a couple of occasions cost me dearly because of data
loss/curruption. I don't think MySQL is really worth using unless you are doing
something very simple and Berkley DB files (or similar) are not quite enough.
I've been looking a bit at Ruby on Rails and comparing it to using cl-sql and
postgres. To be quite honest, the only real difference I've been able to see is
that rails sets up things automatically for you to start with and creates a
'forced' seperation of functionality and encourages a test driven development
approach. As I've tended to work this way when developing a system anyway, it
seems that rails just makes some of the initial 'grunt work' easier. Doing the
same with CL is quite trivial anyway. Structs seem interesting, but when you
talk to a few rails developers, one of the comments that you see a lot is
'don't use struts'.
But the point is, make sure you're trying to sell/compete in mindspace
the right ways. The people that are picking PHP probably aren't the
right ones to go after...
I think thats a good point. It may also be worth mentioning, with respect to a
powerful open source CL implementation, that this group has possibly the
highest proportion of posters opposed to open source than any other group I've
participated in. If this is a reflection of attitudes in the broader CL
community (of course it may not be), then you would have to question how
successful an open source CL would ever be (I realise that a lot would depend
on what type of open source license was selected).
More likely (wild guess, and I could be wrong), it's the people
writing server apps in Java. And there's *something* missing on the
CL side, in that Java folk tend to expect to have "J2EE"-like library
infrastructures. (Which is why I may be wrong :-(.)
I still feel that a significant problem with bringing people from (lets say)
Java is that most Java programmers I've met really just don't get CL. Many of
the concepts are extremely alien to them and the change in thinking and
development process would be a big ask for many of them. This is why I think
possibly a more relevant issue with getting more CL users is an education one
rather than an open source (or favorably priced) sophisticated CL
implementation.
To me, this seems quite self evident when you talk to other developers. The
level of misunderstanding and wrong beliefs surrounding CL is quite amazing.
I'm the only person where I currently work who uses lisp and nearly all of the
other developers think its a joke. they have all the standard criticisms - too
many parens, only good for AI, not capable of dealing with procedural
problems, old and out of date, slow, etc. These users are never going to
consider CL as a viable alternative, regardless of the quality of IDEs,
libraries etc at any cost.
I have managed to get a couple interested enough to have a look at it, but they
find the amount of effort required to change the way they approach problems and
adapting to the CL way of doing things very difficult. In many ways, they can
see the advantages, but at the same time, they can't see how they can get the
time to work at it enough to feel they have reached a sufficient level of
mastery to be confident enough to do real work. I can understand this as I had
a similar experience and to be honest, I will still revert back to perl or java
when I need to get something done in a hurry and I'm not confident I can do it
in CL as quickly (though I definitely find doing it in CL more rewarding and
I'm using it more and more).
When you move from something like Java to PHP or Perl or Python or Ruby, to a
large extent, the big issue is just geting use to the syntax and a few
languages specific idioms, most of which are not that removed from what you
were already use to. However, moving from one of these languages to CL is quite
different. The syntax is almost trivial, but the paradigm shift in how you
develop and code solutions requires more effort.
Tim
--
tcross (at) rapttech dot com dot au
.
- References:
- Re: What would happen if...
- From: Ron Garret
- Re: What would happen if...
- From: JShrager@xxxxxxxxx
- Re: What would happen if...
- From: Ron Garret
- Re: What would happen if...
- From: JShrager@xxxxxxxxx
- Re: What would happen if...
- From: Ron Garret
- Re: What would happen if...
- From: JShrager@xxxxxxxxx
- Re: What would happen if...
- From: Kent M Pitman
- A problem statement (and a proposed solution)
- From: Ron Garret
- Re: A problem statement (and a proposed solution)
- From: MarkHaniford@xxxxxxxxx
- Re: What would happen if...
- Prev by Date: Re: A problem statement (and a proposed solution)
- Next by Date: Re: A problem statement (and a proposed solution)
- Previous by thread: Re: A problem statement (and a proposed solution)
- Next by thread: Re: A problem statement (and a proposed solution)
- Index(es):
Relevant Pages
|