Ostatnio ponowiłem wysiłki do opanowania nowych języków z rodziny MS w tym także implementacji znanych języków na platformie .NET. Jest to częściowo powiązane z moimi osobistymi zainteresowaniami jak i tym iż w nowym VS będzie można już ich używać (zgodnie z zapowiedziami).
Podczas szaleńczego re-instalowania systemu w pracy z super przestarzałego, powolnego i osobiście przeze mnie znienawidzonego XP na Windows 7, stwierdziłem iż skonfiguruje sobie tak środowisko jak chciałbym je mieć zrobione w domu (nie przepadam za re-instalkami gdyż po nich mam 2-3 dni instalowania i konfiguracji softu).
Jedną z rzeczy na liście programów Must-Have był F# (MSDN Dev Centre). I tu nagle miłą niespodzianka. Trafiłem na blog Through the Interface prowadzony przez Kean Walmsley z frimy AutoDesk. 8 Stycznia 2009 stworzył on konkurs na napisanie funkcjonalności w F#, która była by przydatna w aplikacjach firmy AutoDesk (AutoCAD, 3D Max itp. itd.). Informacje na temat konkursu można znaleźć tutaj.
Wszystkich chętnych i maniaków F# zapraszam do udziału, jest to pewien rodzaj rozrywki jaką możemy sobie w tych czasach zafundować :)
Jedyny problem jest taki by wpaść na pomysł co można napisać dla tych aplikacji. Ja osobiście znam kilku architektów więc mam mniejszy problem niż osoby nie znające żadnego. Na szczęście Kean proponuje kilka tematów do poruszenia:
Data-centric problems
Functional programming is very good at managing (parsing, analysing, even creating) large sets of data. One previous, simple example was to gather and sort all the words found in an AutoCAD drawing. Here's the original post showing this, but an update was provided in my F# AU handouts.
Control flow-centric problems
If you have tasks that can easily be parallelized - in that they can safely be run asynchronously and/or concurrently - then functional programming provides a clean way to capture and execute the logic behind them. An example being a simple application that went away and queried RSS feeds asynchronously, using the results to generate AutoCAD entities. Here are the original posts showing this, but an update was provided in my F# AU handouts.
Domain Specific Languages (DSLs)
Implementing new, custom-purpose programming languages can be an efficient way to control the subset of language features used by a non-programmers to implement code. An example of this was the 3D LOGO implementation inside AutoCAD.
Units of measure
One F# language feature that I also see as being very relevant to our domain is the units of measure implementation. I haven't yet worked with this, myself, but I have certainly been meaning to.
Zachęcam do udziału w konkursie choć już czasu mało - oddanie projektów do 28 lutego.