<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Object Mentor Blog: Type Scum</title>
    <link>http://blog.objectmentor.com/articles/2008/09/08/type-scum</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>Type Scum</title>
      <description>&lt;p&gt;Getting existing code under test is hard work, but it is fruitful.  Yes, you get code that is easier to change, but more importantly, you get knowledge &amp;#8211; you learn things about programming which make you better at avoiding common traps.  Sadly, many of these traps aren&amp;#8217;t well recognized yet.&lt;/p&gt;


	&lt;p&gt;The trap that I am going to write about today is one that I call &lt;i&gt;type scum&lt;/i&gt;.  It&amp;#8217;s most prevalent in C and C++ but it can attack in any of the traditional statically typed languages.&lt;/p&gt;


	&lt;p&gt;&lt;i&gt;Type Scum&lt;/i&gt; is the cruft in a code base which makes it impossible to compile a single file without an entire sub-stratum of defined types.  I&amp;#8217;m not talking about the primary, or even the secondary abstractions in your system, but rather the 200 or so basic types and structs that your abstractions depend upon.&lt;/p&gt;


	&lt;p&gt;Again, the problem is worst in C++ and C. At some point, every C or C++ developer feels the urge to isolate him or herself from the basic types of the language.  The &lt;i&gt;unsigned int&lt;/i&gt; type becomes &lt;i&gt;uint32&lt;/i&gt; and &lt;i&gt;unsigned char *&lt;/i&gt; becomes &lt;i&gt;uchar16_ptr&lt;/i&gt;. And, if that was all, it would be okay.  But no, people define &lt;i&gt;data transfer objects&lt;/i&gt; which aggregate these type pseudonyms together into large muddles. No file can compile without bringing in a world of types which cushion the code from dangerous things like the platform and testing harnesses.&lt;/p&gt;


	&lt;p&gt;No wait, testing harnesses are good. What can we do?&lt;/p&gt;


	&lt;p&gt;The unfortunate thing is that it is very hard to pull &lt;i&gt;type scum&lt;/i&gt; out of a system once it&amp;#8217;s been infected, but we can learn how to avoid it or at least manage it better:&lt;/p&gt;


&lt;ol&gt;
&lt;li&gt;If you must provide a sub-stratum of basic types in your system, do it in one place.  There should be a single library (and associated headers) that you include whenever you need it.  This library (and headers) should contain nothing else.
&lt;li&gt;If you must create &lt;span class="caps"&gt;DTO&lt;/span&gt; (Data Transfer Object) types, minimize them.  A good general purpose structure can carry a wide variety of different types of data and simplify testing.
&lt;li&gt;Push the DTOs to the edges.  There are some systems where you really do care whether an internal computation happens in &lt;i&gt;unsigned long int&lt;/i&gt; or &lt;i&gt;unsigned long long int&lt;/i&gt; but they are rare.  Basic data types and tolerances matter when two systems need to agree upon them, and that happens at component boundaries.  In many systems, the internal code can use platform types directly.
&lt;/ol&gt;

	&lt;p&gt;There you go.  &lt;i&gt;Type scum&lt;/i&gt; bad.&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;m sure that some people reading this will say &amp;#8220;Hey, isn&amp;#8217;t this the exact opposite of the advice that people give for a system with the &lt;i&gt;primitive obsession&lt;/i&gt; code smell?&amp;#8221;  The answer is &amp;#8220;yes.&amp;#8221;  But, to me, &lt;i&gt;primitive obsession&lt;/i&gt; is a different problem.  It&amp;#8217;s something which is the result of a lack of real behavioral abstractions in a system, not the lack of larger data holders.&lt;/p&gt;


	&lt;p&gt;Different problem.&lt;/p&gt;


	&lt;p&gt;&lt;i&gt;Type scum&lt;/i&gt; bad.&lt;/p&gt;</description>
      <pubDate>Mon, 08 Sep 2008 17:43:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:71bb9d92-6aa0-4899-bbc0-e912321d06cc</guid>
      <author>Michael Feathers</author>
      <link>http://blog.objectmentor.com/articles/2008/09/08/type-scum</link>
      <category>Michaels Musings</category>
      <category>Clean Code</category>
    </item>
    <item>
      <title>"Type Scum" by Office 2010</title>
      <description>&lt;p&gt;This article is GREAT it can be EXCELLENT JOB and what a great tool!&lt;/p&gt;</description>
      <pubDate>Fri, 13 Jan 2012 20:22:03 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:886d968b-d1ca-41e3-825d-e28320e5d5e1</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/08/type-scum#comment-197750</link>
    </item>
    <item>
      <title>"Type Scum" by backup iphone sms</title>
      <description>&lt;p&gt;Take effect to save the file and you can retrieve them when necessary.&lt;/p&gt;</description>
      <pubDate>Wed, 11 Jan 2012 05:23:57 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:4153478f-dede-4572-beea-9ff64a0e5847</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/08/type-scum#comment-196948</link>
    </item>
    <item>
      <title>"Type Scum" by christian louboutin</title>
      <description>&lt;p&gt;Christian Louboutin Rolando Hidden-Platform Pumps Golden is a fashion statement &amp;#8211; that&amp;#8217;s sexy, it makes you look longer highlight, and it highlights the curves in the woman body and makes the body look more elegant and thinner without any diet.&lt;/p&gt;


	&lt;p&gt;?Brand: Christian Louboutin
