(Prolog + LISP + Erlang) with integration issues versus C++
Dev Functional
devfunctional@REDACTED
Thu Aug 25 11:20:40 CEST 2005
On 8/25/05, Roger Larsson <roger.larsson@REDACTED> wrote:
> On Thursday 25 August 2005 08.18, Dev Functional wrote:
> > Hello
> >
> > The External Consultant (Subject Matter Expert) has suggested that -
> > 0. since the individual components are implemented,
> Does the External Consultant have enough experience/data to
> make these claims?
>
The Consultant is Directore's close friend's nephew !
> > the idea is partially proven
>
> Idea is proven but not only that - it is mostly implemented too!
> Reimplementation in any language will take time...
>
> Is there an estimate on how much time this reimplementation
> will take?
Estd Time =
Training Time in C++
+ Redesign in OO
+ Implementation Time
+ Debugging Time.
about 6 months (which is double time).
>
> > 1. the language barriers will cause problems in integration
> > and performance
> Performance problems can never be assumed to show up,
> only measured...
>
> My suggestion would be to try to make a very simple interface
> between the components. Keep them in separate
> processes, and use sockets/pipes/... Data transmitted could be
> specified on byte level, as plain text, or as XML.
>
All the controller code is in Erlang !
What is the procedure to call gprolog functions from Erlang ?
What is the procedure to call clisp functions from Erlang ?
>
> A1. Implement the glue
> A2. Measure performance problem.
> A3. Try to solve performance problem with hardware
> A4. Tune or reimplement the measured to be problematic part.
> A5. Repeat from A2. until performance is acceptable
> A6. Start selling (the hardware of this solution will be expensive)
> A7. Earn money
> A8. Try to solve the cost problem (will disappear over time)
>
> B1. Reimplement everything in C++, probably quick and dirty due
> to time to market concerns.
> B2. Test for implementation problems (wrong results fast)
> B3. Fix bugs
> B4. Repeat from B2, until quality is acceptable
> B5. Start selling
> B6. Earn money
> B7. Maintain spaghetti code
>
> > 2. the long-term success and reach of the product will be
> > based on complete implementation in C++.
>
> What about the short time - time to market?
>
> > 3. The Visualizer will be implemented in OpenGL and C++ based modules
> > will be quite easy to integrate.
>
> Yet another component and language!
> Suggest that the External Consultants firm could do this implementation.
> That could be their agenda anyway...
>
You are absolutely correct here !
> > 4. C++ performance will be good if a ANN component is added later
> > due to customer request.
>
> ANN?
Apology, ANN is Aritificiale Nuerale Network.
>
> > 5. Multi-language maintenance costs will be high
> The complexity of the individual components in C++ will (probably) be higher.
> Number of source code lines will definitely be.
>
> >
> > The team is disappointed, since the effort in learning the languages
> > will be wasted. The 6 developers are from C/Java background.
> Knowledge is never a waste - I assume you have been payed :-)
>
Yes. However, with change of language, the project gets outsourced
through External Consultant Firm.
> Let me add a problem of my own:
>
> 6. If the target environment is embedded devices. The size of runtime needed
> for any of the suggested languages, including C++, could add to the cost of
> the device - especially if all these languages were needed everywhere.
>
The target environment is a rack mount Storage Appliance with 1Gb RAM,
dual Xeon processor and 600 Gb SCSI hard disk space.
The key objection is that Backup software appliance needs performance
and Erlang+Prolog+clisp is not a good idea.
Now that you know the nature of the product, what is your recommendation ?
kind regards
Dev.
More information about the erlang-questions
mailing list