Solved

Please participate

Posted on 2003-12-03
36
1,563 Views
Last Modified: 2013-11-23
This is an attempt to discuss over the point whether J2EE is more extensible or .NET. Its a very common discussion, so I just thought that I would raise the matter on EE too.

I will start the thread with a few points. But these are personal thoughts and my knowledge regarding this might be incomplete.

Plenty of classes, interfaces, etc from Java have been imitated by .NET (?). The same public static void main, String args[], the System class becomes the System namespace, every class extends the Object class by default just like java.lang.Object, the toString () method becomes the ToString () method, Object has almost the same methods as java.lang.Object, the reflection API are exactly same, the exception hierarchy (java.lang.Throwable becomes Exception, java.lang.Error and java.lang.Exception become SystemException and ApplicationException, NullPointerException becomes NullReferenceException, etc).

The platform-independency which .NET claims is something imitated from Java (?), and also not fully implemented. Just like Java makes the bytecode, .NET makes IL code. But in J2EE, development and deployment are both platform-independent. In .NET, development is restricted to Windows, and only deployment is *theoretically* platform-independent. Only theoretically, because no one has tested it for other platforms as yet. And Microsoft has provided the runtime libraries only for Windows, and left it as a so-called *open system* for others to implement for other platforms *if they want*. But no one has ever tested whether it will work on UNIX or not. (That's what I have heard - sorry folks, I have not worked on .NET but only on J2EE.) But Sun has provided the Java Virtual Machine for all platforms, be it Windows, Mac, Solaris, Linux, etc.

Please don't feel offended by any points mentioned here (and which will be mentioned by others). This is an open discussion and I would request everyone to participate. Kindly offer your valuable suggestions.

Regards,

Mayank.
0
Comment
Question by:mayankeagle
  • 13
  • 7
  • 6
  • +6
36 Comments
 
LVL 33

Assisted Solution

by:hongjun
hongjun earned 20 total points
ID: 9872773
I think this is a good documentation
http://internet.about.com/library/aa_netJ2EE1_080702.htm?terms=j2ee

hongjun
0
 
LVL 30

Author Comment

by:mayankeagle
ID: 9872999
That's a good one. But I'm looking forward to some more comments. Some more comparisions of features, etc. Which one's got more? e.g., .NET collection types also seem to be a subset of Java's Collection framework.... ArrayList, Hashtable, etc.

How extensible will .NET be later? Is someone trying to implement the common-runtime libraries for other platforms like Linux for .NET?
0
 
LVL 33

Expert Comment

by:hongjun
ID: 9873618
0
 
LVL 33

Expert Comment

by:hongjun
ID: 9873634
>>Is someone trying to implement the common-runtime libraries for other platforms like Linux for .NET?
I don't think so (that's my own opinion).

hongjun
0
 
LVL 7

Assisted Solution

by:grim_toaster
grim_toaster earned 20 total points
ID: 9873758
There are way too many links relating to this!  Just do a search on google for
java vs .net
And you will get over a million articles!  But here's a couple of goodies from respectable organisations for you:

http://www.manning.com/dotnetbooks/java_vs_dotnet/java-vs-dotnet.html
http://java.oreilly.com/news/farley_0800.html   or http://java.sun.com/features/2000/11/dotnetvsms.html?frontpage-banner
http://www.mindview.net/WebLog/log-0035
http://www.javalobby.com/thread.jspa?forumID=61&threadID=8436    - a huge thread!
0
 
LVL 44

Assisted Solution

by:Arthur_Wood
Arthur_Wood earned 20 total points
ID: 9873829
>>Is someone trying to implement the common-runtime libraries for other platforms like Linux for .NET?
YES , check out

http://www.go-mono.com/

AW

0
 
LVL 30

Author Comment

by:mayankeagle
ID: 9873937
Thank you, guys, for your quick response. But instead of searching google and going through so many links, how about some personal comments from you? Based on your experience,.... which one did you find better to use, etc?
0
 
LVL 26

Assisted Solution

by:EDDYKT
EDDYKT earned 20 total points
ID: 9874079
95% of the world using windows OS. What do you think? Shat happen if MS may stop to support the next version of JAVA.

