This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I been a SA for a long time. I'm getting bored with it. I'm thinking of taking up developing. It seems more creative. I am think about taking up Java. One of my peers says java is going down and I should take up C#. The company I work for uses both. Which one will be easier to learn? Which one is more powerful?
Arnie, after being in the sytems development area for more than 20 years, designing and writing systems primarily on mainframes using the ever irrepressable COBOL it became apparent that I needed a change of environment. I was getting a bit stale. After looking into many forums I decided JAVA looked interesting. Different, hesitant to say better, and has given me a lift in leaarning a few new concepts. Make your own decision based on what you can find out don't take a friend's (probably a nice person and a C# programmer in this case) preferences as your own until you have checked things out a bit. I found many of the forums tend to diverge into personal opinion rather than hard fact. That is probably because that is what it comes down to in the end. for a start try. http://searchvb.techtarget.com/tip/1,289483,sid8_gci880182,00.html?FromTaxonomy=%2Fpr%2F4f1 heers, Gary Down.
Having used both, I would have to quote another JavaRancher (I do not recall the user, or the thread, so please, if its you, speak up, oh, and I'm completely paraphrasing): A software engineer asking which language to learn is like a carpenter asking if its better to learn how to use a hammer or a saw. Java and C# (and C, and Assembler, and Visual Basic, and even COBOL , etc, etc) have uses in different ways. Writing firmware for a microcontoller? Probably gonna have to go with Assembler, or maybe C or some other language that gives you low-level access. Need an app that will work across most known PCs with no porting? Java's probably yer best bet. Writing something that needs quick and easy access to Microsoft's SDKs, DLLs, etc? C# or Visual Basic come to mind. Need quick string parsing? Perl or maybe Python are both wonderful in that regard, whereas all the above mentioned languages are not nearly as quick. However, that being said, it is my opinion that Java will serve you better in learning the basics of OO programming. (In fact, you'll probably also pick up some good structural programming as well). But thats an opinion, not really based on anything scientific. The more languages you know, the better. PS - what's an SA? [ May 12, 2004: Message edited by: Jason Fox ]
I haven't a clue which language will be better for your career in the short or long term. If you want to stay within your company, just ask around there. If you're going out in the world, maybe take whichever you can find the better training in.
I'll agree with the post above that - after a few years languages don't matter much. I've used a dozen or more and after a while you learn the idioms and get in the rhythm for any of them. Having an interest in improving yourself and your code is the important thing. Keep learning and growing and you can have fun and write quality products in any language they throw at you.
A few words on Java & C# ... C# has a handful of very nice syntactical sugar - little things that let you know the language designer had developers in mind. They won't change the world, but they may make you smile a couple times a day. Microsoft has a reputation for making languages and tools very easy to learn, but sometimes running out of gas when things get tricky. Java has a little more syntax to learn, a vast library to get in touch with, and makes you do more work. The payoff is flexibility to do darn near anything you can think of. Oh, and platform portability of course. See how those ideas fit your personality - maybe they'll help you choose one or the other.
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi
Where I come from, an SA is a System Administrator. SA's specify hardware configs, install and configure system software, and attack bugs that seem to involve the system software.
A Systems Analyst turns a business problem into a system spec. I haven't seen that abbreviated SA, but I haven't seen everything.
BTW, in the mainframe days, SA's were called system programmers. But that job included writing assembly language system code, understanding operating system organization and data structures, and reading and analyzing hexadecimal memory dumps. Those days went away with open source. Nowadays, it's faster and more cost effective to check for user errors and then call the vendor.