<div class="gmail_quote"><div>My $.02 follows:</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">From: Michael Snoyman &lt;<a href="mailto:michael@snoyman.com">michael@snoyman.com</a>&gt;<br>

<br>
There&#39;s only two skills which I think absolutely must go:<br>
<br>
Other languages I know: C# .NET, XSLT, Microsoft SQL Server, XML, SQL,<br>
CSS, C, C++, Java, HTML, Visual Basic Script, Pascal, Rexx, Basic and<br>
assembler<br>
tool building<br></blockquote><div><br></div><div>Agreed that both should go.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
There are 11 skills I&#39;m leaning towards dropping, all because they<br>
fall in the too vague/too general category. Your input is requested on<br>
these. They are:<br>
<br>
Attribute Grammar<br></blockquote><div><br></div><div>Keep as &quot;Attribute Grammars&quot;</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Cabal, packaging, build and distribution tools<br></blockquote><div><br></div><div>This should be two categories: &quot;Cabal internals&quot; and &quot;Software packaging/distribution tools&quot;.  Keep Cabal internals, possibly keep the other</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Categorical Programming </blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Denotational design<br>
Digital Forensics<br></blockquote><div><br></div><div>keep</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Fault Tolerant Server Software </blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Mathematics<br></blockquote><div><br></div><div>drop (possibly keep FTSS, maybe change the name)</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Programming using Arrows<br></blockquote><div><br></div><div>Possibly keep with a different name</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Proving observational equivalence between Haskell programs </blockquote><div><br></div><div>drop</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Transactional business applications development<br></blockquote><div><br></div><div>I&#39;m not entirely sure what this means, specifically if it&#39;s business transactions or db/software transactions.</div><div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
UNIX Scripting and Tool Authoring<br></blockquote><div><br></div><div>keep as &quot;UNIX Scripting&quot;</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<br>
Of the remaining 32 skills, some of them fall in the &quot;too specific&quot;<br>
range just a bit (software transactional memory, property based<br>
testing), but I&#39;m inclined to let it slide. These 32 are:<br>
<br>
Advanced type-level programming (GADTs, TypeFamilies, proofs, etc.)<br>
Algorithmic Problem Solving<br>
Bioinformatics<br>
Concurrent Haskell<br>
DSL Design<br>
Darcs internals<br>
Foreign Function Interface (FFI)<br>
Formal Verification<br>
Functional graphics programming (2D, 3D, GPU)<br>
GHC internals<br>
Generic Programming<br>
Graphical User Interfaces<br>
Happstack Web Framework<br>
Hardware Acceleration DSLs<br>
Haskell on embedded devices<br>
High Assurance Software Development<br>
High-performance Haskell<br>
Metaprogamming via Template Haskell<br>
Natural Language Processing (tagging, parsing, translation,...)<br>
Physics &amp; Simulation<br>
Programming language translation<br>
Property based testing (QuickCheck)<br>
Purely functional data structures — design and implementation<br>
Reverse Engineering<br>
Robotics and Automation<br>
Signal Processing<br>
Software Transactional Memory<br>
Teaching Haskell<br>
Web development (HTML, CSS and Javascript)<br>
Yesod Web Framework<br></blockquote><div><br></div><div> I would argue for keeping most of these.  I do think that skills based on specific packages (Happstack, Yesod, STM?) perhaps should be dropped, except for packages that are integral to the Haskell universe (compilers, Cabal, Darcs?, QuickCheck?).  For these packages, I think the &quot;-internals&quot; categories are the most useful.</div>
<div><br></div><div>What about rolling Happstack, Yesod, etc. into &quot;Haskell Web Frameworks&quot;, and possibly also keeping the &quot;Web Development (HTML, CSS and Javascript)&quot; category?</div><div><br></div><div>
John</div></div>