Quantcast

Maximum PC

It is currently Wed Sep 17, 2014 2:29 am

All times are UTC - 8 hours




Post new topic Reply to topic  [ 28 posts ]  Go to page 1, 2  Next

What is your favorite Programming Language?
Poll ended at Fri Dec 31, 2004 1:05 pm
C/C++ 43%  43%  [ 3 ]
C# 0%  0%  [ 0 ]
Java 29%  29%  [ 2 ]
VB 0%  0%  [ 0 ]
PHP 0%  0%  [ 0 ]
LISP 0%  0%  [ 0 ]
LISP 0%  0%  [ 0 ]
Perl 14%  14%  [ 1 ]
Python 14%  14%  [ 1 ]
Total votes : 7
Author Message
 Post subject: C# Anyone?
PostPosted: Mon Dec 27, 2004 1:05 pm 
8086
8086

Joined: Wed Dec 22, 2004 1:56 pm
Posts: 4
Location: The Great Northwest
Ok, so I'm brand new here, and I've just briefly perused the topics. And I've noticed something.

There's a lot of Java people here, there's a fair amount of C++ people here, but I haven't really seen any C# posts.

I write software for a living, and I've done C++ and I will be doing Java soon, but currently I'm focusing on C# *Windows* development (not web development).

The question then, that I want to ask for those in the industry is: How much C# do you see out there? Do you see it growing, shrinking, dying, etc? Any stats supporting your answers would be kewl to see too.

-a


Top
  Profile  
 
 Post subject:
PostPosted: Mon Dec 27, 2004 1:22 pm 
Team Member Top 100
Team Member Top 100

Joined: Fri Sep 17, 2004 5:35 pm
Posts: 1176
I see it growing.
In fact, I know of a new forum run by the same guy that ran cpp-home.com built just for C#.


I personally like C++ the best. It provides me with enough control so that I am happy :)

The other thing is OO: OOP is very useful, but I think Java is taking it overboard with the necessity to have EVERYTHING in classes. That, IMO, is just stupid.

