The Author Online Book Forums are Moving

The Author Online Book Forums will soon redirect to Manning's liveBook and liveVideo. All book forum content will migrate to liveBook's discussion forum and all video forum content will migrate to liveVideo. Log in to liveBook or liveVideo with your Manning credentials to join the discussion!

Thank you for your engagement in the AoF over the years! We look forward to offering you a more enhanced forum experience.

stephenc (22) [Avatar] Offline
#1
I think it's a mistake to make the Java API the default for the book. Neo4j has its origins (and implementation) in Java, but what's exciting in the past twelve months is the growing maturity of the REST interface and client libraries in other languages. It's attracting many Java-averse programmers.

I can see that Cypher will be introduced in chapter 7 (of 12), but I'd rather see it introduced in the first section. Other than being much less verbose than Java (which is personally putting me off reading code samples), Cypher can also be used directly in the web console for instant exploration and feedback.

The other book covering Neo4j, "Seven Databases in Seven Weeks", only has a sidebar on Cypher, focusing instead on Gremlin. But as someone who has been experimenting with Neo4j (with JRuby) for three years, it's the declarative power of Cypher that has encouraged me to finally move it into production.
tomcloyd (4) [Avatar] Offline
#2
Re: Cypher in preference to Java
Have to say that I like this idea a lot. I am definitely NOT attracted to anything about Java, except it's power. Partly it's a matter of time - as in "I don't have time to dig into Java..." The concepts behind Cypher, as well as its manifest simplicity, make it very attractive to me. I can guarantee that I will using any Ruby/JRuby, then Cypher, then Java (only if I have no alternative), as I get into Neo4j. I realize the needs of others will be different, but I do want to support stephenc's idea here.
aleksav (20) [Avatar] Offline
#3
Re: Cypher in preference to Java
Thanks for your comments, I understand that there were always to be different opinions about usage of Java in Neo4j in Action.
In addition to being the Neo4j native language (giving the best flexibility and performance), Java has a great learning potential to help beginners pick up basic Neo4j concepts quickly - those are the main reasons we chosen Java as a default platform for the book.
We moved Cypher as language-neutral option to chapter 5 now, so readers can have the choice earlier in the book.
REST and potentially some other languages will most likely be covered in appendices to some extent

Regards,
Aleksa
stephenc (22) [Avatar] Offline
#4
Re: Cypher in preference to Java
I would argue that Java API is just another API that belongs in an appendix. That Java is the native language of Neo4j is irrelevent.

A statement that Neo Technology's COO Peter Neubauer endorses in this thread:

"MySQL doesn't ask you to write C/C++- it asks you to write SQL. Similarly, Neo4j works best with Gremlin and Cypher."
https://groups.google.com/forum/?fromgroups=#!topic/neo4j/nILOoZ3jMu0

Surely embedded Neo4j is not the way forward for most users even if it still has its use in niche applications, and in the development/data-crunching process.

For most applications, the future is interacting through the REST interface with language specific libraries, some of which accept quoted Cypher queries.

Stephen