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...
Are they calling themselves Mono because of the all the ass kissing they've already done with Microsoft?
Cmon! It's not a bad single, but we both know it's just a reworking of Violet from Live Through This...
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...
I don't know about anything else, but the Whigs were a political party for christ sakes.
- C.
Icaza is taking major investments from Microsoft?
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!
What I'd like to know is why it's not ready, and why it's not catching up?
.NET, why is it that Microsoft is so often derided as being immobile in software development? Would this not be a hefty chunk of evidence to the contrary, and perhaps point to a blind spot -- or worse, a point of self-contradiction -- in the traditional anti-Microsoft, pro-OSS dogma?
Heck, why is it "catching up" in the first place? Why was the open-source community, so lauded by its advocates for being forward-thinking and quick-paced, not the first entity to pounce on creating something like this?
If Mono is trailing so badly behind
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.
This should boost Miguel's star ranking on Orkut -- at the moment he's only #5 with 193 fans, one place behind Wesley Clark with 194 fans.
Go Miguel!
(and hopefully past that whorkut Leonie with 208)
I'm not sure I dig the idea that the future of app development comes down to a choice between MS and Sun.
Mono = Mono poly = .NET
Mono + .NET = ?
I'm not sure he's ever claimed that the desktop is equivalent to the operating system.
It seems to me that he simply talking about the section of software that he works on and interests him most, the desktop.
While I don't follow it closely I haven't noticed any posts from Miguel on LKML advocating they switch to C#.
Boffoonery - downloadable Comedy Benefit for Bletchley Park
Well if C is dead why didn't he fricken program Gnome in a real OOP language like C++? What a moron.
You can't a better .NET than .NET
For Windows, I'm sure that's true.
But what about an utter Linux equivalent? Why should the open-source community be incapable of creating something like that? Financial limitations? Lack of drive? Lack of dedication? Uncoordinated, decentralized efforts? Simple tardiness in recognizing the demand for something like this and scrambling to catch up to Microsoft (who, strangely, is often maligned as being paralyzed in its developmental efforts and yet always seems to be leading the way)?
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
Lies, you are full of feces and lies. Pascal is the most beautiful language in the world. I can make wonderful programs in turbo pascal using 640k of memory and overlay files. so there you terd
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
With new versions coming out regularly, any clone will never be caught up to the status of the original project.
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
Yes, this is about right. Didn't Java come out around 1994? Bytecodes, the end of 'C', the "platform", the virtual machine. Deja vu all over again.
Maybe the continuing pressure from MS and the total refusal of the government to enforce it's laws will force Sun to start seriously considering freeing Java to the point that it can be distributed with Linux distros.
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
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."
I still don't want to accept it... but sometimes Icaza say somethings that make me feel he is not thinking about code, programming or open source... but money... money comming from M$ :(
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
lookitup
I just bough Delphi 8 with .NET, you insensitive clod!
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.
What's weirder is I just got done watching the movie Patton on some cable channel or another.
(queue twilight zone music here)
SB
It's old. The more humans I meet, the more I like my cats. At least they are honest.
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..."
People aren't trying to build a better .NET; we're trying to build a .NET. Is there a .NET for linux?
Are you implying we shouldn't use .NET on linux merely because .NET exists in windows? I think that's not a very good argument...
... of course RAM is cheap right? So buy two Gigs and reboot often.
I hope you're not trolling. Because really, you're sounding like a gnome-bashing troll to me.
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
...in this case.
FORTRAN is mad sweet, yo
The "Insert Quote Here" line is almost as predictable as inserting an actual quote.
Maybe in couple of years they will get Mono to the point where it's useful, if MS does not claim that they violate their IP (a la SCO).
For now, if one wants a high paying job and interesting projects, it's Java all the way.
I have a theory here, and I'd like to see how it stands the test of time:
If you are trying to communicate with someone, and you arent using an open standard, you really shouldnt be communicating with anyone.
-- 'The' Lord and Master Bitman On High, Master Of All
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.
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!
I do like addressing the duplication, but we'll have to see how much traction it gets. Will Microsoft add it to Visual Studio? Will Struts be ported to it?
.net and Java, they go separate ways in capabilities regarding runtime reflection over generic types (still not sure which is better, I like the capabilities .Net is offering but appreciate the goal of backwards compatibility with Java) and I don't see how this language can handle things like that gracefully without dumbing down the language and loosing some really powerful features from either language.
I do fear it being weakened by the differences between languages. When Generics goes in to both
"There is more worth loving than we have strength to love." - Brian Jay Stanley
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
Why do you think they did that, I wonder?
Mike Hoye
If you dont like what this guy is saying, ignore it, or reply to it. Don't mod the goddamn thing a troll, fuckwit.
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
Maybe the monkeys in yellow bubbles are carriers.
Java is slow and laborious to code with. You want fast application development, you use something like [Perl|Ruby|Python] with a cross-platform toolkit like wxwindows. And download wxglade while you're at it. .NET) instead of a toolkit designed for actually getting shit done.
I guarantee you'll speed up development time by threefold or more. And the app will actually be responsive (unlike lots of java apps).
And just wait a few years for parrot. Then there'll be no reason at all to use a commercially-imposed toolkit (Sun's Java, or MS's
What does Mono stand for? I heard it stands for 'Microsoft, Oh No'
Cheers,
RoadkillBunny
Mod parent up, that was great!
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.
These people want to make Unix into a bad version of Windows.
I use shell commands for file management. I don't trust binary and opaque protocols.
Gnome is crap. Windows is crap. CORBA is crap. COM+ is crap.
Lusers who won't learn suck. People who cater to lusers who won't learn suck. People who think being popular is better than being good suck. People who copy inferior paradigms because they are more popular suck ass.
Icons aren't any easier than shell commands. Lusers can't figure out shell commands. Lusers can't figure out the fucking icons and folders either and you know it. You might as well get rid of that crap and quit pretending. It's much easier to tell the lusers what to type instead of which illiterate little cute little fucking pictures to click on ("Do I use the right mouse button again? Or the left?" BLAM! BLAM! BLAM! "DIE, LUSER!")
Miguel, Gnome fans, KDE fans, Microsoft and their entire horde of lusers and sycophants all suck. They are a bunch of top-posting, HTML-mailing, file-losing, mouse-clicking, virus-spreading, Bonzai-buddy-downloading, binary-document-and-protocol using, drooling, XML-abusing, idiots who would rather drown their own grandmothers than admit that their giant, unstable, digital house of cards isn't good for much else than Solitaire, Excel, and job-security. Oh yeah, and as a very expensive and unstable platform on which to run a terminal emulator so they can use a REAL FUCKING COMPUTER!!!
Pardon me, but i wonder this:
The C++ compiler its writted in basic ?
The C# compiler its writted in assembler ?
The java compiler its writted in java ?
isn't C the basis for all the compilers code ?
Unix its simple, but sometimes it takes a geniuos to understand the simplicity -- Dennis Ritchie
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
...our own similar run-time framework? I mean, why isn't Java being embraced? Is there something inferior about Java? Is Mono the future, or should we instead be concentrating on creating something entirely innovated by the OSS community for use in GNU/Linux?
.NET that Microsoft puts out.
I'm not sure I like the idea of just blatantly copying Microsoft. As you correctly point out, it'll never truly be the
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.
I think that c is going to be phased out more and more..
we're just waiting for the next big language to come accross and have the same effects that c had.
Java was supposed to be that language, but somewhere along the line, sun screwed up-- basically i believe with having portability..
but anyways.. C sharp might become that language we have been waiting for.
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?
-
moderators, do yourself a favor and check this asswipe's posting history. he's not the real Miguel, he's just a jackass imposter.
No language can replace C until it can compile its own compiler written in itself.
now we need to go OSS in diesel cars
I have the chance to meet him and he thinks that he is the master of the universe and everybody must know that.
.net as long as he wish, meanwhile, i will continue programming in C
In other words, he is a real jerk
If he says C its dead, i dont care, he can try to copy
I was under the impression there already was a trademarked piece of software called Eclipse
better Unix than Unix, ala NT (Next Technology)
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
... when Intel make the 15 THz Pentium 10.
Engineering is the art of compromise.
Maybe C is not just dead yet ... or Miguel will not be hawking Gtk#,Gnome#... all wrappers of stuff over good old C code ... he'll be rewriting Windows.Forms in C# ... like some other fools are doing
Wake up ! ... he's just trying to sell the Mono idea to the Gnome community
The "Love" part. It combines a "knowitallness" with a dash of "aren't you a dumbass." Very Nice...
Actually, Mono includes a VB .NET compiler, so you might be right.
Former Iraqi Information Minister Mohammed Saeed al-Sahaf
The door swings both ways. If Mono becomes a Linux success and the future of Gnome &| KDE then the Mono team will have essentially handed Linux developers over to the Microsoft platform...
Also here's a good article on SWT and GCJ.
I mean this in reference to all the articles saying C is dead lately... not JUST this one. look... I am very tired of people overgeneralizing stuff like this. C is dead... define dead in the context of programming languages. Last I checked C was never ALIVE. People decide they don't like something these days and they decide it must not usefull to other people either. In my eyes the strength of open source is that it offers a broad range of choices. If Mono...or Bill Gates... or ANYBODY decides something is dead, does that mean I am not allowed to use it anymore? Bah, I am sick of this. I still enjoy getting out my old Nintendo Entertainment System and playing a few old games. This is completely contrary to the people who told me it was DEAD when SNES was released. I may not use that nintendo as often as before... but I still find it usefull. If something is of less use than when it was new... should we declare it dead? of course not. I will feel very free to write software in any language I wish. I will feel very free to write software in a language that is not well suited to the task... if that fires my rocket. Many of us are having trouble finding programming jobs... but work on open source for various reasons. My reason is plain old FUN. Maybe tomorrow I will decide it would be FUN to write a game in cobol. but COBOL is DEAD you say... well sue me. sorry. I am bored tonight and getting rather worked up over stuff that shouldn't bother me. I am gonna go to bed and try to have happy dreams... dreams where I don't feel like I am surrounded by idiots.
Obama is a twitter sock puppet
because your new c! language seems interesting :)
how do you pronounce the '!'?
aehm ... will GNOME3 be GNOME.NET? When will all GNOME/GTK users asked "upgrade" to M$ Windows? ... this sucks! rm -rf mono
.NET is a framework or idea. It is not the same thing as C#. C# is a language, like C, C++, Tcl or whatever. .NET is about portability of meta-data, XML web-services, and whatever other buzz-words MS feels like using today. In any case, .NET is not C#. You can write COBOL and still utiilze .NET. (Funny thing is they advertise that...COBOL.NET that's just funny)
^ Pretty common post from 10 years ago.
Well right now I mostly use python, but what I would like to do is use multiple languages at once. I would use a functional language, probably haskell since that's what I know, whenever possible. I would use C when I need tight performance, and use python as an imperative wrapper around the haskell code.
Who says you can only use one language at a time?
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.
Return codes are better than exceptions.
Exceptions are worse than gotos... at least you know when and where the goto is going to go...
Exceptions break normal program flow.
They are an unstoppable evil force and anyone that thinks otherwise is simply misinformed.
Also handling API's which normally generate "exceptions" (seem more like the rule than the exception...) makes every piece of code that uses the API look like a nested mess of spaghetti (hmmm... sort of like any given C# program...)
For serious CPU confusion hitting a low level exception handler makes sense... null pointer deref, divide by zero, invalid instruction...
But exceptions are an evil bane of modern languages and I can only hope they are a temporary fad.
He wrote he used it a few months. In fact so did I and I came to exactly the same conclusion. He is not flaming but gave some very valid comments on C#.
Please, you learn both Java and C# and you MUST come to the same conclusion: C# is nothing more than a bastardized Java with some "instant short term gratification" features thrown in, at the cost of a loss in consistency and qualtity on the whole.
It has been replaced by Objective-C. Mono my ass.
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
Has anyone noticed that C# is really just VB with curly brackets?
Because Interfaces should not be patentable.
Patent implementations all you want.. the interface independent parts and those details not specifically arising from an interface.
There's code and then there's housekeeping. As is.. and we still have a chance to affect the discussion in Europe, you get a patent for square corners in the design of the house.. instead of for what you made the walls from.
So rather than whining about software patents, lets whine about interfaces being patentable instead of being available for fair use in order to enable commerce and competition.
That's why his project is among the world's most important software projects and why what he's doing is going to be a bigger test for freedom than anything to date. Its an RMS **2 thing.
Support it.
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'
Yeah but VB.NET has nothing to do with VB.
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
--
Setup detected that you are running:Solaris
It is recommended that you download:
Windows Media Player 6.3
Total Size:--
I'm not sure I want to download a file so large they need a special font to show me its size in bytes.
So is this an indication of how much thought they are putting out to get developers to switch to MicroSoft Windows?
If opportunity came disguised as temptation, one knock would be enough.
3^2 * 67^1 * 977^1
-dead.
GAAH! MY PRINTER IS ON FIRE!!! PUT IT OUT! PUT IT OUT!
Uhm, _what_ desktop? ;)
...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!
I think Miguel is pretty sharp - with a comment like that, he'll get people talking, if nothing else.
/usr/share/dotnet/gtk-sharp-examples/button.exe
9 048 1820 mono /usr/share/dotnet/gtk-sharp-examples/button.exe
4 1388 11456 mono /usr/share/dotnet/gtk-sharp-examples/scribble.exe
One of the things that strikes me about all this is how, in 2004, some the advantages of Mono are basically what scripting languages have had for ages, and it still isn't there %100.
For instance, "Using Mono vastly reduces the amount of boilerplate code that must be written, along with the opportunity for bugs to creep in.". Well.. I can write even less code in Tcl/Tk (same goes for Python, I'm sure).
Another thing scripting languages have going for them are that they are cross platform. Write once, run anywhere, no bullshit! I recently developed a small application in Tcl/Tk for a client on my PPC Linux machine (I don't run windows at all), did a bit of testing on another friend's windows box, just to be sure, then handed it off to the client. It "just works"!
And yet, with this, we are being told that there are two API's to keep track of. One that might be relatively free of IP problems, and another with Microsoft breathing down its neck. This doesn't bode well for a platform I can write to and then run on different machines.
Of course, C# and Mono are not just a scripting language. They do some neat stuff like JIT compilation, so the code is fast, and can be used for more computationally intensive areas where a scripting language would traditionally be bound to a compiled language via an extesion.
Fast, but it still seems to gobble memory (even if a lot of it is shared):
41336 11872 mono
Which is significantly more than the equivalent Tcl/Tk apps would eat (but around the same, or less than Java?). Seems to do an ok job of sharing memory.
Conclusion: yes, Mono does some things well, and it's certainly got some interesting work that's been put into it, but some of it is ground that others have tread, and done well.
http://www.welton.it/davidw/
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
Nice subject line, but that's as close as I can get right now. Project managers always see the world from their invested perspective. In a way it is their job to do that, but project managers should not judge outside of their project domain. And they always do. The more "important" their managerial role, the harder they judge, and the more they generalize.
I think this is a little complicated for you slashdot folks. Those who have ears to hear will hear...
here are four or five young fools!
nothing they do is honest or true
they've scarcely scanned ten volumes
yet their brushes are always ready with a caustic comment
they take up the "rules for confucian behavior"
and pronounce it no better than a code for thieves
a species of pest like the silverfish
that chews through the binding of other men's books
The developers of C# unfortunatly had the luxury of looking at Java and taking what they wanted, along with doing some other things differently. Java isn't open source, and MS had the sense to open source / standardize the basic bits of C#.
.Net did have the luxury of looking over Java and enhancing it - which they did to some extent (more in some areas, less in others). But of course they are also Microsoft, and so went there own way on some things to their detriment - and they simply didn't have time to copy everything, especially not all upcoming parts of the JCP. One thing I can't believe is that they didn't put in Generics from the start - I guess they were waiting to see of the JSR went on that one before committing the .Net implementation!
You'd think people would have learned by now about the Java Community Process, a far more useful standards body (composed of companies and individuals) than a puppet ISO committee.
Java is a standard in all the ways that matter.
The developers of
"There is more worth loving than we have strength to love." - Brian Jay Stanley
This is the sort of platform-independence that OSS developers take to. (The Windows license restrictions are probably not only unimportant, but may give QT a sort of psychological edge with the OSS crowd.)
Java in general attracts people who want $$$ from square one.
"I doubt Microsoft will be releasing .Net for Linux. I'm more worried people adopt Mono/.NET and Microsoft then decides Mono is violating it's Patents(which it probably is). "
They might if all their other methods fail to garner the results they desire. MS above all else is devious.
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."
"The Mono project is my favorite of all OSS projects because it will make developing for Linux and Windows just as easy as for Windows, which will make Linux a better competetor to MS, which will make everyone better off."
Setting aside evrything else for a second. Why on God's green earth would Microsoft want to play a part in creating a competetor against itself? Especially Linux of all platforms?
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
So, if I wanted to create a 3D graphics application using the .NET framework, what technology choices should I make if I want it to run on both Linux and Windows? (and perhaps Apple...)
OpenGL seems obvious, but could Direct3D appear in Mono?
How about GUI toolkit? How is System.Windows.Forms looking in Mono?
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.
NT was going to kill off unix.
Did Netcraft get an infusion of money from Microsoft recently?
http://tinyurl.com/3t236
I still primarily use XEmacs for writing Java (or just about anything else). You can use packages like JDE to do completion for you, just as in other IDEs.
Personally I despise completion though, as I find it slows you down a lot and really weakens your innate knowledge of what classes and methods are available to you - I actually find the combination of knowing the libraries very well and referring to JavaDoc sometimes far faster than all the little pauses after I hit "." waiting for the system to feed me the method I can use.
When I compile if I get those 100 errors it's pretty easy to know where the problem is usually - and Emacs has nice support to just jump to the line of any error in the output.
However, what I have started doing sometimes is writing a lot of code in XEmacs, and then wandering over to Eclipse and refreshing the project - the Eclipse auto-correct is pretty nice, and I do like how it organizes imports. So I batch-correct a lot of errors and then head back into XEmacs for editing (which is still faster than Eclipse for day-to-day writing I find). By using a combination of XEmacs which lets me write code very quickly, and Eclipse which lets me do some powerful refactoring also easily, I have a very good combo.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
There really should be a word or well-understood phrase for someone who repeats a joke because they don't realise the comment they're replying to was making the same joke first time around.
Xenu loves you!
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
Don't get all hot and bothered, people. I don't for a minute think Miguel is trying to say that C is dead for all purposes. He is saying that for application development, it isn't the right (i.e. time-efficient) choice, and he is right. C++ is certainly a step forward, and Java and C# are another big step. I don't like Microsoft but I have to admit that C# and a lot of the related technology are good ideas.
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.
deos c=c==?
coem on folks soem intellignece please
Don't Tread on OpenSource
No need for Netraft to onfirm this.
In soviet russia C says Miguel is dead.
Emacs is good operating system, but it has one flaw: Its text editor could be better.
C is a standard, like English or SMTP. It's not going away, not anytime soon. Anyone that thinks so is a fool. Both English and SMTP satisfy a pressing need: In the case of English, the need to communicate between two people. In the case of SMTP, the need to send email from one place to another. In the case of C, to write assembler code efficiently.
If you could look at a graph with the vertical or y axis being "amount of code generated per unit time" and the x axis being "efficiency of code", and plotted all languages that compile into assembler code, you would find C would stand out in the upper right hand corner as supreme. It allows the programmer to generate vast amounts of highly optimized and efficient code with minimal time.
C++ may fail. It has forgotten its roots and tried to abstract too much, leaving the details between the assembler code and the C++ code up to the compiler. Currently, *NO* C++ compiler has gotten everything right.
C, however, is a perfect fit, and the compilers are simple enough that most of the attention is spent on optimizing the resulting assembler code.
Is C harder than perl, python, C#, and Java? Of course it is. But do perl, python, C#, or Java compile to assembler instructions? No. Comparing C to them is like comparing a forklift with a VW Bug. Sure, it may be easier to drive a Bug, but you can't load trucks with it!
The radical sect of Islam would either see you dead or "reverted" to Islam.
In Soviet Russia C makes YOU obselete
;-)
Had to be said..
-- These views are my own and do not represent those of my employer in any way.
Overrated when it was scored at 1 to start with?
Seriously, we need to do away with the lack of accountability of the "overrated" mod. The parent, an insightful and on-topic post, was modded overrated by some C-bigot moderator on crack. Too bad you can't get those on metamod...
Disclaimer: IANAL. This post is, however, legal advice, and creates an attorney-client relationship.
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.
Mexico is not a race, it's a country. If word play about other people's countries would be racist pretty much all Europeans would be racist. It's like being from New Englang and making joked about Texans.
Interesting point of view! That C is a tool for generating assembly code rather than a a tool only for building applications.
Keeping that in mind when thinking of Cs shortcomings (compared to perl, python, C# or Java) forgives a lot.
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
With the method overloading, you have the class which the method belongs to, so it is fairly easy to check what it does.
The same is true for operator overloading. "x + y" means nothing other than "x.__plus__(y)".
I gave them very explanatory names, but even with something more cryptic, non static like
x.print(d);
I know that the behaviour of print MUST be defined in the class x and nowhere else.
"x" isn't a class, it's a variable that holds an instance of a class. You need to know both the class of the instance of x and the type of the argument d to determine which piece of code will get invoked. The same would be true if you used operator syntax like, say, "x << d".
On the other hand, with operator overloading, whenever you join a new project you must keep in mind that it is possible that an operator has been overloaded to do something surprising.
That is always the case with overloading or method dispatch; "x.print()" may reboot your computer instead of the expected operation.
Other classes can have print methods, such as
System.out.print("Hello");
but I always see the classname first, so there is no risk of confusion between the methods.
You are only seeing a class name first because "out" happens to be a static variable in class System. In fact, "System.out.print" doesn't even invoke a method on an instance of class System, it invokes a method defined in the class of the instance that the variable System.out happens to hold. You can't even tell at compile time what class that instance belongs to (but it's a sure bet that it isn't an instance of class "System").
but don't love them. Do not love a proprietary language. That's my feeling anyway.
And if you trust Microsoft, you'll never see the knife before it's in.
-pyrrho
Mono will have the usefulness and stigma
of WINE.
Are we talking about the same WINE used in Disney to run Photoshop? Yeah, pretty useless, that crap.
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
nobody thinks about KDE?
In europe KDE has way bigger marketshare compared to Gnome.
I use it too, and to take over Linux Desktop, Gnome has to pass KDE first.
'Take over linux desktop' - This all sounds a bit arrogant.
I believe that is actually converting primatives into objects... boxing them in an object... for wierd languages where everything is an object, except the things that aren't. Also known as languages where operator overloading is stupid and useless... except for string. Also known as a language where the containers take only objects.
I wouldn't be surpised if this, like polymorphism, has an array of official definitions.
-pyrrho
When reading the headline I instantly felt myself going into a defensive mode. I have to say I'd be much happier to have .NET around if it wasn't a bespoke implementation. If we do want Linux to be ubiquitous; then we must be able to provide companies what they want. This is the choice thing that M$ don't provide!
If .NET *is* used, I'd much rather it ran on a stable and mature *real* OS, rather than the - IMHO - inferior Windows platform.
We should change the world by embracing it; not opposing and trying to change it capriciously, and provide the *right* solution to all those who use the systems we produce!
>>x.print(d);
>>I know that the behaviour of print MUST be defined in the class x and nowhere else.
>"x" isn't a class, it's a variable that holds an instance of a class.
Yes, sloppy typing, I meant "in the class of x".
That is always the case with overloading or method dispatch; "x.print()" may reboot your computer instead of the expected operation.
Yes, I know. I believed it was easier to check these things in Java though, and that it was better at preventing abuse, but it seems the difference was not as great as I thought.
In fact, "System.out.print" doesn't even invoke a method on an instance of class System, it invokes a method defined in the class of the instance that the variable System.out happens to hold.
First I thought, "What the hell is he saying. Of course it goes to an instance of the class system. What does he think all those 'final' and 'static' keywords stand for?" Then I decided to test it. I was amazed that this worked, and without even a warning!
String Integer = new String("Hello");
System.out.print(Integer);
Hmm, you learn something new every day...
Being bitter is drinking poison and hoping someone else will die
It is conceivable that Microsoft would enforce licensing terms on the implementation of the APIs that it hasn't submitted to ECMA. In the worst case, says de Icaza, distributors of those APIs would need to pay fees to Microsoft.
If you believe that Microsoft will sit around and blithely let you "copy their ip" then you have another think coming. Take a look at how how much MS spends on anti-Linux FUD alone and I think you're going to be one dumb monkey sometime in the future at Microsoft's choosing, and then the rest of us will laugh at you for having been such an arrogant toss over how "C is dead". We'll be able to say, "Yeah, but MIguel's ass belongs to Microsoft"
Microsoft will do anything to sink Linux if it can and you making statements over having to pay licencing money to microsoft as if it were no problem whatsoever if hugely arrogant and makes me wonder if you're actually that dumb.
They have to. All MS wants is to sell more Windows licences, or better: Sell at least as much as in the past few years.
You can be pretty sure that MS will change any .net specifications if it feels like it. Or better, they could find some patents in their basement. What interest should they exactly have in .net compatibility on Linux? Linux playing catch up with Windows is stoopid.
"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
This is such a pile of bull. I can't see anyone with any intelligence thinking that it is a good idea to tie the linux desktop to a MS patented technology. Besides which KDE which is miles ahead of gnome in useability/quality/kick assness appears to have no intention of ever being tie to mono.
Hettar.
-BSD.
you've got your billybuks, now keep your distance.
<obligatory with-apologies="yes">
Bounder: Anyway, you're interested in one of our adventure holidays?
Tourist: Yes I saw your advert in the bolour supplement
Bounder: The what?
Tourist: The bolour supplement
Bounder: The colour supplement?
Tourist: Yes. I'm sorry, I can't say the letter 'B'
Bounder: C?
Tourist: Yes that's right. It's all due to a trauma I suffered when I was a sboolboy. I was attacked by a bat
Bounder: A cat?
Tourist: No, a bat
Bounder: Can you say the letter 'K'?
Tourist: Oh yes, Khaki, king, kettle, Kuwait, Keble Bollege Oxford
Bounder: Why don't you say the letter 'K' instead of the letter 'C'?
Tourist: What, you mean...spell bolour with a K?
Bounder: Yes
Tourist: Kolour. Oh that's very good, I never thought of that! What a silly bunt
</obligatory>
Binary geeks can count to 1,023 on their fingers
You mean Texicans.
First I thought, "What the hell is he saying. Of course it goes to an instance of the class system. What does he think all those 'final' and 'static' keywords stand for?" Then I decided to test it. I was amazed that this worked, and without even a warning!
String Integer = new String("Hello");
System.out.print(Integer);
Sorry, but you still don't understand. "out" is just a final static variable that happens to be in the class "System". "System.out" actually holds values of type "java.io.PrintStream". You can even change the code that gets invoked when you call "System.out.print" by using "System.setOut". I doubt java.lang.System ever gets instantiated (its existence just attests to another design stupidity in Java).
Flat out. It's a wrong move to trust them. Evil or not, predator or not, MS is known to use it's influence over technology and technology companies to destroy competition.
In this case, you're making a decision where it's openly known by all parties that MS can stop all of your work at any time of their choosing - ANY TIME!
The fact that they've made a non-binding promise to leave you alone has nothing to do with how they will act in the future. Microsoft lies. Microsoft cheats. And Microsoft will - guaranteed - use their legal rights to destroy gnome if it ever proves a threat.
Keep in mind that the people who are making you promises today may not even be there when MS shuts gnome down. Using this technology is death for the Gnome project, at some unspecified point in the future - either through technical failure, nonadoption, or simple legal cancellation by MS.
I'm a 100% gnome user. But now I have to start cross-training myself, because the day is not far off that I will switch, just to avoid being locked in by this terrible, terrible decision...
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."
.NET seems to scale well to that sort of level. The problem is that it's only available on Windows and therefore not available on really big machines and clusters. That can certainly be a decisive factor. But on machines of a given size, it compares well to Java and adequately to C++.
.NET for really big machines. That'd be great. Until then, .NET tends to be limited to what you can do on Windows.
Well, I am in that industry, and
Now, when/if Mono matures, maybe there _will_ be a
Whence? Hence. Whither? Thither.
Linux should a little more careful about who he kisses.
I believe I DO understand. :-)
I was with all the way until this:
I doubt java.lang.System ever gets instantiated (its existence just attests to another design stupidity in Java).
The Javadoc claims the class never gets instantiated. But why is the existance of that class so poor design? I thought it was fairly conventient.
Being bitter is drinking poison and hoping someone else will die
That statement shows VERY little insight into the computer/electronics industry. With embedded systems becoming such a big deal, C is FAR from dead. I'd ask Miguel to stop by my office and see just how much C (and ASSEMBLY) is really being used. Yes, there's alot of C++, too, but C is currently the tool of choice at the office.
"The best laid plans of mice and men gang oft agley..." - ROBERT BURNS
Used to be simple. KDE was based on evil closed source libraries, and Gnome wasn't. KDE now is GPL'd, but to Gnome folks that's just as bad as companies can't sell commercial products without paying.
.Net in any flavor on my boxes. Some part of me suspects Miguel drank from the same poisonous well as MS.
Just uncomfortable with the direction Gnome is going. I for one don't want
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.
Yes that is right... microsoft .NET has no built in API for accessing COM ports. Dead my ass. I can't use .NET because there arent even third party multi-platform .NET COM APIs.
longlive.c right?
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.
>>> "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#". the same thing was done with "Hot Dog Scheme"... I believe the guy working on that also stopped because things started looking too much like C#. Probably with a bunch more Parens than brackets, though.. :)
-Delaware Boy in 2004
I beleive DotGNU project is better. While Mono is faster on i386, here and now, Portable.Net is really portable to anywhere, does not rely on non-standard things, have working System.Windows.Forms and so on and so on. And is GNU project. Surprised why ou never headr of it? Because mono is actively PRed by articles like this.
But that said, I have never developed software more rapidly than in C#. .NET has trippled my productivity (on the Windows platform) and my approval rating at work has skyrocketed as I have rolled out several solutions on .NET that are stable, solid, and effective.
This often happens when you rewrite a system 4 times. M$C, C++, COM, C#.Net, did I forget any?
an ill wind that blows no good
From the Department of Redundancy Department on this subject.
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.
My favorite quote from the article:
Mono compilation happens so fast it could almost be done in real time.
Most writers regard truth as their most valuable possession, and therefore are most economical in its use - Mark Twain
has not been stated.
Mono is Microsoft's long term survival hedge.
They re-do all of Office in C#.
They get the OS community to prepare the platform for them.
They recompile everything with Mono, and start selling it in all markets which have dropped them for Linux.
In other words, if Windows dies, Microsoft can live on.
Not that Netcraft is scheduled to predict the death of Windows anytime soon, but MS didn't achieve 800 lb. gorilla status by not thinking deep thoughts.
The only people who will be offended by this are those who object to MS on theological grounds.
Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
In another research program I wrote, pointers-to-arrays are used so much that anyone who can understand that (no, the program isn't hard-to-read) can teach that part of C, which is IMHO the most difficult part in my C class.
Nope.
"Miguel de Icaza is dead" -- C
MOD THE CHILD UP!
This depends on the application. If you don't think exceptions have merit, you haven't learned to use them properly. Using exceptions where return codes make for simpler code is wrong. Using return codes where exceptions make for simpler code is just as wrong. If you blaim exceptions for spaghetti code, you are putting the blame at the wrong place. The problem isn't exceptions, it's people that haven't understood how and when to use them.
It's a breath of fresh air to move from C++ to Java, and to realize that by simplifying C++'s hairball of inheritance rules, Java made it easy for a programmer to predict what method will get called. Java has it's own insider tricks, but most of them move the learning curve up into the class libraries and frameworks and out of the semantics of the language. Progress!
In other news, the hourly rate for experienced C programmers just doubled. FWIW, out on the bleeding edge of technology, everything older then a year is dead or dying. But back in the real world, in the other side of the chasm, we're still coding in Cobol, C and Fortran, maintaining the odd snippets of Assembly code and wondering what this odd, two button thing is attached to our terminals.
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?
in my life God comes first.... but Linux is pretty high after that
Francis Smit
Microsoft finally succeeded!
.NET is a complete joke! Java was a disaster and they want to make a Java++??
the
but they succeeded: they fooled the GNU community as well.
C# with Mono (with the idea stolen from Microsoft) instead of the good old languages like C, LISP, PERL or Python?
why?
what has C# to offer?
Miguel has done a lot of good work for Gnome, but I don't understand his preoccupation with tying Gnome so closly to Mono. Doesn't C#/Mono run much slower than C/C++ because of the runtime baggage, garbage-collection etc? Why would I want my DE (gnome) to run any slower than it already does? Also the extra memory needed will further reduce the number of machines such a bloated DE would run well on. If Gnome 3.0 has a significant Mono footprint, then it is back to KDE for me.
The installed base of C/C++ application is so huge, it will never die. KDE is written almost entirely in C++. The whole GNU suite. XFree86. Apache, Samba, every major MTA that I know of. Rewriting all these software in a type/memory safe language is an impossible task for the OSS community to achieve in the near- or mid-term. Unfortunately, we will have to continue to live with the deficiency of C for a long time to come : buffer/stack overflow, memory leak, segmentation fault and cie.
Right now, I would bet that 90% (yes, this statistic is coming out of my ass) of bugs and security advisory for software I use are directly related to the deficiency of C and C++. I, for one, will cheer the day that C/C++ will stop being used for daemon and user application (operating system is another story) as this will cut down seriously the number of update I will have to apply. Good riddance !
:wq
Choice, Choise, choiCe, what's the difference? Java's still a better option.
"I think this problem would be solved by writing things in Scala. Scala compiles to .Net or Java runtime and is a far more advanced language than C# or Java."
:)
"far more advanced" and still fits on limited virtual machines. Even David Copperfield can't do better than that
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.
"The Mono project is my favorite of all OSS projects because it will make developing for Linux and Windows just as easy as for Windows, which will make Linux a better competetor to MS, which will make everyone better off."
This isn't like your favorite pet, is it ?
Get real !
Do you code using Gtk# BTW ?
"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."
If Mono is high quality I wonder what kind of quality the Dotnet Framework by Microsoft would be.
The Mono FAQ addresses this question and refers to an e-mail from Jim Miller of Microsoft. The e-mail says:
Beppe,
As one of the inventors on that patent as well as the person heading up
the standardization efforts for the CLI, I'd like to explain why I've
never felt the two are in conflict.
The ECMA process requires that all patents held by member companies that
are essential for implementing its standards are available under
"reasonable and non-discriminatory (RAND) terms" for the purpose of
implementing those Standards. This is the normal condition used in all
International Standards organizations, including both ECMA and ISO.
But Microsoft (and our co-sponsors, Intel and Hewlett-Packard) went
further and have agreed that our patents essential to implementing C#
and CLI will be available on a "royalty-free and otherwise RAND" basis
for this purpose.
Furthermore, our release of the Rotor source code base with a specific
license on its use gives wide use to our patents for a particular
(non-commercial) purpose, and as we explicitly state we are open to
additional licenses for other purposes.
--Jim
Your signal processing can't be that complicated if you're more worried about it's speed than getting it clear and right, which is 8000x times easier in a high-level language (or even MATLAB), because you can write the algorithm like it looks on paper.
in my life God comes first.... but Linux is pretty high after that
Francis Smit
No one will read it, but MainSoft has a product now that will assist .NET conversion to J2EE. Their Visual MainWin will compile VB.NET and C# for J2EE. I'm sure MS will be pissed at that one. I just hope they don't get killed by MS.
First there was mono, then stereo, then quadrophonic, back to stereo, then Dolby Digital. Now we're back to Mono? Ay-yi-yi-yi-yi, Lucy!!!
Could this free Mono from Microsoft's patents, by providing either prior art or by asserting that the original concept/implementation was public domain?
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.
I can, since I've been using C++ for the past ten years in industry. OO is extremely useful for large software projects split over multiple developers, so I'm not disagreeing with your idea that Java/C# are useful in this arena.
However, Java is not the right paradigm when you're writing computationally intensive programs (in my case, data mining software) for specific hardware. The Java philosophy says write once, run everywhere. I don't know about C#, but I'm guessing since it's aimed at enterprise solutions, it's not going to have Pixar Studios, weather forecasting labs, or anyone similar jumping onto the C# bandwagon.
C++ is great for large, computationally intensive programs. You have the benefits of OO for large developer teams, control over memory management and object creation/copying details, and access to the underlying hardware.
Computers are imperative, and until their architecture changes vastly, object oriented languages will simply by syntactic sugar for people who want a different approach, an object oriented approach to programming. Its true that computers are getting fast enough, and compilers are good enough that C++ is negligibly slower than C but it doesn't mean that C is dead at all, and there are still many applications where one must use C. C is still the portable assembly of choice. It was once a standard and it should always be a standard until we have object oriented hardware, whatever that is, or something completely different. Your processor does not deal with objects; thinking in terms of objects can only take you away from the machine. If you want to see the most direct, human-readable, representation of code that has to be fast and efficient on multiple architectures, you use C. And C is not a difficult language to use. That crud about it having the ease of use of assembly is simply not true. C is a simple, efficient language that does what is needed and has the power and flexibility to do anything easily,if you know a little about it. Its unfair for some OOP junkie brought up on javascript to claim that C is difficult to use because he doesn't like pointers. If he learned C first, he would be more familiar with pointers and more familiar with computer architecture as a result. For someone to make a broad statement like that about a standard language being dead, I..just can't fathom someone saying that. He's probably trying to kill it by spreading rumors because he's an OOP junkie as mentioned above. I wish I hadn't read this thing 2 days after it was posted because this needs to be said. Everyone is brought up on OOP languages lately, so no one really knows the alternatives, and they just stick with what they know and thats not necessarily a good thing.
Associated Press
Sesame Street, Any Town, PA
A local resident was found starved to death in his home on Sesame Street yesterday. A note was found with the body which read,
"C is for cookie. That's good enough for me."
Authorities could not be contacted for further information.
Marques Johansson
I wouldn't touch anything that MS has a patent or copyright stranglehold over with a 10 ft pole!
:-)
If you do use it, you are inviting MS to screw you over whenever it suits them. Whatever their intent might be at this moment doesn't matter, it's the capability that counts. IHMO that's not a position a Free Software developer wants to be in.
As to anybody who wants to do kernel development in C#, go talk to Linus for a good LARTing.
Never ascribe to malice that which is adequately explained by incompetence.
To start with, dot-scheme is just a Scheme wrapper to gain access to .Net libraries:
.NET libraries, .NET delegates, .NET interfaces in Scheme. dot-scheme .NET libraries (also known as assemblies) and .NET system libraries can be loaded by importing dot-scheme provided
_dot-scheme_ is a PLT Scheme bridge to the Microsoft _.NET_
framework. It provides comprehensive access to
offering integrated exception handling, support for
and the ability to implement
works by analyzing
generating Scheme wrappers for its definitions. Bindings for the
modules such as `mscorlib.ss' and `system.ss'. Alternatively
wrappers can be generated through the `import-dotnet-types' macro
detailed below.
Similar things exist to get to lots of other native libraries, and if I were looking to use an external library in Scheme, I would probably choose something that was around on a lot more platforms.
Scheme.NET seems to be a scheme interpreter, in the same way you can write an interpreter for scheme in C - I don't think it compiles scheme to bytecode? Even if does comile scheme to bytecode, it's got a long ways to go to be complete.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Java is the best for linux desk top.
It's "Hear, hear."
We are seeing what M$ is doing with SCO .
.Not in wondoze.
I have the same feeling with EVIL M$ what it would do with Mono
All it wants is all to use
M$ wants to kill Java and Linux
How easy is it to learn C# compared to regular C? or C++ compared to regular C? Even Java is harder to learn than regular C. When people talk bad about C, they also ignore the fact that all the open source code in the world is written in C practically, and its easy to find refrences and learn C. How the hell am I supposed to learn C# and mono? Thats like starting from scratch. Perl? Perl will never be mainstream, its even harder to learn than C++, Python has a chance but I don't think its powerful enough. You say that higher level languages are better but it all depends on the style and type of syntax it uses as well as the quality of the code produced for it which can be used as refrence. To learn C anyone can look at lots of C programs, learning C# when almost no one knows C# is much harder and unless migel plans to write some documentation and tutorials o C#, why should i use is favorite language instead of what I already know? I know C, I know the flaws and strengths of C, I don't know C#. Also some of us arent concerned with running an application on multiple platforms but even if we were, why not use Java? Still a more developed language than C#.
People don't exist to serve systems, systems exist to serve people.
.Net is dying so M$ wants to be with Mono to help .Net
.net rule in wondoze.
then later M$ will cut the Mono balls off to make
The Reports of My Death have been Greatly Exaggerated.
"The trade-off, of course, is not being able to see the assembly language instructions in your mind anymore"
;).
;).
Is that a plus or a minus in the x86 world? OK x86 asm is not as bad as goatse.cx or tubgirl but still...
Seriously though, my main complaint about C is: simple AND common errors very often allow "an attacker to execute arbitrary code of his choice". There are a number of high performing programming languages that aren't as vulnerable to this problem.
It seems only one or two people in the world can program securely in C (assuming moderately complex programs like network services). If you don't believe me go look at Bugtraq.
C looks deceptively easy to use, and in practice it does not fail gracefully. The side/hidden costs of using C and other unsafe languages are great and far reaching.
But then again since I work in IT security, maybe I shouldn't complain so much
I've just been waiting for MONO to go away. I'm not interested in C# or and #'s for that matter. Well it looks like its not going away.
.NET while Miguel just follows right along. Don't get me wrong Miguel is a better programmer then I. However I can claim to have some knowlege about what works in Corp n-tier systems. .NET reminds me of the dog and pony show. With Mono following right behind trying to validate it. As far as I'm concerned .NET is bad excution of a good idea out of reaction from competition against Java.
So all I have to do is make sure I don't have any of this mono crap on my computer right? Because if it's a requirement to use gnome I'm out. I'll switch to KDE.
after 10 years of programming I've done my fair share of MS based programming methodologys. I'm not doing it anymore. You see I've seen MS back them selves in a corner before. With VB with VC++ it's bound to happen with
Now to the statement about C. Your a idiot. I will now file your name with all the other idiots that have told me over the years that Cobol and C are dead. In the world of business legacy is still the king of the game. Most people that come into Corp IS with the idea of sweeping changes find themselves incharge of nothing. So... I'd bet on being able to get a job programming C 5 years from now before I'd put a dime on Mono. Actually I'm one of those developers that won't put more then a glance in the direction of Mono. It's not a viable solution to anything I see myself doing in the future. And by the time it is. it will be rolled over by something,,, let's say more established.
Last one in jail is a fascist.
Sure you can.
In some cases, it is more clear to do the above than have useless variables defined over much larger scopes - it may be easier on memory, too, since the automatic variable will exist over a sorter duration.
As a grad student, I worked with a team where the project lead insisted that infinite loops be written at "while(1)" - even though K&R wrote them as "for(;;)" - and the position was not changed even after I produced documentation.
Just because some stupid teacher says that a certain programming style is bad, doesn't mean that it has no application. If your teachers told you that flat-head screwdrivers were stylistically bad and should never be used, would you believe them?
I'm reading all this stuff about cross platform programming... why the hell would Microsoft do crossplatform stuff? To release people from Windows? Smells like a trap... crossplatform my a**.
a couple of points in my wanderings through life.
1. most managers can't ask the question(s) you've submitted, then can't understand the answers given.
2. most maintenance/journey-men programmers don't know how to repeat the question(s) in a different way.
question: why do you wish to hire a senior level software engineer? just tell papa-bear, i'll point you in the right direction.
Matlab/Octave are of course used extensively, usually during the "exploration" phase. However, many algorithms aren't as simple as a couple of SVDs (indeed, if I can find such a simple-and-beautiful algorithm in a new problem field, assuming one exists, I would be instantly famous --- such things are usually beyond my ability), and Matlab-like apps becomes slow when manual loops are involved, so it is often only useful to show that an algorithm "is not terribly broken and might have promise", when a C implementation is written to actually evaluate its performance. Also, such algorithms are usually quite heuristic, so it needs tweaking regardless of what it is written in, and certainly won't look good on paper until some good results are obtained and I have some time to clean the thing up.
Someone said that I can use a hybrid approach, using high-level languages for non-speed-critical stuff. Well, this is a valid methodology in many user-oriented applications that contains a lot of GUI-related or other non-performance-critical code. In my research programs, we usually have a pretty flat profile, with only 50% or less of the code replacable with slower-and-higher-languages, and such parts are usually the easiest parts (argument parsing, data reading/writing, etc.) that aren't modified often and doesn't take a significant percentage of the time to write, even in C. The core algorithm can be several hundred lines long (it is the kind with a bit of heuristics and some other messy stuff, not something solvable by several SVDs which can be handled well by Matlab-like stuff), and gprof says that most of the lines takes significant time to execute --- many functions takes over 5% time in the profile (the top one is at 15~20%), and most take over 1%, so there isn't much room to slow that down.
Another problem is that factoring out the speed-critical part to C means some complexity, which can be significant considering the whole program isn't big anyhow. I have written such glue codes, and although this isn't difficult, it does take some time and care. Sometimes it isn't at all clear what and how to factor stuff out --- if this is done carelessly one ends up with a super-messy mixture of Your-favorite-language and C, and a lot of time is spent in passing large amounts of data around. What's worse, when something goes wrong in the glue code, it is usually harder to debug.
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)
I made an opinion. But then there were people who thought SCO was acting independently because why would Microsoft stoop so low? .NET is a friggin' VM!!! Anybody could do it! Sun did! There's no innovation there. Microsoft hired away Borland's main man with an obscene amount of cash and said, make a new language that we can call our own. Nobody would touch Delphi with a ten foot pole, but now C#, C#, C#... and, oh yeah.. C is dead.
.NET and Microsoft owns C#. Microsoft isn't going to LET .NET work on Linux long term, remember they see Linux as a THREAT. Right now though, this serves their purposes to further entrench C# and .NET in the psyche of programmers. Less time spent on other projects (Python, Java, etc) further entrenches Microsoft's hold on Programmer Mindshare and dictates how the world will compute. I have no problem with Microsoft as a company. I have some problems with how it runs its business, but hey that's life. But why, when you have a completely separate AND OPEN platform, do you want to adopt a closed source solution as the anchor point to the GUI?
I see no reason to assist Microsoft in taking over the world. Microsoft owns
Oh just ignore me. My attention was distracted when I posted this. I was referring to Mono, not Parrot
Still hoping for Gentle Treatment...
I'll type as I watch:
Hey, they use Emacs - I know that!!
Build files in XML (msbuild)? Why, MS has embraced and extended Ant!
They also have re-discovered XUL as Xaml!
Pop up dialog boxes with text are beter than System.Writeln?
They really enjoy FlowLayout.
Now demonstrating Aqua (Avalon) features... transparency all over! They must have really been impressed with OS X.
Not sure about Windows with background video. Sense future abuse of this feature. Have to play with that on OSX and see if it can be used to effect.
No infinite repeat count on video?
I think calling "/" whack is, well, - whack.
Watching people mentally pause when intellisense activates is painful.
Hey, is that Blog SOAP interface secured???
Extends or Inherits? I know which is more intuitive, and so do they...
Indigo - Ehh. IPC by any other name...
Gah!!! Geeks on laps!!! TMI!!!
Here near the end, video is out of sync - frogot you can't pause Media Player without ill effect.
Watching people debug on TV is painful. Really painful.
WinFS - interesting but too limited example to tell much about how pratical it will be to use.
Well, overall some of the stuff )(like the video window, though OS X can do that right now) is kind of neat but you can do that programming through XML file multiple ways at the moment already. I know a guy that uses JSP's just like they used Xaml, throwing code in a form quickly to see how it works.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
that's the one overloading everyone uses that makes some sense... it was syntactic convienience like other parts of the language. I agree with the other poster that an == overload would have been nice as well.
But general operator overloading leads to madness - I've personally seen it happen way too much in C++.
I know I've never once missed it. And I once had a developer explian to me that C# was abour 70% faster than Java to develop in because it had features like operator overloading...
"There is more worth loving than we have strength to love." - Brian Jay Stanley
The article says "For Microsoft's part, they're nervous onlookers..."
What, is this some sort of delusion that is necessary to allow Linux folks to use MS technology?
MS is letting this happen. Actually, they are thrilled. Do you think MS doesn't have enough money to hire lawyers, or to plan their legal strategies? No, Novell and Miguel, like Apple, have found a way to make money without offending MS.
On the other hand, dotNet is good technology. I'm a hardcore C/C++ programmer, but I'm not stupid: I'd rather write a GTK app using Mono rather than C.
But if they really wanted to use the dotNet technology to the best advantage of the OSS community, and w/o benefitting MS, they would:
- not be working so hard to implement MS proprietary API's,
- would have accepted the idea of a cross-gui api (SWT#) instead of insisting on GTK# and thereby setting back all alternatives to WinForms.
- they would have added support to Mono for dynamic language (pyton, ruby, etc), favoured by the OSS and Linux communities. This would not be difficult.
In other words, they should have taken the best from dotNet, but tried to create a viable alternative set of API's for the OSS community, rather than focussing on compatibility.
Compatibility is for the shareholders, not the community. It is the shareholders that own Novell/Ximian, so it is their right. But don't try to pretend that you are scaring MS and thinking only of Linux/OSS.
Tom.
There is no way to use exceptions that is generally readable. And rampant uncontrollable gotos, which is a significant aspect of exceptions isn't avoidable (please enlighten me otherwise).
And whether libraries generate exceptions instead of return codes isn't typically under your control. It's under the control of the creator of the library.
Any exception handler is going to be a nested block of code. and if you allow an outer exception handler to be reached you really have a totally unpredictable result as far as the curent state of the machine. You have no choice but to write ugly code if exceptions are around.
Add to that C#'s interminable nesting of classes generally, and you have code moving several levels deep to the right.
There's no way to make such code readable.
-- John.
To quote "To me C is dead." Since he is an accomplished C/C++ programmer, that now has developed a compiler in C#, I think his statement refers to his own personal programming practices not that of the world. Of course the fact that I have both a BA and a BSc may be clouding my perspective.
The Javadoc claims the class never gets instantiated. But why is the existance of that class so poor design? I thought it was fairly conventient.
"System" is being used as a namespace full of static variables and functions. But because that would not be "object oriented", there is no such thing as a static variable or a static function; you have to declare a class and then put static methods and static members into it. But classe are not namespaces in Java (for example, you can import java.io.*, but you can't import System.*). To fix such limitations of such a construct, Java 1.5 adds even more kludges to the language. Object-oriented dogma has led to unnecessary language complexity. Sorry, but I find that stupid, in particular in light of several decades of experience with "class" and "module" concepts in computer science.
'papa bear' lives in southern california, and i prefer my cow 'medium well'.
your previous question was one of a level of computer understanding that is part of the knowledge base that senior level software engineers are comfortable with.
if your looking for questions to interview software engineers with; try this one, "how many programmers does it take to screw in a light bulb?" you'd be frighteningly amazed at the blank stares it generates. for me, i'm looking for a reaction, any reaction, not a blank stare. someone that thinks, will react. The software line of work is a 'service', a creative mind will find a way; others will not.
as for the 'india' reference. it takes a business, any business, 5 years to recover from a disaster. i've noticed that its the same for people also. i've pondered the nature of the cheap-labor/outsourcing problem, and have found that an equitable answer for the outsourcing of business products would be to not allow ANY tax benefits to those businesses that would use this method to generate funds; including ALL business expenses. with 3 million productive people out of work, this not a group of people that i can easily ignore.
I am interested in teaching Electrical Engineering students how to write software to implement signal processing algorithms. I want them actually writing code rather than running some canned engineering package that designs all the filters for them and shows pretty pictures.
I wrote a canned program that shows pretty pictures of signals run through filters with the results showing up on spectrum plots where the students could write extension modules in C++ to implement their filters. A typical extension modules is derived from a base class that buffers the signal input and output from the filter, a filter is typically written by overriding a couple of virtual methods -- one to calculate the filter coefficients and another to apply those filter coefficients to the next buffer of data.
The students have been told that it is valuable for an engineer to have some C++ experience, but even this sheltered, structured use of C++ makes it hard to get students to take my course. C++ has a clunky edit-compile-test cycle, it is a lot of effort to get a clean compile, and then more often than not a student written C++ program crashes and is hard to debug because it is an embedded object in another program (yeah, yeah, I have a test framework).
The engineering students regard C++ as cod liver oil -- they would all rather use Matlab. They use Matlab in all their other courses. Back in the days engineers would struggle to get a FORTRAN program to compile and then struggle to get it debugged. No one wants to bother with implementing engineering calculations at that level, it is all Matlab now. Matlab has an "eval" loop style of programming, good numeric libraries, good plot libraries, reasonable error message feedback, excellent self-discovery and help capability.
I am not a Stallmanesque zealot and a don't begrudge MathWorks making a profit, but in the olden days interesting software came out of the academy (P-system, BSD, Lisp) and these days we seem to be a trade school for the preferred commercial packages. Universities are supposed to be at the leading edge. Why aren't we using Lisp if we wanting something interactive and developing engineering packages for it (there is a thermodyamic modelling package written in Lisp called CyclePad by the way)?
Outfits like the National Labs (Sandia, Livermore) and the Space Telescope Science Institute are doing what the universities ought to be doing -- they are looking into Python as the next Lisp. It is a good effort and I look forward to it bearing fruit.
All I am trying to say is that if Python is going to become an "infix Lisp" for science and engineering, there are a number of things (such as NumArray) that are a work in progress but not fully there yet.
Using Python as glue and doing the heavy lifting in C/C++ extension modules is OK, but it doesn't solve the following problem. NumArray over here has this neat Python class implemented in C++ for efficiency, and there is this plot package over there that doesn't know about NumArray, and how am I going to get the data from here to over there without diving into C/C++ sources of third party packages to extend them to know about NumArray?
There is a lot of interest in using Python as a numerical, infix Lisp, but there needs to be more interoperability of these new data types. I am hoping this will come with time, but it is not quite there yet.
Python doesn't have the corporate fetters of either C# or Java, and while it is nowhere near the execution speed (especially for numeric work), it seems to have growth potential, especially if array data types could be standardized.
One of the big interview questions that I ask involves the difference between virtual and member functions. Maybe one in ten applicants comes even close to answering the question correctly. Of those, less than half know what a vtable is. We use this question as a disqualifier, but we have hired some of these people as junior programmers from time to time. Interestingly enough, many of those who answered correctly still could not program in C++ to save their lives. Having a thorough understanding of the compiler generated implementation is not the same as having a good background of algorithms or experience with cost-performance balances in implementation. For every sin I've witnessed in C++, I can recall at least as many in C.
-Hope
Actually, referencing and dereferencing are not the same thing as boxing.
Boxing is the act of taking a given Value (which does not have any inherent type info) and creating an equivalent Object (which has embedded type info).
Boxing is a solution to viewing everything as "Objects" while not requiring type information (e.g. a vtable) to be maintained with every binary block (e.g. ints, floats, etc.).
e.g. In some languages, every 'int' is an Object, which roughly means that it contains: 1) a vtable pointer AND 2) the actual int value.
Hence, these Int Objects are twice the size of what an 'int' needs to be. This is often silly since, in most cases, there is no need to abstract away the type of an 'int'.
I think the reason for the confusion is that 'Objects' exist on the heap and are passed by reference, while 'Values' (non-Objects) exist on the stack and are passed by value. Hence, it is the Values which need to be boxed in order to use them as Objects.
and there is also no open bracket.
I have not python only a little so far (although I use Zope), and yes, it's a very nice tool.
Keep in mind that my comment is in general... learn how memory works... not that you can't use a language (or C++ class system) that manages memory at a higher level, but learn how it works anyway. It's important. I suspect you in particular probably have.
But I don't like the VM excuse from people that think the concept of pointer is too complex. I feel it's important to understand how the machine thinks of what you tell it. I love abstraction and see no limit to valuable high level abstractions and languages whatever. But in the end it is a machine, and how it wants to work is the most important thing for an engineer.
-pyrrho
Yes it is. That is exactly why we have exceptions, to avoid thousands of if-tests to test for every particular error everywhere. If you e.g. make a simple recursive descent parser, it makes sense for the parser to throw exceptions instead of infecting all your code with tests for errors. You are generally not in a position to "fix" the error anyway, all you want is to say which part of the input is wrong, and that can be done at a single place in your code.
Without exceptions, you must either write each routine to be able to return a new error code, and make each routine test for that all the places it calls other routines. This is dead ugly. Alternatively, simply longjmp out of the entire block, but that is the same as with exceptions, except that it is uncontrollable.
And whether libraries generate exceptions instead of return codes isn't typically under your control. It's under the control of the creator of the library.
Yes, that is the way the world is. Writing general purpose libraries is always hard. And unfortunately, not every library writer has a clue. If you are really offended by the braindead choices done in some badly designed library (e.g. CORBAs C++-bindings) that you have to use, there's always the possibility of wrapping up the stupid code.
Any exception handler is going to be a nested block of code. and if you allow an outer exception handler to be reached you really have a totally unpredictable result as far as the curent state of the machine. You have no choice but to write ugly code if exceptions are around.
No, it is not uncontrollable. That is exactly why C++ offers the "resource acquisition is initialization" idiom, java and C# offers try-finally blocks, common lisp offers unwind-protect, etc... This is great stuff, it gives you the opportunity to jump out of the offending code quickly and painlessly, while at the same time being guaranteed cleanup of resources and state in a predictable manner.
And in most cases, you don't even need them. Unless your code goes about allocating resources or modifying global state, you could care less about what happens with local variables on the stack you are jumping out of.
Add to that C#'s interminable nesting of classes generally, and you have code moving several levels deep to the right. There's no way to make such code readable.
Ever heard of abstraction? If you, or your co-workers isn't capable of writing short readable methods that spans no more than a screenfull, with a nesting-level below 3, it is hardly the languages fault.
I can see where you are coming from. I've seen some horrible code using exceptions in obtuse ways. If you are always testing for errors immediately anyway, exceptions doesn't make your code any more readable (in fact, it makes it worse, which we both seem to agree upon).
The power of exceptions comes from being able to write code that is clean, safe, and isn't threaded with error-checking everywhere. You can start writing modular code again: normal program logic in one place, error-reporting somewhere else. And the system will take care of the details, if you learn to use it properly.
Using exceptions isn't a device to stop idiot programmers from having to think about error conditions. Like any other way of handling errors, it requires you to think and plan your way of attack. What it does give you, is the tools to write cleaner and more modular code, if you know how to use them.
Let's rewrite all our apps with C#. Better yet, let's rewrite and compile the Linux kernel using C#. Maybe is enough for Miguel or he wants to put C# on Mars also? ;-)
And that's exactly the point when they should be stopped, for the sake of maintainability.
I would be fine without "+" for strings in Java, but realize they had to add it in to strike a language balance people would find appealing.
For numerics I could see them adding a complex type and overloading for that I guess... but perhaps that is really the realm of a different language.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
It's far better to have one "master language", kind of like when you have a lot of eggs you like to keep them in one basket for maximum safekeeping.
.Net, because you loose true language diversity and thus languages that fit really well into fringe problem domains slowly are eaten away. There is nothing wrong with knowing more than one language - just as in real life it's always better to know a foreign language or two.
That standpoint (on uber-syntax) is exactly the worst feature of
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Value classes and a better native code interface are crucial performance improvements. Fixed exception handling and generics are important for large projects.
.NET; Mono, as you would know if you bothered to read the article, is both a fully independent set of APIs and libraries and a set of .NET compatibility libraries. You don't have to use the .NET compatibility libraries in Mono at all; in fact, most Mono applications don't and won't.
.NET).
You can have value-like classes in Java. You can use exception handling EXACTLY the same way in Java (I've used Runtime exceptions in Java for years exactly because that is better - in most cases). Generics are very useful which is why Java will have them in 1.5 (does C# have them yet? I was under the impression they were not in the platform yet - or at least people at work using the platform are not using it at all).
At least with Java and exceptions, you have a choice and can indicate to an external unknown user in certain situations there may be a problem. Think about this in terms of a builder tool - if you wanted to write a builder that could hook up various classes and flow between them - would you not also want to manage the flow of error cases?
If declared exceptions are so bad, then why is there a wsdl:fault element for SOAP?
Parrot and Tcl are slow interpreters. Mono contains a JIT that gives near-native performance on a lot of code. Mono and C# can replace C and C++ as general purpose languages, Parrot, Tcl, and Java cannot.
There are options used to compile Java - the reason why they are not more widespread is that they are not needed very much.
I still think that in many cases, a runtime JIT compiling to native code dynamically is a better solution because it's optimizing what the user is actually doing, not what the compiler thinks it might do.
First of all, Mono is not
Mono is striving to equal the CLR though. And that spec will change according to MS wishes, and also has patent issues.
Second, I really don't care about whether Mono helps or hurts Microsoft. Why would that make any difference to me?
Why not just use the real thing then? Why are you using Linux when you could be using Windows 2003 server?
I don't see Sun as a victim. And, yes, I hope that people will port open source Java code to Mono as fast as possible so that that code will finally run on an OSS platform (I don't care one way or another whether it also gets ported to
And then have that platform sued out form underneath them. Good luck with that plan. And good luck with porting everything under the sun, while all y'all are out porting Java code is moving forward. I don't know why you'd want to use a platform that is always a step behind.
You be better off supporting an all OSS Java. Then you'd also have a much larger codebase of support to choose from.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
My master plan is the rise and eventual domination of Smalltalk, as just about anything I really like in Java came from that direction...
See, now if MS had just put together a real smalltalk based system I would not be so harsh of them (though I doubt I will ever forgive them for my years under Windows98). But a second rate clone of Java just shows no imagination and retards the industry.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
I think they could have handled operator overloading if they'd wanted it in the language - but also thought (like I do) it was simply a bad practice with no practical value.
I wouldn't include operator overloading in any language I designed, not because it's difficult but it's far too easy a trap for developers and you can always find an alternate means of development that is acceptable and probably better in the long term. Operator overloading is a crutch.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
DotNet, by providing a strong language independent platform for all syntaxes to be built on opens the door for me to use exactly the right syntax for the problem at hand at a fine grained level and have the classes produced in solving each problem all contribute to a single large scale program. Java can't (or more accurately, won't) touch that.
.Net version of Perl. It's when you get into more interesting languages that you have issues.
.Net libraries. Not being that familiar with Perl I could not say what exactly is missing.
If DotNet is such a miracle of langauge support, then Java must be even more spectacular with some 143 languages compiling to Java bytecode. The only difference? No-one has created a unified tool to stuff many of these languages into one environment, as there is little need to do so (or someone would have done it). Obviosuly some of those languages are more real than others, but a number of them have widespread use.
You may be thinking that all syntaxes become equal under DotNet, but I haven't found that to be the case. It is still vastly easier, for example, to utilize regular expressions from Perl than from C#. So, C# is not even close to threatening Perl for the text processing applications that Perl shines on.
Because just about all the languages you've used are pretty much equivilent. Sure stuff like Perl regex use is going to be really similar in the
I still don't see hardly any real-life systems of any size using the mixed-language features. In a real project of any size it would be a nightmare if you had a few guys coding in perl, and a few in C#.
It seems like even with Perl, although the language would be simialr the library support would fall mostly to calling common
Of course, everyone here probably recognizes the ulterior motive of this design. DotNet isn't a language and it isn't a development studio. It is plain and simply the new windows API that will finally allow Win32 to be replaced. When Longhorn comes around, the underlying windows calls will be reduced from over 56,000 to under 8,000. Those 8,000 remaining calls will be geared to very closely match the needs of the DotNet runtime. The Win32 compatibility will be supplied via a conversion layer. So, even if Mono succeeds, they will only end up expanding a market for software that will run best on a Microsoft OS because the OS was designed from the ground up to run it.
I agree with that. They did need to simplify their API's, it just would have been easier on everyone if they had used Java as the base - they could have compiled it to native code the way they do right now. They could have built the multi-language IDE around it. But instead they figured that would mean you could write code for something other than Windows and that must not be encouraged, so they figure. They could not stand to not be in control and follow the will of a real standards bodies cotrolling the direction of language or libraries. It's NIH on a massive scale.
"There is more worth loving than we have strength to love." - Brian Jay Stanley