The other thing I like about C++ is that you can generate small, fast code (granted, not as small or fast as if you wrote it in assembly, but I'd like some interface to programming). In Java, you run a virtual machine (that takes up about 45 MB of memory every time for me). In C#, you can only develop for Windows (though there are compilers being written for other platforms).

C++ is the best solution to the majority of problems.


Top
  Profile  
 
 Post subject:
PostPosted: Mon Dec 27, 2004 2:06 pm 
In the lab!
In the lab!
User avatar

Joined: Sun Jun 06, 2004 10:47 am
Posts: 831
Location: Secret Laboratory
C# is growing... slowly but surely I've seen it's use grow and grow.

It's basically just Java so many places that want to run all Microsoft technology use it becuase Java programmers can shift over easily.


Top
  Profile  
 
 Post subject: Re: C# Anyone?
PostPosted: Tue Dec 28, 2004 5:02 pm 
Bitchin' Fast 3D Z8000
Bitchin' Fast 3D Z8000
User avatar

Joined: Mon Jun 14, 2004 4:04 pm
Posts: 985
Location: Earth
ayden wrote:
Ok, so I'm brand new here, and I've just briefly perused the topics. And I've noticed something.

There's a lot of Java people here, there's a fair amount of C++ people here, but I haven't really seen any C# posts.

I write software for a living, and I've done C++ and I will be doing Java soon, but currently I'm focusing on C# *Windows* development (not web development).

The question then, that I want to ask for those in the industry is: How much C# do you see out there? Do you see it growing, shrinking, dying, etc? Any stats supporting your answers would be kewl to see too.

-a


I used to write C#, but I didn't like .NET, the concept of .NET, and Microsoft. So I switched over to Java, plus Java has a huge library so that keeps me in the Java bandwagon.

In school, I use mainly C++ or PHP (for web dev stuff). I have yet to mess around with JSP, so PHP gets the job done. I never did consider C++ as my commercial development language, that's why I use Java, if I need to develop for commercial stuff, Java does the job for me.


Top
  Profile  
 
 Post subject:
PostPosted: Tue Dec 28, 2004 5:07 pm 
Team Member Top 100
Team Member Top 100

Joined: Fri Sep 17, 2004 5:35 pm
Posts: 1176
C++ and PHP can make a very powerful combination. I use C++ for client-based stuff and PHP for server-based stuff. It can produce amazing results.

The main two reasons I don't like Java:
-Virtual Machine. Retarded.
-Completely OO? Nonsensical.

I do like the easy-to-make GUIs, though.

If I was going to switch to C# or Java, though, I'd choose Java.
-1: Java is a Sun product. I like Sun much better than MS
-2: Java is supported on a great deal of platforms -- no portability worries
-3: C# is just basically a copy of Java :p


Top
  Profile  
 
 Post subject:
PostPosted: Tue Dec 28, 2004 5:16 pm 
Bitchin' Fast 3D Z8000
Bitchin' Fast 3D Z8000
User avatar

Joined: Mon Jun 14, 2004 4:04 pm
Posts: 985
Location: Earth
Kybo_Ren wrote:
C++ and PHP can make a very powerful combination. I use C++ for client-based stuff and PHP for server-based stuff. It can produce amazing results.


I use PHP because it's easy to write web stuff on it. I just don't have time to learn JSP, so PHP has to do since I learned PHP some time ago. I wouldn't depend on PHP though, it's not as fast as Java, in fact, I'd rather write in JSP than PHP but again, time constraints.

If I need to do some serious stuff (which, thankfully, haven't showed up). I'd write my server software in C++, use CORBA to pass messages between my clients and my server, and Java for the clients. I would skip PHP altogether.

Kybo_Ren wrote:
The main two reasons I don't like Java:
-Virtual Machine. Retarded.
-Completely OO? Nonsensical.



Gadget might beg to differ, and yes, I do too (though my OOP is beyond rusty) but Java's OO is actually better than C++'s. BTW, PHP uses a 'virtual-machine' in that your code is interpreted and is executed using the PHP interpreter. You can say that the PHP interpreter is the same thing as a virtual machine.

Virtual machines have its virtues, like cross platform compatibility, which is why I like Java. Plus Java is a very serious language, its library is chock full of cool stuff (like BigInteger). I actually used Java to write a basic RSA cryptosystem using the java.math.BigInteger object.

Kybo_Ren wrote:
If I was going to switch to C# or Java, though, I'd choose Java.
-1: Java is a Sun product. I like Sun much better than MS
-2: Java is supported on a great deal of platforms -- no portability worries
-3: C# is just basically a copy of Java :p



1) I like Sun, albeit their business practice could get better. Besides, anything sounds better than MS.

2) Which is why I like it. A buddy of mine works for a trading firm, they use Java on their clients and C++ on their server stuff. They use Java because their clients have to run on anything, and Java guarantees that. They're picky about their server OS, so they use C++ (they use Linux and C++).

3) :lol:


Top
  Profile  
 
 Post subject:
PostPosted: Tue Dec 28, 2004 5:50 pm 
Team Member Top 100
Team Member Top 100

Joined: Fri Sep 17, 2004 5:35 pm
Posts: 1176
PHP has to use an interpreter, because it's a scripted language :)


Top
  Profile  
 
 Post subject:
PostPosted: Tue Dec 28, 2004 8:13 pm 
iron colbinator
iron colbinator
User avatar

Joined: Tue May 25, 2004 2:25 pm
Posts: 2761
Location: Washington, the state
Code portability covers the "hit" of using a VM for cross-platform development, that's for sure. Distribution of java-based applications is so much easier than things compiled in native languages.

I think most people who don't appreciate Java don't really understand it, but then I also think it takes a lot to really understand Java :) C# is similar, but like DJ, I much prefer the Java Way(tm). Also, good, stable Java VMs are available for a multitude of platforms.

Obviously I live in a cross-platform world... some people don't have the same requirements. I appreciate C++ and there are some things that just need it (when there are no other APIs, when you want something that needs to interface with the OS that is custom to the OS/platform, etc), but for OO cross-platform development, Java is great.

</soapbox>


Top
  Profile  
 
 Post subject:
PostPosted: Wed Dec 29, 2004 1:24 pm 
Team Member Top 100
Team Member Top 100

Joined: Fri Sep 17, 2004 5:35 pm
Posts: 1176
I bed to differ. A 45MB VM is just simply unacceptable in my opinion. C and C++ are standardized languages that can be compiled for nearly any platform. I'd rather spend the small amount of time to compile my application for a different platform than have to keep a hefty VM.


Top
  Profile  
 
 Post subject:
PostPosted: Wed Dec 29, 2004 4:29 pm 
Bitchin' Fast 3D Z8000
Bitchin' Fast 3D Z8000
User avatar

