|
|
User Controls
|
New User
|
Login
|
Edit/View My Profile
|
|
|
|
ActiveMac
|
Articles
|
Forums
|
Links
|
News
|
News Search
|
Reviews
|
|
|
|
News Centers
|
Windows/Microsoft
|
DVD
|
ActiveHardware
|
Xbox
|
MaINTosh
|
News Search
|
|
|
|
ANet Chats
|
The Lobby
|
Special Events Room
|
Developer's Lounge
|
XBox Chat
|
|
|
|
FAQ's
|
Windows 98/98 SE
|
Windows 2000
|
Windows Me
|
Windows "Whistler" XP
|
Windows CE
|
Internet Explorer 6
|
Internet Explorer 5
|
Xbox
|
DirectX
|
DVD's
|
|
|
|
TopTechTips
|
Registry Tips
|
Windows 95/98
|
Windows 2000
|
Internet Explorer 4
|
Internet Explorer 5
|
Windows NT Tips
|
Program Tips
|
Easter Eggs
|
Hardware
|
DVD
|
|
|
|
Latest Reviews
|
Applications
|
Microsoft Windows XP Professional
|
Norton SystemWorks 2002
|
|
Hardware
|
Intel Personal Audio Player
3000
|
Microsoft Wireless IntelliMouse
Explorer
|
|
|
|
Site News/Info
|
About This Site
|
Affiliates
|
ANet Forums
|
Contact Us
|
Default Home Page
|
Link To Us
|
Links
|
Member Pages
|
Site Search
|
Awards
|
|
|
|
Credits
©1997/2004, Active Network. All
Rights Reserved.
Layout & Design by
Designer Dream. Content
written by the Active Network team. Please click
here for full terms of
use and restrictions or read our
Privacy Statement.
|
|
|
|
|
|
|
|
Time:
15:09 EST/20:09 GMT | News Source:
DevX.com |
Posted By: William Sossamon |
Code generation is a time-saving technique that helps engineers do better, more creative, and useful work by reducing redundant hand-coding. In this world of increasingly code-intensive frameworks, the value of replacing laborious hand-coding with code generation is acute and, thus, its popularity is increasing.
|
|
#1 By
16451 (63.227.226.13)
at
9/4/2003 5:54:42 PM
|
>>> still a pipe dream most of the time
While you or I might never use a CASE tool due to their limitations, the reality is that there is a whole group of people out in the work force who do not have the skills and/or temperment for low-level coding, so CASE tools are all they use.
|
#2 By
20 (67.9.179.51)
at
9/4/2003 6:06:58 PM
|
Writing EJBs by hand is a waste of effort and time;
Oops, that's a typo, he meant to say...
Writing EJBs is a waste of effort and time;
|
#3 By
20 (67.9.179.51)
at
9/4/2003 6:10:13 PM
|
Whidbey/.NET 2.0/C# 2.0 will make this easier with partial types. The generated "untouchable" code will go into one part and the editable portions will go into the other part.
|
#4 By
135 (208.186.90.91)
at
9/4/2003 6:48:27 PM
|
So does this include business rules engines like iLog? :)
I don't know about code generation, or wizards, or dragons. I just dont' like typing the same line of code twice. Something fundamentally wrong with that.
|
#5 By
2332 (65.221.182.2)
at
9/5/2003 12:13:38 AM
|
Ya, code generation isn't useful for anything hardcore. Oh wait... ASP.NET is basically a giant code generator.
But we don't consider ASP.NET hardcore... right? Not like C++! A real man's language!
Give me a break.
#1 - "I can rip out a web app with ATLS as fast as I could with ASP and get a 300% performance improvement. "
And I can write an ASP.NET/C# application that has performance on par with your ATL application (if not significantly better thanks to all the services available to me, like page output caching, a highly tuned garbage collector, automatic thread management, etc.), and has far less a chance of having buffer overflows, memory leaks, or crashes in general. I also doubt your claims to your development speed with ATL, although for many simple applications you are probably correct.
C++ templates can hardly be said to fit all the cirumstances code generation can. No doubt they take the place of some simple cases, like creating reusable collection classes and things like that, but how about a object/relational mapping layer? I'd be damn impressed to see how you would solve that using just templates.
|
#6 By
1845 (12.209.152.69)
at
9/5/2003 2:37:09 AM
|
"ATLS performance can be 2-3 times greater than ASP in certain cases. Ours was nearly 300% greater when comparing our test harnesses."
Did you mean ASP.NET? Since RMD was referring to ASP.NET, and you are attacking managed code, if you aren't referring to ASP.NET, that anecdotal benchmark does not beneift your argument.
|
#7 By
2332 (65.221.182.2)
at
9/5/2003 9:43:11 AM
|
#11 - "Managed Code, C#, ASP, etc...they all have their place."
Yes, which you stated should be the presentation tier only. (C# specifically.) This is baloney.
"Our entire object/collection classes and "relational mapping layer", ie. data tier is done completely with C++ Templates and the performance is great."
I'd be interested to see how this work. I've designed a O/R mapping layer that doesn't use code generation too, but it requires a decent amount of coding by hand per object. Most of the good solutions I've seen (including ObjectSpaces) use code generation for the optimum combination of automation and customization.
I have no doubt you can duplicate almost all the functionality of a ASP.NET application with ATL. What I doubt is that it would ever make sense. If I can get the same performance but develop it in a fraction of the time and at the same time create an application that it infinitly more managable, why would I ever choose ATL? (See: http://www.gotdotnet.com/team/compare/nileperf.aspx)
"There is NOTHING one can do with the .NET Framework that you can't do with C++, templates and the STL/Boost/Spirit."
Sure. And there is NOTHING one can do with STL/Boost/Spirit that you can't do with straight C. And there is NOTHING one can do with straight C that your can't do with assembler. And there is NOTHING one can do with assembler that you can't do with machine code. That's not the point.
The point is that relegating managed code to the presentation layer is a bad decision. Regardless of your personal preferences, in the near future pretty much all code will be managed. For instance, Longhorn will have a completely managed interface available. I wouldn't be surprised if Microsoft included a "managed code only" switch that allowed you to only run managed code. (For security reasons.)
|
#8 By
1845 (12.209.152.69)
at
9/5/2003 5:32:45 PM
|
"And what is this, another Microsoft conversion... GUI's are stupid --- Microsoft makes windows --- GUIs are good, Internet is stupid --- Microsoft goes internet --- internet is good... Java and VM based WORA is stupid --- Microsoft copies --- 'It's all good, there is nothing else of value... innovation of the Century!!!'"
Huh? Did Microsoft ever bash the GUI? So far as I am aware they didn't.
Microsoft bashed the Internet? They didn't notice it, but that's not the same as bashing it.
Microsoft bashed VMs? Um, they made the fastest JavaVM for JDK 1.1.x . They wrote extensive class libraries (JFC). Many have argued that the basis of Visual Studio .NET and the .NET Framework was the work Microsoft put into J++. Microsoft has attacked Sun's control over Java and many of the design decisions in Java's early implementation (lack of templates/generics, lack of enums, lack of easy access to the native platform, etc.). That is not the same as attacking VMs or attacking Java.
|
#9 By
1845 (12.209.152.69)
at
9/5/2003 5:36:10 PM
|
If you're going to attack Microsoft for hypocrisy, I'll recommend their wonderful embrace of XML/XSLT/XSD, etc. in contrast to their slipshod implementations of CSS1, CSS2, PNG, XHTML, etc. Either Internet standards, especially the ones with an XML basis, are good or they aren't.
|
#10 By
1845 (12.209.152.69)
at
9/5/2003 5:40:26 PM
|
Oh, heck, while I'm at it, have you looked at the planned improvements to JDK 1.5? The look awfully similar to C# 1.0,1.1, and the announced plans for 2.0. Generics, enums, implicit boxing...yep, sounds like someone looked at C# and decided Java needed to make some improvements. For all the reports of C# being a Java clone, C# is a better Java than Java is.
|
#11 By
1845 (12.209.152.69)
at
9/5/2003 8:21:21 PM
|
"VM based languages do not allow you to write programs. They are nothing but complicated configurations for the VM. The VM is the program. The VM!"
Yep. You can't write real programs in C++ either. You can write complex configuration instructions for the <insert CPU name here> instruction set. I thought programmers were taught to think in abstractions. If you can't write a "program" in C#, then you can't in any other language either. If you can in any other language, then you can in C# too. Your semantical differentiation is just a tad overbearing, don't you think?
|
#12 By
1845 (12.209.152.69)
at
9/6/2003 1:26:48 AM
|
cba (what does that stand for anyway, your initials?),
Ah, if I understand you correctly, managed code itself isn't the thing that bugs you. First, you don't like seeing people hype it (or any technology) as the cure-all for what ails any information system. Second, by lowering the bar, managed code allows those who aren't as skilled as programmers to be programmers. This generation of lower quality developers makes life more difficult for those developers who really know what they are doing. Is this a fair assesment of your thoughts?
If it is, I very much agree with you.
That doesn't mean that I don't see many places where managed code is useful. C# is not the universal remedy to all computational problems. Anders, C#'s author, even said that on the most recent episode of The .NET Show. He said that there are many uses for managed code, but that there are also many places where it is not appropriate - device drivers, low level OS features, etc.
|
|
|
|
|