Edit page ProgrammingParadigms
authorAnonymousCoward <AnonymousCoward@81.174.33.46>
Fri, 27 Apr 2007 10:47:28 +0000 (12:47 +0200)
committerPiki Plus <webmaster@codewiz.org>
Fri, 27 Apr 2007 10:47:28 +0000 (12:47 +0200)
ProgrammingParadigms [new file with mode: 0644]

diff --git a/ProgrammingParadigms b/ProgrammingParadigms
new file mode 100644 (file)
index 0000000..1759f8a
--- /dev/null
@@ -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!'''