Joined: Mon Jun 14, 2004 4:04 pm
Posts: 985
Location: Earth
Kybo_Ren wrote:
I bed to differ. A 45MB VM is just simply unacceptable in my opinion. C and C++ are standardized languages that can be compiled for nearly any platform. I'd rather spend the small amount of time to compile my application for a different platform than have to keep a hefty VM.



I, too, beg to differ. First off, what VM do you use that you get such high memory use out of it. Secondly, C/C++ does not have a standardized GUI library, you're out of luck there, so using a GUI may include a total re-write of the application depending on the platform. Thirdly, if you're writing client/server software, why not just use Java and sacrifice the extra RAM for portability? You can't have it all in software development, and in the case of Java, I'd rather deal with cross-platform than speed.


Top
  Profile  
 
 Post subject:
PostPosted: Wed Dec 29, 2004 4:36 pm 
Bitchin' Fast 3D Z8000*
Bitchin' Fast 3D Z8000*
User avatar

Joined: Tue Jun 29, 2004 11:32 pm
Posts: 2555
Location: Somewhere between compilation and linking
Kybo_Ren wrote:
The main two reasons I don't like Java:
-Virtual Machine. Retarded.
-Completely OO? Nonsensical.

Well, dissing the VM seems kind of strange, after all, the virtual machine is what makes Java - Java - right? If you want maximum portability and greater security, you don't have any other choice but to use a VM (sure, there is GCJ but let's wait and see how that turns out - I have some doubts). This really isn't so different than what brought C into the world either. A compiler was considered an intrusive program that generated bloated and slow code in comparison to assembly. However, K&R were willing to sacrafice speed and size for portability. In a very real sense, a VM is just compiler evolution. If this were 1985, we'd be making the same arguement about how compiled languages like C++ are slow and bloated in comparison to assembly, right?

Quite a few knowledgable people criticize the VM for being slow, memory hog, etc. However, the world doesn't need another C, C++ or Fortran. JIT compilation is still relatively new, improving rapidly, and in some situations outperforms normal compiled programs. There are even some mixed JIT / AOT VM's out there that may literally offer the best of both worlds going forward. And of course, if you have tight memory requirements, you can always use J2ME instead of J2SE. Java is probably broadest platform available which is very nice and due in part to the VM.

Regarding the OOP only situation, again, Java wasn't designed to be another bash, perl, or C/C++. Sure, it pisses some people off, but in many cases, it was an excellent choice. Modularity and abstraction are a computer scientests best weapons for dealing with complexity. Complexity rarely decreases - ALL of the simple apps were originally written in the 60's and rewritten in the 70's.

Anyways, I tend to think that if what you're writing is so dead simple that it shouldn't be done in an OOP fashion, well, you probably shouldn't be using Java either. After all, how hard is it to create a class name and make all of the methods static, or even the class static, and optionally package it? And how beneficial is doing this? If you're working on some math functions not in the Java API, go ahead and create another Math class with static methods - or better yet, extend another Math class. This probably wouldn't occur as frequently w/o the OOP req in place, right? Hence, there are many libs available in JAVA - despite all the moaning. For good, honest, down to earth scripting that requires portability, there are alternative languages for the Java platform like Jython, JRuby, and Groovy, which don't require OOP.

