comp.lang.ada
 help / color / mirror / Atom feed
* I'm a noob here.
@ 2014-05-05 11:28 sdalemorrey
  2014-05-05 12:43 ` Dan'l Miller
                   ` (3 more replies)
  0 siblings, 4 replies; 13+ messages in thread
From: sdalemorrey @ 2014-05-05 11:28 UTC (permalink / raw)


Hello,

I've recently been placed at the head of an effort to completely retool a forex engine. The original developers wrote the thing in PHP (frontend) and C (backend).

There have been issues with code sanity mostly related to the size of the numbers being dealt with.  It is not uncommon for a single pass through the order match engine to generate numbers in excess of 10 Billion, and we're tracking up to 16 decimal places internally on some trades.  Obviously float would be a bad idea.  The initial Java prototype was using BigDecimal and that helped a lot, but there seems to be a bit of information loss when you do math on numbers which don't have the same scale.  Other issues were encountered as well so a new project was launched to uncover a language that could handle this sort of work more easily.

After a lot of research, I selected Ada as the platform upon which to build the next generation of this engine. My general feeling is that Ada has the best approach to minimize bugs long term, even if there is a learning curve upfront.

What I'm having a hard time wrapping my head around though, is what is the difference between Ada and Spark?  

It seems to me that Spark (at least Spark 2014) is a variant of Ada which targets the needs of systems where a code mistake might cost millions of dollars or even lives.  

What I don't understand just yet is HOW does it do that?  I've tried to follow the Ada Gems articles and the best I've been able to glean is that Spark appears to not allow assignment during compare i.e. none of C's if(a = b) garbage.  Which is great, and all, but why a whole different profile just for that? 

Or is Spark a derived language, much as C++ is derived from C, and I'm just not really groking it properly?

I'm sure I'll have tons of other questions going forward, but I'm excited about learning a new language as I undertake this project. 

My initial role will be Architect but then I'll also be the development lead.  

My own background is C/C++/Java and I have about 15 years experience in software development with the last 5 years of that in the Architect & Project Manager role.  

This is actually the first time in half a decade where I'll need to be "the guy" who functions as an SME on a new language, so I need learning resources to come up to speed as quickly as possible. I'm glad this newsgroup exists and I hope you guys/gals don't mind me leaning on you for advice from time to time.

Any caveats with the language might be good to know about as soon as possible.  I took Pascal classes in high school and Ada looks like it derives some of it's syntax from that. It's also possible that Pascal derives it's syntax from Ada, but either way they seem to be in the same family.

Thanks in advance for any info you might have!


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2014-05-06 10:47 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-05-05 11:28 I'm a noob here sdalemorrey
2014-05-05 12:43 ` Dan'l Miller
2014-05-05 13:52   ` sdalemorrey
2014-05-05 13:59     ` roderick.chapman
2014-05-05 16:40     ` G.B.
2014-05-05 16:47     ` G.B.
2014-05-05 17:35     ` Shark8
2014-05-06 10:47   ` Brian Drummond
2014-05-05 13:57 ` roderick.chapman
2014-05-05 17:34 ` Shark8
2014-05-05 17:46 ` Jeffrey Carter
2014-05-05 18:07   ` Nasser M. Abbasi
2014-05-05 19:02     ` Georg Bauhaus

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox