<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/wordpress-mu-1.2.3-2.2.1" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: Native Code is not Dead</title>
	<link>http://blogs.codegear.com/davidi/2008/01/24/38857</link>
	<description>David Intersimone (David I) CodeGear blog about programming, languages, history, and more.</description>
	<pubDate>Fri, 22 Aug 2008 02:36:17 +0000</pubDate>
	<generator>http://wordpress.org/?v=wordpress-mu-1.2.3-2.2.1</generator>

	<item>
		<title>By: dzolee</title>
		<link>http://blogs.codegear.com/davidi/2008/01/24/38857#comment-9666</link>
		<author>dzolee</author>
		<pubDate>Thu, 15 May 2008 20:05:09 +0000</pubDate>
		<guid>http://blogs.codegear.com/davidi/2008/01/24/38857#comment-9666</guid>
		<description>Might be bit of a strange question, but where does the title slogan come from? Just out of curiosity. I'm using the same slogan since uh, last year, and when I created the simple java graffiti-like "native code is not dead" stuff on my site, google had nothing about this slogan at all.
Now do we live in such a small world that 2 different people came up with the same slogan? Funny.</description>
		<content:encoded><![CDATA[<p>Might be bit of a strange question, but where does the title slogan come from? Just out of curiosity. I&#8217;m using the same slogan since uh, last year, and when I created the simple java graffiti-like "native code is not dead" stuff on my site, google had nothing about this slogan at all.<br />
Now do we live in such a small world that 2 different people came up with the same slogan? Funny.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ChrLS</title>
		<link>http://blogs.codegear.com/davidi/2008/01/24/38857#comment-8864</link>
		<author>ChrLS</author>
		<pubDate>Mon, 11 Feb 2008 00:17:27 +0000</pubDate>
		<guid>http://blogs.codegear.com/davidi/2008/01/24/38857#comment-8864</guid>
		<description>From my point of view, both are tools and each one of them is usefull "here" 
and not that good "there". 

If you gain your money by producing everyday apps like 
text processing, image-video-sound handlers, p2p progs, web pages etc. 
then .NET or Java are both good ways to do the job. In these cases one is only 
interested in the business logic and handling hardware issues is consider to be
a waste of time.

Then again drivers, electronic controllers' software, !!operating systems!! and
every revolutionary application, framework can ONLY be implemented in
native code!! Even .NET and Java REs are and will continue to be written in native
code!! There is simply no other way... Even every serious programming language is written in native code.  

The point is that we are asked to become less revolutionary. MSoft does not need
anymore linuxes... So their new moto is: 


"Be creative and write anything, but only with the bricks we give you and
in ways that we have specified. And we will make it easier to follow our way".


Knowing how to write excellent native code also requires the "dangerous" 
knowledge of the computer's internals. And MSoft would also like less 
and less hackers to be around. Everybody understands why....  

In other words there seems to exist a trend to monopolize information:
Trully usefull knowledge that could "upset the current balance" in the
software industry will eventually be available only to the selected 
few that work for MSoft or any company of the same calibre. And the rest
of us programers will have to buy and play with the little toy-bricks
that these companies will produce....And-come to think of it-they are
like regular grocery stores! Everytime they claim to have the next 
fresh/best think. Magazines are then forced to create a trend, and we
-being lowlife-trend_driven zombies- hurry to learn this new "great thing"..
And on top of that, we become so passionate about the "greatness" of 
our new knowledge that start the so called "blog wars"!!! 

Divide and conquer I guess...  

But the real problem is the education of prorgammers. 50% are self-taught
and another 45% have attended schools with educational programs that can
be fully be described as "2 years of Visual Studio seminars". How can one
expect from such a "programmer" to understand even what a simple pointer is?
A script kid is one thing and a true programmer/software enginner is another!!

True programming freedom is to be able to choose the tool you see fit for
the occasion. Whoever tries to spread a monopoly-or stands for it!-
should stop worrying about whether his PC has been ruBotted. His own brain 
is officially a member of the storm-Bot.NET... Either that or he works 
for MSoft :)</description>
		<content:encoded><![CDATA[<p>From my point of view, both are tools and each one of them is usefull "here"<br />
and not that good "there". </p>
<p>If you gain your money by producing everyday apps like<br />
text processing, image-video-sound handlers, p2p progs, web pages etc.<br />
then .NET or Java are both good ways to do the job. In these cases one is only<br />
interested in the business logic and handling hardware issues is consider to be<br />
a waste of time.</p>
<p>Then again drivers, electronic controllers&#8217; software, !!operating systems!! and<br />
every revolutionary application, framework can ONLY be implemented in<br />
native code!! Even .NET and Java REs are and will continue to be written in native<br />
code!! There is simply no other way&#8230; Even every serious programming language is written in native code.  </p>
<p>The point is that we are asked to become less revolutionary. MSoft does not need<br />
anymore linuxes&#8230; So their new moto is: </p>
<p>"Be creative and write anything, but only with the bricks we give you and<br />
in ways that we have specified. And we will make it easier to follow our way".</p>
<p>Knowing how to write excellent native code also requires the "dangerous"<br />
knowledge of the computer&#8217;s internals. And MSoft would also like less<br />
and less hackers to be around. Everybody understands why&#8230;.  </p>
<p>In other words there seems to exist a trend to monopolize information:<br />
Trully usefull knowledge that could "upset the current balance" in the<br />
software industry will eventually be available only to the selected<br />
few that work for MSoft or any company of the same calibre. And the rest<br />
of us programers will have to buy and play with the little toy-bricks<br />
that these companies will produce&#8230;.And-come to think of it-they are<br />
like regular grocery stores! Everytime they claim to have the next<br />
fresh/best think. Magazines are then forced to create a trend, and we<br />
-being lowlife-trend_driven zombies- hurry to learn this new "great thing"..<br />
And on top of that, we become so passionate about the "greatness" of<br />
our new knowledge that start the so called "blog wars"!!! </p>
<p>Divide and conquer I guess&#8230;  </p>
<p>But the real problem is the education of prorgammers. 50% are self-taught<br />
and another 45% have attended schools with educational programs that can<br />
be fully be described as "2 years of Visual Studio seminars". How can one<br />
expect from such a "programmer" to understand even what a simple pointer is?<br />
A script kid is one thing and a true programmer/software enginner is another!!</p>
<p>True programming freedom is to be able to choose the tool you see fit for<br />
the occasion. Whoever tries to spread a monopoly-or stands for it!-<br />
should stop worrying about whether his PC has been ruBotted. His own brain<br />
is officially a member of the storm-Bot.NET&#8230; Either that or he works<br />
for MSoft <img src='http://blogs.codegear.com/davidi/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: George Gombos</title>
		<link>http://blogs.codegear.com/davidi/2008/01/24/38857#comment-8826</link>
		<author>George Gombos</author>
		<pubDate>Thu, 07 Feb 2008 16:51:52 +0000</pubDate>
		<guid>http://blogs.codegear.com/davidi/2008/01/24/38857#comment-8826</guid>
		<description>For the people who are so quick to bash .NET here take a minute to think that some things may not be so rosy after all or David would have chosen a different topic for his session, eh? The truth is that while native development on the Windows platform is not dead yet, it's hardly doing very well either. And if you think that multicores will revive it you are probably just kidding yourself. Finally C++0x has something to say about threading but it's not much more that pthreads which we've had for years. On the other side, in the managed world development is proceeding at breakneck speed. They already have what C++ is barely standardising now and no doubt they are working on the next cool thing. And if any concurrency revolution will take place it's unlikely to happen with such low-level concepts like threads and mutexes but rather something more high-level and the managed world is much more likely to come up with that.

Even worse is the fact that Microsoft are running away with it even as far as native code development is concerned, even if they're not really trying, because the likes of Borland/Codegear like to sit on their collective asses and not innovate beyond the "yet another way to connect to the database" API, but that's a topic for another day. 

So speaketh a long time C++ Builder user driven to the other side when the substandard (pun intended) quality of the C++ compiler began to outweight the joys of the great (at the time, at least) VCL.</description>
		<content:encoded><![CDATA[<p>For the people who are so quick to bash .NET here take a minute to think that some things may not be so rosy after all or David would have chosen a different topic for his session, eh? The truth is that while native development on the Windows platform is not dead yet, it&#8217;s hardly doing very well either. And if you think that multicores will revive it you are probably just kidding yourself. Finally C++0x has something to say about threading but it&#8217;s not much more that pthreads which we&#8217;ve had for years. On the other side, in the managed world development is proceeding at breakneck speed. They already have what C++ is barely standardising now and no doubt they are working on the next cool thing. And if any concurrency revolution will take place it&#8217;s unlikely to happen with such low-level concepts like threads and mutexes but rather something more high-level and the managed world is much more likely to come up with that.</p>
<p>Even worse is the fact that Microsoft are running away with it even as far as native code development is concerned, even if they&#8217;re not really trying, because the likes of Borland/Codegear like to sit on their collective asses and not innovate beyond the "yet another way to connect to the database" API, but that&#8217;s a topic for another day. </p>
<p>So speaketh a long time C++ Builder user driven to the other side when the substandard (pun intended) quality of the C++ compiler began to outweight the joys of the great (at the time, at least) VCL.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Walter Pokorny</title>
		<link>http://blogs.codegear.com/davidi/2008/01/24/38857#comment-8822</link>
		<author>Walter Pokorny</author>
		<pubDate>Thu, 07 Feb 2008 00:31:58 +0000</pubDate>
		<guid>http://blogs.codegear.com/davidi/2008/01/24/38857#comment-8822</guid>
		<description>As the discussions above show thera are people who are fanatical fans of .NET and at the other hand there are people who prefer native exes at present. I’m thinking an essential point there has been overlooked: remittance works needs other solutions than standard software.

Remittance works are for one single user. Many developers do remittance works. The developer knows his customers system and it is easy to implement .NET x.x. There are no problems with the .NET and with the secrecy of the code.

The developer of standard software at the other hand don't know most of his customers, he don't have access to their systems and don't know which versions of Win are installed. And he has the problem that his code may be decoded by his competitors. In this case native Win32 code is the best solution at present.

I think its very important to differentiate between this two cases!

Walter</description>
		<content:encoded><![CDATA[<p>As the discussions above show thera are people who are fanatical fans of .NET and at the other hand there are people who prefer native exes at present. I’m thinking an essential point there has been overlooked: remittance works needs other solutions than standard software.</p>
<p>Remittance works are for one single user. Many developers do remittance works. The developer knows his customers system and it is easy to implement .NET x.x. There are no problems with the .NET and with the secrecy of the code.</p>
<p>The developer of standard software at the other hand don&#8217;t know most of his customers, he don&#8217;t have access to their systems and don&#8217;t know which versions of Win are installed. And he has the problem that his code may be decoded by his competitors. In this case native Win32 code is the best solution at present.</p>
<p>I think its very important to differentiate between this two cases!</p>
<p>Walter</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Walter Pokorny</title>
		<link>http://blogs.codegear.com/davidi/2008/01/24/38857#comment-8821</link>
		<author>Walter Pokorny</author>
		<pubDate>Thu, 07 Feb 2008 00:07:20 +0000</pubDate>
		<guid>http://blogs.codegear.com/davidi/2008/01/24/38857#comment-8821</guid>
		<description>As the discussions above show thera are people who are fanatical fans of .NET and at the other hand there are people who prefer native exes at present. I'm thinking there</description>
		<content:encoded><![CDATA[<p>As the discussions above show thera are people who are fanatical fans of .NET and at the other hand there are people who prefer native exes at present. I&#8217;m thinking there</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tinashe Rondozai</title>
		<link>http://blogs.codegear.com/davidi/2008/01/24/38857#comment-8763</link>
		<author>Tinashe Rondozai</author>
		<pubDate>Mon, 04 Feb 2008 10:46:20 +0000</pubDate>
		<guid>http://blogs.codegear.com/davidi/2008/01/24/38857#comment-8763</guid>
		<description>No, native code isn't dead, but managed code is surging. Native suffers from inferior libraries and is increasingly losing its RAD-factor. For instance, the sheer richness of the FCL and the simple abstractions it provides for virtually all native system features simply overwhelms the VCL that we all came to use and love.

There is next to zero innovation in the VCL, and while CodeGear ignores things like extending the WinAPI support (e.g. CryptoAPI, WMI) and introducing new utility classes (e.g. Hashtables, XML parsers); Microsoft are busy innovating and looking at ways to increase developer productivity. In 3 years, the VCL has lost 10 to the FCL. CodeGear's answer? Get third party libraries and controls, or simply leverage Microsoft's innovations through Delphi for .NET!

That is so lame and has completely turned me off Delphi - or CodeGear's native development solution, to be strictly correct. I've been developing in Delphi for 11 years and to see it fall this far behind is a crying shame.

Either CodeGear doesn't have the right engineers anymore, or they've lost interest altogether. Meanwhile, I've been dragged kicking and screaming into .NET and C#. We can go on and on about the drawbacks of managed programming (deployment, versioning, performance etc.), but at the end of the day, given a task that can be accomplished by both native and managed code, I'd pick .NET managed over native VCL without blinking - and it truly saddens me every single time.

To be honest, I know loads more VCL and Object Pascal than I do .NET, but I'm significantly more productive with Visual Studio and .NET!

If CodeGear don't have an answer for Anders, there will be no come-back story and they'd better let us know so we can all make informed decisions and save a lot of hours and heartache.</description>
		<content:encoded><![CDATA[<p>No, native code isn&#8217;t dead, but managed code is surging. Native suffers from inferior libraries and is increasingly losing its RAD-factor. For instance, the sheer richness of the FCL and the simple abstractions it provides for virtually all native system features simply overwhelms the VCL that we all came to use and love.</p>
<p>There is next to zero innovation in the VCL, and while CodeGear ignores things like extending the WinAPI support (e.g. CryptoAPI, WMI) and introducing new utility classes (e.g. Hashtables, XML parsers); Microsoft are busy innovating and looking at ways to increase developer productivity. In 3 years, the VCL has lost 10 to the FCL. CodeGear&#8217;s answer? Get third party libraries and controls, or simply leverage Microsoft&#8217;s innovations through Delphi for .NET!</p>
<p>That is so lame and has completely turned me off Delphi - or CodeGear&#8217;s native development solution, to be strictly correct. I&#8217;ve been developing in Delphi for 11 years and to see it fall this far behind is a crying shame.</p>
<p>Either CodeGear doesn&#8217;t have the right engineers anymore, or they&#8217;ve lost interest altogether. Meanwhile, I&#8217;ve been dragged kicking and screaming into .NET and C#. We can go on and on about the drawbacks of managed programming (deployment, versioning, performance etc.), but at the end of the day, given a task that can be accomplished by both native and managed code, I&#8217;d pick .NET managed over native VCL without blinking - and it truly saddens me every single time.</p>
<p>To be honest, I know loads more VCL and Object Pascal than I do .NET, but I&#8217;m significantly more productive with Visual Studio and .NET!</p>
<p>If CodeGear don&#8217;t have an answer for Anders, there will be no come-back story and they&#8217;d better let us know so we can all make informed decisions and save a lot of hours and heartache.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Cornie van Schoor</title>
		<link>http://blogs.codegear.com/davidi/2008/01/24/38857#comment-8730</link>
		<author>Cornie van Schoor</author>
		<pubDate>Fri, 01 Feb 2008 23:09:14 +0000</pubDate>
		<guid>http://blogs.codegear.com/davidi/2008/01/24/38857#comment-8730</guid>
		<description>I can not agree more with Geert.  First of all KISS (Keep it simple, Stupid) and then a logical (He says mathematical) solution.  KISS will always be king, so I will say no more on that.  He use Pascal and I Delhi win32 and I believe he is the better programmer!  Why do we need to rely on libraries like .Net to produce "Managed Code", even more so when we have no access to the source code. I use JCL and JVCL from the JEDI Library a lot, but I have access to the source code if something goes wrong.  But more importantly if something needs to be fixed in my program, I only need to send my customers a 2.5 Mb file to fix it. Not a whole .Net update. 

And even more important no registry updates that may or may not work.  (On that point why must I store 4 variables in a database of millions, that are only retrieved once a day at most.)

.Net is doomed to be dead.  The dot normally ends a sentence or statement.  .Net start with one!  So it ended before it started.

Long live KISS and logic (Mathematical)</description>
		<content:encoded><![CDATA[<p>I can not agree more with Geert.  First of all KISS (Keep it simple, Stupid) and then a logical (He says mathematical) solution.  KISS will always be king, so I will say no more on that.  He use Pascal and I Delhi win32 and I believe he is the better programmer!  Why do we need to rely on libraries like .Net to produce "Managed Code", even more so when we have no access to the source code. I use JCL and JVCL from the JEDI Library a lot, but I have access to the source code if something goes wrong.  But more importantly if something needs to be fixed in my program, I only need to send my customers a 2.5 Mb file to fix it. Not a whole .Net update. </p>
<p>And even more important no registry updates that may or may not work.  (On that point why must I store 4 variables in a database of millions, that are only retrieved once a day at most.)</p>
<p>.Net is doomed to be dead.  The dot normally ends a sentence or statement.  .Net start with one!  So it ended before it started.</p>
<p>Long live KISS and logic (Mathematical)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Geert Poelman</title>
		<link>http://blogs.codegear.com/davidi/2008/01/24/38857#comment-8725</link>
		<author>Geert Poelman</author>
		<pubDate>Fri, 01 Feb 2008 16:48:10 +0000</pubDate>
		<guid>http://blogs.codegear.com/davidi/2008/01/24/38857#comment-8725</guid>
		<description>Hello David,

I believe in: “Tried an tested”, “keep it simple” and a mathematical approach to programming like Pascal. I have seen many fads come, because of commercial inspired hype, and have then seen them stick because no one asks if they really need them. Like OOP, DLL, COM, Java, .net, etc…

My main program is very powerful because it doesn’t carry a lot of ballast (its less than 1 MB) and it is flexible because I do not use OOP (I use my brain instead). So, although I am a very small company, I am becoming a real problem for the big established companies. Mainly because of my creative and alternative approach to programming.

For example: my software doesn’t use an installer. If its name is “setup.exe”, it starts an install screen, copies itself to the harddrive, renames itself and creates a few shortcuts. Result: no problems with the registry, very fast install, custom install features and it saves development time with each new release.

“Follow the crowd and you will be alright” seems to be the motto for most programmers. However they fail to realise that debacles are never reported so their motto is never proved wrong. It just seems to them that they are unlucky with their own experiences.

Greetings,

Geert</description>
		<content:encoded><![CDATA[<p>Hello David,</p>
<p>I believe in: “Tried an tested”, “keep it simple” and a mathematical approach to programming like Pascal. I have seen many fads come, because of commercial inspired hype, and have then seen them stick because no one asks if they really need them. Like OOP, DLL, COM, Java, .net, etc…</p>
<p>My main program is very powerful because it doesn’t carry a lot of ballast (its less than 1 MB) and it is flexible because I do not use OOP (I use my brain instead). So, although I am a very small company, I am becoming a real problem for the big established companies. Mainly because of my creative and alternative approach to programming.</p>
<p>For example: my software doesn’t use an installer. If its name is “setup.exe”, it starts an install screen, copies itself to the harddrive, renames itself and creates a few shortcuts. Result: no problems with the registry, very fast install, custom install features and it saves development time with each new release.</p>
<p>“Follow the crowd and you will be alright” seems to be the motto for most programmers. However they fail to realise that debacles are never reported so their motto is never proved wrong. It just seems to them that they are unlucky with their own experiences.</p>
<p>Greetings,</p>
<p>Geert</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Gocher</title>
		<link>http://blogs.codegear.com/davidi/2008/01/24/38857#comment-8712</link>
		<author>John Gocher</author>
		<pubDate>Thu, 31 Jan 2008 13:18:15 +0000</pubDate>
		<guid>http://blogs.codegear.com/davidi/2008/01/24/38857#comment-8712</guid>
		<description>Sock it to them David!!</description>
		<content:encoded><![CDATA[<p>Sock it to them David!!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Walter Pokorny</title>
		<link>http://blogs.codegear.com/davidi/2008/01/24/38857#comment-8657</link>
		<author>Walter Pokorny</author>
		<pubDate>Sun, 27 Jan 2008 15:44:49 +0000</pubDate>
		<guid>http://blogs.codegear.com/davidi/2008/01/24/38857#comment-8657</guid>
		<description>Hello David,
 
I accept your invitation willingly to send you my native code vs. managed/dynamic code thoughts. 
 
At first the basic conditions: As I wrote in a former discussion, I develop dynamically simulations in aerodynamics and thermodynamics. These programs are distributed to engineers and scientists in a very small quantity. The programs are not remittance work, I don't know most of my customers. But about three months ago we made a survey and now we know the operating systems used by our customers: about the half uses Win 2000, about the other half uses Win XP, but nobody uses Vista. And nobody has a .NET version installed on his system (or doesn't know it). And nobody intends to change the system, because the old system runs and runs and runs (don't change a running system ...!).
 
This background is the reason for my thoughts and arguments for preferring native Win 32 apps:
 
1.: Our customers don't like to install .NET, as long as it isn't a part of the operating system. And an additional automatic installation is an intervention in the system.
 
2.: There are every few years new versions of .NET. It is impossible to develop an application for e.g. .NET 3.5, if the customer uses Win2000. We don't know, which .NET version we have to consider.
 
3.: And in the end: The IL code of the exe for .NET is very easy to read. Our algorithms are our company secrets and our capital. We must protect it as well as possible to make it as heavily as possible to be understood by our competitors. Native Win32 code is at present the best protection. Another way would be to develop for .NET and to make from the IL-exe a real Win32 exe by using the XENOCODE tools. But there remains the question: why not make a Win32 exe directly?
 
These reasons aren't interesting for remittance works. For these .NET will be an interesting solution.
And for us .NET will become an interesting option in perhaps 10 or 15 years, when .NET is an integral part of the operating systems at all computers, and a way is found which protects the code similar to Win32 today (it must be much more better then the today's obfuscators).
 
Kind regards from Austria
 
Walter</description>
		<content:encoded><![CDATA[<p>Hello David,</p>
<p>I accept your invitation willingly to send you my native code vs. managed/dynamic code thoughts. </p>
<p>At first the basic conditions: As I wrote in a former discussion, I develop dynamically simulations in aerodynamics and thermodynamics. These programs are distributed to engineers and scientists in a very small quantity. The programs are not remittance work, I don&#8217;t know most of my customers. But about three months ago we made a survey and now we know the operating systems used by our customers: about the half uses Win 2000, about the other half uses Win XP, but nobody uses Vista. And nobody has a .NET version installed on his system (or doesn&#8217;t know it). And nobody intends to change the system, because the old system runs and runs and runs (don&#8217;t change a running system &#8230;!).</p>
<p>This background is the reason for my thoughts and arguments for preferring native Win 32 apps:</p>
<p>1.: Our customers don&#8217;t like to install .NET, as long as it isn&#8217;t a part of the operating system. And an additional automatic installation is an intervention in the system.</p>
<p>2.: There are every few years new versions of .NET. It is impossible to develop an application for e.g. .NET 3.5, if the customer uses Win2000. We don&#8217;t know, which .NET version we have to consider.</p>
<p>3.: And in the end: The IL code of the exe for .NET is very easy to read. Our algorithms are our company secrets and our capital. We must protect it as well as possible to make it as heavily as possible to be understood by our competitors. Native Win32 code is at present the best protection. Another way would be to develop for .NET and to make from the IL-exe a real Win32 exe by using the XENOCODE tools. But there remains the question: why not make a Win32 exe directly?</p>
<p>These reasons aren&#8217;t interesting for remittance works. For these .NET will be an interesting solution.<br />
And for us .NET will become an interesting option in perhaps 10 or 15 years, when .NET is an integral part of the operating systems at all computers, and a way is found which protects the code similar to Win32 today (it must be much more better then the today&#8217;s obfuscators).</p>
<p>Kind regards from Austria</p>
<p>Walter</p>
]]></content:encoded>
	</item>
</channel>
</rss>
