
My $.02 follows:
From: Michael Snoyman
There's only two skills which I think absolutely must go:
Other languages I know: C# .NET, XSLT, Microsoft SQL Server, XML, SQL, CSS, C, C++, Java, HTML, Visual Basic Script, Pascal, Rexx, Basic and assembler tool building
Agreed that both should go.
There are 11 skills I'm leaning towards dropping, all because they fall in the too vague/too general category. Your input is requested on these. They are:
Attribute Grammar
Keep as "Attribute Grammars"
Cabal, packaging, build and distribution tools
This should be two categories: "Cabal internals" and "Software packaging/distribution tools". Keep Cabal internals, possibly keep the other
Categorical Programming
Denotational design
Digital Forensics
keep
Fault Tolerant Server Software
Mathematics
drop (possibly keep FTSS, maybe change the name)
Programming using Arrows
Possibly keep with a different name
Proving observational equivalence between Haskell programs
drop
Transactional business applications development
I'm not entirely sure what this means, specifically if it's business transactions or db/software transactions.
UNIX Scripting and Tool Authoring
keep as "UNIX Scripting"
Of the remaining 32 skills, some of them fall in the "too specific" range just a bit (software transactional memory, property based testing), but I'm inclined to let it slide. These 32 are:
Advanced type-level programming (GADTs, TypeFamilies, proofs, etc.) Algorithmic Problem Solving Bioinformatics Concurrent Haskell DSL Design Darcs internals Foreign Function Interface (FFI) Formal Verification Functional graphics programming (2D, 3D, GPU) GHC internals Generic Programming Graphical User Interfaces Happstack Web Framework Hardware Acceleration DSLs Haskell on embedded devices High Assurance Software Development High-performance Haskell Metaprogamming via Template Haskell Natural Language Processing (tagging, parsing, translation,...) Physics & Simulation Programming language translation Property based testing (QuickCheck) Purely functional data structures — design and implementation Reverse Engineering Robotics and Automation Signal Processing Software Transactional Memory Teaching Haskell Web development (HTML, CSS and Javascript) Yesod Web Framework
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 "-internals" categories are the most useful. What about rolling Happstack, Yesod, etc. into "Haskell Web Frameworks", and possibly also keeping the "Web Development (HTML, CSS and Javascript)" category? John