Also, I doubt that it would be possible to create something like the Java API w/o OOP. Just look at how messy the PHP libs are in comparison (IMHO - and you'll notice that they chose the Java OOP model now, not C++). Threading, toString, Collections, and many other usefull methods descend from the Object and other common superclasses.


Top
  Profile  
 
 Post subject:
PostPosted: Wed Dec 29, 2004 5:03 pm 
Team Member Top 100
Team Member Top 100

Joined: Fri Sep 17, 2004 5:35 pm
Posts: 1176
I'm not against Java -- it has its benefits.

Here is my problem with Java:
Image

I researched on the web, and other people have had this problem, too.

Yes, I do know that C compilers generate bloated code, and that C++ compilers generate even MORE bloated code (Go templates!).

The OO approach can be very usful, but I think it's quite pointless in a small application. An OO-dominated language can be just as lame as one without any OO.

For bigger projects, I'd actually rather use Java, but the memory usage kills me. Until that can be resolved, there is no way I will use it.

Of course, if there is something that I'm doing wrong that makes javaw.exe take up so much memory, then I'm wrong, but I don't like it.


Top
  Profile  
 
 Post subject:
PostPosted: Wed Dec 29, 2004 5:41 pm 
Bitchin' Fast 3D Z8000*
Bitchin' Fast 3D Z8000*
User avatar

Joined: Tue Jun 29, 2004 11:32 pm
Posts: 2555
Location: Somewhere between compilation and linking
Kybo_Ren wrote:
I bed to differ. A 45MB VM is just simply unacceptable in my opinion.

The Java VM isn't even close to 45MB in size. Hell, NetBeans is barely that large - and that is a huge program. The entire JRE\bin directory only has 4.5MB worth of files in it. Firefox is currently at 95 megs on this system - I'll bet you dollars to donuts that it is written in either C or C++.

Also, I wonder how they shoehorn giant 45MB VM's into all those cell phones that only have a few megs of ram or smart codes that don't even hat much memory. What do you think?

Kybo_Ren wrote:
C and C++ are standardized languages that can be compiled for nearly any platform. I'd rather spend the small amount of time to compile my application for a different platform than have to keep a hefty VM.

A) You're assuming that you have the source and can compile it for your platform. And even when the source code is available, such as the case with OSS, most compiled programs are still only available on one platform.

B) I'm sure the most newbie person in the forum can list over a 100 apps that only run on windows. If it were easy, as you're suggesting, why wouldn't software companies compile all of their programs for Mac, Linux, Solaris, and AIX? How, for example, do you port a multi-threaded program in Windows to Linux? Threads are very different on each of these systems. That isn't the only thing though. What about networking? Filesystems? Security permissions? Big and little endian issues (when dealing w/ different hardware platforms)? Sure, two hundred lines of C that doesn't do much IO might be easy to port, but how many 'real' programs are that small?

C) Although the situation is much better today, C++ isn't quite as 'standardized' as many people would think. I started with C++ in 2002 and both g++ and vs6 had some glaring problems w/ standardization (especially vs6). This is much better now, but what about the very common situation when someone uses 3rd party libs in windows that just aren't available on say Solaris? While not perfect, Java is an order of maginitude more portable than C/C++.

Further, if the 3rd party libs that you need are available, there is no guarantee that they will work your compiler. Here is a good example from boost.org, "Will all Boost libraries work with your compiler? Unfortunately, the answer is 'it depends'. "

D) Hefty VM issues were previously addressed. If you don't like a 'hefty' VM, you can always use GCJ or some other Java compiler/vm combination.


Top
  Profile  
 
 Post subject:
PostPosted: Wed Dec 29, 2004 5:59 pm 
Team Member Top 100
Team Member Top 100

Joined: Fri Sep 17, 2004 5:35 pm
Posts: 1176
VS6 is terrible for compatiblity. It was made mostly before the ANSI/ISO C++ standard was drafted. G++ and the VC8 compiler are much better (download VC8 beta from MS for free).

Quote:
How, for example, do you port a multi-threaded program in Windows to Linux?

Boost libraries. They solve 99% of the cross-platform issues. They have worked with every compiler I've used.

And yes, Firefox is huge, but for good reason. It has to load all the images for all of the site, keep layouts and such, etc. If you use any other browser, you'll see it also is a memory hog.

The problem I have with the VM is that there are alternatives.

I think how they fit the VMs into cell phones is by trimming down the functionality.

And I won't take your Firefox is written in C/C++ bet -- I can see the source code, and it is ;)


Top
  Profile  
 
 Post subject:
PostPosted: Wed Dec 29, 2004 6:23 pm 
iron colbinator
iron colbinator
User avatar

Joined: Tue May 25, 2004 2:25 pm
Posts: 2761
Location: Washington, the state
Kybo_Ren wrote:
I bed to differ. A 45MB VM is just simply unacceptable in my opinion. C and C++ are standardized languages that can be compiled for nearly any platform. I'd rather spend the small amount of time to compile my application for a different platform than have to keep a hefty VM.


Small amount of time to port applications across every platform? What are you writing, "Hello World" part IV? :P ;)

There are "smart" VMs that actually improve performance over time (JRockit for example). Their garbage collection methods adjust objects in memory so that frequently accessed objects are actually faster to access over time.

You can't just write Java code and expect it to be perfect. It, like any other language, has to be optimized. Sure you can be "lazy" about garbage collection, but if you are lazy about references to objects, you're screwing yourself in the end. Also, optimizing and tuning the JVM can be quite a big feat.

