Page 1 of 49

FIVE years from now: can you predict the Software Landscape in anno 2023?

Posted: August 22nd, 2005, 3:20 pm
by Cuchulainn
Any brave men or women who would like to tell what things will look like within a period of 5 years (say to 2010)?  Will C# subsume Java?Will .NET be around?Reusable C++ libraries for QF (like Fortran in the good old days)parallel processing?etc.etc.  P.S. 2010 is not so far away.    

Three years from now: can you predict the Software Landscape in anno 2018?

Posted: August 22nd, 2005, 8:09 pm
by saliq
C++ for QF

Three years from now: can you predict the Software Landscape in anno 2018?

Posted: August 23rd, 2005, 9:32 am
by Cuchulainn
QuoteOriginally posted by: saliqC++ for QFThat's one scenario for sure that has a chance of succeeding. Looks as if C++ is popular.Willl we be using ISO C++ as well as Microsoft C++/CLI? at that stage?

Three years from now: can you predict the Software Landscape in anno 2018?

Posted: August 23rd, 2005, 9:54 am
by lballabio
QuoteOriginally posted by: CuchulainnWilll we be using ISO C++ as well as Microsoft C++/CLI? at that stage?Your question seems to assume that Windows will still be the dominant platform in QF.I'm not sure that we can safely predict that for 2010.(I'm not predicting the opposite either---I'm agnostic)Luigi

Three years from now: can you predict the Software Landscape in anno 2018?

Posted: August 23rd, 2005, 10:09 am
by Cuchulainn
QuoteOriginally posted by: lballabioQuoteOriginally posted by: CuchulainnWilll we be using ISO C++ as well as Microsoft C++/CLI? at that stage?Your question seems to assume that Windows will still be the dominant platform in QF.I'm not sure that we can safely predict that for 2010.(I'm not predicting the opposite either---I'm agnostic)LuigiWell, I'm putting a stake in the ground and going from there. Anything is possible I suppose. Even Fortran could make a comeback Seriously, Oh yes, Quantlib will be the dominant platform for QF because by then it might become tbe NAG/IMSL of the QF world. Then I will apply for a job in Italy.

Three years from now: can you predict the Software Landscape in anno 2018?

Posted: August 23rd, 2005, 10:57 am
by DominicConnor
I think you & are old enough to have resigned ourselves to the way things change so slowly.My guess is that in 5 years time the world will be depressingly similar to today.Not only will windows be dominant in QF, past experience tells me that >75% of front office users will be on Windows XP, not 64 bit which will still be a novelty then.Takes a long time for a large firm to embrace a new O/S on the desktop. Look at all the Windows 2000 users still out there.There will be some 64 bit servers, but mostly running databases, and Linux will be still doing specialist tasks, though there will be more of those by then.A good % of people out there are still running Excel 97. The brain damaged decision not to support VBA in 64 bit Excel means that very few people will have migrated into it, and thosefew firms the have put it on the trading desk will be getting DefCon 2 grade grief from users.C# will leak into the front office from general banking IT. It offers some of the nice client/server & GUI facilities of classical VB 6, a more grown up syntax, and decent speed. Fact is that front office finds it hard to stay too separate from the rest of the bank, since they control so many toys you need to play with. No one will be using VB.NET except Nomura.Java will not be that much like Java now. The strain of getting more generic programming in there will hurt some people, and it is not impossible that "renegade" variants of it appear. Sun has mismanaged the standards process so much we may well see mulitple variants. If it had not been for the cupidity of Microsoft, this would have happened already. It will also leak in for apps that need to talk to the rest of the corporation.However both Java and C# are unlikely to be mainstream for analytics for quite a while.The one departure from the 2005 status quo I see is not language or O/S, but having to take into account the hardware more. Although C++ can do very low level stuff, nearly all quants actually use it at the level of abstraction of Java. As we move into a multio processor, multi core world for the fastest machines, threads and related lower level stuff will be more important if you want your code to go fast.The bleeding edge of that will be GPU/PPU stream programming with dramatic, but painful increases in performance if you recode.My other prediction for change is increased centralisation. A combination of risk and compliance will require front office developers to act more like central IT department programmers. This is both good and bad.You will find that in many banks, this is actually the policy now, but it's hard to enforce and usually don't bother.However under the blanket of security, you will find yourself increasingly constrained in the way you build things.Also you will be subject to more review. I've done a bit of looking at various banks implementations of models. Some of it is brilliant, some of it was so bad that I was surprised it actually ran at all.That's ad-hoc stuff, and in general I'm helping people, 5 years from now you're going to have to convince some nearly-intelligent person from the big acocuntancy firms about the robustness of your model and it's implementation, and there will be technical measures in place to stop you using it until they sign off. That stuff is already in Windows and Linux, just not used much.So in summary, the "good" things aren't going to get better, and there's more of the bad coming.

Three years from now: can you predict the Software Landscape in anno 2018?