For my personal experience and I have limited experience on Java, I use Java class only through c++ jni, I found Java class is hard to use.

0
 
LVL 2

Assisted Solution

by:leeprovoost
leeprovoost earned 50 total points
ID: 9875529
Well i'm using them both on school and i have to say that the learning curve of java is lot steeper than .net.

First of all, you notice that the M$ guys really thought about the language, it's both powerfull and easy to use (like VB). Of course they had Java as a good example. Take the good things out of Java and improve the lacks of Java (for instance Garbage control).

Second, they have a very easy to use development tool: Visual Studio.NET, completely visual basic style of coding

But i have to say that i prefer Java. Yes perhaps you can develop faster applications with .NET, just drag your datetimepicker control, adjust some properties and you have a dynamic calendar and stuff. But with Java you have at least the feeling that it is YOU that is in charge of the code.

My favourite Java IDE is Eclipse (i really like their plugins).

So they have both their pros and cons, and i think there will be a market for both of them, but i have to say that Sun should speed the introduction of the next generation of Java (Java3?) so that they can compete with C# with equal weapons ;-)

grtz

lee
0
 
LVL 30

Author Comment

by:mayankeagle
ID: 9879694
>> 95% of the world using windows OS. What do you think?

Well, I wouldn't really say that. At least, not amongst developers? Lots of developers prefer UNIX or Linux because of the security, performance and efficiency? What's more - you can make an enterprise application in J2EE (in Windows) and deploy the EAR file easily on a Solaris or UNIX server. Doesn't that really make it easy? Especially in multi-user environments, you never know what kinds of systems/ platforms all the users are working on. (Matter of factly, our EE also happens to use a lot of JSP :-) )

>> Take the good things out of Java and improve the lacks of Java (for instance Garbage control).

But Lee, Java has garbage control. Allocation for objects is done dynamically in the heap, and deallocation is handled totally by the JVM. Would you explain that point a little bit more? Maybe that I didn't understand it the right way.

As for Java/ J2EE IDEs, well, third parties like IBM have really come up with good ones like Visual Age. In fact, I find WSAD (IBM Websphere Studio Application Developer) to be much more useful, functional and even easier than Microsoft's Visual Studio IDEs.

Rgds,

Mayank.
0
 
LVL 2

Expert Comment

by:leeprovoost
ID: 9880456
>> you can make an enterprise application in J2EE (in Windows) and deploy the EAR file easily on a Solaris or UNIX server

I'm one of them, i forced myself last summer to abandon windows and work completely with red hat linux and i have to say that i prefer developing on a windows box. you are so used to the operating system and although the linux community is doing a really great job in improving the desktop linux, it's still not there where i want it to be :-) but i think after my final exams i gonna abandon windows again (after my exam of C# :-p ) and i gonna try SuSE.

>> But Lee, Java has garbage control. Allocation for objects is done dynamically in the heap, and deallocation is handled totally by the JVM. Would you explain that point a little bit more? Maybe that I didn't understand it the right way.

Of course Java has garbage control, and that is one of the things that makes it easier compared to C++, but i meant control of your garbage control :-)

When you program in C# you can for instance force the garbage control to do his job what is sometimes good for heavy memory comsuming programs. (so back to C++) Java doesn't give you that possibility. You just have to wait when the VM thinks it's right to clean up.

Because i have a C++ background and used to control the memory, i really like the C# way: they give you garbage control, but when you decide it's better to do it by yourself: go ahead :-) (that's one of the things where i have the feeling that i am in charge of the code :-p )

I think i gonna try your WSAD, never used it before. tnx for suggestion mayank

grtz

Lee
0
 
LVL 2

Expert Comment

by:leeprovoost
ID: 9880481
Forgot to say that if i have to be honest i'd say that C# is an improved copy of Java. The whole .NET framework and C# is much more consistent. You feel that everything is adapted to eachother. Java is much more mature and you have more different possibilities on the platform but the diversity makes Java also weaker i think. All the diferent implementations of the MVC pattern, two very good competing open source IDE's (eclipse and netbeans)... Perhaps that's probably the problem with lot's of open source software (such as linux): everybody has it's own flavour but when you want to compete with M$ perhaps it's better to be one group? (it's not a statement, it's a question ;-) )

