Remove
Discover breaking news from Macworld 2009
Digg your favorite stories in Upcoming or check out the most popular ones in the Apple topic.
- Gregd, on 10/12/2007, -6/+7Yes, this is really me asking this question. I'm curious and would love to benefit slightly, from people who already have experience in either platform.
- detrate, on 10/12/2007, -5/+22This proves digg needs an official forum
- theone3, on 10/12/2007, -7/+10Well if you're going to ask Digg, let's have a poll:
Digg up/down below based on your (experienced) personal preference. - theone3, on 10/12/2007, -34/+65.NET
- theone3, on 10/12/2007, -41/+48Java
- jrbrewin, on 10/12/2007, -7/+13jobserve finds
3900 jobs for +java -script -.net
4100 jobs for +.net, +asp, +c#, +vb - rompom7, on 10/12/2007, -13/+11Diggs comment system needs to allow better threading.
Java
If you start with .NET you'll get to familiar and end up being conformable and not branching out. I'm not saying don't ever use .NET, in fact I highly recommended it.. But you should start at the raw end then work your way up to the fancy stuff. - aweraw, on 10/12/2007, -13/+24I highly recommend Python: http://python.org/
(damnit, I gunna sound like a salesman here)
- In my opinion, one of the easiest programming languages around
- It's interpreted, and you can get many forms of python interpreters for all sorts of CPU architectures and specialized purposes
- Nice standard library
- Lots of quality 3rd party libraries
- best of all, in the context of this article, you can use bot the .Net and Java libraries with the right versions of python:
- jython for java: http://sourceforge.net/projects/jython
- iron python for .Net: http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython - gfolkert, on 10/12/2007, -12/+6If you are looking for a fresh framework,
http://www.djangoproject.com/
Very, easy to use. Its written in python... just go see it. READ! - senfo, on 10/12/2007, -6/+11I know where rompom7 is heading with his post. Basically, the Visual Studio IDE is so enhanced these days that it has reduced the amount of code that you have to write by a LOT more than any other IDE out there that I know of (including Eclipse). This could be both good and bad. If you don't already understand the underlying technology, Visual Studio *could* keep you from learning it.
Personally, I never liked Java as a language, period. I was a C and C++ developer when it came out and I just couldn't understand the hype. When I took Java in college, I was nothing but frustrated while working with Swing. MFC, to me, was so much more intuitive.
Hearing that C# followed a syntax similar to Java, I was reluctant to give it a try, at first. Fortunately, for me, the similarities stopped at the somewhat similar syntax. C# was amazingly well thought out and the .NET framework was unbelievably powerful right out of the box. Having a standardized library made it so I could develop portable code without having to download and thumb through a ton of libraries (as was the case with Java) to accomplish my tasks. I was almost instantly hooked. Language enhancements, such as generics, anonymous methods, etc. to the 2.0 specification of the C# language have made my decision to stick with C# a no brainer.
The downside to using Visual Studio that I previously mentioned can be circumvented by learning OOP from the ground up, which is why I personally recommend starting out with a C# book that focuses primarily on OOP concepts, rather than trying to jump right into developing software with a graphical interface. Books that focus on OOP techniques, such as abstraction, inheritance, polymorphism, etc., will take you much farther than any book that jumps right into dropping controls onto a form and binding them to a DataSource. Don't get me wrong, those books are great, too, but you need a solid foundation, first.
The book I used to learn C# is, "C# Primer Plus" (ISBN: 0672321521)
http://www.amazon.com/C-Primer-Plus-Sams/dp/0672321521/sr=8-1/qid=1161177007/ref=pd_bbs_sr_1/002-8180889-8348840?ie=UTF8
Good luck. - camix, on 10/12/2007, -6/+14Java & J2EE all the way baby!! So many avenues when it comes to web app development and deployment. Java Web Start is really a cool tool to help you deploy any application over the web. You've also got your applets, servlets, jsp's. So many ways you can do things. The new EJB 3 has improved things dramatically and has really simplified development. Then you got your awesome, and FREE, Java IDE's like NetBeans (my favorite), Eclipse and JDeveloper (great if working with Oracle). You have a great Java.net community which is a good online resource. I would especially say on an Enterprise level Java should be your choice of languages. Now I'm sure everyone here will have their one pros and cons about any language but what I recommend is try each language out and see which one you like best.
- chhuparustam, on 10/12/2007, -4/+14Gregd, keep in mind .NET's cross-platform compatibility is really a hoax. It certainly works on all platforms as long as they're Windows (by which I mean Windows Mobile etc. as well as the desktop OS'), but ROTOR is strictly a research implementation and a subset of the full set of goodies you get with the official .NET platform.
Mono is a promising project, but plagued with poor performance in many places. It's certainly not ready for production software, and also typically lags behind the .NET implementation in terms of features since there's little official interaction between Novell and Microsoft. (In other words, Microsoft adds something to .NET and the Mono guys race to add it to their implementation as well.) - int19h, on 10/12/2007, -0/+1aweraw: IronPython isn't Open Source, afaik
- bdruth, on 10/12/2007, -1/+10If you go .NET, you have basically one company that will be able to provide enterprise support: Microsoft. Neither Mono nor ROTOR are in a position to provide that. However, if you go the direction of Java, you can easily get support from a number of vendors, depending on what stack you're interested in using ... Sun (of course), IBM, JBoss/RedHat, Oracle, etc.
Consider, also, that many open-source frameworks, utilities, and tools for enterprise development (web app, mvc, database abstraction, etc.) are available for the Java stack, but not so much for .NET - you'll find that many "tools" or "add-ons" for .NET are proprietary and cost money. I admit, this is only a "sense" that I've gotten - I haven't done any empirical counting. Searching for ".net" on SourceForge yields an unscientific 2661 projects, Java yields 13441 projects. The majority of Apache sub-projects appear to be for Java, not .NET. Some popular Java frameworks have .NET equivalents, but many times the .NET equivalent has a smaller user community, in my experience.
Most of my experience is in client/server and n-tier system development, not so much desktop development. If you're looking to write a desktop app and your clients will be running Windows, I'd say .NET will likely be an easier road to go down.
If you're purely asking for academic reasons, you've only started a flame war. There's plenty of other articles out there that flame about the pros & cons of .NET v. Java. - krouskop, on 10/12/2007, -1/+2@int19h
IronPython is open source.
http://www.codeplex.com/SourceControl/ListDownloadableCommits.aspx?ProjectName=IronPython
If you don't know what you are talking about; don't talk. - int19h, on 10/12/2007, -0/+1@krouskop
I'm entitled to talk, and I did say "as far as I know". However, you're right about your first part: Ironpython is open source. - int19h, on 10/12/2007, -0/+1However #2: According to this article at Wikipedia, there seems to be more than one license for IronPython and no definite explanation of exactly how "open source" the shared-source version is: http://en.wikipedia.org/wiki/Ironpython
- skip0110, on 10/12/2007, -12/+14While Mono allows you to compile the base language on Unix, the libraries do not have a set of released standards or source code (which is propietary to MS). So UI development is limited to Windows...which is not the case in Java. Java is the better platform.
- phjr, on 10/12/2007, -3/+5It doesn't mean it's better. But it's really cross-platform. Same implementation on every platform. Mono, MS .NET and Rotor are different implementations and may not work the same, as different implementations of Java (gcj as an example).
- Diggtatorship, on 10/12/2007, -15/+11Java is better because its a universal standard. As far as .NET goes, only 2 out of the 5 or 6 computers I use daily can run it (until mono come along)
Also, with Java there's a bigger community and more resources to build and learn from.
The fact that I know Java may make me a little biased though :) - Induane, on 10/12/2007, -4/+1Actually cross platform gui development is not limited to windows. C# can use cross platform widget sets like GTK.
- phjr, on 10/12/2007, -1/+2But that requires presence of gtk on target machine afaik... Compare that to java's swing or awt.
- charbarred, on 10/12/2007, -8/+11It all depends what exactly you're trying to achieve. I'm personally a .NET developer, but have used Java a lot in the past. I think the learning curve is much steeper in Java, and can often get confusing (you gotta hand it to MS, they do make things much simpler).
If you care to comment about what it is you want to accomplish, I can offer more advice.- Gregd, on 10/12/2007, -3/+4Thx charbarred,
I'm leaning toward building web applications in asp.net. The ease with which it seems you can port a vb.net or c#.net standalone application to the web via asp.net seems like a plus....although I may be way off base.
Knowing that the learning curve for Java programming is steeper, helps a lot. - charbarred, on 10/12/2007, -4/+6I see you've gotten most of your answers below already. I'd go with .NET + c#, especially because it's really easy to start with. c# is an amazing language and will also make it easier to switch to to Java if you ever need. You can download the free IDE from:
http://msdn.microsoft.com/vstudio/express/vwd/
In fact, if it's web applications you're after, I reckon Java is the last to go for as a beginner
One point though, I don't know about java, but .net hosting will always cost you more than the other alternatives (namely PHP). I don't think it's that much of an issue.
Here are some free books:
http://www.computer-books.us/csharp_0004.php
http://www.samspublishing.com/library/library.asp?b=Net_2003_21days&rl=1 - BackOrder, on 10/12/2007, -2/+3@charbarred
SharpDevelop is also free. It's not great but yet decent and open source. It supports both VB.NET and C#.NET.
http://www.icsharpcode.net/OpenSource/SD/ - dvfreelancer, on 10/12/2007, -2/+5"I'm personally a .NET developer, but have used Java a lot in the past. "
Same here. .NET does have its down sides, but if were starting out today that's what I'd go with. There are some things to watch. I've gone to closing my connections and disposing datareader objects in code instead of relying on .NET garbage collection, what I believe to be the source of some odd memory leak issues we've had to track down.
If you can work around the vagaries, I'd suggest time to market for applications is decidedly in favor of .NET. As a business person that cost savings influences me. However, java apps...in my opinion...are more stable long term and less reliant on a single OS platform (MONO aside for the moment). So there are other factors that might skew the technology decision in favor of Java. A lot depends on the requirements of the project so a wise developer is versed in both worlds.
Snatch data object from hand, Grasshopper.
- Gregd, on 10/12/2007, -3/+4Thx charbarred,
- Phocion55, on 10/12/2007, -6/+17I don't see how you can pick one over the other.
I use both .NET and Java mainly because different projects have different technical requirments.
Knowing WHEN and HOW to effectively use .NET over Java and vice versa is the issue here.- Gregd, on 10/12/2007, -3/+3Thx Phocion55,
Can a good programmer though, effectively learn both platforms and exploit them to their full capabilities? How hard is it to maintain your technical expertise in both platforms? - geminitojanus, on 10/12/2007, -3/+15"How hard is it to maintain your technical expertise in both platforms?"
It varies based on the capabilities of the programmer. Personally, I keep technical skillsets for C/Assembly on ARM, x86, and PPC micros, API skillsets for Cocoa and Carbon on OS X and Win32's CAPI for Windows and GTK+ for Linux development. It's not that hard to keep all of these skillsets, as most of them replicate the same thing, it's just certain platforms have certain eccentricities that you need to be aware of.
.NET is good, but it's only going to help you if you're targeting Windows, and newer Windows releases at that (by "newer" I mean XP SP2). Trying to release a .NET product against Mono or any other library is foolish at this point simply because it's nowhere near as stable as .NET is for Windows, and .NET for Windows isn't exactly all that stable (as we're already seeing version 3 in only 4 years of release). However, it's very fast to develop applications for .NET, and you do get to choose your language in many cases (as the .NET virtual machine will run anything that compiles into its runtime format).
Java is good for a number of reasons. It's reasonable to expect it'll run the same on any platform (though there are caveats, they're rare and well understood). It's relatively stable if you're building against Java 2, and even Java 5 is well supported from Sun. The problem however is Java's GUI libraries are just not that great, when compared against .NET (mainly because Microsoft wanted to embrace-extend Java and when Sun actually shut that down, it became difficult to go back to Microsoft and say "hey, we need help making Java apps look native").
Another thing to note is that Java is very diverse; Java is native for Mac OS X, it's native on many Unicies, it runs in hardware on many ARM-based chips (any with "Jazelle" technology), and it has a very strong mobile market. If you plan on moving mobile with your Apps, Java's a good way to get your feet in.
In a lot of ways, it resembles the differences between OpenGL and DirectX; OpenGL is widespread and older and may differ a bit depending on where you run it, DirectX encompasses more (networking, audio playback, input APIs; analog to .NET's ability to run many different languages), and is better supported by Windows.
So really, it does depend on how you're going to be using the platform. They're two very different tools that happen to be implemented _very_ similarly. Full disclosure: I'm partially biased because in my sector of the industry, it's either Java or C, but I do not maintain skills for programming in Java (I know the language, but it's difficult for me to be very efficient in it as compared to C). - inkyblue2, on 10/12/2007, -3/+1@Phocion55: right on.
- misteral, on 10/12/2007, -1/+2@Gregd - Can a good programmer though, effectively learn both platforms and exploit them to their full capabilities?
Yes, I believe they can. A good programmer needs to know the difference between dynamic languages like ruby/python, and static languages like Java/C# etc. (.NET mearly covers the range of languages under MS's domain). A good programmer then knows what they can do with such languages, and how to apply the problem of the day to them. Java's great, it's about all I work with, but it's not best for everything. Case in point, recently my father in law approached me about building out some software to track his store's daily sales. Now, all I've used for a while is Java, been a long time since I've looked at anything .NET, but since he only uses Windows I picked up C#express, and started building his app with it.. (Yes, haters I know I could use Swing or SWT, but C# had some better native tools for this exact job)
- Gregd, on 10/12/2007, -3/+3Thx Phocion55,
- bpapa, on 10/12/2007, -4/+5If you're just starting out programming I don't think you are going to care much about the details of each platform. You should be more concerned with things like "how a while loop works" as opposed to running things cross-platform.
Learn to program with basic.- Gregd, on 10/12/2007, -2/+3Sorry for not being clearer. I have learned basic and back in the day, programmed in ye olde Fortran, so programming is not lost on me. Therefore I do care about the details of each platform. So far the learning curve for Java seems to be an issue although that may tend to put Java Programmers in high demand over .net programmers?
- collywolly, on 10/12/2007, -1/+4BASIC is a crap language. Especially as the common BASIC that you are likely to end up on these days is Visual Basic.
There are far better scripting languages than BASIC available these days. Python gets suggested lots when the which language question gets asked on simialr forums, which is why I am learning it myself. Its pretty good so far and I would reccomend it for learning above what I do know (Perl and Java, though I did do a stint of VB for a while). There is now IronPython available for .Net as well. - senfo, on 10/12/2007, -1/+1@Gregd,
You can forget almost everything you learned in Fortran because OOP is an entirely different animal. - Gregd, on 10/12/2007, -0/+1@senfo
I realize that OOP is an entirely different beast. I am merely pointing out that programming basics like variables, arrays, loops, etc., aren't lost on me.
*throwing basic and fortran out the window*
- zigamorph, on 10/12/2007, -8/+5If you want to choose, I would choose .NET/C#. There has been a huge growth in .NET as far as new features and new development. In addition the momentum as far as language, features, and job opportunities seems to be undeniably behind .NET.
- phjr, on 10/12/2007, -4/+6Huge growth? Yes. But I don't agree that .NET has huge advantage over Java in the areas you pointed. There are still many job opportunities for Java, and features... well, I wouldn't say either Java or C# has more features than other. They are different, one is better suited for one kind of use, and second for another. Programmer's taste also matters. ;-)
- zigamorph, on 10/12/2007, -6/+2Yeah I know there is still a huge market for Java, but for a new guy wondering what to jump in to it is .NET all the way. I also haven't been very satisfied with the generics implimentation in Java. I think .NET has a much stronger model.
- phjr, on 10/12/2007, -2/+2Well, it's taste again. I'm quite satisfied with java's generics, didn't try .NET's.
- projecktzero, on 10/12/2007, -11/+10Unless you or your company enjoys the Micro$oft upgrade treadmill, I'd stay away from .NET.
- nkohari, on 10/12/2007, -6/+0(Why did this put this comment here? Not even directed anywhere close to this... removed...)
- nixfu, on 10/12/2007, -1/+1Its still correct.
- Detritus, on 10/12/2007, -7/+7I've been programming for 21 years: C# is the sexiest language available.
If you're starting out programming I wouldn't recommend anything else. Java has it's place, but isn't nearly as easy to use as C# with Visual Studio. Don't get me wrong though, it is still programming and you still have to learn to think in entirely new ways to make these damn machines do what you want. It's going to be a long and boring road, and often aggrivating, but C# is the best route to success for a beginner.
Visual Studio (Torrent)... $0
A few months of playing with C# and some free tutorials off Google.... Priceless.- BackOrder, on 10/12/2007, -3/+4"Visual Studio (Torrent)... $0"
You don't need to take Microsoft softwares away. SharpDevelop does a good job and open source. - Obsidian743, on 10/12/2007, -2/+2I second SharpDevelop. MonoDevelop is coming a long ways, too:
http://www.icsharpcode.net/OpenSource/SD/Default.aspx
http://www.monodevelop.com/Main_Page - biffta, on 10/12/2007, -3/+3If you have been programming 21 years I doubt very much you are in a position to declare what is sexy.
- synae, on 10/12/2007, -1/+3There's also an edition of Visual C# on MS's website that's free and legal.
- BackOrder, on 10/12/2007, -3/+4"Visual Studio (Torrent)... $0"
- airayn, on 10/12/2007, -1/+8I have used both. I perfer Java, but I mainly code in .Net / C# just becuase my company uses it. Both are good. Long term I would pick Java since its going to be around much longer (cross platform) and its more of a standard in my mind.
Its really comes down to perference at the moment. You will get zealots on either side of the coin. But Java will work on phones to pda's to pc's... and thats kewl.- boxc, on 10/12/2007, -1/+2yeah i use both and oscillate based on project needs. last year was .net (1.1 legacy project) and next year looks like java. Having spent almost a year trying to resurrect a heavily loaded and horribly written .net project, (i like .net before i continue!), i'd like to stress that a lot of it is in the approach, good planning and design (which this project seemed to have) and then ongoing review, project management (warding off scope creep which can wreck havok on any design) and testing. speaking of the zealots on either side.. it seems like the type of diggers who would digg down a comment like the one above just because it expresses a preference for a language they don't like.. it's a discussion people..
- juneof44, on 10/12/2007, -1/+3I'm from a Visual Basic background (11 years strong), but since I'm no longer working for companies that only understand what has risen to the top (eg. Microsoft), I have come to love the simplicity of Ruby on Rails.
Porting a desktop application from VB .NET to ASP .NET is very simple. However, if you're looking to create a decent web application, you should lean towards Ruby on Rails.
Ruby is a great object-orientated language and Rails makes handling the databases so freakin' easy! Instead of having to write a VB class per table with a different sub or method for each create, read, update or delete, Rails does it for you as long as you stick to the naming conventions.
And being able to get out of writing stored procs and classes is enough to make me happy!- gharding, on 10/12/2007, -5/+3RoR is a fad. Yeah, it's neat and fun to play with until you need a high-performance and complex webapp. Ruby is slower than PHP.
As for the actual question, I'd pick Java. It has such a huge community and there are so many libraries made for it. It has a powerful open-source community (Apache Group, especially!) I'm not sure which is in higher demand, but senior Java web app developers can really pull in the dough. - wares, on 10/12/2007, -2/+2"Ruby is slower than PHP."
And that is PHP without the accelerator! - mercan01, on 10/12/2007, -2/+2I disagree that Ruby on Rails is a fad, although I certainly don't think it fits for all situations. I think, like so many other technologies, it's still carving out it's place in the market.
Ruby is getting faster all the time, and it's libraries are maturing. Having said all that, I can certainly see many instances where it's not the best fit, or even a good fit, for a project.
If I had to pick a language to learn, though, I think I'd have to say Java. There's so much Open Source code out there, and the availability of code to read and learn from I think is a major selling point for a language.
- gharding, on 10/12/2007, -5/+3RoR is a fad. Yeah, it's neat and fun to play with until you need a high-performance and complex webapp. Ruby is slower than PHP.
- AaronCompNetSys, on 10/12/2007, -9/+10Ok, so I know some people might get ticked. But digg is not a forum, its a news site. Head over to Slashdot or your favorite forum for that.
- socket, on 10/12/2007, -6/+7Amen.
- lunchbox12682, on 10/12/2007, -3/+5I agree.
Plus why the hell would you choose between those languages?
Unless you're just a code monkey, you should be learning both and then whatever else you can. - Gregd, on 10/12/2007, -2/+5Thanks for telling me what Digg is to me *****. If you don't like the fact that I asked a question of diggers using one precious story slot out of millions available, then mark my question as lame and move the ***** on..
- socket, on 10/12/2007, -2/+2LAWL. Gregd is a dirty dup poster!@!# LOL!
- richieb, on 10/12/2007, -12/+4Java and .NET are the two flavors of COBOL for the 21st century. Ruby beats them both.
- socket, on 10/12/2007, -3/+2LAWL.
- Obsidian743, on 10/12/2007, -4/+2Yeah, because Ruby can be compared to Java and .NET like that. Know of anyone writing n-tier enterprise applications, CRM, ERP or OLAP software in all Ruby?
- Elohir, on 10/12/2007, -1/+3If you're just starting and are interested in both .Net and Java I'd recommend starting in C# to ease the learning curve (Java isn't hard but C# is easier, IMO) and then picking up Java whenever you feel competent. The change from C# to Java should be almost painless, I've always thought they were quite similar.
- jdkludge, on 10/12/2007, -2/+4Why not post two stories? One with the heading "Digg this for .NET" and the other with the heading "Digg this for Java". Link the first to Microsoft and the second to Sun. You can put a link to both digg stories in this comment section.
- sucresemoule, on 10/12/2007, -0/+2There should be a poll system on Digg like on Scoopeo (http://www.scoopeo.com , first digg-like in french)
example : http://www.scoopeo.com/software/openoffice-en-version-2-0-4-fr-disponible
or all polls http://www.scoopeo.com/scoop/polls_grid
- sucresemoule, on 10/12/2007, -0/+2There should be a poll system on Digg like on Scoopeo (http://www.scoopeo.com , first digg-like in french)
- netferret, on 10/12/2007, -5/+1Java is good for its portability and cross-platform compatibility. Where as .net is good for rapidly developing software and is also a lot easier to code with.
Personally .net wins my vote as most software is written for Microsoft systems and also I like an easy life. - mykel, on 10/12/2007, -2/+5python.
- EightBitHustler, on 10/12/2007, -1/+6I would go Java all the way. I'm a little biased though, I've been doing Java dev since 2000. The java community is very dynamic. You have the very corporate "enterprise" side and the light weight OSS side. I choose the OSS tools like Eclipse, SpringFramework, Hibernate, Freemarker, Groovy, JRuby, and etc . . . There are so many choices. One should think of the Java stack as more of a platform than a language. Also, on a daily basis I move code from Win2k to Win2k3 to SuSE 9 to Ubuntu without issue. Also, we run Coldfusion 7 on Apache Tomcat to support our legacy sites and have been slowly replacing parts with pure java. When JDK 6 hits the street later this year we will also see things like greater integration with PHP and other scripting languages. I think the java OSS community is alive and well, J2EE is dead... long live java!
- jayqueue, on 10/12/2007, -1/+8Honestly, if you have to choose between them, I would go with Java. While Sun does have some proprietary libraries, you will be in a better position if you avoid anything tied to a single vendor or a single platform until you really know what you're doing. That said, neither is a great place to start learning. If you're at the stage of learning basic data structures and flow control, something like python or perl would probably be a much better place to start.
- boxc, on 10/12/2007, -1/+3i think java will show a lot more potential when sun opens it up to the energy of developers like ibm and the broader community.. (.net + java user). in some ways .net and java were the best things to happen to each other
- Obsidian743, on 10/12/2007, -1/+2I feel you can learn a lot about both at the same time. To me, the major differences one needs to wrap their head around are in concurrency control. If I had to focus on one and only one I would probably go with .NET and work on strengthening Java in the future. The only reason being simply because it's less of a headache from a framework and API standpoint as well as the tools IDE available.
- hansamurai, on 10/12/2007, -1/+4I work in a pretty large corporation that employs over a thousand software engineers and makes many billions of dollars on the product I work on. This is a web application that has a huge infrastructure. Within that infrastructure, we have everything from J2EE to .NET to PL/I on the mainframe. I personally write Java code and support some of the mainframe PL/I, so I have a pretty varied job right there.
I think you could go either route, and be successful. I started out learning C++ but then when I went to school for computer science, I only took one class that used C++, everything else was Java. So it also depends when/where/if you go to school. I would spend some time and program something for each platform. Download Java 5 and C# and just sit down and spend atleast 10 hours on each language. Read tutorials, forums, everything you can, to be as knowledgable as you can be. And if you still can't decide, learn both! You'll be all the more valuable. - m0nk, on 10/12/2007, -2/+5My father is a professor of computer science at one of our state colleges in PA and the department recently switched from C++ to Java as the primary programming language taught. The reason for this is their perception of the greatest appeal for companies in the marketplace is knowledge of Java over all other languages.
In addition, I work at a company that developed a Learning Management System (online learning software) and we use Java here with an Oracle database backend. I do database programming and I can say that Java interacts nicely with Oracle. Now, I can't say anything about the other languages out there, but I can say that Java is more of an industry standard, so if you're looking to learn something to help your career I'd say go with Java. - SuperGhost, on 10/12/2007, -2/+3Gregd,
I've been using .NET and Java for years. .NET is what I currently use at work, and I'm at a govt job. Web services and AJAX is very simple to implement in ASP.NET. I won't tell you which to choose but I use the videos at www.asp.net quite often to keep up with the new stuff. If you have some programming background I recommend:
Professional ASP.NET 2.0
by Bill Evjen et al.
Wrox Press © 2006 (1290 pages)
ISBN:0764576100- boxc, on 10/12/2007, -0/+1on the topic of good .net books. the APress publisher's books.. (black cover with yellow text and swipe) i found to be really good for examples, structure and complete lack of hard sell i found in some of other .net series.
- stalky14, on 10/12/2007, -1/+9Python! 8^D
- jmcantrell, on 10/12/2007, -1/+2w00t!
- jayscot, on 10/12/2007, -1/+2Our company began with Microsoft technology in VB 5 then moved to VB 6, but recently MS has made things no easier for us to migrate to .Net than Java. They seem to give their products 6 or 7 years before abandoning them. The decision is not final yet, but we are experimenting with Java 6 and Swing to replace several large desktop apps that we provide for various manufacturing environments.
Microsoft has helped and hurt our business in many ways. It will be a difficult decision, but they seem to keep making it easier.
Take a look at netbeans.org. Their IDE is very nice, and they offer quite a bit of help in getting started with various Java frameworks. - cs96acb, on 10/12/2007, -6/+2Yawn, another this language vs. this other language. It's not the language which is better it is the programmer using the language.
- BackOrder, on 10/12/2007, -1/+1@Gregd
Your submission hasn't really stated your objectives and needs. You should have got a first post ready with deeper explanation. If you have interest in cross-platform, then you should get on Java. .NET may be designed in this respect but it's far from being currently available. Java works on many platforms *now*.
"In other words sell me on .NET or Java..."
Great way to get inputs! We're going to set some wiring accounts and then you can wire us some money. Thanks. ;)- Gregd, on 10/12/2007, -1/+1Sorry for that. The description area doesn't really afford me the opportunity to state my objectives clearly. I did that a few comments in. Basically what attracts me to .NET is the seeming ease with which you can program a stand-alone application and port it to the internet/browser for online transactions.
One thing that turns me off to Java, that was mentioned before, was the lack of GUI Libraries. Java applications always look like Java applications. It may seem weird to you but it bothers me. I do love the Java community and the plethora of free help available for programming on the Java platform. I also like the fact that it's native to OS X. I get the impression that it's database capabilities are more closely tied to Oracle. Is that true? - debiguana, on 10/12/2007, -0/+0@gregd: re java being closely tied to oracle
Java supports a very wide array of databases. I use it in one of my projects with MySQL and PostgreSQL with great support. Oracle ties stuff to java for their products, but that is by no means the only database out there with great support. Again, though, Java/database support is another tool. Personally, I would use .NET for MS SQL development, because it has the best support.
I use both C# and java, like both, but also fluent in python/ruby/etc. -- pick the right tool for the job - learn as many languages as you can - and you'll do just fine ;)
(Hope this came out ok - I'm running on 3 hours of sleep today ;) ) - jaxzin, on 10/12/2007, -0/+2@Gregd
The Java Development Kit (JDK) includes the Java Database Connectivity API (JDBC), a generic API for accessing databases. It is not tied to any one vendor. All major database vendors have implemented drivers for JDBC.
In regards to your statement about "a lack of GUI Libraries", the JDK comes with Swing and AWT which define many GUI widgets. The Java2D API provides access to full drawing capabilities and there are many third-party libraries that build upon these for many things including charting (ex. JFreeChart) and fancier widgets (ex. JGoodies).
Native "look & feel"s are included with the JDK/JRE for every operating system so no Java application/applet needs to feel like a "Java app". There are many applications written in Java that feel like native applications. I use IntelliJ IDEA everyday and I believe you would be hard-press to tell it is Java-based solely by looking at it (the fact its a Java IDE might give it away, but not its look & feel).
- Gregd, on 10/12/2007, -1/+1Sorry for that. The description area doesn't really afford me the opportunity to state my objectives clearly. I did that a few comments in. Basically what attracts me to .NET is the seeming ease with which you can program a stand-alone application and port it to the internet/browser for online transactions.
- dpb33300, on 10/12/2007, -9/+1I started out using C++. Then switched over to VB. Then went to Java. and finally went over to .NET. having the experience to learn new languages quickly and be able to adapt is very important. I would say start out in .NET (VB.Net or C#) and check out the new languages from time to time. See what is out there. Do not limit your self just to .NET or Java. What you learn from other languages could be huge in your own professional development.
Always continue to learn.
Dave Baldwin
BaldEagle Inc
Website development
http://www.baldeagleinc.com- jmcantrell, on 10/12/2007, -1/+5Thanks for the resume. Don't call us, we'll call you.
P.S.: Do all the websites you design come from the bargain bin on templatemonster.com?
- jmcantrell, on 10/12/2007, -1/+5Thanks for the resume. Don't call us, we'll call you.
- Chewie67, on 10/12/2007, -3/+2First, good question.
Second, you're about to start (yet another) Holy War on Digg. It's like asking Coke or Pepsi? McDonalds or Burger King? PS2 or XBox? Christianity or Islam? There's no clear cut right or wrong, but lots of devout followers in both camps.
Personally -- as someone who's done both -- I prefer .NET. I was able to pick it up quickly, and be productive. It's much faster than what I was getting with Java (admittedly, a few years ago), and just seems more clean.
On the negative, you're tied to Windows. That's 90% of the market, so it's not much of a drawback, but if you want cross-platform, you need java.
On the other hand, java doesn't quite work as smoothly on all platforms as you might think. (Again, going back a couple of years), the GUI was slightly different from Mac to Windows to Linux, and it caused a headache that it really shouldn't.
Either way, you should be in decent shape...- jmcantrell, on 10/12/2007, -0/+1Coke. McDonalds. XBox. Neither.
Seriously though, you're not tied to windows, but it does make it easier. - nixfu, on 10/12/2007, -0/+2>That's 90% of the market,
Err.. what about the fact that Windows is only 1/3 of the server market...there are more computers in the world than you and your buddies PEE CEE's.
- jmcantrell, on 10/12/2007, -0/+1Coke. McDonalds. XBox. Neither.
- JamesShiell, on 10/12/2007, -2/+4C++.
Why? Lots of jobs (always nice), but more importantly it requires a lower-level knowledge than either Java or .NET. Learn to manage memory - it will pay dividends.
Plus, once you'll got a grip on C++, Java and .NET are easy and things like Python and Ruby feel absolutely spiffing. Plus, should you really need to, going back to C isn't too hard.
In the end the goal should be to always remain solution agnostic - programming languages are tools, not religions.- concept03, on 10/12/2007, -0/+1Right on, I couldn't agree more. I actually started learning to program with Perl while at a college internship as a Windows server admin. From there I worked with VBScript (I think every Windows admin has at least dabbled with VBScript).
After college I began learning C# because I was interested in it. It is very powerful, but I never had the sense that I really knew what was going on "underneath the hood".
Because of this, I started to check out C++ and my eyes were really opened. To understand C/C++, I believe, is to have a much deeper understanding of how software interacts with a computer. It *really* is important to understand memory management, and what the hell a pointer/reference is. If I had (or made) the time and patience, I'd like to take a gander at assembly, but for now I'll continue my study with C++.
Having a solid foundation in C/C++ will only increase your ability to learn and understand new languages quickly. Once you really learn how to program and deeply understand it, the language choice can be based on the best to solve the problem at hand, and not because "we already know X, so that's what we should use". - boxc, on 10/12/2007, -0/+1it's a hard slog tho.. well it seems that way in retrospective looking back at trying to learn c++ versus working with java and c#.. ahh maybe it's cause I've gone soft and i'm allowed to use an ide and not vi... so tempted to jump to gaming, so traumatised by the prospect of day in day out c++
- concept03, on 10/12/2007, -0/+1Right on, I couldn't agree more. I actually started learning to program with Perl while at a college internship as a Windows server admin. From there I worked with VBScript (I think every Windows admin has at least dabbled with VBScript).
- jbreckman, on 10/12/2007, -3/+0Switching between the two is incredibly easy (if you know one, it'll literally take a day or two to learn the other).
Therefore, pick whichever one is easiest to learn on. Personally, I like the C# IDE, intellisense, and GUI designer. They make writing code fast, easy, and clean.- jmcantrell, on 10/12/2007, -0/+4the C# IDE? are you referring to visual studio?
Listen folks, having a language preference based on the IDE is essentially the same as buying a car b/c it's a pretty color. Real programmers don't need intellisense, anyway. - jbreckman, on 10/12/2007, -0/+1When I took the job I'm at now, I didn't know C# at all, but I knew Java really well. They sat me down, and I putzed around for a day or two and was writing C# code without a problem. They are very, very, very similar.
My point wasn't that the languages don't matter. The point was that, FOR A BEGINNER, the subtlies of a language don't matter. What does a new programmer care if his hello world program will run on Linux, OS X, AND Windows? A new programmer wants to not get frustrated, and to be able to see results immediately.
Learn what is easiest to learn, while still instilling good programming values (in my opinion, C#). If you are actually good, you can switch without much difficulty later.
- jmcantrell, on 10/12/2007, -0/+4the C# IDE? are you referring to visual studio?
- general13, on 10/12/2007, -4/+9Java, hands down.
Do not support inferior products (read: MS .NET)- wares, on 10/12/2007, -2/+2Not all .Net is MS .NET. (read MONO .NET).
- phjr, on 10/12/2007, -0/+2wares: not true. It's only alternative implementation, but MS creates the specs and direction.
- wares, on 10/12/2007, -2/+2Not all .Net is MS .NET. (read MONO .NET).
- mrmorris, on 10/12/2007, -2/+1No matter what you may hear, C# is the "better" if you judge by the features and the API. It is clean, very well though out and just an alround pleasant sensation to get to know.
Java also started out that way, some 10 years ago. Then 990 classes, now counting 17.000 in the 6.0 SDK. The learning curve is steeper and it is less productive than scripting and C# for a variety of reasons.
API examples:
In Java there is no support for decoding BASE64, no data picker in the Swing API and only now (heavily inspiret by .NET) is there an all-round LayoutManager.
Language examples:
C# has delegates (function pointers), true generics, a Decimal type, operator overloading and much more. Java don't.
...the only reason for using Java seems to be either religious concerns (its popular to hate Microsoft), political concerns (its common to think Java is better because it has a comettee behind) or simply because of a legacy code base.
Starting up now learning OO? C# no doubt is the way! - jmcantrell, on 10/12/2007, -3/+1as much as I hate to say this... if you had to choose between JUST these two, go with .NET (C#). If you know C#, this can be easily translated to the Java world.. so you're essentially learning both. IMHO, this kind of a choice is equivalent to choosing beetween dog ***** and chicken *****. They both stink.
- hypoxide, on 10/12/2007, -0/+4Java seems to be more powerful and more versatile. The API is an invaluable tool. EJB's are excellent. I've written much of the code for a major paper copany's online ordering system using strictly JAVA/JSP/Oracle.
- Ghostrider1, on 10/12/2007, -2/+1You use the language or framework that best fits the job you are doing.
If I am programming for Vista, .net is the way to go. That's the best way to use WPF, WCF, WWF...
If was developing on a non-MS platform, I would go with Java or C++(it depends).
My thing is to learn all new and popular languages. That way you really can't lose.
Plus, as a programmer I just love new languages. - boatboy, on 10/12/2007, -1/+2By way of disclaimer, I'm a .NET developer. But I think I can say that for most applications .NET is superior. Java does have true cross-platform capability. Mono brings .NET closer, but is not there yet, and does not support the latest .NET 2.0 improvements. In a requirements gathering phase you should determine if your application truely needs to run on multiple OSes. Note that most web-based application back-ends don't need to run on multiple OSes- only the client-side part, which of course ASP.NET allows. If it does truely need to run on multiple OSes from the same code base, choose Java or C++.
The benchmarks are hard to interpret- MS says .NET is faster, SUN says Java is. Personally, the only times I've had performance issues it's been my own fault- undisposed connections, etc. Use FxCop and NUnit (or Team Services) to mitigate against these.
Where .NET excels is the well organized framework. Thousands of very complex tasks are abstracted to a few lines of code. In the case of ASP.NET 2.0, this is done in such a way that in many cases you can still customize the behavior if needed (see ASP.NET 2.0 Provider Model and CSS Control Adapters). Another good example is the Microsoft AJAX framework (formerly Atlas). MS has put a good deal of effort into ensuring cross-browser compatibility and graceful degradation. By simply dragging a control to the page, you can get advanced javascript/dhtml behavior, callbacks, etc.
The tools are also top-of the line. I've done some in Eclipse, but really VS 2005 is just all around better. Built in XHTML 1.1 (or less) checking, and 508 accessibility checking, refactoring, etc. The point about it "rotting the brain" is well taken, but in most cases, I've been able to determine what the tool is doing for me and why it's better than what I would have done. Still, if you really prefer Eclipse (or vi or notepad)- use it. At the end of the day, these are just text files! - rzurad, on 10/12/2007, -0/+2I was initially taught Java in school and migrated over to .NET because of a job, and I now find myself preferring .NET over java. It really depends on what your project needs. If its a windows based application, then .NET for sure, but if portability and versatility is your goal, then java.
It doesn't really matter either way. If you can program in one, you can easily migrate to the other. Hell, with J#, its even easier to port between the two (even though I would never actually write in J#. I just use it to get libraries from Java into .NET and reference them in C#). - int19h, on 10/12/2007, -1/+1How about both: Java (IKVM) on .NET (with Mono)?
- vramdal, on 10/12/2007, -2/+5Java has a more academic audience, whereas .net developers tend to be more like script-kiddies (ok, bury me).
- Rosco, on 10/12/2007, -2/+2And you're saying the ATI driver development team are script-kiddies? You, are a dumb ass.
- nixfu, on 10/12/2007, -5/+5>Given that .NET appears to be cross platform
BZZZZZZZZZZZZZZZZZZZZZZZZZZT.
ITS NOT CROSS PLATFORM UNTIL MICROSOFT SUPPORTS IT.
MICROSOFT HAS ***ZERO*** CLAIM on .NET BEING CROSS-PLATFORM.
/overandout- zigamorph, on 10/12/2007, -2/+2Actually you are wrong since C#/IL/Basic framework is ECMA/ISO standards they don't need to support it. So
BZZZZZZZZZZZZZZZZZZZZZZZZZZT
You are wrong, You are wrong, You are wrong.
- zigamorph, on 10/12/2007, -2/+2Actually you are wrong since C#/IL/Basic framework is ECMA/ISO standards they don't need to support it. So
- Gregd, on 10/12/2007, -0/+2Wow, so many good and well thought-out comments! I'm extremely happy that a lot of you took the time to post your thoughts and comments. My intention certainly wasn't to incite a flame war, but to get honest opinions and so far, that appears to be what I'm getting!
Kudos to you all and thank you!!!!! - digileet, on 10/12/2007, -1/+0I don't understand what everyone is saying. HALP!
What happened here? I simply can't understand all these languages. Can someone tell me what the fuzz is all about?
Yes. I'm serious. - rocketdonkie, on 10/12/2007, -1/+3Java is much easier to search for on a search engine. Google and others had to create special hacks to index the # in C#, and that doesn't help the site searches of the world (try searching for c# on sourceforge).
So I say one point for Java in search engine optimized naming. Minus a million points for C#. - sucresemoule, on 10/12/2007, -0/+5My advise is that if it is for a web application, stay away from MS. Try PHP, Python, RoR or Java. Just look around , all successful companies use opensource products (mainly php and python)
- Anomaly07, on 10/12/2007, -1/+2Most definitely java. Java programs can generally be used on Linux, Mac, Windows, and many other operating systems. Most computers have Java Virtual Machine on them so compatibility really isn't an issue. .Net is kinda nice too, but you will not have this kind of flexibility. One advantage of .Net is that you can have things compiled instead of interpretted (Although some languages in .Net are interpretted - I believe C# is compiled). Java runs on top of the virtual machine, so I would say for large projects you may want to go with .Net. My favorite is still java. With the abundance of things you can find on the web and the built in objects really make java the elite. So my answer? JAVA!
- krouskop, on 10/12/2007, -0/+2You don't know what you are talking about. Both Java and .NET languages get compiled down to byte codes which are interpret ted by a run time. And virtual machines are generally available on all major operating systems for both Java and the CLI (".NET").
- Anders, on 10/12/2007, -0/+1I am a .NET developer (VB.NET in particular)
Not that this really counts but I also do web programming with PHP and Javascript. - nofrak1, on 10/12/2007, -0/+2I've used both, and usually found them both adequate for what I needed them for, but now that I run Linux, I've got a bit of a bias against .NET
- sfitz, on 10/12/2007, -1/+3Sorry but no .Net is not cross platform. Just like activescript is not cross browser. I know Mono this, and Rotor that, however 1 lawsuite and you have lost your entire investment.
Now the other argument is you can get the source to Java, and find/fix bugs in the vm. Can you do that with .Net...didn't think so. Since the Mono/Rotor developers don't have access to the source either you can not be sure that everything behaves or is supported the same crossplatform. Java Guaranteed. (That is to say it will work the same on all platforms when programmed correctly, but this does not guarantee it will work incorrectly on all platforms. )
Java is more secure by design, and provides ways to make things simple. Want to use or develop any IDE, then it's java. Want to use MS Studio only, then use .Net, toolwise studio allows marginal programmer to get things done. Java is not always so forgiving, however it does not have the complexity that .Net has. more Complexity != more powerful. Take a page from the RISC, CISC cpu designs.
If you want good support, and a language that will not leave you out in the cold, then Java. Look at the abandonment of software by Sun and MS. MS has a much higher death rate amoung languages, and tools.
Well there is no convencing the language zealot, I'm firmly in Java.- krouskop, on 10/12/2007, -1/+2@sfitz
"however 1 lawsuite and you have lost your entire investment."
You don't know what you are talking about.
A better analogy would be between .NET and "ECMAScript"; the entire CLI is an ECMA Spec: http://www.ecma-international.org/publications/standards/Ecma-335.htm
There is no possibility that there could be some lawsuit to close down Mono, etc. They are implementing a publicly available spec.
- krouskop, on 10/12/2007, -1/+2@sfitz
- krouskop, on 10/12/2007, -0/+1The differences between Java and .NET are growing smaller due to some great open source projects:
Jacil: .NET -> Java
IKVM: Java -> .NET
http://www.digg.com/programming/JaCIL_A_CLI_to_JVM_Compiler
http://www.ikvm.net/ - Dotnetsky, on 10/12/2007, -0/+1I do almost all .NET, but the lines have gotten blurred a lot in the last couple of years. Lots of good JAVA stuff has been ported to .NET, and there's a lot of new interoperability frameworks that have come into the picture. The job numbers are not realistic as a measure of a programming platforms acceptance or success in the marketplace. Bottom line? Learn everthing you can, whatever floats your boat. Avoid the flame wars and stick to facts.
-
Show 51 - 53 of 53 discussions



What is Digg?
Check out the new & improved