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
>>
>>

Reply via email to