grtz

Lee
0
 
LVL 30

Author Comment

by:mayankeagle
ID: 9880796
Yup, go ahead. Try WSAD. You can read its feedback on www.theserverside.com.

>> You feel that everything is adapted to eachother.

Yes, you do. But don't you feel the same while using Java? The object hierarchy, etc.. especially the huge load of APIs like reflection, Collections, etc.

>> but the diversity makes Java also weaker i think.

Weaker? In what sense? At least it is more extensible and portable. In a distributed environment, you can never be sure as to what computers your peers are using. So why do you call it weak, then? At least it will work. .NET won't work, as of now.

>> but when you want to compete with M$ perhaps it's better to be one group?

Yeah, but probably its not about competition in that direction here? I guess M$ is trying to compete with Java?

rgds,
Mayank.
0
 
LVL 2

Expert Comment

by:leeprovoost
ID: 9880923
Of course M$ is trying to compete with java. Usually people say: "when you can't beat them, join them". But that's not the idea of M$ :-p

Recently i read an article about eclipse and netbeans. Sun wanted to join the eclipse consortium, and merge netbeans with eclipse, but decided for commercial reasons to go it's own way. Because IBM's commercial products are based on eclipse technology and Sun's commercial products are based on netbeans technolog, it would cost too much to merge those two programs (which means they have to change their commercial software too). So the articled said that when you are a .NET developer the obvious choice is visual studio.net. (Of course you have Borland's C# builder) So software companies can develop plugins, add-ons, extra software, tools etc for visual studio. When you want to target the java developers you have to write a plugin for netbeans and for eclipse (not to mention all the other commercial tools like borland jbuilder, sun one studio, ibm websphere, etc). You have also one applicaton server: IIS. Java has JBOSS, sun application server, ibm websphere, etc etc (look at the list at theserverside.com).

Diversity isn't a bad thing. Competition is a good thing to force companies to improve their software/code. But perhaps to be too diverse is rather contraproductive. For instance iinstead of developing your own MVC implementation, why not join the jakarta struts framework project? Instead of developing YET another forum, portal, groupware etc, why not join an existing one and help improving it? It's like reinventing every day hot water (it's a belgian saying, i don't know what the english equivalent is :-p )

If you are a .NET developer and you want to work for another company, it's very likely that they'll use the same tools (visual studio) and application server (IIS). WHen you're a java developer, it's probably a total different infrastructure.

So i wouldn't say that the java language on itself is weak, but rather the whole diverse implementations of it.

And the fact that .NET is easier to learn is also a pro. 90 % of the people in my class prefer developing in .NET applications once they've struggled with writing and deploying an EJB :-)

But where is the fun of programming when everything is point and click? ;-) It's much more satisfying when you see your application work after days of programming and debugging...

grtz

Lee
0
 
LVL 12

Accepted Solution

by:
Salte earned 80 total points
ID: 9880976
Well, I know of at least two different and independent efforts of getting .NET ported to Linux platform and since they are both GPL sources that means that they would also be possible to port to other platforms as well.

The one I am most familiar with because I have installed it on my own Linux is mono. Check out http://www.go-mono.com The current version is 0.29.

The other is .GNU  or dotgnu or whatever they call it. Check out www.gnu.org and search for it from there.

