Java vs .NET
CHaN_316 writes "Yahoo is running a story called 'Is Java Finished?' It provides a brief overview of the strengths and weaknesses of J2EE and contrasts them with .NET. Classic arguments are brought up like Java being great for portability while .NET ties you down to Microsoft products, etc. It's interesting that they bring up the Java Community Process, and how it is a rather slow moving procedure that is causing Java to become stagnant."
Dot Net doesn't look like a developer panacea just yet. If Sun keeps the enhancements coming and works to bring the development environment up to Visual Studio's standards (Yes, VS has its problems, but it has a lot of unique tools, like compile-and-continue, which save hours!), Java may well survive.
Dot Net is also anything but small. It's possible to create ROMmable Java applications in just a couple megs of flash memory. On the other hand, there's no such thing as embedded dot Net just yet. And if they continue with the execution model they've currently got, any piece of code is going to net a ROM many times larger than what's possible with Java. Either way, I'll want $699 for my fp, beeyotch.
Well, obviously .NET is better, since IT'S WRITTEN IN ALL CAPS.
The ".Net only works on Microsoft" is more than just a classic arguement. In fact, I think it's the most important factor to take into account.
.Net will never take off. After all, it hasn't during the 3 years its been out.
If I want to make some simple embedded device, if I have to option to use Java instead of having to license Windows CE for my product, why would I ever choose MS over Java?
Java vs .NET
Hrm, reminds me of when two fat ugly chicks in my high school started a cat fight in the hallway.
"Quoting famous computer scientists out of context is the root of all evil (or at least most of it) in programming." - K
I think there are several Java IDEs, which are better than VS. Try the latest VS.NET, it sucks bug time.
Having worked with both Java and .NET, I would say that things like C#'s foreach statement make for easier and cleaner code, but Java 1.5 will leapfrog C# when it introduces generics along with its own version of foreach, and other timesaving features. Java's big failing, IMHO, is Swing. It is too big and too clunky, Java is crying out for a stripped down GUI library that is part of the API spec that will be as easy to work wit
One of them is controlled by an evil monopoly that refuses to turn control over to an international standards organization, while the other is a Microsoft product!
"Freedom means freedom for everybody" -- Dick Cheney
What, a meaningful FP? I knew we couldn't trust you Darl...
"Faith: Belief without evidence in what is told by one who speaks without knowledge, of things without parallel." - A.B.
...the "BSD is dying" troll when you need him? This is a perfect opportunity for a cut-n-paste troll.
Learning HOW to think is more important than learning WHAT to think.
causing Java to become stagnant
Why would we not want a language to be stagnant? I wonder how much time is wasted just trying to keep up with changes to languages and development environments?
Begun, the Clone() war has.
Just raise the taxes on crack.
Whilst Java and .NET struggle for supremacy, APL shall return from the tomb of history triumphant once more. And there shall be much wailing and gnashing of teeth among the Javites and the unwashed .NET.ITES, but they will all perish as the light of a new Golden Age dawns, and the thousand year reign of APL begins anew.
Roving Web-Teleoperated Robot
When was the last time you used a .NET program? I know I can't remember. When was the last time you used a java program? Oh, just a few minutes ago myself. Besides, how can .NET ever really be a long term (it might be a short term) threat to java, since you'll never be able to use .NET on anything but Windows.
Good thing there isn't an "Ignorant" moderation title, I'd probably get it.
I know you're trolling but, How is java related open sourced? I can not get the javac.exe source code. And both products offer their SDKs for free so I don't see how this can be compared.
Java isn't open source.
"Freedom means freedom for everybody" -- Dick Cheney
Of course we all know that we aren't tied to MS products with .NET! That's what the Mono project is for. I believe that having one standardized framework is an excellent concept. That way you can maintain one set of source files and portability issues are left to the developers of the framework. This is what Java is, but it runs on a virtual machine, and I think it's slow. I also hear that C# has a runtime environment. Any insight on that is much appreciated. But I still think that compiled source is the best, just one framework for writing applications would be nice.
You failed like JAVA! And the AC troll succeeded like .NET. Owned scrub!
Dot Net is also anything but small. It's possible to create ROMmable Java applications in just a couple megs of flash memory. On the other hand, there's no such thing as embedded dot Net just yet.
.NET for enterprise/distributed computing.
Which sums up the whole apples vs oranges nature of this "debate" quite nicely. Java was developed for embedded systems,
Now Sun is trying to shoehorn Java into the enterprise world, and perhaps MSFT will try and do the opposite.
I don't need no instructions to know how to rock!!!!
.NET ? Blowing J2EE out of the water ?
.NET ?
Are you serious ? Then:
Where is the appserver that runs
Can you cluster that appserver like J2EE-appservers ?
none of them are working.
From the article:
The slowness of the JCP holds up the creation of additional standards and services, he pointed out. In addition, standards proposals aimed at portability -- Java's strong suit -- are also stagnant.... "In the meantime, people want faster, easier development."
Golly, I like slow, careful, and secure development of my enterprise backbone software. People may want faster inclusion of features, but they need stability and security.
The latest flashy feature doesn't do shit if your enterprise backbone is crashing or being hacked into oblivion.
You would think that a language or API that doesn't change every day would be praised with words such as "standardized" "stable" and "established".
But in Bizarro World (where we all are apparently living), we criticize it as "stagnant" and "slow moving".
Compare with the OpenGL/Direct3D discussions.
Carpenters don't buy from hammer companies that change their hammers every "release".
ZDNet has a nice article about .Net advantages over Java.
By the way, ASP.NET rocks!
Compile and Continue is sooo annoying.
Works unpredictably, and if I forget I was running debugger when I start editing code, I get to wait for a few minutes while it fires up cthulhu knows what.
Any article that asks that question is automatically crap. Period. End of discussion.
Business isn't willing to pay for products, innovation and careers, so we get brands, mortgage commercials and layoffs.
Most simple programming people don't really understand or care too much about the details of the language or VM design (e.g. checked/unchecked exception model) as long as the main paradigm and features are similar. But they really care about tools, and how easy one or another IDE makes it to throw together a simple app. And since so far the majority of reviews and user opinions favor VS.Net, Java will indeed face some hard times.
When men used to be men
.NET allows me to "point and click" programming, while JAVA forces me to type everything. Personally, I like the ability to hide code behind a series of wizards and forms.
Assembly language
BSD is dying.
I have been developing Java apps for several years now. For the last year and a half or so, while recent releases of the JDK may not have added a ton of new features, they have been making steady improvements in the quality of what is there. Many, many bugs have been resolved, and performance has improved markedly. The APIs have not been entirely stagnant either. Recent JDKs have seen the introduction of several useful new APIs such as XML object serialization (which I have been using extensively) and several others which I'm less familiar with.
On the other hand, Sun could probably benefit in a PR sense from submitting portions of the system to statndards bodies and by using a more liberal open source license in some cases.
I'm very interested in seeing how Java implements generic programming (template programming). That's an area where it currently falls down.
Java originally promised to become a small, universal client-side platform for the delivery of applications to clients over the web. Java has almost completely failed in that mission: Flash is far more widely used, no browsers ship with the latest version of Java, and even if you stick to Java 1.1, there are numerous compatibility problems.
.NET will continue to exist in that space as well and probably take away market share. And because Sun's restrictive licenses on both the implementation and the specification of Java, I suspect Java has seen its best days in the open source world.
.NET, .NET is simply more of what Microsoft has always given us: a proprietary platform completely controlled by Microsoft. It's not primarily an alternative to Java, it's simply what Microsoft programmers will move to from MFC and Win32. Thankfully, it's at least a lot cleaner than Microsoft's previous APIs and systems.
What Java has become instead is a semi-open server-side platform. It's quite successful at that, but it is only one of many platforms in that space. PHP, Perl, Python, and
Now, about
So, Java has failed to become what it originally promised to become, but it is a fairly successful platform that won't disappear overnight. But Sun's dreams of industry domination are pipe dreams. Java could have become much bigger and more important than it has become, but Sun screwed up (and is continuing to screw up).
There are plenty of Java IDEs that simply blow Visual Studio out of the water in terms of functionality at the moment.
:)
The Eclipse project, to name a free one - IntelliJ IDEA, maybe Borland JBuilder.. Unless of course you're talking about SunONE Studio, in which case, I agree.
J2EE is written in all caps too.
Since when has the development of the Java platform been 'stagnant' ??
.NET, and there are plenty of bad things you can come up with about the JCP, but... to say Java isn't advancing is pure and total bullshit.
That statement must be a troll of some kind. The number of new APIs included in each release of the JDK just keeps going up and up, adding some pretty major areas of functionality in doing so... and the number of rather fundamental additions to the language itself that are comming through the community process for the next release are pretty big.
In short, the notion that Java is somehow not advancing due to the JCP is utter bullshit. I'd link to java.sun.com stuff, but either you know I'm right, or you can find out yourself, or you don't care.
Hey, use whatever tool gets the job done- if you don't mind being locked into Microsoft, use
Personally, I actually think Java has if anything been growing *too* quickly in some ways, though it's not nearly as crazy as it was in the early days.
As long as linux is successful in keeping itself as the OS of choice for the server side, J2EE will not lose its position to .NET
With linux, clustering on your server side is nearly free. Lets see Microsoft match that with its servers for .NET
Siggy Say, Siggy Do
Java, to me, seems like being in an abusive relationship. I've tried it and couldn't grasp it, then left for a while. Came back with more knowledge and was disappointed by speed (ran on a slow machine while trying IDEs from Borland and Forte).
.NET at all. I've read about Project Mono, but that's about it. :)
There seems to be a great promise there and I keep coming back to try to learn it but it seems I always leave disappointed. Then again, it's a matter of time and commitment, I suppose.
Anyone know any good/quick IDEs for Java? (that would install on a RH9 distro, that is) Having said that, I haven't tried
Being a caffeine junkie, I'm sure there's bonus points for coding in java.
No Java has already been shoehorned in a long time ago. You just weren't paying attention. Also, just because the JCP goes slow, doesn't mean Java is stagnant. It means the JCP is slow. Trying look at jakarta.apache.org, and then tell me all this bs about stagnation and ill-suited purpose.
Occam's razor is the blind faith in the natural selection of least resistance and in universal oversimplification. -- EF
Strangely enough, I found that I was having some perf problems in my library functions that exactly modeled what MFC was doing in it's calls to the MS ODBC dll.
After quite some digging, I found that a call to a DLL function with exactly the same parameters by my API as opposed to an MFC call to the dll was way slower and in at least one case gave different results. Please note that I'm talking about perf on the function call alone, all other things being constant
Conclusion:MFC was 'rigged' to perform better with the MS ODBC DLL than a third party function call.
It wouldnt surprise me if there were similar reasons for performance differences between .NET and J2EE - thoughts?
I appreciate that the metadata is the managed code and the Language neutrality of the project, but I"ve always said that questions need to answered about if this is really just a new way to try to kill Java, and how nice it'll play with projects like Mono after it takes off.
CB
free ipod and free gmail!
Although not so much when they're dead.
Which leads to "portable".
Which Microsoft hates.
...easy to work with as Microsoft's GUI stuff.
From the article: .NET will have the edge in some head-to-head comparisons."
.NET is extremely similar to Java - C# quite a bit and even VB.NET to a certain extent.
.NET for reasons I can't understand.
"...because Java traditionally is considered more complex and difficult to use,
I honestly don't know where this idea came from. I've worked in both environments and a lot of
From reading the article, it seems to be slanted towards
I run the same Java apps on Windows and FreeBSD all the time. Most good apps have no trouble crossing platforms. The only major sticking point is Swing or (especially) AWT, which are implemented with varying degrees of quality across platforms.
I read the internet for the articles.
Sounds like more MS FUD to me. So how many times has Java been declared dead/ dying now? .NET.
Where I work (for a DoD agency) we are developing J2EE solutions with open source tools in part to get away from vendor lock in, something that MS is particularly bad with. Once MS ratchets up the lock in with the introduction of DRM in Office file formats, I think MS solutions as a whole are going to become less attractive, and this will be a strong disincentive to adopt
I know this because Tyler knows this.
Java isn't open source.
But J2EE definitly can be:
JBoss,Tomcat, Struts, Tapestry, Velocity etc.
There are 50+ open-source J2EE components and frameworks ATM.
the java runtime and compiler aren't open source, but the API's source code is provided.
But even the API's source code isn't GPL'd though.
The IT section color scheme sucks.
I know you're trying to be funny, but I mark my students' projects using my Mac dual G4. They were developed on PCs and *X boxen, but I run them on my own machine. If there are problems, we have a serious chat.
I teach advanced object oriented design and security. It keeps food on the table.
Is Java finished?
Of course it is... and this late in the day it's time to switch over to beer anyway.
OK, Darl -- IHBT once. You're not getting me twice.
If it's UI-based, .NET blows the doors off of Java. The design tools are so much better and the UI objects actually work the way they're supposed to. Swing is one royal PITA if you ask me, with lots of bizarre implementations, bugs, and poor interoperability with the native windowing system in many if not most cases.
If it's server based then J2EE holds an upper hand in more than just portability. Most of the J2EE containers out there have application build environments that are at least as good as VS.NET and since they tend to run on more scalable hardware they're easier to deploy for large sites. Various mature application frameworks are available too.
The thing to remember about .NET is that it's really Microsoft's Java repackaged in a form that Sun can't sue them over. It has most of the JDK 1.1 libraries pretty much intact but with package and method names changed. But they did a very nice job in fixing a lot of issues that Java has.
In particular .NET's assembly management beats the heck out of collections of jar files.
YMMV, but if you're building a client and you don't absolutely need multi-OS support then you should really look at .NET. If you're building a small server it's probably worth a look too, ASP.NET forms are very easy to construct and they have decent tools for working with MSQL. But if you want a large-scale system I would not consider it, they need to work a lot harder on deployment issues and scalability of the base OS.
jim frost
jimf@frostbytes.com
such as cell phones (J2ME) and Linux? From what I understand MS has no presence on cell phones (and there are a lot more cell phones than desktops) and they'll do their best to avoid needing to have a presence on Linux (i.e. bribe a down-and-out company to try and take out Linux in the courts).
.NOT.
I think Sun has done a great job promoting Java on a variety of platforms, so I think McNealy isn't concerned about
smd4985
this is about the first intelligent thing posted on this topic.
god I'm sick of this... how about we argue about "Blue v. Red" or "Tastes Great v. Less Filling".
and later,
Huh? So first this article complains that Java is too complicated and needs to be simpler. Then it complains that Sun makes it hard to add new features (i.e. complexity) to the platform.
I'll say it again...Huh?!?
I think the JCP moves at just the right speed. If you change a language too quickly, make it harder for everyone to keep up. If you move to slowly, the language/platform won't be able to keep up with current technology. It should be hard to add things to the Java platform. A lot of people have a lot of different ideas about what Java should be. Sun tries to make sure only the best of the best gets integrated into the core platform. Anything else can be left as a 3rd party library (like AspectJ for example).
A great man once said, "The Law should be stable but never stand still". Programming languages and platforms are the same way. Turning the JCP into a rubber stamp for new, unproven ideas isn't going to do anyone any good.
Both of those are way too bloated. All that fancy graphics and such. Give me a 2600 any day.
Actually
I mean GUI programs. "Windows Forms" is what I believe most Microsoft developers call them.
In other words, Visual Basic Applications. C++ Applications.
ASP.NET == Web Applications.
Every company, paniced about being left behind in technology, unnecessarily rewrote all their systems in Java.
.NET.
Suckered by the marketing, they now have to reinvent the wheel - already written by Mainframe technology.
Java runs slower than ever and is a big resource PIG. Compare MF and Java Server times and see.
Now everyone will feel the need to jump to
SUCKERS.
I was thinking of a stoned hot slut(free as in beer) fighting a stoned fat chick. (In Soviet Redmond, all the fights are composed of fat chicks.)
You can't judge a book by the way it wears its hair.
I would try my best as usual to avoid both. Say I have to produce distributed networked applications that are portable. I'll just use QT. Say it has to be used in embedded systems too. I'll use ANSI C using gcc compilers everywhere, and use #ifdefs to make up for the difference.
.NET and Java to be efficient enough to be worth it. I'd rather hire more expensive coders who can do C/C++. I know it is 2003, but even for the most complex applications, I enjoy trying to run it on my Pentium 200MHz 48mbRAM 2GB hdd system with Windows 95 to check how lean and mean the code is. Just compare Opera with Mozilla and tell me what you like.
Therefore, I'll save my company big bucks, since they'll use less ram and storage to save and run the code. They'll also need lesser CPU/MPUs.
Say I have to work on an ERP system. The same combination comes up. I'll use a good database that runs on many platforms (DB2? Firebird? pgsql?) and the GUI frontend will use QT or glib or fltk or the likes.
I havent found abstraction layers (virtual machines?) like
"Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
I know you're trolling but, How is java related open sourced? I can not get the javac.exe source code.
Please follow along carefully:
1) Go to http://java.sun.com.
2) Click the button labelled "J2SE - Core Java Software". It's the big blue button in the middle.
3) On the next page, click "Source Licensing". It's in the links on the left-hand side of the page.
4) On the Source Licensing page, click "Download".
5) Follow the directions to download the entire J2SDK source code.
Now, what was that about the source code not being available?
ZFS: because love is never having to say fsck
Well actually, they acknowledge that there will probably be flames over this:
.NET and Java, I don't mind using .NET for a quickly designed app which I believe will be restricted to windows users. Moreover, VStudio.NET is very nice if you have old VStudio 6 code which you can import (although in many cases C syntax is similar in Java as well).
from the flamebait dept.
However, I think that really in many cases it's not so much a matter of the language as a matter of the project. Just like the C++ VS Vbasic flames, I'd take C++ over VB for most important projects, but a simple quick GUI app I'd prefer VB.
In the case of
I'm still waiting for the day when I can use a Perl-type language, with the true power of hashes, hashrefs, and regexps, on a full-blown compiled GUI app...
I mean c'mon, this idiot gets a 1 just because he's logged in? That is so unfair, he needs a -3 for being an idiot.
/. these days...
I've worked for the past 10 years at various companies where the same Java program runs on at _least_ Sun and Wintel machines, if not others. Good companies who market said Java-based products and are still in business after the dot-com buts. I know of hundreds of other developers ( counting some I know through mailing lists ) who work in similar situations.
I personally write Swing-based UI programs in Java... and why? So they run on both PC and Mac OS X machines, which they do beautifully. The OS X 1.4.1 JVM is still a bit immature, but it's definitely usable. Of course, no VMs are as good as the Windows and Solaris VMs, but that's because Sun writes them, and has been doing so for years, duh!
Seriously, the idiots on
I program windows applications for a living. The productivity increases from .Net are just amazing. Plus it grants easy access to the Windows API for any "bare metal" stuff you need. After the Swing travesty I swore off developing Java client applications on Windows forever. Is Java dead on the Windows desktop? Yes. Does C# vastly improve the Java library? Yes. Is Java in danger in niche markets like embedded software or true cross platform server side stuff? No.
I swear its seems like 90% of the people who post to Slashdot never wrote a professional line of code in their life. The client doesn't care what language you use. They want something done as fast as possible for as cheap as possible that still meets their needs.
This topic is stupid and frankly also a bit homosexual.
http://www.microsoft.com/mobile/smartphone/
...the best comment from Kuro5hin was that the only thing he likes about .NET is that VB's backwards compatibility is broken so maybe folks will learn a real language...
This article is from NewsFactor. They crank out content-less drivel like this every day. You would be hard-pressed to find a less-informed news source about IT. The fact that this made it onto Yahoo is not surprising, since it's just a feed, but the fact that it got picked up (and thus legitimized) by Slashdot amazes me.
" Compile and Continue is sooo annoying.
Works unpredictably, and if I forget I was running debugger when I start editing code, I get to wait for a few minutes while it fires up cthulhu knows what."
So, don't forget.
I checked on Java on it's early days when Sun had Engineers. Henry Wong I think was ( about 5/6 yrs back, don't actually remember who else was there) conducting the seminars.
Sun had a great promise. But, it is still a promise. I have seen so much bullshit around that language and half-progrmmers posing as object Gurus etc. etc. made me really sick.
Saga continued, DOT.COM made our company rich but Java made us poor.
We blew over 5 mil behind a product with good and bad programmers but still that product did to gain any ground. The we added some good marketing people ( yes they exist ) with lot of effort they made it barely sellable.
If Sun were spending half as much energy behind the hardware division their stock will not be in single digits today !
Now-a-days, when I go through resumes of new/experienced programmer, knowing Java AND not knowing C or PERL is a disqualification to me--these people will never get through the door.
There is no such thing as Java Programmer--either you are programer and program whatever language come in your way or you are just a total waste of space.
So, I guess, end of Java will end of lot of stupid people who should not have in the programming profession in the first place.
whatever
- People who believe other people have no right to live, got no right to live ...
It's not dead, it's just sleeping...
- "Java's not exactly deceased."
- "Java's not exactly no more."
- "Java's not exactly ceased to be."
- "Java's not exactly expired and gone to meet its maker."
- "Java's not exactly a stiff."
- "Java's not exactly bereft of life."
- "Java's doesn't exactly rest in peace."
- "Java's not exactly pushing up the daisies."
- "Java's not exactly run down the curtain and joined the choir invisible."
- "Java's not exactly and ex-dev-platform."
You know, just for correctness sake.... how do we know stuff like this isn't just pulled out of somebody's ass?
How about a webpage explaining the results in detail with code to reproduce them?
Otherwise, people are just too damn gullible.
I loved APL in college and almost went to work for a company that was writing everything in APL. Then I came to my senses.
-=- Many seek good nights and lose good days.
I think MS is taking the opposite approach, but not on the size scale side.
.NET, and solves one real life problem that no other solution brings to the table, cross language compatibility.
.NET solves.
.NET becomes truly cross platform, great.
I am currently developing in
I can't remember the last time I had to develop a client (not web) application that had to run on 2 or more platforms.
In all my years, no one has ever said to me "build me such and such and make sure it runs on unix and windows without recompilation".
However, I have been on many teams where everyone knew a different language or paradigm.
This is the problem that
The VB and OO coders can finally work together and speak the same APIs.
If
Can't say that it will make a difference to me since I guess I'm the only person in the world who knows what platform they are devloping for up front.
Another way of looking at it is that Java is too encumbered by intellectual property--copyrights, patents, and licenses--held in part by Sun and in part by an industry consortium (JCP). Anybody that builds applications on top of Java becomes as dependent on Sun as people who write Windows software become dependent on Microsoft. While there are plenty of open source projects for both Java and Windows, ultimately, that is not a good state of affairs for open source developers.
WORA made sense for Java's original purpose in life, that of a thin, universal client platform. WORA makes no sense for Linux developers trying to develop high-quality Linux applications. (And, frankly, I think Windows programmers are saying the same about Java on Windows, which is why
Java held a lot of promise for open source development at one point, but I think that's over now. The Java platform will continue to be used widely in many commercial (and some free) server-side applications. Subsets of Java will be used in teaching and research. And you will see more and more partial clones of Java appearaing. Open source will probably continue with a mix of languages. gcj+SWT, which implements the Java language but not the Sun APIs, may achieve modest popularity. Mono+Gtk# may become fairly popular (but the
It's not up to developers. Regardless of developer preferences or platform capabilities, when the right sales people talk to the right managers, the
lest we forget that microsoft did -not- shut down the open source .Net compatible project, i'll even grant a link.
.net hasn't taken off, I most strongly disagree. Any company whose business requirements have them developing more than a single application for windows have nearly all converted to .Net in my experience.
.Net framework. The problem with the perceived lack of adoption, is the broad branding of the development tools -and- the internet services as .Net.
.Net web services has hardly budged (aside from some passport authentication). However, the framework and the development advances are most certainly in use.
.Net only works on Microsoft - but the fact that it -does- work on 95% of business desktops (as opposed to Java which requires significant finicking to get going on those same desktops) is also a benefit for those who are dealing with business realities and not philosophical preferences.
Mono
As for a claim that
with finalization on install, there is absolutely no performance loss between straight-C and C#. in fact, depending on your straight-C compiler, the C# code can run better (finalization takes specific processor optimizations into account).
every coder i know that develops windows apps is working within the
True, widespread adoption of the
granted, this is based only on my own personal experience, but i deal with a number of vendors, and have a great number of contacts and coworkers whose experiences agree.
yes,
// "Can't clowns and pirates just -try- to get along?"
With that out of the way I looked up the Sun's pet shop program example in Java and then the MS version in C#.
Look at the lines of code in the MS version? The gui portition has an 8th of the code that the java version has. Also version 2 of Microsoft's
You can do alot of things with
I heard the libraries cover more areas then Java but they are thinner then the ones Java already covers. Also C# supports enumators, pointers ( yes they are evil), and cross language support and integration. Java 1.5 is playing catchup.
http://saveie6.com/
" Java portable? Isn't that an urban legend? "
Nope, we run the same Java app on Windows and Linux without changing anything, not even a recompile.
-- Jason
Java's philosophy of development is to expose low-level system interfaces to give developers greater control. Microsoft simplifies the development process; the developer has less control -- but the tools are easier to use.
.NET and Java and I've found Java's toolset to be much easier to use. This is simply due to the fact that there are many more vendors (open-source and commercial) that provide Java products. I can pick and choose which tools fit the particular project that I'm working on, and those tools will also run on any platform that Java runs on, so I'm not locked into a particular operating system while I'm doing development. I can decide to work in Linux one day and Windows the next, and use the exact same toolset for both.
.NET is simpler. But in that case I'll take complicated over simple any day of the week.
Says who?
I've developed applications in both
So I guess if your definition of simple is "you will use this tool and like it", then yeah,
Hey, you're lucky if you can even run the same Java app from release to release on a single platform, never mind multiple platforms.
If I had mod points, you know what I'd do.
- Isn't that an urban legend?
Nope. It's a f***in' lie. Java craplets running inside a web browser tend to work more/less the same on any platform. However, java crapplications are very, very different.The Copper Mountain DLSAM management application(s) are 100% java (both the server and the clients.) The client works ok on solaris and very well on windows. But it looks like recycled dog poo everywhere else. The server code works (for various definitions) under solaris and linux, but ain't too hot under windows. AND, it is 100% dependant on the supplied VM version (1.3.1)
I have a java application (news "reader" thing) that runs almost anywhere, however, the GUI look/layout is dependant on the OS and VM version. It wasn't until 1.4.2 that the fonts were the same size everywhere -- windows: fine, solaris: fonts are one freakin' pixel high or 10x larger.
Seriously, the article is an example of a stupid editor putting a sensationalist headline on a fairly reasonable article.
"And this is my boy, Sherman. Speak, Sherman." "Hello." "Good boy."
Um, excuse me, but it's very possible to create full-featured applications in assembly in just a couple of kB of flash memory. And in case you hate assembly, you can do the same thing in C++ for around 500 kB, and it will run faster than Java. Remember, embedded devices don't have the screaming fast processors that are needed to make Java appear fast. And they're not likely to have the few hundred megs of RAM that a JVM seems to think it needs, either.
Yeah, Java's nice - for the web. But given that people hate to wait on embedded devices, I can see why it hasn't been widely adopted. And given that embedded devices are often used for critical infrastructure (i.e. utilities, aircraft, nuclear plants, etc...), I'm not sure if I'd trust someone who can't master assembly to write code that controlled a something that could get me killed if an unexpected Out of Memory Exception was raised.
I want fast and I want to cruch lots of data. .NET and java are the way to go.
If it's slow and a small amount of data, I'll use Perl. Hey, if you want to glom together some rube-goldberg get-rich-off-the-support-contract software, then
Can't say that it will make a difference to me since I guess I'm the only person in the world who knows what platform they are devloping for up front.
While the rest of us aren't willing to make that restriction on ourselves.
Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.
Don't mean to sound like a troller - neither appeals to me. I've used Java extensively since 1995 back when it held a promise and felt new and exciting, but now it's kinda tired and the promise has not been delivered. .Net I've only read about, since I'm not big on Windows.
For me - combination of Python and C does everything, I can be truly satisfied with my work, without having to always feel that the end solution is just not as good as it should really be due to some platform limitation. I always have this feeling with Java though.
grisha.org
It may be "source available", but that doesn't make it "open source". Some terms from the licensing agreement:
* Modified source code cannot be distributed without the express written permission of Sun Microsystems, Inc.
* Binary programs built using modified Java 2 SDK source code may not be distributed, internally or externally, without meeting the compatibility and other requirements described in the License Agreement.
"People that quote themselves in their signatures bother me" - athakur999
We all know that the ISO is better than Sun. We all know that C++ is better than Java :-)
Um, excuse me, but it's very possible to create full-featured applications in assembly in just a couple of kB of flash memory. And in case you hate assembly, you can do the same thing in C++ for around 500 kB, and it will run faster than Java. Remember, embedded devices don't have the screaming fast processors that are needed to make Java appear fast. And they're not likely to have the few hundred megs of RAM that a JVM seems to think it needs, either.
Yeah, Java's nice - for the web. But given that people hate to wait on embedded devices, I can see why it hasn't been widely adopted. And given that embedded devices are often used for critical infrastructure (i.e. utilities, aircraft, nuclear plants, etc...), I'm not sure if I'd trust someone who can't master assembly to write code that controlled a something that could get me killed if an unexpected Out of Memory Exception was raised.
If this is true, it will be a first. I've always found MS Windows programming to be a real hit and miss process because the window objects rarely behaved as expected. The documentation was next to useless.
If .NET is great for GUIs, then it's because Java Swing showed the way.
blam... I wonder what kind of java developper you are to even argue about java portability. Java IS portable. You can just download tomcat binaries and KNOW it will work on any OS with the proper jre.... I'm developping java applications for AIX, DIGITAL UNIX, Tru64, Solaris, LINUX I'm doing this on Netbeans (a java ide) on windows and executing them on their target os without any problem. So stop talking of what you don't know trying to be funny...
The more everybody relies on Microsoft technologies the more the world becomes vulnerable and open to bugs, virii, and massive crashes.
Ex: Blaster, SoBig, etc. all in the last few weeks. And the worst part is that we know it won't EVER end.
Ex: Yesterday I went to Subway to eat on my break and I had to waste 1 minutes while the guy behind the counter tried to get his Windows Embedded Register to reboot and crash over and over. I had to scarf down my food fast and get back ASAP so thanks, Bill!
C# is one programming language I've stayed away from--and for no particular reason. I had picked up the C# specification [PDF] in 2000, but never really got down to the canonical "hello world" program. Today in 2003, as I look back, I guess I haven't missed much.
Let's go back to August 2000 and revisit Hejlsberg's famous O'Reilly interview by Josh Osborn.
Not that there's anything wrong with that...
I'll agree with client side stuff, but I've been in a situation in the past where we developed a server size web app (in J2EE) on a single nt4 server (purely for ease of access). Then when we went gold, capacity grew and it moved to a cluster of linux servers. Then when the business picked up and capacity grew in large amounts we moved to a couple Sun E6500s. .NET wouldn't have allowed us to migrate like this.
Compile and Continue? as in java hot code replace? VA had it for 3 years, now with jdk 1.4 you can do this with any java EDI, like Eclipse or Netbeans.
The question shouldn't be "Should I be develping this on .net or J2EE?" It should be "Should I be developing this on the web at all?"
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
manbabies
Well, some days ago, theserverside.com had their frontpage written in .net (borland tools) and talking to the J2EE backend, it almost worked....well it worked mostly...
Whats interesting is that it was done in the first place!!?? What the java community needs is a REAL java news site, pref located under the apache umbrella!!
Most good apps have no trouble crossing platforms. The only major sticking point is Swing or (especially) AWT, which are implemented with varying degrees of quality across platforms.
In most cases it's not the quality of the implementation that makes Swing/AWT a "sticking point". This problem will occur with ANY environment that tries to be platform independent and do anything outside of its VM (like draw things on the screen).
Why? Because there is no 1-to-1 mapping between the event models of different platforms. If you stay inside the VM, yes, you can be completely platform independent. But once you want to do something useful like, oh I don't know, actually interact with the user, you must enter into the event model of the host operating system. Reading mouse clicks. Drawing windows. Responding to system events, etc.
So any environment that claims to be platform independent and present a unified language/API to programmers has to invent its own event model, and somehow map it to the event models of all the target systems as best it can. Since there is no 1-to-1 mapping between the event models of all the OSes it wants to support, the best it can do is an approximation. It will ALWAYS break down somewhere. The irritating thing about Java is that you don't know where. Most Java apps with GUIs are simple enough that you never really encounter a problem like this, but try to make something complex enough with a GUI that interacts with the user in all sorts of interesting ways and eventually you'll come up against these kinds of problems.
This explains more than anything why Java has thrived as a server-side environment.. because for the most part such applications don't interact with the user and can (usually) avoid these problems.
Microsoft of course won't have this problem because they don't have to dream up an API and event model that is all things to all OSes. They can pander to Windows and if it causes problems and ugly approximations on other OSes then they're not going to lose any sleep over it.
Java 4378
C# 705
> On the other hand, there's no such thing as
> embedded dot Net just yet.
Then what the hell is this supposed to be?
Except that assembly and C++ are not binary compatible across multiple embedded devices. Take cell phones for example Your choices are:
1. Port and compile a version of your program for every cell phone in existence (quite a few platforms).
2. Write a Java MIDP application that works on all MIDP enabled phones.
Hmm.... which to choose, which to choose...
Javascript + Nintendo DSi = DSiCade
I contract for the parent company of KFC, Taco Bell and Pizza Hut. The compmay has been long been a commited M$ shop, but recently they have changed their strategic direction and plan for all future enterprise level development to be done using Java. One of the stated reasons is to avoid vendor lock-in with M$.
Also, two of these chains (Pizza Hut and Taco Bell) use SCO in thier restaurants. But their has been a failed effort going on for years to replace these systems with windows based apps. That is still the official plan, but at both these brands there are "skunkworks" modernize legacy apps and move them to linux.
Is this a trend? One can hope
Posting as an anonymous coward for personal security reasons
"II"
If you have any other questions about 4th-grade math let me know.
There you are. You cannot modify and distribute, so open source it ain't. But hey, it's better than nothing.
Maybe your developing for the school market where being able to run the same code on both a Mac and a Windows box is a great feature. Even linux is starting to come into schools. Guess what? Our products will already work with linux.
Sure, generally you know your target platform. But sometimes you don't. Also, since the toolset between unix and windows is very different, it is sometimes far easier to develop on one than the other.
With Java, you develop on whichever platform makes it easy. You test and deploy on the target platform.
I'm scared of the idea of one project written in many languages. The old web problem of HTML inside perl (or Java or any other language) should teach us that moving between languages on the fly requires a mental context switch that slows things down.
Golly, I like slow, careful, and secure development of my enterprise backbone software.
What is this "enterprise backbone software"? It has the odor of buzzword about it... has /. been infiltrated by PHBs at last?
Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
DEFINATELY POSSIBLE, you can port an application to the compact .NET framework easily.
You can even debug remotely if you have a docked PocketPC handy.
Give him a 5. It works on so many levels.
The winner in this war may be other technologies like Python and Jscript/Javascript(this language is used as an alternative language in the Windows Script Host but isn't under ECMA-not Microsoft- control). Managers tend to invest in stuff like Java and C# because they think the language is stable and is going to be around. If there is no clear leader then these managers may become open to considering other technologies.
Other than that I agree, MS GUI programming was in general a nightmare prior to .NET. But be aware that .NET programming is nothing at all like MFC programming. It's easy easy easy and the VS.NET tool generates code that is actually worth keeping.
I avoided MFC UI programming like the plague. I did a lot of Swing programming (and AWT programming prior to Swing) and found it passable, but not really production quality, and of course it's quite tedious. I'm no Microsoft booster so believe me when I tell you .NET is terrific in this respect, a home run.
jim frost
jimf@frostbytes.com
benchmarks prove it
Well some of us (me at least) aren't willing to have our code run slower than necessary, particularly when we really do know what platform we're compiling for. And if for some reason we want a different platform (which we don't and won't), we'll have to recompile. Oh, the horror.
You've got your runtimes mixed up.
The Dotnet runtime consists of approximately 1200 classes, including Windows Forms, ASP.NET etc.
The CLR/CLI standard only covers core language-related classes - approx 120 in all.
Dotnet is therefore mostly proprietary and there is no spec. to implement. Mono is having to reverse-engineer, with dubious consequences.
I know this is OT, but you've just answered a question that I've been researching today. I've got to develop an app that will work on all of those flavors of Unix plus HP and OpenServer and I was trying to figure out the best way to do it. I had just finished installing NetBeans when I read this...thanks for confirming what I hoped was true.
Quote from the article
.NET will have the edge in some head-to-head comparisons.
.... does that term apply?
True, many companies will use both technologies. But because Java traditionally is considered more complex and difficult to use,
This is said about a language whcich you can consider "mature" for about 5 years now. "Traditionally"
angel'o'sphere
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
Not to mention that some of us prefer our standards to be... well, actually standards in more than name (even if just de facto).
.NET) is directly linked to an "upgrade cycle" for the development platform.
Even if each latest flashy feature is solid as rock in the platform, I'm not going to be happy if they are replaced every 12 months by a "new standard feature".
Java has gone through some dramatic changes, but one thing the JCP does is make sure there is a good reason for those changes, minimize disruption, and try to ensure their lifespan is not a couple of months.
This is more difficult to guarantee when the revenue of the only company with a voice in the platform changes (MS in
Freedom is the freedom to say 2+2=4, everything else follows...
"I'm scared of the idea of one project written in many languages."
Stay away from any serious enterprise apps then.
Granted, you don't give up much portability if you write in C++, provided you know how to write portable code. (Don't use system-specific API's, or if you do, at least wrap them in another layer...).
And then there's the problem of Java not supporting the feature set of embedded devices. Is there really a setToastTimer method in Java? So I guess if was to use Java to write an app for my toaster, I'd have to settle for something that couldn't use the key functionality of the device?
Quite frankly, due to the specialized nature of embedded devices, portability is pretty much a moot issue. You do need to access the platform-specific features. Yes, I suppose if you like playing tic-tac-toe on a cell phone you'd write in Java. But the chances that you'll be able to write program in Java which utilizes a cell phone's camera and microphone as a realtime video recorder are pretty small. Any software that's non-trivial will need to access the device-specific features.
It is a pretty easy language to learn. You don't need an IDE to do it.
Java versus .NET is becoming a ubiquitous topic. It's been the subject of debate since .NET beta 1. Microsoft and Sun both have "independent" studies conducted to prove that their platform (J2EE/.NET) is better and both have convincing arguments. There is no perfect language or platform to solve every programming problem - sometimes it's C++, sometimes it's Python, sometimes it's something else - it really depends on the problem.
It's no secret that one reason Microsoft created C# is to compete directly with Java. It's pure ignorance to say that C# is proprietary and that you're locked-in to Windows. C# and the CLI (.NET) is an approved ECMA standard. This is something SUN was unwilling to do with Java. For this reason, in a sense, Java remains far more proprietary than C#. It's too early in C#'s life to say that it won't be ported to other platforms - look at Mono. There is a lot of FUD being disseminated about "Microsof is going to sue Ximian, et al. for Mono" blah,blah,blah. That's not going to happen. Microsoft has already released the source code to the CLI with one intention of "People developing their own CLI implementations will find the Shared Source CLI an indispensable guide and adjunct to the ECMA standards.". So, for the argument that C# and the CLI are proprietary and one is bound to Windows is just plain ridiculous.
Syntactically, C# and Java are extremely similar. They both derive from C++. Structurally, they are very similar as well. They are both OO languages, everything is a class, etc. Side-by-side they look very similar. There are numerous small details which make C# "friendlier" than Java, ie. C# has no requirement that the file be named after the class. However, C# has a lot of other advantages over Java. C# can make use of pointers. Java has no option on parameter passing - Objects are passed by reference, value types are passed by value. While C# has the same limit on objects, you are able to use pointers and it also supports boxing. C# supports operator overloading as well. On the merits of the languages alone, C# is stronger than Java. It should be expected since it was developed from scratch nearly 7 years after Java arrived.
As far as performance, Java leaves a lot to be desired. I won't belabor this issue. If you'd like a demonstration of the difference between the run-time execution of .NET vs Java, pick your favorite VM and run Forte, then run Visual Studio .NET (it's written in C#) and decide for yourself. Java run-time performance alone is enough to dissuade some developers.
Java does come as close to a RAD language as can be. Java applications can be developed quickly with far fewer bugs and errors as a comparable C/C++ application with the benefit of garbage collection as well. For this Java gets an "A". It greatly simplifies the process of rapidly developing database and other applications.
Is Java going away? Hardly. But like it or not, C# and the CLI are here to stay as well. It's only a matter of time before the CLI is ported to other platforms and environments just like the JVM.
If you do what you always did, you get what you always got.
My favorite tool for the integration is JuggerNET, which transparently starts up a JVM in the CLR process and the developer simply codes against generated .NET classes. I am affiliated with Codemesh, so I'm somewhat biased (take a look at Stu Halloway's great website for alternatives) but working with both platforms for a living, I just can't get excited about controversial this or that is dying statements. Both platforms have their strong and their weak points.
I love the platform portability of Java, but I think Java is too closed in terns of language integration. Doing JNI by hand is an abomination, and most people at Sun admit it.
I love the language portability of .NET (it's not perfect, but then, neither is Java's platform portability) but I hate the exception model.
So, there you have it. Neither will kill each other, they will just coexist uncomfortably until they both get replaced with something new.
Here is the warning folks .Not is just flashy like VB and windows 95 with full of holes .Not.
and memory leaks and security problem.
If you want to reboot your application 24 hrs a day then yea stay with
J2EE stability and sclalabilty is like the Mainframe it just runs forever with not reboot .
And if for some reason we want a different platform (which we don't and won't), we'll have to recompile. Oh, the horror.
And that's why we have so many
"just recompile" is a great solution IF you didn't use a development model that locks you in. I use "just recompile" all the time on C and C++ programs.
Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.
psxndc
The emacs religion: to be saved, control excess.
Dot Net doesn't look like a developer panacea just yet. If Sun keeps the enhancements coming and works to bring the development environment up to Visual Studio's standards (Yes, VS has its problems, but it has a lot of unique tools, like compile-and-continue, which save hours!), Java may well survive.
Java IDEs are far beyond
Compile and Continue is state of the art in java since 2 years, minimum.
angel'o'sphere
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
By coincidence, I gave a talk on how Java and .NET compare, just a few days ago:
t ml
.NET has a lot of things "in the box" that a developer / team needs to go find, select, download, install, etc. for Java. I personally like the best-of-breed approach that can result from that (choose from the many SOAP implementation, choose the best one for our needs), but for many developers, having a good-enough solution "in the box" is more palatable.
http://kylecordes.com/story-260-java-net-talk.h
One thing with the SD Times identified as a source of trouble (the size of the included libraries), I identified as a strength:
This is particularly exacerbated in some development shops where extensive format decision and permission processes are needed to make any third party tool purchase (or free software adoption).
You forgot CONSULTANTS.
From the article: .NETs ease of use and lower licensing costs also will be a draw.
.NET's ease of use -- I haven't used it yet, because my company doesn't see the need to pay to try it (already paying for WebSphere and DB2, running on Solaris and OS/400), and I can't afford it for my private projects (where I use only the free stuff.. but it works amazingly well).
This is related. "Lower licensing costs" is not so black and white as all that. J2EE can be expensive to use, if you're paying for WebLogic or WebSphere. If I'm using JBoss or Tomcat/Castor, etc., running on a RedHat server with MySql or SAPDB, how does the licensing compare now, especially considering that since you're locked into the win OS you have to pay MS for your server's operating system, too?
Personally, I can't comment on
There are only 10 types of people: those who understand decimal, those who don't, and, uh, 8 other types I forget.
I'm posting late, so I doubt anyone will read this:
Java has needed this for a long time. Ever noticed how long it took to get a For...Each statement in Java?
Java is in the enterprise world since the introduction of J2EE. .NET came after that. So IMHO MS is trying to get a foot into server computing, as well as you say into embedded systems. ... regardless if they target that software to run on a PC, on a server or embedded or on a palm top. I would not buy a car if I knew that there is one single line of MS software in an embedded controller anywhere in it.
For both markets you need "true computing" know how. That is what MS lacks. They can market and sell bullshit, but they never will craft a simple reliable piece of software
angel'o'sphere
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
Gee the Swing application my company developed runs just fine on the 4 OSes in production right now. How many OS X machines can run your GUI? What about Solaris? Linux? Pretty piss poor interoperability if you can only run on one platform from one vendor.
We haven't finished our flame war between emacs vs. vi yet!
No fair!
Which sums up the whole apples vs oranges nature of this "debate" quite nicely. Java was developed for embedded systems, .NET for enterprise/distributed computing
.NET plays a role in, and works with.
Although somewhat true now, but missing a few key points...
#1) Java was NOT originally developed for embedded systems. It wasn't until the past couple of years that Sun has moved it into that direction. (There is a difference between embedded systems and a cross platform VM)
#2) Microsoft has other embedded system technology that
Gee, took me a while to get back to this since MSVC++ has crashed, and I kid you not, 6 !@#$ times today. This despite one system reboot.
Last two times occurred just after I had gotten everything setup it had forgotten in crash before. Both with same access violation (accessing memory location "18").
So, just for kicks I try debugging msdev.exe with itself. Hey, guess what. That crashed the new msdev.exe
Gah. Hate it hate it hate it.
Ok. back to the other.
Compile n continue getting in way when I least expect it is far less of a problem than its habit of unreliably integrating changes to includes (yes, even with precompiled headers disabled).
Far better with MSVC++ to just do a batch build.
Damn you Microsoft. Damn you to hell!!!
*contemplates joining the java team*
has /. been infiltrated by PHBs at last?
Only if by "PHB" you mean "architect and lead developer" and by "infiltrate" you mean "start reading in 1998."
If Sun keeps the enhancements coming and works to bring the development environment up to Visual Studio's standards (Yes, VS has its problems, but it has a lot of unique tools, like compile-and-continue, which save hours!), Java may well survive.
Check out Eclipse for Java development. The workspace/perspective paradigm will take a day or two to get used to (plus the different key bindings), but this is a really nice IDE. I'll wager that MSFT will be copying the "lightbulb" feature of Eclipse that shows you a list of possible solutions to the problem, alongside a preview of the code changes this will entail. Very slick. The GUI could be a little more responsive, though, but so could VS.Net 2003 on a 1.8GHz P4.
I don't think it has a form designer, but for the big projects Eclipse is geared toward those can be more liability than asset.
What?? .NET is a programming language?? I had no idea, i tried to read the Microsoft marketing crap but i couldnt figure out what .NET was other than an "enterprise solution" (something we're trying to sell to big companies), a "set of software technologies" (something that comes on a CD) and a "new generation of technology" (upgrade from whatever we sold you last year)
This comment does not represent the views or opinions of the user.
I'm not sure if I'd trust someone who can't master assembly to write code that controlled a something that could get me killed if an unexpected Out of Memory Exception was raised.
I dont think it is a difference for the one who gets killed if it was by an unexpected OutOfMemoryException or by an unexpected SIG SEG or what ever the C/C++ or non existing ASM runtime is raising when you have a memeory fault.
In both cases it is the fault of the software vendor and in both cases it is easyly handled by a sound software development process, and not by the programming language.
angel'o'sphere
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
There are plenty of Java IDEs that simply blow Visual Studio out of the water in terms of functionality at the moment.
.NET tools and languages are pretty top notch.
.NET or the old standbys like Delphi and Kylix.
.NET framework and has provided some pretty good tools.
.NET framework is bad just because VS is a bit hard to dive into - hence why I use Borland products for even .NET work.
That is somewhat debatable as personal preference, but the Borland
Borland JBuilder as you mention is nice, but not as robust or nice as their new C# support and
A language or model is not made on one company's(Microsoft) incarnation of it. Borland has demonstrated that there is some good in the
Having spent a lot of time in development, I still prefer Most of Borland's products over MS for development, but that doesn't mean the
You're premise is flawed. You act like .Net is some kind of miracle Rosetta stone. Far from it. If your going into a project that you want to be an all java project, you have the developers that don't know java, learn it. Now if you have a group of developers and they all know C, C++, Perl, Java, whatever and you want their project to be a .Net project. Then every single one of them is going to have to relearn their tools because they have to learn how to use the CLI in addition to their preferred language. And then after your project is complete, you have a hodge-podge, a patchwork quilt of a system in which you are eternally going to need each kind of developer on staff in order to make modifications. This is exactly the opposite situation with java, where standardization of language and libraries make bringing in new developers almost trivial. .Netization might be touted as the end to all woes, but in the long run it can bring about many more woes than you ever knew you had. So what are the drawbacks to using java? People who don't know it have to learn it. Thats it.
Occam's razor is the blind faith in the natural selection of least resistance and in universal oversimplification. -- EF
Remember, embedded devices don't have the screaming fast processors that are needed to make Java appear fast. And they're not likely to have the few hundred megs of RAM that a JVM seems to think it needs, either.
Remember: most java platforms for embedded devices compile to native code. And uses the KB amount of RAM which is availabel.
angel'o'sphere
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
"there's no such thing as embedded dot Net just et"
.NET Compact Framework. It contains a subset of the .NET Framework, and can be used for PocketPC/SmartPhone development.
Actually, there is, it's called the
(Did anyone else think the Kuro5hin article screamed "I'm new to this technology I was forced to use, I haven't gotten the hang of it yet, I hate it." ?)
I'm curious... what was the point of switching platforms two times?
Life in Orange County
so is FORTRAN....
and COBOL
For server-side stuff, fine, you've got a point. The parent post said he abandoned Java after Swing (Java's advanced UI). I mostly agree. Java works on the server because it's easy to 'Least Common Denominator' things like sockets and files across OS's. It is NOT easy to do the same with a UI. I wrote several commercial Java UI apps, one with Swing and one with (gasp) the plain AWT. If I were to do it all over again today I'd never use Java.
Does it hurt to hear them lying? Was this the only world you had?
I recall reading one time that Swing (or maybe it was the AWT?? either way...) was tacked on in like 2 weeks before they pushed the latest release out the door. They felt that it was done so quickly b/c it was such a clean design. I think that was a little short-sighted :)
Is there really a setToastTimer method in Java? So I guess if was to use Java to write an app for my toaster, I'd have to settle for something that couldn't use the key functionality of the device?
I would asume that setToastTimer() is not a method but a C function in the os layer of the driver of the toaster, isnt it?
So you just call it from Java like you call all other C functions from Java
angel'o'sphere
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
Java portable? Isn't that an urban legend?
Symantec used to have a debugger marketed as "Write once, debug everywhere!"
The thing is, I don't think they understood just how funny that was.
--
Wanna know what I am smoking? .NET 2003 takes fucking ages to complete? .NET vs. Java is utterly irrelevant, and anyone with real experience knows why.
UltraEdit32 with ANT, mostly.
Btw. any explanations why DataAdapter wizard in
Yeah, debugger, that's the only useful thing, but that's really all.
I don't want to flame - to me, discussion
#1) Java was NOT originally developed for embedded systems.
I think you might be mistaken here.
Before the language was called 'Java', it was called 'Oak'. It was a language for building embedded applications on smart consumer electronics. However, Oak was way ahead of its time in terms of product targeting.
If by "subset," you mean "a handful of functions and a cfront-like front to the J# compiler and JVM," then you are correct sir. It's dot Net in name alone.
Wait till you try Smalltalk.
Go ahead, download Squeak and see for yourself.
N4st0r, trixx0r h0bb1tz0rz! Th3y st0l3 0ur pr3c10uzz!
AWT was a thin attempt, and it shows. "Barely adequate" would be a good description. But with the exception of cut and paste and drag and drop it did at least mostly work and it was possible to build pretty sophisticated UIs with it. They just all looked and felt different from each other.
Swing was designed (and redesigned, and implemented and reimplemented). It shows in that its API is generally pretty clean, although there are some really bad warts like the table object (which just sucks).
Unfortunately for all the work they've put into Swing it has been notoriously low quality -- big, slow, and buggy. Very buggy. Nothing you couldn't work around if you spent the time, but hardly the epitome of UI construction environments either.
jim frost
jimf@frostbytes.com
Only if by "PHB" you mean "architect and lead developer" and by "infiltrate" you mean "start reading in 1998."
Well, I thought it was funny.
Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
I suppose I should have made that an actual link:
.NET
Slides and notes from a talk on Java/J2EE and
For some reason I naively assumed it would become a link automatically. If only I would learn to preview...
You got a +1 Informative for that response? Wow, thanks for telling me to shut the hell up and in the process, get my legit post knocked down to troll status because I asked a simple Java question in a not so serious way. I haven't programmed in Java for about two years now, and really was only programming in it for WebObjects stuff. Yes, I program in .NET now and for what we are using it for, it works perfectly. I know, you know, my dead aunt knows that the .NET CLR is only on Windows right now so there's no point in making funny comments about that even though it would have probably given me a +5 Funny. As for my original question...about Java portability...true, I was making fun of the some of the runtime environments having issues running mainly desktop applications with Java's "powerful" UI. But sense I haven't coded in Java for a while, I wanted to see how many people have found portability problems a complete non-issue such as yourself. Now you know what kind of Java developer I am! Yippie! I would tell you that your music on MP3.com was pretty cool, but since you had to be a dick in your response I'll refrain.
-my other sig is your mom
First you say:
.NET is MS's Vietnam. Hope you're old enough to know what that means.
1) Most applications don't need more than 2 processors anyway
2) And anyway, SQL Server is faster.
Let me bring you back to reality... we're talking app server layer here. SQL Server isn't inherently "Dot Net", its just a data source.
And I don't know about your place of business, but where I work, we don't even buy 2 CPU boxes for testing; 4 CPU is the minimum size box we buy. But more importantly, J2EE app servers have built-in failover and load balancing essentially for free, you get cross-platform capability, and Java fits in nicely with the RUP model.
Yes yes, you can *in theory* do all of that with MS, but the truth is, that its rocket science to make it work in a 24x7 environment.
Our initial attempts to do dot Net stuff have come close to disaster. J2EE development is running smoothly.
And Yes, I *like* MS, but
This is a very interesting presentation (in .PDF, with notes) comparing .NET and J2EE.
Take it with a grain of salt (considering the source), but I find most of the things there to be true.
Signatures are supposed to be funny?
but Java 1.5 will leapfrog C# when it introduces generics along with its own version of foreach, and other timesaving features
Oh that's great. "will" is the operative word. Java is better than C# because of what it "will" come out with.
You don't think the next specification of C# includes generics? Wake up and smell the coffee.
This Yahoo article is just more typical Microsoft propoganda....... Java today is way ahead of .NET. Java has more than 250 million users, There is more Java chips sold then x86 chips last year. Most of the big .NET claims are MS shops switching over VB .NET.
On the otherhand there is some ease of development issues. But these problems are being solved by Eclipse and Sun's recent involvement.
I fear nobody has mentioned the simple yet profound fact that will drive many towards .NET & Java/J2EE. It's Linux! It's free, it's stable, it's secure (relative to MS OS's). Put it together with Apache Open Source products such as Tomcat & Apache httpd, or JBoss if you are into EJBs and you can't go wrong.
.NET and Java/J2EE more irrelevant than most will admit. They are both very well designed development languages, and can accomplish most projects in a similar amount of time, with similar numbers of developers.
.NET add-in dev libraries aren't available, they just aren't provided in an FREE manner as frequently as they are in the Java world.
I feel that the technical debate between
Just one problem, most businesses wish to make $$$, and if you haven't noticed the tech sector barely able to keep it's head above water right now. Thus, all things equal I'd bet most businesses will probably opt for a Java (or J2EE)/Linux solution as the overall price can't be beat, and you don't have to waste you development time creating valueless libraries that others must have had to create already. Not to say
Anyhow, my 2 cents.
Only the original concept (Oak) was targeted at soft embedded systems. All released Java's from day 1 have been targeted at Web, Desktops and then J2EE. As he said, only in the last couple of years has Sun talked about embedded java.
Also it means more stability in specs. Writing specs takes some time but it pays off when you need to implement the spec.
"I think this line is mostly filler"
I hate _____ because ______ and _____ so _____ obviously is far better than _______ didnt you know that ______ ! ?
Sure I'm not the first to mention this, but I have never gotten Kaffe to work. It looks like a dead project. Other than that, I haven't gotten any free implementation of Java to work.
.NET.
However, there are free implementations of
Personally, I'll stick to things like perl & ruby, especially once Parrot is implemented.
Don't thank God, thank a doctor!
You don't call any other C functions from java. Using JINI in an embedded device is a l o n g , l o n g way off.
But Java isn't a product, as you know.
A more reasonable comparison might be VS.NET with something like WebLogic Workshop. There's only one download involved with that - IDE, JVM, libraries, app server etc. in one.
APL is a mistake, carried through to perfection. It is the
language of the future for the programming techniques of
the past: it creates a new generation of coding bums.
- Dijkstra of AntiBasic
1. Port and compile a version of your program for every cell phone in existence (quite a few platforms).
2. Write a Java MIDP application that works on all MIDP enabled phones.
3. Profit!
NO CARRIER
It will take off within the next two years, considering the next version of Windows uses .NET exclusively, abandoning the Win32 library to a set of compatibility libraries. Everything about Windows will be completely .NET, including explorer.exe itself.
"Sufferin' succotash."
But has Sun nailed it to the perch?
they aren't close to visual studio.
The comparison must be between .Net and J2EE, while J2ME and even J2SE are seriously lacking in component architecture and other features comparing to both .Net and J2EE.
So, once we make a comparison correctly (J2EE vs .Net) we can state: there is no such thing as embeddable J2EE just yet, while there is something like compact .Net framework.
Seems to me Java is anyhing but small, comparing to .Net - probably thanks to the way how .Net is based on XML.
Either way, I'll want $699 for my fp, beeyotch.
I think you've been in a serious rush with your fp, that's why you comment is so poor. I just wonder why is your comment so overrated? Is there such thing as FM (First Mod)?
Less is more !
You cleary haven't used eclipse or idea lately, have you ?
Both of them are way ahead of Visual Studio.
"The adoption of Java was based on Web development"
.NET dirty little secret of: if you want to do anything meaningful you still have to use COM/COM+) .NET is neither.
What? Adoption of Java is based on platform portability and scalable distributed enterprise computing. (With the
Pish-tosh. Now, the adoption of Perl WAS based on web development.
*ducks*
I have a second sig, I call it sig#2.
Yes, of course. In the talk (and probably in the slides I pointed to), I made the point repeatedly that Java is a platform and a market, with lots of vendors offering products like IDEs etc. .NET is a market, but to a lesser extent, in the sense that Microsoft does (and will continue to) dominate the .NET market much more than Sun dominates Java.
#1) Java was NOT originally developed for embedded systems. It wasn't until the past couple of years that Sun has moved it into that direction. (There is a difference between embedded systems and a cross platform VM)
BUzzzzzzzz... sorry, wrong. Java, originally named oak, was intended to be a language to develop for consumer electronics gear, set top boxes, etc. I refer you to this article as evidence.
This sig has been temporarily disconnected or is no longer in service
(Yes, VS has its problems, but it has a lot of unique tools, like compile-and-continue, which save hours!)
.NET language. It is not supported for VB.NET either, which makes it a step backwards for VB programmers.
While I do like the VS.net environment, I must point out that compile-and-continue is NOT supported for C#, which is considered the most "native"
You can get java at Starbucks and Starbucks are everywhere. Besides, .NET just doesn't sound refreshing.
1f u c4n r34d th1s u r34lly n33d t0 g37 l41d
J2EE is an extension of the Java platform. It stresses a component model that works well in a distributed system. As such there are certain parts of it that have analogs in .NET, such as JSP/ASP.NET . What is hard for most people to understand is that .NET does NOT have an analog to the distributed component model that is at the core of J2EE. The .NET philosophy is very much "everything in the enterprise should be running on .NET and if not then 'let them eat SOAP'." And even then you better be aware of .NET's implementation of SOAP and UDDI and its subtle differences to these standards. Even more to the point, most of the major interfaces in J2EE have no analog in .NET. .NET's System.data package has much more in common with JDO than with CMP entity beans. JMS, JMX? Ummm.... J2EE is not only more mature, its philosophy is a much better fit for enterprise systems.
There is no IDE that comes even close to Visual Studio.NET.
.net is. .net allows the developer to develop in any language you can think of.
.net run time component for *nix boxes... .net is a great tool for developers and it's what java should have been. It gives you the flexibility of a real programming language like C but at the same time you can have the safe and robustness of Java.
you want to do it in assembly? go right ahead.. how about C++, C#?, JAVA ?
it's all about choice.. As with being tied to MS products once again you guys have it all wrong.
Try using sharp develop. I'm sure someone did it on the *nix side too... Btw
Mono?... what's that?... oh wait it's a
I think
>|<*:=
Dot net can be small, there is a special version for mobile devices called the dot net mobile framework. It cuts the fat much like mobile java.
Well.. maybe. Or Maybe not. But Definitely not sort of.
This wretched Microsoft upgrade roller coaster is creating much poorer development teams.
By the time people have matured in something, something new comes along. Result - development costs rise. Managers struggle because the skills they learnt in programming are redundant.
Did you just say that .net will require more programmers than JAVA?
.net.
Well then, I support
Democrats or Republicans. They are both taking us to the same place and they are not afraid of us anymore.
lest we forget that microsoft did -not- shut down the open source .Net compatible project, i'll even grant a link. Mono [go-mono.com]
.NET implementation is only part of Mono, and probably not the best part.
The
I suspect that most open source uses of Mono will be based Mono's C# implementation, the core ECMA library, and the Gtk#, OpenGL, and POSIX interfaces being developed.
Overall, the nice thing about C# is that it's more of a language, not a philosophy. Platform-specificity is ultimately good, both for Windows and for Linux programmers; Sun's WORA, which pretty much comes along with Java, is a distraction.
Before the language was called 'Java', it was called 'Oak'. It was a language for building embedded applications on smart consumer electronics. However, Oak was way ahead of its time in terms of product targeting.
The Oak Language and JAVA may have the same syntatical underpinnings, but JAVA was a web based VM techology using the OAK language.
They are STILL two different things.
It would be like writing a portable VM for Pascal and then telling the world that this new technology was just plain old Pascal.
JAVA is a serious of technologies based around the VM technology, it was later adapted back to embedded systems, but STILL with the JAVA VM concepts.
Just more capacity. The NT4 box was just for convenience, it was what the developers had on their desks. The linux boxes were our first production environment, but turned out not to be powerful enough to handle everything when we got more traffic and the app got more complex capabilities. When we went to the e6500s it was actually a mixed environment. We had some things running on those e6500s, some things stayed on the linux boxes. Mind you, this could have been avoided by better planning, but java's portability let us do a bit of exploring first.
I recently posted a series of entries on the relative strengths of Java vs. .NET and make some suggestions on how Java might avoid being crushed by .NET.
Yes, you can do it.
We use CVS pserver on Tru64 for our source control. We used to code with Visual Age, but it was poorly connected with CVS... Si we tried Netbeans... And we use it since 2 years now... We saved 3500$ per year in VA licensing!... Netbeans is now fully supported ide... It has still some bugs and minor issues, but none that destroy our work or pose a great problem (like it was the case in VA)
so... Netbeans + jakarta ant + CVS = winner for portable applications
Sun has some nice hardware -- acquired from Cray -- but a business model based on selling an OS and application suites available elsewhere for free is badly flawed.
Check the SUNM stock price over the last few years, and tell me who will manage J2EE when the company that owns the standard falls off a cliff?
Do not mock my vision of impractical footwear
It's a story by NewsFactor, one of the lowest quality tech "news" sources on the planet.
I really hate how NewsFactor and a couple similar lame outfits get their articles into Yahoo's financial quote page news listings.
The thought that these uninformed opinion pieces might guide people in their investment decisions is scary.
here it comes....EMACS vs VI!
Tire irons are obviously way better at taking lug nuts off of tires.
.NET as a replacement for Java, when it is no such thing. They are entirely different technologies, for entirely different things.
.NET does not. But you can join different languages together with .NET (supposedly, I've never used it), as long as you are running on Windows on x86.
I just think it's funny the way Microsoft has framed
Java runs everywhere,
I'd rather be able to run my code on a Mac, Linux or Windows than be able to write half of it in VB and the other in Access.
The appgate SSH2 java app is the best argument I've seen yet for Java...it's cool
Me
oh ya, 'cause we all know that computers don't get old and slow....
No problem... I'm just a eternal linux / java supporter and i HATE those one who prefer closed source like .NET and all microsoft stuff... I just love Java because when something goes wrong (yes it does indeed) I can go and browse the Java sources (they are almost all there... You can look at the source of StringTokenizer and understand why it is going wrong)
At work, I use Netbeans on windows because I have no choice, it's the OS I was given and I have to use it... I just managed to get a more "unix like" OS using cygwin + XFree, and I must admit Winblows is much funier with it :)... At least I can write my java scripts in SH, test them on windows before putting them on *nix.
If only windows did not hang with numerous stupid issues (like processes taking 100% CPU which force a full shutdown once a week)
So sorry we played the "dogs eat dogs" game on these posts, but your post looked SOOOO serious...
I did'nt notice I had to take it to second degree ! I apologise for this.
I just met so many people who were serious saying what you just said that it put me out of my mind.... Some people at work even question the use of Java and I had just a discussion about it with a colleague when I posted my response... I was just passing my nerves...
Well, can we forget it and go onto a new base ?
(PS: thanks for your critics on my music... I thought no one would ever ever listen to it ;) ;) )
So .Net runs on NT and a single NT server (small for what it seems) can scale to the same levels of service than a "couple Sun E6500s".
Or more likely your comment has no sense. Yup. that is it.
"I think this line is mostly filler"
common... did you ever tried it ??? Appart from code you must do in release 1.1 to get things work, which obviously pose problems when the bug is fixed, I never ever had any problem executing old classes onto earlier JDKs ... And I code since 5 years in Java now...
The problem you are saying are those of PHP or Perl, not Java ... In PHP you have to redo all your work when a new version comes out...
I never had this problem in JDKs...
problem with .NET is Microsoft is still encouraging bad development habits. I can tell you first hand from reading ASP.NET code written in VB that it is horrendous. Most of the examples included with .NET do not use good OO practices for the C# examples. The worst part is it encourages the same lazy hard to read coding practices. Without fixing that, it won't make .NET any cheaper, it's just another trick to milk more money from customers.
Yes, to most companies openess isn't important...all well and good. But what happens in two years when MS changes to something completely different and your hojillion lines of .NET code are worthless? Code reusibility is important too, and Java provides that, whereas MS changes whenever they feel they can milk more profits. Try compiling a Java app you wrote 5 years ago on your new candy bloated WinXP, and then try compiling some code you wrote for Visual Studio or something similar at about the same time...which will work? I know you hate college and all(Or maybe you just fsck'ed up Junior year), but many teach code reusibility and openess, and they're not bad concepts, even if your particular company doesn't practice them!
Oh, you can write a c app in pretty much the same size as a asm app, as long as you leave out all the libs.
if (!signature) { throw std::runtime_error("No sig!"); }
There are a lot of advantages to this but there are two huges ones I can think of. A full TCP/IP stack included for absolutely free. (Since it implements the java.net package) This makes it veryyy easy to net-enable various devices. Another big advantage is that you can develop most of the firmware on your desktop and move it to the embedded device when it's ready.
Random is the New Order.
Except what you just described is analogous to a new implementation, not a new language or API. Changing the new language is more like coming out with a new hammer that you hold with your teeth, and you snap your fingers to make it pound a nail. It's a change in how you use the thing, not what's inside the thing.
It is official; Yahoo confirms: Java is dying
One more crippling bombshell hit the already beleaguered Java community when IDC confirmed that Java market share has dropped yet again, now down to less than a fraction of 1 percent of all programming language use. Coming on the heels of a recent Yahoo report which plainly states that Java has lost more market share, this news serves to reinforce what we've known all along. Java is collapsing in complete disarray, as fittingly exemplified by failing dead last in the recent Sys Admin comprehensive networking test.
You don't need to be a Kreskin to predict Java's future. The hand writing is on the wall: Java faces a bleak future. In fact there won't be any future at all for Java because Java is dying. Things are looking very bad for Java. As many of us are already aware, Java continues to lose market share. Red ink flows like a river of blood.
Let's keep to the facts and look at the numbers.
Sun leader Scott McNealy states that there are 7000 users of J2EE. How many users of J2ME are there? Let's see. The number of J2EE versus J2ME posts on Usenet is roughly in ratio of 5 to 1. Therefore there are about 7000/5 = 1400 J2ME users. GCJ posts on Usenet are about half of the volume of J2ME posts. Therefore there are about 700 users of GCJ. A recent article put J2SE at about 80 percent of the Java market. Therefore there are (7000+1400+700)*4 = 36400 J2SE users. This is consistent with the number of J2SE usenet posts.
Due to the troubles of Java, abysmal sales and so on, Sun went out of business and will probably be taken over by IBM who sell another troubled programming language. Now IBM is also dead, its corpse turned over to yet another charnel house.
All major surveys show that Java has steadily declined in market share. Java is very sick and its long term survival prospects are very dim. If Java is to survive at all it will be among programming dilettante dabblers. Java continues to decay. Nothing short of a miracle could save it at this point in time. For all practical purposes, Java is dead.
Fact: Java is dying
Fine. Prior to J2EE was COM+ and MTS
Point being, very little of either J2EE or .Net was conjured out of thin air (the exceptions being the marketing bullshit from both sides).
Java(tm) is a prime example of a cribbing good ideas from existing languages and implemenations; it would be stupid not to. Why is this time-honored approached frowned on when MS does it?
Java is the blue pill
Choose the red pill
As someone who once worked at a company that wrote software products in C targeting 8 platforms (6 Unices, x86 NT and Alpha NT), lemme just tellyou how easy it is to recompile you're code on another platform. The build processes we had were very intricate, handling the discrepencies between the compilers on different platforms and platform limitations. Then there were the code difference where we had to account for various differences that couldn't be handled the same on different platforms. All in all, it was a well orchestrated nightmare.
On the other hand, to take my Java EAR file from NT to AIX is a breeze.
Why does it have to be one or the other. J2EE is good for a platform independent application, .NET for a MS shop. I think both will be around for a while.
It may be "source available", but that doesn't make it "open source". Some terms from the licensing agreement
Dude, that by definition J2SE is open source. Nobody claimed it was GPL'd. Look at the words, "open", then "source". No license implied in those two words.A portable VM for Pascal ... maybe you could call the machine language for that "pcode"...? Wow, I wonder why no one ever thought of doing something like that.
Yes. Get yourself a cygwin setup. Create a Makefile win32 project in VS.Net. Set your PATH and other ENV vars in the VS preferences, then setup your makefile to use GCC. You will have to edit your makefile manually whenever you add to your project unless you write a plugin. Nonetheless, you will be smiling after your first project.
The IDE absolutely kicks arse. Most of the arguments here appear to boil down to VS.Net sucks because it's cool to hate Microsoft.
If you are running pure Linux and can't abide Microsoft for whatever reason, I suggest you get Anjuta. Anjuta is great for building Linux projects particularly of the gnome variety.
As a sidenote, I just finished a rather large project using JBuilder, and I must say that I like it very much. I still think VS.Net is the #1 IDE on the market, but for java, JBuilder is quite nice.
vs.net is excellent as an all-round development tool, but nothing comes close to IDEA for code manipulation features. i wish intellij did a version for .NET.
Yes. These are clueless journalists. But they make lots of noise and get attention from CEOs and CIOs. Source quality means nothing when media makes noise!
i mentioned 3 very specific examples where i feel visual studio is better, AS COMPARED TO ECLIPSE FOR EXAMPLE, and you respond that it is 'way ahead of vs'. very factual stuff.
Check out the dotNET compact framework. It fits in less than 2 meg of ROM, on Windows Mobile devices (PDA's) and now Smartphones.
i on /devprograms/default.mspx
http://www.microsoft.com/windowsmobile/informat
While it is a bit of a hack attempt, it is definately a sign of what is to come.
It's really the same thing in name alone. Giving it the same name was pretty much just a Microsoft marketing ploy, IMHO.
The thing to keep in mind is that Java and friends do an excellent job of isolating applications even when virtual address spaces and memory protection don't exist. It's also possible to create downloadable applications which execute the same way on a multitude of different platforms. Virtual machines generally aren't seen as an alternative to writing local code, but as a way of enabling untrusted code to execute in a little jail cell and on a multitude of different platforms.
to
When the poster hasn't said anything about assembly?
In any event, embedded applications do not have to be any faster than desktop ones, for the most part. In fact, considering that often those apps are controlling physical hardware with response times measured in tens of milliseconds, they can afford to be a lot slower. But perhaps you meant specifically real time embedded applications? Again, speed is not the issue; predictability of response times is.
Bash Java if you must, but at least be somewhat rational in your bashing.
The reasons Java hasn't been widely adopted on embedded devices (although that was its original raison d'etre) have more to do with a) footprint b) unpredictable response time (although this is getting better) and c) programmer ignorance. I work on an embedded system that runs on a 1.2GHz Pentium SBC with 256Mb RAM and over 700kloc of C++ at last count. It definitely has the horsepower to run Java, and if the project were starting right now I'd seriously consider it as Java has features that would have let us get done much faster. Yes, these resources are unusual for embedded systems, but not unheard of. As complexity of such systems grows, there will be a bigger push for better development methods and higher level languages will be among them. C's only real advantages are small memory footprint and execution speed. Safety and programmer productivity suck. Assembly? Unless it's less than about 2k of code, or for a 1M+ units, low profit-margin device, you're probably wasting your time.
I just did a job search on monster.com:
.NET programmers...
c# - 704 results
java - 4398 results
Yeah, there's just SO much more demand for
Bill Fuck gates cant stand competition now they are paying writing these reports to get head up butsorry .Not just sucks no wonder no one uses it. Everyone
is using Java Bill Fuck Gates give it up. Linux will kill windows too
YMMV of course. Most of my (C++) code only sees 1 platform. Some has seen several (but not 8), but it was written knowing that, and for that code, building for multiple platforms was just a few keystrokes.
But a lot of my code (in particular the core engine code that needs to target multiple platforms) is very performance sensitive. Several companies do what we do, most are bigger than us. We succeed partly because our stuff blows the doors off theirs, hands down. That just wouldn't happen in Java.
I've heard tell that Java is all kinds of wonderful if performance isn't critical. But I haven't seen it first hand, while I have seen C++ do everything I need, without having any of the problems people tell me I need Java to save me from.
Somebody must have goo reasons for liking Java, so like I said, YMMV.
Sorry, my fault. I too use "just recompile" not for C#, but on C++. I lost track of the fact that the topic is
Java has had compile and continue for many years now. Symantec Visual Cafe had this an eternity ago.
Java's development environment is TOP notch above any others I have used. Much of it all can be done from the command line too.
So I had lunch w/ a friend today...
Him: So what're you writing code in?
Me: C++ @ the lab, because everyone else is. At home, I'm using C# though.
Him: C#? Why?
Me: I dunno, it's fun and it has a lotta libraries.
Him: Word.
Me: What about you? What are you coding in?
Him: Java! Just downloaded the newest JDK, but it came w/ this awful IDE. So slow.
Me: NetBeans? NetBeans sucks, use Eclipse.
Him: Eclipse? Never heard of it, I'll have to check it out.
Me: So why Java?
Him: It's fun, and it has a lotta libraries and stuff.
Me: Word.
[o]_O
Shared Source Common Language Infrastructure 1.0 Release
The Shared Source CLI is a compressed archive of the source code to a working implementation of the ECMA CLI and the ECMA C# language specification. This implementation builds and runs on Windows XP, the FreeBSD operating system, and Mac OS X 10.2.
We were somewhere around Barstow on the edge of the desert when the drugs began to take hold. - HST
The battle for the hearts and minds of developers is heating up, with .NET starting to compete fiercely with Java. The war is being waged mostly inside corporations -- department by department, and project by project. True, many companies will use both technologies. But because Java traditionally is considered more complex and difficult to use, .NET will have the edge in some head-to-head comparisons.
Ease of use is not the only advantage .NET has over Java. A more refined and advanced security model, greater flexibility in platform specific optimization, arguably richer class libraries, arguably better performance, better garbage collection system, etc.
On the other hand, developers who want cross-platform interoperability will take Java, hands down.
Yup. Right now, .NET is really only full blown on Windows. It has some beta level support on Linux (via the Mono project), and has decent support on BSD-based OS's like MacOS X, FreeBSD, and OpenBSD, but some of the best features of .NET (ASP.NET, ADO.NET, WinForms) aren't yet fully implemented on any platform but Windows.
Can Microsoft (Nasdaq: MSFT - news) blow Java out of the water? Not likely. But even Sun Microsystems (Nasdaq: SUNW - news) recognizes that improvements to J2EE and other Java technology will be key to holding on to and increasing the Java developer base. For Sun, the next two years represent a critical time in the maturation of Java and its market position.
It wasn't likely than Sony would blow Nintendo out of the gaming market either, but it happened. For Windows development, the game is pretty much already over. .NET will be the clear winner. As far as Microsoft is concerned, that was the goal from day 1. Getting non-Windows development onto .NET is an added bonus if it happens at all.
I don't really see how Java/J2EE is targeted at "high-level developers" and more than .NET is. It's certainly more "high level" than Visual Basic, but that's not saying much. Java can be difficult only because most of the development tools suck. (No, not including Eclipse. Relax.)
The first fruits of that effort will come in J2EE 1.4, which will include an expression language for development that uses scripting instead of programming language, as well as a standard tag library, Gallantine told NewsFactor.
Cool. But ASP.NET is a lot more than a standard tag library, which is what I'm assuming Sun is trying to target with these improvements. Doesn't JSP already have tag library capabilities? Can't you already develop your own custom tags? At any rate, the scripting stuff should be interesting, but it's something that .NET can already do.
J2SE (Java 2 Standard Edition) 1.5, scheduled for beta early next year, also will boast ease-of-use features. "It will allow developers to use less code to write the same functionality," said Karen Shipe, product line manager at Sun. For example, J2SE 1.5 uses generic types that enable developers to avoid having to code in a specific data type each time they want an application to access data. And J2SE will offer monitoring and management features for sysadmins, including better error messages, stack traces and new logging capabilities.
Generics rule. The next version of .NET will have them as well. But they hardly make programming easier for
Java uses JNI to call C functions, not JINI. JINI is for writing network-aware applications.
u n.com/j2se/1.4.2/docs/guide/jni/
http://www.sun.com/software/jini
http://java.s
1.) stops developing server software for websphere .NET services running on AIX, AS/400 or System/390.
2.) requires
3.) genetically engineers pigs to fly.
Java, schmava. .NET? you can't even use that for a filename in Windows. All computers and computer languages suck. But hey, it's a living.
This issue is a bit more complicated than you think.
Taco, can you really really just post /. articles which use source stories which are informative?
/. is subject to whatever 'standard' is set by Kuroshin and that /. and Kuroshin compete for advertising dollars and that Kuroshin changes it's 'standard' twice a year just to slow down and hurt /. and delay /. from implementing better features than Kuroshin.
/. allow a large amount of its staff/resources/budget to be directed/controlled by a direct competitor?
/. users in the terms and voice of a 13 year old does nothing to get your average computer user to open up to anything other than Windows or Apple.
How about giving some relevant information like C# and the CLI becoming ISO standards?
http://msdn.microsoft.com/net/ecma/
Technology should be evaluated on its relevative merits and not on the BS of who created it.
Why would Microsoft allow itself to be driven by whatever changes to java Sun produces when both companies directly compete in selling software?
Imagine that
How long would
Microsoft is not evil for dropping out of Java since Sun is using the exact tatics Microsoft is accused of to distrupt Microsoft's business.
Taco, the prevailing anti MS/anti big buisness rants by
I think that a large part of why Swing still has such bad quality is that people try so hard not to mention it that Sun actually believes they did a good job. But man, Swing is one of the worst UI frameworks I've ever had to deal with (and I worked with NeWS!)
In any case, I agree with you: If portability is your goal then Java is well worth a look. Then again, so are several C++ toolkits. IMO it's a wash as to whether the productivity boost you get from Java versus C++ beats out the productivity loss of Swing versus better designed and built toolkits in C++, especially since the C++ toolkits tend to interoperate much more cleanly with native applications. But YMMV.
In any case for most application designers portability is not their first goal. Often it's not even on the list, given that 95+% of all desktops are running Windows. And if you don't have to have portability, well, you're stupid if you're not considering the .NET platform these days. Even if you don't like Microsoft, and believe me I don't, it's too good to ignore.
If, however, you're building a server product -- well, let's just say that Windows is darn near my last choice for server applications.
jim frost
jimf@frostbytes.com
The thing to remember about .NET is that it's really Microsoft's Java repackaged in a form that Sun can't sue them over. It has most of the JDK 1.1 libraries pretty much intact but with package and method names changed. But they did a very nice job in fixing a lot of issues that Java has. ... .NET's assembly management beats the heck out of collections of jar files.
.NET & Java than just this one. If you look closely at .NET you can see where it evolves from. For example the assembly system you mention evolves from Fusion.
.NET is Microsoft's evolution of COM/COM+". Part of .NET is the COM+ Runtime. One of the great things about .NET mentioned here is metadata. Metadata is what makes .NET web services rock.
.NET is pure Microsoft.
.NET has it's own unique history despite superficial appearances of similarity.
In particular
There's many other differences between
Really the right way to think of
A good consice article discusses Visual Studio 7, COM+2.0, Fusion 2.0, etc...
What isn't ever mentioned in any of these articles of course is a JIT. And of course IL is a stack based language just like Java bytecodes, so it appears Microsoft took a page from Sun on this.
And of course anyone familar with Microsoft's UI (WFC) for Java will know that WinForms is very similar. But once again this is something that's pure Microsoft.
So really when you get down to it the similarities between the two just consist of the JIT and many of the base class libraries. But how much can console I/O, sockets, files, and other basic things differ? Everything else in
There probably aren't too many people out there that know whether there's any actual code shared, and of course no one at Microsoft is saying. But when you look at the publicly documented evolution, and you look at the pretty significant differences, it becomes obvious that
"Dot Net is also anything but small. It's possible to create ROMmable Java applications in just a couple megs of flash memory. On the other hand, there's no such thing as embedded dot Net just yet."
.NET is embedded in all recently introduced PDAs, and represents M$'s attempt to head off Java at the low end.
Er, what about Compact Framework? used in Pocket PC 2003 and Smartphones? This version of
Unfortunately (or not, depending on your point of view), they hacked off too much functionality and focused on the corporate market, leaving off many features required by games and UI rich apps.
Please read the responses to the other six people who pointed to the same. This is the .NET framework by name alone. This is not a port of the .NET framework, it is a marketing twist on a clone of an overly simplified Java virtual machine. You will not execute .NET apps within this environment.
Or you can take a look at Unify's NXj and get this sort of functionality today.
Yes, I work there, and I'm biased. But the point is that Java is in desperate need of tools like this one to beat Microsoft's advancements in .Net.
Get rid of everything Micro and Soft: Buy Viagra and/or Linux
So I guess if a phone isn't MIDP enabled, then you just ignore it? Or if you need to write code for something other than a cell phone?
As of today, there are very few handsets that don't support MIDP and allow for loading of programs beyond a complete ROM rewrite. So yes, you ignore it since you can't do anything with it anyway.
Granted, you don't give up much portability if you write in C++, provided you know how to write portable code. (Don't use system-specific API's, or if you do, at least wrap them in another layer...).
Are you going to get a toolchain for EVERY phone in existance just so you can compile and test?! Like it or not, WORA does work (for the most part) in the J2ME MIDP world. At the very least, I have one toolchain even if I have to test multiple phones (or emulations of said phones).
And then there's the problem of Java not supporting the feature set of embedded devices. Is there really a setToastTimer method in Java? So I guess if was to use Java to write an app for my toaster, I'd have to settle for something that couldn't use the key functionality of the device?
And the ANSI C/C++ API does? It's actually far easier in Java to dynamically plug new code (thanks to deferred class loading) than it is for C++. You could even have a smart server that would deliver extra feature classes for specific phones all from the same build. This saves space on the phone from having to load useless code, plus it simplifies things by not having to maintain 500 binary builds. Pluggable is good, and NO ONE does pluggable as well as Java.
Besides, I'd assume that your toaster would support the J2ME BTDP (Bread Toasting Device Profile) over the MIDP (Mobile Information Device Profile). I mean, let's be realistic here.
Quite frankly, due to the specialized nature of embedded devices, portability is pretty much a moot issue.
Depends on how low level you're talking. If you're talking Nuclear Plant or ABS Brakes, then I'm with you. Those apps should be using toolchains designed from the ground up to be as safe as possible. Of course, if you've ever read the Java license, you'll note that it specifically mentions these applications as unsuitable for Java.
Now if we're talking about phones, or loading various cleaning patterns into my robotic vacuum cleaner, then HELL YEAH I want Java!!! Do you REALLY think I want to go around looking for programs to support *my* vacuum cleaner while my neighbor has a nice clean house because his is supported by one of the best AI cleaning programs available? No! I want what he has! I spent good money on my vacuum and I want it to work with all programs!
Any software that's non-trivial will need to access the device-specific features.
I have one word for you: Reflection. Does wonders for auto-discovery systems.
Javascript + Nintendo DSi = DSiCade
you're wrong. There is the .NET Compact Framework, and the current release of Windows CE includes it.
Additionally, with VS 7.1 you can build managed apps for CE devices right inside VS.
My opinions are my own, and do not necessarily represent those of my employer.
A portable VM for Pascal ... maybe you could call the machine language for that "pcode"...? Wow, I wonder why no one ever thought of doing something like that.
Wow and it still isn't a portable VM... Dropping Intel assembly in your pascal code and then try compiling it on your new G5.
Wow, wonder why that wouldn't work?
LOL
Please tell me how garbage collection is good for an embeddded app. "Honey, turn that thing off", "sorry honey, it's stuck doing something, it won't respond"
I think the Boys at www.wtf-d00d.com have the right idea when it comes to Web Technology: Bourne Shell Server Pages.
Oh and also Java Vibrator API.
So you're saying that the interface is the same, but the implementation is constantly being improved when it comes to hammers.
I think the point being argued had to do with changes to the interface.
"I'm a loner Dottie, a rebel."
- Pee Wee Herman
That's not to say JBuilder is perfect, for example the menu clutter needs working on, and trying to use the layout mode for a GridBagLayout is a major pain, but it kicks the shit out of DevStudio in so many ways that matter that I believe it is a viable alternative.
IIRC Borland are also producing a C# Builder. I have no idea what this is like, but if it inherits some of the features of JBuilder, it might also prove to be better than the MS offering, especially if it goes cross-platform in time and supports Mono. I imagine that they would steal a march on Microsoft if they could pull that one off.
I am baffled by these conflicts.
... there seem to be 10 choices for nearly everything.
.bat vs. .sh - not too painful but even that's gone now that I'm on OS X)
.NET deployment? How much downtime saved from moving off wormy Windows servers and onto Linux? (100 user Linux license * 10 CPUs + 100 user postgres license = total of ZERO dollars.) (Don't give us that "only if you don't value your time" malarchy either - Windows eats far more of my time in 3 months than Linux does in 2 years.)
With Java I have a huge open source community as well as commerical vendors. I have upteen choices for object persistance, IDEs, distributed infrastructure, graphics toolkits, widget toolkits, web tools,
If I run into a problem with a java API - 98 times out of a 100 it's already fixed or a work around identitfied. If there's fundamental design error in the tool - I've got 10 other choices.
I can develop and deploy nearly transparently to Windows, Mac OS X, Linux, Sun, etc... I regularly develop on Mac OS X and deploy to Linux and Sun with no hassles - none. (Before the PowerBook it was develop on NT4/cygwin and deploy to Linux and Sun and I had to worry about backslashes vs forward slashes, semicolons vs colons, and
Why would you sacrafice all of these choices and options? (Read about "Real Options" to see how these choices have concrete dollar values - sacraficing options is just throwing money away.)
I hear arguments like "we've already got COM developers" - Is it really that hard for them to learn Java? How much would two weeks of downtime cost for a shop of 20 developers? Figure 75k/developer (with overhead), that's $1500 a week - times 20 - 30k/week - times 2 - $60k (4% of the annual salary budget). Add to it about 3 months of 75% productivity (25% in month 1, 50% month 2, 75% month 3, 100% month 4) - that's another $94k. So hand wave a little and say that switching to Java will cost $150-$200k for a development shop with $1.5-2 million/annum budget. (Maybe add another $100k for training and what ever.)
That's the same cost as being 4-7 weeks late on a project deadline. When's the last time you did that?
A "real options" analysis would likely show the choices available in the Java world are worth maybe ten times that. Figure a company with $2MM dev budget has a $20MM-$70MM annual revenue, there's a good chance the flexibility from choices can make a 3-10% difference in revenue - an even better chance of 1-3% increase per year over 3 years. (I know that's not discounted but it's a back of the envelope thing not a 10Q filing.)
How much would you save on VB Studio licenses?
How much might you save by leveraging amazing tools like those used in Garsomke's continuous integration environment (see http://www.sys-con.com/java/article.cfm?id=1945)? Apache's projects alone are worth a great deal of money to a development shop - add in Source Forge and the value is down right spooky.
What else I wonder? (Let's not forget the simple freedom from Microsoft lock-in.)
What's the counter argument - that there are some incremental IDE features in VS Studio?
It seems simple - black and white (and green).
Java has not currently reached a level of maturity where you would consider actually using it. It is developing at an incredibly fast speed. The whole idea of adding features to this language is insane. Before it becomes usable we would need an ISO standard that covers at most 1 % of what the current version contains and then wait for at least ten years before considering changing a programming language. Small wonder so few real applications have been written in Java.
I am so sick of trying to fit applications into a poorly designed text markup language invented for punch card word processors. Sure there have been some extensions, but face it - Web and XML is not a language/syntax that would have ever been invented if it was not for an anti-Microsoft movement. .Net to Java is too broad - it's like comparing water to gasoline - they both have their place - they both do some things better than the other. .Net wins easily for level of effort. I'm not saying Java can't do as well - for a larger project with tons of resources you can coax Java into what is done easily and built into .Net. On the other hand when I'm force to write an app in that punch-card-text-markup-language (aka HTML) I find Java more mature - although both .Net and Java suck for debugging such an application. .Net with visual studio? Piece of cake. I've yet to even attempt it in Java. Why should I? I just wrote 3 in .Net before I could find a current reference for Java.
Comparing
I've written GUI in both -
Ever write a SOAP web service in
And quit blaming Microsoft for security holes! It is only because Microsoft is so popular that it is the target of attacks - I seriously doubt if there is any greater number of holes per 1k lines of code than Java, or Linux or anything else for that matter. If security is a compelling concern, then maybe you should run a system least likely to be targeted, haha - pick Mac. Common sense is that you architect with security in mind on any platform, it's called checks and balances.
slashdot troll = you make a compelling argument I do not like the implications of.
Mostly your right.
Web apps suckage is huge due to incosequent MVC splitting, a bazillion architectures and just as much DBs that just cry for patchwork jobs and server overload, with an overhead that triples hardwarecost and all that.
Yet there's one Appserver that outruns all them codebloat disadvantages: Zope.
It's completely Python with 2 or 3 things in C (for speed). It's got an object-relational database built in and generally kicks VB.Net, ASP.Net C#.Net and the Java stuff up and down the street when it comes to speedy Inet developement. It's only since Zope that I consider Webapps a viable alternative to other solutions. Check it out, you'll see that they've addressed all the issues you rant about. (It's GPLd, of course. www.zope.org)
We suffer more in our imagination than in reality. - Seneca
It's not the same thing at all. It's not source compatible, the machine isn't the same, and it doesn't run .NET apps. It is in no way compatible with the desktop .NET implementation, save a small subset of the API.
You mention embedded devices and then mention cellphones, devices that now come with internet, games, email, etc. and are no longer embedded devices.
My real life does involve work with embedded devices. Java is too fat and too slow for them. We use assembly or C++ for them, comfortable that the same libraries we create will run on the vast majority of our devices... because chips are pretty standard.
For example, Atmel processors - there's a huge variety, good pricing, and other than having to configure the ports/pins, they all work pretty much the same. And there are several other vendors that provide language-compatible chips.
So building the embedded system, we're better off without Java because we have the flexibility we need at a hugely lower cost. As for third-party apps, our systems are, as you said, embedded. They're practically invisible. They don't support third-party apps.
Why would I want to put in Intel assembly code into my Pascal program? I never had a need to drop in 68000, PDP-11, or Cyber assembly language, why would an 8080 be any different?
It would make more sense to slightly extend Pascal to allow direct access to memory, ROM routines and the like, and add in interrupt handling capability (i.e. save/restore registers, manipulate interrupt level/interrupt mask) than to allow in-line assembly code, if that even makes sense in a pcode environment, which it doesn't. See, for example, the variant of Pascal that Apple used in the Lisa and MacOS (though I don't think it directly supported interrupt routines). Of course, the ROM routines had to use Pascal calling conventions, and it wasn't a pcode environment.
Ah, Awesome. What you really want is Free As In Beer software, you couldn't give a shit about 'The Cause', so long as no one's going to sue you for pirating server-side software. It's great that there are so many advocates of the FS/OSS movement, but there are special places in Hell for people who are just along for the ride.
No, I just said it will require a more diverse set of programmers. Not more. I.e. instead of 8 java developers, you'd need 3 VB.net, 4 C#, 1 Perl.net. You understand now. And it would always require such a diverse set. And if you really get down to it, and look at the languages you will see that the dotnetization really just makes all the languages generic, and actually detracts from most of the original languages advantages anyways.
Occam's razor is the blind faith in the natural selection of least resistance and in universal oversimplification. -- EF
Why would I want to put in Intel assembly code into my Pascal program? I never had a need to drop in 68000, PDP-11, or Cyber assembly language, why would an 8080 be any different?
It is not that you necessarily NORMALLY would, but can, and this is just one example that defeats any type of full cross platform Pascal compiler instantly.
BTW I have done Pascal on PDP, 68000 and many other platforms as well, and trust me - THERE have been times I have had to drop to assembly in professional production.
So don't take the fact that just because cross platform compilers are available for ANY lanuguge that it somehow equates to an architecture consisting of a language running in a VM on multi-platforms like JAVA tries to do.
And this is especially true with languages that try to take advantage of a platform API like Deplhi and Kylix (Pascal) that support more than the antiquated char based applications. Borland did a pretty good job of trying to support both sides of the fence, but there are still SO many things that have to be rewritten and that break when moving from one code base to the other.
JAVA's VM had grand design ideals in its begining, but has failed so far to meet what they promised back in 1996.
It is still considerably slow and still has many problems running applications correctly in a mutli-platform environment. So everyone that believes that by building in JAVA that their software is truly portable at this point are diluting themselves as well.
I have too many developers in my companies that deal with this stuff on a daily basis, and I see the problems they come up against all the time.
I am not a kiddie that is just getting their feet wet in development and trying to post something on slashdot that I have no idea about.
Why wouldn't you just pick one of the .NET languages and make them all learn it? It's the same thing as making all the developers learn Java.
Hell, there are no rules here. We're trying to accomplish something. - Thomas Edison
Why would you need to factor in upgrades to Windows XP and Windows Server 2003 just to use a .NET based language? Lots of people run it on Windows 2000, and hit Windows 2000 Servers. Applications built in VS.NET (or any other .NET language / environment) can be deployed all the way down to Windows 98 and NT 4 machines.
Hell, there are no rules here. We're trying to accomplish something. - Thomas Edison
the know nothing talks shit again. you are a fucking fool. an unproven poor fool.
So I guess if a phone isn't MIDP enabled, then you just ignore it?
So I guess if a phone isn't C++ (or ASM!) enabled, then you just ignore it?
Hint, there are like 99% more java enabled phones than C++ -devices at the moment, quite a few to ignore but feel free.
The VB and OO coders can finally work together and speak the same APIs
Well, VB always had the ability to call C++ DLLs, and COM objects. Anyway, what difference does it make? VB coders by definition suck (if they were any good they would know more then VB, and if they had any sense they would prefer not to use it for anything other then the simplest GUI tasks)
I will say that VB.net doesn't suck nearly as much ass as VB = 6, though. But anyone calling themselves a "VB Coder" is a retard.
autopr0n is like, down and stuff.
I actually tried VB.net a while ago. I wanted to write a simple GUI app to go along with a C++ program I was writing in Visual Studio and I figured I could just add the VB stuff to the same project.
Anyway, it actually doesn't suck. You get to use the "normal" File IO, you can instantiate forms like normal objects, you get full OO style. It's actually pretty nice. The only thing that sucks is the low-level syntax (I mean, it's still BASIC).
I ended up switching to C# for the core subroutine, though, since I didn't want to deal with writing complex code in VB.
autopr0n is like, down and stuff.
I've used VB.net and it seemed to have as much ease as vb6. Just point+click+fill in event handlers, exactly the same way.
Yeah, you have to learn some new things, but the new way of doing things is way better then the old way.
(not to mention the IDE doesn't debug in the same thread as the editor, so if your program gets into an unbound loop it doesn't crash the IDE causing you to lose any unsaved work...)
autopr0n is like, down and stuff.
Um, excuse me, but it's very possible to create full-featured applications in assembly in just a couple of kB of flash memory. And in case you hate assembly, you can do the same thing in C++ for around 500 kB, and it will run faster than Java. Remember, embedded devices don't have the screaming fast processors that are needed to make Java appear fast. And they're not likely to have the few hundred megs of RAM that a JVM seems to think it needs, either.
500k for a C++ app? Maybe if you go template crazy or something, but if something only takes up a few k of assembly code, it should only take a few k of compiled C++ as well. And half a meg is huge on an embedded device that could have 8 megs or less, including storage, runtime, and OS.
And given that embedded devices are often used for critical infrastructure (i.e. utilities, aircraft, nuclear plants, etc...), I'm not sure if I'd trust someone who can't master assembly to write code that controlled a something that could get me killed if an unexpected Out of Memory Exception was raised.
Well fuck. I know I'd trust my own java code more then my own ASM code! You'll need a lot more ASM code to do the same thing you could do in just a bit of java/C++/whatever. And in order to understand ASM code you need to emulate the chip in your own head, perfectly. With most languages, you can divine the meaning much more simply. Asm errors are harder to see, and you have way more code that could have errors in it.
autopr0n is like, down and stuff.
Seriously, 500k is rather huge. For GCC, the total overhead for the full C++ language runtime (exception handling, RTTI, etc) is a little over 60kb on x86. If you don't want full C++, you can go quite a bit smaller.
A deep unwavering belief is a sure sign you're missing something...
As someone who's now been an "unofficial evaluator" for VS.Net at two companies, lately including the 2003 revision (or was that VS.Net 2002 SP1?), I have to take issue with some of your points.
Before I do, though, I'll agree with you that in general, VS.Net is a very powerful tool, which has a lot going for it. Most of the freebie tools aren't just unable to compete, they're even in the same league. There are a few notable exceptions, which have been mentioned here, but VS.Net should still have the edge.
I say "should" because I think they've really blown it in a couple of areas, seriously enough to block a lot of development shops from upgradings from VS6. I think if they address these areas in the next release, they'll be right back on top of the pile, but I can see a lot of places holding off on upgrading until their pet "breaking issue" is resolved.
One of those areas is performance. The IDE's responsiveness sucks compared to VS6, in both versions of VS.Net but particularly in 2003. The File|Open... dialog takes half a minute to scan a directory on my system with a few thousand files in it and locks the whole app while it's doing it, FFS. This is simply not acceptable in a modern tool on a multitasking OS, and is almost certainly a result of someone being a bit too clever in "improving" that part of the IDE but forgetting the first rule of Windows message-driven architecture: don't block your UI thread. I can quote several other similarly heinous performance issues if you really want. Generally, it's not bad -- the IDE is very responsive most of the time, and its compilation speed is still pretty good compared to the field. But let's not pretend it has no problems.
They also really blew it by taking out a couple of the most useful features VS6 had. Try searching the MS VS newsgroups for questions asking where the browse toolbar went, and count the number of different threads going back over the past few years. I don't much use the various wizards and resource editors, preferring to write such code by hand for the most part, but I gather from the backlash on the newsgroups that a lot of that changed for little apparent benefit in VS.Net as well.
This makes it particularly unfortunate that, between the 2002 and 2003 releases of VS.Net, they seem to have changed the add-in architecture such that several of the most useful tools available for VS.Net 2002 no longer work. This notably includes the well-known "Call Browser" add-in, much recommended on Microsoft's own newsgroups to fill the gap left by removing the aforementioned browse toolbar.
I've had some contact with guys on the dev team for VS.Net, and they seem to have an excellent attitude and be genuinely enthusiastic about collecting end user feedback and acting on it to improve the product. It seems they're looking at ways to fix the browse toolbar issue in the next release, for example. Let's give credit where it's due, to MS as much as anyone else, but let's keep a sense of perspective as well.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
I think it's worth bearing in mind the relative productivity of different languages for different tasks.
One of the big selling points of the .Net architecture is that you can realistically write the high level functions of your program in genuinely high level languages, and then use the architecture to communicate with lower-level languages where high performance or refined control is more critical. All the time, the major APIs for routine things are uniform across the entire app.
Now, there are pros and cons to both this approach and the ability of today's .Net to achieve it given the selection of languages available and the support they have. In principle it's a worthy goal, however.
Given this flexibility, in the long run it may be significantly faster to write your program using a selection of languages and combine them via .Net than it would be to use a more "portable" language like C or C++ for everything. You can use the time you save to reengineer your work in a different language on other platforms later if necessary. In the meantime, given the nature of today's commercial development world, your time to market may be so much better with .Net's approach that any other is irrelevant anyway. If you know you're targetting Windows and other platforms may (or may not) come later, better to get the interest in your product up on Windows first rather than let a competitor beat you to it, and leave so few customers that no-one cares by the time your easily portable solution arrives on even one platform.
Java has a similar issue to an extent, but there are so few other mainstream languages available with compilers targetting the JVM that the issue isn't nearly so significant. (Yes, I know there are more than most people think, but .Net appears to have a comparable number of serious languages available already, and Java had several years of head start. It's a much more significant focus in the .Net world.)
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
That long, huh?
There are some areas where Visual Studio is behind its competitors. The debugger is not one of them.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
Do you actually have any idea what p-code is? It was the (platform-neutral) byte-code for a virtual machine (the p-machine). There was a cross-platform Pascal compiler at the time, but it was made portable by compiling it to p-code, and then distributing the spec for the p-machine so it could be implemented locally.
So guess what, Pascal "consist[ed] of a language running in a VM on multi-platforms like JAVA tries to do." But I'm sure you already know that, since you aren't a kiddie.
Do you actually have any idea what p-code is? It was the (platform-neutral) byte-code for a virtual machine (the p-machine). There was a cross-platform Pascal compiler at the time, but it was made portable by compiling it to p-code, and then distributing the spec for the p-machine so it could be implemented locally.
So guess what, Pascal "consist[ed] of a language running in a VM on multi-platforms like JAVA tries to do."
But if you still have to drop to assembly or are trying to create a GUI based applications, the pcode crap fails miserably. PERIOD.
Unless you're going to argue that Java is portable even when using platform-specific libraries (JNI, or whatever), I don't see the difference. If you stay within the portable system you're fine in both cases. If you step outside, you're screwed.
Unless you're going to argue that Java is portable even when using platform-specific libraries (JNI, or whatever), I don't see the difference. If you stay within the portable system you're fine in both cases. If you step outside, you're screwed
Exactly...
And Sun sued Microsoft for platform specific extensions to JAVA because it would dissolve the 'VM' concept of full portability - yet now we have many platform specific library calls available in JAVA supported by Sun. Business hypocrisy at its finest.
Making it even more of a WRECK for cross platform development in addition to its inherent performance and compatibility problems already.
Can we move on now?
Can we move on now?
Sure. I've just been wondering when you'd admit that Pascal has provided a portable VM-based system since the '70s. You mostly did, so I'm happy.
Sure. I've just been wondering when you'd admit that Pascal has provided a portable VM-based system since the '70s. You mostly did, so I'm happy.
Thanks, I never didn't... But there is a difference between the pascal pcode and pmachine and JAVA, that was where I was going...
Take Care, and thanks for the debate...
I still don't see any reason why you'd need to use in-line assembly in a pcode program, except to write a device driver (direct access to memory, I/O instructions, interrupt processing), call call some OS routine not otherwise supported, or possibly to implement something like shared memory that isn't supported by the VM. Note that if the pcode doesn't support any way to specify in-line assembly/native machine code, but you think you need to use it, then that doesn't make the VM non-portable, it makes it inadequate for your needs.
Writing a device driver is inherently non-portable, but to the extent that it could be portable, and it was desirable to use something like pcode (e.g. Open Firmware Forth boot code), extend the language to support it.
Accessing an OS routine shouldn't be necessary. If it is, the language is missing a feature, so add it. Shared memory, if desirable, can be added. Providing access to a facility that may or may not be present can be done in a way that preserves portability (with either a feature check facility or a clean failure with "feature not present" error return or exception). A portable language/VM does not mean you can't write non-portable programs in it, but a non-portable program should be able to figure out when it can't run and cleanly fail or degrade. Depending on your definition, all programs are non-portable. Even "Hello, World!" assumes you have a character output device. Other reasonable requirements (memory, persistent storage, communications (to users, other processes, other machines), display, audio/video I/O, sensors and manipulators, CPU speed, randomness) can all be missing unless you define the virtual platform as having them - but then you limit the ability to properly implement the platform.
For a language/VM where you deliberately want to provide clean access to non-portable features, you can provide them, e.g. JNI. Anything that needs to be done in such a way should be considered a candidate for inclusion in the virtual platform.
A pcode-type system does not need to be slow. With current processor speeds, a 10,000 user time shared system written in assembly code can be emulated with each user having more CPU time available than they had on the 500 user system of 20 years ago. Emulating a good pcode system is faster than emulating machine code for a processor that wasn't designed with emulation in mind.
If you had to install an app on thousands of desktops, including the runtime is completely trivial and a non-issue. Upgrading to XP from 2000 Professional does nothing to change the fact that you have to install the
Well, I thought it was funny.
:P
So did I. Doesn't mean I can't bitch slap ye, though.
which is a joy to program in. In a lot of cases is funnier than Java.
But of course, Java is better for some things.
We are Turing O-Machines. The Oracle is out there.
dont decend into this my toy is better than yours bull-ish.
.NET.
.NET produces DOCTYPE XML documents with custom .NET data types that DO NOT map to J2EE data types.
.NET and vice versa.
.NET.
Java satisfies a different market than
And that jokoe about interoperability at the Web Services level is just that - a JOKE !
What the f**k you cry - well anyone wanting to work in both camps have a fugging nightmare tryin to get Java to play with
I am - this very day - in the realm of low level XML parsing to cope with this pain in the arse !
If i was developing for windows rich and thick client - I would go
Businesses need to glue though - and for that J2EE kicks serious butt.
2 Different markets - 2 different choices !
There is no 'winner' as such.
You'd be amazed what Mozilla does these days...
Similarly things have happened in 1.5 with, eg, automatic coercion between primitives and the primitive wrapper types, so you no longer have to write code that does things likewhen what you wanted was a dictionary with integer values and string keys. (And yes, you can write a class MapStringsToInts for this, but then you're adding something else incompatible, that will be obviated in 1.5.)
The point is that the language -- not just the implementation, the language -- changes fairly significantly at every
What we ought to do is declare a feature freeze at 1.5; new things that can't be implemented without changing the language don't get in, and everything that requires new class libraries should be made an extension, not part of the base language.
Why? Specifics please. Or are you just another clueless /. blowhard?