1 / 19

Code Different

Agenda. C

aiden
Download Presentation

Code Different

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


    2. Ivan Towlson Mindscape ivan@mindscape.co.nz | http://hestia.typepad.com/flatlander/ Code Different

    3. Agenda C# and Visual Basic reconsidered Tools for your toolkit F# Boo Language hosting DSL Tools What’s cooking

    4. C# and Visual Basic reconsidered Imperative Textual No extensibility mechanisms Minimal abstraction over the underlying machine The assembly languages of the CLR

    5. F# A functional-object hybrid Included in Visual Studio 2010 A CLR language You can call C# or Visual Basic components from F# You can call F# components from C# or Visual Basic

    6. F# Features With C#/VB Equivalents First class functions Similar to .NET delegates Lambdas and closures Similar to C# lambdas Type inference Similar to C# var, but used much more extensively You rarely have to write explicit type annotations in F#

    7. F# Features With C#/VB Equivalents Comprehensions Similar to LINQ Quotations Similar to expression trees

    8. F# Idioms Emphasis on functions rather than records Rich data type support: options, tuples, discriminated unions Pattern matching Immutable by default Helps with asynchronous and parallel programming “Expressions that have values” instead of “statements that perform actions” F# Interactive REPL Try out your code as you go (tip: Alt+Enter!)

    9. F# Features Asynchronous workflows and agents Example: parallel or cloud computing Computation expressions Customising how a sequence of expressions is executed Parser generator Example: simple macro or expression languages Units of measure Example: scientific or financial computation

    10. F# Tools IntelliFactory WebSharper Platform Create HTML and JavaScript using F# Define user interface flows using F# workflows Formlets: type-safe composable Web forms

    11. Boo Open source imperative language Built for the CLR Interoperates with other CLR languages User-defined macros Add your own language-level constructs Extensible compiler pipeline Build your own domain-specific language on Boo

    12. Language Hosting Enables users (or you!) to script, automate and customise your application with the flexibility of a full programming language – and no need to recompile or redeploy PowerShell (PSHost/Runspace) Dynamic Language Runtime (ScriptEngine/ScriptScope) IronPython IronRuby

    13. DSL Tools Built into Visual Studio Used for a lot of the Visual Studio designers LINQ to SQL, Entity Framework Modelling projects (UML diagrams) Create graphical languages that integrate into Visual Studio Visual Studio SDK Visualisation and Modelling Toolkit Generate code using T4 template or custom tool Typically hosted in C# or Visual Basic projects

    14. What’s Cooking?

    15. What’s Cooking? Axum A language specifically designed for concurrent programming Messaging, dataflow, coordination “C# meets Erlang” Preview available from Microsoft DevLabs Related: CHESS, a debugging tool for concurrent programs

    16. What’s Cooking? DryadLINQ Distributed parallelisation across a cluster of machines Academic release available from Microsoft Research

    17. What’s Cooking? Kodu A visual programming language for creating games High-level primitives chosen for the gaming domain: collision, colour, vision, hearing, time You can write games on your Xbox! Technical preview available from Microsoft Fuse Labs

    18. What’s Cooking? Pex and Moles Testing tools Pex: analyses methods for ‘interesting’ inputs and outputs and creates test suites to ensure all cases are covered Moles: replace any .NET method – even built-in ones – with your own delegate Available from Microsoft Research

More Related