As with every project, there is no silver bullet. You have to determine what language is appropriate for your development based on your own conditions. I might prefer Java for my application, but those are based on my own conditions and evaluation not yours. :)


Top
  Profile  
 
 Post subject:
PostPosted: Wed Dec 29, 2004 7:19 pm 
Bitchin' Fast 3D Z8000*
Bitchin' Fast 3D Z8000*
User avatar

Joined: Tue Jun 29, 2004 11:32 pm
Posts: 2555
Location: Somewhere between compilation and linking
Kybo_Ren wrote:
Quote:
How, for example, do you port a multi-threaded program in Windows to Linux?

Boost libraries. They solve 99% of the cross-platform issues. They have worked with every compiler I've used.

Boost is good, but there are still quite a few failures though:
http://www.meta-comm.com/engineering/bo ... mmary.html

While Boost does provide C++ support for concurrency, support is still a bit new, not part of the C++ standard, and will not always work on your compiler or platform (see the Win32 warning in the documentation). All this and that doesn't begin to touch the other issues like networking, file systems, permissions, etc.

Kybo_Ren wrote:
The problem I have with the VM is that there are alternatives.

I don't get it - you don't like the JVM because there are alternatives?


Top
  Profile  
 
 Post subject:
PostPosted: Wed Dec 29, 2004 7:47 pm 
Team Member Top 100
Team Member Top 100

Joined: Fri Sep 17, 2004 5:35 pm
Posts: 1176
No, I don't like running the VM when I can not run it.

It's hard to put in words...
Like, I'd rather not run the VM.

In order for a Java application to not use the VM, it has to be compiled that way, correct? Why don't more applications do this?

EDIT: Anyone else noticed this topic is about C# and we've been talking about Java for most of it? :lol:


Top
  Profile  
 
 Post subject:
PostPosted: Wed Dec 29, 2004 8:40 pm 
Bitchin' Fast 3D Z8000*
Bitchin' Fast 3D Z8000*
User avatar

Joined: Tue Jun 29, 2004 11:32 pm
Posts: 2555
Location: Somewhere between compilation and linking
Kybo_Ren wrote:
Of course, if there is something that I'm doing wrong that makes javaw.exe take up so much memory, then I'm wrong, but I don't like it.

It isn't the Java VM that is taking up all the memory though. Azureus is responsible for the size of javaw in this case. A minimal application, like the one below, will cause the JVM to use just under 6 megs of ram.

Code:
public class Small {
    public static void main(String[] args) {
       
        System.out.println("start");
        long l = System.currentTimeMillis() + 10000;
        long tmp;
        while ((tmp = System.currentTimeMillis()) < l);
        System.out.println("finish");

        System.exit(0);
    }
}


Top
  Profile  
 
 Post subject:
PostPosted: Wed Dec 29, 2004 8:44 pm 
Team Member Top 100
Team Member Top 100

Joined: Fri Sep 17, 2004 5:35 pm
Posts: 1176
Interesting.

Now there's just one question: Why the f*** is Azureus using so much memory? There's no reason X_X


Top
  Profile  
 
 Post subject:
PostPosted: Wed Dec 29, 2004 9:00 pm 
Bitchin' Fast 3D Z8000*
Bitchin' Fast 3D Z8000*
User avatar

Joined: Tue Jun 29, 2004 11:32 pm
Posts: 2555
Location: Somewhere between compilation and linking
Kybo_Ren wrote:
In order for a Java application to not use the VM, it has to be compiled that way, correct? Why don't more applications do this?


There are a number of native compilers available. Excelsior is the best one available from what I've seen. There is also GCJ, which sort of works - sometimes.

There are a few reasons that they are not used very much. First, you lose portability. Excelsior, for example, only works with Linux and Windows. Also, unlike a class file, a compiled Windows executable file cannot run on Linux either. Second, you lose some of the security features available in Java. Third, in most cases, the performance difference is often not all that great; however, Swing apps tend to run faster using AOT compiling w/ Excelsior instead of JIT. Finally, it is pretty tough since Java employs dynamic class loading, which makes static compilation difficult.

Kybo_Ren wrote:
EDIT: Anyone else noticed this topic is about C# and we've been talking about Java for most of it? :lol:


Hopefully it will balance out all the bad karma generated by the VB posts. :)


Top
  Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 28 posts ]  Go to page 1, 2  Next

All times are UTC - 8 hours


Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group