The mono is still at a "prerelease" stage (seen by the fact that they haven't reached version 1.00 yet) However, it is still fairly good. They have both a jit engine and a jit interpreter so you can run .NET executables. You must of course be careful with P/Invoke for windows specific stuff although even some of that is available on Linux. You can for example get much of Win32 available as .so files for linux so a program can call shared objects with functions that emulate the WIN32 API under linux.

The windowing system uses GTK# as far as I know for mono although when I tried to run it on my 0.25 version of mono I didn't quite get it to work. So-called console programs works without problems but you really want windows stuff to work. Most of the classes are in place though so I guess it is either me who didn't install it properly or they have very little left before you get it up and running. It might work on the 0.29 version although I haven't downloaded that yet (I have been very busy with work stuff lately).

As for the comparison of Java vs .NET I believe it is mostly correct. That you can find corresponding things which micrsoft has "stolen" from java. However, be aware that the public static main thing with string[] args is kinda "obvious".

Since C# has arrays with length information (they're not simply pointers to the first element as in C and C++) it is obvious that you drop the argc argument and so the argument to main is an array of strings. Perhaps the one thing where they also changed from C is the fact that they dropped the executable itself as arg[0]. This is in my opinion a bad idea they should have kept it there. Yes, I know you can get the executable through other means but it is very convenient to have it there and it does no harm. I believe it is also natural for most people to start counting arguments from index 1. The only reason why you might want to drop the argument is so that you can do:

foreach (string arg in args) { .... }

without getting the executable in that list.

Anyway, other than that both Java and C# has "stolen" much of that stuff from C which is the granddaddy of all these languages.

About the features of System, Reflection etc yes they are very similar and they did not "steal" that from C. However, again, it is kinda the "obvious" solutions. Some differences from the "obvious" might be that you don't have a separate object for namespace. The namespace is simply found by having a string indicating which namespace the item is defined in.

The model with "assembly" etc is also kinda "obvious" since it is an program level abstraction of "a set of executables or dlls that are compiled and executes as a unit".

My only gripe with reflection in dot net is that you can get the Method object which describes a particular method but that object does not have a pointer to the CLI code which is compiled and run when that method is called. There should not only be a reference to a "CLIbody" object but such an object should have a built in disassembler interface that allowed you to either dissasemble or interpret or otherwise operate on the code. Instead the code is a "black box" you can invoke it through the Method interface but not even that is 100 percent.

Yes, I know you can search through the executable and find the CLI code yourself if you want to - the spec is there but it would be more convenient if the Method had some means to retrieve that code if nothing else as a BinaryReader or something that could read that code.

About the "not 100 percent", I will give a comment.

The problem is for example code like this:

void swap(ref int x, ref int y)
{
    int z = x;
    x = y;
   y = z;
}

How would you call that function through the Method object?

The method object can call the function and it has a object[] to call it. However, 'ref' is a type that cannot be converted to Object. You may have heard that the Microsoft Marketing dept. has said that C# and .NET employs a "unitified type model". Well, this unification isn't 100 percent and the place above is exactly where it fails. The consequence is that you cannot call that function swap through the Method pointer, since an object[] is an array of values and not references.

In fact you cannot call any function with ref or out parameters through that interface since only plain values can be converted to object.

So the "unified type system" is only 99% unified.

Another problem I have with C# is the lack of generics or templates. This is also a problem with java. However, as far as I know, Microsoft does have work in progress on implementing templates and generics for next version of C#.

My list of gripes with Java also include the lack of operator overloading - including the indexing operator. This is to me a very big minus. In a way C# is java with operator overloading and that in itself is a big plus for C#.

Personally I therefore prefer C# over java even though the two are very similar. I agree that J2EE has been around longer and is more widespread than .NET but C# as a language is better than Java period. It is essentially identical to Java but with boxing and operator overloading and possibly generics at some point in the future. All of which are very good reasons why C# is better than Java. In most other respects they are identical I can't think of any feature in Java which C# shoudl have had but don't have.

This is of course natural since Java is the older of the two languages. The people who designed C# knew Java and "stole" all that is good and then added some more.

I therefore consider any "war" between Java and C# to be pointless. They are not "alternatives" or "symmetric" in the sense that C vs Pascal or FORTRAN vs COBOL. Java is a "daddy" of C# even though neither Microsoft nor SUN might appreciate that relationship and as such the relationship between C# and Java is more like the relationship between C++ and C and just as C++ simply is a better C so also is C# a better Java.

I agree that J2EE is bigger though. This is the one place where Java has an advantage but that is mostly only a question of time. In time, .NET will be as complete as J2EE is and also more widespread and then even that advantage will go away.

Alf
0
 
LVL 30

Author Comment

by:mayankeagle
ID: 9881028
Thank you, guys, for your valuable responses. The question stays open till a few more comments and then I will close it. Please keep listening!

>> 90 % of the people in my class prefer developing in .NET applications once they've struggled with writing and deploying an EJB :-)

That's why I prefer WSAD. You don't need to write the XML files. Everything has a GUI. And its managed that way. In fact, even for deploying an EJB or making an EAR file, you just need to right-click and choose the option. It hardly takes a few seconds :-)
0
 
