Edit page blog/2010/03
[wiki.git] / ProgrammingParadigms
index be7428a335d5aec6cbec13bb96a791785e359b96..4892ac8315a3aeaac5ed321b610e4a979c84ba98 100644 (file)
@@ -7,39 +7,36 @@
 
 I frequently use the following paradigms and techniques:
 
- * '''OOP''' - Who doesn't?  I've taught object-oriented
+ * **OOP** - Well, who doesn't?  I've been teaching 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.
+ as part of my InstructorRole, although I've never been a true believer
+ in the pure-OOP dogma. OOP has very broad applicability in many areas
+ of CS, and that's all.
+
+ * **Metaprogramming** -- I've been in love with templates of templates for a while.
+ Oh, yes... 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 mind melts first.
  
- This is a little useless thing that only Boost would ever
want to carry:
+ This is a little useless thing that not even Boost would ever want to
carry around:
  
   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.
+ * **Functional Programming** -- I'm ashamed to admit I
+ never tried a purely functional approach in a real-world
+ project, but I do frequently use "pills" of functional
+ programming, expecially in combination with the
+ StandardTemplateLibrary and with Perl.
 
- * '''Design Patterns''' - Like many, I know, use and teach
+ * **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
+ * **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
@@ -49,20 +46,17 @@ I frequently use the following paradigms and techniques:
  limitations and inefficiencies of the IPC primitives and the
  broken asynchronous I/O).
 
- * '''Compiler design''' - I'm experienced in writing
+ * **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/
+ * **Kernel development** -- I'm particularily interested in OS design.
+ I wrote lots of system-level code and utilities, including a
+ minimalistic microkernel which is now being called [[BeRTOS]].
 
-And of course...
+And, of course...
 
- * '''Spaghetti programming!'''
+ * **Spaghetti programming!**