Slashdot Mirror


Miguel On GNOME, Bonobo, .NET and more

unixbob writes: "Microsofts developer site MSDN is running an interview with lead GNOME developer Miguel de Icaza entitled Using the ECMA Standards: An Interview with Miguel de Icaza ."

24 comments

  1. Do We Need This? by ScumBiker · · Score: 2, Informative

    Seriously, do we need to buy into M$'s crap and develop code to work with .net? I'm not seeing any good reasons to spend a bunch of time figuring out their framework, only to be subsumed by the evil empire. I think Miguel has done soon way cool stuff (see Gnome), I'm just confused by this need to write Mono. Doesn't it sound like he's trying to invent the Unix version of the Windows API?

    --
    --- Think of it as evolution in action ---
    1. Re:Do We Need This? by CounterZer0 · · Score: 1

      IF you could stop looking at things as 'being consumed by the evil empire' ANY time Microsoft is mentioned, and actually checked out the technical merits of what they have and are attempting to do, you'd realize (as Miguel does) that (everyonce in a while) Microsoft actually has GOOD ideas for things. Yes we may hate their business practices, and curse their software for being unstable, but who is playing catch up to who in desktop usability and business applications? By writing Mono, Linux INSTANTLY joins Windows on the .NET front, because apps can now be written for either. It's the promise of java and the 'Network Computer' / distributed app from back in the olden days. Only now, MS is behind it, so you can be sure it will go somewhere (whether the world wants it to or not ;).

    2. Re:Do We Need This? by ScumBiker · · Score: 1

      Bzzzzt. Java already is doing that. Been doing that. Will continue to do that. Why does everybody need to be tied into a proprietary system like .net? We've been developing in Java for years now. It's geting pretty mature. If you would take the time to actually learn what you're doing instead of being a M$ clone, you'd probably understand. Frankly, I think Miguel is just trying to make a living, can't fault anyone for that.

      --
      --- Think of it as evolution in action ---
    3. Re:Do We Need This? by jdub! · · Score: 1

      Java: Absolutely Proprietary.

      .NET CLR, C# etc.: ECMA Standards.

      Questions?

    4. Re:Do We Need This? by Anonymous Coward · · Score: 0

      We want an OPEN system, like .net, not a highly proprietary system like Java.

      Plus, .net's VM is at least an order of magnitude better designed than the JVM. Java bytecode is just the minimum required to make java code run, designed for ease of implementation of interpreters, not performance.

      As for C# vs Java, they're both rather rigid and low level compared to Smalltalk or python, but I don't see any particular reason to choose one over the other. At least .net will let you easily compile smalltalk and python and link it with C#. You can at least run python code in a JVM with Jython, but it puts restrictions of what kind of python you write, and it far less transparent.

      As for the standard libraries, neither are very impressive. Both sets of container classes are simply terrible compared to advanced designs like STL. Networking and IO are pretty straightforward, although it took Java until 1.4 to get it right. Hopefully MS will learn from Sun's stupidity here. Threading is identical. As for GUI controls, it is hard to imagine anything MS could do that would actually be worse than Swing; and it is simply impossible to imagine anything worse than AWT.

      Its been said a million times, but it bears repeating. If C# and Java (the languages) look anything other than identical to you, then you clearly don't know ANY high level languages.

    5. Re:Do We Need This? by Anonymous Coward · · Score: 0
      We want an OPEN system, like .net, not a highly proprietary system like Java.

      .NET is no more open than Java. C# has been submitted to a standards group, but almost none of the _required_ libraries.


      Both sets of container classes are simply terrible compared to advanced designs like STL.

      Java and C# don't have real templates. That was intentional. It sounds like C++ is the only high level language you know.


      If C# and Java (the languages) look anything other than identical to you, then you clearly don't know ANY high level languages.

      If you can't tell the difference between Java and C#, you don't know Java or C#.


      You clearly don't know anything about Java or .NET. You clearly feel inadequate about something. Is it your programming ability or your lack of a penis?

    6. Re:Do We Need This? by pthisis · · Score: 2

      Java and C# don't have real templates. That was intentional. It sounds like C++ is the only high level language you know.

      If you're talking asm vs. C vs. C++, you can call C++ a high level language. If you're talking C++ vs. Java, C#, Smalltalk, and Python (as was the context here) then it's disingenuous to the point of laughability.

      And the lack of parameterized types in Java is just ludicrous; if you have static type-checking, parameterized types are basically a must-have. Generic Java generates a lot of interest precisely because of this. Not to defend templates per se, but the concept is inseperable from a strong static typing system (see: Dylan, Haskell, ML)

      If you can't tell the difference between Java and C#, you don't know Java or C#.

      I think the implication wasn't that they aren't different in details, but rather that they aren't different in any interesting high-level PL sense. Not sure I agree with that, but I do agree that smalltalk or python or another dynamically typed language (not an untyped language) is often a far superior way to attack the problem spaces that .NET and Java seem to pursue. And if you really want static typing, the ML/OCaml approach is way ahead of the Java approach (and OCaml is blazingly fast and an open spec, unlike Java).

      The CLI is way better designed than the JVM's bytecodes, you have to at least give it that.

      Sumner

      --
      rage, rage against the dying of the light
    7. Re:Do We Need This? by Anonymous Coward · · Score: 0
      I have to consider C++ a high level language because it's possible (and not too hard) to keep everything pretty well abstracted. I would say that of the high level languages C++ is the lowest, but that doesn't make much sense :)


      parameterized types are basically a must-have.

      I've seen some huge Java projects with very clean designs, so "must-have" seems awfully strong.


      The CLI is way better designed than the JVM's bytecodes, you have to at least give it that.

      I might concede the point, but I'm still deciding.

    8. Re:Do We Need This? by pthisis · · Score: 4, Interesting

      I have to consider C++ a high level language because it's possible (and not too hard) to keep everything pretty well abstracted. I would say that of the high level languages C++ is the lowest, but that doesn't make much sense :)

      The point was that in this context referring to C++ as a high-level language is pretty iffy. To an EE designing a chip, i386 assembly is a high-level language. To an OS implementor, asm is a low-level language and C is a high-level language. To your typical application developer, C is a low level language and Python and VB are high-level languages. In the context of Smalltalk, Python, Java, C#, and C++--which is what we were talking about--C++ is unquestionably a low-level language.

      It's all relative to your point of reference.

      parameterized types are basically a must-have.

      I've seen some huge Java projects with very clean designs, so "must-have" seems awfully strong.

      Way to snip the context. I said something along the lines of "in a strongly statically typed language, parameterized types are basically a must-have". Java purports to be such a language, but any sizeable program using collections foists off a fair amount of manual dynamic type-checking on the programmer. All this without the RAD and code-density advantages of a true dynamically typed language.

      Seriously, this and the borked up I/O and threading capabilities are some of the worst parts of Java. That's not to say you can't write large projects in Java--_any_ language can be used to write large, successful projects with enough skill and effort. Java simply doesn't, in my opinion, approach either the dynamic (Smalltalk, Python) languages or the more mature static (OCaml, SML) languages as far as ease of implementation for large projects. It's libraries are it's strength and weakness; many of them are horribly designed, but they're bog-standard and they have an API (however poor) for basically everything. But Java still doesn't come anywhere near approaching especially Smalltalk in terms of installed base by application size and transaction counts, nor by total $$$ handled. And it doesn't approach even a goofy language like VB for worldwide LOCs or apps written. This despite a lot more marketing behind Java than Smalltalk ever had.

      It's hardly the worst language ever written, in fact the language (as opposed to the libraries and the JVM platform) is a decent one if they'd just add parameterized types. But there are much better ones out there that have open licensing and source.

      Personally, I'd recommend the following 4 language groups to any computer scientist wanting to learn several kinds of programming styles:

      1. C, as a basic procedural language and because most other languages are implemented in it.
      2. A strong statically typed functional language like OCaml, ML, or Haskell; OCaml wins based mostly on quality of implementation and availability, as well as offering an exposure to OO in a statically typed functional context.
      3. A highly dynamic language like Lisp, Scheme, Smalltalk, or Python; Python and Smalltalk are my tossup choices here because they also offer an exposure to true OO programming (not simple class-oriented programming a la C++ and Java)
      4. A weakly or non-typed language like typical Perl 4 or Tcl just to appreciate the alternatives. (Perl 4 wins because Perl knowledge is often handy)

      Those I'd recommend well before C++ or Java (which offer comprimises on categories 1-3), although those 2 would probably be next (simply because of increasing prevalence) along with a programming by contract language like Eiffel and a logic-based language like Prolog.

      Even if you wind up using VB on a daily basis, a good exposure to functional programming, static typing, etc will make you a better software engineer.

      For real-world problems I almost always find myself falling on a mix of C, Python, Smalltalk, and high-level script (awk, Bourne, sed, etc). But I wouldn't give up my fp experience for the world.

      Sumner

      --
      rage, rage against the dying of the light
  2. How many more times? by yelvington · · Score: 2, Informative

    How many more times is this going to be posted?

    1. Re:How many more times? by Anonymous Coward · · Score: 0

      and here too.

    2. Re:How many more times? by Anonymous Coward · · Score: 0

      heh, a triple-post on slashdot, plus it's been on kuro5hin.org as well. too many chefs eh?

  3. Oh well. by fm6 · · Score: 2

    To be absolutely fair, this is only the second time /. has linked the story. The first appearance on /. was when Dare Obasanjo "contributed" (sold?) the piece and it appeared as a story, not a link. It's also appeared here. Like all freelance writers, Obansanjo is trying to squeeze as many fees out of his work as he can. Before the web destroyed my compulsive interest in computer magazines, I used to see this all the time. Once I spotted a factual error and reported it to the writer. He acknowledge that I was right -- but he kept re-using the same uncorrected material!

  4. Interesting thing he said by kitts · · Score: 1

    And on top of things, I always loved various things about Java. I just did not love the Java combo that you were supposed to give or take.

    How do any Java developers here feel about this? Ultimately, I think the success of .NET is going to be on whether or not it can do what Java does better than how Java does it. I've always hated coding in Java, myself (clunkiness of the language, slowness of compilation and execution), but I've always avoided it just because I never have to produce platform-independent binaries and I can just stick with C. Given the choice between Java and .NET, what are people thinking these days?

    --
    -------------------------------------------------- ----
    charlton heston is more of a man than yo
  5. Java all the way! by Chris-S · · Score: 2, Informative
    Java already delivers what .NET promises, and is truly cross platform. Micrsoft's submission of C# to ECMA is just a PR move. Microsoft still owns the libraries, and that's where the real value is for business developers. Miguel might be happily hacking away at a .NET implemenation now, but MS can and will pull the rug out from under him eventually, and then all that programming talent and effort will have gone to waste. Microsoft will use Miguel and his colleagues to create an illusion of openness, and then discard them when they're no longer helpful to Microsoft's objectives.

    I don't have time here to recount all the reasons Java is a great choice for enterprise application developmnt. I can tell you that if you don't yet have a good grasp of object oriented programming and design, then you won't appreciate Java until you do. And if you haven't done large enterprise systems with other technologies before, then you won't appreciate the advantages offered by the Java platform. Let me give you a couple of high-level points to consider:

    • Java is (1) a language, (2) a set of standard libraries, and (3) a runtime environment (the Java Virtual Machine, or JVM). These elements combine to make a compelling choice for building an enterprise system. The language is well designed and comfortable to use, the libraries are rich, elegant, and powerful, and the JVM provides a true cross platform run time environment -- and cross platform compatibility is an esssential element of a well designed enterprise system.

    • Java has an extremely large, active, and talented user community. Most of the thought leaders in the OO world are using Java, and most of the better university CS programs are using Java in their core curricula (before anyone starts ranting that their wonderful school doesn't use Java, let me list a few that do: MIT, Carnegie Mellon, Berkeley, U. of Illinois at Urbana-Champagne, Georgia Tech, Texas. Basically, almost all of the top CS schools use Java). My point: Java has a lot of very talented mindshare. If you want to do elegant programming, the Java community is a great place to do it.

    1. Re:Java all the way! by forgottengentleman · · Score: 1

      That analysis is mistaken. Java is secure, which is good for "enterprise" computing. However, it is inadequate in other metrics.

      Java is non-portable. Only a couple weeks ago did Sun allow FreeBSD to use their runtime. They refused to do so (FreeBSD is in direct competition with Solaris) until Microsoft committed to porting the .NET runtime to FreeBSD.

      Mono is not interested in using Microsoft's proprietary libs. Interop is not their goal.

  6. This is OT by Eric+S+Raymond · · Score: 1

    If greed is the root of all sorts of injurious things and the causative factor in all evil, would that not mean that Bill Gates is the personification of evil?

    --
    Bypass Compulsory Web Registration -- http://bugmenot.com/
  7. Thanks for strengthening my argument. by Chris-S · · Score: 1
    That analysis is mistaken. Java is secure, which is good for "enterprise" computing. However, it is inadequate in other metrics.

    You make a good point about Java's security, which only strengthens my argument. What counterpoints can you offer to show that my analysis is mistaken? By what other metrics is Java inadequate for enterprise computing?


    Java is non-portable.

    Here's the short answer in the form of a simple syllogism: If a program runs on more than one platform, then it is portable. Java runs on more than one platform. Therefore, Java is portable.

    Of course, that's not a satisfactory answer for enterprise computing. The platforms in question must be significant to an enterprise. Sun supports Java on Solaris, Linux, and Windows. This is more than satisfactory for enterprise computing.

    I do agree that it would be nice for Java to be supported on FreeBSD, and I'd appreciate a link to your story about Sun refusing to allow FreeBSD to use their binary. As far as I know, anyone can implement a JVM. Being a for-profit company, Sun has to choose which platforms it supports directly, and I don't fault them for that. Personally, I'm very grateful for Sun's (and IBM's) Linux support, because it means that I don't have to run Windows at work.


    Mono is not interested in using Microsoft's proprietary libs. Interop is not their goal.

    Once again, you strengthen my argument. A lack of interoperability in .NET is yet another reason Java is the better choice for enterprise computing.

    1. Re:Thanks for strengthening my argument. by forgottengentleman · · Score: 1

      If you want to "win," sure. But I'll stay out of the MSFT vs. Java FUD contest, since neither pays me. :-)

      Anyway, one can make .NET crossplatform if you restrict yourself to a portable subset of the libraries. In fact, .NET may provide a way for a Swing-like crossplatform GUI system. Gnome may jump on this.

      We're talking about asymmetric advantages and disadvantages. Sure, Java has advantages, but those can't be extrapolated to prove that Java is an instant win. The battle hasn't begun.

    2. Re:Thanks for strengthening my argument. by forgottengentleman · · Score: 1

      By the way, I was saying that you were mistaken in saying MS will pull out the rug from under the Gnome guys.

      I couldn't care less about "enterprise computing" arguments, because those go nowhere. Everyone should learn to roll their eyes when someone has the Right Answer.

      I work often with Java, and scrape up barnacles with its more esoteric features. It ain't the One Answer, but if you find some solace in Java, more power to you. Handy tool. Don't let it blind you.

    3. Re:Thanks for strengthening my argument. by Algorithm+wrangler · · Score: 1

      Sun already has provided Swing, which makes cross platform GUI much easier than before. So there is no need to wait for Microsoft to do the same ;-)
      As far as I remember the no. 1 reason for MS bashing Java is the "least common denominator" argument. However it looks like MS will run into the same kind of problems that Sun solved three years ago.

      No - the war has not begun yet, but given the momentum that java has right now in the not very important area of enterprise computing, MS will be in for a hard time.

      --
      -._''_.-