Mono Poises to Take Over the Linux Desktop 925
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 Dying? (Score:5, Funny)
Re:C is Dying? (Score:3, Funny)
Comment removed (Score:5, Funny)
Miguel is dead! (Score:5, Funny)
Re:Miguel is dead! (Score:5, Funny)
C is a language with the flexibility and speed of assembly combined with the ease of use of assembly.
Re:Miguel is dead! (Score:5, Interesting)
The more I try to hire good C++ programmers, the more I become a c++hating bigot.
When over 95% of "C++ programmers" that I interview can't even answer this: straightforward question about virtual methods [www.gotw.ca], I see no hope for the language. It seems most people who claim to be C++ programmers just say that because they use a C++ compiler and stick their functions in objects.
The future I expect is a mix of a higher-level language (Java, C#, perhaps even Python) and C. I can think of cases where C is the right tool for the job (small memory embedded systems), and I can think of cases where Java/C# is (large scale enterprise software); but I don't see C++ as the right tool for either job.
Re:Miguel is dead! (Score:4, Interesting)
but, really, there aren't that many of those. here's a statement you can argue about:
"usage of c and it's derivatives (c++, objective-c) is more likely create buggy and insecure software. the performance gains from these languages does not make up for this loss of stability"
seriously. direct memory management is a dangerous thing and isn't necessary for 90% of the software written in c-like languages. if you're writing device drivers or an os or whatever, it's important... but does sendmail really need to be written in c?
would it be more secure if it wasn't?
Re:Miguel is dead! (Score:5, Insightful)
Re:Miguel is dead! (Score:5, Insightful)
I'd like to point out that there is absolutely nothing wrong with writing "C with Classes." It makes a whole lot more sense than trying to fake it with structs and function pointers with only a minimal loss of efficiency. Certainly replacing all char pointers with strings would make up for the inefficiency with the huge amount of time saved debugging. Just because operator overloading, templates, references, etc. exist doesn't mean you have to use them. I mean, no one puts a gun to your head and forces you to use Swing in Java just because it is standard.
Second, that question should have been rather simple to answer for anyone who was aware that the std::complex template has a copy constructor with an implicit conversion. Not everyone knows that simply because complex isn't exactly the most widely used thing in the world. If you are going to ask that quesiton, I'd recommend defining a template in the code to make it obvious.
The language features in C++ can be abused, but a huge number of errors I see are from misusing APIs and none of the high level languages like Java are going to make sure you are paying attention to what you are doing.
Re:Miguel is dead! (Score:5, Insightful)
Seriously dude, that is most definitely not a straightforward question. It's carefully designed to test your understanding of some of the subtle tricks and traps of C++. And one of the "tricks" it uses to mislead you has nothing to do with inheritance, rather with implicit casting.
I must admit I got tripped up on it though, mainly because I'd forgotten the distinction between hiding and overriding. The question is nasty, ugly, and was intended to be as confusing and tricky as possible... and any programmer that writes code like that (especially something involving changing the default value of a parameter for an overriden method) ought to be shot.
BTW, if you're asking questions out of GOTW as interview questions, I can only say that that's pretty nasty - except perhaps as a final round question for some of the really cocky smart-arse types :-). Or if you're looking for a seriously hard-core C++ expert, in which case you'd probably expect him/her to have read all of GOTW and Sutter's books and know all the answers off by heart anyway.
There's certainly a depressing number of such people about - though nowadays they're mainly moving into Java, a language better suited to their limitati^Wcapabilities. And I say "Hooray!" to that :).
Pete (who has for the last two months been maintaining/debugging/adding features to a 1998-era MSVC6 project, written by a guy who really had no idea about C++. Sigh.)Re:Miguel is dead! (Score:4, Interesting)
So that's where all those idiot^H^H^H^H^K inexperienced OO java programmers come from! I was wondering.
FYI, a bad OO programmer in C++ is most likely going to be a bad OO programmer in Java as well, except the language will most likely prevent them from taking down the entire machine.
Good OO programming is good OO programming, regardless of the language.
Re:Miguel is dead! (Score:5, Insightful)
I know a dozen other people have probably already said this, but if you think that question measures whether someone is an effective C++ programmer then the problem is with you.
It's a neat trick and the last bit (where default params are resolved based on static type while method calls are resolved based on dynamic type) fooled me. But it has nothing whatever to do with a software engineer's job, unless that job is writing C++ compilers.
Put away your book of trick questions and hire a C++ programmer who understands patterns, algorithms, project management, requirements, and important standards and protocols.
Re:Miguel is dead! (Score:4, Insightful)
That link is a good puzzle but I don't know how well its going to help you find good developers in an interview. I remember I was about a year out of college when I discovered such details of C++. I was like, "WTF? I'mn not overloading that one...why am I here?". About 5 minutes and 1 small program resembling the one in your link I had my answer and moved on.
So was it that one year of experience you would be seeking? Or would it be my problem solving skills that when my code doesn't work I'll find the answer quickly and consistently? When I interview, I try and discover one's problem solving abilities, not one's specific knowledge. It obviously all depends on what role you need filled.
A C/Java world with no C++? Most of the software I've written in the past few years has been C++ with lots of C influence. Lots of functions, few objects. I probably have more structs in cvs than classes. Its really nice to have my function/struct style code and my message/class style code coexist freely.
For example, I have a system I wrote that the backend database is all in shared memory. I played with classes in shmem and I put some templates there, too, with the Allocator. In the end, I chose structs because I was able to exploit their fixed size to make things quite speedy.
But now I have a Phd physicist that needs to do some serious matlab-style maxtrix maninpulation of my struct-based data. And he can 'kind-of' code. It was nice wrapping up access with some matrix classes so it all looked more like matlab to him.
I think there is still value in having all that in one language, even though it can make it an ugly one.
Netcraft confirms: C is DYING (Score:5, Funny)
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
Re:C is Dying? (Score:4, Funny)
Re:C is Dying? (Score:5, Funny)
Re:C is Dying? (Score:5, Insightful)
Why should we bother? (Score:5, Informative)
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.
Re:Why should we bother? (Score:4, Informative)
Just use cabextract. It's bundled with most distros. Pretty common linux tool.
--
Evan
Out of Context (Score:5, Informative)
I take that to mean, "As far as the world of Mono/.Net goes, C is dead."
Re:C "Dying", Scripting Languages, Cross Platform (Score:4, Informative)
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?
Wayne's World (Score:5, Funny)
c is dead... (Score:4, Funny)
Re:c is dead... (Score:5, Interesting)
Indeed. Since most damned operating systems are written in C I don't think we'll exactly see it go away anytime soon.
Operating systems is where C comes from, and vice versa.
(Yeah, whatever, I'm a C geek. To me, and array of pointers to functions returning pointers to arrays of characters seems like a damned fine idea! =)
Back in my day, we jusy wrote straight to the registers on the device and we were glad! Damned punk kids.
.NET (Score:5, Insightful)
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.
Learning and applying. (Score:5, Insightful)
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.
Overnight (Score:5, Insightful)
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.
Re:Overnight (Score:4, Informative)
a nice functional language that runs on
Mono.
Re:Overnight (Score:5, Interesting)
I think this problem would be solved by writing things in Scala [scala.epfl.ch]. Scala compiles to
Re:Overnight (Score:4, Interesting)
Maybe not if your idea of programming is limited to hacking J2EE server-side components and a few flaky GUI apps.
For the rest of us, C#'s better native interface, value classes, operator overloading, fixed generics, and fixed exception handling alone are worth it as a language alone.
Add to that that there is a high-quality open source implementation (Mono) and a complete stack of non-proprietary open-source libraries (Gtk#, etc.), and people have really strong reasons for preferring Mono to Java.
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.
Well, do you think that Microsoft and the OSS community are spending time on
So, if this "duplication of effort" makes you "sad", complain to McNealy and Gosling and Schwartz and all of the other Sun managers: it's their responsibility, it's their greed, and it's their fault that it has come to this.
Exactly (Score:5, Insightful)
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#".
That is where you are mistaken (Score:5, Insightful)
Yes,
Re:That is where you are mistaken (Score:5, Informative)
A very good illustration of this is in the attempt to create a Python.NET implementation by the folks at ActiveState. The report [activestate.com] on the lessons learned is rather enlightening.
Re:That is where you are mistaken (Score:5, Interesting)
fairly obscure, but are a limitation. Examples include:
- String formatting
- Core language features, such as long integers, complex numbers, built-in object methods
and so forth.
- The standard Python library."
Are they joking?
Re:That is where you are mistaken (Score:4, Interesting)
In the end, though, they come out with something about how "language neutral"
There's certainly no way pretty much any Python code I've written (and I've written a lot) would run on
What language is .NET written in ?? (Score:5, Funny)
perl
python
ruby
Re:.NET (Score:4, Insightful)
I disagree. After a few months of working with C#, I have come to the conclusion that it's nothing but a bastardized clone of Java that had every little piece of sugar they could snarf from VB and C++ added to it, whether it made sense or not.
For example, the braindamaged distinction between structs and classes as value and reference types respectively. What if you want to make both value and reference objects of the same class? Or treat the same object as value or reference as needed? The stupidity becomes even more apparent when you find out that the System.Array.Initialize() function will only initialize value arrays, not reference arrays (WTF? Is there ANY reason to even have the [,] array creation operator if you still have to construct the members one by one after creation?). I could go on and on about "features" that were clearly hacked on in five minutes to fit some deadline, with little thought or care.
C# does have some nice things that, say, Java lacks. Operator overloading, automatic boxing and unboxing of primitive types, and properties come to mind. The first two, AFAIK, will be in Java soon, and properties are just syntactic sugar to replace observer methods. Honestly, I'm not impressed, and I don't intend to use C# ever again unless I absolutely have to.
Re:.NET (Score:4, Insightful)
And, unlike
Will.
Re:.NET (Score:5, Funny)
Re:.NET (Score:4, Funny)
Re:.NET (Score:4, Informative)
(A picture of Gosling standing in front of a slide explaining what's wrong with operator overloading [syr.edu]).
I'm definitely looking forward to autoboxing and the new printf-style methods. (Maybe variable-argument methods were what you had in mind?)
Re:.NET (Score:4, Insightful)
Operator overloading, while in some occasions quite handy, must be used with great care. Unfortunatelly, for quite a lot of programmers out there, it seems to be misused as a yet another way to obfuscate a program into oblivion! If you ever get to analyse the code written by a BOOZFH (Bastard Operator Overloading Zealot From Hell), you'll know what I'm talking about.
Re:.NET (Score:4, Insightful)
Value/Reference is a class-based distinction. It has nothing to do with instance, and I can't say I've ever had a real world problem with this. Can you?
Or treat the same object as value or reference as needed?
Real world example?
the System.Array.Initialize() function will only initialize value arrays, not reference arrays
Of course. C++ is no different. Remember how in C++ you have to write "delete [] x" instead of "delete x"? Simply because you have to communicate to the compiler that it must call the destructor on each array member... but the constructor is much more difficult. What if the array element type has no default constructor?
I could go on and on about "features"
And I could equally as well refute your points.
It is ignorant to simply dismiss .NET or C# because it is something you don't know and don't understand. Take the time to learn it... there are valid criticisms, but you haven't found them yet.
Re:.NET (Score:5, Insightful)
Value/Reference is a class-based distinction. It has nothing to do with instance, and I can't say I've ever had a real world problem with this. Can you?
Or treat the same object as value or reference as needed?
Real world example?
Easy. Value types allow you to transparently create copies of data, essentially letting you deal with immutable objects without the added complexity of calling a clone() operation every time you need a new copy to work with. This has nothing to do with class characteristics, and everything to do with the particular code you're using.
the System.Array.Initialize() function will only initialize value arrays, not reference arrays Of course. C++ is no different. Remember how in C++ you have to write "delete [] x" instead of "delete x"? Simply because you have to communicate to the compiler that it must call the destructor on each array member... but the constructor is much more difficult. What if the array element type has no default constructor?
If it has no default constructor, then you make it an error for value types (duh) and a nop on reference types. Alternatively, you could make it an error on both. If there's no default constructor, you don't call Initialize(). Your comparison to C++ loses, because 1) we're not discussing C++, and 2) we're not discussing "telling" the compiler how to do a job, we're discussing how the compiler doesn't do said job no matter how you "tell" it to.
I could go on and on about "features"
And I could equally as well refute your points.
That's great to hear. Start any time you want.
It is ignorant to simply dismiss
I wouldn't go as far as to call you ignorant, but I know for certain it's stupid to dismiss my claim without actually addressing it. If you scroll up and actually read my post and yours, you'll notice that you either didn't read my claims properly, didn't think the matter through properly, or didn't type your reply properly.
Why do I claim this? Well, 1) you don't seem to understand how you can use value and reference types interchangeably in a real world situation, yet you go ahead and talk about it. 2) You try to address my issue with Initialize() by pulling a textbook Chewbacca defense with C++'s delete[] syntax. And 3) you tell me there's "valid criticisms", yet you fail to mention any. All you know is mine don't work, yet you also fail to adequately explain why.
In the end, I have no option but to classify you as a troll until you prove otherwise. I suggest you start doing so by addressing my initial post with clearly thought out answers.
Re:.NET (Score:5, Informative)
Operator overloading could redefine the equal sign to mean something else (such as compare if a equals 2).
Re:.NET (Score:5, Informative)
Re:.NET (Score:5, Interesting)
Re:.NET (Score:5, Informative)
Like most/all of Microsoft's "innovations",
Microsoft inherited what become
At this time C/C++ and VB environments already existed for Colusa's "OmniVM" (which became the
To clarify - I do alot of work with C# and find it to be the least unpleasant Microsoft development environment I have experienced.
Score 5, Troll?
Re:.NET (Score:5, Funny)
"I realize that this is an unpopular opinion here on Slashdot, but C# is actually a pretty cool language and the
Foot-in-Mouth Disease (Score:5, Insightful)
Re:Foot-in-Mouth Disease (Score:5, Insightful)
"A great deal of serious end-user application coding on Linux still goes on in C or C++"
"Where does this place the future of the Linux desktop..."
"The expectation for GNOME 3.0, however, is that a lot of the platform will use Mono, rather than the C implementation it has now"
Probably no one writes kernels in C# and there is less and less reason to write user applications in portable assembly. Programming languages are tools, and we use different tools for different jobs. I prefer to use higher level languages where it is feasible because I'm more productive. I use C where I have to, because it has features that other tools don't.
C is not dead (Score:3, Insightful)
MS and solid? hmm...
WTF?!? (Score:4, Funny)
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.
Um, no. (Score:5, Informative)
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.
Re:Um, no. (Score:5, Insightful)
But that said, I have never developed software more rapidly than in C#.
I really wish that Linux had a stable
I applaud MONO. It's far from ready, but keep going. Keep working. Please - make MONO (or something else) as good as C#,
Re:Um, no. (Score:5, Insightful)
Why don't you use Java?
Once you use Eclipse you'll understand (Score:4, Informative)
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,
Re:Um, no. (Score:5, Funny)
Anything other than MFC would triple your productivity.
Comment removed (Score:4, Insightful)
hey look (Score:4, Funny)
apt-get install apache
verily... bash has gazillionized my productivity... it used to take me over six months to write a decent web server.
Re:Um, no. (Score:5, Informative)
release as you well point out.
But Gtk# 1.0 is part of the Mono 1.0 release, and
unlike Windows.Forms it is very mature and stable.
Love,
Miguel
MonoDevelop IDE (Score:5, Interesting)
Re:MonoDevelop IDE (Score:5, Insightful)
Bah, you probably wanted something written in C#. So much wasted effort.
Linux contracts mono? (Score:5, Funny)
Re:Linux contracts mono? (Score:5, Funny)
C lives (Score:3, Insightful)
Also, .NET is much like Java, and C hasn't died from the adoption of Java.
Exploits (Score:3, Funny)
You can't beat Microsoft.... (Score:5, Insightful)
You can't a better
Anyone remember "a better Windows" than Windows called OS/2?
Re:COMPLETELY different (Score:4, Insightful)
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.
Renovate or Innovate? (Score:3, Interesting)
hey... (Score:3, Funny)
What Linux desktop? (Score:3, Funny)
If I wanted MS .Net, I'd run MS... (Score:5, Insightful)
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!
Platform Independence (Score:5, Informative)
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...
Re:Platform Independence (Score:5, Insightful)
For the same reason they did it with Java - if it's "write once, run anywhere", then why would you buy Windows licenses? Microsoft (quite naturally) wants everyone to run a Windows server and a Windows client, and having Linux be able to take either role with ease doesn't give them the leverage they need to continue their marketshare.
Re:Platform Independence (Score:5, Funny)
Don't bogart that joint, my friend. It sounds like good shit!
Generics (Score:4, Informative)
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
Dealing with MS patents .... (Score:5, Insightful)
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.
Re:Dealing with MS patents .... (Score:5, Informative)
MS has given everyone license to implement every part of C# and
Hint: ECMA.
Parrot/Perl6 (Score:5, Interesting)
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
Re:Parrot/Perl6 (Score:4, Interesting)
Give me a break (Score:4, Interesting)
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?
Important comparisons between .Net and Linux (Score:5, Funny)
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!
Why Mono Will Fail (Score:5, Insightful)
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...
Re:Why Mono Will Fail (Score:5, Informative)
SWT [eclipse.org] is a crossplatform UI toolkit that feels like a native app, unlike Swing. In Linux it's just a wrapper over GTK or Motif.
Re:Why Mono Will Fail (Score:5, Interesting)
Not quite true. Current Sourceforge statistics by language:
1. C++ (12967 projects)
2. C (12955 projects)
3. Java (11446 projects)
4. PHP (8607 projects)
5. Perl (5388 projects)
There is a vocal group of Java haters on Slashdot.
There is a bigger group who is a bit wary because even though the Java Community Project exist and IBM and others are allowed to develop their own implementations, the licence is not GPL and Sun could screw things up if they turn evil or desperate.
Check out your distribution's packages and you'll almost see more JVMs than Java apps.
Yes, because lincence restrictions prevent them from including Suns java. The open source packages are not mature enough to run all apps, so it's pointless to include those apps. The open source implementations of the VM are impressive, but the java standard is developing too quickly for them to keep up porting all libraries. Just like
there's every reason to use Java, especially for applications.
Yes, and I believe a huge reason for the upswing of Linux in businesses is the great combination of Linux and Java.
Do NOT help Microsoft kill off Java with their
This is the time... (Score:4, Insightful)
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
One thing you need to know about DeIcaza.. (Score:5, Interesting)
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.
What a load of rubbish (Score:5, Insightful)
Intel [intel.com] have a C compilers on a bunch of platforms. So does GNU [gnu.org] (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
C is dead (Score:5, Funny)
Enthusiasm (Score:5, Funny)
Latebreaking news flash! A reporter attends a Mono lovefest and discovers that the attendees are having a lovefest!
New Slogan: Catch Mono! (Score:4, Insightful)
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
C not dead, .NET/C# not interesting (Score:4, Insightful)
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
Mono? (Score:4, Funny)
Danger! (Score:5, Insightful)
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.
Re:Danger! (Score:5, Informative)
Game over.
Quoted way out of context! (Score:5, Informative)
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!
Re:C is dead? (Score:5, Insightful)
I think C deserves a little more respect than a blanket comment like this.
We still have assembly languages today for several reasons, even though it's been "dead" since the 80's. Driver writers, compiler writers, and high performance inner-loops of scientific apps NEED snippets of assembly.
Thanks to the design goal of c (as the paint on the metal), you can now program in mixed c/assembly and thus never have to actually write anything in raw assembly files anymore. But you still write with the intention of generating specific sections of assembly.
The people that write c are those that are resource conscious. I am not aware of ANY other language that is allows resource management as well as C. "performance" is just one resource, and I know many argue that JIT's counter-balance the performance advantages of optimized c. I still refuse to belive JIT's have ever approached -O3 performance, but am willing to concede that a well written VM app can perform acceptibly.
ButMemory is another key resource management position that sometimes requires hard computer science to derive workable solutions.. When you abstract how resources are utilized (via a VM), then it negates the value of such hard computer science. Note that this ONLY applies to a particular problem space. Though, a non-trivial problem space to be sure.
The point is thus that the classic paradigm of "the right tool for the job" is essential here. There are MANY problems that are best done with low level, very concise languages like c. Most OS components, VMs, or fast-duty-cycle applications should very well have core work done in c/assembly.
The obvious other end of the stick is managing large amounts of code, for which assembly need not apply, and c is indeed becoming a distant memory as I think you are implying. Yes, web-services and many such fast-to-deploy applications transcend c, but don't be too quick to write-off the value in having a generation of computer scientists that are not well enough versed at writing low level applications.
Gmone needs to distance itself from Mono (Score:5, Interesting)
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. [reference.com] Either way, it's barge pole time.
Re:No language can replace C ... (Score:5, Informative)
The main problem that confuses people (such as the argument that C# was written in C#) are the IDEs (the Integrated Developpement Environment), which is merely a graphical frontend to do your work. So yes, the VS NET 2003 UI was made in C#, but the compiler for C# was written in C and ASM.
I hope this makes sense...it's 2:30AM...lol
Best regards,
Alex Ionescu
Relsoft Technologies