From: Alex M. <al...@ca...> - 2006-07-31 05:29:07
|
Hey guys, I'm writing a short paper for the IROS workshop on software standardization. I'm talking about custom middleware (e.g. Player's) compared to commercial alternatives. The obvious downside of custom stuff is that someone has to write it and maintain it, and one way to estimate the effort required is the number of line of codes. I use SLOCCount line counter (sloccount package in Debian). The only question remaining is what is 'middleware' in player and what is not. Here's where I drew the line and I'd like to hear your opinion on this. The numbers are what sloccount returns for version 2.0.2 MIDDLEWARE (aka infrastructure): ========================= libplayercore/* - libplayercore/bindings/java/net (56741-21756) client_libs/* (9575) libplayertcp/* - libplayertcp/bindings/java (2767-1319) (NOT libplayerxdr it's autogenerated) ========================= TOTAL: 46008 COMPONENTS (aka useful stuff): ========================= server/* (51983) utils/* (9438) ========================= TOTAL: 61421 does this make sense? just making sure that I'm not missing some giant piece of work or counting something autogenerated. thanks, alex maybe will see some of you in Beijing. |
From: Toby C. <tco...@pl...> - 2006-07-31 05:35:47
|
If you want to avoid all autogenerated code you should be able to perform a clean check out from SVN and perform the line count on that. In particular there are a number of files in libplayerxdr that were written manually and would count as middleware. The other point I would make is that files such as player.h could be considered middleware or simply interface specification. i.e. would you consider .idl files middleware for a project utilising CORBA (if so then libplayercore/* is middleware) if not then most of liplayercore is 'interface specification'. Hope that makes sense. Toby Alex Makarenko wrote: > Hey guys, > > I'm writing a short paper for the IROS workshop on software standardization. > > I'm talking about custom middleware (e.g. Player's) compared to commercial > alternatives. The obvious downside of custom stuff is that someone has to > write it and maintain it, and one way to estimate the effort required is the > number of line of codes. > > I use SLOCCount line counter (sloccount package in Debian). > > The only question remaining is what is 'middleware' in player and what is not. > Here's where I drew the line and I'd like to hear your opinion on this. The > numbers are what sloccount returns for version 2.0.2 > > MIDDLEWARE (aka infrastructure): > ========================= > libplayercore/* - libplayercore/bindings/java/net (56741-21756) > client_libs/* (9575) > libplayertcp/* - libplayertcp/bindings/java (2767-1319) > (NOT libplayerxdr it's autogenerated) > ========================= > TOTAL: 46008 > > COMPONENTS (aka useful stuff): > ========================= > server/* (51983) > utils/* (9438) > ========================= > TOTAL: 61421 > > does this make sense? just making sure that I'm not missing some giant piece > of work or counting something autogenerated. > > thanks, alex > > maybe will see some of you in Beijing. > > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys -- and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Playerstage-developers mailing list > Pla...@li... > https://lists.sourceforge.net/lists/listinfo/playerstage-developers > > |
From: Jordi <mu...@gm...> - 2006-07-31 09:08:50
|
> COMPONENTS (aka useful stuff): > ========================= > server/* (51983) You should make clear that most code here is due drivers -- Jordi Polo |
From: Brian G. <br...@ge...> - 2006-07-31 20:15:17
|
On Jul 30, 2006, at 10:29 PM, Alex Makarenko wrote: > I'm writing a short paper for the IROS workshop on software > standardization. Cool; I'd be interested to read it. > I'm talking about custom middleware (e.g. Player's) compared to > commercial > alternatives. > MIDDLEWARE (aka infrastructure): > ========================= > libplayercore/* - libplayercore/bindings/java/net (56741-21756) > client_libs/* (9575) > libplayertcp/* - libplayertcp/bindings/java (2767-1319) > (NOT libplayerxdr it's autogenerated) > ========================= > TOTAL: 46008 Of course, it depends what you call middleware. If you're strictly referring to the code that handles interprocess communication, data marshaling, addressing, message-passing, and such, here's the minimal set you would count: libplayercore/addr_util.[c,h] libplayercore/message.[cc,h] libplayercore/interface_util.[cc,h] libplayertcp/playertcp.[cc,h] libplayertcp/remote_driver.[cc,h] libplayertcp/socket_util.[c,h] libplayerxdr/functiontable.[c,h] client_libs/libplayerc/client.c client_libs/libplayerc/mclient.c client_libs/libplayerc/utils.c client_libs/libplayerc/playerc.h server/server.cc Some notes: - As Toby points out, player.h is really an interface specification, so it should be counted if you count the analogous .idl files for a CORBA system. - The rest of libplayercore parses config files and sets up driver and device tables that are independent of messaging or transport. You'd count this if you're counting the analogous code in other systems. - The UDP stuff in libplayertcp isn't used (yet) - The rest of libplayerc is really part of the "presentation" layer, whose job it is to make data accessible in a useful and comfortable way. And libplayerc++ uses the messaging facilities (and underlying data structures) of libplayerc; it just provides a C++ presentation of the data. You'd count these if you count the same code in other systems, or if other systems provide self-describing messages that obviate the need for a presentation layer, or if the presentation layer is auto-generated. - libplayerc/bindings/python is autogenerated from libplayerc, except for a couple of SWIG input files. > COMPONENTS (aka useful stuff): > ========================= > server/* (51983) > utils/* (9438) > ========================= > TOTAL: 61421 That seems about right. brian. |