?Material: Golden leather
?Specialty: Signature red sole
?Color: Golden
?Heel height: Approximately 130mm/ 5.2 inches high and a concealed 20mm/ 1 inch platform
?Condition: Brand New in box with dust bags &amp;#38; Original Box&lt;/p&gt;


	&lt;p&gt;Fashion, delicate, luxurious Christian louboutins shoes on sale, one of its series is Christian Louboutin Rolando Pumps, is urbanism collocation. This Christian louboutins shoes design makes people new and refreshing. Red soles shoes is personality, your charm will be wonderful performance.&lt;/p&gt;</description>
      <pubDate>Fri, 04 Nov 2011 22:19:48 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:3d8cd9fc-b830-45dd-87a3-e11f624efbbf</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/08/type-scum#comment-168460</link>
    </item>
    <item>
      <title>"Type Scum" by HIGH END CASINO SLOTS</title>
      <description>&lt;p&gt;Thanks a lot for providing the great services in this blog that to sharing the great services in this blog. I am very much satisfied by the great info is visible in this blog that to using the great technology.&lt;/p&gt;</description>
      <pubDate>Thu, 20 Oct 2011 06:29:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:eabb1e4d-44cb-4c3a-b777-0861a1d6dbb2</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/08/type-scum#comment-160171</link>
    </item>
    <item>
      <title>"Type Scum" by BLOW STAR CASINO</title>
      <description>&lt;p&gt;I am very much enjoyed for the great services in this blog that to using the great technology in this blog. Thanks a lot for providing the great info is visible in this blog that to new info is visible in this blog.&lt;/p&gt;</description>
      <pubDate>Thu, 20 Oct 2011 06:27:31 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:1a6eb0c7-0270-47e0-bd4d-e008ad3e3418</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/08/type-scum#comment-160169</link>
    </item>
    <item>
      <title>"Type Scum" by ysbearing</title>
      <description>&lt;p&gt;Slewing ring is also called slewing bearing, some people called: rotary support, swing support. English Name: slewing bearing or slewing ring bearing or turn table bearing, slewing ring in the real industrial applications is very wide.&lt;/p&gt;</description>
      <pubDate>Wed, 19 Oct 2011 03:29:21 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:1a28d9c5-58ab-4a7a-8898-3977dedd1901</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/08/type-scum#comment-159516</link>
    </item>
    <item>
      <title>"Type Scum" by how to become</title>
      <description>&lt;p&gt;&lt;a href="http://howtobecomehub.com/how-to-become-a-respiratory-therapist.htm" rel="nofollow"&gt;How To Become A Respiratory Therapist&lt;/a&gt; in this blog. I was searching the different info is visible in this blog and sharing the great technology in this blog &lt;a href="http://howtobecomehub.com/how-to-become-a-pilates-instructor.htm" rel="nofollow"&gt;How To Become A Pilates Instructor&lt;/a&gt; Thanks a lot for visiting the nice info in this blog and using the amazing services in this &lt;a href="http://howtobecomehub.com/how-many-years-does-it-take-to-become-a-dentist.htm" rel="nofollow"&gt;How Many Years Does It Take To Become A Dentist&lt;/a&gt; blog&lt;/p&gt;</description>
      <pubDate>Wed, 05 Oct 2011 04:21:25 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:09cc8be0-c913-450c-9fb7-bc793cf34453</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/08/type-scum#comment-150498</link>
    </item>
    <item>
      <title>"Type Scum" by how to become</title>
      <description>&lt;p&gt;It is really &lt;a href="http://howtobecomehub.com/how-to-become-a-manager.htm" rel="nofollow"&gt;How To Become A Manager&lt;/a&gt; amazing services in this &lt;a href="http://howtobecomehub.com/how-to-become-a-professional-photographer.htm" rel="nofollow"&gt;How To Become A Professional Photographer&lt;/a&gt; blog &lt;a href="http://howtobecomehub.com/how-many-years-does-it-take-to-become-pharmacist.htm" rel="nofollow"&gt;How Many Years Does It Take To Become Pharmacist&lt;/a&gt; that &lt;a href="http://howtobecomehub.com/how-to-become-a-astronaut.htm" rel="nofollow"&gt;How To Become A Astronaut&lt;/a&gt; to very much &lt;a href="http://howtobecomehub.com/how-to-become-a-wrestler.htm" rel="nofollow"&gt;How To Become A Wrestler&lt;/a&gt; happy for using &lt;a href="http://howtobecomehub.com/how-to-become-a-baseball-player.htm" rel="nofollow"&gt;How To Become A Baseball Player&lt;/a&gt; the nice services&lt;/p&gt;</description>
      <pubDate>Wed, 05 Oct 2011 04:20:04 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:f2dc734d-0a34-4d28-83a6-175af027cd68</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/08/type-scum#comment-150495</link>
    </item>
    <item>
      <title>"Type Scum" by how to become</title>
      <description>&lt;p&gt;I &lt;a href="http://howtobecomehub.com/how-to-become-a-dj.htm" rel="nofollow"&gt;How To Become A Dj&lt;/a&gt; am very much happy for providing the nice &lt;a href="http://howtobecomehub.com/how-to-become-a-famous-actor.htm" rel="nofollow"&gt;How To Become A Famous Actor&lt;/a&gt; info is visible &lt;a href="http://howtobecomehub.com/how-to-become-a-surgical-tech.htm" rel="nofollow"&gt;How To Become A Surgical Tech&lt;/a&gt; in this blog and using &lt;a href="http://howtobecomehub.com/how-to-become-air-traffic-controller.htm" rel="nofollow"&gt;How To Become Air Traffic Controller&lt;/a&gt; the nice &lt;a href="http://howtobecomehub.com/how-to-become-a-fire-fighter-in-california.htm" rel="nofollow"&gt;How To Become A Fire Fighter In California&lt;/a&gt; services &lt;a href="http://howtobecomehub.com/how-do-i-become-firefighter.htm" rel="nofollow"&gt;How Do I Become Firefighter&lt;/a&gt; in this blog&lt;/p&gt;</description>
      <pubDate>Wed, 05 Oct 2011 04:14:18 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:fe74e914-69e1-4f72-83e8-e36dc6c3b7a1</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/08/type-scum#comment-150493</link>
    </item>
    <item>
      <title>"Type Scum" by robert.robot369@gmail.com</title>
      <description>&lt;p&gt;It was really very helpful info in this website and the nice services in this blog. Thank you very much for the nice info in this blog that to sharing the great info in those guys in this blog. &lt;a href="http://coronerjobdescription.com" rel="nofollow"&gt;Coroner Job Description&lt;/a&gt;|&lt;a href="http://medicaltechnologistjobdescription.org/" rel="nofollow"&gt;Medical Technologist Job Description&lt;/a&gt;|&lt;a href="http://correctionsofficerjobdescription.com" rel="nofollow"&gt;Corrections Officer Job Description&lt;/a&gt;|&lt;a href="http://jobdescriptionforfinancialanalyst.com" rel="nofollow"&gt;Financial Analyst Job Description&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Fri, 30 Sep 2011 02:02:51 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:29204f23-adc9-4e2f-a6b6-e17823c9e57d</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/08/type-scum#comment-148275</link>
    </item>
    <item>
      <title>"Type Scum" by Puma espera shoes</title>
      <description>&lt;p&gt;Both styles were seen in the World Cup worn by Eusebio da Silva Ferreira and in the Olympics worn by Lee Evans and Thomas Smith. Rudolf passed in 1974 of lung cancer, and his son ran the company. In 1989, Armin and Gerd Dassler sold Puma to Cosa Liebermann for a unknown amount. Since Puma was seen on the soccer field many years ago it&#8217;s still very popular with the players and fans. Puma offers tons of styles to pick from and with the basic look they never go out of style. Puma will be around for a very very long time.&lt;/p&gt;</description>
      <pubDate>Tue, 27 Sep 2011 02:31:16 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:5fdd2740-c99a-4e62-baa9-cc76d0a5158d</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/08/type-scum#comment-145918</link>
    </item>
    <item>
      <title>"Type Scum" by chelsea shirt</title>
      <description>&lt;p&gt;chelsea shirt&lt;/p&gt;</description>
      <pubDate>Tue, 30 Aug 2011 21:05:03 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:7ad69f27-d5e8-423d-aefd-6e36ded9d69e</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/08/type-scum#comment-134497</link>
    </item>
    <item>
      <title>"Type Scum" by beats by dr   dre</title>
      <description>&lt;p&gt;Ski fake panerai Ski Accident Investigation: Winds to Blame?Skier Rebecca breitling crosswind &lt;a href="http://www.drdrebeatsheadphones-australia.com" rel="nofollow"&gt;beats by dr dre&lt;/a&gt;
