Java or C#? - Page 2
Blogs > pQylling |
joban
179 Posts
| ||
Gak2
Canada418 Posts
On July 04 2011 09:54 joban wrote: Go with this: http://en.wikipedia.org/wiki/LOLCODE oh god that's amazing lool | ||
eight.BiT
United States240 Posts
On July 04 2011 09:54 joban wrote: Go with this: http://en.wikipedia.org/wiki/LOLCODE Pure win. I can't believe I decided to start with c++ when I could have been using this all along. | ||
InvalidID
United States1050 Posts
Once you are used to using these high level languages, it will seem almost painful and silly to use C++. In terms of performance, you do get some advantage out of well written C++, but in the vast majority of cases the performance difference is not a huge concern(the difference is not orders of magnitude in most cases). http://reverseblade.blogspot.com/2009/02/c-versus-c-versus-java-performance.html Shows the benchmarks. Basically over a broad variety of performance benchmarks, on Windows, C++ was about 15% faster then C#, and C# was about 15% faster then Java. The biggest advantage of C# versus Java is Visual Studio. It is by far the best IDE out there. It is just incredibly simple to make a quick program or web-app with a simple GUI. The auto-complete feature is incredible: it fills in the blanks as you navigate through class libraries, with a contextual help menu, eliminating the need to memorize a ton of apis. The forms editor structures a template for a GUI app for you, and automatically does all the setup. You can't use this for all applications, but for a lot of simple script-type applications, where you want just simple text boxes and other standard controls, its as easy as drag and drop, then you just fill in the blanks for the various event functions it automatically sets up for you. | ||
Aetherial
Australia917 Posts
On July 04 2011 09:54 joban wrote: Go with this: http://en.wikipedia.org/wiki/LOLCODE Now that is pure gold, so funny! | ||
vek
Australia936 Posts
On July 04 2011 09:01 xarthaz wrote: java is pretty bad for writing client programs for windows - no win32 support is bad. so yeah, C# is the way to go, hands down. True but client side programs (in a commercial sense) are pretty much dead. Almost everything is web these days.The last 4-5 clients I've worked with all use Java as the base of their web applications/servers. Also java supports 32 and 64 bit just fine.. not really sure what you are on about. I think C# is a cool language but everything it can do Java can do better. Java has more open source 3rd party libraries to choose from and much better online resources. It's also cross platform which gives a huge amount of flexibility. Client changes their mind on the operating system they are going to use for their servers? No problem. With C# you are screwed. The only time I use C# is when I'm bored and want to mess around with XNA on my Xbox in my spare time. I never use it for work. | ||
InvalidID
United States1050 Posts
On July 04 2011 12:04 vek wrote: True but client side programs (in a commercial sense) are pretty much dead. Almost everything is web these days.The last 4-5 clients I've worked with all use Java as the base of their web applications/servers. Also java supports 32 and 64 bit just fine.. not really sure what you are on about. I think C# is a cool language but everything it can do Java can do better. Java has more open source 3rd party libraries to choose from and much better online resources. It's also cross platform which gives a huge amount of flexibility. Client changes their mind on the operating system they are going to use for their servers? No problem. With C# you are screwed. The only time I use C# is when I'm bored and want to mess around with XNA on my Xbox in my spare time. I never use it for work. C# does a decent job for web apps. It does not have the base built up that Java does yet, but many commercial deployments use it. A big advantage of it is that it has libraries that integrate really nicely into MS-SQL, which in turn integrates well into Windows Domain Services, and IIS which is what most large non web sphere companies are using, especially for intranet. As far as big software sphere companies that are on .net: Blizzard strikes out as the first example to come to mind, all their web pages have the aspx extension. | ||
bluetrolls
United States139 Posts
| ||
Marou
Germany1371 Posts
On July 04 2011 12:09 InvalidID wrote: + Show Spoiler + On July 04 2011 12:04 vek wrote: True but client side programs (in a commercial sense) are pretty much dead. Almost everything is web these days.The last 4-5 clients I've worked with all use Java as the base of their web applications/servers. Also java supports 32 and 64 bit just fine.. not really sure what you are on about. I think C# is a cool language but everything it can do Java can do better. Java has more open source 3rd party libraries to choose from and much better online resources. It's also cross platform which gives a huge amount of flexibility. Client changes their mind on the operating system they are going to use for their servers? No problem. With C# you are screwed. The only time I use C# is when I'm bored and want to mess around with XNA on my Xbox in my spare time. I never use it for work. C# does a decent job for web apps. It does not have the base built up that Java does yet, but many commercial deployments use it. A big advantage of it is that it integrates really nicely into MS-SQL, which in turn integrates well into Windows Domain Services, and IIS which is what most large non web sphere companies are using, especially for intranet. As far as big software sphere companies that are on .net: Blizzard strikes out as the first example to come to mind, all their web pages have the aspx extension. I am a webdeveloper and using C# is a treat | ||
InvalidID
United States1050 Posts
On July 04 2011 12:11 Marou wrote: That's a hard choice, but in the end if you are looking into getting in OO, what you will learn in a language will stay valid in the other. It's more about what language feets better to your needs, depending on what you are aiming to develop but since you can do pretty much the same things with c# and java... I am a webdeveloper and using C# is a treat Yes, but outside of the web, anything but C#, or *shutter* VB is abnormal. I write software to control hardware manufacturing and test processes in the aerospace and defense industry, and I have rarely seen Java, or literally anything but MS-SQL/Oracle, tied to a mixture of legacy VB and new .net/LabView apps, used anywhere. I understand this is pretty typical for line of business software. The web based reporting tools are also almost exclusively .net based as it has good libraries for integrating into the Windows servers that most non web companies use for line of business. On the note of LabView: it is an incredibly interesting language, mainly because it is so different then pretty-much every other language out there. It is graphical, not text-based, and operations occur by default in parallel, unless they need to be done in series, or you specify otherwise. If implemented on multi-core chip, the run-time will automatically distribute it, and if implemented on an FPGA, the run time will actually implement the operations in parallel. It is truly a mindfuck of a language to learn, when coming from serial, text based programming, but you can do some really elegant things with it, especially when writing device drivers/machine controllers. If it was not mind bogglingly slow to run, I would recommend learning it. | ||
saltywet
Hong Kong1316 Posts
On July 04 2011 12:11 Marou wrote: That's a hard choice, but in the end if you are looking into getting in OO, what you will learn in a language will stay valid in the other. It's more about what language feets better to your needs, depending on what you are aiming to develop but since you can do pretty much the same things with c# and java... I am a webdeveloper and using C# is a treat how do u use C to develop a web? just out of curiosity that i learned C as a university course but never did anything very useful with it outside of running simple calculation tasks | ||
InvalidID
United States1050 Posts
On July 04 2011 12:23 saltywet wrote: how do u use C to develop a web? just out of curiosity that i learned C as a university course but never did anything very useful with it outside of running simple calculation tasks C# not C, different languages . Though you could use C to develop a web application, it would be quite the silly and uphill battle, basically you would write the program to generate the full HTML of the webpage, and then configure the web-server to appropriately point to the C application and provide the proper input parameters, using something called CGI. | ||
Z3kk
4099 Posts
| ||
joban
179 Posts
On July 04 2011 11:48 InvalidID wrote: Neither C# nor Java are scripting languages, but they both can be used in a similar fashion: making quick, dirty programs. There is absolutely no need for pointers in modern high level, managed, languages: delegates serve the role of function pointers, and references do otherwise. This is a good thing, in the sort of cases where these languages are used, development time is more expensive then processor time, and you don't have to worry about memory management, the run-time does it all for you. This makes it very easy to write stable code. Once you are used to using these high level languages, it will seem almost painful and silly to use C++. In terms of performance, you do get some advantage out of well written C++, but in the vast majority of cases the performance difference is not a huge concern(the difference is not orders of magnitude in most cases). http://reverseblade.blogspot.com/2009/02/c-versus-c-versus-java-performance.html Shows the benchmarks. Basically over a broad variety of performance benchmarks, on Windows, C++ was about 15% faster then C#, and C# was about 15% faster then Java. The biggest advantage of C# versus Java is Visual Studio. It is by far the best IDE out there. It is just incredibly simple to make a quick program or web-app with a simple GUI. The auto-complete feature is incredible: it fills in the blanks as you navigate through class libraries, with a contextual help menu, eliminating the need to memorize a ton of apis. The forms editor structures a template for a GUI app for you, and automatically does all the setup. You can't use this for all applications, but for a lot of simple script-type applications, where you want just simple text boxes and other standard controls, its as easy as drag and drop, then you just fill in the blanks for the various event functions it automatically sets up for you. I've never used Visual Studio; but I'm curious to hear more about its qualities as an IDE. Don't you think ide's/gui's generally slow you down comparatively to command line and vi? I totally agree with you that higher level languages like Python are generally a much nicer way to dive into programming, but I still think some C knowledge will benefit the intellectually curious who want to know about the processes underlying programming. | ||
obesechicken13
United States10467 Posts
On July 04 2011 13:20 joban wrote: I've never used Visual Studio; but I'm curious to hear more about its qualities as an IDE. Don't you think ide's/gui's generally slow you down comparatively to command line and vi? I totally agree with you that higher level languages like Python are generally a much nicer way to dive into programming, but I still think some C knowledge will benefit the intellectually curious who want to know about the processes underlying programming. Only when the ide's don't work as intended. So yes... always. | ||
InvalidID
United States1050 Posts
On July 04 2011 13:27 obesechicken13 wrote: Only when the ide's don't work as intended. So yes... always. You obviously work in very different areas of software development then me. The IDE form editor features are significant time savers, for simple gui apps, but you may trade some level of control(though you don't have to give it that control, you can use VS as basically VI with contextual help, and debug integration, if you so choose). You basically can use a graphical editor to design a "form" which is basically a window, or a web page depending on if you are using windows forms or ASP+. You can then graphically assign assorted events to functions, and voila, you have the shell of a UI. It takes about 5 minutes to get a basic windows app setup, far less then manually coding all the controls in, and its visual, so you don't have to twiddle around recompiling a million times to get a simple UI to look the way you want it to. Again, and most importantly, you don't have to use the forms editor if you don't think it gives you the flexibility you want for your app, you can use it just like you use VI/command line with whatever additional features you desire. When you get into more complex apps, then maybe the forms editor loses its advantage, as you traded some level of control away to have a skeleton UI laid out for you. I have yet to see it pose significant problems, as you can over-ride pretty much anything the IDE does manually. Contextual help is probably the killer app of VS though. Basically, it provides a popup menu of the MSDN library documentation. For example, if I could not remember the correct function to split a string, typing string. would pop up all the functions under the string class for you to select from(though you can just ignore it and type if you know what you want, its basically like the autocomplete feature of google). It automatically generates the same for any other library you have included. It is implemented very elegantly, and once you get used to it, it is a headache to use anything else, and constantly have to look things up online. The debug features are also very well implemented, and it seems to save a lot of time. At any given break-point or error, or even run-time point, when you are running your app in debug mode, you can see the values of all variables in the memory of your app. You can do the same with the command line but it is far less elegantly implemented. VS is probably the main reason that Microsoft is so dominant in the enterprise: it is just an enormous time saver for writing the kind of apps we need to write in the enterprise. These apps don't need super fancy UI functionality, they need stability, simple text boxes/buttons, graphical displays simple UI logic, and low development costs. I am a big supporter of open source, but I have yet to see an open source offering with comparable functionality(though Eclipse is getting better). | ||
vek
Australia936 Posts
On July 04 2011 12:09 InvalidID wrote: C# does a decent job for web apps. It does not have the base built up that Java does yet, but many commercial deployments use it. A big advantage of it is that it has libraries that integrate really nicely into MS-SQL, which in turn integrates well into Windows Domain Services, and IIS which is what most large non web sphere companies are using, especially for intranet. As far as big software sphere companies that are on .net: Blizzard strikes out as the first example to come to mind, all their web pages have the aspx extension. Yeah it does a decent job. The thing is I haven't seen very many people use it in the real world. Maybe it's just because Australian businesses are less "Microsoft washed" than in the US. A lot use linux as the OS of choice when it comes to application servers. This is especially the case as more people move things to the Amazon cloud/similar services. Windows just isn't worth the cost or hassle any more. That said Windows (with cygwin!) is my OS of choice for development so don't think of me as a Windows or Microsoft hater. All I'm trying to do is let people know what kind of technology real businesses use from my own personal observation. | ||
InvalidID
United States1050 Posts
On July 04 2011 14:22 vek wrote: Yeah it does a decent job. The thing is I haven't seen very many people use it in the real world. Maybe it's just because Australian businesses are less "Microsoft washed" than in the US. A lot use linux as the OS of choice when it comes to application servers. This is especially the case as more people move things to the Amazon cloud/similar services. Windows just isn't worth the cost or hassle any more. That said Windows (with cygwin!) is my OS of choice for development so don't think of me as a Windows or Microsoft hater. All I'm trying to do is let people know what kind of technology real businesses use from my own personal observation. Sure, different industries use different things that are appropriate for their application . Linux and Java have their advantages, but my area of industry(defense and aerospace manufacturing) is pretty-much the polar opposite where pretty-much everything is Microsoft oriented, with very little Linux usage outside of things like SANs or embedded devices, with specific Unix variants used on a lot of the field devices we are manufacturing. I think it has to do with inertia more then anything else, it is fricking expensive to replace everything. Of course being in the defense/aerospace industry cloud services are not an option, the computers generally cannot simultaneously be physically on the internet and the intranet, for obvious reasons. | ||
joban
179 Posts
On July 04 2011 13:49 InvalidID wrote: You obviously work in very different areas of software development then me. The IDE form editor features are significant time savers, for simple gui apps, but you may trade some level of control(though you don't have to give it that control, you can use VS as basically VI with contextual help, and debug integration, if you so choose). You basically can use a graphical editor to design a "form" which is basically a window, or a web page depending on if you are using windows forms or ASP+. You can then graphically assign assorted events to functions, and voila, you have the shell of a UI. It takes about 5 minutes to get a basic windows app setup, far less then manually coding all the controls in, and its visual, so you don't have to twiddle around recompiling a million times to get a simple UI to look the way you want it to. Again, and most importantly, you don't have to use the forms editor if you don't think it gives you the flexibility you want for your app, you can use it just like you use VI/command line with whatever additional features you desire. When you get into more complex apps, then maybe the forms editor loses its advantage, as you traded some level of control away to have a skeleton UI laid out for you. I have yet to see it pose significant problems, as you can over-ride pretty much anything the IDE does manually. Contextual help is probably the killer app of VS though. Basically, it provides a popup menu of the MSDN library documentation. For example, if I could not remember the correct function to split a string, typing string. would pop up all the functions under the string class for you to select from(though you can just ignore it and type if you know what you want, its basically like the autocomplete feature of google). It automatically generates the same for any other library you have included. It is implemented very elegantly, and once you get used to it, it is a headache to use anything else, and constantly have to look things up online. The debug features are also very well implemented, and it seems to save a lot of time. At any given break-point or error, or even run-time point, when you are running your app in debug mode, you can see the values of all variables in the memory of your app. You can do the same with the command line but it is far less elegantly implemented. VS is probably the main reason that Microsoft is so dominant in the enterprise: it is just an enormous time saver for writing the kind of apps we need to write in the enterprise. These apps don't need super fancy UI functionality, they need stability, simple text boxes/buttons, graphical displays simple UI logic, and low development costs. I am a big supporter of open source, but I have yet to see an open source offering with comparable functionality(though Eclipse is getting better). Thank you for this, that was actually really informative. I used to fuck with Textmate, but when I switched to terminal (yes, I use a mac. you'd be surprised at how dominant the mac platform is in silicon valley among consumer internet companies- I know I was) I've haven't looked back- so I don't even know what most IDE's can do. | ||
vek
Australia936 Posts
On July 04 2011 14:35 InvalidID wrote: Sure, different industries use different things that are appropriate for their application . Linux and Java have their advantages, but my area of industry(defense and aerospace manufacturing) is pretty-much the polar opposite where pretty-much everything is Microsoft oriented, with very little Linux usage outside of things like SANs or embedded devices, with specific Unix variants used on a lot of the field devices we are manufacturing. I think it has to do with inertia more then anything else, it is fricking expensive to replace everything. Of course being in the defense/aerospace industry cloud services are not an option, a computer cannot simultaneously be physically on the internet and the intranet, for obvious reasons. Haha yeah that's fair enough. As a comparison though, from what I've heard from friends who have worked there, the ADF uses Filenet fairly heavily. Most of their custom components/applications are Java based running in Websphere/Tomcat. The only real horror story I have was an old VB 4.0 application a bank was determined to hang on to. It was so buggy and had the worst UI ever. They honestly spent more time and money keeping that thing going than they would have just making it again. Ah good times. | ||
| ||