Wed 4 Feb 2015 4:31PM

Development, programming languages, databases

MGG Mario G. Gurgel Public Seen by 109

Context (added by Adam at 2015-02-06T13:25Z):
In the rippleusers thread, Ben/Zecrets suggested:
> Mostly html5 stacks and js libraries for front end. With such, a bootstrap based web interface can be created that works on desktop, mobile, cross platform and eventually even be run p2p on mobile devices or in a web browser or WebKit. I also like php and laravel.org for initial prototype, backend non distributed system. But all Architected while keeping in mind an eventual distributed p2p system. I have a lot thought out in those aspects.

> I have some skills but not a ton of time.

Alessio was eager to
> start debating technologies and languages and architectures and...?

Giovanni's starts this discussion with:
I suggest that we use GitHub for managing the development, and host the app on Heroku (at least in these beggining stages).

For the database, I think this project is a perfect use-case for the Neo4j database, so I suggest that we use it as our main datastore (later we can use it only to manage the relationships and another database to manage other things, but for now I think it will suffice). It is available as a Heroku addon for free for small usage, just as we need for the moment.

About the programming language and frameworks etc., I would suggest that we used Golang for the job, but as it is a prototype and we should not do premature optimization, I suggest Python and Flask, as these are the simplest tools around, have good libraries for interfacing with Neo4j and are highly powerful.

About me, I can help the development if we decide to do it in Golang or Javascript, but not in Ruby or PHP.


Alessio Stalla Wed 4 Feb 2015 4:50PM

+1 for Neo4j. It's just the ideal use case for it.

+1 for GitHub as well.

I don't know Heroku and I'm not a good sysadmin. I'd go for the simplest solution, I have no strong opinion here.

About languages, I do my daily job in Java and Groovy (with the Portofino web framework) and I routinely use JavaScript on the client side, but I'm not into the whole JS culture and I never used it on the server side. Given my background, the fact that Neo4j is Java-based, and the amount of mature open source libraries, tools and environments available, I recommend the JVM.

I also know Common Lisp and while I would love to use it in a project, I don't think it's a wise choice for Wuush, if there has to be more than one developer :D

I despise PHP with my entire being. I would never endure to hack it unless they paid me a lot, and I mean A LOT. Python, I'm not opposed to it, but personally I don't know it beyond very simple script use, so if I'm expected to do development, I would rule it out unless we have a strong Python dev who can lead.


Mario G. Gurgel Sun 22 Feb 2015 4:56AM

I was glad to hear that you despise PHP with your entire being, but I was sad to head that you like to work with Java and the JVM, because I can't do (well, if needed I can make an effort to learn it, but it is not in my plans right now), and that leaves us without any intersection point.

Neo4j is Java-based, but if we're hosting on Heroku (or some other PaaS that gives us easy and free servers while we're small) we cannot connect to Neo4j directly anyway (I imagine), we have to use the REST API, so we're at the same place with all languages.

Anyway, I'll start writing a quick prototype here, in Python, and you look at it and see what you think.