[clug] Watercooler - was Open Source Developers in CBR

Brenton Ross rossb at fwi.net.au
Mon Sep 7 05:13:12 UTC 2020


Mike,
thanks for your thoughts.

My project is in its early prototype / feasibility study phase at the
moment. Hence my focus is to get enough stuff working to be able to use
it to tackle the core problems which are still some way down the track.
Stopping to learn a new language might get a final result sooner, but
it would feel like an unnecessary diversion at the moment.

You are definitely correct about the language ecosystem. I have always
found setting up a build environment to be an order of magnitude more
difficult than learning the language itself. For now I am happy with
autotools and C++.

I am aware that there are many graph databases available as an
alternative to RDF. Perhaps one will make it into the final design, but
that is a problem for when I get past this feasibility study. For now
it appears to have a good match for the requirements. 

Brenton

On Mon, 2020-09-07 at 12:19 +1000, Michael Cohen wrote:
> Hi Brenton,
>    I have been maintaining a C++ RDF based project for some years now
> (https://github.com/Velocidex/c-aff4) and while this is not meant to
> be a language flame war would like to share my experiences with you.
> Back in the old days the choice of languages was always a tradeoff
> between slow but fast to develop (Python/Java) or fast but harder to
> develop (C++/C).
> 
> However in recent years a number of languages have emerged which make
> this tradeoff moot - specifically Golang and Rust both provide fast
> to
> execute **and** easy to develop. The choice is now a no-brainer IMHO
> -
> unless you have a legacy project to maintain C++ is rarely my first
> choice (I have been a professional C++ dev for many years so I am
> **very** familiar with the language- yet I find development velocity
> to be much lower than golang). These days I prefer Golang because I
> want to have my cake and eat it too :-).
> 
> The other aspect of c++ dev which a lot of people don't mention is
> the
> poor state of portability and the build system. Go and rust have made
> great strides with built in cross compilers, reproducible builds out
> of the box and a great package management (even better than Python's
> pip). I always found C++ build system difficult and unmaintainable -
> without a docker file to completely reproduce the dev's build system
> it is virtually impossible for anyone to build the thing. Portability
> and building and packaging are a critical part of any successful
> software project and go beyond just the language. The language
> ecosystem is very important.
> 
> Finally my experience with RDF was poor at best - it is a nice
> theoretical technology but as you point out not well supported and
> certainly not popular. If I had to do it all again I would not pick
> RDF as a standard but possibly just make my own data structures with
> json/protobuf . RDF adds a lot of complexity to the design which is
> not often needed and too much abstraction for the problem set. Unless
> you have to interoperate with another RDF system I would be wary of
> using it in a new design.
> 
> At present, I find myself rewriting the above project in golang
> because I just had enough of maintaining that C++ mess. YMMV.
> 
> Thanks
> Mike
> 
> 
> On Sun, 6 Sep 2020 at 17:27, Brenton Ross via linux
> <linux at lists.samba.org> wrote:
> > 
> > Thought I might kick this thread off.
> > 
> > I am currently working on a C++ wrapper for a C RDF library.
> > 
> > I have a very large project in mind, one that has many different
> > components. The details are a story for another day, but at the
> > bottom
> > of the stack is RDF. My preferred language for the project is C++
> > for
> > its combination of speed and ability to model objects which are my
> > preferred way to solve programming problems.
> > 
> > I intend to use as many third party open source components as I can
> > for
> > the project, mostly just to save my time. I could not find a C++
> > library for RDF, just the Redland C library. I did find a C++
> > project
> > that was attempting to create a wrapper for Redland but it was
> > looking
> > a bit abandoned and had some problems.
> > 
> > Hence my first sub-project is to build a C++ wrapper for the
> > Redland C
> > library. I started with the source from the existing project, but
> > ended
> > just keeping one of its core design features and rewriting most of
> > it
> > using C++ features that are more recent than what the original
> > author
> > used.
> > 
> > Since a database is a really boring object I am also building a GUI
> > program that I use to try out its functionality.
> > 
> > Links:
> > https://sourceforge.net/p/ocratato-sassy/rdfxx/
> > https://sourceforge.net/p/ocratato-sassy/rdfgui/
> > 
> > Brenton
> > 
> > 
> > 
> > 
> > 
> > 
> > --
> > linux mailing list
> > linux at lists.samba.org
> > https://lists.samba.org/mailman/listinfo/linux




More information about the linux mailing list