Mono Poises to Take Over the Linux Desktop
Edd Dumbill writes "Miguel de Icaza and the Mono team recently hosted a two day open meeting in Boston. O'Reilly have just published
my report of the meeting. Highlights include
Miguel's view that 'C is dead!' and the Mono approach
to dealing with Microsoft patents on .NET."
C is dead? Has Netcraft confirmed this?
"I once thought I had Mono for an entire year, just turned out I was really bored..."
Karma: Terrible
long live c!
I realize that this is an unpopular opinion here on Slashdot, but C# is actually a pretty cool language and the .NET runtime is a promising platform. Microsoft didn't just dream this up overnight... they had a lot of smart people working a long time creating this beast.
It would certainly benefit us to learn about these technologies and leverage them, rather than to unilaterally declare them evil, wrong, stupid, etc. and just bury our heads in the sand and pretend they dont exist.
"C is dead!" + slashdot == pain
Aside from being a the primary source of Mediterranean winds, Icaza has apparently forgotten about that whole "Linux" thing that is built on that whole "UNIX" thing that was built using that whole "C" thing. I applaud his salesmanship. I deplore his view that the desktop is equivalent to the operating system.
You need a solid underground when programming...
MS and solid? hmm...
Will Mono Become the Preferred Platform for Linux Development?
by Edd Dumbill
Why the hell would I believe someone with the name of Edd Dumbill?
That must be the "Alan Smithee" of the so-called "tech writers." It's probably just dumbshit Alan Seeburgh in disguise, playing hooke from CNN.
This falls under the "I can't believe what I'm hearing" category...Mono is *not* ready as a plug in replacement for .NET, and it won't catch up before MS releases 1.2...for the foreseeable future, it's trailing behind the Windows implementation and is not likely to catch up.
I see PyGTK as a much more reasonable (and WORKING) alternative to C programming for people who want to write Gnome apps. Or GTK--, for that matter. Mono currently has crappy System.Windows.Forms support (even with Gnome#), broken serialization support, the list goes on and on.
Doesn't the Monodevelop IDE look suspiciously like Eclipse?
Are we supposed to clap?
"Trademarks are the heraldry of the new feudalism."
It would certainly benefit us to learn about these technologies and leverage them, rather than to unilaterally declare them evil, wrong, stupid, etc. and just bury our heads in the sand and pretend they dont exist.
I think that about a lot of Microsoft technologies -- but to be fair, I'd say that the mere existence of Mono is evidence that a process such as you have described is already in motion.
The coolest voice ever.
Also, .NET is much like Java, and C hasn't died from the adoption of Java.
Great, now users will be stuck fixing Windows and Linux exploits while using Mono
C is inferior, yes. It's hardly dead though.
I realize that this is an unpopular opinion here on Slashdot, but C# is actually a pretty cool language and the .NET runtime is a promising platform. Microsoft didn't just dream this up overnight...
.Net is a nice language with some advancements over Java, but not different enough from Java to make its existence worthwhile. It's just leading to a lot of duplication of effort across the world (like Ant and Nant, or JUnit and NUnit).
Yes, it took at a least a couple of days to copy all the Java libraries and ReCapitalizeMethods,
Seriously though,
Now if they'd come up with something like Haskel# as the primary language (instead of hamstringing other languages and making all of the core libraries Java like) or something really different that actually advanced the field of programming as a whole, then I might be more appreciative But as it is I see the tremendous duplication of effort across the world to do the same things in Java and C#, and it just makes me sad.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
.....at their own game.
.NET than .NET
You can't a better
Anyone remember "a better Windows" than Windows called OS/2?
--fatboy
One of the problems I have with Mono is that it reimplements Microsoft's .NET framework instead of relying on its own. I understand that it is a lot of work to create such an integrated development platform from scratch, but I feel that the benefits of having a truly open/free/whatever solution will far outweigh the extra time that it would take. I am not a programmer, so I don't know much about the intricacies of .NET, but I can't possibly imagine that it is perfect in every way and that nobody can think of things that could be added/changed in it.
C is dead. Wow. Heyyy, isn't *BSD written in C? Hmmm...
It seems we get 5 articles a week explaining how Linux isn't ready for the desktop. How can Mono take over something that experts assure us doesn't exist?
Worried you might not keep your virginity forever? Try new Linux(TM), guaranteed twice as effective as LARPing
Languages written in C:
....
perl
python
ruby
As it is, I don't want to even attempt to emulate another 'grand MS idea'...especially since there are already superior non-MS systems out there that puts .net to shame. No, I'm not going to cite those systems...do your own research. You'd be surprised.
Die Mono Die!
I've been playing around with the Mono implementation of C#, and it's pretty good. It's not quite as good at RAD tasks as Python, but it has some advantages, and the syntax is much easier to play with than C or Java (but again, not quite as easy as Python, but I'm biased in that regard).
However, Mono suffers from the fact that they're trying to play follow the leader by following Microsoft's implementation rather than creating a system of libraries from scratch. Microsoft has a history of pulling the old "embrace and extend" trick, and I fear something similar may happen here.
My guess is that Microsoft will significantly alter the .NET APIs for Longhorn, leaving Mono behind with older legacy libraries that are no longer interoperable with the Microsoft compiler and the rest of the Windows-using world. Needless to say, that would be bad for the Mono team.
Still, if Mono can remain independent, it could very well have a bright future. The Mono team has done a great job of implementing most of the 1.0 .NET API, and the mcs compiler is pretty fast. The GTK bindings are quite nice for such an early release.
Still, the cognitive dissonance of compiling a Linux program and getting a file with an .exe extension is rather difficult...
- C.
I don't know if it was the language at first, or if it was something as simple as the IDE that first turned me, but after having played with both Java and C#, I like C# better. If Mono is able to pull of a full port to Linux, I will be there cheering them on. Everyone knows that competition is almost always a good thing, and this will only make java work harder to improve itself. This will also give companies another reason to look at Linux.
.NET applications will run on linux" Guess what? A lot of windows applications are starting to be written in .NET now, and as more and more people move away from 95/98/ME, and to newer OS's, they will require .NET applications (we all saw how well legacay apps run on the new windows OS's).
"yes, all of you
This is a good thing, and I think people should support the MONO project as much as possible.
Now if you'll excuse me, I haven't slept in 2 days and I have to get back tZZZZZZZZZzzzzzzzzzzz...........
Now, if that makes sense to anyone, could you please explain it to me? I think I've confused myself.
Pascal? Not a chance. Cobol and Fortran will rise from the ashes and take over the world!
1) Rave about C# .Net
2) Convert everything to run on Mono C#
3) Get sued bad by the world's most deep pocketed software publisher except that unlike SCO vs. Linux this time the evidence is on the side of plaintif.
I'm not sure I dig the idea that the future of app development comes down to a choice between MS and Sun.
IMO, I think Parrot will become the .NET equivalent in the open source world: a language independent VM and a huge standard library. I can't wait to have access to CPAN from my Python programs.
Sure, C# is a lot nicer than C, but Python & Ruby are a lot nicer than C#. If you're going to give up the predictability of C/C++ for a VM, garbage collection, et cetera, why not go all the way up to dynamic execution?
Bryan
It is official; Netcraft confirms: C is dying
One more crippling bombshell hit the already beleaguered C community when IDC confirmed that C market share has dropped yet again, now down to less than a fraction of 1 percent of all servers. Coming on the heels of a recent Netcraft survey which plainly states that C has lost more market share, this news serves to reinforce what we've known all along. C is collapsing in complete disarray, as fittingly exemplified by failing dead last in the recent Programming Language Usage Audit.
You don't need to be Scott McNealy to predict C's future. The hand writing is on the wall: C faces a bleak future. In fact there won't be any future at all for C because C is dying. Things are looking very bad for C. As many of us are already aware, C continues to lose market share. Red ink flows like a river of blood.
C++ is the most endangered of them all, having lost 93% of its core developers. The sudden and unpleasant departures of long time C developers Mark Markup and Sally Smith only serve to underscore the point more clearly. There can no longer be any doubt: C is dying.
Let's keep to the facts and look at the numbers.
C++ leader Theo states that there are 7000 users of C++. How many users of C# are there? Let's see. The number of C++ versus C# posts on Usenet is roughly in ratio of 5 to 1. Therefore there are about 7000/5 = 1400 C# users. C++ posts on Usenet are about half of the volume of C# posts. Therefore there are about 700 users of C++. A recent article put C# at about 80 percent of the C market. Therefore there are (7000+1400+700)*4 = 36400 C++ users. This is consistent with the number of C++ Usenet posts.
Due to the troubles of Redmond, abysmal sales and so on, C++ went out of business and was taken over by Microsoft who sell another troubled programming language. Now C# is also dead, its corpse turned over to yet another charnel house.
All major surveys show that C has steadily declined in market share. C is very sick and its long term survival prospects are very dim. If C is to survive at all it will be among language dilettante dabblers. C continues to decay. Nothing short of a miracle could save it at this point in time. For all practical purposes, C is dead.
Fact: C is dying
Exactly, there will be "kind of" a functional language - which has to use the same libraries everyone else does, which are all just like the Java libraries. So people using this pseudo-functional language will be hard-pressed to really see the advantages of a functional language as you would if you had a real function language with a set of libraries as broad as that offered by Java.
.Net and C# is the perfect vehicle to migrate users of all other languages to C#, not really to make life easier on people who want to work in one of the non-C# languages.
I formed this opinion long ago, just around when C# first came out, when I read an article by one of the founder of Eiffel talking about how Eiffel# would work (I wish I had not lost the link - I can no longer find this article). He saw opportunity at that point to gain new Eiffel programmers. But I saw only a tar baby, where the longer you worked with the system the more you just said "Well, all I'm doing is calling C# libraries with this weird syntax so I might as well make life easier by just using C#".
"There is more worth loving than we have strength to love." - Brian Jay Stanley
The more he slides under Microsoft's spell, the more I distrust his pronouncements. It's as if he thinks he alone has discovered the magic potion that will allow him to befriend Microsoft with groveling and flattery such that they will actually respect him and not pull the rug out from under him. Why he should be the one exception in all their history is beyond me.
I have pretty much come to the conclusion that if Miguel says it is so, it ain't.
Infuriate left and right
I've been using pygtk on and off for the last year or so and i've got to say that when used in combination with glade it's a real dream to work in. I think if a Visual Basic like IDE could be created for those who are afraid of the deep end of text editor, command line tool development we could have a real open source Visual Basic killer on our hands. And i'll take that over C#/Mono any day of the week.
slashrank
don't bother mentioning .NET community sites that host on .NET or Match.com. Those aren't transaction heavy or trading systems. Glorified webpages that serve up database tables are simple. A decent developer can build it. Building a transaction application that can handle 500-1000 moderately complex transactions (update/insert) per second is hard. .NET can't handle it, or atleast I all the cases I've heard of in the financial industry failed miserably. If you're in this industry you already know. If you're not, you're probably saying "what bs, .net can scale just as well."
Yeah, try to build one in .NET and tell me how many servers you're going to need. then tell me how you would run real-time analytics on all the rows in a given table when you've partitioned the table across 8 machines and each has 8 million rows. When the CTO says, the query has to take less than 30 seconds, what will your answer be?
After a long time searching I found these alternative names they considered.
Foot gout
Genital Herpes
Oily discharge
.Net is the platform in which C# is the closest natural representation of what the bytecode is like. As such, .Net is a vehicle for C# and a distorted reflection of all other languages.
.Net is the VM and C# the language. But as Java has shown, it's not really so easy to keep the two wholly separate. They are interdependent to some extent.
Yes,
"There is more worth loving than we have strength to love." - Brian Jay Stanley
We are doing quite well, see our Mono Roadmap
in www.go-mono.com/mono-roadmap.html, we are
a bunch of happy campers, with a nice runtime,
and a nice language to write code we enjoy.
Miguel.
1) When people think of ..., or "mono," they often think of extreme tiredness as one of the major symptoms associated with this illness.
Ditto
2) Loss of appetite and generalized weakness also may be present, especially in adolescents. Nausea, hepatitis, jaundice, severe headache, stiffness, chest pain, and difficulty breathing can occur in some cases. A pink rash can occur all over the body in children who have been treated with ampicillin or amoxicillin.
ditto again!
3) Some may experience extreme fatigue, staying in bed for more than a week because they feel too weak even to walk around the house.
We're three for three (esp. after a failed Windows update session...)
4) 'Mono' is generally a self-limiting disease, which means it goes away on its own in most cases. Occasionally mono can cause complications
Need I say more...
5) Epidemic outbreaks in hospitals and workplaces have occurred.
` My biggest fear! Remember kids - practice safe computing!
"I say we take off, nuke the site from orbit. It's the only way to be sure."
There is almost no difference between C#/Mono/.NET and Java, but almost no Linux developers write in Java. Check out your distribution's packages and you'll almost see more JVMs than Java apps. And for some reason Linux developers avoid Java like the plague, even though it's got a godzillion features that make everything so much easier (garbage collection, huge consistent class library, security, etc). Put in a GTK or QT library interface instead of the slow and huge Swing (that Smalltalkers foisted on Java) and you're golden -- there's every reason to use Java, especially for applications.
The Linux culture has so far prevented Linux from taking the next step. Just look the (essentially) complete lack of interest in gcj (gcc open-source java). Just look at the slow pace of Mono. It isn't goind to happen anytime soon, unless the Linux app community wakes up and sees the future. Yeah, 10 years from now we'll still be doing manual memory management. Sure...
... to attack Microsoft on the .NET front. We have all the components of a powerful, truly cross-platform development platform; they just need to be packaged in a way which can compete with the cohesive API that is .NET.
.NET with a standardized set of support stuff on each platform, with a single installer to support the entire shebang. Why can't this be done? If I had the time, I would, but I don't. But if there was one place the open source community can take on Microsoft, it's development tools. And the time to do it is before .NET gets too entrenched.
Now, I'm not trying to start a flamewar here, so I'm not going to insist on specifics here, but what needs to be done is to create essentially a "distribution" of a powerful language (I'd use Python), a good cross-platform widget set (I'd use Qt, were it not for the license issues - personally I don't blame Trolltech for the licensing scheme, as $2500 is chump change to any real development house anyway, but in this case it would hinder adoption. Maybe wxWidgets then, or GTK+ configured in a way to appear like native widgets, but gah, GTK+ is such a hideous API), a selection of useful Python (or whatever) modules, and so on.
Like I said, this is nothing that didn't exist before, but it should be packaged in such a way as to provide a standardized environment on every platform that applications can rely on. Come to think of it, rather than use a specific language like Python, maybe the whole thing should just be wrapped around Parrot.
Anyway, the specifics don't matter. It's the idea of having a good competitor to
So now Miguel de Icaza is saying all that stuff is soooo passe, everyone cool has moved on to the next big thing. Excuse me? It can be passe if it isn't even stable and working yet!
Okay, YMMV. Maybe my experience is particular to what I'm doing, which is compiling from source using the FreeBSD ports system. But I have to say that the experience wasn't much different when I installed binaries rather than compiling from source. The shared libraries are changing their APIs constantly and breaking binary compatibility.
And then there's the performance issue. The last time I tried the GNOME desktop, it was just ridiculously slow. I mean, I'd click on an icon in the file manager, and I'd have to go get a cup of coffee and come back and see if it had opened it. People said, "OK, that was the old versions, now GNOME is more optimized," so I came back and tried it again, and it was just as slow. Well, if it's that slow when you're running all the stuff written in C, imagine what it'll be like when you're running .NET.
Find free books.
I have a dollar that says C is going to outlast C#. Right next to my other dollar that says UNIX (or derivative) is going to outlast Windows.
A word of warning Miguel and friends, taken from the lessons learned by the previous companies who have partnered with Microsoft:
"There is only one rule in dealing with the Devil - Don't!"
"Straddling the sword of technology..."
Hmm.
The initiative it takes to back-engineer the
The whole idea of chasing after a proprietary standard like
If Microsoft doesn't want the
Unfortunately, Miguel seems to have a fairly long track record with this sort of Microsoft-chasing. You can run along and play catch-up all you like with other technologies, but, it'll be just like it is with Gnome ---- With Gnome, you're guaranteed nothing better than a perpetual second place finish. Gnome amounts to a Windows wanna-be, instead of a Windows-killer, when it didn't have to be that way. Miguel made it that way.
Look...If you HAVE the talent to do something better, for God's sake, do it. Don't waste your time (and other peoples time) churning out flea market knock-offs of worthwhile products. I'm certainly no fan of Microsoft..I just call it like I see it.
Bowie J. Poag
You might want to look at Nemerle (www.nemerle.org)
.Net for all other languages. Take a look at one of the first paragraphs describing Nemerle from a PDF I found on the site:
.NET did not fit in as well as, for example, C# [5] does. Addressing this issue was the main idea behind the design of Nemerle. In comparison to Haskell [3] or SML [2], Nemerle is not a pure language in the functional sense, allowing the programmer to create completely object-oriented and imperative programs. This makes Nemerle a good transition language for people with C-like imperative and object-oriented languages background. They can take advantage of the language imperative features until they gradually learn how to program in a functional fashion.
.Net as a "Stepping stone" to learn the other languages offered by the .Net platform?
You have brought forth the perfect example of the danger of
Of course, the framework is strongly object-oriented and primarily focused on traditional object-oriented and imperative languages. Therefore ports of the existing functional languages to the
No, not quite a pure language and you have to use the C# libraries. Again, a pale reflection of a real functional language with libraries that do not encourage functional use.
But the real problem is the last sentance - "until they gradually learn to program in a functional fashion".
You and I know how programmers are. We are built for laziness. I am that way myself. So what would happen if we put twenty programmers in a room, ten of which came knowing C# and ten knowing a functional langauge, and had them program in Numerle for a year? I'll bet 18 of those twenty would just be using C# by the end (even knowing how obsitinate supporters of functional languages such people are!), and the C# people would not have picked up a lot of functional knowledge along the way. Because knowing how C# works gets the bulk of work done in the system (as like Java, the bulk of work is done by a rich set of libraries), you will evolve to working in a C# style even in the confines of a functional language!
How many Eiffel# programmers are there out there already? How many people have used
"There is more worth loving than we have strength to love." - Brian Jay Stanley
FORTRAN is mad sweet, yo
The "Insert Quote Here" line is almost as predictable as inserting an actual quote.
Uhm, why would MS do this?
Introducing a crippling change for Longhorn would not only hurt this goal, but it'd bring down the rath of a few regulatory agences all over again--and piss off everyone using
Java's write once, run anywhere is pretty real - it's harder for GUI's of course and works best for server side stuff (who even thinks anything of compiling and testing in windows or linux and just moving Java compiled code up to Solaris or some other system?).
But to address your point above, the introduction of Generics will change the
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Great! Now there's only 25 letters I have to teach my kids.
First, I would say that Operating systems are in the same boat as operating systems. Maybe this was supposed to say "Operating systems aren't in the same boat as programming languages"?
I think the implication is that, if you trust Microsoft to set the standards, you'll spend all your time and effort playing catch-up to them when they change to a new standard.
For an example of this, look at the Samba project. Yes it's been successful, but look at how difficult some of the advanced functionality was to get correct (Active Directory for starters)
Mono will always be a second-class citizen in the .Net world, precisely because it isn't supported or backed by any truly large player that can hold some influence with Microsoft.
Overrated / Underrated : Moderation
So far, there's a surprising enthusiasm for Mono and C#
Latebreaking news flash! A reporter attends a Mono lovefest and discovers that the attendees are having a lovefest!
Don't blame me, I didn't vote for either of them!
Mono is a DotNet wannabe.
DotNet, of course, is a Java wannabe.
Why not just use Java? Oh, that's right:
Microsoft - Duplicates anything they don't own and control
Open Source Movement - Duplicates anything someone else owns and controls
If I need to write a daemon that handles 250,000 hits/hr, I write it in C. Hands down, C is the only language I know where I can control memory and CPU usage. The only language where I can predict what will happen with some accuracy. If I write a program in Python or Java or whatever, it starts consuming RAM, it starts context switching at the wrong times, etc. On a recent Python project I had to actually go into the Python memory allocator (written in C) and do some hacking, because it didn't work right for my project. So obviously C is well and alive.
.NET program on Windows, I ... USE WINDOWS! Maybe I'll "play" with Mono, but at the end of the day the only reason I'd use Mono is for Windows interop. Not to replace Windows.
.NET's dev tools and IDE for Ruby, then I'll get excited.
If I need to write a quick script, but make sure it's clear enough to understand next week, I use Ruby. A lovely, well-designed language. Why bother with compiling and linking? Go dynamic.
If I want to use an awesome development environment, I use Mac OS X. Aside: sometimes I wonder if people who rave about the latest scripting language or the latest Windows dev tool, have ever actually *used* NeXTSTEP/Cocoa! It's still light-years ahead of what most people use. Look how many examples in the Gang of Four patterns book come from NeXTSTEP!
And, if I need to write a
C# is a nice improvement on Java. Which isn't hard to do.
Like a lot of folks I look at Mono and I just don't get the point of it. It's Microsoft's technology, it's always going to be playing catch-up... to a mediocre environment.
Give me
What does Mono stand for? I heard it stands for 'Microsoft, Oh No'
Cheers,
RoadkillBunny
I respect Miguel, but I think he seriously underestimates the risk posed by MSFT's patents in this area. Quoth the article:
Microsoft has granted a license to use this technology under so-called "reasonable and non-discriminatory" terms.
"Reasonable and non-discriminatory" (RAND) does not imply "free". RAND was the proposed licensing requirement for W3C patents that was howled down by the community.
Given that MSFT is willing to finance SCO to use arguably illegal tactics to destabilise and discredit free software, who would expect that they are above enforcing a small fee for every patent needed to implement Mono? They needn't do this immediately, in fact it is in their interest to wait until the technology is widely adopted, so they can slug everyone at the same time. Note that the usual legal defences against "submarine patents" won't work either if the terms have been disclosed to be RAND all along.
Well, if we can get to the point where we can do things like those shown in this Longhorn video, development for Linux will definitely increase.
By the way, the video is worth watching not only for the cool technology but also to hear two Microsoft programmers ragging on each other. Totally opposite the kind of atmosphere you'd expect at Microsoft, I suppose.
I think Mono is a really nice way of putting gnome a bit to much in the way of the Microsoft Bulldozer.
Do ANYONE think that MS would let the oppurtunity to use a patent against OSS go by?
Without a written consent from Microsoft openly stating they wont sue and slander i cannot give in to Mono. If gnome is built upon it i will go elsewhere with my business.
Call it damage control in advance.
HTTP/1.1 400
You seem all worked up over nothing. The article is specifically talking about desktop applications.
Boffoonery - downloadable Comedy Benefit for Bletchley Park
We have Gnome because Trolltech refused to release QT under a free license in the early years.
The prevalence of KDE at that time showed us that a large proportion of the F/OSS community would cave to non-free software if it was convenient.
Until recently a mutually beneficial relationship existed between Gnome in the community and Ximian as a commercial provider, analogous to the relationship that exists between OpenOffice.org and Sun's Star Office.
Now that Novell owns Ximian (OK Novell are currently our friend, but that may not always be the case) and Miguel is exposing the community to litigation from Micro-Soft down the track through the introduction of non-free technologies (and procedures, methods, etc. which are likely to be covered by upcoming patent laws) the GNOME project needs to distance itself from the disruption that the Ximian guys represent in order to avoid contamination.
Miguel has a solid reputation and has done a lot for the community, but in this case he is either (best case) a fool for thinking that Micro-Soft can be trusted or (worst case) a quisling. Either way, it's barge pole time.
What is missing for a similar type of system to be implemented in Java, with a GTK+/QT frontend? Is it the VM is not robust enough? Is it the fact that there isn't an easily copy-able blueprint as in the .NET API's?
Why aren't IBM and Sun(Java Desktop??) pushing something like this as an open-source project?
-
No language can replace C until it can compile its own compiler written in itself.
now we need to go OSS in diesel cars
Intel have a C compilers on a bunch of platforms. So does GNU (and Sun, and Microsoft).
Software doesn't suddenly become useless simply because another vendor releases a competing implentation on the same platform. If MS do release a
Boffoonery - downloadable Comedy Benefit for Bletchley Park
Actually, Mono includes a VB .NET compiler, so you might be right.
Former Iraqi Information Minister Mohammed Saeed al-Sahaf
Of course C is dead, it has been for years.
Anyone who wants can even go and look at the scrolls.
Visit CryptoGnome in his home.
Once you sit down and use VS.net, you'll know why it's the best development set.
It's not just the environment, it's that the IDE is so well designed to work with the language. You can pull up a dialog and create a new window easily. You can quickly modify the defaults for properties, and connect your callback code.
Should the exact argument order escape you, a quick tooltip will show you what's to be done. Plus, with the documentation being wedded into it, you can quickly explore related API areas and structures, allowing you to come up with more creative solutions.
It even does efficient code folding for you. And it's not a huge set of ctrl+key shortcuts like Emacs!
--
Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.
Some blustery claims of betterness without example. Please enlighten us all with the exact features you find to be miles ahead of Java. I don't even think you can claim the Visual Studio IDE (supposedly one of the strengths) is better after using Eclipse for any length of time (which does also support .Net).
.Net pretty carefully and drawn on an extensive array of experience with many other languages (like scheme and pascal and assembly and C and C++ and Objective-C) to draw my conclusions. I did say there are some advancements over Java after all - but as I said they are not that different. Just niceities, and many of them are being added to Java as well. I've also ported some .Net code over to Java (more duplication) so I must have understood it to some degree to have it work...
.Net and Java you are re-writing Ant and Log4J and Struts (because the .Net GUI tools will only take you so far) all sorts of other libraries, and two code bases will be maintained. Wouldn't it have been better for that same set of people to work on one codebase, rather than a bunch of .Net people frantically keeping up with the popular Java utilities?
I have studied
Linux is fine. It's sharing code from other UNIX systems - it's not like there are 100 different code bases for Bash. With
"There is more worth loving than we have strength to love." - Brian Jay Stanley
No, Eclipse is ! ;-)
...). That's why you use Layout. Insteadof giving X & Y, you just give them constraints (i want component A to be next to component B on a FlowLayout ... or , i want A to be "like a toolbar" positioned, see BorderLayout...).
.net is nothing more that a Java proprietary clone. Why proprietary ? Just because when you can have the complete specficiation of Java and implement it ! You only have a small subset of the Specification of .net (the few ones MS has pushed to ECMA). The other are just closed to public eyes ;-)
Just look at the number of people using eclipse and look at the number of people using VS.net
Why is eclipse the best : free, opensource, tons of plugin that fit every need !
You you are looking for a RAD tool (Delphi or VS like) then on Java JBuilder is still the best out of the place, because of the "two waytool" feature (a borland patent!). The idea behind, is that you got a DOMish view of the Java source file (APi is called JOT), then a second API make a component builder abstraction on top of this (API is called CMT). This result in possibility to just create visually an application like if you were doing some Delphi form design. But at the same time, the source code is automatically generate (and you can update it, move it, whatever you want with it, going back to design mode, the designer will be able to display it !).
FYI, the main design problem VB user suffer when going to Java RAD is the paradigm of Layout. Even if such things exist in a simpler way, they are only used by advanced users. In Java you by default use Layout. So first reaction of a Java Swing newby for instance is try to put component "like in VB", ie X & Y position.
But Java has I18N and portability in mind. Hence, positioning in X & Y is nonsense (how do you know the side of the font used on the machine, or the size of the theme
Once you clearly explain those facts to newby, after a few days they just forgot VB !
Trust me, i develop on Both platform made lots of training for newby.
All you have to remember is MS'
Ever tried to ask a .net developper using VS.net to develop on mono ?
;-)
... got a huge support at Apache Group, W3C, ... and is 100% Working on ALL the major OS !!!
;-)
"Why should i restrict myself to code with mono API ? In order to run on Linux that hold 5% of desktop machine ? No way, i need feature & don't care of that 5% !"
So it is only a one way swing : It will help Linux developper to be ready to migrate on windows !
That is "Virus development"
For those Linux people who still don't remember there is a platform called Java, that is supported by the FSF (ClassPath project) got tens thousands of project under GPL, BSD
Want to be usefull to the open community, go and help FSF to bring us an opensourced implementation of Java at Classpath
...and bugs that Microsoft leaves in their .NET
implementation.
Mono will quickly become marginalized when people
realize they cannot run some Microsoft-distributed
ICL on it. Mono will have the usefulness and stigma
of WINE.
Miguel said, "C is dead", sure.
But how about some context. This is what he actually says: "To me C is dead. Except for the JIT!" (emphasis mine).
He's not saying C is gone, that nobody is going to use it anymore. He's saying that he's not using it anymore, except to write the JIT compiler for mono.
So the quote is accurate, but the meaning is completely changed once you put it into context!
Miguel's view that 'C is dead!'
Take a number. I think I've heard this about once every 2-3 years pretty much ever since I learned C.
As far as I can recall, none of the alternatives proposed ever came even close to replacing it, and none of the vocal C opponents are still around or being listened to.
Assorted stuff I do sometimes: Lemuria.org
Eclipse is way more useful hat Vs.net (which I have used).
.Net for server side ASP development you have Weblogic Workshop which can help define things like flows between pages graphically.
.Net. It's probably a bit of a wash as both sides have Ant, but Java has a wide range of ant tasks defined already.
.Net is a platform furiously trying to re-write every useful Java tool - and almost succeeding. Can it keep up the pace though?
For one thing, imagine having a compile error and just saying - "Please fix". Often Eclipse gets this right in one, or can offer a range of choices (not all of them right all the time, but even so...).
And then there's great refactoring support that is really lacking in Vs.net.
With Java you actually have a range of editors that all offer more advanced features than Visual Studio. In IDE's you have Eclipse as I've said, or Idea, or JBuilder (expensive but very very easy). To compete with
And those are all if you have to have IDE's - developing Java without an IDE is I think simpler than
In every regard,
"There is more worth loving than we have strength to love." - Brian Jay Stanley
I take that to mean, "As far as the world of Mono/.Net goes, C is dead."
Here's the thing - first of all, the IBM SWT package does tie into QT (I think- it was one of those two) with some fast native components.
The other thing is that projects to write open Java VM's have not had much push behind them, because there are already very good VM's around for just about any platform you can think of! IBM and Sun both make one for Linu (Hmm, does IBM still make one for Linux? I forget). Anyway, even if it's just one that one is good enough for just about everyone so there's little drive for people to work on another.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
It's because he is a fine coder and realized the harm that operator overloading does in real-world systems.
I've been on the operator overloading acid trip in C++ thanks - I quit cold turkey.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Just because ActiveState screwed up doesn't mean that the CLR runtime is bad. In fact, recent work on Python implementations on top of the CLR beats both Jython and even the native C-based implementation.
Microsoft has a *huge* patent portfolio. If you honestly believe that Microsoft doesn't have at least one patent against most major projects, you're being terribly optimistic.
May we never see th
I'll tell you why Java does not prosper on Linux: It sucks.
When you come from a C / Perl / Python background, you quickly notice a few misfeatures of Java:
(1) It's huge
(2) The code-compile-test cycle takes too long
(3) It's hard to use
(4) Did I mention it is huge?
(5) It's slow and resource-hungry
(6) It is difficult to debug
The only reason Java is around today in any significant proportion is because Sun has convinced several PHBs that Java is good, Perl is bad. That was enough to convince several companies to adopt J2EE and drop mod_perl. In most cases, the companies have regretted the decision.
Ask the developers. They will tell you that the debug-compile-test cycle has been significantly slowed. They will show you the POs for new servers needed to handle the same load that the mod_perl servers were handling.
Linux is a breeding ground for good concepts that work. Java is not one of them, hence, it is floundering. Mono will be DOA.
Before you go ripping me about my opinions on Java, ask yourself: Can you program in Perl or Python? Have you done any significant work in either language? Generally, Java enthusiasts have either learned Java in college as the "one true way", or have converted to Java from Microsoft Visual Studio. I've not found a Java enthusiast yet that has a deep knowledge of perl or python.
Remember, Perl and Python are there not because they have huge PR campaigns and million dollar budgets. They are there because they survived where others couldn't. They are there because they deserve to be there on their merits alone.
The radical sect of Islam would either see you dead or "reverted" to Islam.
Anyone who has tried programming their own OS on a small, automotive application microcontroller (like the Siemens C167) with memory enough to support a ridiculously low number of threads, appreciates the simplicity and predictability of C.
C is far from dead in machine level programming.
Mono is also write once, run anywhere - the .NET platform is designed to be cross platform (even if Microsoft were hesitant to make use of that).
.NET runtime on Windows, and it ran without any problems (obviously you have to make sure you don't use the Mono APIs if you're doing this).
I have written programs in C# on my desktop, compiled them with mcs (the c# compiler with mono), and then e-mailed it to a friend running Microsoft's
To push it to further extremes, that person could then upload the same compiled file to their PDA, and *still* be able to run it, so long as they have the runtime installed.
How much more cross platform do you want?
half that esoterica wasn't even implimented while C++ became popular.
Because functions declared in structures is 90% of what C programmers wanted out of it at the time. Having constructors and destructors was also quite nice. And that is enough to use C++ right there.
You are not supposed to use all the esoterica.
-pyrrho
I can write a web server in bash in one line! AND it installs itself.
apt-get install apache
verily... bash has gazillionized my productivity... it used to take me over six months to write a decent web server.
-pyrrho
"To me C is dead. Except for the JIT!"
So let's get a bit of perspective here. All he's saying is that HE doesn't code in C much anymore.
Portraying his statement as a "Peace in our time" or "End of History" style pronouncement is ludicrous.
Simon Hibbs
I'm a suspicious kind of chap.
.NET and a lot more mature. Why not create Linux apps on the Java language and platform?
Ximian create Evolution and sell a connector for plugging into Exchange. What if MS, in a break from funding SCO to go after Linux users, have funded development of Mono, attempt to get as great a dependence upon the platform as they can so that they can then pull the plug, in a lawsuit sense, wiping out a plethora of applications ported to Mono.
I'm also suspicious because Java has been around for god-knows how long now and I've not seen anywhere near the comotion for using that for Linux apps -- and why not? Sun understand and support the Linux cause more that MS ever will. Gnu even have an open source implementation of the platform. The Java libraries are superior to
Powered by onion juice.
Mono seems to be a very interesting way to go ahead, but what is more important is the fine print. Would Sun / IBM back Mono ? Would Sun want to nurture a competitor to its own framework (J2EE) ? And the interesting part is (as long as you donot worry about the proprietory APIs ) is that any .NET (mind you the one without any managed C++) app will run on Windows and Linux. This will work to Microsoft's advantage too - but the best thing for any developer would be the guarantee that his/her code will be cross platform. It would you the GDI calls on Windows and GTK calls on Linux ! Then you dont have to worry about the slow UI of Java.
Maybe you mean the applications used by sysadmins or business managers --- such applications are usually I/O or database-bound, so it is good to use a high-level language; but not everyone write their codes for such purposes.
Nope.
"Miguel de Icaza is dead" -- C
MOD THE CHILD UP!
My concern is that Python is still a work in progress as a Java replacement. Notable lacking is an array type (list of elements of all the same type making it more efficient than the list-of-objects approach in both memory and speed). How is a person supposed to do graphics by computing rasters without a good array type? I believe Lisp was originally everything-is-a-tree-data-structure, but they must have added proper array types in the Lisp machine days.
But what about Numeric? Well yes, you can use C extensions to define whatever kind of Python container object to serve as a proper array, but that container object becomes this atomistic entity that requires copying all the elements in and out to Python lists to interface with just about everything else. And Numeric is a work-in-progress because it is being replaces with NumArray which is in some state of beta test. And are these things standardized enough that you can say (like in Matlab), here is an array of pixels I have created, plot them as a bitmap image?
It's just Another effort to make Gnome "multiple programming language friendly" than "user friendly". Geez aren't they obsessed.
Time can be better spent elsewhere, for example, using network transparancy of CORBA, adding back features deleted from Gnome 1.4 in the name of "simplicity" (sorry, it is not defined that way), creating a better open file dialog box, and fixing bugs.
I completely agree with this previous story and think Miguel is leading Gnome to a wrong direction. I'll stay with the other favorite desktop.
It is almost ironic, that while both Mono and DotGNU aim to support .NET on Linux and various platforms, Miguel claims that "C is dead" while the folks over at DotGNU have been working on the C compiler portion of pnet. In my opinion, it's much more advantageous to support multiple languages and platforms, as to bring in developer support and a wide userbase, than to narrow yourself to a few platforms (I read about Mono just getting ported to Sparc64, while DotGNU's pnet has ran on it for some time, among many many other platforms. Ranging from the Playstation 2, to the iPaq.) and trying to depreciate (In verbal statements or otherwise) other languages. Sone of the major points of the IL platform in general, are it's ability to run the same binary on multiple platforms and operating environments, and also the ability to compile multiple, and completely different languages to it. It seems like Mono is sort of missing the boat on both of these to a certian extent.
Regards,
Chris Gilbert (Neovanglist)
So when I say that Pixar (or whoever) will switch, I am saying that all new code will be in, say, C# and the existing C/C++/whatever will be replaced at some point.
;) to a higher level language in the future.
My point was that your point that processing ability is rising is irrelevant because processing requirements are rising as well, so "slower" languages won't be able to cope with the needs of major image processing. The libraries developed by Pixar et al will be used to make C++ a higher level language (in much the same way that Java and C# make themselves higher level languages) by making new code use existing libraries. The new code will be higher level than the existing code but use the same language and take advantage of the speed optimizations already made in the libraries. The beauty of C++'s level is that you can get down to the low level if you need to, and you can write high level code the rest of the time. As long as you have libraries, that is.
That is the same reason you will switch from your beloved C++
I welcome the opportunity to switch to a higher level language if it's easier and equally expressive. C++ is just as expressive (if not moreso) than C, and C is just as expressive (if not moreso) than assembler. Java is not as expressive as C++. C# may be, but I don't really think it is. I haven't researched it as much, but it seems to also force you to do things. I'm not saying that a higher level language won't emerge and take over. I'm just saying that the ones that are developing now may replace each other, but they won't replace C++. Java doesn't write better assembly than C++, or it would be smaller and faster. The same goes for C#. They make the language less expressive in order to make it harder to do dangerous things, but until the cost of upgrading is at most zero, I don't see it happening the way people switched from assembly to C.