It's funny, because most of the larger OOP projects I worked on were large
because of class bloat, not because of business concerns. For example, the
C# app I used to work on was a more or less simple CRUD app. We had a ORM
that served up objects to a Silverlight UI. So if we wanted to display
information about a person on the UI we normally had to modify around 5
classes in 5 files. We had the following layers

ORM - 1.4MB of generated C# for interfacing with the 200 or so SQL tables
we had
DTO - Data Transfer Object, where used "normal" C# objects to abstract the
ORM. This is where we had the "Person" object
API - A web service that served up DTOs over HTTP
Data Model - Processed views of DTOs formatted in a way that was easily
viewable by the UI
View Model - UI classes that would take data from a Data Model and emit UI
controls.

All of that ceremony....that is replaced by one thing in Clojure...data.
Hashmaps and vectors replace all the junk you see above.

So that's where I often assert "Yes, you may have 1 million lines of Java
code....but that would only be ~10,000 lines of Clojure." With proper
application of data driven systems (data that configures pipelines and
writes code) you can easily get a 100:1 ratio of Java to Clojure code.

Timothy


On Sun, Nov 15, 2015 at 12:48 PM, Marc O'Morain <m...@circleci.com> wrote:

> We have a large app at CircleCI - as of September:
>
> "The repo for our main app contains 93,983 lines of Clojure code. The src 
> directory
> of our main app contains 369 namespaces."
>
> http://blog.circleci.com/why-were-no-longer-using-core-typed/
>
>
>
> On Sun, Nov 15, 2015 at 7:22 PM, dilettante.co...@live.com <
> dilettante.co...@live.com> wrote:
>
>> I've been having a (friendly) argument with a friend who is an old-school
>> OOP programmer.  He insists that you need objects to make large-scale
>> codebases legible and maintainable over the long run.  Quite apart from
>> this argument's virtues or lack thereof, this made me curious -- what are
>> the largest programs written in Clojure in terms of LOC?  I know I've seen
>> mentions of 50k-100k LOC projects (World Singles, if I'm remembering
>> correctly), but are there any that are larger?
>>
>>    Vikram
>>
>> --
>> 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 unsubscribe from this group and stop receiving emails from it, send an
>> email to clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
> --
> 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 unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>



-- 
“One of the main causes of the fall of the Roman Empire was that–lacking
zero–they had no way to indicate successful termination of their C
programs.”
(Robert Firth)

-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to