LVL 2

Expert Comment

by:leeprovoost
ID: 9881039
Well said Alf :-)

Just want to remark that the choice of not implementing operator overloading is made by the M$ guys because in their opinion operator overloading only leads to complex and difficult to debug software (remember C# is targeted also for the Visual Basic people with no C++ background). I personally miss the feature too, because i often used it during programming in C++.

>> I therefore consider any "war" between Java and C# to be pointless.

I totally agree, but this thread wasn't about a war between java and C# :-) it's just talking a bit about what some developer's think about the differences. But i still believe that there will be a future for both of them, but i'm not sure that .NET will be widespread on non-microsoft platforms.

grtz

Lee
0
 
LVL 2

Expert Comment

by:leeprovoost
ID: 9881048
>> That's why I prefer WSAD. You don't need to write the XML files. Everything has a GUI. And its managed that way. In fact, even for deploying an EJB or making an EAR file, you just need to right-click and choose the option. It hardly takes a few seconds :-)

This must be too good to be true :-D What am i still doing here? :-p *heading for WSAD :-D*

grtz

lee
0
Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

 
LVL 30

Author Comment

by:mayankeagle
ID: 9881247
I agree that there's no operator overloading in Java. But I guess its because of certain complications. Maybe that's why Sun decided to have a toString () method in the Object class, so that you can still at least print an object directly in System.out.println () without having to overload :-)

Of course, you can also override the toString (), in which case, its like writing an overloading of << operator in C++. But of course, for the other operators, it won't work. But lots of operators have also been removed. I find Java's way of dealing everything with references but without pointers really neat. Maybe that's why they followed it in .NET too.

>> heading for WSAD

Man, you don't have to do anything in WSAD :-) its like any Microsoft tool (like the Visual Studio IDE), but I like it more because its got more features. Making new packages, classes, extending other classes (by just selecting the appropriate class from the list, selecting the interfaces it implements by selecting from the list, specifying the access specifies and whether you need a main () method or not by checking the appropriate check-boxes, etc.), connecting to data-sources directly without any hard-coding, Servlet and EJB containers, Websphere application server too, thousands of different perspectives (J2EE, Java, Database, Server, etc), web-browser, automatic import of packages that are needed, skeletal-code generation, automatically compiles entire project in no-time every time you save a file, hyperlinks to errors anywhere, deploying the EJBs, making EAR files, etc.... everything is done in no time. That's just a small jist.

Mayank.
0
 
LVL 30

Author Comment

by:mayankeagle
ID: 9881294
>> Yes, I know you can get the executable through other means but it is very convenient to have it there and it does no harm. I believe it is also natural for most people to start counting arguments from index 1.

Alf, I have often faced the problem in VB.NET regarding indices.... they have not kept it standard. In some collections, it starts with 0, and in some cases, it starts with 1.
0
 
LVL 12

Expert Comment

by:Salte
ID: 9881884
The idea of using pointers or references to objects as they do in Java and C# is old. A language such as SIMULA developed in the 60's had it. Smalltalk is also a SIMULA derived language which also have the same feature.

Incase you didn't know - if C is considered the daddy of C++ then SIMULA is probably the mom, SIMULA introduced the class concept and it was this that was imported into C to make "C with classes" which was a precursor to C++ which in turn is the parent of Java which in turn C# is derived from.

It is a necessity if you want garbage collection since enforcing all objects to be created on heap enforce that the GC have control over them.

In C# you also have structs but they are NOT manipulated by references but are instead considered "value objects" and hence the GC doesn't care about them (unless they contain objects - i.e. references to objects).

Yes, it is possible that C# got that idea from Java but Java got it from languages such as SIMULA or Smalltalk.

Alf
0
 
LVL 12

Expert Comment

by:Salte
ID: 9881907
Mayankeagle,

About the index from 1 or 0.

Yes, VB is a big mess. Forget VB, it was - is and will always be - a mistake :-)

