I've worked with traders on an interest rate derivatives desk for the past 7 years, basically using Excel, VBA, and C/C++ DLLs coupled to Tibco, Infinity as well as other custom software packages.
I submitted the article, and believe me, it will be a hard task to ween traders off of Excel - if even possible. I plan on rolling out parallel versions of the software I am producing - and we'll see which "version" the traders like better. I believe I will be able to flex and bend to the trader's whims more adeptly with QT/QSA, but we'll see. Excel will not be abandoned by any means, but if it is used to a lesser extent, than this will be making some headway.
Often, we just can't do things in Excel that we would like, with the control and protection we desire. Likewise, we find that traders often find "hard-coded" GUIs, without any scripting language or ability to customize the appearance to be lacking in flexibility as well.
I've written Excel DLL's for a long time, and believe me, I'm no fan of Microsoft's underlying API for exporting VBA variables / types back and forth to C / C++ DLL land.
Do you think APIs such as SafeArrayAccessData(...) or structures such as SAFEARRAYS and VARIANTs are elegant? Ever try passing nested structs that contain arrays of nested structs of unsigned numbers or BSTRings back and forth between C and VBA? I think the Microsoft APIs for doing this and the Microsoft documentation is crap. IMHO, the QT documentation looks clearer.
Additionally, I've been extremely impressed with QT as a GUI toolkit -unlike MFC/Win32 (or the complexity of COM). As far as support, we are planning on buying quite a few developer licenses / support from Troll tech. The price is not an issue and we like the license terms.
As far as "Things like compliance, due diligence, split second transaction accountability,...etc", you would be surprised how much traders mix in their own models/ calculations with programmer-built tools - With Excel, it's a real problem keeping software under control. I can't see how it could be worse with QT. Should be interesting....
I recall an interesting commentary on this very topic by a Lisp Developer at Franz:
See http://groups.google.com/groups?hl=en&frame=right& th=b55cb0947065a389&seekm=48zh6nn1q.fsf%40beta.fra nz.com#link2
Obviously, the vendor may have reconsidered their point of view. (I have no association with this company)
Excerpt:
"
rcena@epcor.ca (Resty Cena) writes:
> Is anybody working on a Lisp port to the.NET platform? Seems to me
> that Microsoft.NET is a wide-open side-door for Lisp to enter into IS
> shops.
We at Franz looked at it, and rejected it. The major reasons for
us deciding not to proceed were
1. It would slow our lisp down tremendously. I don't rememeber the
exact estimates, but I would guess and wouldn't be surprised if
the slowdown would have been on the order of 10x.
2. More than a hardware emulation, where the "hardware" provides
primitive functionality and we language vendors are able to use
this functionality however we see fit,.NET is a framework in which
software is constrained to conform. Thus, we would have to change
our calling sequence, object, typing, and gc architectures to
conform to.NET's.
3. The result would be MS specific, and not portable to other systems.
This point is weak, because it is conceivable that.NET will be /
is being ported to other operating systems, but at the time we
looked at it, it had no buy-in from any other operating-system
vendors.
Linux includes or makes freely available industrial strength versions of c, c++, perl, fortran, lisp, scheme, python java etc.
Compilation times and turn around is FAST when using the excellent (free) tools such as emacs, make, and bash (with all its wonderful command line tools) under a rock solid operating system.
The degree of system stability, API stability, as well as customization and developer options simply is not available under windows.
(If tools are available under windows, I have found them to be generally unstable, expensive, overhyped, highly gui-fied, and underperforming.)
It's no wonder we have such a huge proliferation of programs, easily and freely downloadable and installable, under linux. From windowing systems to versions of Corba to webservers to databases, to all the neat software that comes out of research institutions to programs that enable distributed computing, Linux is at the forefront of software development. Just take a look at sites like sourceforge to see this grass roots movement blossoming.
I developed under windows for years, and left it to go to Linux a few years ago. I have never looked back.
Under windows, I had ever changing and unstable APIs, a single expensive development tool (visual c++) , and upgrade problems every time windows released new operating systems, APIs, and products. I gave up dll hell and blue screening terminals, rebooting, and re-installing. I am windows free and that decision has saved me thousands of hours of administering a shitty OS.
All I want to do is program. Linux makes that possible. And most of all, fun.
Although I *despise* the operating system, one thing that makes the Microsoft Office suite powerful is the VBA scripting glue. Excel is powerful as it has the ability to link in external c/c++ functions.
(...when it works as claimed, and when backwards compatibility isn't broken..)
In any case, it would be _awesome_ if there was a *real* scripting language for the Corel suite, such as python, (not the VBA crap) as well as the ability to link in foreign functions from C. Then, the suite would offer stability, there would be a great deal of synergy between the separate apps (especially paradox/ qpro). It is important to have the ability to bring in info from external databases (like sybase/oracle), or from your own custom defined functions.
For a programmer in a business environment, (trading floor), customization, and linking into external databases/ legacy systems is what its all about.
Sports and computers are highly intertwined -regardless of the sport.
To think otherwise is narrowminded. My Master's thesis was on the design/ dynamics/animation of bicycle/bicycle rider interaction.
In just last weeks NY Times Circuits section, they had a whole article on "the yellow line." - the first down line painted on the field through the use of a lot of high powered computer programming and technology.
If you paid attention, the game was being shown in HDTV format as well. It is events like the superbowl which will promote and make such technology accepted at a greater pace.
There are a number of fields which combine computers and sports. Ever hear of biomechanics or bioengineering? Don't tell me there are no computers in sports medicine, phyiscal rehabilitation, or professional training. I've seen sophisticated computer applications in Cybex machines, programs written by hockey players (while at RPI years ago) which optimized angles between goal shooter/ goalie to find the best shot angle, and computer graphics/ control systems programs which design shoe sole stiffness / astroturf stiffness interactions based on human gait analysis. Don't you think any materials science / finite element analysis went into the design of the player's helmets?
The superbowl uses a lot of technology (satellites, networks etc) , as well as promotes technology spending. Notice and dot com adds? In the past, there have even been a lot of hardware company adds. The MANAGERS i.e. my bosses, sit in front of the superbowl, and if an add for Sun comes on, and their interests are piqued, I may end up programming on Solaris boxes instead of windows machines.
Don't underestimate all the places where technology comes into play in this world. Don't underestimate the power of one of this nation's most popular and monied sports events, and its role that it plays in corporations - and how that filters down even to the lowest level programmer!!
I was comparing the prospectuses of Red Hat, and Linux One, and it amazes me that there is no plagiarism rule. One thing I noticed that was quite funny was Linux One's statement, and I quote:
"OUR RELIANCE ON THE SUPPORT OF LINUX TORVALDS AND OTHER PROMINENT LINUX DEVELOPERS COULD IMPAIR OUR ABILITY TO RELEASE MAJOR PRODUCT UPGRADES AND ESTABLISH MARKET SHARE."
This company is obviously a complete crock. They can't even copy correctly, and don't re-read their own prospecutus. Also, I noted that their balance sheet is in Actual Dollars, (not thousands as usual)... Balance Sheet Data: Cash and cash equivalents 147,336 Property and Equipment, Net 4,984
My home network (2 linux machines and a solaris box) is worth a lot more than 5000$ !! What a joke.
Sure, the Fed may think that inflation is down - just because a basket of goods at the grocery store hasn't gained in value.
But I can tell you that my - and most people's - most valuable possessions have rocked through the roof - my house , and my stock portfolio.
Anyone with a company who has a 401k plan in the last 5 years has reaped astronomical rewards. Anybody fortunate to put 10 or 20% down on a house within the last 2 years has seen huge gains.
These are heady times for all - and the valuations of the stock market and the massive amount of consumer debt incurred by the above average joe goes along with the territory.
So, I choose all the baby boomers whose wealth has recently skyrocketed due to the roaring '90s.
Re:Why is LISP superior?
on
RMS The Coder
·
· Score: 3
After coding in C++ for the last 12 years ( and still as a necessary part of my work) I have switched to Lisp for all my personal work. Once I got over the parentheses, I have found that Lisp is probably the most radically consistent and advanced language I have ever used.
Everything is a list. Program code and data is a list. All commands (like compiling ) is issued in the form of a list.
So, you can do something like writing code, which when executed, generates code.
Additionally, lisp is typeless. A variable can contain lists, nested in lists etc etc... which can be code...which can contain commands to compile itself, and run itself, attach itself to other lists, etc. It's flexible, malleable, dna like stuff.
I programmed a Qt signal/slot system in 2 pages of code. Although syntax appears difficult when coming from the C++ world, I guarantee that template and pointer syntax is MUCH more difficult.
Here is some code, that when executes, generates a method on the fly, which can then be executed in the future. ( i.e. C++ does NOT give us the ability to change the basic structure a class (add or take away methods or data members at run time)..lisp does.
Additionally, Lisp or CLOS has no problem dealing with multiple inheritance. Methods are not owned by a class like in C++ or Java. For example, a method (or in lisp, a generic function) can be specialized to run with more than one object (multimethods). i.e. method( class1 type, class2 type..etc)
Methods can even be specialized to run with a particular INSTANCE of a class. i.e. here are 2 methods
method( instantiated object 1 of class A only ). method( instantiated object 2 of class A only)
here is a method which when executed, creates a method which only works with a specific instance of an object. Of course this function is a list, and could be transmitted across a network, and executed !!
Modern lisps (like Franz) are compiled into machine code, and can be VERY fast. Not as fast as raw C or C++, but the bottom line is programs that are 100 pages of code in C/C++ may be 1/10th the size in Lisp, and exceedingly hard to do - or next to impossible - without writing a lisp -like system. So you can prototype huge systems VERY quickly, and then if you'd like, write some of the lisp code in C for speed improvements.
I've worked with traders on an interest rate derivatives desk for the past 7 years, basically using Excel, VBA, and C/C++ DLLs coupled to Tibco, Infinity as well as other custom software packages.
I submitted the article, and believe me, it will be a hard task to ween traders off of Excel - if even possible. I plan on rolling out parallel versions of the software I am producing - and we'll see which "version" the traders like better. I believe I will be able to flex and bend to the trader's whims more adeptly with QT/QSA, but we'll see. Excel will not be abandoned by any means, but if it is used to a lesser extent, than this will be making some headway.
Often, we just can't do things in Excel that we would like, with the control and protection we desire. Likewise, we find that traders often find "hard-coded" GUIs, without any scripting language or ability to customize the appearance to be lacking in flexibility as well.
I've written Excel DLL's for a long time, and believe me, I'm no fan of Microsoft's underlying API for exporting VBA variables / types back and forth to C / C++ DLL land.
Do you think APIs such as SafeArrayAccessData(...) or structures such as SAFEARRAYS and VARIANTs are elegant? Ever try passing nested structs that contain arrays of nested structs of unsigned numbers or BSTRings back and forth between C and VBA? I think the Microsoft APIs for doing this and the Microsoft documentation is crap. IMHO, the QT documentation looks clearer.
Additionally, I've been extremely impressed with QT as a GUI toolkit -unlike MFC/Win32 (or the complexity of COM). As far as support, we are planning on buying quite a few developer licenses / support from Troll tech. The price is not an issue and we like the license terms.
As far as "Things like compliance, due diligence, split second transaction accountability,...etc", you would be surprised how much traders mix in their own models/ calculations with programmer-built tools - With Excel, it's a real problem keeping software under control. I can't see how it could be worse with QT. Should be interesting....
Cheers,
Dave Linenberg (OopChugALug)
I recall an interesting commentary on this very topic by a Lisp Developer at Franz:
& th=b55cb0947065a389&seekm=48zh6nn1q.fsf%40beta.fra nz.com#link2
.NET platform? Seems to me
.NET is a wide-open side-door for Lisp to enter into IS
.NET is a framework in which
.NET's.
.NET will be /
See http://groups.google.com/groups?hl=en&frame=right
Obviously, the vendor may have reconsidered their point of view. (I have no association with this company)
Excerpt:
"
rcena@epcor.ca (Resty Cena) writes:
> Is anybody working on a Lisp port to the
> that Microsoft
> shops.
We at Franz looked at it, and rejected it. The major reasons for
us deciding not to proceed were
1. It would slow our lisp down tremendously. I don't rememeber the
exact estimates, but I would guess and wouldn't be surprised if
the slowdown would have been on the order of 10x.
2. More than a hardware emulation, where the "hardware" provides
primitive functionality and we language vendors are able to use
this functionality however we see fit,
software is constrained to conform. Thus, we would have to change
our calling sequence, object, typing, and gc architectures to
conform to
3. The result would be MS specific, and not portable to other systems.
This point is weak, because it is conceivable that
is being ported to other operating systems, but at the time we
looked at it, it had no buy-in from any other operating-system
vendors.
Linux is a developer's wet dream.
Linux includes or makes freely available industrial strength versions of c, c++, perl, fortran, lisp, scheme, python java etc.
Compilation times and turn around is FAST when using the excellent (free) tools such as emacs, make, and bash (with all its wonderful command line tools) under a rock solid operating system.
The degree of system stability, API stability, as well as customization and developer options simply is not available under windows.
(If tools are available under windows, I have found them to be generally unstable, expensive, overhyped, highly gui-fied, and underperforming.)
It's no wonder we have such a huge proliferation of programs, easily and freely downloadable and installable, under linux. From windowing systems to versions of Corba to webservers to databases, to all the neat software that comes out of research institutions to programs that enable distributed computing, Linux is at the forefront of software development. Just take a look at sites like sourceforge to see this grass roots movement blossoming.
I developed under windows for years, and left it to go to Linux a few years ago. I have never looked back.
Under windows, I had ever changing and unstable APIs, a single expensive development tool (visual c++) , and upgrade problems every time windows released new operating systems, APIs, and products. I gave up dll hell and blue screening terminals, rebooting, and re-installing. I am windows free and that decision has saved me thousands of hours of administering a shitty OS.
All I want to do is program. Linux makes that possible. And most of all, fun.
Although I *despise* the operating system, one thing that makes the Microsoft Office suite powerful is the VBA scripting glue. Excel is powerful as it has the ability to link in external c/c++ functions.
(...when it works as claimed, and when backwards compatibility isn't broken..)
In any case, it would be _awesome_ if there was a *real* scripting language for the Corel suite, such as python, (not the VBA crap) as well as the ability to link in foreign functions from C. Then, the suite would offer stability, there would be a great deal of synergy between the separate apps (especially paradox/ qpro). It is important to have the ability to bring in info from external databases (like sybase/oracle), or from your own custom defined functions.
For a programmer in a business environment, (trading floor), customization, and linking into external databases/ legacy systems is what its all about.
What a bunch of crap!!
Sports and computers are highly intertwined -regardless of the sport.
To think otherwise is narrowminded. My Master's thesis was on the design/ dynamics/animation of bicycle/bicycle rider interaction.
In just last weeks NY Times Circuits section, they had a whole article on "the yellow line." - the first down line painted on the field through the use of a lot of high powered computer programming and technology.
If you paid attention, the game was being shown in HDTV format as well. It is events like the superbowl which will promote and make such technology accepted at a greater pace.
There are a number of fields which combine computers and sports. Ever hear of biomechanics or bioengineering? Don't tell me there are no computers in sports medicine, phyiscal rehabilitation, or professional training. I've seen sophisticated computer applications in Cybex machines, programs written by hockey players (while at RPI years ago) which optimized angles between goal shooter/ goalie to find the best shot angle, and computer graphics/ control systems programs which design shoe sole stiffness / astroturf stiffness interactions based on human gait analysis. Don't you think any materials science / finite element analysis went into the design of the player's helmets?
The superbowl uses a lot of technology (satellites, networks etc) , as well as promotes technology spending. Notice and dot com adds? In the past, there have even been a lot of hardware company adds. The MANAGERS i.e. my bosses, sit in front of the superbowl, and if an add for Sun comes on, and their interests are piqued, I may end up programming on Solaris boxes instead of windows machines.
Don't underestimate all the places where technology comes into play in this world. Don't underestimate the power of one of this nation's most popular and monied sports events, and its role that it plays in corporations - and how that filters down even to the lowest level programmer!!
I was comparing the prospectuses of Red Hat, and Linux One, and it amazes me that there is no plagiarism rule. One thing I noticed that was quite funny was Linux One's statement, and I quote:
"OUR RELIANCE ON THE SUPPORT OF LINUX TORVALDS AND OTHER PROMINENT LINUX
DEVELOPERS COULD IMPAIR OUR ABILITY TO RELEASE MAJOR PRODUCT UPGRADES AND
ESTABLISH MARKET SHARE."
This company is obviously a complete crock. They can't even copy correctly, and don't re-read their own prospecutus. Also, I noted that their balance sheet is in Actual Dollars, (not thousands as usual)...
Balance Sheet Data:
Cash and cash equivalents 147,336
Property and Equipment, Net 4,984
My home network (2 linux machines and a solaris box) is worth a lot more than 5000$ !! What a joke.
Sure, the Fed may think that inflation is down - just because a basket of goods at the grocery store hasn't gained in value.
But I can tell you that my - and most people's - most valuable possessions have rocked through the roof - my house , and my stock portfolio.
Anyone with a company who has a 401k plan in the last 5 years has reaped astronomical rewards. Anybody fortunate to put 10 or 20% down on a house within the last 2 years has seen huge gains.
These are heady times for all - and the valuations of the stock market and the massive amount of consumer debt incurred by the above average joe goes along with the territory.
So, I choose all the baby boomers whose wealth has recently skyrocketed due to the roaring '90s.
After coding in C++ for the last 12 years ( and still as a necessary part of my work) I have switched to Lisp for all my personal work. Once I got over the parentheses, I have found that Lisp is probably the most radically consistent and advanced language I have ever used.
.which can contain commands to compile itself, and run itself, attach itself to other lists, etc. It's flexible, malleable, dna like stuff.
..etc)
,y((_container (eql ,_container)) data )
Everything is a list. Program code and data is a list. All commands (like compiling ) is issued in the form of a list.
So, you can do something like writing code, which when executed, generates code.
Additionally, lisp is typeless. A variable can contain lists, nested in lists etc etc... which can be code..
I programmed a Qt signal/slot system in 2 pages of code. Although syntax appears difficult when coming from the C++ world, I guarantee that template and pointer syntax is MUCH more difficult.
Here is some code, that when executes, generates a
method on the fly, which can then be executed in the future. ( i.e. C++ does NOT give us the ability to change the basic structure a class (add or take away methods or data members at run time)..lisp does.
Additionally, Lisp or CLOS has no problem dealing with multiple inheritance. Methods are not owned by a class like in C++ or Java. For example, a method (or in lisp, a generic function) can be specialized to run with more than one object (multimethods). i.e. method( class1 type, class2 type
Methods can even be specialized to run with a particular INSTANCE of a class. i.e.
here are 2 methods
method( instantiated object 1 of class A only ).
method( instantiated object 2 of class A only)
here is a method which when executed, creates a method which only works with a specific instance of an object. Of course this function is a list, and could be transmitted across a network, and executed !!
(defmethod map-signal((_container container) mapped-signal-name
(_transmitter transmitter-reciever) _transmitter-signal-name)
(let ((y (gensym)))
(eval`(defmethod
(broadcast _container ',mapped-signal-name data )))
(connect _transmitter _transmitter-signal-name _container y)))
Modern lisps (like Franz) are compiled into machine code, and can be VERY fast. Not as fast as raw C or C++, but the bottom line is programs that are 100 pages of code in C/C++ may be 1/10th
the size in Lisp, and exceedingly hard to do - or next to impossible - without writing a lisp -like system. So you can prototype huge systems VERY quickly, and then if you'd like, write some of the lisp code in C for speed improvements.
Dave
What happens when linux becomes a "standard" option for every pc IBM,dell,compaq,hp,acer, etc etc. ships.
We are not too far away from the scenario where desktop and linux servers are common place.
VA Research will tumble, as the linux machine - even high end ones - will be a commodity.