6 ms·
I wonder, if the switch had been made now, it they would have switched to Clojure instead of Python. It's a lot closer to Scheme, and its connection to the JVM
by time_management 18y ago
I wonder, if the switch had been made now, it they would have switched to Clojure instead of Python. It's a lot closer to Scheme, and its connection to the JVM gives it a lot of practical power. Does anyone have any thoughts on this?
- tlb 18y agoPeople often say that Java has great libraries, but is it true? AWT is crufty and ugly. Maybe there are impressive XML parsers (Xerxes is 188,000 lines of Java!), but I don't want those. Numerical libraries seem bad. So what is the library that might convince me to use Java for something?
- acdha 18y ago"The" library is which ever squirrelly database, file format, app, etc. your next project needs to talk to which doesn't have bindings for your favorite language. You compromise on Java to avoid writing that by hand and use a JVM language to avoid the pain of actually using Java.
- tlb 18y agoSuch as??? Can anyone point to a format I might want to use that has a Java library but no C++ or Python library?
- smallpaul 18y agoA few years ago, I took over maintenance of a Windows program that depended upon a Java component wrapped in COM. With Sun and Microsoft at war, that seemed a bit risky to me. I asked: "why is this Java component in the Windows client app?" The answer was that the server was also implemented in Java and the SOAP libraries were compatible, whereas Microsoft's and Java's were not (at that time). I nearly choked: they chose a "standard" like SOAP and then re-standardized on a particular library (client and server components of it) "for compatibility." So to bring this digression back to relevance, I'll say this: if you already have Java code around, it will be easiest to talk to it from Java. And since Java is the new COBOL, there is a bunch of Java floating around. (but if you need a Java client to talk to a Java server using a "standard" protocol then something is seriously awry somewhere)
- failrate 18y agoI don't know why people even bother with XML when it is so much easier to write S-Expression generators and parsers.
- ilkhd 18y agoI beleive actually that s-expression are going to come back. Clojure, Arc, R6RS - these are harbingers of the return, I think.
- smallpaul 18y agoJSON is much more popular than s-expressions, and not just accidentally. Explicit, compact syntax for both lists and key-value pairs is The Right Thing in a language like this. { "x": [ { "y": "a", "z": 23, "q": [ 54, 32, 45 ] } ], "r": 43 }
- habibur 18y agoWhy can't we keep the indents and drop the parens?
- smallpaul 18y agoYAML?
- deleted 18y ago[deleted]
- ilkhd2 18y ago1.hmm, well, if you try it you'll see that at least in the area of programming languages, after spending some time you'll see that you reinvented s-expressions. 2. can be very interesting to see for example this (sum of every vector-element) in json/yaml... (defn sum-vec [vec] (let [vec-len (count vec)] (loop [idx 0 acc 0] (if (< idx vec-len) (recur (inc idx) (+ acc (vec idx))) acc))))
- NonEUCitizen 18y agolucene
- mahmud 18y agoWhich is a clone of a Common Lisp search engine ;-)
- sharkbrainguy 18y agoThis took me quite a bit of googling to "confirm" so I thought I'd save the next guy some trouble. Lucene is sort of Doug Cutting's Java version of Text Database (TDB), which he and Jan Pedersen developed at Xerox PARC, and which, to complete the circle, was written in Common Lisp (see "An Object-Oriented Architecture for Text Retrieval"). http://code.google.com/p/montezuma/ http://code.google.com/p/montezuma/
- scott_s 18y agoPlease put newlines in the above, or don't put the two spaces in.
- sharkbrainguy 18y agosorry, It seems I can't edit it now. Is there a timeout?
- scott_s 18y agoYes, but I think I also triggered it by responding, which means only an admin can change it.
- ilkhd 18y agoJava's JIT - this part is really interesting.
- 10ren 18y agohttp://freshmeat.net/tags/java-libraries http://freshmeat.net/tags/java-libraries I'm not saying they are all are high quality, or relevant to your task, or that there are no C++ or Python equivalents - just that there is a high quantity of Java projects. Why not have a quick search? Maybe there is a project there that will convince you. AWT is about the most prejudiced example imaginable - it was rushed out, disowned by its authors, and quickly replaced. I think one of the key aspects of the java ecosystem is the idea of free reference-implementation libraries, but you can pay ridiculous amount of money for corporate versions with better implementations. For example, the BEA Systems implementation of Java itself and related tools seems pretty good, well-documented and so on. I find Java itself and its OO style is pretty horrible for writing prototype code that can be changed quickly and arbitrarily - so, probably, any revolutionary ideas that require that flexibility of interfaces will be hard to iterate in java, and therefore we probably won't find many such projects written in java.
- danbmil99 18y ago"AWT is about the most prejudiced example imaginable - it was rushed out, disowned by its authors, and quickly replaced." Ahh yes -- replaced with Swing. Do I need to spell it out?
- herdrick 18y agoNo, they aren't very good. I think the problem is cultural. Programming Java gets you comfortable with extreme verbosity and tons of structure so its libraries end up like this: http://ws.apache.org/xmlrpc/apidocs/org/apache/xmlrpc/server/RequestProcessorFactoryFactory.html?rel=html http://ws.apache.org/xmlrpc/apidocs/org/apache/xmlrpc/server... (In extreme cases.) Lucene was mentioned earlier - it, at least, is very good. I have the same impression about the numerical computation and machine learning libs too.
- time_management 18y agoThere's a lot of "enterprise" crap in the Java libraries: extreme verbosity is the most notable problem. Object-orientation is also just the wrong metaphor for many problems. Finally, camelCaps are uglyAsFuckAndNotVeryReadable. However, the JVM libraries are well-supported and generally can be trusted to work. For a lot of the wheels I'd rather not reimplement, they're quite useful. I don't think that the Clojure of 2020 will be as reliant on Java, but for now, the JVM libraries are very useful.
- rjprins 18y agoClojure is still something of a small hype. Python is a 18 year-old programming language.
- swannodette 18y agoClojure is a Lisp. Lisp is 50 years old.
- icey 18y agoDon't you think that's a bit disingenuous? Clojure is still changing with a fair amount of frequency. As far as I'm aware, they have not even hit a 1.0 release yet (releases are currently referred to by their release date, which tells me it's still in the pre-final stages). It's a great language, but there is nothing to gain here by claiming it somehow is mature because Lisp is 50.
- deleted 18y ago[deleted]
- deleted 18y ago[deleted]
- deleted 18y ago[deleted]
- deleted 18y ago[deleted]
- swannodette 18y agoI suppose my point was that the principles of Lisp have lasted 50 years. Python (which is great) is the child of many, many Lisp-y ideas, but I don't think people will be using a variant of Python 32 years from now. But I would definitely bet there'll be many cool Lisp variants 50+ years from now, some of which may have taken some really good ideas from Clojure. Let's make it happen ;)