&lt;a href="http://www.drdrebeatsheadphones-australia.com" rel="nofollow"&gt;beats by dre sale&lt;/a&gt;racing Rebecca London Said Wind Unlikely Cause;&lt;/p&gt;</description>
      <pubDate>Mon, 29 Aug 2011 21:28:24 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:b5d54c08-ee19-4083-b33e-a5a24ab5e716</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/08/type-scum#comment-134047</link>
    </item>
    <item>
      <title>"Type Scum" by suntradetop</title>
      <description>&lt;p&gt;You do not keep anything for a special occasion.because every day that you live is a SPECIAL OCCASION&lt;/p&gt;</description>
      <pubDate>Thu, 02 Jun 2011 02:53:06 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:ea9fa8d9-2399-4b26-89dc-a675d3790386</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/08/type-scum#comment-107053</link>
    </item>
    <item>
      <title>"Type Scum" by okey oyunu oyna </title>
      <description>&lt;p&gt;nice article&amp;#8230; i love this site&lt;/p&gt;


	&lt;p&gt;internette g&#246;r&#252;nt&#252;l&#252; olarak &lt;a href="http://www.okeyoyunu-oyna.com" rel="nofollow"&gt;okey oyunu oyna&lt;/a&gt;, ger&#231;ek kisilerle tanis,
 turnuva heyecanini yasa.&lt;/p&gt;</description>
      <pubDate>Wed, 27 Apr 2011 13:38:02 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:96736b1d-211d-47ef-843d-054ec3d78878</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/08/type-scum#comment-91873</link>
    </item>
    <item>
      <title>"Type Scum" by accounting services</title>
      <description>&lt;p&gt;I agree that a proliferation of &#8220;basic&#8221; types defined in random places can be a pain to deal with&lt;a href="http://www.admgroupllc.com/" rel="nofollow"&gt;accounting services&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 20 Jan 2011 10:38:25 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:b8027c36-f9d7-4329-8eb1-6076d1845fee</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/08/type-scum#comment-58186</link>
    </item>
    <item>
      <title>"Type Scum" by hublot replicas</title>
      <description>&lt;p&gt;contributed this reportSugarloaf Ski fake panerai Ski Accident Investigation: Winds to Blame?Skier Rebecca breitling crosswind racing Rebecca London Said Wind Unlikely Cause; Undaunted &lt;a href="http://www.tagwatch.org/categories/bvlgari-watches-14-b0.html" rel="nofollow"&gt;replica bvlgari watches&lt;/a&gt; Undaunted by Accident,&lt;/p&gt;</description>
      <pubDate>Tue, 04 Jan 2011 20:52:40 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:51be7a4d-f5f4-4330-861b-a187ba9b4f01</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/08/type-scum#comment-54158</link>
    </item>
    <item>
      <title>"Type Scum" by http://www.blacktowhiteiphone4.com</title>
      <description>&lt;p&gt;People love fashion will always love &lt;a href="http://www.blacktowhiteiphone4.com" rel="nofollow"&gt;white iphone 4&lt;/a&gt;. Now you can get the advance chance to take the hottest iphone 4 conversion kit. Here we go!&lt;/p&gt;</description>
      <pubDate>Wed, 22 Dec 2010 21:17:03 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:f7f8e508-74f9-4789-8b04-eeafcdd8a923</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/08/type-scum#comment-51178</link>
    </item>
    <item>
      <title>"Type Scum" by Josh Stone</title>
      <description>&lt;p&gt;You didn&amp;#8217;t mention the other property of type-scum&amp;#8212;it shows up in all your code, because when you have distinct sets of type-scum, you have to convert them.  So you end up casting left and right so you can get rid of all the compiler warnings.&lt;/p&gt;</description>
      <pubDate>Wed, 10 Sep 2008 15:52:14 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:e4774bf0-f5e9-47f3-998a-17bcf5bef970</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/08/type-scum#comment-2054</link>
    </item>
    <item>
      <title>"Type Scum" by Michael Feathers</title>
      <description>&lt;p&gt;@Sebastian I would try to isolate myself as much as possible.  Let those types play at the boundary.  As soon as you step away from the boundary, use native types if you can.  This doesn&amp;#8217;t work for all systems, but I&amp;#8217;m hard pressed to think of cases where it wouldn&amp;#8217;t work for applications that use JNI and OpenGL.&lt;/p&gt;</description>
      <pubDate>Wed, 10 Sep 2008 14:23:22 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:3673c6e1-7aae-4aa5-8df6-69bd7e90ecb6</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/08/type-scum#comment-2053</link>
    </item>
    <item>
      <title>"Type Scum" by Sebastian K&#252;beck</title>
      <description>&lt;p&gt;What can I do if third party includes force me to have lots of different definitions of primitive types around? 
