Re: Clojure for large programs, was Re: Please stand firm against Steve Yegge's yes language push

2011-07-03 Thread Sean Corfield
On Sat, Jul 2, 2011 at 8:56 PM, Nick Brown nwbr...@gmail.com wrote:
 But not the lots of developers part.  As much as I like
 Clojure, it has nowhere near the level of developers languages like
 Java or Python.  And to be honest, that constraint is much more
 convincing for most software managers than the library one.

That's an interesting point. Since 2001, I've mostly been working with
CFML - despite my C++ / Java background - and that's a community that
has around 800k developers (according to Evans Data Corporation's
survey in 2008). One of the biggest concerns that is commonly voiced
in the CFML is around the availability of CF developers. We hear of
companies who are switching away from CFML to technology X because
of the difficulty of finding (good) CF developers. It's hard to know
for sure whether that's really the reason for their shift - I think
it's a convenient excuse. Some companies will pick the best
technology, some companies will pick the most popular technology...
-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/
Railo Technologies, Inc. -- http://www.getrailo.com/

Perfection is the enemy of the good.
-- Gustave Flaubert, French realist novelist (1821-1880)

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en


Clojure for large programs, was Re: Please stand firm against Steve Yegge's yes language push

2011-07-02 Thread Mark Engelberg
On Sat, Jul 2, 2011 at 12:21 PM, James Keats james.w.ke...@gmail.com wrote:
 A very recent quote by Abelson is relevant:
 One of the things I’m learning here (Google) is the experience of
 working on these enormous programs. I just never experienced that
 before. Previously a large program to me was a hundred pages or
 something. Now that’s a tiny, little thing.

In your post, you talk about a certain naivete among Lispers about its
practicality in industry, explain that python and java benefit from
their added restrictions, and then offer up the above quote by
Abelson.  But you never really tie these observations back to Clojure.
 So I want to ask explicitly, do you think Clojure is suitable for
these sorts of really large programs?  Why or why not?

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en


Re: Clojure for large programs, was Re: Please stand firm against Steve Yegge's yes language push

2011-07-02 Thread James Keats


On Jul 2, 8:33 pm, Mark Engelberg mark.engelb...@gmail.com wrote:
 On Sat, Jul 2, 2011 at 12:21 PM, James Keats james.w.ke...@gmail.com wrote:
  A very recent quote by Abelson is relevant:
  One of the things I’m learning here (Google) is the experience of
  working on these enormous programs. I just never experienced that
  before. Previously a large program to me was a hundred pages or
  something. Now that’s a tiny, little thing.

 In your post, you talk about a certain naivete among Lispers about its
 practicality in industry, explain that python and java benefit from
 their added restrictions, and then offer up the above quote by
 Abelson.  But you never really tie these observations back to Clojure.
  So I want to ask explicitly, do you think Clojure is suitable for
 these sorts of really large programs?  Why or why not?

If the community sticks to Rich Hickey's original vision, and in
*competent and disciplined* hands, I believe clojure is suitable for
almost any problems (barring the obvious of course, eg, those where
the jvm wouldn't be suitable).

Clojure is not just simply a lisp, it improves upon lisp through its
immutable/persistent data structures, emphasis on pure functions and
separation of pure code from side-effecting one, collections/sequence
abstractions, embrace of java, concurrency, and recently datatypes/
protocols; clojure does impose restrictions; all those above are
restrictions (use immutable/persistent data, use pure functions, use
java directly, use generic data structures and generic sequence
functions to manipulate them, use the appropriate concurrency
feature.. etc, though it does somewhat enable the programmer to work
around those when necessary) and also for example the disabling of
user-defined reader macros. I'm actually thrilled about that, and look
forward to see how it would actually work out as the community
expands. I do though implore clojure core to stick or Rich Hickey's
original vision, and not dilute it to appease ill-conceived social/
marketing claims and incalcitrant newcomers.

Additionally, programs and teams for clojure don't have to be really
large. The language is such that a small and competent team, or even
an individual developer, could do a lot with so little.

In any case, enterprise needs could be bolted on clojure; programming
against services/interfaces/xml schemas/messaging/et cetera. Those
could almost even be said to be orthogonal.

Additionally, whatever clojure does, clojure is ultimately java. I
could take clojure 1.0 and the innumerable java libs and be done with
it (I remain to be convinced about datatypes/protocols and believe
them to impose a managerial overhead, I believe for large teams
they're a double edged-sword, the programming against interfaces is
beneficial, but their ad hoc permissiveness could prove problematic).
The same can't be said for other lisps, those weren't made with Java
in mind as Rich Hickey made clojure.

Regards,
J

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en


Re: Clojure for large programs, was Re: Please stand firm against Steve Yegge's yes language push

2011-07-02 Thread Timothy Washington
As for whether Clojure would work in a large corporate environment (or for
large software), I think that's more a function of the internal politics of
the organization. Many managers, understandably, go with a technology with
heavy library support and lots of developers. The common critique that Lisp
isn't practical in industry, comes from that position. But Clojure, sitting
atop the JVM, doesn't have that problem.


Lisp was originally developed to build an AI system. So Clojure (a Lisp) is,
in my opinion, a superior way to develop any size of program. I won't
enumerate Clojure's many technical features and attributes. Just recall that
computers are essentially heavy paper weights without software. And software
is essentially functions and the manipulation of data.  These
companieshttp://clojure02.managed.contegix.com/display/community/Clojure+Success+Stories
have
all successfully used Clojure in medium to large projects. And Ray Kuzweil
finds Lisp to be ideally suited to build a
mindhttp://singularityhub.com/2010/12/21/ray-kurzweil-the-mind-and-how-to-build-one-video/
.


OO, alternatively, is not at all practical. It was developed in the 60s, as
a way to modularize (data abstraction, encapsulation, etc) large programs.
The goal was maintainable and re-usable chunks of code. But we've seen the
downsides of the OO paradigm, including: i) excessive overhead and ceremony,
ii) software systems don't always fit into an Object world view, and iii)
Rich Hickey's critique that OO is bad at representing time.


