Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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.



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.


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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: