Michael Fogus

author
+ Follow
since Feb 07, 2011
Merit badge: grant badges
For More
Cows and Likes
Cows
Total received
In last 30 days
0
Forums and Threads

Recent posts by Michael Fogus

John Todd wrote:That is exactly what I'm going to do, build upon Ring project and other Clojure projects.



You might also want to explore Conjure, it's a Rail-like framework for Clojure.
13 years ago

John Todd wrote:The location and the number of parentheses which it is again not Lisp/Clojure fault, mainstream languages are very different.



We need to be careful to distinguish between what people are accustomed to and what is inherently difficult. It's a tautology to say that Lisp syntax is hard to read when you don't know Lisp syntax. However, is there anything inherently more difficult to prefix operators and parentheses in Lisp than a long parade of `end` in Ruby, or significant whitespace in Python, or dots, commas, semicolons, AND parentheses in Java? I don't think so. There is nothing magically intuitive to Java syntax over any other language syntax -- it's all learned through exposure and practice.
13 years ago

Sean Corfield wrote:I'm very pleased to see functional programming becoming mainstream with increased interest in Haskell and Lisp as well as solid options on the JVM in the form of Clojure and Scala.



Further, functional techniques and features are finding their way into mainstream languages like C#, Javascript, and (to some extent) Java.
13 years ago

Pradeep bhatt wrote:In case of clojure , the code gets compiled to .class files.What happens in LISP, is it interpreted langauge ?



We have to be careful to lump all Lisps into the generic term LISP. "Lisp" refers to a whole family of languages from Common Lisp to Scheme to Clojure to Dylan and on. There are certainly some Lisps that are interpreted, but Common Lisp in particular is a compiled language.


13 years ago

John Todd wrote:Have you tried to look at any considerable Lisp or Clojure code before? do you imagine you have a big code base of this code?
Of course nothing wrong with Lisp (well some how ;)) but Lisp will tax your memory and it takes a lot of time to get a Lisp eye.
Also your team have to be elite and highly brilliant (which it is a good thing of course).



I don't want to speak in generalities because I recall similar talk when object-oriented programming started gain some market share. However, I will speak from my own experience. That is, I find functional code, in general, easier to grasp than most examples of object-oriented code. The reason for this can be summarized by a quote from Adele Goldberg, who was speaking about Smalltalk, but the point is a general point on OOP in my opinion:

In Smalltalk, everything happens somewhere else.



That is, behaviors in OOP are inherited, composed, mixed-in, etc. and therefore spread out over multiple files, classes, libraries, and projects. I find it very difficult to keep these disparate pieces in my head. Even local to individual methods Java code (just to pick any imperative OOP language) is obfuscated in that it doesn't inherently lend itself succinctness. These conditions are in part mitigated by IDEs however.

However, in Clojure code things tend to happen exactly where you happen to be looking.

13 years ago

Pradeep bhatt wrote:I think functional programming is used in Artifical intelligenece [AI] WORLD.



As someone who has had one form of AI job or another since 1999, I have to say that I've seen very little functional code in my time. The majority of AI projects that I've seen or worked on have been created using either Java or C++. However, there is a newer wave of AI projects focused on big data processing and statistical methods that I think functional techniques (hint Clojure) are especially suited for.
13 years ago

John Todd wrote:Since you are working on Scala and Clojure, do you see that Java the language has reached an end on life point?



Java is like the old man from the "bring out your dead" scene in Monty Python's Holy Grail. People are often claiming that it's dead, yet it keeps on ticking. I don't think Java has reached the end of its life yet.

John Todd wrote:Sure it will be still used in the enterprises as the business language but do you think it will be eventually be replaced by another language (also sometimes called Java.next)?



If history has anything to say about it then inevitably something else will come along to steal the majority share of programming job listings. Who knows what it will be. I'm hoping Clojure, but I might be a bit biased.

13 years ago

Eugene Gunov wrote:What are your thoughts on this?



I for one think that the availability of the Java ecosystem is a great boon to Clojure. Some of the best libraries and systems built with Clojure leverage existing libraries heavily. Granted there is often an impedance mismatch between the way that Java libraries are constructed and what constitutes idiomatic Clojure code, but I've never found it to be a barrier. Like any project, using existing libraries requires some thought about how you want to express the solution and how the library fits into that model. Where Clojure helps in this regard is that its programming model is extremely malleable. Very often it's as simple as creating a facade of functions over the library in question. I don't want to speak too generally however since every library and every project is different.
13 years ago

Pradeep bhatt wrote:Would you recommend any functional programming book to be read before this book. which one ?



Many people recommend Paul Graham's "On Lisp" and I can't say that I disagree. As far as Lisp books go, OL is one of the most functional that you'll find. As a nice bonus... it's free. I went through it with a Clojure eye at one point and found it to be a nice learning experience. http://blog.fogus.me/tag/onlisp/

13 years ago

... did you get Steve Yegge to write the forward?



Indeed.

High quality work!



Thank you for the kind words. It means a lot to us.

13 years ago
Hello Michael,

Thank you for the questions.

Does your book have any detailed tutorial or walk-through for building a medium size Clojure application?



Chouser and I made a decision very early on that our book would most be populated by pointed examples. In other words, every example in the book is focused primarily on demonstrating the particular topic at hand. I've personally read programming language books of all styles and from my perspective I've learned more about languages when the examples are not diluted with details tangential to the language itself. I like to make a joke (but I hope the meaning is clear) that goes: we tried to write a book called "The Joy of Clojure" and not "The Joy of the settings required to connect to a MySql database".

That's not to say that such a book is not useful -- only that's not our focus.

When you read the word "MEAP", do you immediately think of the Road Runner from Looney Tunes?



I hadn't, but I think from this day forward I will... thanks a lot. ;-)

I am curious what features drew you to Clojure over Scala.



I actively use both, so maybe Chouser can chime in regarding his choice. :-)

13 years ago
Hi all,

Thank you for the kind welcome. I'm looking forward to talking Clojure.
13 years ago