Friday, April 18, 2014

Why The Clock is Ticking for MongoDB (rhaas.blogspot.com.br)

Last month, ZDNet published an interview with MongoDB CEO Max Schireson which took the position that the document databases, such as MongoDB, are better-suited to today's applications than traditional relational databases; the title of the article implies that the days of relational databases are numbered. But it is not, as Schireson would have us believe, that the relational database community is ignorant of or has not tried the design paradigms which he advocates, but that they have been tried and found, in many cases, to be anti-patterns. Certainly, there are some cases in which the schemaless design pattern that is perhaps MongoDB's most distinctive feature is just the right tool for the job, but it is also misleading to think that such designs must use a document store. Relational databases can also handle such workloads, and their capabilities in this area are improving rapidly. Read more...

Thursday, April 10, 2014

Mono and Roslyn (tirania.org)

Last week, Microsoft open sourced Roslyn, the .NET Compiler Platform for C# and VB. Roslyn is an effort to create a new generation of compilers written in managed code. In addition to the standard batch compiler, it contains a compiler API that can be used by all kinds of tools that want to understand and manipulate C# source code. Roslyn is the foundation that powers the new smarts in Visual Studio and can also be used for static analysis, code refactoring or even to smartly navigate your source code. It is a great foundation that tool developers will be able to build on. I had the honor of sharing the stage with Anders Hejlsberg when he published the source code, and showed both Roslyn working on a Mac with Mono, as well as showing the very same patch that he demoed on stage running on Mono. Read more...

Saturday, April 5, 2014

Quote of The Day (2014-04-04)

There is no passion to be found playing small - in settling for a life that is less than the one you are capable of living.

-Nelson Mandela

Friday, April 4, 2014

Rust 0.10 Released (mail.mozilla.org)

Mozilla and the Rust community are pleased to announce version 0.10 of the Rust compiler and tools. Rust is a systems programming language with a focus on safety, performance and concurrency. This was an exciting release cycle where we broke apart the libextra library, introduced cross-crate syntax extensions and macros, improved the smart pointer experience with the Deref trait, and improved error handling in I/O. Outside of the compiler, this release has seen the introduction of a new RFC process as well as support for nightly binary installers. Read more...

Thursday, April 3, 2014

Welcome to the .NET Compiler Platform: Roslyn (roslyn.codeplex.com)

The .NET Compiler Platform ("Roslyn") provides open-source C# and Visual Basic compilers with rich code analysis APIs. You can build code analysis tools with the same APIs that Microsoft is using to implement Visual Studio! Read more.

Monday, March 31, 2014

Firefox: Generational GC has landed (blog.mozilla.org)

Big news: late last week, generational garbage collection landed. It was backed out at first due to some test failures, but then re-landed and appears to have stuck. This helps with performance. There are certain workloads where generational GC makes the code run much faster, and Firefox hasn’t been able to keep up with Chrome on these. For example, it has made Firefox slightly faster on the Octane benchmark, and there is apparently quite a bit of headroom for additional improvements. Read more...

Thursday, March 20, 2014

Green threads are just threads (glyph.twistedmatrix.com)

Be as the reed, not the oak tree. Green threads are just threads.

    … that which is hard and stiff
    is the follower of death
    that which is soft and yielding
    is the follower of life …

    – the Tao Te Ching, chapter 76

As we know, threads are a bad idea, (for most purposes). Threads make local reasoning difficult, and local reasoning is perhaps the most important thing in software development. With the word “threads”, I am referring to shared-state multithreading, despite the fact that there are languages, like Erlang and Haskell which refer to concurrent processes – those which do not implicitly share state, and require explicit coordination – as “threads”. My experience is mainly (although not exclusively) with Python but the ideas presented here should generalize to most languages which have global shared mutable state by default, which is to say, quite a lot of them: C (including Original Recipe, Sharp, Extra Crispy, Objective, and Plus Plus), JavaScript, Java, Scheme, Ruby, and PHP, just to name a few. With the phrase “local reasoning”, I’m referring to the ability to understand the behavior (and thereby, the correctness) of a routine by examining the routine itself rather than examining the entire system. Read more