←back to thread

117 points pamoroso | 2 comments | | HN request time: 0.508s | source
Show context
pfdietz ◴[] No.44414532[source]
I love this quote (from Interlisp-D: Overview and Status):

"Interlisp is a very large software system and large software systems are not easy to construct. Interlisp-D has on the order of 17,000 lines of Lisp code, 6,000 lines of Bcpl, and 4,000 lines of microcode."

So large. :)

http://www.softwarepreservation.net/projects/LISP/interlisp-...

replies(3): >>44414669 #>>44416257 #>>44420141 #
zelphirkalt ◴[] No.44416257[source]
Same thing could probably be some 200k or more LoC in enterprise Java.
replies(1): >>44420906 #
pjmlp ◴[] No.44420906[source]
Or Objective-C,

https://github.com/Quotation/LongestCocoa

Or Smalltalk or C++,

https://en.wikipedia.org/wiki/Design_Patterns

Or even C,

https://www.amazon.com/Modern-Structured-Analysis-Edward-You...

Point being, people like to blame Java, while forgetting history of enterprise architecture.

replies(1): >>44425031 #
1. zelphirkalt ◴[] No.44425031[source]
Smalltalk though is famous for having blocks (closures!), a very minimal syntax, and late binding. It has had those for decades before Java got something like it.

But I think it is also at least partially a culture thing. Wanting to make every noun into a class and then going for 3 levels of design patterns, when actually a single function with appropriate types of input arguments and output would be sufficient, if it can be decided on at runtime. Then we run into issues of Java the language, which doesn't let you use the most elementary building block, a function. No, it forces you to put things into classes and that makes people think, that now they want to make objects, instead of merely have a static method. Then they complicate design more and more building on that. A culture of not being familiar with other languages, which emphasize more basic building blocks than classes. A culture of "I can do everything with Java, why learn something else?". A similar culture exists in the C++ world or among C aficionados.

replies(1): >>44431241 #
2. pjmlp ◴[] No.44431241[source]
Smalltalk is a pure OOP language, even the blocks you praise are objects.

Java isn't the only language missing closures, plenty of them took their nice time getting them into the language.

Everything else about Java on your comment, applies equally well to Smalltalk, that is why famous books like Design Patters exist, were written about 5 years predating the idea of a programming language like Java, and mostly uses Smalltalk examples, with some C++ as well.

In Smalltalk image world, everything is Smalltalk, the IDE, the platform, the OS, there isn't something else.

Many Java frameworks like JUnit, or industry trends like XP and Agile, have their roots in Smalltalk consulting projects, using IDEs like Visual Age for Smalltalk.

J2EE started its life as an Objective-C framework at Sun, during their collaboration with NeXT, called Distributed Objects Everywhere.

In similar vein, NeXT ported their Web Objects framework in Objective-C to Java, even before Apple's acquisition, with pretty much the same kind of abstraction ideas.