The Microsoft .NET Framework SDK version 1.1 includes everything developers need to write, build, test, and deploy .NET Framework applications—documentation, samples, and command-line tools and compilers. You must install the .NET Framework Redistributable Package version 1.1 prior to installing the .NET Framework SDK. The Microsoft Visual J# .NET version 1.1 Redistributable Package includes everything you need to run your Visual J# .NET applications on a computer that already has the Microsoft .NET Framework version 1.1 installed.
This is not a rant, but *why* would anybody use j#?
It is dying slowly, in favor of C# …
Yes, that is the point of J#. J# is nothing but the a “migration solution for Java programmers” to migrate easier to C# with time. Microsoft themselves they wrote that they will only support J# up to 2005 I think, which makes it more obvious that it is nothing but a migration solution and not the main focus of .NET programming languages at MS.
Similar to J#, MS apparently doesn’t care about C++ either, having not bothered with a forms designer in the first .NET release (though I read it will be in the 2003 release).
So C# is the “One True Way”(TM)? Wow. MS applications written in an MS language running on an MS operating system powered on MS (palladium) hardware. MS really won’t be happy until they have control over every executable byte on your computer, will they?
Come on now Rayiner, that was a troll.
MS is offering a full solution, they evolve, they believe that C++ and C# is the way to go for the kind of application their platform supports, and they go for it. What’s wrong with that?
You like Linux, stay with the choice of Linux. MS offers the full platform as a complete solution, so it is not the same kind of thing.
>MS applications written in an MS language [there is choice] running on an MS operating system powered on MS (palladium) hardware.
change that to:
Mac applications written in an Apple language (Objc) [there is choice though] running on an Apple operating system powered on Apple hardware-only.
Now, change the above to SGI/IRIX as well.
How is that any different? See, your comment is just one big troll. Come one Rayiner, you can do better than going so low.
I’d say there’s a fairly significant difference between those cases, for several reasons:
1) This is nitpicking, but Apple didn’t invent Obj-C, Next did.
More significantly though,
2) All of the other platforms you mentioned have been closed from day one. The MS case is different in that you have what is now an open hardware platform with many different vendors participating, and you have one company trying in essence to subvert that.
>This is nitpicking, but Apple didn’t invent Obj-C, Next did.
That does not matter one bit. Apple is the only platform that uses Objc as its main language and it “pushes” the developers to use it instead of Carbon, the same way MS tries to push .NET instead of traditionall MFCs. Additionally, Apple owns NeXT.
Managed C++ is a major focus of this release – along with mobile apps, bug fixes, security improvements, and a number of useful improvements in the IDE.
C#, VB and C++ are all first class languages in .NET, and they all have their own advantages and disadvantages. C#, for instance, is my personal favourite as it is clean, uncomplicated, but powerful; it is quite clear that a lot has been learned from the Java, C++ and VB6 experience.
MC++, on the other hand, offers a great environment for wrapping unmanged code, and is the only language at present offering any kind of generics implementation (at a language, not a runtime level – we have to wait for the next version for that). It is definitely the place where the managed and unmanaged worlds meet in a powerful but complex fashion. I was a C++ programmer for the best part of 10 years, and I’m glad I’ve left that particular bleeding edge behind (but that’s just me; C++ was my second compsci love, after years of thinking that 680×0 assembly was way better than C)
VB is a much more powerful language than it has been previously; in fact, because it has so many changes from VB6, some VB programmers have been on quite a steep learning curve, but it is worth it in the end. VB is most definitely a first class language on this platform.
Whatever language you choose, you have the power of interop with other languages, and the extensive framework class libraries to draw on (A particularly cool side effectg of this is that you can use the VB6-alike support classes from other languages, if you so wish).
J# is, on the other hand, a migration tool. It is a set of class libraries and language implementation to support running existing Java codebases on the .NET runtime. If you’ve got acres of existing business logic in Java, there’s no point in porting it all, when it is bound to change and get phased out over the next couple of years, anyway, as business processes change. So J# offers you a route in to .NET development without canning your existing investment.
I understand that there is some thought to creating a more ‘personalized’ experience in future versions of the IDE; VB getting a more ‘RAD-like’ configuration of the editor, different benefits for C# and C++ programmers. A great deal is being invested in making this a great developer experience, because that is the key to MS success so far – attracting and keeping developers.
Don’t even waste your time reading about Managed C++ … it’s C++ made incredibly ugly with all kinds of proprietary and none-standard extensions.
Microsoft has stated that C++ will still be their main implementation language many times. And, if you want, you can still do Windows programming in C.
J# is, on the other hand, a migration tool. It is a set of class libraries and language implementation to support running existing Java codebases on the .NET runtime. If you’ve got acres of existing business logic in Java, there’s no point in porting it all, when it is bound to change and get phased out over the next couple of years, anyway, as business processes change. So J# offers you a route in to .NET development without canning your existing investment.
While I can see the need for MS to come up with a tool that helps people convert existing Java code to .NET, J# certainly isn’t the answer. It only supports Java 1.1, which was the standard way back in ’97/early ’98.
It is literally useless for migrating current Java code.
There are other tools to fully migrate your Java code directly to C# if needed.
It is certainly true to say that Managed C++ contains a great number of annotative warts which allow you to decorate the code with various pieces of metadata. This metadata is used to do such things as mark the code as managed as opposed to unmanaged. [Note that you can mix managed and unmanaged code in the same assembly; this is the only lanugage in which this is currently possible, and makes it great for interop]. These attributes and annotations replace the old mixture of IDL and compile-time directives that used to annotate componentized code in days of COM and CORBA. As such, there is a fairly steep learning curve to getting it right. But if you want the power and danger of C++ in a managed world, you have that choice.
But don’t get confused between Managed C++ and the Unmanaged C++. If you’re talking about a standard, native application, then there is the implementation of C++ in VS.NET 2003 (and I say again – this is *nothing* to do with the .NET framework 1.1, but will be shipping on the 24th April) This C++ implementation, which compiles to native x86 code, is one of the most standards compliant, high-performance implementations available on x86 plaforms today. It is certainly streets ahead of previous MS C++ implementations in terms of standards compliance, and is a good example of MS delivering on their promise to keep C++ as a first-class language.
As a sidebar to this, the Qt is a GUI app framework broadly equivalent to the managed System.Windows.Forms, whereas MC++ is a language – a version of C++ that can be compiled to target the .NET runtime. I don’t understand how you could ‘use’ Qt instead of MC++?
All that said, I’m not saying you should throw away GCC and Qt and all the rest of it – especially if you are not developing applications for MS platforms. I’m not trying to persuade you that MS is better than X or Y or Z. I’m trying to point out a couple of (what I believe are) misconceptions about the relative importance of different languages to MS, the nature of managed and unmanaged implementations of those languages, and the difference between the languages, the runtime and the framework class libraries. I’m also stressing the improvement of the product *relative to previous MS products* in the area.
First, I was being slightly facetious when I posted my original comment. The point was to get people thinking about the ramifications of such a situation, not to present something as a face-value truth. If I was trying to present a face-value truth, I would’ve given some hard facts
Brad Cox invented Objective C in the 80’s. It wasn’t used by NeXT until the beginning of the 90’s. NeXT was mostly composed of external technologies. The kernel was a mix of Mach and BSD. The GUI was based on Postscript. OpenStep was released as an open standard. NeXT is probably the worst example you could have chosen.
The Apple/SGI reference makes no sense. SGI makes the OS and the hardware. This is the standard closed-platform situation. Most of the applications (excepting Maya, which was bought by SGI recently) are made by third parties. Same thing with Sun, and (mostly, excepting the iApps) Apple. These closed platform vendors supply management utilities and development tools, and (in the case of Apple) some small scale convenience software, but they don’t go into wholesale competition with companies making products for their platform. Microsoft makes everything from the OS, to the browser, to the mail client, to the office suite, to the IDE, the utilities, you name it. That’s just unhealthy.
Next, the traditional “closed-platform” vendors are moving towards more open platforms. An Apple computer is mostly composed of standard parts, SGI uses NVIDIA graphics cards in some machines, Sun uses x86 in some servers, and may use opteron, IBM and SGI are both moving to Itanium. With Palladium, Microsoft is moving towards a move closed platform.
Eugenia, this has nothing to do with Linux, or Windows. I did not say Linux *once* in my post. The idea of a monopoly corporation extending their hold to yet another segment of the software industry does not sit well with me. There is no other industry as psychotically monopolized as the computer industry. There is no need for the situation to go a step further. Microsoft is a rich, powerful company. There is nothing inherently wrong with being rich and powerful. There are plenty of rich, powerful corporations out there: Sony, GM, and IBM are all larger than Microsoft. Unlike Microsoft, they play by the rules. IBM broke the rules once, and it was punished for it. AT&T broke the rules, and it too was punished. If you take a look at their respective markets today, there is a healthy competition in all of them. In due time, Microsoft too, will be punished. It is economically unfeasible for the DOJ to do so now, but they’ve already been found guilty, and they are doing nothing to change their behavior. But in a proper capitalistic society, it is the consumer’s that are supposed to act. But I’m afraid that these consumers have been so lulled by “ease of use” and “complete solutions” that they no longer have the strength to do so.
I have to agree with you. What I don’t understand is this, they talk about “lock in” yet, these are the same so-called “programmers” quite happy to use the Win32 API and DirectX. No one is holding a gun to these people’s head and saying “you must programme in C#” and as for standardisation, after looking at what is standardised, the most important bit, the language, is standardised. Should I say that C++ is a proper openstandard because there is no standard user interface toolkit? same goes for C#.
As for mono, it is getting there, winforms support is progressing and once it is ready I will be happy when the naysayers eat their words and take a good slice of humble pie.
If I understand correctly C++ now is more like VB in terms of the drawing of forms and assigning code to controls, also, I have heard that you can now use winforms over MFC and other TLA’s that Microsoft has. If that is the case then development for many should be made easier.
As for Visual Basic, unfortunately I had the horror of learning it at University, eeek, all I can say is thank god there was a C++ paper as well. Funny enough I found C++ much easier and cleaner than VB.
Why transfer you Java code to C#?! If you are a real java developer then what is your excuse for using C#. Microsoft again steels from someone else. First Windows from Apple, then Word from WordPerfect, then IE from Netscape and now C# from Java. Whole concept behind the .Net is just inventing the wheel again. Why should any body waste his/her time on converting say log4j to log4net! There are free tools out there. Why not try eclipse, or JBoss on Linux. They are much better alternatives to M$ monopoly.
Anyone wanna give me a quick overview of what’s new? We use 1.0 at work currently, just wondering if there are any major gotchas or cool features with this update.
Nobody says you have to use Office. But you do.
Nobody says you have to use Visual C++. But you do.
Nobody says you have to use Windows. But you do.
Just because Microsoft doesn’t say you have to do something, doesn’t mean it’s not true. In any other situation, it wouldn’t be. But when you’re dealing with a monopoly (which, according to the DOJ, MS is) the normal rules of capitalism don’t apply.
jump over to http://www.microsoft.com and RTFMSDN (Read the friendly MSDN), there is a number of articles on the changes and what may needed to be changed in current code ot accomidate bug fixes that may break compatibility.
>Why transfer you Java code to C#?
Because it has properties, events, operator overloading and other useful features of a mondern programming languages. Difference between java and C# like Turbo Pascal and Object Pascal (Delphi).
C++ has always had drag and drop capability, even back in ’97. It was called C++ Builder, and I have always found GUI programming with it far simpler than anything MS has offered. Don’t get me wrong. MFC is nice, but nothing beats Drag and Drop RAD.
Sure, there are other tools to help migrate Java code to C#, but code migration something that J# is meant to do? I mean, what other possible reason could it have for existing?
“Because it has properties, events, operator overloading and other useful features of a mondern programming languages.”
So C++ is not even a modern programming language, huh? How many these “modern languages” with properties and events are there?
“Difference between java and C# like Turbo Pascal and Object Pascal (Delphi).”
No, it’s like Java and Java with a bunch of stuff that can easily be done by an IDE but instead pushed into the language itself which makes it more complicated to use.
The CLR does have some advantages over JVM right now, but I don’t see C# has any real advantage over Java.
C# has some big advantages over java:
-Value types (make implementing stuff like vectors or complex numbers orders of magnitudee faster)
-Operator overloading (lets you define complex, vector or matrix classes that behave just like basic data types)
-Typesafe enums. (Java will have those in 1.5, but that is still a year away.)
-Properties look much nicer than getter/setter methods:
instance.Property++;
vs.
instance.setProperty(instance.getProperty()+1);
I do not know about you, but that is enough for me.
But java has inner classes, which is also very nice and consistent with the OO paradigm.
I tried the 1.1beta just before the final release of 1.1. It had some problems with SharpDevelop (crashes with tooltips)