Examples would be the Java Native Interface and OpenGL.&lt;/p&gt;</description>
      <pubDate>Wed, 10 Sep 2008 14:14:32 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:6b2e6947-7e6a-48e6-8147-ddda458dc876</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/08/type-scum#comment-2052</link>
    </item>
    <item>
      <title>"Type Scum" by Michael Feathers</title>
      <description>&lt;p&gt;@Antti Yes, I remember hearing about that.  Hopefully new projects will use it.  In most existing projects, the madness has already set in.&lt;/p&gt;


	&lt;p&gt;@Anthony I agree that consolidation can solve many of the problems, but I think the problem has a couple of faces.  It is sort of like the use of what are called &amp;#8220;way of life&amp;#8221; frameworks in Java.  The framework touches everything and it is hard to compile anything without linking to the framework.  The Java community reacted with the notion of POJOs (Plain old Java objects).   Although, I&amp;#8217;ve seen the term POCO coined for C++, I haven&amp;#8217;t seen much of a movement to champion their use.&lt;/p&gt;


	&lt;p&gt;Some projects will always have that layer of pseudonyms for  primitive types, but beyond that, I think that POCO-hood is a good thing.&lt;/p&gt;</description>
      <pubDate>Wed, 10 Sep 2008 07:47:11 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:b2067cd0-7c78-430f-8cc9-caa7a6c3c910</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/08/type-scum#comment-2050</link>
    </item>
    <item>
      <title>"Type Scum" by Anthony Williams</title>
      <description>&lt;p&gt;I agree that a proliferation of &amp;#8220;basic&amp;#8221; types defined in random places can be a pain to deal with.&lt;/p&gt;


	&lt;p&gt;My guideline is that if you need a type in two (or more) places it should be defined somewhere where it is accessible to those places without circular dependencies. This may often mean its own header file or module or unit or whatever. A library of basic types fits the bill nicely in this case. As Phil says, this solves most of the problems with &amp;#8220;Type Scum&amp;#8221;.&lt;/p&gt;


	&lt;p&gt;A whole header just for the definition of uint32_t is probably overkill, but you need to use a bit of thought and avoid a single all-encompassing header for all types.&lt;/p&gt;


	&lt;p&gt;It&amp;#8217;s all about Coupling and Cohesion.&lt;/p&gt;</description>
      <pubDate>Tue, 09 Sep 2008 09:06:58 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:6b667bdf-abed-4d83-a86f-0058ea7e2b04</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/08/type-scum#comment-2046</link>
    </item>
    <item>
      <title>"Type Scum" by Antti Tuppurainen</title>
      <description>&lt;p&gt;&lt;a href="http://www.opengroup.org/onlinepubs/000095399/basedefs/stdint.h.html" rel="nofollow"&gt;http://www.opengroup.org/onlinepubs/000095399/basedefs/stdint.h.html&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;stdint.h is C99, will be in the next C++ standard (as cstdint), is supported by most C and C++ implementations (even if they don&amp;#8217;t support C99) and for those that don&amp;#8217;t, portable implementations are available from various sources; there are some floating around that can be found with a google search, there&amp;#8217;s one in boost, etc etc.&lt;/p&gt;


	&lt;p&gt;People should always be using stdint.h (or cstdint) when writing new C or C++ code.&lt;/p&gt;</description>
      <pubDate>Tue, 09 Sep 2008 07:57:22 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:f70cf2ff-4603-4262-8d56-291bd930b312</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/08/type-scum#comment-2045</link>
    </item>
    <item>
      <title>"Type Scum" by Phil</title>
      <description>&lt;p&gt;You sound like you&amp;#8217;ve been programming in C+, where lots of types get defined in a single file. Since C+ dependencies propagate on a file-by-file basis a sprinkling of typedefs and DTO definitions can cause a huge snarl of interdependencies.&lt;/p&gt;


	&lt;p&gt;If that&amp;#8217;s the case then your first suggestion (isolate the supra-primitive types to their own library) would solve the whole problem wouldn&amp;#8217;t it? You&amp;#8217;d still have to be very careful about changing that library of course, because the whole project would have to be rebuilt every time you touched it.&lt;/p&gt;


	&lt;p&gt;My personal opinion is that it was a mistake to include polymorphic primitive types in programming languages in the first place. Then you wouldn&amp;#8217;t have everyone rolling their own uint32&amp;#8217;s all over the place. It would be more appropriate for people to roll their own in the rare cases where they actually want the meaning of &amp;#8220;int&amp;#8221; to be ambiguous.&lt;/p&gt;</description>
      <pubDate>Mon, 08 Sep 2008 19:32:49 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:2a8958cc-44af-44f5-b0dc-4c0b8277a4e3</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/08/type-scum#comment-2044</link>
    </item>
  </channel>
</rss>

