hubFS: THE place for F#

. . . are you on The Hub?
Welcome to hubFS: THE place for F# Sign in | Join | Help
in Search

A Dream for F# IDEs

Last post 07-28-2008, 6:44 by cisterni. 8 replies.
Sort Posts: Previous Next
  •  12-18-2007, 17:20 4351

    A Dream for F# IDEs

    I've been thinking lately a lot about how much I like using F# and how I use it.

    I'm a grad student and I have been developing my own software to run scientific simulations for the last 2 years.  95% of my code is C#.  It's been a bit of a pain, though, because I can't use C# for everything, as hard as I try.  Setting up my simulations usually requires MATLAB to create the input files, and after the simulation is finished, I need to use MATLAB again to postprocess the results.

    This leads to a lot of inefficiencies, because not only do I have file parsers written in C#, but I need to duplicate that functionality in MATLAB. So if I change anything in my code, I need to update it in 2 places -- my C# simulation code and my MATLAB pre/post-processing code.

    I've started using F# for the pre/post-processing because it just makes sense -- I can re-use all of my C# libraries because F# is interoperable with all things .NET.  This is fantastic.  I mainly use .fsx files for scripting and put commonly-used code in .fs files.

    But, as useful as this is, the quality of work (i.e. graphs, plots, data processing, etc) aren't as nice as MATLAB.  So I've been thinking about what the perfect F# IDE would be like.  And, now that Visual Studio 2008 Shell has been released (and F# has been announced to become the next "product" language for Visual Studio), it seems as though this kind of thing might not be very far off.  Sweet.

    As much as I like the F# language, the real pain point for me is finding .NET libraries to do useful scientific computing tasks.  You know, like plotting highly-customized graphs (2D and 3D), doing operations on large data files, performing linear algebra, creating animations and movies, optimization, interacting with various 3D/FEM file formats, etc.  Essentially, everything that MATLAB does :P (but much faster.  off-topic: man, MATLAB is sooooo slow.)

    ZedGraph works for 2D graphs, and I know I can use Managed DirectX for doing 3D stuff.  dnAnalytics can be used for linear algebra and I use Alchemi for parallel computing.  But the APIs for these kinds of thing are, when you really get down into it, extremely low-level.  If I want a 3D plot of a function, I need to go in and create the mesh by hand, position lights and cameras, etc.  It's not like calling the "surf" function in MATLAB.

    Perhaps that might be a really useful community project to start -- an "F# Lab" Visual Studio 2008 Shell plugin that integrates FSI with a number of useful open-source .NET libraries for doing numerical/scientific computing tasks, with a well-thought-out F# wrapper layer that abstracts away some of the tricky C#/F# interop.  I know I'd sure use it.

    Just my $0.02.  Anybody else got any more ideas? :)

     


    http://thevalerios.net/matt/
  •  12-19-2007, 2:26 4356 in reply to 4351

    Re: A Dream for F# IDEs

    We are working on VSLab, that is something close to what you are looking for, it will be a sample for Visual Studio. It is less straightforward to do something like you are saying as it may seem in the first place, especially if you are interested in integrating with VS services. Nevertheless we are expecting to have a programming model soon.

    Antonio

  •  12-19-2007, 4:18 4358 in reply to 4356

    Re: A Dream for F# IDEs

     
  •  12-19-2007, 8:33 4360 in reply to 4356

    Re: A Dream for F# IDEs

    Antonio,

    Nice!  I'm looking forward to seeing what you are working on.  Need beta testers? :)

    Do you have any more information on VSLab available?

     


    http://thevalerios.net/matt/
  •  12-21-2007, 13:37 4391 in reply to 4360

    Re: A Dream for F# IDEs

    Hi all,

    This is a very interesting post as I also think F# is the right platform to do significant scientific computing. As you observe, unfortunately there is no all-in-one solution (like matlab) but I am very curious to hear how other people get around. This is my setup at the moment:

     

    • F# on visual studio (+ F# interactive)
    • NPlot plotting library: this is a very robust and mature open source plotting library. The only drawback is that it only handles 2D plots. Another slight annoyance is that producing a graph can be a little verbose. Matlab-like one line plot commands are easy to write though.
    • dnAnalytics: a fast linear algebra library is extremely important in my research. It seems extremely weird not to use a fast optimized implementation like the AMD or Intel performance libraries. dnAnalytics provides a nice API for all this.
    • fsmathtools: this is meant to become a general purpose math library. I add things to this codeplex project as I need them myself but would be very happy to include other contributions. Currently there is some stats code, special functions and some experimental bindings to the FFTW fourier transform library.

    VSLab sounds like a very cool project although I have to say fsi already does a very nice job.

    Jurgen

  •  03-26-2008, 19:51 5548 in reply to 4351

    Re: A Dream for F# IDEs

    That is exactly what our F# for Numerics and F# for Visualization products are intended for. Both of these libraries provide extensive functionality for technical computing that can be used both interactively from within Visual Studio and also from your compiled programs.

    Ultimately, we would like to provide a complete IDE capable of integrated graphics and typeset mathematics. For example, it would be extremely useful to be able to write typeset mathematics into the documentation for a function and have this appear when using Intellisense. Essentially, we would like a Mathematica notebook front-end for F#!

     

  •  06-21-2008, 0:43 6180 in reply to 4360

    Re: A Dream for F# IDEs

    Matt

    now VSLab is available on CodePlex :)

    http://www.codeplex.com/vslab

    Antonio

  •  07-17-2008, 14:25 6407 in reply to 6180

    Re: A Dream for F# IDEs

    I installed the new version.

    Other three sample files are up to date, but the tutoroal doesn't work.

    It does not find plotter, liner, clipper, ball, and test_key.

     

  •  07-28-2008, 6:44 6458 in reply to 6407

    Re: A Dream for F# IDEs

    Hi,

    can you provide more information about the issues you have encountered? Thanks :)

     

    -- Antonio

View as RSS news feed in XML
Powered by Community Server, by Telligent Systems