However, in C# and C all indices are supposed to start from 0 it's just that I would like that the argument to Main was an array where the first element at index 0 is the name of the executable. So the "real" arguments starts at index 1. I would consider that to be more convenient. The array still start at index 0 as always.

Alf
0
 
LVL 30

Author Comment

by:mayankeagle
ID: 9882228
Yeah yeah, I know that references are old.... however, the 99% unification of the "unified type system" really seemed to be an interesting point. Thanks for bringing out that point, Alf. In fact, I would say that in that case, its not even 90% unified.

(and since when did you start calling me Mayankeagle instead of my name?)

Cheers,
Mayank.
0
 
LVL 12

Expert Comment

by:Salte
ID: 9882443
Err..not sure I have ever referred to you by name.

The simple reason is that I don't think I know the name. I know what you sign as (Mayank) and I know your handle (Manyankeagle) but I don't think I know what is your name. I could start to guess but I am not good at that kind of things so
I think I drop it ;)  the guessing I mean :)

Also, the exact percentage might be argued depending on how important you think it is. The short story is that the only place where it is important is when you try to call a function with ref or out arguments through the Method reflection object. For all other situations that I can think of the problem won't occur since you cannot put ref or out members in a struct or class.

I guess that is perhaps also the reason why the ref or out thingies are not considered true types on their own and so M$ might argue that since they're not types it doesn't matter that the unified type system doesn't cover them. However, that they are types can be seen from the fact that if you try to box a ref value it won't work saying that ref types cannot be converted to object and so ref T is truly different from out T and plain T.

The obvious solution would be to make them 'real types' so 'ref x' is an expression of type 'ref T' if x is of type T.

However, this does lead to problems. For example 'ref ref x' doesn't make sense or shouldn't make sense etc, nor 'ref out x' or 'out ref x' or 'out out x'. In short the only types that you can do ref and out on are types that themselves aren't ref or out types.

Also, should a ref be a valid type for a struct or class? This might lead to problems, what if the variable the ref references goes out of scope and would normally die. If you have a ref to it stored in a struct or class you cannot do that and so a variable stored into a ref cannot simply be referenced and have the reference stored in the ref variable. This would lead to severe complications.

The problem is not so much in enforcing rules to block "invalid usage" of these types but more that they aren't "regular types" no matter how you look at it and so having them as separate types might mislead the casual programmer.

So, I can very well understand why M$ has done it the way they did but I still think they ought to make it possible one way or another to call a function with ref or out arguments through  an object array.

One way would be to simply allow it. In this case the value stored in the array might change and so after calling the function you must then pick up the changed value from the array. I.e. the ref argument references the object array element. This object array element is typically a box of some type T and if the ref is a ref T then that should work fine.

Calling a function through such a mechanism though might be difficult then since when the object array is created it is the VALUE that is copied into the array (when the value is boxed for example) and then the function modifies that value and so you must remember to get that value from the array and then store it into the original variable.

Another solution would be to have ref T as a type but have strong restrictions of it. For example building an array of a ref T referencing a local variable and then returning that array should trap a run time error. I.e. if a local variable goes out of scope while a ref T references it will cause run time error.

If the ref references a class this simply means that the class should not be garbage collected yet so the problem arise only for value types as local variables or arguments to functions.

Alf
0
 
LVL 3

Assisted Solution

by:ashoooo
ashoooo earned 20 total points
ID: 9883577
>> >> 95% of the world using windows OS. What do you think?
>>
>> Well, I wouldn't really say that. At least, not amongst developers? Lots of developers prefer UNIX or Linux because of
>> the security, performance and efficiency?

How much do you think the developers contribute to the computer users population? You really think its more than one percent?
0
 
LVL 3

Expert Comment

by:ashoooo
ID: 9883584
This has mutated into another MS bashing thread...
0
 
LVL 12

Expert Comment

by:Salte
ID: 9883939
ashoooo,

why do you say that?

Yes there is some critisism of some MS decisions but I wouldn't call it bashing just because someone have a negative remark or two.

It won't turn into an MS bashing thread unless someone come up with groundless accusations about MS or making remarks that are not within the context of the thread purely aimed at annoying people who are fan of Bill Gates & Co.

Alf
0
 
LVL 2

Expert Comment

