programming for finance - introduction€¦ · programming for finance - introduction. agenda...
TRANSCRIPT
Languages and Frameworks
● C++● Java● Scala● Python● Client Side JS Libraries and Frameworks
○ ReactJS○ AngularJS
C++
● Low Level Language○ Systems programming○ Low level memory management○ Libraries available to map functions directly to processor specific assembly
instructions
● Used where “Speed is Everything”○ Primary Language in Low Latency Trading Systems○ Popular in High Frequency Trading and Prop Trading houses
Java
● Most Popular Server side Language in the Industry○ Most business logic, server side, done in Java○ Largest availability of programmers in the industry
● Not as Quick as C++, but recent versions are closing the speed gap○ Improvements in Memory Management
Scala
● Functional Programming Language○ Functions are first class citizens○ Code more clear and concise○ Easier to read as a direct interpretation of Math functions
● Asynchronous from the Ground up○ Promises and Futures are readily available○ Lends itself better to non-blocking code○ Requires smaller thread pool sizes
● Gaining in Popularity
Scala
def square(x:int) = {x*x
}
def sum(f:int=>int , inputs:List[int]) = {inputs.map(f).sum()
}
sum(square, 1..10) 𝚺f(x)
Python
● High Level, Dynamic type Language● Includes lots of powerful packages: Useful for RAD
○ NumPy: Support for Complex Math functions○ Pandas: Working with Tabular Data○ MatPlotLib: Plotting Library
● Used by banks for Pricing and Risk Management● Popular among FinTech Startups (RAD)● Taught extensively at Byte Academy
Client Side
● Applications becoming increasingly thicker Client○ Increasing amount of functionality executed on the client’s machine ○ Eg. Trade Order Entry Systems
■ Efficient Design■ Validation rules run in-line
● Javascript libraries: 2 Most Popular○ ReactJS
■ Facebook’s component-based library■ Uses a Virtual DOM for quick differential rendering
○ AngularJS■ Google’s Web framework■ Links data and visual elements using dual binding (concise code)