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

6 of 24 comments (clear)

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

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