Slashdot Mirror


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."

208 of 925 comments (clear)

  1. C is Dying? by Anonymous Coward · · Score: 5, Funny

    C is dead? Has Netcraft confirmed this?

    1. Re:C is Dying? by Anonymous Coward · · Score: 3, Funny

      Maybe because the D programming language is set to replace it. As if we'd be so lucky.

    2. Re:C is Dying? by Anonymous Coward · · Score: 4, Funny

      (!C) ? (alive = 0) : (alive--);

    3. Re:C is Dying? by Canadian1729 · · Score: 3, Insightful

      Saying C is dead is such a stupid comment, it invalidates anything else he might say.

      --

      New news forum for Canadians - CanadaSpeaks
    4. Re:C is Dying? by pavon · · Score: 5, Funny

      In a recent interview, Netcraft quoted C as saying, "I feel happy" and "I think I'll go for a walk now". However Miguel was quick to point out that "C is not fooling anyone" and "is just being a big baby." Unfortunatly, the interview was cut short, and Netcraft will have to wait until next Thursday to confirm the C's death.

    5. Re:C is Dying? by Anonymous Coward · · Score: 2, Funny

      No, it has just been slashdotted. It will be back up soon.

    6. Re:C is Dying? by Ironsides · · Score: 5, Insightful

      Obviously this guy has never been in an Engineering College lately. We are still learning C. Not C++, Not C#, Not Java, C. As in where you have to declare all your variables at the very beginning and can't declare them anywhere else. It's how we program microprocessors (among other things) in something other than assembly. And I highly doubt they will make a Java compiler for PICs, Motorolla HC11 and HC12's and various other devices any time soon. Besides, I here places are still looking for COBOL and FORTRAN programmers. Seeing as how those two are still here, C still has a long way to go before the white lillies come around.

      --
      Fly me to the moon Let me sing among those stars Let me see what spring is like On jupiter and mars
    7. Re:C is Dying? by dglo · · Score: 4, Funny

      Maybe because the D programming language is set to replace it.

      C is the successor of B, which was a rewrite of BCPL. Therefore, the only true successor to C would be P (the next letter after B and C)

    8. Re:C is Dying? by calags · · Score: 2, Funny

      Oh great. Now one can proudly say "I write with P".

      --
      Never attribute to stupidity what can be construed as a monopoly preservation tactic.
    9. Re:C is Dying? by hoggoth · · Score: 2, Funny

      > Engineering College ... We are still learning C. Not C++, Not C#, Not Java, C

      Because of this, after graduation you can expect to be unemployed because you don't know any modern programming languages.
      But perhaps you can learn Java and C++ on the unemployement line from all the unemployed Java and C++ programmers.

      --
      - For the complete works of Shakespeare: cat /dev/random (may take some time)
    10. Re:C is Dying? by Jooly+Rodney · · Score: 2, Funny

      "Not-Cs... I hate those guys."

      - Indiana Jones

    11. Re:C is Dying? by meatball_mulligan · · Score: 2, Funny

      >Oh great. Now one can proudly say "I write with P".

      Big deal. I've been writing with P for years on the 'snow' framework.

      m.m.

  2. Wayne's World by wtlssndlssfthlss · · Score: 5, Funny

    "I once thought I had Mono for an entire year, just turned out I was really bored..."

    --



    Karma: Terrible
  3. c is dead... by dieyack · · Score: 4, Funny

    long live c!

    1. Re:c is dead... by gstoddart · · Score: 5, Interesting

      Indeed. Since most damned operating systems are written in C I don't think we'll exactly see it go away anytime soon.


      Operating systems is where C comes from, and vice versa.


      (Yeah, whatever, I'm a C geek. To me, and array of pointers to functions returning pointers to arrays of characters seems like a damned fine idea! =)


      Back in my day, we jusy wrote straight to the registers on the device and we were glad! Damned punk kids.

      --
      Lost at C:>. Found at C.
    2. Re:c is dead... by Kaeru+the+Frog · · Score: 2, Insightful

      Is that 'C' or 'C-Bang'?

    3. Re:c is dead... by kpansky · · Score: 2, Funny

      Hmm. C!... would that be like CBA?

      --

      --Kevin
    4. Re:c is dead... by Erik+Hensema · · Score: 2, Insightful

      I have to agree. C is not suitable for general application development any more. 'back in the day' we were forced to use C because of performance reasons, but now computers have more than enough horsepower to run higher-level languages smoothly.

      You can already see this with web applications: almost nobody writes them in C. They use PHP or Perl. There languages are just far better suited for web development than C.

      It may well be that Mono/C# is becoming more suited for general application development than C. Or maybe Python. Or Perl.

      I think that in the not-so-distant future C will only be used at places where performance really counts, hidden deep away in libraries and the operating system.

      The advantage of replacing C with a higher level language: programmers will be able to concentrate more on the application they're writing and less on the low-level things like coding linked lists, hash tables, etc. This will improve the quality of the applications. Or make applications more complex with constant quality.

      An advantage of C#: developers will be able to distribute just one binary version of their application, it'll run on any platform. Not very important in the world of Open Source, but still a nice thing to have.

      --

      This is your sig. There are thousands more, but this one is yours.

    5. Re:c is dead... by Umrick · · Score: 2, Funny

      Good... I'm not the only person with an image of William Hung in mind going, "C bang! C bang! C move! C move!" /shudder

  4. .NET by Anonymous Coward · · Score: 5, Insightful

    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.

    1. Re:.NET by ivern76 · · Score: 4, Insightful

      I disagree. After a few months of working with C#, I have come to the conclusion that it's nothing but a bastardized clone of Java that had every little piece of sugar they could snarf from VB and C++ added to it, whether it made sense or not.

      For example, the braindamaged distinction between structs and classes as value and reference types respectively. What if you want to make both value and reference objects of the same class? Or treat the same object as value or reference as needed? The stupidity becomes even more apparent when you find out that the System.Array.Initialize() function will only initialize value arrays, not reference arrays (WTF? Is there ANY reason to even have the [,] array creation operator if you still have to construct the members one by one after creation?). I could go on and on about "features" that were clearly hacked on in five minutes to fit some deadline, with little thought or care.

      C# does have some nice things that, say, Java lacks. Operator overloading, automatic boxing and unboxing of primitive types, and properties come to mind. The first two, AFAIK, will be in Java soon, and properties are just syntactic sugar to replace observer methods. Honestly, I'm not impressed, and I don't intend to use C# ever again unless I absolutely have to.

    2. Re:.NET by Rascasse · · Score: 5, Interesting

      .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.

    3. Re:.NET by gathas · · Score: 2, Interesting

      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).

    4. Re:.NET by willdenniss · · Score: 4, Insightful

      here here.

      And, unlike .NET - Java is fully featured across all of it's supported OS's.

      Will.

    5. Re:.NET by jfengel · · Score: 3, Informative

      Autoboxing yes, but I don't believe that they have operator overloading in mind. I've heard Gosling say that it adds a lot of complexity to interpreting a program while adding relatively little expressive power.

      (A picture of Gosling standing in front of a slide explaining what's wrong with operator overloading).

      I'm definitely looking forward to autoboxing and the new printf-style methods. (Maybe variable-argument methods were what you had in mind?)

    6. Re:.NET by grennis · · Score: 4, Insightful
      What if you want to make both value and reference objects of the same class?

      Value/Reference is a class-based distinction. It has nothing to do with instance, and I can't say I've ever had a real world problem with this. Can you?

      Or treat the same object as value or reference as needed?

      Real world example?

      the System.Array.Initialize() function will only initialize value arrays, not reference arrays

      Of course. C++ is no different. Remember how in C++ you have to write "delete [] x" instead of "delete x"? Simply because you have to communicate to the compiler that it must call the destructor on each array member... but the constructor is much more difficult. What if the array element type has no default constructor?

      I could go on and on about "features"

      And I could equally as well refute your points.

      It is ignorant to simply dismiss .NET or C# because it is something you don't know and don't understand. Take the time to learn it... there are valid criticisms, but you haven't found them yet.

    7. Re:.NET by Trejkaz · · Score: 2, Insightful

      This is because Gosling is not a mathematician and has never needed to use complex numbers nor matrices in a computer program. Unfortunately then, whenever you do need to use either of these two in Java, you're going to be unhappy.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    8. Re:.NET by nemiak · · Score: 5, Informative

      " Microsoft didn't just dream this up overnight..."

      Like most/all of Microsoft's "innovations", .NET was *purchased*, not created, by Microsoft.

      Microsoft inherited what become .NET when they purchased Colusa Software on on March 12, 1996.
      At this time C/C++ and VB environments already existed for Colusa's "OmniVM" (which became the .NET CLR?).

      To clarify - I do alot of work with C# and find it to be the least unpleasant Microsoft development environment I have experienced.

      Score 5, Troll?

    9. Re:.NET by SensitiveMale · · Score: 4, Funny

      Actually what he should have typed

      "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... Sun had a lot of smart people working a long time creating this beast."

    10. Re:.NET by JeremyALogan · · Score: 2, Informative

      I think that, at this point, there will be two major complaints and I want to adress them both.

      1) it's just Java 2.0
      yeah, ok... it is. I have to admit that I like C# and it DOES have a "striking" similarity to java. ignoring all the other things that are done better, the thing I like the most (on Windows AND Linux... x86 style) is that I can run a .Net application and it runs in a reasonable amount of time. it seems to me like Java's JIT compiler IS just in time... just in time to be slow.

      2) layers of abstraction are bad.
      I don't care who says what, unless you're writing everything in binary your'e using SOME layer of abstraction. as long as the underlying libraries are written WELL and STABLE then abstraction leads to increades productivity and reliability.

    11. Re:.NET by Anonymous Coward · · Score: 5, Informative
      man, sometimes i don't even know why i look at the discussions of programing and scripting languages. I hardly ever know what people are talking about.

      C# This is essentially Microsoft's new version of the C programing language. Java Sun Microsystem's cross-platform programming language. VB Visual Basic. Microsoft's language for Rapid Application Development. C++ Popular extension to C which adds support for Object Oriented Programming. Struct A concept used to group variables together. You can refer to the whole group of variables using a single name. Class A struct on steroids. Not only does it group variables together, but it also groups functionality with the variables. Reference type A variable that points to the real data. You can have many reference variables that all point to the same data. Value type A variable that is the real data. Boxing The process of taking a reference type and converting it to a value type. Unboxing The process of taking a value type and converting it to a reference type. Operator overloading Redefining what an operator does. For example, if the equal sign in the following code assigns the value 2 to the varialbe a,

      a = 2;

      Operator overloading could redefine the equal sign to mean something else (such as compare if a equals 2).

      Property You can think of this as a wrapper around a variable. When the variable is accessed, you can do some automated processing before returning (or storing) the value. In code, you can treat a property just like a variable.
    12. Re:.NET by Bingo+Foo · · Score: 4, Funny

      No, .NET is full featured across all one supported OS.

      --
      taken! (by Davidleeroth) Thanks Bingo Foo!
    13. Re:.NET by atlasheavy · · Score: 3, Funny

      actually, .net is fully featured across all of its supported OS's as well. It's just that its supported operating systems are Win98, WinME, Win2k, WinXP, and Win2k3. And Longhorn.

      --

      iRooster, the Mac OS X a
    14. Re:.NET by augustz · · Score: 2, Interesting

      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#.

    15. Re:.NET by IllForgetMyNickSoonA · · Score: 4, Insightful

      Yeah, sure. Last time I checked, there was no operator overloading in Fortran either. Nevertheless, it is still the preferred language for mathematicians (among others).

      Operator overloading, while in some occasions quite handy, must be used with great care. Unfortunatelly, for quite a lot of programmers out there, it seems to be misused as a yet another way to obfuscate a program into oblivion! If you ever get to analyse the code written by a BOOZFH (Bastard Operator Overloading Zealot From Hell), you'll know what I'm talking about.

    16. Re:.NET by LarsWestergren · · Score: 2, Informative

      C# does have some nice things that, say, Java lacks. Operator overloading, automatic boxing and unboxing of primitive types, and properties come to mind.

      Operator overloading - no, and it probably won't ever be included for good reasons. It's neat to have that power, but makes your code harder to understand and less maintainable for everyone else.

      Autoboxing - yes, here in Java 1.5. You can already download a beta SDK.

      Java have a lot of libraries that .Net lacks too.

      --

      Being bitter is drinking poison and hoping someone else will die

    17. Re:.NET by ghamerly · · Score: 4, Informative

      I believe you have boxing & unboxing reversed. I didn't know the definitions before this, but the ones you gave didn't seem intuitive to me, so I searched google for "autoboxing", and found several definitions that are the reverse of yours.

    18. Re:.NET by ivern76 · · Score: 4, Insightful

      What if you want to make both value and reference objects of the same class?

      Value/Reference is a class-based distinction. It has nothing to do with instance, and I can't say I've ever had a real world problem with this. Can you?

      Or treat the same object as value or reference as needed?

      Real world example?


      Easy. Value types allow you to transparently create copies of data, essentially letting you deal with immutable objects without the added complexity of calling a clone() operation every time you need a new copy to work with. This has nothing to do with class characteristics, and everything to do with the particular code you're using.

      the System.Array.Initialize() function will only initialize value arrays, not reference arrays Of course. C++ is no different. Remember how in C++ you have to write "delete [] x" instead of "delete x"? Simply because you have to communicate to the compiler that it must call the destructor on each array member... but the constructor is much more difficult. What if the array element type has no default constructor?

      If it has no default constructor, then you make it an error for value types (duh) and a nop on reference types. Alternatively, you could make it an error on both. If there's no default constructor, you don't call Initialize(). Your comparison to C++ loses, because 1) we're not discussing C++, and 2) we're not discussing "telling" the compiler how to do a job, we're discussing how the compiler doesn't do said job no matter how you "tell" it to.

      I could go on and on about "features"

      And I could equally as well refute your points.

      That's great to hear. Start any time you want.

      It is ignorant to simply dismiss .NET or C# because it is something you don't know and don't understand. Take the time to learn it... there are valid criticisms, but you haven't found them yet.

      I wouldn't go as far as to call you ignorant, but I know for certain it's stupid to dismiss my claim without actually addressing it. If you scroll up and actually read my post and yours, you'll notice that you either didn't read my claims properly, didn't think the matter through properly, or didn't type your reply properly.

      Why do I claim this? Well, 1) you don't seem to understand how you can use value and reference types interchangeably in a real world situation, yet you go ahead and talk about it. 2) You try to address my issue with Initialize() by pulling a textbook Chewbacca defense with C++'s delete[] syntax. And 3) you tell me there's "valid criticisms", yet you fail to mention any. All you know is mine don't work, yet you also fail to adequately explain why.

      In the end, I have no option but to classify you as a troll until you prove otherwise. I suggest you start doing so by addressing my initial post with clearly thought out answers.

    19. Re:.NET by gglaze · · Score: 2, Insightful

      i think its a solid language.
      but its Microsoft's Language.
      they have never done anything to earn trust.
      atleast sun has.


      Some day i will try to comprehend how anyone can say this. Do you guys not realize that Sun has NOT allowed Java to be submitted to open standards bodies, and instead chooses to keep it proprietary - while microsoft has already submitted C# and fully published it as an open spec?? Since this is the most relevant example of "earning trust" I can think of for the sake of this discussion, I can't imagine what more you need.

    20. Re:.NET by nimblebrain · · Score: 2, Insightful

      For example, the braindamaged distinction between structs and classes as value and reference types respectively.

      I, for one, am glad they put this distinction in. The difference in treatment between the two can have some profound effects on the way allocation, array handling, and memory footprint operate.

      With an array of objects, you get an array of references (checked pointers) to the objects, requiring an allocation per object (the size of the allocation depending on the particular derivative) and indirection to access the pieces.

      With an array of value types, the size can be predetermined (in much the same way stack-based object variables were in C++) and the items therein laid out end to end, giving a single block allocation and no extra reference per item required.

      Some of these pieces are especially important because of the Managed Code model - you can't lay out a stretch of bytes and cast it directly back and forth to an object type. Having tricks like this that can let you keep your performance and still declare the code provably 'safe' is invaluable.

      I've been playing with C# and Delphi-for-.NET, and ported one of my frameworks across. It's been an interesting experience - I was expecting something insubstantial when I first heard about the initiative, but now that I know Anders H. was behind much of it, its low disagreeability factor is well-explained :)

      Operator overloading, automatic boxing and unboxing of primitive types, and properties come to mind. The first two, AFAIK, will be in Java soon,

      I attended a seminar on the Java 1.5 extensions being introduced, and they were: generics, autoboxing/unboxing, varargs (for lack of a better term :), improved and generic-aware for syntax and enumerations. Interestingly, generics made a strong case for a number of the other features, especially boxing (we were treated to "before-and-after" syntax possibilities for each feature). Looks interesting.

      and properties are just syntactic sugar to replace observer methods.

      You're thinking of delegates, and in a way they're syntactic sugar on observer methods, but besides cutting out a lot of need for anonymous or named action observer classes, they implement some of the Active Object pattern with BeginInvoke, which will asynchronously delegate something until EndInvoke is called. Very useful with remoting calls.

      Properties on the other hand are syntactic sugar. Goobery syntactic sugar over the myField()/setMyField() set. I do make a lot of use of them in Delphi, and all they do is basically tie the getter and setter together in an explicit way instead of relying on convention. The main beneficiary of this is the IDE/inspection tools, which can query reflection/RTTI to find out what to display and how to hook up a property update. JavaBeans was in part based on Borland's experience here (I was quite shocked looking at the docco for the JavaBeans and seeing things with names right out of DsgnIntf.pas :) - I believe they ended up relying on naming conventions for Java's purposes.

      --
      Binary geeks can count to 1,023 on their fingers :)
    21. Re:.NET by gbjbaanb · · Score: 2, Informative

      C#
      This is essentially Microsoft's new version of the C programing language.


      Not at all, C# is essentially Microsoft's new version of the Java programming language, and platform.

    22. Re:.NET by Cthefuture · · Score: 2, Insightful

      C# does have some nice things that, say, Java lacks.

      Add one more to your list:

      In C# it is insanely easy to use external C-based libraries because you just have to "import" the function and away you go. This is much easier than the convoluted Java JNI stuff.

      --
      The ratio of people to cake is too big
  5. *put up flame shield for Miguel* by Anonymous Coward · · Score: 2, Funny

    "C is dead!" + slashdot == pain

  6. Foot-in-Mouth Disease by adun · · Score: 5, Insightful

    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.

    1. Re:Foot-in-Mouth Disease by Otter · · Score: 2, Interesting
      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.

      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!"

    2. Re:Foot-in-Mouth Disease by milest · · Score: 5, Insightful

      The article talks about C dying for *user* applications explicitly:
      "A great deal of serious end-user application coding on Linux still goes on in C or C++"
      "Where does this place the future of the Linux desktop..."
      "The expectation for GNOME 3.0, however, is that a lot of the platform will use Mono, rather than the C implementation it has now"

      Probably no one writes kernels in C# and there is less and less reason to write user applications in portable assembly. Programming languages are tools, and we use different tools for different jobs. I prefer to use higher level languages where it is feasible because I'm more productive. I use C where I have to, because it has features that other tools don't.

    3. Re:Foot-in-Mouth Disease by shadowbearer · · Score: 2, Informative

      yeah, and the drivers. Let's not forget the drivers. Particularly the network drivers.

      Oh, and whole bunch of other code, too. Like kernel code.

      But no, C is dead. Long live C. Blah blah blah. /sarcasm

      Has Icaza lost his mind?

      SB

      --
      It's old. The more humans I meet, the more I like my cats. At least they are honest.
  7. C is not dead by Yaa+101 · · Score: 3, Insightful

    You need a solid underground when programming...

    MS and solid? hmm...

    1. Re:C is not dead by jjhlk · · Score: 2, Funny

      There is a solid microsoft underground. Just last week I downloaded Windows 2003 and Office 2003!

      (not really)

  8. WTF?!? by Anonymous Coward · · Score: 4, Funny

    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.

  9. Um, no. by ivern76 · · Score: 5, Informative

    This falls under the "I can't believe what I'm hearing" category...Mono is *not* ready as a plug in replacement for .NET, and it won't catch up before MS releases 1.2...for the foreseeable future, it's trailing behind the Windows implementation and is not likely to catch up.

    I see PyGTK as a much more reasonable (and WORKING) alternative to C programming for people who want to write Gnome apps. Or GTK--, for that matter. Mono currently has crappy System.Windows.Forms support (even with Gnome#), broken serialization support, the list goes on and on.

    1. Re:Um, no. by IAmTheDave · · Score: 5, Insightful

      Yeah, it's crappy. But heck, it's a move in the right direction. I know certain people (cough... slashdotters) are quite protective of the purity of writing unmanaged code.

      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.

      I really wish that Linux had a stable .NET equivelent (sp?) - cause then I could completely abandon Windows at home. But as long as I can code C# with such RAD success, Linux is going to have catching up to do.

      I applaud MONO. It's far from ready, but keep going. Keep working. Please - make MONO (or something else) as good as C#, .NET, and Windows Forms (and hell, ASP.NET) is. RAD is so important in the real world, that Linux would only benefit - incredibly - from a .NET like solution.

      --
      Excuse my speling.
      Making The Bar Project
    2. Re:Um, no. by miguel · · Score: 4, Informative

      System.Windows.Forms is not part of the Mono 1.0
      release as you well point out.

      But Gtk# 1.0 is part of the Mono 1.0 release, and
      unlike Windows.Forms it is very mature and stable.

      Love,
      Miguel

    3. Re:Um, no. by LINM · · Score: 2, Interesting

      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.

    4. Re:Um, no. by cerberusss · · Score: 5, Insightful
      I really wish that Linux had a stable .NET equivelent (sp?) - cause then I could completely abandon Windows at home.

      Why don't you use Java?

      --
      8 of 13 people found this answer helpful. Did you?
    5. Re:Um, no. by Brandybuck · · Score: 5, Funny

      .NET has trippled my productivity (on the Windows platform)

      Anything other than MFC would triple your productivity.

      --
      Don't blame me, I didn't vote for either of them!
    6. Re:Um, no. by IAmTheDave · · Score: 2, Insightful

      How true, how true :) Although, this is coming from a VB job. My position, as a senior software engineer, is one of having to produce massive amounts of working code in short periods of time. Yeah, it sucks. Yeah, it's against everything I hold dear about programming. But Yeah, it pays the bills readily. So we used to use VB for ActiveX mixed with ASP for web front ends where necessary (MS was mandated from above.)

      Now we've moved to .NET and I have seen massive productivity from myself and my staff - and most importantly, it's f'in nice to be back in a C type syntax. Nothing was worse than code sans-line-terminators!

      So yeah, JAVA would be ok but wasn't allowed (prior to my obtaining this position) and VB was already prolific in the enterprise so the move to .NET and C# was more than alright with me.

      --
      Excuse my speling.
      Making The Bar Project
    7. Re:Um, no. by bangular · · Score: 3, Insightful

      There isn't a demand for anything like that on linux though. Linux programmers tend to know a few different languages (a couple of high level perl/python like ones, C or C++, bash/tcsh/ksh/etc shell scripting, and sometimes Java) and use what ever one is appropiate for the job (I over generalized, I should say, that's what I do). You know pretty early on what language your program needs to be written in. The problem with just using C# is your still just using one language. You're not using the right tool all the time. It's the same reason I tend to disagree with Sun's attempt for Java to take over the world. You end up driving in a screw with a hammer.

    8. Re:Um, no. by Elektroschock · · Score: 2, Flamebait

      Well, QT is not properly supported and the desktop plattform is KDE, not Gnome 3.0. I don't use GTK#. Don't mislead. Windows.forms will be wine crap and therefore not be mature or stable.

      Wasn't it announced last year that we can expect mono 1.0 at the end of the year? so when will it be released?

      Ximian is known for its vapor-marketing. For me mono is just work in progress.

  10. MonoDevelop IDE by gmajor · · Score: 5, Interesting

    Doesn't the Monodevelop IDE look suspiciously like Eclipse?

    1. Re:MonoDevelop IDE by Why+Should+I · · Score: 2, Interesting

      no they are simply trying to make a C# ide in mono.

      plain and simple.

      there are none on linux, and so they started the project as a port from SharpDevelop.

      No ulterior motives, no copying, just a port that is developing into it's own project.

      disclaimer: I am a MonoDevelop developer

    2. Re:MonoDevelop IDE by k_head · · Score: 4, Insightful

      Why develop your own IDE? Why not write a plug in for eclipse?

      Bah, you probably wanted something written in C#. So much wasted effort.

      --
      The best way to support the US war effort is to continue buying American products.
  11. Linux contracts mono? by Black+Art · · Score: 5, Funny

    Are we supposed to clap?

    --
    "Trademarks are the heraldry of the new feudalism."
    1. Re:Linux contracts mono? by mesach · · Score: 4, Funny

      no no... its mono, not the clap

      --
      moo.
  12. Learning and applying. by Faust7 · · Score: 4, Insightful

    It would certainly benefit us to learn about these technologies and leverage them, rather than to unilaterally declare them evil, wrong, stupid, etc. and just bury our heads in the sand and pretend they dont exist.

    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.

  13. C lives by Anonymous Coward · · Score: 3, Insightful
    There will still be times for the necessity of optimizing for something for which the .NET JIT compiler will not be sufficient.

    Also, .NET is much like Java, and C hasn't died from the adoption of Java.

  14. Exploits by bored1 · · Score: 3, Funny

    Great, now users will be stuck fixing Windows and Linux exploits while using Mono

  15. C is dead? by EdMcMan · · Score: 2, Interesting

    C is inferior, yes. It's hardly dead though.

    1. Re:C is dead? by maraist · · Score: 5, Insightful

      C is inferior, yes. It's hardly dead though.

      I think C deserves a little more respect than a blanket comment like this.

      We still have assembly languages today for several reasons, even though it's been "dead" since the 80's. Driver writers, compiler writers, and high performance inner-loops of scientific apps NEED snippets of assembly.

      Thanks to the design goal of c (as the paint on the metal), you can now program in mixed c/assembly and thus never have to actually write anything in raw assembly files anymore. But you still write with the intention of generating specific sections of assembly.

      The people that write c are those that are resource conscious. I am not aware of ANY other language that is allows resource management as well as C. "performance" is just one resource, and I know many argue that JIT's counter-balance the performance advantages of optimized c. I still refuse to belive JIT's have ever approached -O3 performance, but am willing to concede that a well written VM app can perform acceptibly.

      ButMemory is another key resource management position that sometimes requires hard computer science to derive workable solutions.. When you abstract how resources are utilized (via a VM), then it negates the value of such hard computer science. Note that this ONLY applies to a particular problem space. Though, a non-trivial problem space to be sure.

      The point is thus that the classic paradigm of "the right tool for the job" is essential here. There are MANY problems that are best done with low level, very concise languages like c. Most OS components, VMs, or fast-duty-cycle applications should very well have core work done in c/assembly.

      The obvious other end of the stick is managing large amounts of code, for which assembly need not apply, and c is indeed becoming a distant memory as I think you are implying. Yes, web-services and many such fast-to-deploy applications transcend c, but don't be too quick to write-off the value in having a generation of computer scientists that are not well enough versed at writing low level applications.

      --
      -Michael
  16. Overnight by SuperKendall · · Score: 5, Insightful

    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...

    Yes, it took at a least a couple of days to copy all the Java libraries and ReCapitalizeMethods,

    Seriously though, .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).

    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
    1. Re:Overnight by Jonathan+the+Nerd · · Score: 2, Informative

      There will be a functional language in .Net, called F#. Slashdot had an article about it some time ago. But, like all .Net languages, it has to fit the .Net design, which was build around Java^H^H^H^HC#.

      --
      Disclaimer: The opinions expressed are not necessarily my own, as I've not yet had my medication today.
    2. Re:Overnight by miguel · · Score: 3, Informative

      You might want to look at Nemerle (www.nemerle.org)
      a nice functional language that runs on .NET and
      Mono.

    3. Re:Overnight by primus_sucks · · Score: 4, Interesting

      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.

      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.

    4. Re:Overnight by b17bmbr · · Score: 2, Interesting

      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.

      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 .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.

      --
      My problem? I was perfectly gruntled, until some numbnuts came by and dissed me.
    5. Re:Overnight by gabebear · · Score: 3, Interesting
      While I agree with you on every point, I don't see any of those as being very big problems.

      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.

    6. Re:Overnight by ajagci · · Score: 3, Interesting

      Seriously though, .Net is a nice language with some advancements over Java, but not different enough from Java to make its existence worthwhile.

      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 .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.

      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.

  17. You can't beat Microsoft.... by fatboy · · Score: 4, Insightful

    .....at their own game.

    You can't a better .NET than .NET

    Anyone remember "a better Windows" than Windows called OS/2?

    --
    --fatboy
  18. Renovate or Innovate? by capz+loc · · Score: 3, Interesting

    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.

  19. hey... by Tumbleweed · · Score: 2, Funny

    C is dead. Wow. Heyyy, isn't *BSD written in C? Hmmm...

  20. What Linux desktop? by Operating+Thetan · · Score: 3, Funny

    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
  21. What language is .NET written in ?? by konmaskisin · · Score: 5, Funny

    Languages written in C:

    perl
    python
    ruby ....

    1. Re:What language is .NET written in ?? by Why+Should+I · · Score: 2, Insightful

      If you had even bothered to read the article, or even found the actual original statement you would know it was taken out of context.

      Miguel even says in his very next statement words to the effect "c is dead, except for the JIT".

      In other words, as far as application development is concerned (the main target of the CIL) c is dead.

      Come on, lets not go on flaming without at least considering context.

    2. Re:What language is .NET written in ?? by tunabomber · · Score: 2, Interesting

      Interestingly, Mono's C# compiler is written in none other than C#.

      --

      pi = 3.141592653589793helpimtrappedinauniversefactory71 ...
    3. Re:What language is .NET written in ?? by Trejkaz · · Score: 2, Insightful

      So is much of the class library. Same goes for Java, they have a small-as-possible native layer somewhere further down and implement everything above it in the language itself.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
  22. If I wanted MS .Net, I'd run MS... by Spicerun · · Score: 5, Insightful

    As it is, I don't want to even attempt to emulate another 'grand MS idea'...especially since there are already superior non-MS systems out there that puts .net to shame. No, I'm not going to cite those systems...do your own research. You'd be surprised.

    Die Mono Die!

    1. Re:If I wanted MS .Net, I'd run MS... by bnenning · · Score: 2, Informative

      And I think a lot of people really would be interested in what these systems are.

      Cocoa and GNUstep are very nice.

      --
      How to solve most of our problems: 1.Lots of nuclear plants. 2.Cure aging.
  23. Platform Independence by WombatControl · · Score: 5, Informative

    I've been playing around with the Mono implementation of C#, and it's pretty good. It's not quite as good at RAD tasks as Python, but it has some advantages, and the syntax is much easier to play with than C or Java (but again, not quite as easy as Python, but I'm biased in that regard).

    However, Mono suffers from the fact that they're trying to play follow the leader by following Microsoft's implementation rather than creating a system of libraries from scratch. Microsoft has a history of pulling the old "embrace and extend" trick, and I fear something similar may happen here.

    My guess is that Microsoft will significantly alter the .NET APIs for Longhorn, leaving Mono behind with older legacy libraries that are no longer interoperable with the Microsoft compiler and the rest of the Windows-using world. Needless to say, that would be bad for the Mono team.

    Still, if Mono can remain independent, it could very well have a bright future. The Mono team has done a great job of implementing most of the 1.0 .NET API, and the mcs compiler is pretty fast. The GTK bindings are quite nice for such an early release.

    Still, the cognitive dissonance of compiling a Linux program and getting a file with an .exe extension is rather difficult...

    1. Re:Platform Independence by Planesdragon · · Score: 2, Insightful

      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.

      Uhm, why would MS do this? .NET is designed to be and sold as a "cross platform" solution--a real way to do Java's "write once, run anywhere" line.

      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 .NET and not Longhorn.

      Now, if you said "my guess is that MS will introduce custom APIs in Longhorn that make .NET work better", I'd agree with you. But that's not what you said.

    2. Re:Platform Independence by WombatControl · · Score: 5, Insightful
      Uhm, why would MS do this? .NET is designed to be and sold as a "cross platform" solution--a real way to do Java's "write once, run anywhere" line.

      For the same reason they did it with Java - if it's "write once, run anywhere", then why would you buy Windows licenses? Microsoft (quite naturally) wants everyone to run a Windows server and a Windows client, and having Linux be able to take either role with ease doesn't give them the leverage they need to continue their marketshare.

    3. Re:Platform Independence by Brandybuck · · Score: 5, Funny

      .NET is designed to be and sold as a "cross platform" solution

      Don't bogart that joint, my friend. It sounds like good shit!

      --
      Don't blame me, I didn't vote for either of them!
  24. Miguel is dead! by Nailer · · Score: 5, Funny

    - C.

    1. Re:Miguel is dead! by RebelWithoutAClue · · Score: 2, Funny

      What happened to "In Soviet Russia?"

      --
      "However beautiful the strategy, you should occasionally look at the results" - Winston Churchill
    2. Re:Miguel is dead! by Chuck+Chunder · · Score: 2, Funny

      In Soviet Russia, Soviet Russia happens to you!

      --
      Boffoonery - downloadable Comedy Benefit for Bletchley Park
    3. Re:Miguel is dead! by epiphani · · Score: 5, Funny

      Slightly offtopic, but a great quote about C...

      C is a language with the flexibility and speed of assembly combined with the ease of use of assembly.

      --
      .
    4. Re:Miguel is dead! by orthogonal · · Score: 3, Insightful

      C is a language with the flexibility and speed of assembly combined with the ease of use of assembly.

      Of course, that's tongue in cheek, and yes, C's concept of arrays is perhaps too tied to a specific kind of machine architecture (and to BCPL's concept of arrays),

      but

      while C is far more portable and easier to code in than assembly, one great feature of C is that, if you know a particular machine's assembly language, you can look at your C code and pretty easily guess what assembly instructions will be generated from it.

      I recall when I was first learning C++ -- and no, I'm not a C++-hating C bigot -- one thing that annoyed me was the realization that what seemed a straightforward C++ function call -- or even more straightforward, an operation like i + j, when performed on class instances, could be much much more involved.

      (Consider the example I just gave, i + j: in C++ this could easily be i.operator+( j ), which might involve an implicit converting function or constructor to make j into the right type for i's operator+, and operator plus could easily be a virtual function that did some work and then called a super-function to do the rest of the work, and it wouldn't be a good operator+ unless it returned by value, which would mean that there'd be a (probably implicit, in the code) call to the constructor for whatever class i was an instance of. And we haven't even mentioned Handle-Body Idiom or Template Method Pattern or Pimpl Idiom or exception handling yet.)

      I soon got over my annoyance when I realized that it was precisely this ability to concentrate this much -- and much of it mostly automatic, as with converting functions of constructor calls -- into the semantics of addition, i + j, that makes C++ such a powerful tool in the hands of the right programmer.

      The trade-off, of course, is not being able to see the assembly language instructions in your mind anymore. The good programmer chooses his tools and his trade-offs.

      So to bring this back onto the topic of the post, I highly doubt C is dead or even dying or even a bit ruffled around the edges -- there are still, and for the foreseeable future, there will be, very very good reasons to use C -- it's the portable lingua franca of programming, and it's a remarkably clear language that allows one to concisely describe what otherwise would require lots more asembly instructions.

    5. Re:Miguel is dead! by flewp · · Score: 2, Funny

      Wouldn't that make him a Mexicon?

      --
      WWJD.... for a Klondike bar?
    6. Re:Miguel is dead! by ron_ivi · · Score: 4, Interesting
      Parent wrote: "I'm not a C++-hating C bigot "

      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.

    7. Re:Miguel is dead! by Frymaster · · Score: 4, Interesting
      I can think of cases where C is the right tool for the job

      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?

    8. Re:Miguel is dead! by Anonymous Coward · · Score: 2, Insightful

      "Would it be more secure?"

      Not necessarily. It could just as easily be a gaping hole. It depends on the quality of the code.

      Would it be a bloated pig? Now that's another story. ;)

      Seriously... There is no magic bullet.

      No miracle language, no supa dupa development method, no virtual virtualization, is going to replace a competent coder. Get over it.

    9. Re:Miguel is dead! by kdart · · Score: 3, Insightful

      Yep, I read your link. I have a philosophical difference, however. If someone has to know all that esoterica to be a "real" programmer than it's the language that is broken. That language just begs for problems (and bugs).

      --

      --
      The early bird catches the worm. The worm that sleeps late lives to see another day.
    10. Re:Miguel is dead! by Anonymous Coward · · Score: 5, Insightful

      A man is a good programmer or he is not a good programmer. He is not "a good C++ programmer". Whether he has learnt some esoteric nuance of a language does not make him a good or bad programmer. A particular language is just an interface to the act of programming, like a GUI is an interface to the act of using, and if it does something surprising, the problem is likely with the language, not the developer.

    11. Re:Miguel is dead! by Jordy · · Score: 4, Insightful

      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.

      I'd like to point out that there is absolutely nothing wrong with writing "C with Classes." It makes a whole lot more sense than trying to fake it with structs and function pointers with only a minimal loss of efficiency. Certainly replacing all char pointers with strings would make up for the inefficiency with the huge amount of time saved debugging. Just because operator overloading, templates, references, etc. exist doesn't mean you have to use them. I mean, no one puts a gun to your head and forces you to use Swing in Java just because it is standard.

      Second, that question should have been rather simple to answer for anyone who was aware that the std::complex template has a copy constructor with an implicit conversion. Not everyone knows that simply because complex isn't exactly the most widely used thing in the world. If you are going to ask that quesiton, I'd recommend defining a template in the code to make it obvious.

      The language features in C++ can be abused, but a huge number of errors I see are from misusing APIs and none of the high level languages like Java are going to make sure you are paying attention to what you are doing.

      --
      The world is neither black nor white nor good nor evil, only many shades of CowboyNeal.
    12. Re:Miguel is dead! by Pete · · Score: 5, Insightful
      ron_ivi:
      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.

      Seriously dude, that is most definitely not a straightforward question. It's carefully designed to test your understanding of some of the subtle tricks and traps of C++. And one of the "tricks" it uses to mislead you has nothing to do with inheritance, rather with implicit casting.

      I must admit I got tripped up on it though, mainly because I'd forgotten the distinction between hiding and overriding. The question is nasty, ugly, and was intended to be as confusing and tricky as possible... and any programmer that writes code like that (especially something involving changing the default value of a parameter for an overriden method) ought to be shot.

      BTW, if you're asking questions out of GOTW as interview questions, I can only say that that's pretty nasty - except perhaps as a final round question for some of the really cocky smart-arse types :-). Or if you're looking for a seriously hard-core C++ expert, in which case you'd probably expect him/her to have read all of GOTW and Sutter's books and know all the answers off by heart anyway.

      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.

      There's certainly a depressing number of such people about - though nowadays they're mainly moving into Java, a language better suited to their limitati^Wcapabilities. And I say "Hooray!" to that :).

      Pete (who has for the last two months been maintaining/debugging/adding features to a 1998-era MSVC6 project, written by a guy who really had no idea about C++. Sigh.)
    13. Re:Miguel is dead! by pyrrho · · Score: 2, Insightful

      You know what? You don't have to even use pointers in C++.

      The idea that a C/C++ program is more likely to be buggy than a VM that is also a C/C++ program is a bit off. They are both C/C++ programs... hey! I know... do what the geniuses that work on JIT or VMs do!

      I have a theory that programmers should understand memory.

      I also have a theory that next programmers will complain about having to use end-paren and close-bracket... "we're only intested in begining the function parameter list... the computer should close it for us!

      --

      -pyrrho

    14. Re:Miguel is dead! by ron_ivi · · Score: 2, Insightful
      Parent wrote: "usage of c and it's derivatives (c++, objective-c) is more likely create buggy and insecure software."

      However note that you can write insecure code even with MSWord or Excel macros.

      (but yeah, I agree with you in general - high level applications shouldn't be worrying about the stuff you mentioned)

    15. Re:Miguel is dead! by kahei · · Score: 4, Insightful


      I know a dozen other people have probably already said this, but if you think that question measures whether someone is an effective C++ programmer then the problem is with you.

      It's a neat trick and the last bit (where default params are resolved based on static type while method calls are resolved based on dynamic type) fooled me. But it has nothing whatever to do with a software engineer's job, unless that job is writing C++ compilers.

      Put away your book of trick questions and hire a C++ programmer who understands patterns, algorithms, project management, requirements, and important standards and protocols.

      --
      Whence? Hence. Whither? Thither.
    16. Re:Miguel is dead! by RisingSon · · Score: 4, Insightful
      Interesting points.

      That link is a good puzzle but I don't know how well its going to help you find good developers in an interview. I remember I was about a year out of college when I discovered such details of C++. I was like, "WTF? I'mn not overloading that one...why am I here?". About 5 minutes and 1 small program resembling the one in your link I had my answer and moved on.

      So was it that one year of experience you would be seeking? Or would it be my problem solving skills that when my code doesn't work I'll find the answer quickly and consistently? When I interview, I try and discover one's problem solving abilities, not one's specific knowledge. It obviously all depends on what role you need filled.

      A C/Java world with no C++? Most of the software I've written in the past few years has been C++ with lots of C influence. Lots of functions, few objects. I probably have more structs in cvs than classes. Its really nice to have my function/struct style code and my message/class style code coexist freely.

      For example, I have a system I wrote that the backend database is all in shared memory. I played with classes in shmem and I put some templates there, too, with the Allocator. In the end, I chose structs because I was able to exploit their fixed size to make things quite speedy.

      But now I have a Phd physicist that needs to do some serious matlab-style maxtrix maninpulation of my struct-based data. And he can 'kind-of' code. It was nice wrapping up access with some matrix classes so it all looked more like matlab to him.

      I think there is still value in having all that in one language, even though it can make it an ugly one.

    17. Re:Miguel is dead! by Gr8Apes · · Score: 3, Interesting

      So that's where all those idiot^H^H^H^H^K inexperienced OO java programmers come from! I was wondering.

      FYI, a bad OO programmer in C++ is most likely going to be a bad OO programmer in Java as well, except the language will most likely prevent them from taking down the entire machine.

      Good OO programming is good OO programming, regardless of the language.

      --
      The cesspool just got a check and balance.
    18. Re:Miguel is dead! by Fedallah · · Score: 2, Funny

      Pete (who has for the last two months been maintaining/debugging/adding features to a 1998-era MSVC6 project, written by a guy who really had no idea about C++. Sigh.)

      Did anyone else other than me who was doing MSVC6 projects in 1998 suddenly get real worried that this guy was stuck working on your old code?

      Just in case: Sorry, Pete. I can only claim extreme ignorance and inexperience, and offer you all my sympathy.

    19. Re:Miguel is dead! by William+Tanksley · · Score: 2, Interesting

      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

    20. Re:Miguel is dead! by Random+Hacker · · Score: 2, Insightful

      I would prefer to hire a C++ who did *not* know the answers to those questions. Why? Because a good C++ programmer would never write the sort of ugly code where it would even be necessary to know the anwers to those "language lawyer" type questions.

    21. Re:Miguel is dead! by GenSolo · · Score: 2, Insightful

      But I think the main reason it is a higher level language is because java code can run on any machine.
      ANSI/ISO standard C++ code runs on any machine with a C++ compiler just like Java code runs on any machine with a JVM. Note that I'm assuming that you're using C++ for its C++ features and not for some of the ultra-low-level C features like embedded assembly language and what not.

      It is my opinion that jobs are simply human economic slavery (stop rolling your eyes ;) ).
      I am a conservative, but I also agree with you for the most part. Most people do a job that they hate because they have to pay the bills. I wish they could/would do a job that they like instead.

      Therefore, I don't know how you can honestly call for the vast majority of programmers to be fired. If the vast majority of programmers should be fired because they are "bad", then the same should apply to police officers, doctors, scientists, sanitation workers, and so forth.
      Well, I think if they're not good at their job, they should be fired. If you can't handle the job and aren't qualified, then you have no business doing the job. You may think this makes no sense, but I don't think people with no skill should be doing skilled jobs. It's not in the employer's best interest to employ people who suck at their job. I don't think you should develop languages so that bad programmers can make bad software. You should develop languages so that good programmers can make great software. I'd even be ok with allowing mediocre programmers to make good software, but I feel that a lot of the new languages are dumbing things down so that bad programmers can make bad-but-not-terrible software. Yes, C++ allows a bad programmer to make catastrophic software, but they have no business making software at all.

      You seem to create a totally efficient world where humans are operating at 100%. Unforutnately for you, it isn'g going to happen. You literally have to replace humans with robots for that to happen.
      I don't really want 100% efficiency. Sure, it'd be great because 100% efficiency would pretty much mean that humans can sit around and do as much or as little as they want, and everything would "magically" appear like in Star Trek. In our current system though, I just think you should get the best person for the job and develop tools to allow them to work better instead of developing tools to allow unqualified people to work somewhat less dangerously but in other ways more dangerously. (I assert that software should work perfectly, fail gracefully, or fail catastrophicly. Software written in "high level" hand-holding languages by bad programmers will often fail silently, continue running, and break important things due to logic errors. At least C++ will usually cause the problem to dump core due to a memory error before it smashes things up too bad.)

      I expect bad programmers in India just like in USA. In any case, jobs are being outsourced for financial reasons--not quality.
      Perhaps I wasn't clear enough. What I meant was that in my experienced it's bad programmers who get outsourced because you can get better-or-equal performance for a lot less money. Good programmers don't tend to get outsourced because they're cost effective. That is to say, I don't think bad programmers in the US deserve the same salary as good ones.

    22. Re:Miguel is dead! by GenSolo · · Score: 2, Insightful

      I don't know THAT much about languages but I don't think C++, even written to ANSI specs, would be machine compatible across platforms. Wouldn't things like 'little endian vs big endian' cause problems? I am assuming those problems don't exist in C# since it uses a VM (that's my impression). In any case, most people don't write ANSI standardized code.
      It's source-portable, not binary portable. Java and C# aren't machine portable anyway. They're bytecode portable and interpreted by the VM into machine code at runtime. That's why I said it's portable as long as you have a compiler, but non-standard C++ isn't C++. Non-standard Java isn't Java, and non-standard C# isn't C#. The standard defines the language.

      Only a minority of people are good (in the sense that they do the work, perform well at school, etc). Yet you cannot only have schools for these good people. You need schools for everyone.
      You can fail them until they learn the material, or you can make the school teach them how to do things in a way that they can learn.

      But that is never the intention. I am sure that the computer scientists who create new languages never have the intention of building a language for bad programmers.
      I'm sure that they don't, but if a language hinders good programmers while enhancing the performance of bad programmers, I think it's a bad language. That's all.

  25. C# vs. Java, and I like C# better by tx_kanuck · · Score: 2, Informative

    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.

    "yes, all of you .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).

    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.
    1. Re:C# vs. Java, and I like C# better by unoengborg · · Score: 2, Insightful

      My guess is that a PHB is more willing to switch applications as long as they still run in on windows, than to switch from windows to Linux.

      So the most interesting thing for free software is not if windows apps are written in C#. The interesting thing is to port free Linux apps to windows, and so to speek invade the windows domain with free software.

      That way windows users can get a first taste of what Linux can offer without leaving the confort of their familliar windows environment. It will also force propriatory software companies to compete against free software on the windows arena. Their chances of being succesful in that competition increases if they can offer cross platform solutions just like their free replacements.

      If windows users start to use these free apps instead of closed source ones from venders like Microsoft. It will be much easier to switch OS from windows to Linux.

      --
      God is REAL! Unless explicitly declared INTEGER
  26. Re:Isn't Miguel Icaza gay? by Anonymous Coward · · Score: 2, Funny
    Pascal is slated to make a big comeback and I am planning on riding that rollercoaster to paydirt.

    Pascal? Not a chance. Cobol and Fortran will rise from the ashes and take over the world!

  27. Dealing with MS patents .... by konmaskisin · · Score: 4, Insightful

    1) Rave about C#
    2) Convert everything to run on Mono C# .Net
    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.

    1. Re:Dealing with MS patents .... by Valar · · Score: 4, Informative

      How?

      MS has given everyone license to implement every part of C# and .NET except for the Microsoft namespace of the class library. They have given up their right to sue people who use .NET or make .NET compatible implementations. The evidence isn't on their side.

      Hint: ECMA.

    2. Re:Dealing with MS patents .... by foandd · · Score: 3, Informative
      They have given up their right to sue people who use .NET or make .NET compatible implementations

      Christ man, quit sniffing glue before you hurt yourself. RAND doesn't mean they give up the IP; it means they agree to license it to all parties who wish to license it, and that all parties will pay the same rate.

      I used to work for a company who got their heavily patented IP accepted as a standard. It has since become ubiquitous it its field. It was accepted as a standard under the same type of RAND terms which are being discussed here.

      The numbers have likely changed since then, but when I worked there if you wished to implement it, you had to pay a $25,000 up front fee and a $70 fee per shipping unit. If you implemented without paying those fees?

      Hint: their lawyers would be up your ass with a flamethrower before you had time to blink.

  28. What a choice... by eidechse · · Score: 3, Insightful

    I'm not sure I dig the idea that the future of app development comes down to a choice between MS and Sun.

  29. Parrot/Perl6 by Freedom+Bug · · Score: 5, Interesting

    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

    1. Re:Parrot/Perl6 by bcrowell · · Score: 3, Interesting
      Parrot has at least two big things going for it:
      1. It's fast. It was designed from the beginning to be fast. They're not leaving the optimization for later -- the early releases are already super fast. IIRC, some languages compiled into Parrot are already faster than their previous implementations.
      2. It's immune to the kind of MS mischief that .NET will undoubtedly have to struggle with.
    2. Re:Parrot/Perl6 by sICE · · Score: 2, Informative
      I'm not very familiar with Parrot

      If you want more informations about parrot and perl6, you might want to have a look at the mailling lists (parrot|perl), you can also access them via nntp at nntp.perl.org, or subscribe here. You'd perhaps perfer to browse the summaries of Piers Cawley.

      For more documentation, consider the parrot's wiki, Dan Sugalski's blog, or even browse the source.

      For the languages supported -- some are already functionnal, some not -- here's what i have in the last tarball i took: BASIC, Befunge-93, befunge, bf, cola, conversion, forth, imcc, jako, m4, miniperl, ook, parrot_compiler, perl6, plot, python, regex, ruby, scheme, tcl, urm.

      Who said parrot didn't had fun?
  30. Netcraft confirms: C is DYING by Joey+Patterson · · Score: 5, Funny

    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

  31. Exactly by SuperKendall · · Score: 5, Insightful

    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.

    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#". .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.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:Exactly by chgros · · Score: 3, Informative

      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.
      I heard F# was supposed to be based on OCaml.
      OCaml already comes with a nice set of libraries, not to mention parser tools (which I heard were missing from C#). It even has bindings for SDL!
      And I don't know why you call it "pseudo" functional.
      Although I agree on the fact that the syntax for .NET bindings would probably have to be weird.

  32. Miguel's fantasies by A+nonymous+Coward · · Score: 3, Troll

    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.

  33. Hell yea PyGTK! by 3cents · · Score: 3, Insightful

    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

  34. Give me a break by Anonymous Coward · · Score: 4, Interesting
    C is dead? What is he smoking. It's going to be around for a long long time. Will enterprise apps be developed with C, sure it will. Will C# get used for "enterprise apps". Well smallish non-transactional, horizontally scalable apps sure. .NET is still lacking when it comes to a proven, robust messaging server and transaction monitor. Don't say COM+, unless you've actually taken time to read the full disclosures hosted on http://www.tpc.org/. Stock COM+ transaction API is ok, if you want to handle update/commits in an async fashion. But don't expect it to be scalable in a massive or medium sized trading system. It will get better with Whidbey, Indigo and Longhorn, but there's still a ton of problems with Windows at the kernel level that keep it from scaling well for hardcore backend applications.

    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?

  35. Alternative mono names by bangular · · Score: 3, Funny

    After a long time searching I found these alternative names they considered.
    Foot gout
    Genital Herpes
    Oily discharge

  36. That is where you are mistaken by SuperKendall · · Score: 5, Insightful

    .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.

    Yes, .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.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:That is where you are mistaken by Rob+Riggs · · Score: 4, Informative
      .Net is a vehicle for C# and a distorted reflection of all other languages.

      A very good illustration of this is in the attempt to create a Python.NET implementation by the folks at ActiveState. The report on the lessons learned is rather enlightening.

      --
      the growth in cynicism and rebellion has not been without cause
    2. Re:That is where you are mistaken by de+Selby · · Score: 4, Interesting

      "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?

    3. Re:That is where you are mistaken by srn_test · · Score: 3, Interesting

      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.

      In the end, though, they come out with something about how "language neutral" .NET is.... They seem to be Windows pukes, though - they refer to .DLLs all the time, rather than the more general "shared libraries".

      There's certainly no way pretty much any Python code I've written (and I've written a lot) would run on .NET, given these limitations.

  37. Re:Not ready, and not catching up, eh? by miguel · · Score: 2, Interesting

    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.

  38. Important comparisons between .Net and Linux by Bodhammer · · Score: 4, Funny
    From Infectious Mononucleosis

    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."
  39. Why Mono Will Fail by cryptoluddite · · Score: 5, Insightful

    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...

    1. Re:Why Mono Will Fail by primus_sucks · · Score: 4, Informative

      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.

      SWT is a crossplatform UI toolkit that feels like a native app, unlike Swing. In Linux it's just a wrapper over GTK or Motif.

    2. Re:Why Mono Will Fail by Anonymous Coward · · Score: 2, Informative

      Evidently, you haven't visited SourceForge lately. Practically everything is written in Java. Also, what about JSP? Apache has gajillions of Java projects. Sure, maybe there aren't a bunch of RPMs of Java apps, but that's probably because Java doesn't fill a real need on the desktop (desktop? what desktop?) yet. On the command line, you don't want to wait for the JVM to run a few command line tools. On the desktop, everyone favors KDE or GTK for their GUI, although I imagine there are Java bindings for GTK somewhere. Then there are the licensing issues (Java rarely seems to be installed by default). As for gcj, it's interesting, but who really wants to compile their Java applications? It's already good enough as it is. And the classpath libraries still aren't quite there yet.

    3. Re:Why Mono Will Fail by Lord+of+the+Fries · · Score: 2, Interesting
      ...the slow and huge Swing (that Smalltalkers foisted on Java)...


      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.
    4. Re:Why Mono Will Fail by LarsWestergren · · Score: 4, Interesting

      There is almost no difference between C#/Mono/.NET and Java, but almost no Linux developers write in Java.

      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 .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.

      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 .Net clone, when they are done with that they can concentrate on the single remaining target.

      --

      Being bitter is drinking poison and hoping someone else will die

    5. Re:Why Mono Will Fail by Simon · · Score: 2, Interesting
      There is almost no difference between C#/Mono/.NET and Java, but almost no Linux developers write in Java.

      ...except for the thousands of people developing in-house, business and custom applications in Java and deploying on Linux servers. It is quite possible that the majority of Linux developers are actually developing in Java and as such don't necessarily count themselves in the Linux camp, and certainly don't show up in Linux distributions.

      Now, if you don't mind I've got to get back to work with Tomcat.

      --
      Simon

  40. This is the time... by Dr.+Sp0ng · · Score: 3, Insightful

    ... 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.

    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 .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.

  41. claim less, do more by bcrowell · · Score: 2, Insightful
    My perception of the GNOME world is that it's very chaotic, and a lot of people are talking big, but not accomplishing as much as they're claiming. Whenever I try to compile a significant GNOME app from source using the FreeBSD ports system, it pulls in a bazillion dependencies, and at least one of those dependencies is broken and doesn't compile. I'll wait a month or two and try again, and this time, the previously broken dependency is now fixed, but it fails beause of some other dependency. There are some of these, e.g., GNU solfege, that I've been trying to compile for a year or two, and I always fail because at least one of the dependencies is broken. Over all, it just seems like there there are too many big, complicated pieces of software in GNOME, and they're not stable enough: ORBit, pango, atk, etc., etc., etc.

    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.

  42. Me too. by LinuxGuyFriend · · Score: 2, Insightful

    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.

  43. Dealing with the Devil by unix+guy · · Score: 2, Informative

    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..."
  44. One thing you need to know about DeIcaza.. by Bowie+J.+Poag · · Score: 5, Interesting



    Hmm.

    The initiative it takes to back-engineer the .Net frame work, while admirable, is a wee bit misguided, i'd say. You have to understand what's really at play here.

    The whole idea of chasing after a proprietary standard like .Net (and treating the development process like some open source cat-and-mouse game) is pointless. It accomplishes nothing but an at-best "acceptable" knock-off.

    If Microsoft doesn't want the .Net framework available on other platforms, they're not going to make it available. Then on the other hand, if they find it's to their benefit to do so, they will make it available. It's as simple as that. Suppose you actually make it to the point where you have an equivalent framework to offer. Surprise, Microsoft releases .Net for Unix, and the entire effort is null and void. Your pride and joy is now a footnote, and a deprecated one at that. Realistically, how many people are going to feel sorry for someone who's stance reads, "Damn those fuckers in Redmond for making their framework available in Unix!" ?

    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. .Net needs not the taint of open-source muckery.

    --
    Bowie J. Poag

    1. Re:One thing you need to know about DeIcaza.. by Creedo · · Score: 2, Funny

      The whole idea of chasing after a proprietary standard like .Net...

      My old man used to tell me, before he left this sh*tty world, never chase standards or women. You'll get left behind every time.

      --
      All that is necessary for the triumph of good is that evil men do nothing.
    2. Re:One thing you need to know about DeIcaza.. by CoolHnd30 · · Score: 2, Informative
      Hey, you ought to try using Bowie's software before slamming his design ideas. I love the looks and simplicity of his pogo launcher.

      Bowie doesn't just blow smoke, he has real software and very firm opinions and convictions. If you don't agree with his opinions that is fine, but don't slam him for them, and make like he's someone who does nothing for the community.

  45. The peril that is .Net by SuperKendall · · Score: 3, Interesting

    You might want to look at Nemerle (www.nemerle.org)

    You have brought forth the perfect example of the danger of .Net for all other languages. Take a look at one of the first paragraphs describing Nemerle from a PDF I found on the site:


    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 .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.


    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 .Net as a "Stepping stone" to learn the other languages offered by the .Net platform?

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  46. Of course C is dead... by ShallowThroat · · Score: 2, Funny

    FORTRAN is mad sweet, yo

    --
    The "Insert Quote Here" line is almost as predictable as inserting an actual quote.
  47. Generics by SuperKendall · · Score: 3, Informative


    Uhm, why would MS do this? .NET is designed to be and sold as a "cross platform" solution--a real way to do Java's "write once, run anywhere" line.

    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 .NET and not Longhorn.


    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 .Net platform significantly and require new .Net installs - code built using Generics on the future .Net platform will not run on older versions of .Net. Now they get some nice features for that tradeoff, but it is just one of the changes .Net is introducing that will require updates in Mono. And Microsoft has indicated a lot of other API's will change in the future with Whidbly(sp?) as far as libraries go.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  48. C is dead by corian · · Score: 4, Funny

    Great! Now there's only 25 letters I have to teach my kids.

  49. Re:COMPLETELY different by mhesseltine · · Score: 3, Insightful
    Operating systems are NOT, I repeat, NOT in the same boat as operating systems. OS/2 was a "better" windows, but windows already had taken hold of the market. Mono is just allowing current linux developers to take advantage of a very powerful and capable language specification which, BTW, will also allow many people to stop needing to use windows.

    First, I would say that Operating systems are in the same boat as operating systems. Maybe this was supposed to say "Operating systems aren't in the same boat as programming languages"?

    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...

    I think the implication is that, if you trust Microsoft to set the standards, you'll spend all your time and effort playing catch-up to them when they change to a new standard.

    For an example of this, look at the Samba project. Yes it's been successful, but look at how difficult some of the advanced functionality was to get correct (Active Directory for starters)

    Mono will always be a second-class citizen in the .Net world, precisely because it isn't supported or backed by any truly large player that can hold some influence with Microsoft.

    --
    Overrated / Underrated : Moderation :: Anonymous Coward : Posting
  50. Enthusiasm by Brandybuck · · Score: 4, Funny

    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!
  51. New Slogan: Catch Mono! by Captain+Irreverence · · Score: 4, Insightful

    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

  52. C not dead, .NET/C# not interesting by Anonymous Coward · · Score: 4, Insightful

    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.

    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 .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.

    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 .NET's dev tools and IDE for Ruby, then I'll get excited.

  53. Mono? by RoadkillBunny · · Score: 4, Funny

    What does Mono stand for? I heard it stands for 'Microsoft, Oh No'

    --
    Cheers,
    RoadkillBunny
  54. Danger! by dmiller · · Score: 5, Insightful

    I respect Miguel, but I think he seriously underestimates the risk posed by MSFT's patents in this area. Quoth the article:

    Microsoft has granted a license to use this technology under so-called "reasonable and non-discriminatory" terms.

    "Reasonable and non-discriminatory" (RAND) does not imply "free". RAND was the proposed licensing requirement for W3C patents that was howled down by the community.

    Given that MSFT is willing to finance SCO to use arguably illegal tactics to destabilise and discredit free software, who would expect that they are above enforcing a small fee for every patent needed to implement Mono? They needn't do this immediately, in fact it is in their interest to wait until the technology is widely adopted, so they can slug everyone at the same time. Note that the usual legal defences against "submarine patents" won't work either if the terms have been disclosed to be RAND all along.

    1. Re:Danger! by hayden · · Score: 5, Informative
      "Reasonable and non-discriminatory" (RAND) does not imply "free".
      RAND licencing usually means reasonable and non-discriminatory" for business. What MS can (and probably will) do if Mono gets any traction is say, "We'll licence the right to use all these patents for 10 cents per install". Perfectly reasonable. Perfectly non-discriminatory. Kills any open source implementation dead.

      Game over.

      --
      Nerd: Derogatory term typically directed at anybody with a lower Slashdot ID than you.
  55. Why should we bother? by bonch · · Score: 4, Informative

    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.

    1. Re:Why should we bother? by JabberWokky · · Score: 3, Informative
      The .exe extracts a large .wmv file. Perhaps someone could mirror?

      Just use cabextract. It's bundled with most distros. Pretty common linux tool.

      --
      Evan

      --
      "$30 for the One True Ring. $10 each additional ring!" -- JRR "Bob" Tolkien
  56. Please MS punish us? by miffo.swe · · Score: 2, Insightful

    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
  57. Take a break by Chuck+Chunder · · Score: 2, Informative

    You seem all worked up over nothing. The article is specifically talking about desktop applications.

    --
    Boffoonery - downloadable Comedy Benefit for Bletchley Park
  58. Gmone needs to distance itself from Mono by oob · · Score: 4, Interesting

    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.

  59. Call me ignorant, but.. by Anonymous Coward · · Score: 2, Interesting

    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?

    -

  60. No language can replace C ... by Skapare · · Score: 2, Insightful

    No language can replace C until it can compile its own compiler written in itself.

    --
    now we need to go OSS in diesel cars
    1. Re:No language can replace C ... by bzImage8 · · Score: 2, Interesting

      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
    2. Re:No language can replace C ... by Alex_Ionescu · · Score: 4, Informative

      The first programming language(s) were coded in ASM, Assembly Language. Although ASM is a "language", it doesn't need to be translated and compiled like something like C. Each operation corresponds to opcodes, which are usually one or two bytes, that the CPU can directly read and interpret. Once powerful and stable C compilers (written usually in ASM) started to appear, new languages were usually directly written in C, but always containing some ASM.

      The main problem that confuses people (such as the argument that C# was written in C#) are the IDEs (the Integrated Developpement Environment), which is merely a graphical frontend to do your work. So yes, the VS NET 2003 UI was made in C#, but the compiler for C# was written in C and ASM.

      I hope this makes sense...it's 2:30AM...lol

      Best regards,
      Alex Ionescu
      Relsoft Technologies

    3. Re:No language can replace C ... by salimma · · Score: 2, Informative

      Not true; while Microsoft's first C# compiler was probably written in C++ and ASM (do they use plain C at Redmond?), Ximian's C# compiler was written from the beginning in C#.

      Remember they could simply use Microsoft's C# compiler to bootstrap it.

      --
      Michel
      Fedora Project Contribut
    4. Re:No language can replace C ... by Skapare · · Score: 2, Informative

      You can write your boostrap compiler in any language you want, even an interpreted one. All you need is something that can let you parse the source and produce the binary output. Once that is done, now proceed to write the real compiler in the same language you created that it will be compiling. Once you have that working, you no longer need the bootstrap compiler, at least on that platform. Getting your language working on new machines might then involve that bootstrap compiler again, presuming what it was written in is already on that machine (so choose something reasonably portable).

      One possibility for making a compiled language is to produce as compiled output something higher than assembly, such as C itself. This is how C++ got started so maybe C&& can get started the same way, too. That might be your bootstrap compiler or even your real compiler.

      So C is not really dead. It's just being trampled on.

      --
      now we need to go OSS in diesel cars
    5. Re:No language can replace C ... by Skapare · · Score: 2, Funny

      OneOfTheBigReasonsThatI DislikeJavaAndC PlusPlusOrAtLeastThe WayTheyAreCommonlyProgrammed IsTheStandardizationOf LotsOfNamesThatAre HardToReadBecause OfBeingAllJammedTogether. YesItCanBeReadButI FindItSlowsThingsDown AndIsMoreStressfulToDoSoI JustDoNotLikeItVeryMuchAtAll.

      --
      now we need to go OSS in diesel cars
  61. What a load of rubbish by Chuck+Chunder · · Score: 4, Insightful
    Surprise, Microsoft releases .Net for Unix, and the entire effort is null and void. Your pride and joy is now a footnote, and a deprecated one at that.
    Sun produces Java for a whole bunch of platforms. So does IBM.
    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 .NET implementation for Linux then mono will still be valuable. Licencing terms will obviously be one area they compete on. No doubt there will be others.
    --
    Boffoonery - downloadable Comedy Benefit for Bletchley Park
    1. Re:What a load of rubbish by gabebear · · Score: 2, Interesting
      Those languages are all pretty open standards that aren't changed often. With a more proprietary API like .NET or DirectX it generally does speak the death of the third-party one. A good example is the nv XFree86 driver vs the Nvidia driver.

      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).

  62. Re:VB 4 EVAR!!1! by Mohammed+Al-Sahaf · · Score: 2, Informative

    Actually, Mono includes a VB .NET compiler, so you might be right.

    --
    Former Iraqi Information Minister Mohammed Saeed al-Sahaf
  63. Re:C is dead by Crypto+Gnome · · Score: 2, Funny

    Of course C is dead, it has been for years.

    Anyone who wants can even go and look at the scrolls.

    --
    Visit CryptoGnome in his home.
  64. Trust me. by Inoshiro · · Score: 2, Informative

    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.
  65. Typical by SuperKendall · · Score: 2, Interesting

    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).

    I have studied .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...

    Linux is fine. It's sharing code from other UNIX systems - it's not like there are 100 different code bases for Bash. With .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?

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  66. "VS.net Best developement set " LOL by Anonymous Coward · · Score: 2, Informative

    No, Eclipse is !
    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 ...). 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...).

    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' .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 ;-)

  67. No it only swing one way ! by Anonymous Coward · · Score: 2, Informative

    Ever tried to ask a .net developper using VS.net to develop on mono ?

    "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 ... got a huge support at Apache Group, W3C, ... and is 100% Working on ALL the major OS !!!

    Want to be usefull to the open community, go and help FSF to bring us an opensourced implementation of Java at Classpath ;-)

  68. Youll never get at all the "undocumented features" by Burz · · Score: 2

    ...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.

  69. Quoted way out of context! by 1in10 · · Score: 4, Informative

    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!

    1. Re:Quoted way out of context! by Pecisk · · Score: 2, Informative

      I have to agree with parent. And actually read the article and don't see nothing that could cause more trobble than for example using Samba. And I think Novell and Ximian legals already are on reviewing Microsoft patents and how to deal with them. And Miguela's dreams about puting Mono under GNOME feet is known for almost 2 years. But I think it will end that GNOME just will have superior C, C++, Python, Perl AND Mono/C# bindings and everyone will benefit. And I you just know open source - by time it will sort out everything, what will work, that will stay, what won't, that will go away. It's simple as that. Many posts there as just trying to troll Ximian passion with Mono. Get a grip, read the article (!) and see that different opinions about programming is just our best side. I don't see any reasons for a rant.

      --
      user@ubuntubox:~$ stfu This server is going down for shutdown NOW!
  70. Welcome to irrelevance by Tom · · Score: 2, Interesting

    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
  71. Once you use Eclipse you'll understand by SuperKendall · · Score: 3, Informative

    Eclipse is way more useful hat Vs.net (which I have used).

    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 .Net for server side ASP development you have Weblogic Workshop which can help define things like flows between pages graphically.

    And those are all if you have to have IDE's - developing Java without an IDE is I think simpler than .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.

    In every regard, .Net is a platform furiously trying to re-write every useful Java tool - and almost succeeding. Can it keep up the pace though?

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  72. Out of Context by superyooser · · Score: 5, Informative
    The submitter quoted Miguel out of context. Miguel said:
    " To me C is dead." (emphasis mine)

    I take that to mean, "As far as the world of Mono/.Net goes, C is dead."

  73. Two answers - SWT, and VM too good. by SuperKendall · · Score: 2, Interesting

    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
  74. Or... by SuperKendall · · Score: 2, Interesting

    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
    1. Re:Or... by ClosedSource · · Score: 2, Insightful

      So why did he define an overloaded '+' for strings?

  75. ActiveState screwed up by ajagci · · Score: 2, Interesting

    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.

    1. Re:ActiveState screwed up by Rob+Riggs · · Score: 2, Insightful
      Performance is the least interesting characteristic of running a language like Python on the .NET CLR. The most damning problem in the ActiveState report is that the CLR cannot directly support a number of Python's language features. You will note that IronPython is not yet passing enough of Python's regression tests to work on many interesting language problems. Once it gets to that point, then I'll be interested.

      But, I think that if anyone can pull this off, Jim can. The concern I have is whether he can keep the language alive. Development on his Jython project seems to have ground to a halt since the release of Jython-2.2a1 last summer.

      --
      the growth in cynicism and rebellion has not been without cause
  76. OSS is already screwed by MSFT patents by 0x0d0a · · Score: 2, Insightful

    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.

  77. Why Java is Failing on Linux by jgardn · · Score: 2, Interesting

    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.
    1. Re:Why Java is Failing on Linux by curne · · Score: 2, Insightful

      Before you go ripping me about my opinions on Java, ask yourself: Can you program in Perl or Python?

      I code C, Ruby, Perl (when I have to), Java, on a daily basis and I still disagree with you. Before you go making uninformed statements, ask yourself: Have you actually any foundation to make claims about Java?

      --
      All interpreted languages are abstractions over Lisp
  78. Embedded OS? by Plammox · · Score: 2, Interesting

    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.

  79. Re:C "Dying", Scripting Languages, Cross Platform by Jellybob · · Score: 3, Informative

    Mono is also write once, run anywhere - the .NET platform is designed to be cross platform (even if Microsoft were hesitant to make use of that).

    I have written programs in C# on my desktop, compiled them with mcs (the c# compiler with mono), and then e-mailed it to a friend running Microsoft's .NET runtime on Windows, and it ran without any problems (obviously you have to make sure you don't use the Mono APIs if you're doing this).

    To push it to further extremes, that person could then upload the same compiled file to their PDA, and *still* be able to run it, so long as they have the runtime installed.

    How much more cross platform do you want?

  80. and of course by pyrrho · · Score: 3, Insightful

    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

    1. Re:and of course by Javagator · · Score: 2, Insightful

      I agree. C++ is a powerful and expressive language. Mature programmers will use that power to create clear, elegant, easy to understand programs. Immature programmers will use it to create programs that nobody can figure out.

  81. hey look by pyrrho · · Score: 4, Funny

    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

  82. What he actualy said: by Simon+Hibbs · · Score: 2, Informative


    "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

  83. Microsoft funded? by oniony · · Score: 2, Interesting

    I'm a suspicious kind of chap.

    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 .NET and a lot more mature. Why not create Linux apps on the Java language and platform?

    --

    Powered by onion juice.

  84. Would Sun back this effort ? by gangz · · Score: 2, Interesting

    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.

  85. No, from an EE student by r6144 · · Score: 2, Informative
    Almost every time I tried to program something useful with some high-level languages, I end up having to do some signal-processing or other computation-intensive stuff in them, and I regretted for not using C since it would really help if the program will finish in 30s instead of 2min. Actually, the languages I used are even the "fast" ones --- Ocaml(compiled to assembly), Scheme(Bigloo, compiled to C), Lisp(CMUCL, with good type tagging), Java... what if I had written the thing in some even slower languages such as Perl/Ruby, I would not want to think about it! Trust me, the feature in high-level languages such as Scheme are of some use in my programs, but writing in straight C isn't that painful either, and certainly endurable if that makes my program 2-4x faster.

    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.

  86. "C is dead" -- Miguel de Icaza ?? by DVega · · Score: 2, Funny

    Nope.

    "Miguel de Icaza is dead" -- C

    --
    MOD THE CHILD UP!
  87. Python and data types by Latent+Heat · · Score: 2, Insightful
    I am starting to get sold on Python as an alternative to Java, C#, VB, and whatever as a way of developing GUI apps. I see at as the best attempt at bringing a Lisp-like setup (functions assignable to variables, dynamic typing) and I suppose I can live with the warts (white-space delimited -- it makes it readable, but it stumbles when you switch editors with different ideas on tabs and spaces).

    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?

  88. BFD. by Wolfier · · Score: 2, Insightful
    Recall this article?

    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.

  89. In Contrast to DotGNU... by cgilbert · · Score: 2, Insightful

    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)

  90. Re:At least one place where C++ is KING by GenSolo · · Score: 2, Interesting

    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.
    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++ ;) to a higher level language in the future.
    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.