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."
Doesn't the Monodevelop IDE look suspiciously like Eclipse?
C is inferior, yes. It's hardly dead though.
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.
Icaza is taking major investments from Microsoft?
.NET is good because it takes the best from languages that are already in existence. It's not like there is anything revolutionary in C# that isn't in any other language out there. I used to be stuck in this PC-centric view of the world. Imagine my surprise when I bought a Mac and realized that NeXT had fantastic things like Internet-enabled Distributed Objects available long before much of the world even knew what a web browser was. Yes, C# is good. But the only people that I know that have been blown away by it are those that didn't stray far from Microsoft solutions and were never exposed to tools available from other vendors. Welcome to what much of the rest of the world had available to them in the form of Java since the late 1990s. And before the fanboys come out - yes I know that C# actually improves on some of Java's deficiencies. But I do take issue with the assertion that C# was made possible thanks only in part to a concerted MS R&D effort. It wasn't.
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
The whole basis of the flawed range of problems stems from Mono's fundamental design. The goal was to design reusable components that could plug in multiple different ways in varying modules. The result is a system that is significanctly more complicated than it needs to be and the n'th level integration means that one buggy (or incorrectly spec'd) component throws the entire beast off.
However if you are looking for working solutions (especially on the desktop) your design, coding, and testing will go much more easily with QT, or GTK. Each is much more thoroughly tested and has significantly more man-years of use.
Hunger is the best sauce.
I've found that C# on the .NET platform has been a nice language to work with. What I cannot stand is the IDE and build system. I feel it really gets in the way half the time. Microsoft has spent too much effort trying to make Visual Studio work like an Office app, but for real develoers I find this limiting. Intellisense is awesome, but the lack of include files (you have to reference compiled assemblies) drives me crazy (I know you can build assemblies with intefaces only, but this is a lot of work just to share some types). There have been many times where we have spent days figuring out how to do something that I could implement with Makefiles in minutes. I know there are other IDEs, but developing MS apps without VS always shows all the architecture flaws and heavy lifting that are worked aroud with the IDE (look at COM, trying writing a serous COM app without VS, way to much typing).
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?
We are doing quite well, see our Mono Roadmap
in www.go-mono.com/mono-roadmap.html, we are
a bunch of happy campers, with a nice runtime,
and a nice language to write code we enjoy.
Miguel.
Indeed. Since most damned operating systems are written in C I don't think we'll exactly see it go away anytime soon.
Operating systems is where C comes from, and vice versa.
(Yeah, whatever, I'm a C geek. To me, and array of pointers to functions returning pointers to arrays of characters seems like a damned fine idea! =)
Back in my day, we jusy wrote straight to the registers on the device and we were glad! Damned punk kids.
Lost at C:>. Found at C.
No, I believe he's forgotten that this year's official unilateral declaration of total GNOME supremacy has already been proclaimed by Bruce Perens.
Still, this is a good one for next year. I'd hate to see them run out of new schemes and have to recycle old chestnuts like "One million GNOME desktops in Mexican schools!" or "With Solaris *and* HP-UX, we're the Unix desktop standard!"
What I'm listening to now on Pandora...
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.
.Net or Java runtime and is a far more advanced language than C# or Java.
I think this problem would be solved by writing things in Scala. Scala compiles to
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
Interestingly, Mono's C# compiler is written in none other than C#.
pi = 3.141592653589793helpimtrappedinauniversefactory7
C# compiler messages are way more intuitive to novice programmers.
The C# network access classes are more intuitive.
The C# IO namespace is more intuitive.
The event model in GUI apps is way more intuitive in C#.
.net framework.
All of these lower the barriers to proficiency in the language, and make it possible for more people to get started writing code, which will eventually lead to a larger population of talented coders, and to better software.
C# also enforces some very good design patterns by making them not only language features but by integrating them consistently into the
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.
Amazing magic tricks
Take away the *IDE* and you would probably write code slower than those of us using languages like Ruby. .NET has a great set of tools, the language and runtime is nothing exciting.
When you get tired of compiling and linking and other cute holdovers from another era, come join us in dynamic language-land.
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
We have Gnome because Trolltech refused to release QT under a free license in the early years.
The prevalence of KDE at that time showed us that a large proportion of the F/OSS community would cave to non-free software if it was convenient.
Until recently a mutually beneficial relationship existed between Gnome in the community and Ximian as a commercial provider, analogous to the relationship that exists between OpenOffice.org and Sun's Star Office.
Now that Novell owns Ximian (OK Novell are currently our friend, but that may not always be the case) and Miguel is exposing the community to litigation from Micro-Soft down the track through the introduction of non-free technologies (and procedures, methods, etc. which are likely to be covered by upcoming patent laws) the GNOME project needs to distance itself from the disruption that the Ximian guys represent in order to avoid contamination.
Miguel has a solid reputation and has done a lot for the community, but in this case he is either (best case) a fool for thinking that Micro-Soft can be trusted or (worst case) a quisling. Either way, it's barge pole time.
What is missing for a similar type of system to be implemented in Java, with a GTK+/QT frontend? Is it the VM is not robust enough? Is it the fact that there isn't an easily copy-able blueprint as in the .NET API's?
Why aren't IBM and Sun(Java Desktop??) pushing something like this as an open-source project?
-
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
Quite a few open-source developers have embraced automatic memory management. It's just that we tend to write our programs in Perl and Python.
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).
"For some reason"? You make it sounds like we all just got PMS. There are two very clear reasons.
Find free books.
I am really lost on this laguage/compiler stuff.
Let's say that im creating a new language, let's call it "C&&"
And i will create the compiler for the language C&&, in what language i will code ? not in C&& that dont even exist yet!!, im just creating the compiler right now!!
So, let me ask, in what language was coded the first C# compiler ? or the first C++ compiler ? or the first Java compiler ?
BTW: C&& (c) by me.
Unix its simple, but sometimes it takes a geniuos to understand the simplicity -- Dennis Ritchie
"There is no support for some Python features that some programs will require. Most of these are
fairly obscure, but are a limitation. Examples include:
- String formatting
- Core language features, such as long integers, complex numbers, built-in object methods
and so forth.
- The standard Python library."
Are they joking?
Do your homework dude. Swing may be a pig, but making it sound like it was Smalltalk at fault is flamebait. Sun went looking for just such a thing and found an irate team of people who thought they could try the ParcPlace emulated x-platform widget game for Java. Didn't matter that they were Smalltalkers or anything else.
I suppose every time you use windows, icons, your mouse, or pointers, it just pisses you off that a bunch of Smalltalkers at Parc years ago foisted that on us! And damn that MVC concept too. And the whole messaging thing, and first class objects, and, well all that other OO stuff, bunch of stuff Smalltalkers foisted on us. I guess they foisted garbage collection onto Java too, huh?
There are multiple Smalltalk incarnations out there. Of at least 7 Smalltalk environments (VisualWorks, VisualAge, ObjectStudio, Squeak, Smalltalk/X, #Smalltalk, GNU/Smalltalk) I have written applications with... only two do the emulated widget thing, the other all do the native thing.
So what I want to know is this. Every time I see a dumb idea or a crappy implementation, do I get to blame it on the language?
Oh, and BTW, that other response, the one about IBM's java widget set (SWT)... that was designed by a bunch of Smalltalkers too, the OTI crowd that IBM bought for IBM Smalltalk. I wish they'd just go away and quit foisting stuff on us.
One man's pink plane is another man's blue plane.
All of these lower the barriers to proficiency in the language, and make it possible for more people to get started writing code, which will eventually lead to a larger population of talented coders, and to better software.
.net a piece of crap. if apple ever ported aqua to linux, oh boy. but then i have to remind myself that apple is a hardware company. anyways, back to original point. languages don't make a programmer any more than brushes make a painter.
not true. a skilled programmer can code in a variety of languages. for example, someone who is proficient in java (or OO languages) should pick up python rapidly (i know from first hand experience). also, software engineering is not dependent on the language. good software can be written in any language. IDEs and languages do not make for better software. there is much more to it. have you ever played with cocoa/obj-c? if you did, you'd think
My problem? I was perfectly gruntled, until some numbnuts came by and dissed me.
Given that the standard was developed over a significant period of time by a company with a rediculous R&D budget, and forms the foundation of their future products, I'm not sure where you get the "hacked on five minutes before release" bit.
Mono is an implementation of the CLR, and mono's C# is an implementation of the standardized / MS C#.
For those who havn't gotten it, ivern hasn't really learned C# yet. Seriously dude, rather than flaming, take some time to learn it and then come back with the a more realistic set of gripes.
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#.
I still give Java the upper hand overall because it's licence. Unless Microsoft blesses Mono with a licence to use the full API, I can't see using it. Mono keeping the APIs they may not have a licence for in a seperate code-base is not enough for me.
The only modern language that is wide-spread and licenced sanely is Java.
The more I try to hire good C++ programmers, the more I become a c++hating bigot.
When over 95% of "C++ programmers" that I interview can't even answer this: straightforward question about virtual methods, I see no hope for the language. It seems most people who claim to be C++ programmers just say that because they use a C++ compiler and stick their functions in objects.
The future I expect is a mix of a higher-level language (Java, C#, perhaps even Python) and C. I can think of cases where C is the right tool for the job (small memory embedded systems), and I can think of cases where Java/C# is (large scale enterprise software); but I don't see C++ as the right tool for either job.
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
There is almost no difference between C#/Mono/.NET and Java, but almost no Linux developers write in Java.
.Net will evolve too quickly for Mono to keep up. Only in that case it is guaranteed MS will deliberatly include things that will break Mono.
.Net clone, when they are done with that they can concentrate on the single remaining target.
Not quite true. Current Sourceforge statistics by language:
1. C++ (12967 projects)
2. C (12955 projects)
3. Java (11446 projects)
4. PHP (8607 projects)
5. Perl (5388 projects)
There is a vocal group of Java haters on Slashdot.
There is a bigger group who is a bit wary because even though the Java Community Project exist and IBM and others are allowed to develop their own implementations, the licence is not GPL and Sun could screw things up if they turn evil or desperate.
Check out your distribution's packages and you'll almost see more JVMs than Java apps.
Yes, because lincence restrictions prevent them from including Suns java. The open source packages are not mature enough to run all apps, so it's pointless to include those apps. The open source implementations of the VM are impressive, but the java standard is developing too quickly for them to keep up porting all libraries. Just like
there's every reason to use Java, especially for applications.
Yes, and I believe a huge reason for the upswing of Linux in businesses is the great combination of Linux and Java.
Do NOT help Microsoft kill off Java with their
Being bitter is drinking poison and hoping someone else will die
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.
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).
but, really, there aren't that many of those. here's a statement you can argue about:
"usage of c and it's derivatives (c++, objective-c) is more likely create buggy and insecure software. the performance gains from these languages does not make up for this loss of stability"
seriously. direct memory management is a dangerous thing and isn't necessary for 90% of the software written in c-like languages. if you're writing device drivers or an os or whatever, it's important... but does sendmail really need to be written in c?
would it be more secure if it wasn't?
2 1337 4 u!
Well for a start the MSFT/SCO has not been black and white 100% proven in a court of law so dont try to use it in any context to prove a point. Besides which:
"So why implement the Microsoft APIs at all? Simple: to make migration from Windows to Linux as easy as possible"
Show me the quote where Miguel has said that MSFT will definately never ever try to sue / destabilise / be evil over it ? you cant because you have assumed this is his stance since it fits with you anti-MS,SCO,some big company view.
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
I think so. They go on to mention that other missing features are things like multiple inheritance, and the ability to reference self in the constructor, and to avoid calling super-classes constructors.
.NET is.... They seem to be Windows pukes, though - they refer to .DLLs all the time, rather than the more general "shared libraries".
.NET, given these limitations.
In the end, though, they come out with something about how "language neutral"
There's certainly no way pretty much any Python code I've written (and I've written a lot) would run on
Here's the thing - first of all, the IBM SWT package does tie into QT (I think- it was one of those two) with some fast native components.
The other thing is that projects to write open Java VM's have not had much push behind them, because there are already very good VM's around for just about any platform you can think of! IBM and Sun both make one for Linu (Hmm, does IBM still make one for Linux? I forget). Anyway, even if it's just one that one is good enough for just about everyone so there's little drive for people to work on another.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
It's because he is a fine coder and realized the harm that operator overloading does in real-world systems.
I've been on the operator overloading acid trip in C++ thanks - I quit cold turkey.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Seriously though, .Net is a nice language with some advancements over Java, but not different enough from Java to make its existence worthwhile.
.NET and Mono respectively for the fun of it? Sun forced this duplication: through their proprietary license requirements for Java and through their poor handling of Java's technical evolution. In the end, Java's evolution is primarily driven by what makes money for Sun, and that's why Sun has neglected client-side Java and Java numerics, for example. And the reason why they could get away with that is because they have retained legal control of Java.
Maybe not if your idea of programming is limited to hacking J2EE server-side components and a few flaky GUI apps.
For the rest of us, C#'s better native interface, value classes, operator overloading, fixed generics, and fixed exception handling alone are worth it as a language alone.
Add to that that there is a high-quality open source implementation (Mono) and a complete stack of non-proprietary open-source libraries (Gtk#, etc.), and people have really strong reasons for preferring Mono to Java.
But as it is I see the tremendous duplication of effort across the world to do the same things in Java and C#, and it just makes me sad.
Well, do you think that Microsoft and the OSS community are spending time on
So, if this "duplication of effort" makes you "sad", complain to McNealy and Gosling and Schwartz and all of the other Sun managers: it's their responsibility, it's their greed, and it's their fault that it has come to this.
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.
Now, if you don't mind I've got to get back to work with Tomcat.
--
Simon
I'll tell you why Java does not prosper on Linux: It sucks.
When you come from a C / Perl / Python background, you quickly notice a few misfeatures of Java:
(1) It's huge
(2) The code-compile-test cycle takes too long
(3) It's hard to use
(4) Did I mention it is huge?
(5) It's slow and resource-hungry
(6) It is difficult to debug
The only reason Java is around today in any significant proportion is because Sun has convinced several PHBs that Java is good, Perl is bad. That was enough to convince several companies to adopt J2EE and drop mod_perl. In most cases, the companies have regretted the decision.
Ask the developers. They will tell you that the debug-compile-test cycle has been significantly slowed. They will show you the POs for new servers needed to handle the same load that the mod_perl servers were handling.
Linux is a breeding ground for good concepts that work. Java is not one of them, hence, it is floundering. Mono will be DOA.
Before you go ripping me about my opinions on Java, ask yourself: Can you program in Perl or Python? Have you done any significant work in either language? Generally, Java enthusiasts have either learned Java in college as the "one true way", or have converted to Java from Microsoft Visual Studio. I've not found a Java enthusiast yet that has a deep knowledge of perl or python.
Remember, Perl and Python are there not because they have huge PR campaigns and million dollar budgets. They are there because they survived where others couldn't. They are there because they deserve to be there on their merits alone.
The radical sect of Islam would either see you dead or "reverted" to Islam.
Anyone who has tried programming their own OS on a small, automotive application microcontroller (like the Siemens C167) with memory enough to support a ridiculously low number of threads, appreciates the simplicity and predictability of C.
C is far from dead in machine level programming.
How many times is the constructor message displayed, and why?
I'm a suspicious kind of chap.
.NET and a lot more mature. Why not create Linux apps on the Java language and platform?
Ximian create Evolution and sell a connector for plugging into Exchange. What if MS, in a break from funding SCO to go after Linux users, have funded development of Mono, attempt to get as great a dependence upon the platform as they can so that they can then pull the plug, in a lawsuit sense, wiping out a plethora of applications ported to Mono.
I'm also suspicious because Java has been around for god-knows how long now and I've not seen anywhere near the comotion for using that for Linux apps -- and why not? Sun understand and support the Linux cause more that MS ever will. Gnu even have an open source implementation of the platform. The Java libraries are superior to
Powered by onion juice.
Mono seems to be a very interesting way to go ahead, but what is more important is the fine print. Would Sun / IBM back Mono ? Would Sun want to nurture a competitor to its own framework (J2EE) ? And the interesting part is (as long as you donot worry about the proprietory APIs ) is that any .NET (mind you the one without any managed C++) app will run on Windows and Linux. This will work to Microsoft's advantage too - but the best thing for any developer would be the guarantee that his/her code will be cross platform. It would you the GDI calls on Windows and GTK calls on Linux ! Then you dont have to worry about the slow UI of Java.
So that's where all those idiot^H^H^H^H^K inexperienced OO java programmers come from! I was wondering.
FYI, a bad OO programmer in C++ is most likely going to be a bad OO programmer in Java as well, except the language will most likely prevent them from taking down the entire machine.
Good OO programming is good OO programming, regardless of the language.
The cesspool just got a check and balance.
I'd like to point out that there is absolutely nothing wrong with writing "C with Classes."
Depends what you mean -- the type I'm most familiar with jams all the functions into one class which is then instantiated once, and since the programmer knows that "it's an object" he knows that it must need member data, so he feels free to have all the functions use lots of member data. (Effectively indistinguishable from global variables.)
I worked with one class that had over 100 methods and 50 member variables. There were hidden in there about 5 completely different interfaces, none of which were simultaneously usable (because they shared member variables); in addition, the 5 interfaces consisted each of about 10 functions (some shared with other interfaces), most of which had to be called in a specific order.
To add insult to injury, most of the actual data-passing in these functions were not via the member variables; it was via massively long function parameter lists. Many of the functions took pointers to the same data that _had_ to be in a member variable.
That's what I think of when I hear "C with Classes".
You can see why I wince.
Now, I've written a good amount of "strongly typed C" (that's C code compiled with a C++ compiler); it's my preferred way of writing C. I think _that's_ a good thing. But if you're going to use classes, I think you HAVE to know how to write object-oriented code to an object-oriented design; you can't just use the old C procedural skills.
-Billy
So when I say that Pixar (or whoever) will switch, I am saying that all new code will be in, say, C# and the existing C/C++/whatever will be replaced at some point.
;) to a higher level language in the future.
My point was that your point that processing ability is rising is irrelevant because processing requirements are rising as well, so "slower" languages won't be able to cope with the needs of major image processing. The libraries developed by Pixar et al will be used to make C++ a higher level language (in much the same way that Java and C# make themselves higher level languages) by making new code use existing libraries. The new code will be higher level than the existing code but use the same language and take advantage of the speed optimizations already made in the libraries. The beauty of C++'s level is that you can get down to the low level if you need to, and you can write high level code the rest of the time. As long as you have libraries, that is.
That is the same reason you will switch from your beloved C++
I welcome the opportunity to switch to a higher level language if it's easier and equally expressive. C++ is just as expressive (if not moreso) than C, and C is just as expressive (if not moreso) than assembler. Java is not as expressive as C++. C# may be, but I don't really think it is. I haven't researched it as much, but it seems to also force you to do things. I'm not saying that a higher level language won't emerge and take over. I'm just saying that the ones that are developing now may replace each other, but they won't replace C++. Java doesn't write better assembly than C++, or it would be smaller and faster. The same goes for C#. They make the language less expressive in order to make it harder to do dangerous things, but until the cost of upgrading is at most zero, I don't see it happening the way people switched from assembly to C.