A book which doesn't mention alternatives to entitybeans and raw sql sounds quite outdated. The story of cmp/ejb is really the tale of the emperor's new clothes. Three years ago any critique voiced against this new wonder tech. was labeled as uneducated drivel. But the truth was that anyone(ok not you) forced to work in this setting, was demonstrating terrible productivity. As anyone reading theserverside.com will acknowledge, the emperor has now officially been declared naked. Now it's time for the trial. Let's have a book examining how and why so many clever and bright people could be fooled so badly.
Let's begin from the top. Code is emotional. You don't throw away code. You rewrite it, you re-encapsulate it, you tweak it. But you never throw away perfectly working code. It's your baby, damnit, and you're proud of it.
In my professional career, I'm proud of my code if it satisfies the needs of the customer. As for 'throwing away' and 'rewriting' code I see but little difference.
Wrong. Coding is not about programming. It is about solving a specific problem. Unless you understand the problem before you start coding, you are going to solve a different one.
And this is where we disagree. I claim it is highly unlikely that you understand the problem upfront. We're not talking about implementing a textbook algorithm but rather a large complex system. Sure do spend the afternoon with your coworkers discussing the overall design. Agree on some tracerbullets and high risk areas and get going.
The statement "you'll be much smarter after just [one] week of codewriting" smells of elitism and being so out of touch that I don't know where to begin. Yes, you will know more about your product. You know why? Because YOU THINK ABOUT THE DESIGN as you code!
I don't know where you get elitism from? My point of view is quite the opposite. Yes I strongly doubt that the guy asking for advice on writing this 3d-system has the skill to do an upfront analysis and design of his system. But nor would I trust myself or anybody I've met in my 10 year professional career to have the divine systemdesign insight it would take.
You're right that programming makes one think. I claim that the thinking you do when doing highrisk tracerbullets prototyping is much more rewarding than the thinking you do when toying around with diagrams in Rational Rose.
Hey, with all due respect, that kind software development died along with the dinosaurs. It got waterfall written all over it.
Design the user interface, and write that down, in detail.
How about drawing a quick sketch, hack together a quick prototype, realising that in just a week you'll have a much better idea of the system you're writing.
Do a high-level design of the whole system - what are the objects, what are their responsibilities, and how to they communicate?
How about skipping that part entirely, realising that you're not going to get the architecture right upfront anyway. The architecture is going to evolve through a number of refactorings, not through some superhuman designprocess.
For each class, do a detailed design. How does it carry out its responsibilities?
How about realising that would be a complete waste of time, as you'll once again be much smarter after just week of codewriting.
Here's some
Yak! I get sick when I read articles like that: "December, Forbes asked if investing in a college education was a smart way to spend time investing in a career.".
I sure hope that's not an important parameter when people considers to take a degree or not. Even within the field of CS, with all it's applicability for the industry, there are vast amounts of theory, which is a joy to learn just for the sake of it. I study CS because I like it, not as a money investment. Fortunately most of my fellow CS students seems to feel the same way. In fact it's my expirience, that CS students takes greater interest in their study in general, than say law- students(where many really seems to be in it for the money).
So in my opinion; take a CS degree if you like CS for the sake of science. I'm sure both you and the university are better of that way.
First I don't agree with your points about the IDE. Anyway that might be because I've spend years using the VC++ IDE and the transition was quite easy. IMO the VJ++ IDE is the best (almost-java) IDE if you don't do AWT/SWING/Beans stuff.
Anyway I wanted to comment about your AWT-support request. I *really* don't get why so many people still are loyal to Sun concerning their crappy GUI toolkits. As even Sun agrees that the old AWT toolkit was a bad joke, we're really only considering Swing here - and now look what Sun delivered! Yet another slow/flickering/redraw-problem-infested toy API! What's wrong with that company? It can't be that hard to write a GUI lib that would at least perform as good as Microsoft's(since when has Microsoft been known for writing fast code?). So once again Sun has left us with an GUI that neither looks nor performs as good as the native GUI on any platform(that I know of). Yep Sun is really doing their best to keep Java away from the desktop, while Microsoft is laughing at every new this-time-we-really-got-it-right JDK release.
A book which doesn't mention alternatives to entitybeans and raw sql sounds quite outdated.
The story of cmp/ejb is really the tale of the emperor's new clothes. Three years ago any critique voiced against this new wonder tech. was labeled as uneducated drivel. But the truth was that anyone(ok not you) forced to work in this setting, was demonstrating terrible productivity.
As anyone reading theserverside.com will acknowledge, the emperor has now officially been declared naked.
Now it's time for the trial. Let's have a book examining how and why so many clever and bright people could be fooled so badly.
Let's begin from the top. Code is emotional. You don't throw away code. You rewrite it, you re-encapsulate it, you tweak it. But you never throw away perfectly working code. It's your baby, damnit, and you're proud of it.
In my professional career, I'm proud of my code if it satisfies the needs of the customer. As for 'throwing away' and 'rewriting' code I see but little difference.
Wrong. Coding is not about programming. It is about solving a specific problem. Unless you understand the problem before you start coding, you are going to solve a different one.
And this is where we disagree. I claim it is highly unlikely that you understand the problem upfront. We're not talking about implementing a textbook algorithm but rather a large complex system. Sure do spend the afternoon with your coworkers discussing the overall design. Agree on some tracerbullets and high risk areas and get going.
The statement "you'll be much smarter after just [one] week of codewriting" smells of elitism and being so out of touch that I don't know where to begin. Yes, you will know more about your product. You know why? Because YOU THINK ABOUT THE DESIGN as you code!
I don't know where you get elitism from? My point of view is quite the opposite. Yes I strongly doubt that the guy asking for advice on writing this 3d-system has the skill to do an upfront analysis and design of his system. But nor would I trust myself or anybody I've met in my 10 year professional career to have the divine systemdesign insight it would take.
You're right that programming makes one think. I claim that the thinking you do when doing highrisk tracerbullets prototyping is much more rewarding than the thinking you do when toying around with diagrams in Rational Rose.
Hey, with all due respect, that kind software development died along with the dinosaurs. It got waterfall written all over it.
Design the user interface, and write that down, in detail.
How about drawing a quick sketch, hack together a quick prototype, realising that in just a week you'll have a much better idea of the system you're writing.
Do a high-level design of the whole system - what are the objects, what are their responsibilities, and how to they communicate?
How about skipping that part entirely, realising that you're not going to get the architecture right upfront anyway. The architecture is going to evolve through a number of refactorings, not through some superhuman designprocess.
For each class, do a detailed design. How does it carry out its responsibilities?
How about realising that would be a complete waste of time, as you'll once again be much smarter after just week of codewriting. Here's some
Yak! I get sick when I read articles like that:
"December, Forbes asked if investing in a college education was a smart way to spend time investing in a career.".
I sure hope that's not an important parameter when people considers to take a degree or not. Even within the field of CS, with all it's applicability for the industry, there are vast amounts of theory, which is a joy to learn just for the sake of it. I study CS because I like it, not as a money investment. Fortunately most of my fellow CS students seems to feel the same way. In fact it's my expirience, that CS students takes greater interest in their study in general, than say law- students(where many really seems to be in it for the money).
So in my opinion; take a CS degree if you like CS for the sake of science. I'm sure both you and the university are better of that way.
First I don't agree with your points about the IDE. Anyway that might be because I've spend years using the VC++ IDE and the transition was quite easy. IMO the VJ++ IDE is the best (almost-java) IDE if you don't do AWT/SWING/Beans stuff.
Anyway I wanted to comment about your AWT-support request. I *really* don't get why so many people
still are loyal to Sun concerning their crappy GUI toolkits. As even Sun agrees that the old AWT toolkit was a bad joke, we're really only considering Swing here - and now look what Sun delivered! Yet another slow/flickering/redraw-problem-infested toy API! What's wrong with that company? It can't be that hard to write a GUI lib that would at least perform as good as Microsoft's(since when has Microsoft been known for writing fast code?). So once again Sun has left us with an GUI that neither looks nor performs as good as the native GUI on any platform(that I know of). Yep Sun is really doing their best to keep Java away from the desktop, while Microsoft is laughing at every new this-time-we-really-got-it-right JDK release.