From b8f143573f2d73972048d1e861034c634b7c743d Mon Sep 17 00:00:00 2001 From: AnonymousCoward Date: Fri, 27 Apr 2007 12:47:28 +0200 Subject: [PATCH] Edit page ProgrammingParadigms --- ProgrammingParadigms | 68 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 ProgrammingParadigms diff --git a/ProgrammingParadigms b/ProgrammingParadigms new file mode 100644 index 0000000..1759f8a --- /dev/null +++ b/ProgrammingParadigms @@ -0,0 +1,68 @@ +{{{ +1. Simplicity +2. Clarity +3. Generality +-- Brian W. Kernighan, Rob Pike +}}} + +I frequently use the following paradigms and techniques: + + * '''OOP''' - Who doesn't? I've teached object oriented + programming and object oriented analysis and design (OOA&D) + as part of my InstructorRole. + I've never been a believer in the pure-OOP religion. + I think OOP has a very broad application in many areas + of CS and that's all. + + * '''Metaprogramming''' - I love template templates. + Oh, yes I do. I must admit this little perversion of + mine. In the past, you couldn't abuse genericity because + your buggy compiler would blow up. Now that compilers + have been fixed, your brain blows up first. + + This is a little useless thing that only Boost would ever + want to carry: + + http://www.develer.com/devlib/devlib-current/cxxutil/viterator.h + + * '''Functional Programming''' - I'm sorry to admit I + never tried a fully functional approach in a real world + project, but I frequently use "pills" of functional + programming all the time where appropriate. Expecially + in combination with the StandardTemplateLibrary and with + Perl. + + * '''Design Patterns''' - Like many, I know, use and teach + the good old GangOfFour patterns and sometimes the more + esoteric ones. Actually, I mentioned them only to say + that I dislike both code that reinvents them as much as + code that abuses them (the SingletonPattern and + AbstractFactoryPattern are expecially popular with novices). + + * '''Multithreading''' - I tend to use it as a last resort + solution in my designs, because I consider truly concurrent + programming extremely hard to understand, debug and extend. + Most of my multithreading programming was on the AmigaComputer + (whose multitasking OS lacked memory protection and + was thus a hell of a multithreading environment) and on + Windows (where multithreading is popular because of the + limitations and inefficiencies of the IPC primitives and the + broken asynchronous I/O). + + * '''Compiler design''' - I'm experienced in writing + grammars and hand-writing the lexical analyzers and + parsers as well as using the usuals automated tools. + I understand problems related to AST representation, + optimizers, and code generators. + See OpenSourceDeveloperRole for GCC contributions. + + * '''Kernel development''' - I'm very interested in OS + design problems and I wrote lots of system-level code + and utilities. I even wrote a minimalistic microkernel + for DevLib: + + http://www.develer.com/devlib/devlib-current/kern/ + +And of course... + + * '''Spaghetti programming!''' -- 2.25.1