Ми поставили перший у світі комерційний продукт, написаний на F # ( F # для візуалізації ) і другий ( F # для чисел ), а також першу комерційну літературу про F # ( The F # .NET Journal ) і написав та видав єдину книгу про поточну версію з F # ( Visual F # 2010 для технічних обчислень ).
Ми відправляли товари за аналогічними лініями, написаними на C # (наприклад, це ), але у нас також було сильне передумови в комерційному використанні OCaml. Ми були захоплені ранніми розробниками F #, коли це було ще дослідницьким прототипом ще в 2006 році, тому що ми визнали потенціал наявності гідної сучасної мови, подібної до OCaml, на платформі .NET. Результат досяг неймовірного успіху, і F # набагато перевищив наші піднесені очікування.
Для нас F # має багато різних переваг, і ми використовуємо його для найрізноманітніших програм. У виробництві сотні тисяч рядків коду F #. Зараз ми використовуємо F # для всіх наших додатків LOB: наші трансакції на кредитній картці обробляються за допомогою коду F #, наші повідомлення про товар надсилаються за допомогою коду F #, наші підписки обробляються за допомогою коду F #, наші рахунки виконуються за допомогою коду F # тощо. Мабуть, головна мовна особливість, яка виплачує дивіденди, - це відповідність шаблонів. Ми навіть використовували F #, щоб виділити синтаксис кольорів у нашій останній книзі ...
Наша бібліотека візуалізації є великим продавцем, а її функціональність орієнтована на F # інтерактивну роботу в Visual Studio. Наша бібліотека збільшує це завдяки можливості створювати інтерактивні 2D та 3D візуалізації з мінімальними зусиллями (наприклад, простоPlot([Function sin], (-6., 6.))
побудувати графік синусоїди). Зокрема, усі проблеми з потоком передач повністю автоматизовані, тому користувачам не потрібно турбуватися про потоки та розсилку інтерфейсу користувача. Першокласні функції та лінь були надзвичайно цінними при написанні цієї частини бібліотеки, а алгебраїчні типи даних широко використовувалися в інших місцях. Прогнозована ефективність також виявилася цінною тут, коли наші клієнти потрапляли на помилки продуктивності під час тестування на WPF, і вони легко змогли повторно застосувати відповідний код у F # для покращення продуктивності на 10 000 ×. Зважаючи на характер GUI цього продукту у вільній формі, дизайнер GUI та C # не були б корисними.
Значна частина нашої роботи обертається навколо чисельних методів, включаючи як наші комерційні бібліотеки, так і книги. F # в цій галузі набагато сильніший, ніж C #, оскільки пропонує абстракції високого рівня (наприклад, функції вищого порядку) з мінімальними штрафами за продуктивність. Нашим найпереконливішим результатом у цьому контексті було створення простої, але узагальненої реалізації QR-декомпозиції з лінійної алгебри, яка була на 20 × коротша, ніж код Fortran від опорної реалізації LAPACK, на 3 × швидше, ніж налаштована виробником Intel Math Бібліотека ядра та більш загальна, тому що наш код може обробляти матриці будь-якого типу, навіть символічні матриці!
В даний час ми розробляємо компоненти WPF / Silverlight у поєднанні F # (для кишок) та C # (для shim), будуємо додатки WPF, щоб діяти як інтерактивні посібники для наших програмних продуктів, і я пишу нову книгу Multicore F #, що буде остаточним посібником для паралельного програмування спільної пам'яті в .NET.