Bitcoin Forum
December 04, 2024, 09:47:39 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: language of choice for a secure orderbook ?  (Read 1971 times)
anorphirith (OP)
Newbie
*
Offline Offline

Activity: 14
Merit: 0


View Profile
February 01, 2014, 02:26:27 AM
 #1

what would be the language of choice to create a secure and relatively high volume orderbook used on an exchange ?
thanks !
grue
Legendary
*
Offline Offline

Activity: 2058
Merit: 1452



View Profile
February 01, 2014, 03:05:47 AM
 #2

PHP compiled for the front-end
python would be a better choice.

It is pitch black. You are likely to be eaten by a grue.

Adblock for annoying signature ads | Enhanced Merit UI
empoweoqwj
Hero Member
*****
Offline Offline

Activity: 518
Merit: 500


View Profile
February 01, 2014, 03:15:46 AM
 #3

If you are talking security, the language is relatively unimportant. Its whether you understand the security risks and guard against them. You can achieve this in several languages. For a speedy trading engine, certainly C.
rethaw
Sr. Member
****
Offline Offline

Activity: 378
Merit: 255



View Profile
February 01, 2014, 03:54:17 AM
 #4

If you are talking security, the language is relatively unimportant. Its whether you understand the security risks and guard against them. You can achieve this in several languages. For a speedy trading engine, certainly C.

Best bet is to get some implementation. Most services fail due to lack of traction, not failure to scale.

cinderflame
Newbie
*
Offline Offline

Activity: 2
Merit: 0


View Profile
February 01, 2014, 09:59:09 AM
 #5

If you are talking security, the language is relatively unimportant. Its whether you understand the security risks and guard against them. You can achieve this in several languages. For a speedy trading engine, certainly C.

Best bet is to get some implementation. Most services fail due to lack of traction, not failure to scale.

I concur.. C would be my choice as well..  Wink
coinrevo
Member
**
Offline Offline

Activity: 70
Merit: 10


View Profile
February 01, 2014, 03:48:31 PM
 #6

I hear good things about Plankalkül these days. Its a bit old, but it has excellent support for electric vacuum tubes.

More serious answer: if you can't answer that question its a long road ahead. Essentially there are only 8-10 languages which cover 99% of the market. and for ultra high performance there are 4-5 choices: C, C++, Erlang, Skala, golang + maybe Java, C#.
empoweoqwj
Hero Member
*****
Offline Offline

Activity: 518
Merit: 500


View Profile
February 02, 2014, 03:34:00 AM
 #7

Why not assembler? - that's well faster than even the best C++ compiler if properly written. It would just take 10 years to write  Cheesy
daybyter
Legendary
*
Offline Offline

Activity: 965
Merit: 1000


View Profile
February 02, 2014, 03:43:56 PM
 #8

I also prefer java for some reason. The only reason, I would consider C++, would be operator overloading (I know: dangerous). But those BigDecimal statements just look ugly. Maybe Scala or some jvm language as a compromise?

empoweoqwj
Hero Member
*****
Offline Offline

Activity: 518
Merit: 500


View Profile
February 03, 2014, 03:26:37 AM
 #9

I also prefer java for some reason. The only reason, I would consider C++, would be operator overloading (I know: dangerous). But those BigDecimal statements just look ugly. Maybe Scala or some jvm language as a compromise?


What's dangerous about operator overloading???
maaku
Legendary
*
expert
Offline Offline

Activity: 905
Merit: 1012


View Profile
February 03, 2014, 07:19:32 AM
 #10

This is so very much the wrong way to ask the question. Figure out what your orderbook design will be, and how you will make it consistent at scale. Your strategy for that will determine what databases or locking frameworks you intend to use, and then look at which languages integrate best with that infrastructure.

I'm an independent developer working on bitcoin-core, making my living off community donations.
If you like my work, please consider donating yourself: 13snZ4ZyCzaL7358SmgvHGC9AxskqumNxP
rethaw
Sr. Member
****
Offline Offline

Activity: 378
Merit: 255



View Profile
February 05, 2014, 03:42:20 AM
 #11

Quote
"Best bet is to get some implementation. Most services fail due to lack of traction, not failure to scale."

can you elaborate on this ? what do you mean by lack of traction ?
thanks

Lack of traction means people not choosing to use it, and come back to it. If Mt. Gox had waited until they had a full featured socketed API, or DDoS protection, they may not have become such a popular exchange, for example. I would call this the businessman's answer.

This is so very much the wrong way to ask the question. Figure out what your orderbook design will be, and how you will make it consistent at scale. Your strategy for that will determine what databases or locking frameworks you intend to use, and then look at which languages integrate best with that infrastructure.

This is the engineer's answer.

empoweoqwj
Hero Member
*****
Offline Offline

Activity: 518
Merit: 500


View Profile
February 05, 2014, 03:51:32 AM
 #12

Quote
"Best bet is to get some implementation. Most services fail due to lack of traction, not failure to scale."

can you elaborate on this ? what do you mean by lack of traction ?
thanks

Lack of traction means people not choosing to use it, and come back to it. If Mt. Gox had waited until they had a full featured socketed API, or DDoS protection, they may not have become such a popular exchange, for example. I would call this the businessman's answer.

This is so very much the wrong way to ask the question. Figure out what your orderbook design will be, and how you will make it consistent at scale. Your strategy for that will determine what databases or locking frameworks you intend to use, and then look at which languages integrate best with that infrastructure.

This is the engineer's answer.

Yeah, Gox have still got a dead slow trading engine, and they gone the full business cycle from roaring success to near collapse. Well done Gox!!
doof
Hero Member
*****
Offline Offline

Activity: 765
Merit: 503


View Profile WWW
February 05, 2014, 09:54:04 AM
 #13

Language won't make much difference. The bottle neck will be at the database.  Depending if your models are just DTOs, or you add business logic in there or get SQL to aggregate on the fly or persisting aggregated values in SQL.

As your grow, you can improve performance by horizontal partitions, or using OLAP cubes to pre aggregate.  Use a cloud provider and just scale when required.  Hosting is cheap, developers are not.

The online retailer i worked for where doing about 4million rows a month in the order items table, without too much pain.
r3wt
Hero Member
*****
Offline Offline

Activity: 686
Merit: 504


always the student, never the master.


View Profile
February 05, 2014, 10:00:02 AM
 #14

Language won't make much difference. The bottle neck will be at the database.  Depending if your models are just DTOs, or you add business logic in there or get SQL to aggregate on the fly or persisting aggregated values in SQL.

As your grow, you can improve performance by horizontal partitions, or using OLAP cubes to pre aggregate.  Use a cloud provider and just scale when required.  Hosting is cheap, developers are not.

The online retailer i worked for where doing about 4million rows a month in the order items table, without too much pain.

hmm interesting perspective, and i agree the bottle neck will always be the db, though i certainly don't have the experience to be making to many statements in this thread.

for the record, i'm using php compiled with hhvm executed from a shell script. pretty damn fast. takes a second to bitbash the trade table, then about 3 seconds to query all the wallets and check for new deposits.

My negative trust rating is reflective of a personal vendetta by someone on default trust.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!