Vasily Kirichenko's blog articles

0
comment
on 5/16/2015 11:20 AM
I strongly believe that we should keep code as referential transparent as possible. Unfortunately, F# language does not encourage programmers to use Either monad to deal with errors. The common practice in the community is using common in the rest .NET (imperative) world exception based approach. From my experienced, almost all bugs found in production are caused by unhandled exceptions. The problemIn our project we've used the Either monad for error handling with great success for about two years. ExtCore[...]
>> Read the full article
.
0
comment
on 5/4/2015 12:38 PM
Go code is relatively low-level since it does not have "foreach over range" syntax construct:Results are not as impressive for a systems language: 2.38 seconds. And it lays below Rust but under Haskell: F# - 1.26D - 1.3C# - 1.4Rust - 1.66Go - 2.38Haskell - 2.8Nemerle - 5Clojure - 9Erlang - 17Ruby - 60Python - 120
>> Read the full article
.
0
comment
on 4/11/2015 7:40 AM
Let's compare how fast Rust, D and F# (.NET actually) at computing cryptography hashes, namely MD5, SHA1, SHA256 and SHA512. We're going to use rust-crypto cargo:Results:MD5 - 3.39s SHA1 - 2.89s SHA256 - 6.97sSHA512 - 4.47sNow the F# code: Results:MD5 - 2.35s (30% faster)SHA1 - 2.95s (2% slower)SHA256 - 16.56s (137% slower)SHA512 - 61.92s (1385% slower (!))And finally D: MD5 - 16.05s (470% slower)SHA1 - 2.35s (19% faster)SHA256 - 47.96s (690% slower (!))SHA512 - 61.47s (1375% slower (!))Interesting things:[...]
>> Read the full article
.
0
comment
on 3/29/2015 11:05 AM
Rust is an interesting language. It is not a primitive one, like Go where we don't have ADTs, pattern matching and generics (but we do have Nils). And it's advertising as a safe and performant system language. Today is the very first day I'm looking at it. Let's "smoke" test it with Fibonacci :) Debug: 3.75 seconds, release: 0.86 seconds. And we've got a new leader!Rust - 0.86F# - 1.26D - 1.3C# - 1.4Haskell - 2.8Nemerle - 5Clojure - 9Erlang - 17Ruby - 60Python - 120It's very interesting how it'll behave in[...]
>> Read the full article
.
0
comment
on 1/10/2015 6:11 AM
Tuomas Hietanen posted a parallel reduce function that uses TPL Tasks. I found it interesting to compare performance of this function with analogues implemented using F# Asyncs and Hopac Jobs.The author uses noop long-running reduce function to show that it's really run in parallel. In this blog post we are benchmarking another aspect of the implementations: how much extra cost is introduced by a particular parallezation mechanism (library) itself. We translate the original code almost as is to Tasks and H[...]
>> Read the full article
.
IntelliFactory Offices Copyright (c) 2011-2012 IntelliFactory. All rights reserved.
Home | Products | Consulting | Trainings | Blogs | Jobs | Contact Us | Terms of Use | Privacy Policy | Cookie Policy
Built with WebSharper