Eric, hustf, I think making Julia attractive to Excel/VBA users will be quite valuable. Excel still rules in business world for simple to moderately complex data analysis. Strangely, even engineers love it - there is still a large group of hardware/mechanical engineers who are not productive in a general purpose programming language, but they love Excel for its simplicity, programmability, and visual appeal (who doesn't like cells with dizzying colors and fancy fonts :-)). And I know some engineers who can program really well actually wrote quite sophisticated VBA macros inside Excel so the resulted sheet can be used intuitively by a non-programmer (e.g. a manufacturing staff or a field support) while saving the trouble of developing an independent GUI which will take an extra head count.
While Julia will certainly win the speed contest, I don't think Julia should or could replace Excel/VBA. Maybe a more practical and gentle approach is to make Julia conveniently available from inside Excel/VBA, similar to what RExcel <https://en.wikipedia.org/wiki/RExcel> does? When the complexity or computational load run out of VBA's capability, the Exceler can trust Julia to get the job done, fast. -Zhong On Monday, August 1, 2016 at 1:14:37 AM UTC-5, Eric Forgy wrote: > > I mentioned to Prof. Edelman (only half jokingly) at an event in > Singapore, that we should add Excel/VBA to the list of benchmarks. > > If I'm in a corporate setting and trying to sell Julia for some internal > project, the person making the call has probably never heard of any of the > languages in the Julia benchmark, but they have heard of Excel/VBA, so, as > silly as it may seem, I actually think it could go a long way for Julia > evangelists to see more comparisons to Excel/VBA. > > On Monday, August 1, 2016 at 1:45:24 AM UTC+8, hustf wrote: >> >> It is nice to have a little check on speed from time to time. I still use >> VBA for easy cooperation with less programming savvy colleguaes. >> >> Julia 1.17s. >> VBA (excel alt + f11): 12 s. >> >> This is a bit unfair to neolithic man Joel Spolsky since no optimization >> was performed: >> >> Sub benchmark() >> nsamples = 1000000 >> Dim y() As Double >> ReDim y(1 To nsamples) >> x = y >> For i = 1 To nsamples >> x(i) = (i - 1) * 5 / (nsamples - 1) >> Next >> Debug.Print ("\nBrutal-force loops, 100 times:") >> sngtime = Timer >> For m = 1 To 100 >> For n = 1 To nsamples >> y(n) = Cos(2 * x(n) + 5) >> Next >> Next >> Debug.Print Timer - sngtime >> End Sub >> >>
