On 7/22/19 4:01 PM, J. Lewis Muir via Tech-talk wrote:
It seems to me that the terms "EPICS" and "EPICS Base" are often used
interchangeably, yet they're not the same thing. Are the following
definitions correct?
EPICS: A specification of control system definitions and protocols.
EPICS isn't a specification, we generally call it a Control System Toolkit, and explain it in Intro talks to have 3 aspects: The collaboration, the distributed architecture, and the collection of software that can be used together.
EPICS Base: A C/C++ implementation of the EPICS specification.
EPICS used to come as a monolithic software release which contained everything (the IOC, hardware support, sequencer, database development tools and X11-based GUI). When it was split up (around 3.12 IIRC) EPICS Base was the name used for the core IOC and network
software, and EPICS Extensions for the collection of GUI and other tools.
If correct, then I'm OK with keeping the name EPICS Base, but I wonder
if a better name might be EPICS-C++? Then, if desired, you could
have other implementations of the EPICS specification: EPICS-Java,
EPICS-Perl, EPICS-Python, EPICS-Ruby, etc.
There were C++ and Java implementation of some of the PVA modules and for those we included the language in the original module names, although those Java modules that are being used have now been combined into a
single GitHub repository and the C++ modules are slowly losing that annotation. The core EPICS Base build system relies on Perl and comes with CA bindings for Perl scripts, but
most of the Perl code can't be removed. There have been various re-implementations of the CA client and/or server libraries in other languages (for want of a better place I link to those from the EPICS Extensions page of the APS EPICS website), but I don't
think anyone is likely to re-implement the IOC in other languages.
- Andrew
--
Complexity comes for free, Simplicity you have to work for.
|