by:leeprovoost
ID: 9885457
True, we're discussing both the pros and cons of .NET AND java

Lee
0
 
LVL 30

Author Comment

by:mayankeagle
ID: 9887425
>> How much do you think the developers contribute to the computer users population?

We're not discussing what is good for users. We're discussing what is good for developers. Developers can still make the project in Linux, deploy it on a Linux server (if its done in J2EE) and the users can still use it from a Windows client.

Mayank.
0
 
LVL 3

Expert Comment

by:ashoooo
ID: 9888342
Read my previous comment, and try to figure out what was the context.

>> >> 95% of the world using windows OS. What do you think?
>>
0
 
LVL 30

Author Comment

by:mayankeagle
ID: 9891801
If I can see it clearly, your comment was:

>> How much do you think the developers contribute to the
>> computer users population?
0
 
LVL 8

Assisted Solution

by:akshayxx
akshayxx earned 20 total points
ID: 9895220
Hi Mayank!,
As of your comment in the other post!. I am here to participate, but u know i am more of C/C++ guy, rather than J2EE/.Net.
So i would rather shut up and be a good listener, as i am expected to work on similar things pretty soon...( some one help me find a c/unix jobs.. as good paying as J2EE guys are giving these days) ;P
Sorry to disturb you guys with one useless email alert.
Akshay

0
 
LVL 12

Expert Comment

by:Salte
ID: 9895245
While developers make up a small part of the computer users it is a smart policy to cater for them.

I once worked in a computer company which made no effort to make life easy for developers and every effort into making life easy for users.

The problem with this is of course that it is developers that program this code that is intended to make life easy for users. If they themselves have few tools etc their development process will be unecessary slow and who will suffer from this? The users, of course!

So, to make life easy for users you should make life easy for developers FIRST and THEN afterwards start to worry about the users.

Unix were developed with this in mind and they have largely succeeded. Linux is today quite user friendly despite it not having big bucks on their back and in comparison M$ spend lots of dollars into their developement efforts - something which shows up in the outrageous prices they put on their products lately.

True, Microsoft has also appearantly finally learned this lesson and is working on their developement tools etc and I am sure that though they do not publish any compiler generator similar to bison they do use one for their compilers. It might even be a bison clone (and that is the reason why they don't make it available to the public). In particular their developement system starting with Visual Studio .NET is finally approaching semi-usefulness although there are still a few things lacking.

True enough, Linux development with emacs editor might not be as fancy. Especially for X windows programming but then again emacs has been around for several years while M$ has only in the recent years managed to come up with something approaching it in power and usefulness. Admittedly, they might even have past it by now. Emacs hasn't changed much in the last 20 years and in the early part of those years the reason was obviously that they did have a very good product so why change? However, today, emacs could use some improvements.

Be that as it may, it is irrelevant for the topic on this thread. The key point here is that if you make life easy for developers you also make life easy for users in the long run. If you cater for users and forget the developers, the users will suffer in the long run.

So the argument that develoeprs make up a small portion of the user community and we should therefore ignore them is plain bull, Did I mention that the company I worked for that time did eventually go bankrupt? Well they did, shortly after their marketing division started to run hard on the line of focusing on "users" (i.e. not programmers).

Alf
0
 
LVL 30

Author Comment

by:mayankeagle
ID: 9895358
>> to make life easy for users you should make life easy for developers FIRST and THEN afterwards start to worry about the users.

Very well, said, Alf!
0
 
LVL 30

Author Comment

by:mayankeagle
ID: 9895397
Points increased to 250.
0
 
LVL 30

Author Comment

by:mayankeagle
ID: 9895420
Well, there is nothing right or wrong in these. So I decided to give points to everyone who participated. And a few more points go to Alf (Salte) and leeprovoost for their extra contributions.

Say, I might not find time very soon for another such discussion, but this one was really interesting. I suggest those who have not read it entirely should make out time and go through it once. Anyone else has any discussions of this kind in mind?

Cheers,
Mayank.
0

Featured Post

Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Introduction This article is the second of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers the basic installation and configuration of the test automation tools used by…
This is about my first experience with programming Arduino.
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.
This video teaches viewers about errors in exception handling.

758 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now