Tim


On Sat, Jul 2, 2011 at 3:33 PM, Mark Engelberg mark.engelb...@gmail.comwrote:

 On Sat, Jul 2, 2011 at 12:21 PM, James Keats james.w.ke...@gmail.com
 wrote:
  A very recent quote by Abelson is relevant:
  One of the things I’m learning here (Google) is the experience of
  working on these enormous programs. I just never experienced that
  before. Previously a large program to me was a hundred pages or
  something. Now that’s a tiny, little thing.

 In your post, you talk about a certain naivete among Lispers about its
 practicality in industry, explain that python and java benefit from
 their added restrictions, and then offer up the above quote by
 Abelson.  But you never really tie these observations back to Clojure.
  So I want to ask explicitly, do you think Clojure is suitable for
 these sorts of really large programs?  Why or why not?

 --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.com
 Note that posts from new members are moderated - please be patient with
 your first post.
 To unsubscribe from this group, send email to
 clojure+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Re: Clojure for large programs, was Re: Please stand firm against Steve Yegge's yes language push

2011-07-02 Thread Nick Brown
Many managers, understandably, go with a technology with
heavy library support and lots of developers. The common critique that
Lisp
isn't practical in industry, comes from that position. But Clojure,
sitting
atop the JVM, doesn't have that problem. 

The library part, ok, sure (but if I'm writing in Clojure, generally
I'd prefer to work with a Clojure API, not wrestle with one built for
Java).  But not the lots of developers part.  As much as I like
Clojure, it has nowhere near the level of developers languages like
Java or Python.  And to be honest, that constraint is much more
convincing for most software managers than the library one.
Of course you can also make the argument there are fewer companies out
there hiring Clojure programmers than Java programmers, so you have a
better chance at nabbing an excellent developer with Clojure in the
job description.  But you also have a better chance at struggling to
find someone at all, and it should be no surprise than in most
corporate environments, most managers will go with the safe pick they
know they can hire someone to work on.  We can debate the wisdom of
that choice and I will likely be sympathetic to your arguments, but
then I'm not a manager so you would be preaching to the choir.

OO may not be the ideal abstraction for many programs out there, but
it is a very commonly used one (well, kinda, many Java programs are
only superficially OO) so its still going to be the first choice for
many managers who would prefer to go for the safe pick than take a
risk with something relatively unknown.  Think James Taggart in Atlas
Shrugged resisting Rearden Metal because no one else uses it.


On Jul 2, 7:02 pm, Timothy Washington twash...@gmail.com wrote:
 As for whether Clojure would work in a large corporate environment (or for
 large software), I think that's more a function of the internal politics of
 the organization. Many managers, understandably, go with a technology with
 heavy library support and lots of developers. The common critique that Lisp
 isn't practical in industry, comes from that position. But Clojure, sitting
 atop the JVM, doesn't have that problem.

 Lisp was originally developed to build an AI system. So Clojure (a Lisp) is,
 in my opinion, a superior way to develop any size of program. I won't
 enumerate Clojure's many technical features and attributes. Just recall that
 computers are essentially heavy paper weights without software. And software
 is essentially functions and the manipulation of data.  These
 companieshttp://clojure02.managed.contegix.com/display/community/Clojure+Succe...
 have
 all successfully used Clojure in medium to large projects. And Ray Kuzweil
 finds Lisp to be ideally suited to build a
 mindhttp://singularityhub.com/2010/12/21/ray-kurzweil-the-mind-and-how-to...
 .

 OO, alternatively, is not at all practical. It was developed in the 60s, as
 a way to modularize (data abstraction, encapsulation, etc) large programs.
 The goal was maintainable and re-usable chunks of code. But we've seen the
 downsides of the OO paradigm, including: i) excessive overhead and ceremony,
 ii) software systems don't always fit into an Object world view, and iii)
 Rich Hickey's critique that OO is bad at representing time.

 Tim

 On Sat, Jul 2, 2011 at 3:33 PM, Mark Engelberg 
 mark.engelb...@gmail.comwrote:







  On Sat, Jul 2, 2011 at 12:21 PM, James Keats james.w.ke...@gmail.com
  wrote:
   A very recent quote by Abelson is relevant:
   One of the things I’m learning here (Google) is the experience of
   working on these enormous programs. I just never experienced that
   before. Previously a large program to me was a hundred pages or
   something. Now that’s a tiny, little thing.

  In your post, you talk about a certain naivete among Lispers about its
  practicality in industry, explain that python and java benefit from
  their added restrictions, and then offer up the above quote by
  Abelson.  But you never really tie these observations back to Clojure.
   So I want to ask explicitly, do you think Clojure is suitable for
  these sorts of really large programs?  Why or why not?

  --
  You received this message because you are subscribed to the Google
  Groups Clojure group.
  To post to this group, send email to clojure@googlegroups.com
  Note that posts from new members are moderated - please be patient with
  your first post.
  To unsubscribe from this group, send email to
  clojure+unsubscr...@googlegroups.com
  For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en