Posted: August 23rd, 2005, 1:45 pm
by Cuchulainn
> I think you & are old enough to have resigned ourselves to the way things change so slowly.Yes, true. The advantage is one can develop a five-year plan. Another example; just look at the discussion on Evolution on Cough-forum. How long did it take before we developed from algae.When you were being trained by the Jesuits I started on my first 8-hole paper tape program at GE. I have now evolved into a C++ developer. That took time! What's the next great language around the corner?

Three years from now: can you predict the Software Landscape in anno 2018?

Posted: August 23rd, 2005, 1:55 pm
by DrBen
I see programming continuing to get easier, that is there will be the opportunity(but not the obligation) to get a given job done with less keystrokes, less debugging,less low level non-business logic etc. I would take exactly the opposite view to DCFCsregarding lower level O/S issues and programming. At least on the AMD64 platform I useI know I can switch to a multi-core CPU with just a BIOS upgrade, and all the software (should)run seamlessly. Even if I want to move over to 64-bit Windows/Linux then again all my.NET/Java Apps programmed against the 32-bit VMs will run without the need to recompile,once I have installed to 64-bit version of the VMs. Hence, hardware/OS issues are becomingirrelevant once you move to a managed environment which is how I believe software write bewritten and then run.Anyway, for technology to get market share in the next 10 years then it must be in the R&Dphrase now. Hence, what in R&D now will effect peoples working lives in 10 years? As awild guess one area I would say would be in the area of "Executable UML" (for exampleBorland's ECO). As a follow up point as I am now in the UK, it would be interested to hearabout any interesting products/projects coming out of the UK?

Three years from now: can you predict the Software Landscape in anno 2018?

Posted: August 23rd, 2005, 2:32 pm
by Cuchulainn
QuoteOriginally posted by: DrBenIAs a follow up point as I am now in the UK, it would be interested to hearabout any interesting products/projects coming out of the UK?Hi Ben,Some UK companies are in the OMG group. I remember talking to some of these some time ago. I think Alan Kennedy Carter?? Software must become more domain-specific and much code (at least the skeleton) will be generated using Executable. I use "Manual Executable UML" by whch I mean I design using UML and program the diagrams based on that blueprint. Of course, when these $$$$$ products become commodities is anyone's guess. 200 years ago only rich people could afford shoes and then the lead time was 3 months.

Three years from now: can you predict the Software Landscape in anno 2018?

Posted: August 24th, 2005, 7:11 am
by DominicConnor
I see programming continuing to get easier, that is there will be the opportunity (but not the obligation) to get a given job done with less keystrokes, less debugging,I'm glad you define "easier" that way. My long time model has been that as each task gets easier we attempt more ambitious things so programming itself always stays roughly the same level of hardness.At least on the AMD64 platform I use I know I can switch to a multi-core CPU with just a BIOS upgrade, and all the software (should)run seamlessly. Not sure we disagree. Yes, most s/w and especially quant s/w will work on the multi core systems.But they will not get the full benefit. I'd guess >90% of all quant s/w is single threaded, so you will have one core running at 100%, whilst the other does very little.Threading and related techniques will give a factor or about 2. As we increase the processor count, to (say) a 3 socket, 6 core world, single procssing will lose you 80% of potential performance.Even if I want to move over to 64-bit Windows/Linux then again all my .NET/Java Apps programmed against the 32-bit VMs will run without the need to recompile,once I have installed to 64-bit version of the VMs. But at a horrible price in performance.Hence, hardware/OS issues are becoming irrelevant once you move to a managed environment which is how I believe software write be written and then run.I believe that it is true for many things. However, it is written that if you make a manager powerful beyond his wisdom, how quickly we revolt against him ?"Managed" is good when it protects you, but not when it gets in your way, or when oppressive policies of either cental IT, or the system vendor get in your way.It may seem a trivial example but mobile phones have most of their potential removed so that you are forced to buy things only from the vendor. Similar effects on game consoles.Hate for it to happen to PCs.Anyway, for technology to get market share in the next 10 years then it must be in the R&D phrase now. As a long time student of technology, I've always been saddened by how long things take to get out these days. 50 years ago you could go from physics so esoteric that you gota Nobel prize, to a product from Sony in a couple of years. As a wild guess one area I would say would be in the area of "Executable UML" Worked on developing ludicrously primitive version of that in 1984, as I said, these things take a long time.

Three years from now: can you predict the Software Landscape in anno 2018?

Posted: August 24th, 2005, 8:06 am
by lballabio
QuoteOriginally posted by: DCFC I see programming continuing to get easier, that is there will be the opportunity (but not the obligation) to get a given job done with less keystrokes, less debugging,I'm glad you define "easier" that way. My long time model has been that as each task gets easier we attempt more ambitious things so programming itself always stays roughly the same level of hardness.I agree. Also, I think that simply giving generic languages more facilities to ease programming (as in "less keystrokes") is not likely to yield great productivity enhancements (as in "orders of magnitude".) I guess there would be more to be gained by adding facilities to ease (in a loose sense) metaprogramming, namely, to provide the means to mould the language so that it maps more closely the problem domain.Quote"Managed" is good when it protects you, but not when it gets in your way, or when oppressive policies of either cental IT, or the system vendor get in your way.As aptly exemplified by yesterday's Dilbert strip.Luigi

Three years from now: can you predict the Software Landscape in anno 2018?

Posted: August 24th, 2005, 8:13 am
by exneratunrisk
DCFC, I agree that (IT) innovations usually have long cycles. But if you look into the "evolution of tools; from the fist-wedge to the computer"; the story of the development of higher level tools with lower level ones (hammer made by fist-wedge, .......Mathematica made of C/C++), you have periods with significant accelerations and emergig technologies.. Example: unexpectedly, the film industry drove the cumputer graphics and imaging technologies very fast (much faster, than CAD did).Will the IT industry be driven by "information and communication" or "computing"?I take my personal crystal ball:It will be computing. This will force, say, Google to transform its profile from a "search engine company" to an "application services company". If yes, they will provide powerful web-based (platform-inependent) development environments and extend their server farm dramatically (providing unprecedented computing power).My CB says, that the standard web technology will not change much.Consequently, one needs to integrate "engines" into web servers. This will require kind of "servelets" (containers of servelets) and "server pages". On the client side, you manipulate your engine from web browsers. This might involve some html and applet programming. Servelets, server pages and applets suggest Java.Having a huge farm of computers, you are forced to think of grid computing. Fine grain parallelization will be subject of the concrete computing environment, but programmers, will be responsible for coarse grain parallelization. Hopefully with powerful but simple (symbolic) constructs.Say, we have "ValuatePortfolio" as list of "ValuateInstrument" functions (and "Aggregators"). You might want to use "ParallelValuatePortfolio" instead. Not more. No programming of explicit configuration-dependent constructions, session management or result aggregators.Programming languages will probably take place at the back seat, programmig paradigms (logic/rulebased, datadriven, functional, object-oriented,..) will move to the front.My CB shows me hybrid programming (instead of Mathematica OR MatLab, C++ OR C# OR Java; you need ...AND....AND...) and in "application servers" reuse becomes much more important. In QF: the best information providers, the best calibrators, the best modellers, the best solvers, the best result interpreters and decision supporters will be selected (by Google?).....?my CB? I take the announcement of the 7th framework programm of the European Commission (research and development) >>section "Information Technologies" >> "Technology Pillars / Taks Forces" I find "ubiquitous computing", "grid computing", "simulation (of complex systems)", "learning by machines",...In five years?

Three years from now: can you predict the Software Landscape in anno 2018?

Posted: August 24th, 2005, 8:45 am
by Cuchulainn
QuoteOriginally posted by: DCFC As a wild guess one area I would say would be in the area of "Executable UML" Worked on developing ludicrously primitive version of that in 1984, as I said, these things take a long time.Everyone has worked on a similart kind of project in the past. That's not news. UML has only been out since 1987. You mean similar kind of project?Anyway, I agree that it takes a long time. In this specific case my opinon is that the industry does not have enough designers who have the requisite amount of domain knowledge to actually set up the UML model. Compare with building a house: you have the designer engineers and then plumbers, eletricians and builders who work on the design blueprints.I must agree with Dom but maybe not for the same reasons.

Three years from now: can you predict the Software Landscape in anno 2018?

Posted: August 24th, 2005, 8:49 am
by DominicConnor
Everyone has worked on a similart kind of project in the past. That's not news. UML has only been out since 1987. You mean similar kind of project?Indeed, I was illustrating how hard it is to get this stuff right. Like so many people I worked on a tool for directly converting models to code, and like so many people the results wereinteresting, but not generally applicable.

Three years from now: can you predict the Software Landscape in anno 2018?

Posted: August 24th, 2005, 8:56 am
by Cuchulainn
QuoteOriginally posted by: lballabioQuoteOriginally posted by: DCFC I agree. Also, I think that simply giving generic languages more facilities to ease programming (as in "less keystrokes") is not likely to yield great productivity enhancements (as in "orders of magnitude".) I guess there would be more to be gained by adding facilities to ease (in a loose sense) metaprogramming, namely, to provide the means to mould the language so that it maps more closely the problem domain.[[/L].LuigiI agreeIn the 1970's IT did not exist. You just had engineers and domain people who knew their business and who could map it into Fortran or Cobol. These domain-specific languages were specially deisgned for certain kinds of problems. C++, on the other hand is a general language. There is a large cognitive distance between its syntax and application domain.This is why it takes so long for me personally to get code finished. I suppose other people have similar experinces (btw syntyax or memory is not the probklem, more like crossing the Grand Canyon).