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

925 comments

  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 Anonymous Coward · · Score: 0

      Were you hoping that would get moderated up as "Funny"?

    8. Re:C is Dying? by Anonymous Coward · · Score: 0

      C is dying? It's another BayStar-Microsoft-SCO conspiracy!

    9. Re:C is Dying? by sydb · · Score: 1

      As in where you have to declare all your variables at the very beginning and can't declare them anywhere else.

      Shurely you mean Pascal?

      --
      Yours Sincerely, Michael.
    10. Re:C is Dying? by vivek7006 · · Score: 1

      C was last heard saying, " I have already given my best, and I have no regrets at all ".

    11. Re:C is Dying? by Anonymous Coward · · Score: 0

      too bad it's in a while(false) loop ;)

    12. Re:C is Dying? by /ASCII · · Score: 1

      Pascal forces you to declare your variables at the beginning of the function. C forces you to declare variables at the beginning of a block. So the original poster is correct.

      --
      Try out fish, the friendly interactive shell.
    13. Re:C is Dying? by CdBee · · Score: 1

      Surely if Linux takes over the desktop, it'll be C:\ that's dead, replaced by hda1...

      --
      I have been a user for about 10 years. This ends Feb 2014. The site's been ruined. I'm off. Dice, FU
    14. Re:C is Dying? by Anonymous Coward · · Score: 0

      As in where you have to declare all your variables at the very beginning and can't declare them anywhere else.

      What, your Engineering College is teaching you out of date C? I'd ask for my money back!

    15. Re:C is Dying? by eddeye · · Score: 1

      C is dead! Long live C++!

      --
      Democracy is two wolves and a sheep voting on lunch.
    16. Re:C is Dying? by Psiren · · Score: 1

      I remember looking at the features of D a couple of years ago and being quite impressed. Has anyone here made use of it? Is it ready for serious projects, or is it still a work in progress?

    17. Re:C is Dying? by quench · · Score: 0

      on my computer science college in germany about 10 years ago, I had to learn C on my own, all I got was lisp (scheme), modula-2 and assembler.

    18. Re:C is Dying? by smittyoneeach · · Score: 1

      It shows up on the comp.lang.c++.moderated list over in groups.google.com from time to time. No groundswell of support as yet.

      --
      Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
    19. Re:C is Dying? by Cthefuture · · Score: 1

      Depends on what version of C you mean.

      ISO C99 allows variables to be declared on the fly much like C++.

      --
      The ratio of people to cake is too big
    20. 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)

    21. Re:C is Dying? by inkedmn · · Score: 1

      I don't know why we're bothering with 'D' when it seems like all the kids are using 'E' like there's no tomorrow...

      --
      well, it's nothing one behind the ear wouldn't cure
    22. Re:C is Dying? by leifm · · Score: 1

      The article quote says "To me C is dead. Except for the JIT!". So I don't see that as a declaration of C beind dead, just him saying in his own development world C is dead.

      --

      "Windows Me offers tremendous reliability and stability improvements..." -- Paul Thurott
    23. 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.
    24. Re:C is Dying? by HungWeiLo · · Score: 1

      You'd be surprised. I'm not sure how long ago you were in school (or if you still am), but I've been hearing that schools have begun moving more and more to Java since it is more suitable for academic purposes. It's kind of a strange transition in my school, since the upper-level engineering classes require C and C++ in some of their embedded programming, yet the junior level classes have all but changed over to Java. In fact, we've had an ad out for 3 months now looking for an entry-level embedded software engineer, and most new graduates can only code Java proficiently ! (and we're based in a city with a Uni which has top-5 CS and engineering programs)

      --
      There are a huge number of yeast infections in this county. Probably because we're downriver from the bread factory.
    25. Re:C is Dying? by dehuit · · Score: 1

      The newest C standard (C99) lets you declare variables everywhere, so the original poster is incorrect.

    26. Re:C is Dying? by FuzzyBad-Mofo · · Score: 1

      What happens when "L" is retired? Will BCPL finally be dead then? :)

    27. 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)
    28. Re:C is Dying? by Jooly+Rodney · · Score: 2, Funny

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

      - Indiana Jones

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

    30. Re:C is Dying? by Anonymous Coward · · Score: 0

      Not True ParallaX has a Java Stamp. Like the Basic Stamp. This assumes your Real Time Appication means you have an RTC.

      Can Mono run in 16k of ram and 256 bytes on ram and give you direct access to hardware?

      Then I guess Linux will not be written in mono.

      C may not be the number 1 languge in the future, But "your kids and grand kid will use it."

    31. Re:C is Dying? by dangermouse · · Score: 1
      In fact, we've had an ad out for 3 months now looking for an entry-level embedded software engineer, and most new graduates can only code Java proficiently ! (and we're based in a city with a Uni which has top-5 CS and engineering programs)

      So hire one of the grads from these top-5 schools and give him or her a couple of weeks to brush up on C. If the schools are really that good, your hire will be able to do that. And it beats leaving the position unfilled for another three months, doesn't it?

    32. Re:C is Dying? by himself · · Score: 1

      >
      > "Not-Cs... I hate those guys."
      > - Indiana Jones
      >
      Wasn't that actually a scene from the original "Blues Brothers" movie?
      Cop: "It the ***** Not-C Party. They got a permit to march."
      Joliet Jake: "I *hate* Illinois Not-Cs."
      *SFX: brakes squeal; crowd noises; then splashes as Illinois Not-Cs leap from bridge...*

    33. Re:C is Dying? by Anonymous Coward · · Score: 0

      But are you geeky enough to write your code in the snow with P?

    34. Re:C is Dying? by JoelMeow · · Score: 1
      And I highly doubt they will make a Java compiler for PICs, Motorolla HC11 and HC12's and various other devices any time soon.

      Will embedded processors that run java directly do?
      http://www.systronix.com/jstamp/

    35. Re:C is Dying? by Ironsides · · Score: 1

      Actually, the CS department is moving over to Java. But the Engineering is still in C. Mostly, this is because all the tools that are written use C (and in some cases a little C++).

      --
      Fly me to the moon Let me sing among those stars Let me see what spring is like On jupiter and mars
    36. Re:C is Dying? by Anonymous Coward · · Score: 0

      P? what about PerL?

    37. Re:C is Dying? by aardvarkjoe · · Score: 1

      I attempted to learn it for a little while, and my impression was that the language is pretty good, but the compiler is rather poor. It doesn't help any that the compiler is not open source, and the linux binary required a different version of the c++ libraries than I had installed -- no way was I going to go to that much trouble. There are a couple open source D projects around, but they seem to be unfinished and stagnant.

      It's unfortunate, because I've been looking for a language that is similar to C, but a little higher level. Of C++, Objective C, and D, I thought that D was by far the best.

      --

      How can we continue to believe in a just universe and freedom to eat crackers if we have no ale?
    38. Re:C is Dying? by swiggidy · · Score: 1

      Since programmers seem to be the biggest group here on slashdot you'd think scope wouldn't be such a problem.

      >We are still learning C

      Ya, for programming PICs & such

      >Because of this ... unemployed

      Maybe if it's a CS degree, but what if it's an EE degree. They still teach fortran or something 'ancient' to MEs. I don't know why because it's outside my scope.

  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 Anonymous Coward · · Score: 0

      I'm just waiting for D to come out.

    5. Re:c is dead... by Jellybob · · Score: 1

      Of course he's not suggesting that an OS should be written with the Mono platform - all thats being said that *for applications* C is dead.

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

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

    8. Re:c is dead... by defwu · · Score: 1

      ... This will improve the quality of the applications. Or make applications more complex with constant quality.
      ACK! For your first point : that is a canard. Consistent quality for more complexity will not happen with any of these platforms, and in fact the quality has gotten consistently worse (like on an nlog(n) basis). Hiding complexity is only useful if you really appreciate the complexity that is being hidden.
      As for portable binaries...again, a canard. I highly doubt that most binaries will be truly portable, particularly to limited hardware type devices (just like the whole J2ME fiasco). That isn't to say that platforms like this aren't on the right track, but lets be serious about the real use of this. We are in the birthing stages of this, and we have a lot of kicking, screaming, and diaper changes before we get to a point where it starts being productive.

      --
      If at first you don't succeed, redefine 'success'
  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 bobjohnson · · Score: 0, Offtopic

      cmon, you Americans can't claim anyting without it being unilateral.

    2. Re:.NET by Anonymous Coward · · Score: 0, Redundant

      i think its a solid language.

      but its Microsoft's Language.

      they have never done anything to earn trust.

      atleast sun has.

      i strongly believe that technically the language is great, Microsoft will use it in every way to further its own agenda and flat out crush competition.

    3. Re:.NET by Anonymous Coward · · Score: 0

      You've covered C#, but how do you feel about .NET?

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

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

    6. Re:.NET by Anonymous Coward · · Score: 0

      WindowsNT was a pretty cool, well-designed operating system once upon a time too. Even if there are departments in MS that can design good stuff, the basic coporate ethos of the place will eventually mess up just about anything. Go with .NET, and you'll see it degrade with time. It's a sure thing.

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

    8. Re:.NET by Anonymous Coward · · Score: 0

      "they had a lot of smart people working a long time creating this beast."

      This would mean Bill wasn't collaborating on it, right?

    9. Re:.NET by ryen · · Score: 1

      > rather than to unilaterally declare them evil, wrong, stupid,
      Well in that case, why dont you first tell us why it is actually a pretty cool language ?

    10. Re:.NET by RealityThreek · · Score: 1

      C# -is- a decent language, and it'll have it's place. But Java had a headstart on Java, and by the time MS started their .NET stuff they were competing with a platform that was already being used in alot of companies. Java is -the- platform right now. If you think that C# and .NET is where the future is, maybe you need to get your head your of the sand. They aren't evil, wrong, or stupid. Just late.

      --
      :wq
    11. Re:.NET by Siniset · · Score: 1
      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.

      i must be hear for all the clever jokes and witty references.

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

    13. Re:.NET by Sp4c3+C4d3t · · Score: 1

      Sure, it might be good, but I do have one major problem with it... .exe file extensions! I don't want .exe's on my Linux box!

      --
      Happy New Year, it's 1984!
    14. 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?)

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

    16. 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!
    17. 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?

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

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

    20. 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.
    21. Re:.NET by jfengel · · Score: 1

      Yeah, I believe that. It seems to me that to properly handle matrix math you'd really want to build it right into the language anyway. Not just operator overloading, but really build it in, so that the optimizer can really bash the heck out of it.

      Wasn't JavaGrande working on that?

    22. Re:.NET by Anonymous Coward · · Score: 0

      haha, u r funny. MOD +5 -- he's saying that the wealthiest man in the world doesn't know anything!

    23. Re:.NET by HFXPro · · Score: 1

      It is true that Visual Studio can get in the way of your developement sometimes. However, I often find it helpful with many mudane tasks like making sure functions have the correct names etc. I have found many people who complain about C++ with its lack of memory management and how you shouldn't have to think about such things. Then I watch them and they are using XEmacs to write Java code! So now they are scratching their heads trying to figure out why something doesn't compile because they mistyped something in some file and have gotten over 100 errors. Doesn't make sense. But hey, you do know Visual Studio supports make files for C++ at least :-). It might for C# also.

      --
      Reserved Word.
    24. Re:.NET by ceeam · · Score: 1

      C# is cool and .NET is promising? Well - any language with compile-time bindings is not "cool" for me anymore. (Especially since it has no multiple inh.) As .NET - it is basically a mixture of Delphi and Java and if you used them you know that they both have fundamental, serious limitations. EG: it may be quite a PITA when you realise how different "simple" comboboxes and "DB-aware" comboboxes in Delphi are! (they happen to be on different TWinControl branches).
      As opposed - in SmallTalk OOP kind of languages (ObjC and the host of "scripting" languages - Python being the boldest) - if your object understands a "write" method for example you may use it roughly anywhere you need "output stream".
      As it stands - .NET will soon have the same "concepts pile up" as more mature environments have today (said Delphi and Java).
      Yes, method calls in ObjC may be 1.5-2x slower than in C++ but that's very little price to pay for much better flexibility (and simplicity). Come on - we have multi-GHz CPUs now!

    25. Re:.NET by Billly+Gates · · Score: 1

      I played around with C# but if what newsforge said about MS funding the SCO fud is true .....!

      Then I wont care how good it is. By buying some of your money is being funneled by Baystar to SCO in order to hurt our community.

      I admit MS Office, SQL Server, .Net is really cool and awesome software but ethical wise would you really want to buy them? WOuld you buy anything from SCO again no matter how good?

      That leaves me point

    26. Re:.NET by Bingo+Foo · · Score: 4, Funny

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

      --
      taken! (by Davidleeroth) Thanks Bingo Foo!
    27. 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
    28. Re:.NET by gandy909 · · Score: 1

      Has anyone that ever has had dealings with Microsoft NOT gotten screwed by them before it was all said and done?

      I keep thinking of things like Stacker, DrDOS, Netscape, and the SCO 'connection' among the many others. With MS having any sort of C# patents I really don't see HOW they won't eventually use it against the Mono folks at some point...like right about the time Mono would reach critical mass...

      --

      (Stolen sig) Remember: it's a "Microsoft virus", not an "email virus", a "Microsoft worm", not a "computer worm
    29. Re:.NET by Zork+the+Almighty · · Score: 1

      I hardly ever know what people are talking about.

      Most of those people don't know what they're talking about either, so I guess you're in good company.

      --

      In Soviet America the banks rob you!
    30. 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#.

    31. Re:.NET by Anonymous Coward · · Score: 0

      ...I can't say I've ever had a real world problem...

      Real world example

      and

      there are valid criticisms, but you haven't found them yet.

      There are valid ways to refute the OP's points, but you haven't found them yet.

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

    33. Re:.NET by IllForgetMyNickSoonA · · Score: 1
      Operator overloading could redefine the equal sign to mean something else (such as compare if a equals 2).


      Shudder... I would have loughed, if I hadn't actually *seen* a guy doing exactly that!
    34. Re:.NET by citog · · Score: 1

      I agree with you up to a point, C# is pretty late. But Microsoft were also pretty late catching on to web broswers and they managed to force the uptake of IE. Anti-trust and monopoly arguments aside, they are capable of putting the lnaguage about and competing with 'established' languages like Java.

      Perhaps IBM's discussions with Sun on making Java open source will be frutiful and we see Java being taken down a path where current deficienies are better addressed.

    35. Re:.NET by arkanes · · Score: 1

      In general I agree (and I don't normally use operator overloading), but when people abuse it, they do some amazing things. Take a look at Boost.Spirit, which abuses C++ operator overloading to implement a BNF-style grammar language directly in C++.

    36. Re:.NET by gabebear · · Score: 1
      I learned Java before C++ and operator overloading seems to me like such an ugly hack to me. 90% of the time there is no good use for overloading any of them. It's not readily apparent that you can't do 'int+YourObject' but you can do 'YourObject+int'.

      I vastly perfer Java's convention of using functions like toString() and compareTo().

    37. Re:.NET by Anonymous Coward · · Score: 0

      C# is more like MS's new version of Java.
      Aside from the fact that it uses some C-like syntax, it's pretty much a different beast from C.

      C is low level, C# is high level.
      C is (supposedly) fast, whereas C# runs on the .NET framework, which you wouldn't expect speed.
      C has no OOP features. C# is fully OOP.

      Granted, I'm don't even know the C# language enough to write a hello world program off my head, but still, it's not related to C as MS would like you to believe.

      (Posting A/C since my post is crap ;-p)

    38. Re:.NET by spongman · · Score: 1
      What if you want to make both value and reference objects of the same class?
      use the 'ref' keyword?
    39. 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

    40. Re:.NET by spongman · · Score: 1
      nice. you might add, for clarification, that reference types are instantiated on the heap and value types are (usually) instantiated on the stack. boxing is the operation that moves a value-typed object's data from the stack to the heap. unboxing moves it back.

      you can create a reference to a value-typed object either explicitly by passing its stack location as a 'ref' parameter, or implicitly by boxing.

      on the other hand, that might not end up being any clearer than what you had ;-)

    41. Re:.NET by AndiD · · Score: 1

      I have to stand behind you. I recently had to try .NET at work. Can somebody explain me what this garbage collection sould be good for. It only standy in your way when working with files for example. You always have to call Close() to get ride of the file handle. In C++ I just create the file object on the stack and the compiler closes the handle when it gets out of scope. I don't have to worry about it.

      C++ Native:
      {
      ifstream ("FileName.txt");
      Do something
      }

      C++.NET:
      {
      FileStream * pStream = 0;

      try
      {
      pStream = new FileStream ("tt");
      Do Something
      }
      catch (..)
      {
      }
      _finally
      {
      pStream->Close();
      }
      }

      Thank you garbage collection for multiplying the number of code that is needed to do something with a file.

    42. Re:.NET by Anonymous Coward · · Score: 0
      I could go on and on about "features"

      And I could equally as well refute your points.

      But you didn't.

      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 don't know if he's right or not - I'm not qualified to judge - but I do know that you acted like a jerk.

      If you can refute him, do so. Calling him "ignorant" carries no weight in an argument. It makes you look dumb, not him.

    43. Re:.NET by Anonymous Coward · · Score: 0

      Thanks. I was finally going to put my 2 years at the university to use but you beat me to it. Sigh back to the books, waiting for a day when I'll use this shit.

    44. Re:.NET by Anonymous Coward · · Score: 0

      would anybody in their right fucking mind support anything Microsoft has to do after Baystar admits they are funding the SCO fiasco!?!?!

      The only reason C# is open is to hurt Java, not to help Open Source.

      If you use C#, good luck with the patent lawsuits later.

      C# IMO is a better platform and more mature technology than Java. I however will never touch the shit if given a choice.

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

    46. Re:.NET by spongman · · Score: 1
      use the IDispose pattern: using (FileStream stream = new FileStream ("tt") {
      //do something
      }

      Yeah, it's sugar, but so is C++ (you're still getting an exception frame created, and the destructor called when its unwound).

    47. Re:.NET by ungerware · · Score: 1

      I would add to your definition of "class" the concepts of polymorphism and dynamic binding. A class doesn't merely add methods to a struct, but usually implies the ability to override those methods in subclasses, and refer to any number of subclass types with a reference typed to the superclass.

      In c++ lingo, a class ain't a class without a vptr.

      --

      -----
      Kvetch is Yiddish for "throw an exception" --Dr. Ron Cytron
    48. Re:.NET by Anonymous Coward · · Score: 0

      It seems to work well enough for making better Win32 apps. If that's what you're looking to do, C# is great. Windows Forms are so much nicer than MFC or using the Platform SDK in C/C++.

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

    50. Re:.NET by ivern76 · · Score: 1

      I made some clear, specific points that start to explain what's wrong about the new "features" in C#. My comment about "hacked in five minutes" defines the impression kludges like "struct is value, class is reference" give me.

      Feel free to follow up, but please try and address at least ONE of my arguments instead of wasting my time with another fanboy post.

    51. Re:.NET by ivern76 · · Score: 1

      While I hate .NET, I need to point out a couple things. First, you really should be catching the exception in standard C++ as well. Second, the reason you're having to explicitly call Close() is that you have no guarantee on when the object will get GC'd, and you'd like to release the resource as soon as possible. In STL code, you'd likely be calling a close() too as soon as you're done with the file, unless the variable's about to scope out. So, honestly, the difference in lines of code would be insignificant once you code the "standard" C++ version properly.

    52. Re:.NET by ajagci · · Score: 1

      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.

      Yes, I agree.

      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.

      You make it sound like Microsoft came up with some amazing new technology when they created C#, but they didn't. While C# is (in some sense) more advanced than, say, Java or C++, there is nothing significantly new in C#. All the languages in use in industry today represent decades-old technology.

      If you want to learn something, don't bother looking to either Sun or Microsoft, look to the computer science literature. If more people did that, software might be a lot better than it is.

    53. Re:.NET by pawsa · · Score: 1

      fortran 77 has no operator overloading. Fortran 90 - has.

    54. Re:.NET by ajagci · · Score: 1

      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.

      The "complexity" comes with overloading, which Java already has. Once you have added overloading to a language, you might as well add operator overloading.

      This is just one of the many stupid things Gosling keeps saying; people should just stop taking him seriously.

    55. Re:.NET by Anonymous Coward · · Score: 1, Informative

      Actually Gosling advocated for adding operator overloading to Java, in order to improve its ease of use in the domain of numerical computing. Unfortunately the URL for the document doesn't exist anymore since he's replaced his homepage with a blog.

      It used to be

      http://java.sun.com/people/jag/FP.html

      referenced here :

      http://math.nist.gov/javanumerics/reports/jgfnwg -0 1.html#overloading

    56. Re:.NET by ajagci · · Score: 1
      All the languages in use in industry today represent decades-old technology.

      Sorry, that should have read

      All the languages in common use in industry today represent decades-old technology.


      Of course, in niche applications, people are using more sophisticated technologies. But C#, Java, Eiffel, C++, VisualBasic, COBOL, Perl, Python, and all that are basically equivalent to languages from the early 1980's or before.
    57. Re:.NET by Anonymous Coward · · Score: 0

      How do you use the ref keyword to make a value object of a class (which is reference by default)?

    58. Re:.NET by Anonymous Coward · · Score: 0

      He would not necessarily want to catch the exception in that function.

      And, most likely (if the program has any kind of structure), it will go out of scope after closing. You can't do anything with it after closing it anyway, so unless your function is doing two completely different things, close will be located near the end of the scope. And if the function really does two completely different things, maybe it should be two functions instead.

    59. Re:.NET by LarsWestergren · · Score: 1

      The "complexity" comes with overloading, which Java already has. Once you have added overloading to a language, you might as well add operator overloading.

      Perhaps it's only because I'm not experienced with C++ programming, but I find method overloading easier than operator overloading. With the method overloading, you have the class which the method belongs to, so it is fairly easy to check what it does.
      XMLUtil.print(xmlDocument, file);
      XMLUtil.print(xmlDocument, ioStream);
      XMLUtil.print(xmlDocument);
      I gave them very explanatory names, but even with something more cryptic, non static like
      x.print(d);
      I know that the behaviour of print MUST be defined in the class x and nowhere else.
      Other classes can have print methods, such as
      System.out.print("Hello");
      but I always see the classname first, so there is no risk of confusion between the methods.

      On the other hand, with operator overloading, whenever you join a new project you must keep in mind that it is possible that an operator has been overloaded to do something surprising. For instance, in example.h I see someone using
      time1 += time2
      If I understand operator overloading as it is done in C++, I have to scroll up to the definitions part of example.h to see if there is a
      void operator+=(Time &t);
      somewhere, and may even have to go to different source files in the project to discover IF an operator has been overloaded to do something cute and unexpected, and what.

      --

      Being bitter is drinking poison and hoping someone else will die

    60. Re:.NET by stephanruby · · Score: 1

      I guess you didn't get the memo. DotNET died six months ago.

    61. Re:.NET by iamacat · · Score: 1
      You could say the same thing about a great lot of things:

      • global variables
      • goto statements
      • multithreading
      • C preprocessor
      • XML
      • parser generators like yacc


      And yet any huge programming project is likely to need all of these things to remain readable. Operator overloading is not that difficult to use correctly, really. + means append 2 entities together. a[n] means a is some kind of map and n is the key. > are for I/O if not used for algebraic entities. ++ and -- are for iterators.

      The biggest problem with C++ is that it doesn't allow you to define your own infix operators and specify their precedence and associativity, for the cases where none of the built-in ones really make sense.
    62. Re:.NET by Richard+W.M.+Jones · · Score: 0, Flamebait

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

      Go away and learn a REAL language, like Lisp or ML, then come back and tell me that statement isn't one of the stupidest things said round here for a long time.

      Rich.

    63. Re:.NET by arivanov · · Score: 1
      Microsoft didn't just dream this up overnight...

      No they did not. They dreamed it as a responce to Java. As a result it suffers from the main java failing just reversed in an IntelCentric fashion. Java was, is and will remain suboptimal on any Intel system because it is internally and by design big-endian. As a result nearly every operation and nearly every passing of data to an OS call will incur a penalty for endianness conversion. Basically Sun has introduced an advantage for its hardware into the language from day one and has no intention of making it go.

      Similarly C# is internally by design little endian. It is intel centric and if ported to any non-intel platform it will always carry a performance penalty. Microsoft is well aware that its OSes are not the most favoured option (not to say that besides Xbox2 they are inexistent) on big endian platforms. So it did the same thing Sun did - provided itself with an advantage for the platforms which their OS runs on. Actually it is considerably more pronounced then in Java (MSFT did not even bother to hide its intention).

      To summarize - Miguel may be right for Intel (time will tell). On non-intel C# is dead. Stillborn to be most exact.

      --
      Baker's Law: Misery no longer loves company. Nowadays it insists on it
      http://www.sigsegv.cx/
    64. Re:.NET by Anonymous Coward · · Score: 0

      Microsoft didn't just dream this up overnight... they had a lot of smart people working a long time creating this beast.

      Yeah, the guys at Sun (Microsoft Research and Development) Inc. were working on it for over a decade!

    65. Re:.NET by rowanxmas · · Score: 1

      I would really suggest that you go and check out the COLT libraries from CERN: > CERN Colt project

    66. Re:.NET by Anonymous Coward · · Score: 0

      Struct
      A concept used to group variables together. You can refer to the whole group of variables using a single name.


      Sounds more like a Union to me..

    67. Re:.NET by IllForgetMyNickSoonA · · Score: 1

      Ooops - I stand corrected. I forgot about F90 (blush).

      However, this doesn't change much. Fortran users care much more about parallelizing irregular applications, advanced data distribution strategies and compatibility with old software than operator overloading. Operator overloading is a syntactic sugar.

    68. Re:.NET by ajagci · · Score: 1

      With the method overloading, you have the class which the method belongs to, so it is fairly easy to check what it does.

      The same is true for operator overloading. "x + y" means nothing other than "x.__plus__(y)".

      I gave them very explanatory names, but even with something more cryptic, non static like
      x.print(d);
      I know that the behaviour of print MUST be defined in the class x and nowhere else.


      "x" isn't a class, it's a variable that holds an instance of a class. You need to know both the class of the instance of x and the type of the argument d to determine which piece of code will get invoked. The same would be true if you used operator syntax like, say, "x On the other hand, with operator overloading, whenever you join a new project you must keep in mind that it is possible that an operator has been overloaded to do something surprising.

      That is always the case with overloading or method dispatch; "x.print()" may reboot your computer instead of the expected operation.

      Other classes can have print methods, such as
      System.out.print("Hello");
      but I always see the classname first, so there is no risk of confusion between the methods.


      You are only seeing a class name first because "out" happens to be a static variable in class System. In fact, "System.out.print" doesn't even invoke a method on an instance of class System, it invokes a method defined in the class of the instance that the variable System.out happens to hold. You can't even tell at compile time what class that instance belongs to (but it's a sure bet that it isn't an instance of class "System").

    69. Re:.NET by IllForgetMyNickSoonA · · Score: 1
      The biggest problem with C++ is that it doesn't allow you to define your own infix operators and specify their precedence and associativity, for the cases where none of the built-in ones really make sense.
      Exactly. And that's where the fun (missuse) starts. Taking "*" in one class for dot product and in another for cross product (within the same programm, written by the same author) is only the beginning. :-)
    70. Re:.NET by gglaze · · Score: 1

      there are valid criticisms, but you haven't found them yet.

      very well put - speaking as someone with a decent amount of .net experience, i couldn't agree more with this statement. the grandparent poster has clearly not put in the time to understand the true problems with c# that are encountered every day in real-world situations. i'm not sure if the parent poster has encountered these, but he clearly recognizes that they exist, and that the grandparent poster is focusing on hypothetical situations that are not typical of the real-world every-day situations that are encountered in .net development.

      grandparent - if you'd like to build up your library of flame/trolling material, have a look at the following:

      * typed exception handling (i.e. "throws" keyword - or lack of it)
      * boxing (and the faults it introduces)
      * remoting
      * packages vs. assemblies, internal vs. friend
      * etc...

      however, before you get too hyped up on your newly constructed library of flames, you should also look into some of the improvements coming in future versions of .net, such as indigo, avalon, etc., to make sure your complaints are not already being addressed.

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

    72. Re:.NET by Froggert · · Score: 0

      Uhhh... not so fast there. Take a look at the implementations of Java on mobile devices. See anything missing? Hint: they only added floating point support in v1.1. Every vendor has a different implementation of the standard, and different interfaces/extensions for their own hardware.

      --
      What, me worry?
    73. Re:.NET by GuyWithLag · · Score: 1
      Operator overloading ... makes your code harder to understand and less maintainable for everyone else.
      The problem is that lots of people don't understand that in C++ you actually extend the language to handle your problem domain better. This is the reason why you will almost always need more time reading the code of a C++ library than f.e. one written in Java. However, writing such language extensions the right way is hard, and these features of the language are supposed to make programming easier, right?
    74. Re:.NET by Everlasting+God · · Score: 1

      Sure you can. You can't just have an operator+() method with an int left-hand-side declared in the Object class definition, that's not how operators work. You can, however, have a global operator with an int LHS and a YourObject RHS, possibly declared friend to YourObject if you need access to its internals. Pretty much the only use for friend I've ever come across...

    75. 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 :)
    76. 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.

    77. Re:.NET by nimblebrain · · Score: 1

      Garbage collection really does a number on disposal behavior; it's been driving me a little crazy as well.

      There are, for performance/control reasons, four possible paths for getting rid of an object:

      • Just the memory gets reclaimed - by far the most efficient, but you either have to not have or not care about any resources your object may be holding onto.
      • Same as above, but you call something to let go of the resources manually, and usually wrap it in a finally (as in your example)
      • Implement IDispose - in many .NET languages, this is accomplished by making a virtual Dispose method. This way is mostly a convention; it gives you and others something standard to call. Wrap up your calls and call Dispose, or use the syntactic sugar someone here posted.
      • Implement a finalizer - the least efficient of all. In C#.NET and Managed C++ (IIRC), this is done by adding a virtual destructor. (In other languages, you make a protected Finalize method) The garbage collector watches finalizable objects closely (hence the reduced efficiency), running the finalizer (destructor) as soon as the object becomes unreachable.

      So, in your example, if you wanted to make it easier to deal with files and were willing to take the hit on the finalizer, you could do:

      class FileStreamEx : public FileStream
      {
      public:
      virtual ~FileStreamEx();
      }

      FileStreamEx::~FileStreamEx ()
      {
      Close();
      }

      ...and use FileStreamEx instead.

      Might want to check, too, to make sure there isn't already something like that in the framework :)

      --
      Binary geeks can count to 1,023 on their fingers :)
    78. Re:.NET by sosume · · Score: 1

      Not exactly.

      I'd say C# is medium-level, opposed to low-level C.

      You can use pointers, allocate stack space, and even pin reference types in memory so you can manipulate its bits.

      And execution speed is pretty decent; IL compilers are expected to beat conventional compilers in runtime speed within a few years.

    79. Re:.NET by Anonymous Coward · · Score: 0

      Every language is real and there to solve a problem. You need to pick the right one for the job.

      Pull yer head from yer arse asshatboy. Nobody likes a stupid retarded academic who has never any chance of a real job. Go back to yer school books because you cant handle it out in the REAL world.

    80. Re:.NET by PainKilleR-CE · · Score: 1

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

      Which explains why they have J# for Java developers and recommend C# to C/C++ developers (in the cases in which they don't want to use managed C++).

      Oh, and C# isn't a platform, that would be the .Net framework itself.

      --
      -PainKilleR-[CE]
    81. Re:.NET by Flyboy+Connor · · Score: 1

      That clarifies things. Boxing and unboxing were the only terms from the original post I hadn't heard before. Of course, I immediately guessed what they referred to. Now, in my days (*cough* *cough*) we called this "referencing" and "dereferencing". Quite a bit clearer, but, of course, not sounding as cool as "boxing".

    82. 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
    83. Re:.NET by Anonymous Coward · · Score: 0

      C# is Visual J++ is JAVA you fart head.

    84. Re:.NET by Elektroschock · · Score: 1

      "Of particular note was an installation in Munich, Germany, supporting 350 servers and 150,000 users."

      Sorry, Miguel, they will install SuSe but nobody uses Gnome on the Desktop...

    85. Re:.NET by Anonymous Coward · · Score: 0

      Could they have given us the C# syntax widthout the virtual machine bloat ?

    86. Re:.NET by Anonymous Coward · · Score: 0

      In C++ the only difference between a struct and a class is that members are public by default.

    87. Re:.NET by Anonymous Coward · · Score: 0

      typed exception handling (throws keyword) was actually something that went into a lot of research. They found that a good chunk of coders would just catch and rethrow, because many times you really have no clue what's going on and you can't 'fix' the exception.

      After surveying a whole lot of java code out there they found that a large percentage of the code just has try { } catch(Exception e) { rethrow to higher level exception handler}.

      Read up the Microsoft Architechture books/website (books are free online) on Exception handling design patterns. There is a good reason why there is no 'throws' keyword.

    88. Re:.NET by Anonymous Coward · · Score: 0

      The beauty of .NET is that even the underlying libraries don't have to be stable - it has constructs for versioning that blow the Java world away.

    89. Re:.NET by Anonymous Coward · · Score: 0

      C# is not anything like C. The only thing they share in common is the semantic style. Anyone who would consider using them for the same project is either drunk, totally ignorant of both, or new to programming. They could not be more different.

      Assembly is closer to C than C is to C#.

    90. Re:.NET by Anonymous Coward · · Score: 0

      How is it medium level? How many languages are higher level than C#?

      And pointers are used in every language. C has naked pointers. High level languages either tend to use invisible pointers or "references" (no referencing or dereferencing required). Which is what C# uses.

    91. Re:.NET by Anonymous Coward · · Score: 0

      The main difference is that a struct will be created and maintained on the stack (a value). The class references main memory (a reference).

    92. Re:.NET by iwadasn · · Score: 1


      I agree completely that C# kidnof sucks. They added every possible means for people to screw up, and removed all the impediments to failure that java thoughtfully put in, for instance...

      1) No checked exceptions. This is not a feature, it is a bug.

      2) Incomplete stack traces. You either have to throw the exception out of the method, or you don't get to know what called the method. So you can either recover or diagnose, never both.

      3) Properties, quite possibly the worst idea ever. Yeah, lets make an arbitrarily complex and difficult function call look like a simple read, and make it impossible for anyone to ever know the difference.

      4) Operator overloading, it was always a bad idea. I don't want to see a += operation that performs some heinous calculation. In real life + and - commute, do your + and - operators commute? If you don't know what this means, then you shouldn't be overloading operators, and you shouldn't be using code where others have overloaded operators.

      6) Not platform independent, not even a little bit, why would you make a VM that isn't, you know, virtual.

      7) A terrible native interface. I thought the hope was to leave COM behind. And if you want to call a native C function, well, spin the wheel and see which function gets called today. Java's tight binding is much better, and faster.

      Basically, C# is just the latest vehicle for VB programmers to vomit forth sucky software. Java is much better, but I don't like a few of the things they're adding in the next version. Were the varargs really necessary? How many functions will use them, is it really THAT difficult to box data into an array (which is what happens anyway) for the three function calls into a varargs function that you will ever in your life make. Also, including a printf like printer seems like a bad idea, it was confusing an nasty in C (and was dropped in favor of streams in C++), it doesn't need to be brought back.

      However, all this being said, C# is better than most of the nastiness that calls itself a language these days, but it's not hard to be better than VB.

    93. Re:.NET by Anonymous Coward · · Score: 0

      I think it has more to do with the fact that the NET libraries were written in such a way to throw all sorts of oddball COM and Win32-based exceptions that are vitually impossible to classify (and thus, go undocumented).

      Maybe they had a good reason for not requiring "throw", but it would have been nice if they actually used it themselves.

    94. Re:.NET by Anonymous Coward · · Score: 0

      You don't understand the marketing -- J# is only recommened for people with legacy Java 1.1 codebases. C# is being marketed heavily to Java programmers.

    95. Re:.NET by janpa · · Score: 1

      I have had to develop on windows(in VB--ick) for years now at work. However, I have always loved C since I learned it in college. When I started using .net, C# was my language of choice, mainly to get the taste of VB out of my brain.

      When I found out about the C# compiler project at Ximian I was excited because I could attempt to make the leap out of developing things only for windows systems and look at making things that could run on Linux and other platforms. Its a good bridge to the open-source ideas and now i'm even looking at building a Linux box just because it seems like fun.

      --
      Those who say it cannot be done should not interrupt those who are doing it.
    96. Re:.NET by Arakonfap · · Score: 1

      I think it comes down to a purest, or functionalist debate - as do a lot of things.

      I'm familiar with Java, though mostly code C++. After learning a big of C#, I must say that I like it a LOT better then Java. Java, while more "consistant", also means you have to do more things in a ridgid way when a faster way (instant gratification) is available. That "instant short term gratification" you speak of makes life easier, because it's inconsistant in my opinion.

      I agree there's problems with .NET however - the name for one thing is rediculous. And the "Any language" 'feature' basically means any language that looks like C#. All in all though, I do think it's a huge improvement - both above what's out there, and a decent improvement over Java.

      personal opinion, based on my own personal habits of course.

    97. Re:.NET by Trejkaz · · Score: 1

      I doubt a library could improve the syntax any. :-)

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    98. Re:.NET by AndiD · · Score: 1

      I think that Close is called in the destructor anyways, but the destruction is called when the garbage collector clears the object. And you don't known when this will happen.
      The only problem I have with the garbage collector is, that the amount of code increases IMHO. But I thought the reason behind using the garbage collector is, that it should make life a little easier.
      Sure having to call delete for objects on the heap can easily forgotten, but there are very good tools to find these mistakes.
      But think about a case were you forget to implement the _finaly block. You write to the file and later you want to delete it (eg. because it is a temporary file). This delete works if the GC has finlaized the Stream, but fail sometimes when the GC has not yet finalized the Stream. I think this mistake is harder to find than the forgotten delete.
      Just my 2 cents

    99. Re:.NET by Anonymous Coward · · Score: 0

      I'd say basic, pascal and java all are a tad higher level languages

    100. Re:.NET by nimblebrain · · Score: 1

      I think that Close is called in the destructor anyways, but the destruction is called when the garbage collector clears the object. And you don't known when this will happen.

      I took a look at the reference material for the .NET framework, and apparently Finalize is declared, so you can actually let it go out of scope and have it close for you. That seems to actually be by and large how .NET classes that wrap around external resources work.

      So, you can keep your code as simple as you used to. No __finally required.

      You do incur the finalizer overhead if you leave .NET to do the finalization for you, so if you for some reason need to make sure the file stream close is efficient and doesn't make the GC hiccup (e.g. if you had a lot of threads doing many file stream opens/closes), you'd use the much uglier, but more "efficient" syntax:

      FileStream* fs = File::Create(path);
      try {
      AddText(fs, S"This is some text");
      AddText(fs, S"This is some more text,");
      AddText(fs, S"\r\nand this is on a new line");
      } __finally {
      if (fs) __try_cast<IDisposable*>(fs)->Dispose();
      }

      finally is just a declarator for a section of code that runs whether you get an exception or not. I use them all the time for things like critical sections and constructs like setting "currently_updating" variables back to false no matter what goes wrong in a method.

      But think about a case were you forget to implement the _finaly block. You write to the file and later you want to delete it (eg. because it is a temporary file). This delete works if the GC has finlaized the Stream, but fail sometimes when the GC has not yet finalized the Stream. I think this mistake is harder to find than the forgotten delete.

      If they had forgotten to add in a Finalize, that's exactly what would happen. However, they did, so no worries :)

      If you come across a class you're wondering about, take a look in the .NET documentation for the class, look under members, and see whether Finalize is in the "Protected Methods" section - if it is, you don't have to worry about their use. If you see Dispose in there, you can use the ugly Dispose syntax to get rid of the object more nicely for the GC. (The first thing most calls to Dispose do is GC->SuppressFinalization(this), which removes the object from the complex finalization chain.)

      Hope that helps :)

      P.S. Doh! Does anyone know how I use <ECODE> tags in HTML Formatted posts and have /. maintain the spacing? Is it browser dependent?

      --
      Binary geeks can count to 1,023 on their fingers :)
    101. Re:.NET by Rick+BigNail · · Score: 1

      You know what, someone could disagree with you without being a fanboy. C# is like every other useful stuff: The central ideas are good but there are some minor problem here and there. You gave the impressions that you know about the bad stuff by experiment and are ignorant of the good stuff because of lack of research.

    102. Re:.NET by Anonymous Coward · · Score: 0
      This is because Gosling is not a mathematician

      Wow! Just like 99.9% of the other developers out there!

  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 xpl_the_myst · · Score: 1
      I think it should be more like 'I deplore his view that enterprise applications are equivalent to the operating system'.

      One interesting thing that the article said about the IDE was that it allowed you to write html that was simultaneously rendered in another pane. This sounds like a nice (though minor) improvement over having to hit something like F6 for a preview (and then wait for the whole thing to get rendered and then check that the hr i just put in works)

      --
      This sig is empty.
    2. 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!"

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

    4. 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.
    5. Re:Foot-in-Mouth Disease by Anonymous Coward · · Score: 0

      FUCK using the right tool for the right job! I want to use a hammer for everything, because ME LIKE HAMMER!

    6. Re:Foot-in-Mouth Disease by |DeN|niS · · Score: 1
      One interesting thing that the article said about the IDE was that it allowed you to write html that was simultaneously rendered in another pane.

      You can do this today in Quanta. (see http://quanta.sourceforge.net)

    7. Re:Foot-in-Mouth Disease by Spacejock · · Score: 1

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

      Proving once again that choice in desktop environments is a GOOD thing. If they're completely rewriting Gnome, I'll still have a stable desktop using KDE.

    8. Re:Foot-in-Mouth Disease by Penguin+Follower · · Score: 1
      "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"

      Ah, just one more reason for me to keep using KDE!

      KDE user since 1997 and proud of it! ;)

    9. Re:Foot-in-Mouth Disease by Imperator · · Score: 1

      What gets me is that when you ask the GNOME people why they use C instead of C++ or Java, they say it's for "compatibility" and that you can do anything in C that you can do in those other languages. Now they want to move to a language whose only open source compiler is still in development. I've got nothing against GNOME, but sometimes I think they spend too much time toying around with peripheral stuff that doesn't help their core software.

      --

      Gates' Law: Every 18 months, the speed of software halves.
    10. Re:Foot-in-Mouth Disease by Anonymous Coward · · Score: 0

      Maybe the GNOME guys should use some of KDE's more memorably inflated bullshit claims... there's enough for a few years, at least.

    11. Re:Foot-in-Mouth Disease by Anonymous Coward · · Score: 0

      One of the most interesting features of .net is that it was designed to be introduced into existing codebases slowly and work with them and make it easy to extend them, not replace them. Mono, IF it is ever introduced into GNOME would make adding things to GNOME easier... if would nto be used to rewrite it.

    12. Re:Foot-in-Mouth Disease by Anonymous Coward · · Score: 0

      No, Icaza meant you could write an app with that feature in a few minutes of coding using Mono. Oh, and BTW: Quanta is buggy a crap.

    13. Re:Foot-in-Mouth Disease by Anonymous Coward · · Score: 0

      The irony, the moment Miguel Icaza declared C to be dead he disappeared in to a puff of hot air as his last name ceased to exist.

      I recently switched from kmail to evolution purely because of the HTML editing support. Much to my display the way it handles finding new messages in a folder is INSANE. First off it doesn't jump to the first unread message in the folder when you open it so you ALWAYS have to scroll and search to find the new mail. Second the next message and last message toolbar buttons go the next message not the next UNREAD message. This makes it a complete nightmare to find unread messages in a threaded folder for a big mailing list. Maybe this is emulating Outlook but it leads me to believe:

      A. Miguel doesn't use his own email client
      B. Miguel is completely and utterly clueless

    14. Re:Foot-in-Mouth Disease by vegetasaiyajin · · Score: 1

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

      Ahh, and the stupid people at Sun promoting C# friendly GNOME instead of making KDE more Java friendly (there are good Java bindings for Qt/KDE, but they can improve).

      Don't you find it ironic that they are probably going to continue calling their .Net/Mono based linux distro "Java Desktop System"?.

      That's why they deserve to be punished. Stupid people must suffer.

      --

      My heart is pure, but make no mistake, it's pure evil
  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)

    2. Re:C is not dead by Mick+Ohrberg · · Score: 1

      Underground or underwear?

      --

      Quidquid latine dictum sit, altum sonatur.

    3. Re:C is not dead by Trejkaz · · Score: 1

      Solid like computerised constipation.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    4. Re:C is not dead by Anonymous Coward · · Score: 0

      1. Solid underground
      2. ???
      3. Programming

  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.

    1. Re:WTF?!? by Anonymous Coward · · Score: 0

      His name is Daniel Sieberg... that dork from CNN who has no business being on TV. idiot!

    2. Re:WTF?!? by esanbock · · Score: 1

      I said the same thing about Alen Cox.

    3. Re:WTF?!? by Anonymous Coward · · Score: 0

      it's ok, it was just a typo.

      his name is actually Edd Dumbell.

    4. Re:WTF?!? by Anonymous Coward · · Score: 0

      Why the hell would I believe someone with the name of Edd Dumbill?

      Would you believe it if someone named Rob Enderle told you?
      I hear he has quite the reputation here on slashdot...

  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 JanneM · · Score: 1

      Windows.Forms have absolutely nothing to do with supporting Gnome app development. Being 100% compatible with the Windows .Net API:s is not a requirement either - after all, you won't have the Gnome environment available on a Windows machine anyways, so why worry about compatibility issues, right?

      Yep, PyGTK is very nice. So is Perl-GTK2/Perl-Gnome. And, yes, from what I've heard, so is GTK#. All three work. And at least Perl-GTK2 is part of the upcoming "official bindings" release, which should ensure you can write stuff and expect it to work for any Gnome user.

      --
      Trust the Computer. The Computer is your friend.
    4. 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.

    5. 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?
    6. 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!
    7. 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
    8. 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.

    9. Re:Um, no. by Anonymous Coward · · Score: 1, Interesting

      Take away the *IDE* and you would probably write code slower than those of us using languages like Ruby. .NET has a great set of tools, the language and runtime is nothing exciting.

      When you get tired of compiling and linking and other cute holdovers from another era, come join us in dynamic language-land.

    10. Re:Um, no. by Trejkaz · · Score: 1

      Some of us want Qt# to be just as mature and stable. Then we can pick which widgets to use at installation time, or maybe even have it set up to automatically choose the right set depending on which DE we are in at the time. Gimme gimme gimme!

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    11. Re:Um, no. by CaptnMArk · · Score: 1

      This is actually a very good thing if the rumors that Mono System.Windows.Forms uses Wine are true.

      It's not like we need yet another Gui toolkit on the linux desktop.

    12. Re:Um, no. by minus_273 · · Score: 1

      you can actually download the source for the .net libaries and c# compiler for linux, OSX, BSD etc from the MS website and build it yourself.

      --
      The war with islam is a war on the beast
      The war on terror is a war for peace
    13. Re:Um, no. by davegust · · Score: 1

      I don't think you get what .NET is about. It's not about the language. It's the many host environments for managed code. It's WinForms. It's ASP.NET. It's supporting legacy libraries (COM and DLLs). It's a rich API.

      .NET provides many different types of environments that align with most of the various languages you mention -- C (system programming), Perl (parsing, scripting), Java (beans, JSP, etc), PHP (Web Server glue). And it's langauge agnostic to boot. (C#, VB.NET, J#, Python.NET, ...)

      C# can mean a traditional Windows app, an ASP.NET back end, stored procedures in SQL Server, a component, or client side code hosted in IE. I don't think it's been applied to shell scripting ... yet.

      Hell, Visual Basic was revolutionary despite the fact that is used BASIC for its syntax.

    14. Re:Um, no. by starm_ · · Score: 1

      Maybe if they implemented Mono using Java it would speed up the development process!

    15. Re:Um, no. by Anonymous Coward · · Score: 0

      Gtk (and Qt) both rock, thanks to their standard layout-based toolkit. I feel sorry for people who have to put up with Window's deplorable support for automatic widget resizing.

    16. Re:Um, no. by Anonymous Coward · · Score: 0

      That is kind of the point, why don't people use Java?

      There is years of history showing that Java is not being used for desktop apps. On the other hand, C# has already outpaced Java for desktop apps for GNOME in a much shorter time period.

      But no-one is going to take away your right to use Java so why try to convince everyone to use it when they don't want to.

    17. Re:Um, no. by gabebear · · Score: 1

      Where?

    18. Re:Um, no. by Anonymous Coward · · Score: 0

      Oh wel, another RAD developer. But don't call youreself a real hacker, because RAD is what is say's, Rapid development, but thats not always the best sollution. Heck, a monkey can learn to use RAD.

      If *NIX was developed with RAD , it woudn't work as it works now. That even goes for Microsoft Windows.

      RAD is a tool, not a way to program good and solid custom build software.

      Wel, here a my 2 cents.

      Cheers.

    19. Re:Um, no. by steve_deobald · · Score: 1

      There are a number of reasons why System.Windows.Forms (SWF) isn't fully-implemented yet: First, he mono SWF implementation is based off of Wine, and wine is a bit of a moving target. Second, you will hear any number of mono developers -miguel included- declare SWF as a "terrible API", which it is.

      Just recently I switched to using GTK# for all my .NET applications at work. It's perfectly cross-platform, and building Glade's XML files (in Linux or Windows) is a joy compared to building SWF interfaces. GTK# rendered SWF totally unnecessary in a couple days of use.

      But, like serialization, SWF is on its way. However, if you're moving from .NET to mono, you'll probably prefer the SWF->GTK bindings which are being developed by the community.

    20. Re:Um, no. by D4MO · · Score: 1

      because he said RAD, fast, stable, solid and effective. Java - pick 3.

      --

      Rocket science is easy. Neurosurgery, now *that's* difficult.
    21. Re:Um, no. by smittyoneeach · · Score: 1

      There is years of history showing that Java is not being used for desktop apps
      Actually, stuff like GeneSpring works well, irrespective of platform.
      In general, though, you're right. And the reason is that the GUI libraries are all over the place. Got assigned to use Component Oriented Programming for school. Keel makes a lot of sense on a server, but the jury is out on the desktop.

      --
      Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
    22. 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.

    23. Re:Um, no. by Anonymous Coward · · Score: 0

      Ummm, maybe you need to do research yourself instead of just waiting for slashdot to tell you everything. If you want to know when Mono will be released try going to the Mono site and reading the roadmap. http://www.go-mono.com/mono-roadmap.html

    24. Re:Um, no. by Anonymous Coward · · Score: 0
      C# has already outpaced Java for desktop apps for GNOME

      Gee, you don't suppose that's because Mono and Gnome are both Miguel's babies, do you?

      If TrollTech had decided to implement a CLR instead of Miguel, the Gnome fanboys would calling it Lucifer's spawn.

    25. Re:Um, no. by Anonymous Coward · · Score: 0
      And it's langauge agnostic to boot.

      As long as the language is C#. Other languages have to be butchered to greater or lesser degrees to fit the CLR. You might as well call the JVM language agnostic, given the number of languages that can be compiled into JVM bytecode.

    26. Re:Um, no. by Anonymous Coward · · Score: 0

      Yeah, interpreted languages are such cutting-edge, 1970s tech. Woo!

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

    Doesn't the Monodevelop IDE look suspiciously like Eclipse?

    1. Re:MonoDevelop IDE by sn0wman3030 · · Score: 1

      Hehe, I thought the exact same thing when I saw it. It kind of makes you think: Are they simply trying to copy what has already been done, or are they simply trying make .Net development look more attractive to Java devs by making look familier?

      --
      Life is offtopic.
    2. 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

    3. 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.
    4. Re:MonoDevelop IDE by Anonymous Coward · · Score: 0

      I thought it looked like turbo C.

    5. Re:MonoDevelop IDE by Anonymous Coward · · Score: 0

      No, it looks like SharpDevelopfrom which it is derived.

    6. Re:MonoDevelop IDE by uwmurray · · Score: 1

      Of course Monodevelop resembles Eclipse (a little bit) its an IDE.

      Monodevelop is a port of Sharpdevelop (a free .NET IDE for Windows) to GTK# / Mono. Monodevelop resembles sharpdevelop, not Eclipse.

      Not everything in C# land is a clone of something in Javaland...

    7. Re:MonoDevelop IDE by Why+Should+I · · Score: 1

      We didn't develop our own ide, we ported one that was already written.

      Why waste time writing a plugin for eclipse (in a different) language when the majority of the code is already there ?

      People waited for months for someone to write a plugin for eclipse and nobody, because nobody that had the know how to do it.

      Guess what, most of the people that wanted a C# ide or a C# plugin for eclipse with code complete had the know how to do it in C#, not java.

      So porting the SharpDevelop ide was light years less work than writing a plugin for eclipse.

  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.
    2. Re:Linux contracts mono? by Anonymous Coward · · Score: 0

      The clap is whole different thing...

    3. Re:Linux contracts mono? by foniksonik · · Score: 1

      I read that as "Are we exposed to the clap?" ;-p

      --
      A fool throws a stone into a well and a thousand sages can not remove it.
  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 Anonymous Coward · · Score: 1, Funny

      LONG LIVE PASCAL!

      This has been a public service announcement from the Preservationists for the Society of Pascal Users (PSPU).

      Thanks
      Johnny Pascal

    2. 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
    3. Re:C is dead? by csirac · · Score: 1

      Inferior in what context?

      For me, I use C so I don't have to write (as much) ASM.

      I'd hate to be writing in Java or .NET on an 8MHz MCU target with 4KiB SRAM, 32KiB FLASH ROM.

      On the other hand GCC compiles C++ for the HC12, I wonder if does so for Hitachi and AVR targets as well.

      - Paul

    4. Re:C is dead? by Beryllium+Sphere(tm) · · Score: 1

      >There are MANY problems that are best done with low level, very concise languages like c.

      Device Driver Development Kit: some assembly required.

    5. Re:C is dead? by Zo0ok · · Score: 1
      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.

      I agree with you! But it is getting harder to show we are right. The other day I wrote the following code in c:

      #include

      int fib(int x) {
      if (x == 1 || x == 2) return 1;
      return (fib(x-1) + fib(x-2));
      }

      int main(int argc, char *argv[]) {
      int x = 43;
      int r;
      r = fib(x);
      printf("Fibonacci(%d) = %d\n", x, r);
      }

      I then ported it to Java, and found that it was actually FASTER in Java (for -O0, -O1, -O2, and -O3). I used Linux on x86 (C3) as well as Mac OS X on G4.

      longrow gt% time ./fib
      Fibonacci(43) = 433494437
      21.140u 0.010s 0:21.31 99.2% 0+0k 0+0io 0pf+0w
      longrow gt% time java fib
      Fibbonacci(43) = 433494437
      18.370u 0.080s 0:18.79 98.1% 0+0k 0+14io 0pf+0w

      I know, I few years ago, Java would have been MUCH slower. I can imagine Java being as fast as C for such a simple example (if java starts to quickly complile to native), but how can it come out 10-20% faster?

      Should I use my C-compiler better (using more than just an -ON flag)? Is Java doing something nasty that makes it faster (like implementing recursion in an imperative way)? I do not beleive that Java replaces my inferior fibonacci implementation with its own fast one - in that case java would have been very fast.

    6. Re:C is dead? by Gr8Apes · · Score: 1

      From several other studies (do a google search on Java performance for the 1.4+ JDK) well written Java code performs equally with well written C++ code on the same hardware, and within 5% of the best C code for standard functionality. There are still some cases where C can definitely perform better. This does not necessarily mean using classes within the JDK to do some common functions, especially not the String class, and the collections classes, while convenient, are generally also not your best performers.

      --
      The cesspool just got a check and balance.
    7. Re:C is dead? by TheLink · · Score: 1

      The trouble with C is too many people use it for making important programs exposed to untrusted/uncontrolled input. And it is too hard for people to write _secure/robust_ code in C.

      With saner programming languages, a decent programmer's stupid little mistakes are unlikely to allow "a remote attacker to execute arbitrary code of the attacker's choice". That doesn't appear to be true for C.

      Heck, so many people here think they're programmers but they can't even spell right or get their grammar right (or even think straight), I doubt they'd have a chance of writing a moderately complex C program that's secure.

      Those who can think straight, but have spelling/grammar problems should be able to write a Java program that's secure given a good IDE ;).

      Right tool for the job yes, but too many people are using C. I think Dan Bernstein (qmail, djbdns) can keep using C if he wants to but the rest of us should seriously consider using some other language first, and only use C if there is no other choice (including considering/choosing not to do the job).

      --
    8. Re:C is dead? by groomed · · Score: 1

      Interesting. Of course all it proves is that Java can be faster than C on a contrived toy benchmark, which I don't think anybody contests. But an interesting result nevertheless. It's worth noting that the Java program spends 8x as much system time than the C program though.

      Out of curiosity, did you try -fomit-frame-pointer? -Os?

    9. Re:C is dead? by Zo0ok · · Score: 1

      The Java system time appears to come from loading the binary/VM (computing fib(4) gives about the same system time as fib(40)).

      -fomit-frame-pointer does not affect performance (Mac OS X, PowerPC G4, gcc 3.3).

      -O is like 10% faster than -O3, -O2, -Os

      -O -mcpu=7400 made C as fast as Java (I am happy I found that out, otherwise I would have wondered what devilish optimizations Java was doing under the hood)

      Conclusion: Java/.NET bytecode compiles to efficient machine-code.

    10. Re:C is dead? by groomed · · Score: 1

      I've repeated your tests on my machine (Linux 2.4, Pentium III, gcc 3.2.2, JDK 1.4.2_01). I get pretty much identical results to yours without any tweaking, with tweaking the best C program is some 30% faster than the Java program.

      But when I eliminate the recursion in your program like this:

      int fib2(int x) {
      int i, l, n, r = 0;

      if (x==0 || x==1)
      return 1;

      for (l=1, n=1, i=2; ix; i++) {
      r = l + n;
      n = l;
      l = r;
      }
      return r;
      }

      The C program is consistently 2 to 4 times faster than the Java version. I even get some runs where the C program is 100 times faster than the Java version, but I suppose those are flukes/unreliable data.

    11. Re:C is dead? by Zo0ok · · Score: 1

      That is of course a better way of computing the Fibonacci numbers (-;

      I choose my stupid recursion algorithm just because it makes it possible to produce a small predictible program that takes long time to execute. I suppose you could compute fib2(x) for large values of x before the program took any measurable time at all to execute (that might explain your flukes/outliers).

      Anyway, when I started programming Java back in 1998 execution times were typically 25 times slower than for C. Those days are over (and for amateurs, like me, who dont know how to produce optimal code with a c-compiler Java might in fact be the better choice).

      In case you are curious I can tell you that C#/.NET is as fast as C/Java (x86, Win32, MS .NET).

    12. Re:C is dead? by groomed · · Score: 1

      I choose my stupid recursion algorithm just because it makes it possible to produce a small predictible program that takes long time to execute.

      The problem with the recursive algorithm (as a benchmark) seems to be that it is so rudimentary that it leaves no room for the C compiler to perform significant optimizations. And in so far as C benefits from having lower overhead, this benefit just drowns in the inherent slowness of the algorithm.

      Anyway, when I started programming Java back in 1998 execution times were typically 25 times slower than for C. Those days are over

      Certainly Java has gotten a lot faster since then.

      (and for amateurs, like me, who dont know how to produce optimal code with a c-compiler Java might in fact be the better choice).

      I would not say that. If the algorithm isn't so slow as to completely overwhelm the compiler optimizations and runtime overhead, then getting optimal performance out of non-trivial Java programs is I think harder than getting good performance from a similar C program.

      But your point stands, proving that isn't as easy as it used to be.

  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 Anonymous Coward · · Score: 1, Insightful

      .NET isn't a language. It's mainly an application framework that can be used in most languages.

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

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

    5. Re:Overnight by rnd() · · Score: 1, Interesting
      Don't underestimate the differences between C# and Java. While they are very similar, the following stand out to me as significant differences:

      C# compiler messages are way more intuitive to novice programmers.

      The C# network access classes are more intuitive.

      The C# IO namespace is more intuitive.

      The event model in GUI apps is way more intuitive in C#.

      All of these lower the barriers to proficiency in the language, and make it possible for more people to get started writing code, which will eventually lead to a larger population of talented coders, and to better software.

      C# also enforces some very good design patterns by making them not only language features but by integrating them consistently into the .net framework.

      The Mono project is my favorite of all OSS projects because it will make developing for Linux and Windows just as easy as for Windows, which will make Linux a better competetor to MS, which will make everyone better off.

      --

      Amazing magic tricks

    6. Re:Overnight by Anonymous Coward · · Score: 0
      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).

      You obviously haven't studied C# in depth at all. It kicks Java's ass (and despite Gosling's whining :-). Too bad it is a Microsoft technology and all that, but as the poster above stated, pull your head out of the sand.

      Oh, and so sorry to hear that duplication of effort makes you "sad". You'll probably hate Linux when you find out about it.

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

    9. Re:Overnight by Anonymous Coward · · Score: 0

      .Net isn't a language, unless your counting the IL.

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

    11. Re:Overnight by TheOldFart · · Score: 1
      languages don't make a programmer any more than brushes make a painter.

      Interesting analogy. Going further, the difference between a fine detailed brush and a 8" wide brush. The former is slower to cover an area but rich in detail. The other is fast to cover but with no detail.

      Now replace detail with speed and eficiency.

    12. Re:Overnight by Anonymous Coward · · Score: 0

      You're looking for Scala :)

    13. Re:Overnight by Anonymous Coward · · Score: 0

      Scala's pretty nice, yes, but maybe you should wait for them to actually release the .Net version before you claim it compiles to .Net...

    14. Re:Overnight by joto · · Score: 1
      There will be a functional language in .Net, called F#.

      Correction. Microsoft once announced that there would be an official language called F#, that would be based on Ocaml, if I remember correctly. This has long since been abandoned as an official .NET language. As such, I wouldn't hold my breath waiting for it.

      On the other hand, the .NET platform is a pretty ok platform for ML-type languages, so there's no doubt that there will pop up some alternatives. But in the foreseeable future, probably not directly from Microsoft.

    15. Re:Overnight by rnd() · · Score: 1

      I agree with your general point, however consider the following:

      C# is more likely to allow a novice programmer to progress to the point where he/she is able to easily learn other languages, and will, if anything, give him/her exposure to some pretty solid design patterns along the way.

      Compare that to starting with C++ or Java, where things are more opaque and the novice must spend a lot of time doing things other than actually writing working code.

      --

      Amazing magic tricks

    16. Re:Overnight by SuperKendall · · Score: 1

      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.


      Almost all those are convienences, except for operator overloading where you are basically showing a lack of working on large projects.

      I agree that most of those are nice - Java's native interface is clunky (as I've done some JNI work), value classes are a bit shorter to write (though I use generators anyway so I don't have much typing in Java either), generics are better in terms of reflection but force clients to upgrade (at least with Java I can use generics and run the code in older production systems than cannot be migrated forward yet), and the exception handler is so much better, it's why I follow the same pattern in Java (use Runtime [unchecked] exceptions). At least in Java you have the choice.

      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.

      High quality? How many out there are running production systems on Mono?

      There are many other open source things that do what you are looking for without resorting to a Java clone - like Parrot or TCL or...

      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.

      Now that's blaming the victim for the crime. There is already a huge base of Java code, which is being ported as fast as possible to .Net.

      Java's evolution is actually handled by the JCP (independant of Sun), not by a puppet-standards body (It's why Generics was not in 1.4 as it would have been if Sun were master). Is .Net really going to evolve in ways that will not help Microsoft? Get real.

      --
      "There is more worth loving than we have strength to love." - Brian Jay Stanley
    17. Re:Overnight by Anonymous Coward · · Score: 0

      Kendall Kendall hes our man, if he can't do it no one can!!
      *jumps up and down with pom-poms*

    18. Re:Overnight by Javagator · · Score: 1

      Yes, C# is basically Java, but it has one big advantage, performance. My C# programs run about twice as fast as my Java programs, and GUI performance in C# blows away a similar Java/Swing program. I think the performance difference is due to C# being designed to use a JIT from the start without the intervention of a virtual machine. Java requires a virtual machine to be running even after a program has been JITed, since many Java libraries make callbacks into the virtual machine using the JNI facilities.

      I hope Mono is successful so that C# will become a multiple OS language.

    19. Re:Overnight by ajagci · · Score: 1

      Almost all those are convienences, except for operator overloading where you are basically showing a lack of working on large projects.

      Value classes and a better native code interface are crucial performance improvements. Fixed exception handling and generics are important for large projects.

      Operator overloating, on the other hand, is not a problem for large projects (or small projects or anybody else): if your project management can't enforce a rule as simple as "no overloaded operators on this project", then you might as well give up before you start.

      There are many other open source things that do what you are looking for without resorting to a Java clone - like Parrot or TCL or...

      Parrot and Tcl are slow interpreters. Mono contains a JIT that gives near-native performance on a lot of code. Mono and C# can replace C and C++ as general purpose languages, Parrot, Tcl, and Java cannot.

      Java's evolution is actually handled by the JCP (independant of Sun), not by a puppet-standards body (It's why Generics was not in 1.4 as it would have been if Sun were master).

      The JCP is not independent of Sun, and just because the JCP nominally manages the evolution of Java doesn't make Java "independent" or open. Sun pretty much owns Java: the specifications are proprietary, Java technology is patented with license terms that are not compatible with OSS implementations, and the only existing compliant implementations rely on Sun source code.

      Is .Net really going to evolve in ways that will not help Microsoft? Get real.

      First of all, Mono is not .NET; Mono, as you would know if you bothered to read the article, is both a fully independent set of APIs and libraries and a set of .NET compatibility libraries. You don't have to use the .NET compatibility libraries in Mono at all; in fact, most Mono applications don't and won't.

      Second, I really don't care about whether Mono helps or hurts Microsoft. Why would that make any difference to me?

      Now that's blaming the victim for the crime. There is already a huge base of Java code, which is being ported as fast as possible to .Net.

      I don't see Sun as a victim. And, yes, I hope that people will port open source Java code to Mono as fast as possible so that that code will finally run on an OSS platform (I don't care one way or another whether it also gets ported to .NET).

    20. Re:Overnight by RhettLivingston · · Score: 1

      .Net obsoletes the syntax argument by forcing all syntaxes to comply with the platform. Java is all about syntax. From that perspective, which after years of hearing stupid religious arguments about syntax, .Net blows Java to !@#$ and back.

  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
    1. Re:You can't beat Microsoft.... by Murmer · · Score: 0
      No kidding.

      Especially when the guy running the whole show thinks that returning integers is better than throwing exceptions, (really, who needs traceability or exception handling?) and you need the guy on the other team to explain it to you.

      Jeebus. Looking at those, it's no wonder that the Mono people are imitating, instead of innovating.

      --
      Mike Hoye
    2. Re:You can't beat Microsoft.... by Anonymous Coward · · Score: 0
      You can't a better .NET than .NET


      Yes you can. And if you'd bothered to read the article you'd know how. I know it's hard... but let me help you. From the article:

      part of the Mono genius is that Microsoft documentation can readily be reused.

      That's right. All of the documentation for all of the APIs for .NET is freely available from msdn.microsoft.com. It is completely applicable to all of the corresponding APIs implemented in mono.

      Here's another one:

      The audacity of using Microsoft's own investments and technologies to bring developers to the Linux platform sets the tone for interesting times.

      Microsoft did most of the hard work; researching, designing, and documenting .NET. All that's left for mono to do is implement the compiler, runtime, and the APIs from the ECMA specs and microsoft's documentation. And on the linux side all mono has to do is create APIs which wrap around existing linux technologies already available in use like gtk+, gconf, gstreamer, cairo, icu, mozilla, and many, many others. Mono is effectively using one of Microsoft's most famed weapons against them (copying a competitors best ideas and using it against them). The writer captures and explains this idea well.
    3. Re:You can't beat Microsoft.... by chgros · · Score: 1

      ....at their own game.
      You can't a better .NET than .NET

      Samba anyone?

    4. Re:You can't beat Microsoft.... by Reteo+Varala · · Score: 1

      Remember why OS/2 was dropped?

      It's called financial consideration; the people with the big money wanted nothing to do with it, as opposed to Mono, where the development is outside the scope of financial consideration... it'll continue to be developed even if Ximian goes under.

  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.

    1. Re:Renovate or Innovate? by Reteo+Varala · · Score: 1

      There's it's own layout; Mono is what seems to be Open Source "Embrace and Extend." ;)

      Specifically, it is trying to take MS's .NET framework, and build GNOME, POSIX, and GTK extensions to it.

      The primary goal here is to assist transitions from Windows programming to Linux.

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

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

    1. Re:hey... by gstoddart · · Score: 1

      C is dead.
      FreeBSD is Written in C
      FreeBSD is also dead.
      All things written in C are dead.
      Linux is written in C
      Linux is a wookie.

      --
      Lost at C:>. Found at C.
    2. Re:hey... by Trejkaz · · Score: 1

      You missed out the "Wookies are dead" bit you need to infer that last line.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
  20. Hmmmm..... by WwWonka · · Score: 0

    Are they calling themselves Mono because of the all the ass kissing they've already done with Microsoft?

  21. Mono? by Nailer · · Score: 1

    Cmon! It's not a bad single, but we both know it's just a reworking of Violet from Live Through This...

    1. Re:Mono? by Anonymous Coward · · Score: 0

      Now it is rather
      "Miguel, Oh NO"

    2. Re:Mono? by Anonymous Coward · · Score: 0

      Said in the voice of Mr. Bill.

  22. 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
    1. Re:What Linux desktop? by Mr.+Hankey · · Score: 1

      Experts eh? I know a Linux desktop when I see one, and I'm looking at one right now...

      --
      GPL: Free as in will
  23. 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 skraps · · Score: 0
      Languages written in C:

      A language is not written in another language. A compiler or interpreter may be, but that is pretty much irrelevant.

      --
      Karma: -2147483648 (Mostly affected by integer overflow)
    2. 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.

    3. Re:What language is .NET written in ?? by afidel · · Score: 1

      Mono has been self sustaining for over a year so my bet is that like most things in computers .NET started it's life built in a C/C++ environment until the tools were mature enough to compile themselves.

      --
      There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
    4. 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 ...
    5. 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!
    6. Re:What language is .NET written in ?? by Anonymous Coward · · Score: 0

      since there is only 1 perl, ruby, and python interpreter, your pedanticism can go fuck itself.

    7. Re:What language is .NET written in ?? by Anonymous Coward · · Score: 0

      A language is not written in another language.

      I think C is pretty much written in Standardese.

    8. Re:What language is .NET written in ?? by PCM2 · · Score: 1

      Ha Ha! Joke's on you, Jack! Mono is written in ... C#!!!

      --
      Breakfast served all day!
    9. Re:What language is .NET written in ?? by aixguru1 · · Score: 1

      Technically it isn't the language that is written in C, it is the interpreter/compilers that are written in C. There are also some similarities with the languages, but that is like saying Japanese is Chinese because they share some common characters in the language. Most compilers that I have used or know about are written in C, but you also have to look at who is writting them. I don't think most Java programmers would have a copy of the dragon compilers book (Alfred V. Aho's "Compilers - Principles, techniques and tools") or would have the kind of background to write a compiler.

      After all, langauages like C, C#, C++, Fortan, COBOL and the lot get translated into machine byte code of some type and on their native compiled environments. The interpreters and compilers that do the translation are beyond the scope and are more complex than what most "applications programmer" could handle.

      I am not implying as a person they couldn't handle it, but lets face it folks, there is a reason why so many college students start out with a concetration on Computer Science and wind up with a degree in Information Technology. After all, I found languages like assembler easy while others struggled, but then again I looked at the straight forward way of looking at it. In the end of things with assembler, if you want it to do something, you have to think of the smallest and most detailed steps you would take to get there.

      One good analogy of Java, C, and Assembler:
      Look at it as if you were going to get the newspaper off the porch...
      Java: paper p; p.grabNthePaper()
      C: walktodoor(); opendoor(); grabpaper(); closedoor(); walkback();
      Assembler: mov leftfoot, forward; int motorfunction; move rightfoot, forward; .... int brain;

      aixguru1 - "Ogg like AIX, AIX Gooooood. Have you had your IBM brainwashing today?"

      --
      root 10956 5164 0 Oct 22 - 0:23 sendmail: rejecting connections: load average: 70 (isn't sendmail just too kind)
    10. Re:What language is .NET written in ?? by Anonymous Coward · · Score: 0

      There is more than one python interpreter you ignorant little fuckwit.

    11. Re:What language is .NET written in ?? by Anonymous Coward · · Score: 0

      Don not forget
      C is written in C
      Assembler is written in C

  24. 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 Anonymous Coward · · Score: 0

      are you just a jerk, or do you only play one on slashdot.

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

      especially since there are already superior non-MS systems out there that puts .net to shame.
      I mistrust anyone who makes such sweeping generalities about anything. Superior? Superior for what?

      And I think a lot of people really would be interested in what these systems are. We've all made the .NET to java comparision, I think. Are you suggesting something more esoteric or just something that is much different than .NET?

    3. Re:If I wanted MS .Net, I'd run MS... by Anonymous Coward · · Score: 0

      if he just plays one on Slashdot he should get the \

    4. 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.
    5. Re:If I wanted MS .Net, I'd run MS... by Sesostris+III · · Score: 1

      Hmmm. I do develop applications on MS platforms. Its my job. I would also like to delevop on Linux, as a hobby. OK, I could use a different language, but wouldn't it be nice if I could use the same language/framework both at home and at work? Personally, I hope Mono succeeds. There are those of us who have to use MS, but would also like (prefer) to use Linux.

      --
      You never know what is enough unless you know what is more than enough. - Blake
    6. Re:If I wanted MS .Net, I'd run MS... by Anonymous Coward · · Score: 0

      dumbfuck elitest that's right, dumbfuck elitest. If you want to say x is better then name x. moron.

    7. Re:If I wanted MS .Net, I'd run MS... by Anonymous Coward · · Score: 0

      "No, I'm not going to cite those systems...do your own research."

      Yea, I couldn't think of any either. Perhaps they will buy this statement, though... like people did with Bush's arguments on WMDs... good thinking on using a workable tactic.

  25. 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 No.+24601 · · Score: 1
      Still, the cognitive dissonance of compiling a Linux program and getting a file with an .exe extension is rather difficult...

      In layman's terms, he's saying it boils down to whether you want to see the virgin Linux reemed by Microsoft bloat.

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

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

    4. 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!
    5. Re:Platform Independence by omicronish · · Score: 1

      It would probably be silly for Microsoft to significantly modify the existing .NET libraries and break compatibility with existing .NET programs. Remember that modifications also affect programs and packages beyond Mono and those that use Mono.

      Longhorn does include new .NET libraries for Longhorn technologies such as Avalon, as well as general System namespace classes for things such as the web browser (System.Windows.Forms.WebBrowser). Additionally, there is support for emedding Windows.Forms objects inside the new Avalon UI and vice versa, so Windows.Forms isn't immediately obsolete.

    6. Re:Platform Independence by shadowbearer · · Score: 1

      Scratch that lotto ticket off in two years, and tell us how it came out then.

      MS is betting a lot on their attempt at (re)(pre)defining a standard. OSS folks are reacting, because it's necessary. But let's see how the market deals with it, K? Cause that's the ultimate test.

      SB

      --
      It's old. The more humans I meet, the more I like my cats. At least they are honest.
    7. Re:Platform Independence by bonch · · Score: 1

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

      Write once, run anywhere--on other Windows systems, that is.

    8. Re:Platform Independence by ceeam · · Score: 1

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

      I said it many times everywhere, but one more time: it is designed to be cross-CPU solution, one platform - MS Windows. MS tried to have cross-CPU Windows with 3.51 (or even 4.0 - don't quite remember) but no-one packaged their software for anything else but x86. With .NET, Windows AND its apps (they hope) would be able to run on x86, x86-64, Itanic, and whatelse.

    9. Re:Platform Independence by Anonymous Coward · · Score: 0

      Uhm, why would MS do this? .NET is designed to be and sold as a "cross platform" solution

      They've already done it. Windows.Forms is going to be legacy under Longhorn. (WinForms ain't cross-platform either.)

      (PS: The longhorn API is already up at MSDN. Go look for it -- the drawing stuff is all vector based.)

    10. Re:Platform Independence by Planesdragon · · Score: 1

      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.

      That's one theory, and they've used it in the past.

      But another, better theory currenting being exploited by apple is "if we work with them, folks who want/need/have Linux can install MS, and we'll get sales we wouldn't get otherwise."

    11. Re:Platform Independence by sydneyfong · · Score: 1

      > Microsoft has a history of pulling the old
      > "embrace and extend" trick

      Actually, for a change, Mono is doing the "embrace and extend" trick (embracing MS's standards, and probably adding some of their extensions). Given the proven success of this tactic, it wouldn't be a surprise if it eventually results in Mono's favor.

      And the worst result we'll get is a crippled version of C# on Linux. We wouldn't get any C# support on Linux without the Mono project anyway.

      --
      Don't quote me on this.
    12. Re:Platform Independence by maxpublic · · Score: 1

      But another, better theory currenting being exploited by apple is "if we work with them, folks who want/need/have Linux can install MS, and we'll get sales we wouldn't get otherwise."

      Except that your 'better theory' has never been implemented by Microsoft in practice. They uniformly use 'embrace and extend' even when they say want to work with others. Why should they suddenly change their tune when this approach has made them the most powerful software company in the world? When even a conviction in a monopoly practices lawsuit fails to impose any sort of real penalty for their behavior?

      There is absolutely zero evidence that Microsoft wants to play nice with others, and a huge wealth of evidence that while it *claims* it wants to play nice it is, in reality, just working its way to the point where it can pull the rug out from under everyone and claim all the real estate for itself.

      The folks working on Mono are incredibly naive, I think, to believe that this won't happen to them. But in the end it won't matter, since I seriously doubt most of us will use Mono anyway.

      Max

      --
      My god carries a hammer. Your god died nailed to a tree. Any questions?
    13. Re:Platform Independence by dash2 · · Score: 1

      My guess is that Microsoft will significantly alter the .NET APIs for Longhorn

      It's certainly possible. But by breaking mono-compatibility, they would also have to break backwards compatibility. Traditionally, Microsoft has taken extreme care to provide backwards compatibility for existing binaries. And Java, the main rival, has managed this fairly well too, I believe. So they are in a cleft stick: if they try to shut out mono, they will lose developers to Java.

    14. Re:Platform Independence by smartin · · Score: 1

      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.

      Bullshit, .NET is touted as being an open standard, which is true for the c# language and various portions of the framework. The the truth is that it is intented largely to be scripting language for legacy and propietary dlls. M$ can blow sunshine up that asses of gulible IT managers saying it's open and potentially crossplatform but the fact of the matter is that unless someone ports the propietary interfaces to other platforms, it ain't gonna happen. M$ knows this and if anyoen makes a really serious attempt to do it, they will step in and slap them down (but only after someone like Ximain expends an enormous amount of money and energy doing it). I think that Miguel know this and that this is the main reason that Forms are not a high priority for them.

      Remember it is not in M$'s interest for .NET to actively take off on Linux, as a matter of fact it is very much against their interest. They are tolerating it only because they want .NET development to spread knowing that most of it will end up having to be run on windows systems due to the fact the main core components are net available on other platforms.

      --
      The difference between Canada and the USA is that in Canada healthcare is a right and gun ownership is a privilege.
    15. Re:Platform Independence by Anonymous Coward · · Score: 0

      Umm you know that the Mono team is part of the standardization comittee for .NET 2.0

      They already have a foot in working with the .NET API's.

      Stuff like Longhorn is so way-out that the APIs are going to be different - you have Indigo, a new graphics subsystem, etc. But a large portion of non-ui code will still be portable since that will be ECMA standardized

  26. Whigs by Anonymous Coward · · Score: 1, Funny

    I don't know about anything else, but the Whigs were a political party for christ sakes.

  27. 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 Trejkaz · · Score: 0, Flamebait

      You do know this is in reference to a different joke set, right?...

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    3. 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
    4. 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.

      --
      .
    5. Re:Miguel is dead! by Anonymous Coward · · Score: 0

      Miguel is C

      -the dead

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

    7. Re:Miguel is dead! by Anonymous Coward · · Score: 0

      Dead guys can't write to slashdot.

    8. Re:Miguel is dead! by zbrimhall · · Score: 1, Funny

      Miguel is C!

      -The Dead

    9. Re:Miguel is dead! by Anonymous Coward · · Score: 0

      He was truly a Mexican Icon.

    10. Re:Miguel is dead! by jhoger · · Score: 1

      Miguel-fez: C, goodday... I say goodday!

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

      Wouldn't that make him a Mexicon?

      --
      WWJD.... for a Klondike bar?
    12. 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.

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

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

    15. 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.
    16. Re:Miguel is dead! by Anonymous Coward · · Score: 0

      For those who didn't get this, this is in reference to a joke in reference to a philosopher called Nietzche (sp?) who proclaimed "God is dead" - meaning God is no longer useful to our society, or something. A typical comeback graffitied at random places is:

      "Nietzche is dead!"
      --GOD

      Hope this helps.

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

    18. 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.
    19. 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.)
    20. Re:Miguel is dead! by excessive · · Score: 1

      I certainly very much doubt they're going to start rewriting kernels and device drivers in C# just yet...

    21. Re:Miguel is dead! by pyrrho · · Score: 1

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

      this is a very good use of C++... the bundling of functions with the data they work on is very usefull. There is no reason to use every feature of C++, it is a multiparidigmed language, but your programs are not supposed to be multiparadigmed, they should choose a paradigm and stick with it.

      In fact... if you stuck with just the C++ you described, there is no reason that you couldn't use C++ for a "small memory embedded system" with potentially no overhead penalty for using C++, but with the benefit of better organized code.

      --

      -pyrrho

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

    23. Re:Miguel is dead! by Mr+Smidge · · Score: 1

      That quotation just keeps popping up, doesn't it? :-)

      http://slashdot.org/comments.pl?sid=96273&cid=8317 826

    24. Re:Miguel is dead! by Anonymous Coward · · Score: 0

      Hey, there's another quote, too. It goes something like this...

      Java is a language that combines the dynamic nature of C with the runtime efficiency of Common Lisp.

      I'd assume this would fit CLR or otherwise non-native implementations of C# as well.

    25. Re:Miguel is dead! by Anonymous Coward · · Score: 0

      I have a theory too... that you are an idiot zealot with a hidden agenda.

      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!

      Do you write all your code in assembly language? Why not? Once you've figured out this rather simple question, you will be well equipped to understand your own dumbass question.

    26. Re:Miguel is dead! by Angstroem · · Score: 1
      C is a language with the flexibility and speed of assembly combined with the ease of use of assembly.
      One of the biggest misconceptions about C is that it is a high-level programming language.

      It isn't.

      It's a macro-assembler.

    27. Re:Miguel is dead! by Anonymous Coward · · Score: 0
      I agree with you that there aren't many such cases. The one I mentioned (extremely memory constrained embedded stuff - like where you don't even have room for the malloc library) is the best example I can think of.

      (i was the parent post, but switched to AC because the moderators seem tempremental tonight. i think your posting was on topic)

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

    29. 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.
    30. Re:Miguel is dead! by FR-lopet · · Score: 1

      I agree totally with what you said. Most of the bugs we encounter at work come from unchecked return codes or unforeseen cases. Sure they had a little problem with virtual destructor when they moved the project from Pascal to C++ but it was quickly fixed when they learned about it. I wonder if C++ compilers could emit a warning for each unchecked return code. Could be really useful here.

      --
      I love the smell of lithium in the morning
    31. Re:Miguel is dead! by ron_ivi · · Score: 1
      Yeah, it's not really a straightforward question.

      But try to construct a similar question in Java or VB or C# or C or Python and 90% of programmers _will_ figure out which function gets called.

      Tripped me up the first time too - forgot about when the default parameter's value was selected. And I read that question back during a phase of my career when I enjoyed reading standards and drafts of standards.

      I find it scary that in C++ it's possible to write a program where most people guess incorrectly which function gets called. (yes, I know about the obfuscated C contests, and those trip up people too - but at least there you don't think you know what'll happen)

      The saddest part is that when I ask the question most people don't know what "complex" means. These days if someone gets past that part I'm happy.

    32. Re:Miguel is dead! by ron_ivi · · Score: 1
      We don't disagree.

      That's why I said I expect C + (one of python, Java, C#) to survive.

      However when I'm hiring programmers for an existing C++ project, I'd at least like them to know which functions will be called when they read the code.

      Ron
      "Programming ... in a high level language is like playing a piano with boxing gloves." -O. Bunemann

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

    34. Re:Miguel is dead! by Anonymous Coward · · Score: 0

      I was always told that BASIC was for beginners, PASCAL was for students and C was for consenting uncles ;)

    35. Re:Miguel is dead! by kevlar · · Score: 1

      Macros aren't programming, they're scripting :-P

    36. Re:Miguel is dead! by fredrik70 · · Score: 1

      bit OT, but one fun thing with todays c++ compilers is that structs are compiled into a class with all it's members public. yup, you can have methods in c++ structs!

      --
      if (!signature) { throw std::runtime_error("No sig!"); }
    37. Re:Miguel is dead! by Anonymous Coward · · Score: 1, Interesting
      Here's a fun one for you:

      How many times is the constructor message displayed, and why?
      #include <iostream>

      class CTest
      {
      public:
      CTest () { std::cout << "In constructor...\n"; }
      };

      int main (int,char*[])
      {
      CTest t1;
      CTest t2();
      CTest *t3 = new CTest;
      CTest *t4 = new CTest();

      return 0;
      }
    38. Re:Miguel is dead! by Anonymous Coward · · Score: 0

      What are you trying to say? That development is really an art, depending on the gifts of individuals and the leadership of project managers, and not easily generalizable to cookie-cutter approaches to success?
      Heresy! Burn him!
      "We are the Priests \
      Of the Temples of Syrinx..."

    39. Re:Miguel is dead! by Anonymous Coward · · Score: 0

      I give up... why doesn't the creation of t2 call the constructor?

    40. Re:Miguel is dead! by zephc · · Score: 1

      In Soviet Russia, BSD confirms that Netcraft is dying

      --
      "I would say that 99 per cent of what my father has written about his own life is false." - L. Ron Hubbard Jr.
    41. Re:Miguel is dead! by jasonsingha · · Score: 1

      C is a pretty decent language to program in (in some ways better than Java --for example it has function pointers), however it has a few substantial short-comings:

      0) Header files suck. ".o" files should contain everything needed to get all of the types and function prototypes needed while compiling. The compiler should be smart enough to compile multiple files at he same time to deal with the forward references problem.

      1) It has an awful standard library. You are expected to build everything yourself but having to write your own balanced trees is just going to slow you down. You would want better namespace control to make importing libraries easier.

      2) As the parent message points out, C has funky arrays. Had they gone right away with the concept of arrays being a pointer to a capacity as well as the elements of the array, then a compiler switch code of been implemented to do array bounds checking (with a performance penalty of course). In this way, only code that explicitly does pointer math would be highly vulernable to buffer over-flow security flaws. Using [] would be safe as long as you got your buffer pointer is a safe way. Using * by itself would be safe _most_ of the time (no pointer math and funky casts used) especially if you had page zero protected and no structures larger than your page size.

      3) It doesn't have "inheritance". I don't care to have real inheritance with methods and everything, just the ability to inherit from a structure and add more fields to it. A special kind of structure would be inheritable and would provide runtime type checking when used with the cast operator.

      4) It doesn't have structured exception handling.

      Java and C# have 0-4 though they go farther than necessary on #3 in my opinion and the force you to use these features whereas some of them should be optional by turning on or off a compiler switch.

      If C had initally had the above features, it would be a pretty sweet language (not withstanding the fact that the size of int and other structures is not gauranteed). You could build objects (aka, add a virtual method table as a slot to a runtime type checkable structure) though I would prefer people see how far you can get without "real" objects. You could add a non-conservative garbage collector with a little help from the compiler, etc.

      This hypothetical language, C# and Java could be improved even more with the inclusion of multiple return values and closures though these features are not essential for a "performance language". While I am asking for features, I'd like keyword arguments and easier to use "rest" arguments than what C has. Throw in tail-calls and I'll wet my pants.

      Going back to hypothetical C only, multiple return values could pretty much eliminate the need to pass pointers to stack variables (but not heap allocated structures and arrays, naturally) when doing function calls hence eliminating the need for C++ style "references" which I must admit I find to be completely confusing and twisted (probably because I haven't treid that hard, I just hate C++). Automatic dereferencing when using "." or "[]" would eliminate a lot of nasty looking * operations when using a pointers to heap objects.

    42. 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.
    43. Re:Miguel is dead! by Anonymous Coward · · Score: 0

      It's not a constructor call, it's a function declaration.

    44. Re:Miguel is dead! by Anonymous Coward · · Score: 0

      I agree, this question was specifically designed to be anything but straightforward, as is made cliear by the lengthy analysis that comes in the answer section.

      However, I could still agree with the quote about many C++ programmers being unable to answer straightforward questions. In a recent job interview, I was given a few such, they were MUCH more basic than the question posted by the parent. 90% of the candidates got them wrong. Every one of those canditates rated themselves as high-level C++ programmers.

      Rather than assume they were all just lying, I will assume that they have all been made lazy by languages like Visual Basic and Java. Now, I don't want to insult these languages...they do what they were built to do. But they also make C++ programmers lazy, because of the ever-present hand-holding.

      As the interviewer put it, "it is easy to make a good C++ programmer into a good Java or VB programmer, but the reverse is not necessarily true."

    45. Re:Miguel is dead! by Anonymous Coward · · Score: 0

      The C++ standard defines both unions and structs as classes. You can put member functions in unions too. This is required by the standard, it is not because of how compilers treat structs.

    46. Re:Miguel is dead! by lpp · · Score: 1

      Erm...I have to disagree. Someone could be a good programmer, but a poor C++ programmer. A good (generic) programmer is (in my mind anyway) one who understands and implements general best practices. This would include general design principles, cognizance of one's environment (i.e. taking into account whether working within a team and therefore communicating appropriately with others), system design, a forward thinking approach for expandability and/or modularity, etc.

      But that person might be a poor C++ programmer. With little experience developing in C++, it will take them longer to complete a proper design and implement it in C++, since they will ( as a good general programmer) be trying to research and understand the nuances of said language.

      It is far less likely (near impossible?) that given these definitions, one could be a poor general programmer but a good C++ programmer, but the distinctions can be important. While as a hiring manager, one would like to always bring on board good general programmers, if you can't take the time to bring someone up to speed on the language to be used, you may need also to search for someone who is a good language-specific programmer.

    47. Re:Miguel is dead! by alan_dershowitz · · Score: 1

      No. Many Java programmers understand Object Orientation quite well. It's C++'s mangled OO-with-crutches syntax that trips them up. You could write an entire book on OO examples in C++ that look plausible and compile, but don't work at all like you'd expect at first glance. This is because C++ has to accommodate more programming styles than just OO. C++ doesn't assume that just because you are using objects that you want to use every OO feature.

      Method overriding and hiding, assigning derived objects to a base class instead of using pointers, using derived methods when on a base class when the base method isn't virtual, not declaring your namespace in your class to call base methods. OO is not hard to understand. OO in C++ is hard to understand. There's a difference.

    48. Re:Miguel is dead! by Cranx · · Score: 1

      #1: Worry about problems that matter. At worst, when using a different compiler that doesn't support void main(), you will see an error.

      #2: Another non-problem. There were no destructors at all, so deleting a pointer to a base class is fine.

      #3: What the hell is "using!?" There's no such keyword in C++. To make base functions visible, first mark them as virtual in the base, then to call them, use the syntax BaseClass::function.

      #4: I see no reason why a derived function can't change the value of default parameters. It's a different class, albeit inherited.

      Also, deleting pb won't leave anything corrupted. delete works exactly like free, it releases memory by looking up a pointer, so it doesn't matter if you cast it to a (char*) and called delete...the memory will still be freed. The only potential problem is if Derived had a non-virtual destructor, it wouldn't be called. But there are no destructors, so there is no clean-up work to perform, so there are no other resources to be left hanging.

      The guy that wrote that doesn't know squat about C++, and you ought to NOT quiz your programmers based on THAT garbage.

    49. Re:Miguel is dead! by Javagator · · Score: 1

      What most of us would do it we ran across a program this confusing, is to write a little test program find out what happens. When you have a compiler, you really don't need to know every dark corner of a language.

    50. Re:Miguel is dead! by IceAgeComing · · Score: 1
      #3: What the hell is "using!?" There's no such keyword in C++. To make base functions visible, first mark them as virtual in the base, then to call them, use the syntax BaseClass::function.

      You're partially right. There is a "using" keyword, but it's used to bring symbols from a namespace into scope. At least, that's the only way I've ever seen it used before. And I've never seen anyone claim that what looks like method overloading is hiding symbols instead. I call BS on this "hiding" idea the guy mentions and will stand corrected if anyone can provide me with a reference saying I'm wrong.

    51. Re:Miguel is dead! by CodingCrackMonkey · · Score: 1

      There may be nothing wrong with using "C with classes," but if you're not the only one working on a program that's possibly a few years old, rest assured that every feature of C++ will be used. Modifying such a program is like walking on thin ice. Just about anything can break it. I think C++ requires way too much self-discipline to be used correctly.

    52. Re:Miguel is dead! by AxelTorvalds · · Score: 1
      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.

      And here is the problem. I'm a C++ programmer and I have to admit since ANSI and ISO have standardized it and templates have got to a nice place, it's really quite a nice language. The problem is the complete lack of real C++ developers. I say this being a user of the language since the late 80's, going through compiler hell and seeing the rise of java.

      Perfect for everything, no. It's a great tool more often than not though. They have made it a better language.

      I hate these language discussions, "foo is dead, long live bar." If you think C has no value, you are either clueless or you work in such a tiny box that you have no idea how the rest of the computing world works. I'd argue that C is a nearly perfect tool for driver and kernel development. I hate writing GUI apps in it but in some domains nothing has ever demonstrated itself better. As for building GUIs and what not, mono does look pretty compelling, I've hacked around with gtk# and it seems like I can make an app do what I want in half the code of C++ or C.

    53. Re:Miguel is dead! by Gr8Apes · · Score: 1

      I'd have to disagree with you on the number of Java coders that truly understand OO well. Most that I've met do not understand it at all, or only vaguely comprehend what OO truly is. I'm not even sure I truly and fully understand OO, but at least I realize that. Most don't have a clue, and happily spout procedural style code within random class methods and call it OO.

      --
      The cesspool just got a check and balance.
    54. Re:Miguel is dead! by scrytch · · Score: 1

      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.

      When it takes that kind of domain knowledge to avoid problems that are that inobvious, that compilers don't typically catch, and that tend to cause crashes and/or corruption ... yeah, I can see why you'd hate C++. I'm not sure it's C++'s model that's at fault here, it's the default behavior that's broken. Non-virtual by default (fine if you don't want polymorphic base pointers). Slicing. Invisible overrides. Non-virtual destructors going boom.

      Compiling under gcc with -pedantic -Wall -Wefc++ is a great idea (and -Werror if you really want to give people fits, but I don't recommend combining that with -Wefc++). But it's just amazing how much of a minefield very straightforward looking C++ is. I bet anyone who isn't Bjarne commits one or two of the sins from that page on a regular basis, and most perniciously, never catches it.

      --
      I've finally had it: until slashdot gets article moderation, I am not coming back.
    55. Re:Miguel is dead! by scrytch · · Score: 1

      A man is a good programmer or he is not a good programmer. He is not "a good C++ programmer

      Ballocks. I'm a pretty decent C programmer. I'm a passable C++ programmer, but I'm a lousy forth programmer and probably worse at Haskell.

      It's like saying Stephen Hawking would be fine if he just walked into Genentech because he's "a good scientist" (theoretical physicist, meet lab protocols. lab protocols, meet theoretical physicist).

      --
      I've finally had it: until slashdot gets article moderation, I am not coming back.
    56. Re:Miguel is dead! by HiThere · · Score: 1

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

      This sounds like someone who has never changed code between brands of CPU.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    57. Re:Miguel is dead! by Anonymous Coward · · Score: 0

      You totally missed his point.

      I'm a Java novice, with a fairly firm grasp on OO. In fact, enough of a firm grasp that I understand where your position comes from (I went to school with the people you describe). The fact that so many people can't even see the beauty in defining an Interface for your brokers .. Or even the point of Interface's over 'extends' .. But anyway..

      What the parent to your post was trying to say was C++ is ugly, without sounding like a troll. I've been wading through this C++ thread and it's all Greek to me, despite knowing C and having dabbled in C++.

      His point was that you can know Java decently, you can understand OO decently and C++ can still throw you for a loop. Java's OO is just cleaner (and does less, admittedly).

    58. Re:Miguel is dead! by drgnvale · · Score: 1

      Macros aren't programming, they're scripting :-P

      Yes they are... oh, your not talking about lisp, are you?

    59. Re:Miguel is dead! by gregmac · · Score: 1

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

      Yes. But, lets take the example of writing a simple web server. If you do it in C, you have to write functions for reading from disk, handling tcp connections, etc etc, and be worried about things like buffer overflows with something you missed.

      If you write the same thing in a VM, then you still have to write these pieces, but at a higher level. You write code that says readFile(), you don't have to write the part that says how to read the file. Basically, it saves a crapload of writing and debugging code (since it's already been done, and is well tested in many other situations), and you can concentrate on programming, not memory mangement.

      I have a theory that programmers should understand memory.

      See, I have this theory that it depends what you're programming. When I write a high level application that a user is going to work with, then no, I don't really care at all where or how something is stored in memory, I just want it to get stored and be able to pass it around as I like. This is not to say that programmers don't need to know memory management - for the people writing the VM, it's very important - but not all of them do.

      I've always been taught code reuse is a good thing. For some reason, I guess a lot of programmers thing that doesn't apply if you're reusing code from a VM (via abstraction)?

      Maybe they think it runs slower - which is true - but for the past couple years, it's been my opinion that it's cheaper to pay a small amount for a faster processor than it is to pay for the time to code in a low level language like C, and for the time to debug all this code.

      --
      Speak before you think
    60. Re:Miguel is dead! by jhunsake · · Score: 1

      Interfaces come from component-based development, not OO programming. They are orthogonal.

      Although I see where you would get confused, most OO books tout interfaces.

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

    62. Re:Miguel is dead! by Gr8Apes · · Score: 1

      Actually, if you notice, I did not dispute his main point. I took issue with his assertion that most Java coders understood OO programming quite well. My experience is that OO concepts are not well understood by many who profess to be OO programmers. That seems to be true both in the Java and C++ worlds, if his statements are to be believed.

      Correctly written C++ code will run and compile just fine, doing exactly what you expect. That you can go beyond the conservative OO programming model and step outside of it, is part of C++'s strength and weakness as a langugage.

      Java tries to enforce the OO paradigm much more strictly, but I've personally seen large code bases in Java from which, if you strip the "class" portion of the code, would almost become pure FORTRAN or PERL code as far as the code programming style and structure goes, along with all the associated problems of using that programming paradigm, despite the fact that it is written in Java.

      I also don't disagree with your statement that some of the code displayed in these threads is abyssmally ugly almost unfollowable code, and I too programmed in C/C++ for quite a few years before jumping into Java. I may even wind up jumping back over to C#, which will include some of the "badness" of C/C++ with "unsafe code" as comopared to Java. Why they felt they needed this, especially in light of some of the performance tests that compare Java with C/C++, I don't know.

      --
      The cesspool just got a check and balance.
    63. Re:Miguel is dead! by GiMP · · Score: 1

      In regard to the closing bracket - welcome to Python. It really has increased my efficiently, not only stopping my need to type them, but to move/modify/format/etc. Brackets just take up time.

    64. Re:Miguel is dead! by alan_dershowitz · · Score: 1

      You know, I can't actually disagree with you there. Most code I see/maintain probably couldn't even be described as "procedural" let alone OO. It's hard enough to get some people even to put stuff in methods.

      My only issue is that its quite easy to pass off bad C++ skills as bad OO skills, when in fact if the same code was programmed in java would be perfectly OO simply because its more straighforward.

      Unfortunately you are right, and most java programmers can't do OO in either language, because they don't even have the concepts down.

    65. Re:Miguel is dead! by jovlinger · · Score: 1

      *shudder*

      I can't imagine why anyone would willingly code in C++. It seems at times to be specifically designed to write hard-to-predict code.

      Not that Java is much better, but at least this sort of ill-behavior is hard to acheive.

    66. Re:Miguel is dead! by ron_ivi · · Score: 1
      "#3: What the hell is "using!?" There's no such keyword in C++. To make base functions visible, first mark them as virtual in the base, then to call them, use the syntax BaseClass::function. "

      Cute. That's exactly the kind of response I get in the interview.

      That and "what does complex 'less than double' mean, and why's there a greater-than at the end" when they see "complex<double&gt";

      "The guy that wrote that doesn't know squat about C++

      LOL :-)
      For those that don't know, "the guy who wrote that" example chaired the ISO C++ standards committee.

    67. Re:Miguel is dead! by Anonymous Coward · · Score: 0
      "I call BS on this "hiding" idea the guy mentions and will stand corrected if anyone can provide me with a reference saying I'm wrong."

      As pointed out elsewhere in this thread, "The guy" who mentioned this was the Chair of the ISO C++ Comittee. What better reference would you like?

      Or did i just fall for your troll?

    68. Re:Miguel is dead! by ron_ivi · · Score: 1
      Excellent advice.

      Much like 'lint' in pre-ANSI-C, I agree with you that additional tools (-pedantic, -Wall...) can make C++ far far safer.

      PS: for all those guys flaming me about asking this as an interview question; scrytch's response ranks among the very best answers I would hope to see in an interview. The point of the interview question isn't to get every piece of trivia right, but to hear the person think outloud about topics like "overloading", "hiding", standard library ("complex<double>), and see how they approach the problem.

    69. Re:Miguel is dead! by Anonymous Coward · · Score: 0
      "I've personally seen large code bases in Java from which, if you strip the "class" portion of the code, would almost become pure FORTRAN or PERL code as far as the code programming style"

      Well, if the guys above were arguing that using C++ as "c with classes" was a good practice; surely using Java as "Fortran with classes" is good as well. :-)

    70. Re:Miguel is dead! by GooTi · · Score: 1

      I also have a theory that next programmers will complain about having to use end-paren and close-bracket...

      Close enough.. but actually it is "we're only interested in indentation... the computer should recognize blocks for us!"

      (apologies to Guido et al :-)

    71. Re:Miguel is dead! by Anonymous Coward · · Score: 0
      Yup. I agree. C shouldn't have been mixed with Object Oriented techniques any more than it should have been combined with Haskell for functional programming.

      Smalltalk, Java, C# all count as object oriented languages.

      C, Fortran, Perl are nice functional languages. (and yes, I know you can do object-oriented programming in each of those, but it still sucks).

      C++ tries to be both, but is neither.

    72. Re:Miguel is dead! by Anonymous Coward · · Score: 0

      Wish I had mod points. Even Python and Perl have interfaces.

    73. Re:Miguel is dead! by Sivaram_Velauthapill · · Score: 1

      I think we are getting into a debate over high-level programming languages vs low-level. You clearly value low-level lanagues while I support high-level ones.

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

      That is not really correct. The difference, you see, is that the higher level lanaguage already provides the features whereas YOU have to program them yourself in lower level languages. The VM is less likely to be buggy, or even if it were the bugs would be fixed more easily/quickly, because it is standardized. One person/team/whatever writes the VM and many people use it. Therefore bugs will be detected more easily, many will test the system, and so forth. If YOU were doing it, only you and perhaps a few others will do those things. If the VM is buggy, the problem will be resolved very quickly. If YOU make a mistake how long will it take before someone observes it?

      I have a theory that programmers should understand memory.

      Why is that necessarily if the programming language "abstracts away" the memory system? Why would you need to know about memory in C# when you don't really have any control over it? What you are saying only makes sense if one is using low level languages.

      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!

      Yes that will happen (no joke). What's wrong with it? This is no different that expecting the standard programming libraries to have math functions, whereas assembly and other lower-level languages don't even have them. Automated closing of brackets may seem silly but having existing math functions seemed silly at one time too. If you don't buy this math example (I admit it sucks :) ) how about graphics? At one time you had to draw everything pixel-based, but nowadays you hardly do anything at that level. Programmers expect their languages/libraries/systems/whatever to do that. In a similar manner, I think the day will come when programmers will expect the IDE or the compiler to automatically end closing brackets.

      I think you value low level programming languages over high level ones. My theory is that high level languages will replace all low level languages in the future*. This is a natural progression as computer processing power increases. Just like how C replaced Assembly/Cobol/Fortran, and how C++ replaced C, C# and Java will replace C++, and maybe something even higher level (say Python, Ruby, or some futuristic language) will replace C# and Java.

      (* Obviously you need low level languages for some things. So when I say low level languages will be replaced, I certainly am not saying that assembly, C, etc will dissapear completely. There might still be a 1% of the industry that will use it. )

      Sivaram Velauthapillai

      --
      Sivaram Velauthapillai
      Seeking the meaning of life... @slashdot of all places ;)
    74. Re:Miguel is dead! by Sivaram_Velauthapill · · Score: 1

      Your argument is moot since C is an older, hence more "primitive" (I'm going to get flamed by the cavemen for this ;) ), language. One would expect C to have less modern features than say C++ or Java. What you are doing is akin to a C programmer pointing out a bunch of flaws with assembly...

      For instance, you point out that C doesn't have inheritence. Well, obviously C isn't an object oriented language and it was inserted into C++ (and all other languages after that).

      A lot of people don't look at languages the way I do, but let's face it. The older languages are "worse*" than the younger ones. I think of all this in an evolutionary framework. C# evolved from Java; Java evolved from C++; C++ evolved from C; and so forth.

      (* When I say worse, I'm mainly talking about features and changes that fix past problems. Clearly lower level languages are more powerful but they are worse. For instance, I would consider a language without array checking to be inferior to one that has it EVEN if the one that checks is slower. Similarly, having pointers in a language is inferior to not having them since pointers have been shown to cause many of the bugs in programming (at least when C was popular in the 90's). Clearly pointers are faster and more powerful; however, I consider it worse from an evolutionary point of view).

      Sivaram Velauthapillai

      --
      Sivaram Velauthapillai
      Seeking the meaning of life... @slashdot of all places ;)
    75. Re:Miguel is dead! by AuMatar · · Score: 1

      Wow, the ultimate strawman argument, yet again. Memory handling is not hard, and is not a major problem. Looking at defect reports from work, memory errors are less than 1% of all bugs, are found earlier in the development process, and fixed quicker than any other type of bug. In other words, they're negligible. Whats hard to find and fix are logical errors- and if anything due to convoluted libraries and difficult to understand syntactic sugar, "higher level" languages like Java and Python are more prone to them.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    76. Re:Miguel is dead! by AuMatar · · Score: 1

      If you write the same thing in a VM, then you still have to write these pieces, but at a higher level. You write code that says readFile(), you don't have to write the part that says how to read the file

      Umm, what exactly do you think we do in C? We call fread(), which get an array of bytes. If the data is more complicated, we write a function that takes that array and stuffs it into our preferred data structure. What do you think we're doing, writing functions to do disk seeks and head movement ourselves? Claiming that Java/Python/other does any more for you hear than C is ridiculous.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    77. Re:Miguel is dead! by Anonymous Coward · · Score: 0

      That whole thing about C being a macro-assembler
      is pure bullshit.

      The macro facility in C is NOWHERE NEAR as good
      as the macro facility in any half-reasonable
      assembler!

    78. Re:Miguel is dead! by AuMatar · · Score: 1

      They probably learned C++ in the 90s. I did myself- exceptions were never used (and poorly or not supported), templates didn't exist yet, and namespaces weren't even being considered. WHile templates are cool, they could have gotten rid of the other two and made a better language.

      Code examples like that problem are why I stick to C 90% of the time- for the small gains C++ gives you (templates, inheretance (although thats HUGELY overused by too many programers)) it isn't worth the extra problems and pitfalls.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    79. 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

    80. Re:Miguel is dead! by AuMatar · · Score: 1

      I'd disagree that lower level languages are "worse". In fact, looking at the grandparent's list, I find everything he wants to be a bad idea.

      1)Standard library? Standard libraries just kill innovation by making everyone default to one way of doing it. Look at he Java libraries- frequently clunky, poorly designed, and some parts are just laughed at. Libraries shouldn't be decided by the standards comittee. Let people write libraries on their own, and let competition bring out the best. Just about anything you want a library for you can find with a quick google.

      2)C's "funky arrays" are necessary if you want to have arrays as pointers. I'll take the power of pointers over the negligible gain of a capacity field any day. I also don't WANT the compiler adding any code for me- I'll do my own bounds checking, thanks.

      3)Inheretance- C isn't an OO language

      4)Exception handling? Bleh. Exceptions break the logical flow of the code. The idea that we can all of a sudden jump to an arbitrarily high error block at any time is what makes C++ and Java so hard to debug.

      The more I see other languages, the more I think C is really optimal. Its more amthematical syntax is easier to read than assembly, but it still stays at the machine level- the C program is writeen the way the machine thinks. Unless you need a quick script to run some applications together, C really seems to be the ideal language.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    81. Re:Miguel is dead! by orthogonal · · Score: 1

      C is a pretty decent language to program in (in some ways better than Java --for example it has function pointers), however it has a few substantial short-comings:

      It's funny, as I read this, I really thought it was a tongue-in-chhek post designed to advocate for C++, because almost all the shortcomings you identify in C are remedied by C++. I honestly thought your post would end with some variant on "and that's why I use C++".

      As far as your issue zero, header files and linkage, isn't remedied by C++, but it's not a shortcoming of C, per se; it's an issue of the linker, which is a distinct piece of software that in many cases must also be backward compatible.

      Issue 1, an "awful standard library" (and I'd take issue with this; the C standard library isn't awful, but of necessity it's the lowest common denominator library, in order to make C available across the greatest numbers of architectures and operating systems) is ver well supplemented by C++'s Standard Template Library (and by the Boost libraries).

      Issue 2, that C arrays don't know their own extent, is remedied by using C++'s vectors (or one of several other aggregates).

      Issue 3: inheritance; C++ of course has inheritance. You note that you "don't care to have real inheritance with methods and everything, just the ability to inherit from a structure and add more fields to it," plus some RTTI. Please realize that you can do this in C: you can "inherit" a structure, in the sense that you mean, by making the "inherited" structure the first element of the "derived" structure:

      enum TYPE { UNKNOWN, BASE, DERIVED } ;
      struct Base { int stuff; TYPE type ; } ;
      struct Derived { struct Base base; int morestuff ; } ;

      According to the C Standard (both C99 and the earlier ANSI Standard), casting a pointer to an aggregate type to pointer to the aggregate's first member is completely legal and defined. Therefore
      void f( struct Base* b ) {
      if( b->type == DERIVED ) { /* here's the RTTI you asked for, by the way */
      Derived* d = (Derived*) b ;
      int ms = d->morestuff ; ....
      }
      }
      Is completely legal (and yes, under C99 so are the declarations not being at the top of the function.) Of course, C++ would use RTTI, it would use a v-table, and of course, you can build thatDesign & Evolution of C++ can tell you.

      Issue 4: You also want structure exception handling, which C++ has.

      You additionally mention the desirability of closures a multiple return values. C++ has both, more or less: closures are implemented by functors, classes impersonating function calls by means of operator(); multiple return vales by using classes implicitly, as with templated function makepair.

      So you can understand why, on reading your post, I really thought you were making a sly argument for the use of C++. Instead, to me great bemusement, you end by saying you hate C++ for, of all things, references (which are just -- except for a few points -- syntactic sugar for pointers). Give C++ another try, and you may find that hate changing to love.

    82. Re:Miguel is dead! by Anonymous Coward · · Score: 0

      No more than Stephen King is an Americon.

    83. Re:Miguel is dead! by pyrrho · · Score: 1

      I've figured out this simple question. And I've also heard it repeated a thousand times. Don't like pointers? Don't write in assempbly, use a class system that allows you to not use pointers.

      You can tell how well hidden my agenda is.

      You are a trusting fool to think the bugs you can do nothing about in a VM are always better to have than bugs in you own systems that you could fix or avoid with engineering practices.

      But certainly, use whatever language you like. And don't forget... with opinions like your it's best to keep posting anonymously! But when speaking about bugs... remember to speak for yourself.

      --

      -pyrrho

    84. Re:Miguel is dead! by Anonymous Coward · · Score: 0

      Sad but true. Add templates to C and you don't even need C++.

    85. Re:Miguel is dead! by Sivaram_Velauthapill · · Score: 1

      You are overlooking the advantages of higher level languages: less bugs and quicker to develop. I disagree with your comments:

      1)Standard library? Standard libraries just kill innovation by making everyone default to one way of doing it. Look at he Java libraries- frequently clunky, poorly designed, and some parts are just laughed at. Libraries shouldn't be decided by the standards comittee. Let people write libraries on their own, and let competition bring out the best. Just about anything you want a library for you can find with a quick google.

      People writing their own libraries can result in way more bugs. Using a standardized library means that you know it works and exactly what it does. This is why they are so popular. No one wants to write their own TCP/IP library. They want to use an existing, throughly tested one.... In any case, what you are saying can still be accomplished. If a language has horrible libraries, use your own. No one is stopping the "innovation" that you cite.

      2)C's "funky arrays" are necessary if you want to have arrays as pointers. I'll take the power of pointers over the negligible gain of a capacity field any day. I also don't WANT the compiler adding any code for me- I'll do my own bounds checking, thanks.

      You will do a FAR WORSE job doing bounds checking than the compiler or interpreter. Also, compilers these days are more efficient than programmers. Using pointers is more flexible but it is far more risky. The vast majority of problems (and hard to debug issues) in C are from pointer problems.

      4)Exception handling? Bleh. Exceptions break the logical flow of the code. The idea that we can all of a sudden jump to an arbitrarily high error block at any time is what makes C++ and Java so hard to debug.

      Exception handling can be better. I don't think it is that great in any of the popular languages that I know of. But back to your point, they are important. Again, you avoid bugs with exception handling.

      The more I see other languages, the more I think C is really optimal.

      C is optimal if you don't care about some things (such as bugs, development speed, etc). What the higher level languages provide are development speed and simplicity at the expense of performance and flexibility. I personally think that higher level languages will always rule. As a matter of fact, I expect all future applications (in many years from now) to be written in scripting languages. I think something like Pyton (or a future language like that) will dominate. It sounds crazy but I think it will happen. As computing power increases higher level languages and scripting languages will become more attractive.

      Sivaram Velauthapillai

      --
      Sivaram Velauthapillai
      Seeking the meaning of life... @slashdot of all places ;)
    86. Re:Miguel is dead! by pyrrho · · Score: 1

      C++ is a high level language.

      The difference, you see, is that the higher level lanaguage already provides the features whereas YOU have to program them yourself in lower level languages.

      why am I not allowed to use any of the thousands of libraries and class systems?

      And you need to understand memory because the machine does. You cannot abstract it away. However, I'm not saying don't use higher level memory abstractions, just understand what's being abstracted. Not wanting to understand what a pointer is is a terrible reason to use a VM based language. But if you don't want to mess with pointers, that's a different matter, and it's also, by the way, a paradigm available within C++.

      The thing that bothers me is the argument that high-level == VM based languages. That holds no water whatever. C++ is plodding along with it's "high level" + "no paying for what you don't use" philosophy and doing quite well with it.

      --

      -pyrrho

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

    88. Re:Miguel is dead! by AuMatar · · Score: 1

      People writing their own libraries can result in way more bugs. Using a standardized library means that you know it works and exactly what it does. This is why they are so popular. No one wants to write their own TCP/IP library. They want to use an existing, throughly tested one.... In any case, what you are saying can still be accomplished. If a language has horrible libraries, use your own. No one is stopping the "innovation" that you cite.

      Bugs happen in implementations of standard libraries too. Being standard doesn't decrerase it. And you're right, not everyone should write a TCP/IP library- you buy one or find one on the web. Google is your friend. Try it, you'll find many more, and higher qualitty, C libraries than you will for Java.

      The vast majority of problems (and hard to debug issues) in C are from pointer problems.

      THis is just not true. Just like any other languge, the majority of bugs occur due to logical, not syntax, errors. Thse are the bus that are hard to find and expensive to fix. These kind of bugs are quick.

      Again, you avoid bugs with exception handling.

      No, you don't. You avoid bugs with error handling. Exceptions are a poor way of doing it. It breaks the logical flow of the program, and encourages laziness. Exceptions are a way of trying to avoid doing actual error checking, and is a huge source for bugs.

      C is optimal if you don't care about some things (such as bugs, development speed, etc). What the higher level languages provide are development speed and simplicity at the expense of performance and flexibility

      False. The "higher level" languages are no faster to program in than C or C++.

      As computing power increases higher level languages and scripting languages will become more attractive.

      That may be the wost argument of all. First off, as computing power increases, so do features and bloat. Enough so that it completely eats up the Moore's law gain. Secondly, its assuming you buy the newest hardware. There is no reason that I shouldn't be able to use my current hardware for years. Forcing people to do costly hardware upgrades to use the latest software just shows how poorly we're doing our job.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    89. Re:Miguel is dead! by blorf · · Score: 1
      "Reuse is bad" and NIH syndrome are basically symptoms of immature software development process (and indeed immature software developers). Any complex piece of software is going to have to reuse proven libraries and strategies to be successful. Imagine having to rewrite the STL every time you needed a container class.

      That brings me to a related point, and that is the irony of some developers' irrational fear of technology. For example, they might "know" C++ but refuse to use Java because they are not familiar (and therefore afraid) of it, even though it might be a better tool for the job. This problem is evident in the area of systems administration as well, for example, the guy who wants to rip out all the working PHP code and replace it with "X" vendor solution (or vice versa) because they're not familiar with the toolkit in question. That sort of thing only does a disservice to the organization because it invariably ends up costing money

      The best approach is usually a degree of pragmatism -- try to work within the existing structure, and if you find yourself not understanding what you're looking at, use it as an opportunity to learn something new. Don't be arrogant and assume you're just going to rip everything out and start fresh, and somehow magically avoid the same pitfalls.

    90. Re:Miguel is dead! by Gr8Apes · · Score: 1

      Well said. Then again, if anyone wants to argue that the absolutely horribly C++ crap that was presented is perfectly acceptable coding practices....

      --
      The cesspool just got a check and balance.
    91. Re:Miguel is dead! by mp3phish · · Score: 1

      Uhh... And what is preventing you from having the same problems in C? You said yourself, it is like using tons of globals.... So don't do it if its not good to do.

      Have you ever worked on a program with tons of globals? Ok then, there are stupid programers everywhere. Using C and using C++. That doesn't make the idea of "C with classes" any less usefull or any more wrong.

      --
      Your ignorance is infinitely greater than you realize.
    92. Re:Miguel is dead! by Trejkaz · · Score: 1

      Obviously the mods meant "Informative" but missed the button.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    93. Re:Miguel is dead! by jasonsingha · · Score: 1

      Your certainly bring up some good points especially with your hack for doing inheritance. It isn't quite the same thing as true inheritance though because I'll still have to do tons of casts everywhere and thus the compiler essentialy won't do type-checking the way it would if it understood inheritance. If I use your trick with a manually constructed safe cast which I could probably make using the typeof, then I could probably get what I want which is as much static type checking as possible.

      My primary problem with C++ is that while it has almost all of the extra features I think are truly important, it also has tons of "features" which I find confusing, useless, and or dangerous. Whenever I have seen large C++ programs, I invariably wish that they were written in Java or C#.

      I agree with you that if a subset of C++ is used wisely, then it is in fact a great language (though I still want to get rid of header files as priority number 1). In fact, using C++ with the CLR even makes C++ better. However, if you worked with some of the "programmers" I work with, you would spend all of your time worrying about the messes you would have to endure when they bumbled around with the complicated semantics of C++. I think this is why Java and C# or so popular even though when C++ is used in the right way, it is more or less as good as Java and C#. (I think C++ would also be more popular today if it went through less churn when it was being standardized so that the various compilers were more compatible in the early days.)

    94. Re:Miguel is dead! by jasonsingha · · Score: 1

      I agree that if one were to design a language today, they should be able to use real world experience to take the best features from all of the available languages and make a super-language.

      I just want to make sure that you aren't saying that language evolution has uniformaly progressed from ok --> good --> better. Some old languages like Lisp were actually pretty advanced but languages that came after them usually didn't borrow the most powerful ideas since that would have made them slower (either that, or the people making those languages don't share my tastes). Examples of powerful features from Lisp/Scheme: generic arithmetic with arbitrary percision integers, closures, powerful macro systems, dynamic evaluation, and first class continuations

      Until recently, performance has always been the most important factor but the tide has turned and people consider safety and ease of use to be the important properties of the language. For example, making (basically) every object a hashtable like Python, Ruby, and JavaScript do is really convenient for quickly making programs with fewer declarations or for adding your own properties to objects you get from someone else code, but people avoided dreaming about such a luxury when trying to create a compiler for a 4MHz 8086 machine. Ease of use was secondary to the degree that C compilers of the day had ints that were only 16 bits by default.

    95. Re:Miguel is dead! by Sivaram_Velauthapill · · Score: 1

      C++ is a high level language.

      Yes, but C#/Java is even higher.

      why am I not allowed to use any of the thousands of libraries and class systems?

      Well you CAN use your own library. It just depends on the details. For instance, if you don't like the, say, standard network libraries, you can purchase your own or design your own. There is nothing stopping you from overriding or using your own. Of course, there are some basic ones that are required. But this goes for any language. I mean, even C++ has basic libraries (such as the math libraries, or vectors, and so on).

      I don't really think the higher level languages are really limiting you too much. Yes, you lose some power; but you gain some improvements. The main downside to higher level languages is speed, but since computing power always increases, this isn't a big deal.

      And you need to understand memory because the machine does. You cannot abstract it away. However, I'm not saying don't use higher level memory abstractions, just understand what's being abstracted.

      Memory is abstracted ANYWAY. I'll bet that your understanding of memory is very different from the underlying truth (depends on your knowledge though--this might be a losing bet on my end :) ). The understanding of memory by programmers (computer scientists) is an abstract version of the reality (as understood by computer engineers). As you move into higher and higer programming languages, it becomes more abstract. For example, programming in assembly pretty much meant that you need to know about individual registers on the, say, x86 processor. When you program in C, your knowledge is a little bit more abstract (not quite the same degree as assembly). If you go even higher into C++, you hardly deal with registers. Furthermore, in Java you hardly deal with any memory at all (since you odn't have pointers). Basically, memory gets abstracted more and more as you move up. I don't see anything wrong with that. If you are programming in C# or Java, you can't even access memory locations so what knowledge is required regarding memory?

      Having said that, I agree with you that it is always good to have an understanding of what is going on. The real question is, where do you draw the line?

      Not wanting to understand what a pointer is is a terrible reason to use a VM based language.

      I agree! Using a higher level language because you don't want to understand pointers is a terrible decision. HOWEVER, using a higher level one because you want to minimize bugs caused by pointers (of which there are many in C and C++) is a great idea. I would hope that higher level languages become popular because of the features they offer (eg. less bugs due to less probability of manipulation of pointers; quicker development; etc), and not because you can't understand the lower level language. If you can't--or don't want to--learn lower level programming language concepts then you shouldn't even be programming. Higher level languages "dumb down" programming but that's not why I support them; I support them because they are superior.

      The thing that bothers me is the argument that high-level == VM based languages. That holds no water whatever.

      I'm not necessarily talking about a language with a VM, although the two emerging ones (C# and Java) do have it. I am also arguing in favour of higher level ones like Python or Javascript (these are interpreted). In any case, C# and Java ARE higher level than C++.

      C++ is plodding along with it's "high level" + "no paying for what you don't use" philosophy and doing quite well with it.

      You could have used that argument 20 years ago in favour of assembly (instead of C). Or 10 years ago in favour of C (instead of C++). Yet, the higher level ones won out. If you don't like the higher level emerging languages you can stick with a lower level one that you like. However, by doing so, you give up the benefits

      --
      Sivaram Velauthapillai
      Seeking the meaning of life... @slashdot of all places ;)
    96. Re:Miguel is dead! by Sivaram_Velauthapill · · Score: 1

      Any complex piece of software is going to have to reuse proven libraries and strategies to be successful. Imagine having to rewrite the STL every time you needed a container class.

      I'm not sure if your message is directed at me because I agree with everything you say :)

      That brings me to a related point, and that is the irony of some developers' irrational fear of technology.

      A technologist fearing technology sounds oxymoronish but it's true :( People should always be willing to learn new technologies yet many in the field don't. Perhaps it's tight deadlines and pressure, or maybe people in the field just aren't into technology (i.e. not really tech-savvy like on Slashdot), but whatever the hell it is, it isn't good.

      The whole point of universities is to teach you to learn. Universities aren't there to teach you C or C++. They are there to instill confidence in people so that they will learn any new language/technology that they face in the future. If someone encounters C#, they should learn that--not abandon it. Unfortunately, it seems universities have completely failed in this matter (although the fact that employers don't hire based on this might have something to do with it).

      Sivaram Velauthapillai

      --
      Sivaram Velauthapillai
      Seeking the meaning of life... @slashdot of all places ;)
    97. Re:Miguel is dead! by Sivaram_Velauthapill · · Score: 1

      Bugs happen in implementations of standard libraries too. Being standard doesn't decrerase it.

      Standard library bugs are more easily detected (since many people use it) and are fixed more quickly. If you write your own library or use a 3rd party vendor, the reliability will be worse.

      And you're right, not everyone should write a TCP/IP library- you buy one or find one on the web.

      These ones won't be as dependable. I'm not saying you shouldn't do it. If it suits you, go ahead. But their quality is worse. If Microsoft finds a bug in their C# library, you are pretty sure it will get fixed. If you find a library on the net you are not quite sure--it may get fixed today or next year.

      In any case, no one is forcing you to use these libraries. There is nothing stopping you from plopping down your own library and using it.

      THis is just not true. Just like any other languge, the majority of bugs occur due to logical, not syntax, errors. Thse are the bus that are hard to find and expensive to fix. These kind of bugs are quick.

      Pointer errors fall into the logical category. They clearly are not syntax or else the compiler would pick it up. Pointer errors ARE a HUGE problem in the C/C++ world. If you don't believe me, why do you think operating systems started allocating specific memory area for each software? Why is Longhorn (and .NET) limiting memory usage by an application to specific areas? It's because memory leaks, memory corruption, and others are the biggest problem plaguing software--and nearly all of these are due to pointer problems. If you still don't believe me, let's wait until Longhorn comes out and we'll see how good the software is. If what I am saying is right, applications written in C# will be less buggy than C++.

      No, you don't. You avoid bugs with error handling. Exceptions are a poor way of doing it. It breaks the logical flow of the program, and encourages laziness. Exceptions are a way of trying to avoid doing actual error checking, and is a huge source for bugs.

      If you can do error checking, you should do that foremost. You only use exception handling if you can't do error checking. An an example, games don't do much error checking because it slows things down. Instead they rely on exception handling (at least in the performance critical areas). In contrast, a typical application should do error checking. If you are not doing error checking and relying on exception handling, your methodology is wrong.

      So to sum up, if someone is doing exception handling instead of error checking, they are making a mistake. They are two different things and can't really replace each other (for instance, exception handling doesn't really tell you what is going on because the exception may be caused by a whole hoard of issues whereas error checking tells you exactly where the problem is). So I guess we kind of agree on this issue: people shouldn't be using exception handling when error checking is sufficient.

      False. The "higher level" languages are no faster to program in than C or C++.

      Wait 3 years and tell me if this is true. Higher languages are ALWAYS faster to program in than lower level ones. Historically this has always been true IN GENERAL (of course there are some minor exceptions). Assembly takes longer to program than C; C takes longer than C++; and C++ should take longer than C#. The features added by higher level languages always speed up development. For example, drawing a window using assembly takes an insane amount of time. In C, it would take quite a while too. In C++, it would be much quicker.

      C# and Java (although I think C# will kill off Java) will dominate in a few years. Things that took you 1 hour now will probably take 30 min in C#.

      That may be the wost argument of all. First off, as computing power increases, so do features and bloat. Enough so that it completely eats up the Moore's law gain. Secondly

      --
      Sivaram Velauthapillai
      Seeking the meaning of life... @slashdot of all places ;)
    98. Re:Miguel is dead! by Cranx · · Score: 1

      I just found out "using" *is* a C++ keyword, so I was wrong there, but it's new and the rest of it is garbage.

      Listen, have you looked at the complete C++ specification? It's 80% useless crap. The multiple inheritance model is more problem than solution. That this guy chaired on the C++ committee means nothing...he's perfectly capable of spewing utter nonsense as much as anyone else.

    99. Re:Miguel is dead! by GenSolo · · Score: 1

      So you're saying that just because most of the people who claim to be C++ programmers are idiots, C++ sucks? That's interesting. Most of the people I deal with who claim to be Java programmers are idiots who write horrid Java code that will generally not work properly, but I don't use that to claim that Java sucks. Furthermore, is there any reason to use C anymore instead of C++? A C++ compiler makes C much safer, and you can do everything in C++ that you can do in C, so why use C?

    100. Re:Miguel is dead! by GenSolo · · Score: 1

      This is not to say that programmers don't need to know memory management - for the people writing the VM, it's very important - but not all of them do.
      If you can't perform/understand simple programming tasks, you haven't earned the priviledge of having the computer do it for you. Take most math classes for example. You learn to do long division before you're allowed to use a calculator for it, and you learn to evaluate derivatives and integrals algebraicly via limits before you learn the short cuts. One big problem with the software industry today is that people who can't do simple things like memory management call themselves programmers because they can stick together some VB or Java or C# code that compiles and doesn't crash but is still a piece of crap.

    101. Re:Miguel is dead! by Anonymous Coward · · Score: 0

      The real question is, where do you draw the line?
      I draw the line at transistors. I find it acceptable to know nothing about how they're made because that is actually irrelevant because there are multiple options which each behave the same way. How transistors combine into logic gates, how logic gates are used within the CPU, how the CPU interprets instructions and interacts with memory (machine language), and assembly language are important things for any programmer to understand if they want to write effective software.

    102. Re:Miguel is dead! by ron_ivi · · Score: 1
      Partent wrote: "That this guy chaired on the C++ committee means nothing...he's perfectly capable of spewing utter nonsense as much as anyone else."

      Before calling people clueless, you should check their credentials.

      Herb Sutter is also:

      • Currently Visual C++ architect for Microsoft
      • former editor-in-chief of C++ Report
      More than anyone else in the world, this guy not only knows C++, he defines what it will become. Before dismissing what he has to say, it's worth reading his papers about C++ and .net to see the future of this languages.

      I really thought you were being sarcastic and shooting for funny on your first posting to this thread when you wrote "The guy that wrote that doesn't know squat about C++, and you ought to NOT quiz your programmers based on THAT garbage" and "There's no such keyword in C++." (And finally, yes, in your first post you were wrong about thinking it's safe to use destructors the way you described. Like a stack overflow, just because you haven't run into a problem yet doesn't mean it's safe to be sloppy programming in C++.)

    103. Re:Miguel is dead! by Anonymous Coward · · Score: 0
      " I just found out "using" *is* a C++ keyword, so I was wrong there, but it's new" !?!

      New? Like 8 years old new!

      The GOTW question that started this thread was first published in 1997, and "using" has been part of C++ longer than that.

      If you think 1995,1996 features are new you must not get out much. Next thing you'll be telling us is that Windows95 is too new for you as well.

    104. Re:Miguel is dead! by GenSolo · · Score: 1

      Things that took you 1 hour now will probably take 30 min in C#.
      Software development isn't language dependant, it's paradigm dependant. C# isn't that different from C++ except that it removes some flexibility. That is to say, it makes it impossible for a bad programmer to screw up an easy task while making it more difficult for a good programmer to accomplish a more difficult task.

    105. Re:Miguel is dead! by Anonymous Coward · · Score: 0

      My primary problem with C++ is that while it has almost all of the extra features I think are truly important, it also has tons of "features" which I find confusing, useless, and or dangerous.
      The beauty of C++ is that you don't have to use them, and if you don't use them, you don't pay for them. Just because bad programmers write bad code doesn't make a language a bad language.

    106. Re:Miguel is dead! by Cranx · · Score: 1

      It means nothing, that article is pure crap. I was dead serious about all my points (except "using"), and my summary.

      Go back to my first post point by point and comment. Calling destroy to a base pointer which points to a derived object is SAFE. C++ destroys objects in two steps: first, it calls the destructor, which presumably performs cleanup operatings, then it frees the memory. The amount of memory it frees is determined by a looking based on the memory the pointer points to, not the size of the object. There were no destructors defined at all for either the base nor the derived object, so there's nothing wrong with calling destroy on a base pointer. In fact, LOTS of class APIs do exactly this, and unless a derived class is destroyed this way which defines a non-virtual destructor, and that destructor needs to free up resources, this results in absolutely NO harm.

      Discuss my points, don't keep throwing that guy's credentials at me. Is that why you value that article? Think for yourself. It's 100% garbage.

    107. Re:Miguel is dead! by Cranx · · Score: 1

      When was it adopted into the ANSI standard? 8 years ago you say? Somehow I doubt that.

    108. Re:Miguel is dead! by ron_ivi · · Score: 1
      Sure it does no harm. And in some implementations I bet you could even combine "new" with "free()" and "malloc()" and "delete" and get away with it. Just like writing past the end of the array is harmless much of the time.

      However the fact of the matter is that the language definition for C++ states that deleting an object without the virtual destructor through a pointer to it's base class is "undefined behavior".

      From a recent draft (the ratified standard costs $$$, but near-complete drafts are freely available): 5.3.5 "Delete", paragraph 3: "...if the static type of the operand is different from its dynamic type, the static type shall be a base class of the operand's dynamic type and the static type shall have a virtual destructor or the behavior is undefined."

      If you enjoy writing code whose behavior is undefined, and your compiler often does what you want it to -- great. But don't try to claim this is valid C++.

      Consider this hypothetical case: If an implementation wants to allocate small structs (things with no vtable) in one memory area (say, on-chip) and large ones in another (say, an external dram); in my understanding it is possible to have a valid compiler that does so. In your case you might be deleting from the wrong pool of memeory.

    109. Re:Miguel is dead! by Anonymous Coward · · Score: 0

      You are a trusting fool to think the bugs you can do nothing about in a VM are always better to have than bugs in you own systems that you could fix or avoid with engineering practices.

      And we come back, again, to the same logical fallacy. Unless you design your own CPU and write in machine code... your point is pure drivel. Not to mention the fact that Mono is FOSS and you can fix whatever bugs you feel like fixing.

      Being completely frank, you are an idiot and a zealot. You don't even understand the tools you are using right now... so a language which takes away more of the grunt work would benefit a clueless gobshite like you even more.

    110. Re:Miguel is dead! by Cranx · · Score: 1

      But the object *has no destructors* in the example, so it's perfectly safe. If the base or derived object had destructors that were not marked as virtual then yes, there could be a problem because the derived destructor would not be called.

      You're mis-reading that description (5.3.5). Classes don't have to have destructors at all. That description is misleading because it makes the assumption that there is a destructor in the dynamic type that won't get called when delete is called on the static type. The behavior is undefined ONLY if the dynamic type has a destructor. If neither the base nor derived object have destructors, delete's job amounts to nothing more than a simple free call.

      Don't insinuate I'm a bad programmer. I consider you to have intellectual shortcomings yourself for using that guy's "test" on your potential programmers. You don't seem to see the kernel of truths in his statements and how they are twisted into something completely nonsensical. They're nonsensical nonetheless.

      Consider this hypothetical case: If an implementation wants to allocate small structs (things with no vtable) in one memory area (say, on-chip) and large ones in another (say, an external dram); in my understanding it is possible to have a valid compiler that does so. In your case you might be deleting from the wrong pool of memeory.

      This has nothing to do with anything. For starters, structs all have vtables. For another, the constructors/destructors don't decide which memory manager their objects are stored in, you have to override new and delete to do that. Overriding new and delete are not related to the issue of virtual destructors at all.

      What torture it must be for programmers you interview to have to endure such a mountain of misinformed superiority. I really feel for them.

    111. Re:Miguel is dead! by Sivaram_Velauthapill · · Score: 1

      Software development isn't language dependant, it's paradigm dependant.

      That's true but I disagree with your main point. Higher level languages DO speed up development time. If they didn't why would someone pick one language over another (when they are both the same "types" of languages). For instance, why would anyone pick Java over C++?

      That is to say, it makes it impossible for a bad programmer to screw up an easy task while making it more difficult for a good programmer to accomplish a more difficult task.

      Since the vast majority of programmers are bad*, higher level languages should be chosen, and will ultimately win out.

      * This applies to anything. In any field, only a small, finite, number of people are good. The rest are not good and simply in it for the money and could care less.

      Sivaram Velauthapillai

      --
      Sivaram Velauthapillai
      Seeking the meaning of life... @slashdot of all places ;)
    112. Re:Miguel is dead! by Sivaram_Velauthapill · · Score: 1

      Why should someone know about assembly language when the higher level languages have absolutely nothing to do with it? Even worse, why should someone know machine language when hardly anyone can touch that?

      I'm not saying that a computer developer shouldn't know these things. It certain helps and universities should--and do--teach them, but they only help a few developers. I'm not really sure how useful these things are for software development. As higher and higher languages are used, I predict that future developers won't even learn these things.

      C/C++ development might involve knowledge of assembly programming (after all, you CAN access registers, stack pointers, etc, and inline assembly code if you wanted). But C# and Java probably will abstract away assembly language. And higher level ones after that (say Python, Javascript, VBscript, or whatever) will totally disallow you from touching assembly. That's what I see happening.

      Sivaram Velauthapillai

      --
      Sivaram Velauthapillai
      Seeking the meaning of life... @slashdot of all places ;)
    113. Re:Miguel is dead! by ron_ivi · · Score: 1
      Cranx wrote:

      "You're mis-reading that description (5.3.5). [...] The behavior is undefined ONLY if the dynamic type has a destructor. "
      Then please enlighten us. Tell me what section says "oh, but if you didn't have a user-defined destructor, don't worry about 5.3.5". The parts of the spec I quoted were clear, and made no exceptions like the one you claim about the clause only applying under specific circumstances.

      "For starters, structs all have vtables."
      No they don't. Structs without any virtual methods are just like old C structs in many (most? all?) implementations.
      http://www-cs-students.stanford.edu/~sjac/c-to-cpp -info/virt-funct
      "Note that any object which has no virtual methods has no vtable."

      "Don't insinuate I'm a bad programmer. "
      I never tried to suggest you're a bad programmer. Just that your understanding of C++ is quite incomplete. So far you made very strong statements about what keywords you didn't think C++ has, and implementation dependant assumptions about the existance of vtables.

      These don't say anything about your programming skills - but certainly reveal that you think you know more about C++ than you actually do. Note that if you just rephrased things (like "I'm unaware of this keyword, but here's another way to make the base classes methos visible" or "in my compiler most structs have vtables") you would be more convincing, instead of trying to generalize your experience and claiming it applies to all of C++.

    114. Re:Miguel is dead! by GenSolo · · Score: 1

      For instance, why would anyone pick Java over C++?
      I have no idea. I personally write better code faster in C++ than with Java. And before you start complaining about how bug-ridden my code must be due to memory management: I use stack memory whenever possible, which Java won't let me use, and I generally use Boost.org's shared_ptr for heap memory. Furthermore, the ability to use z = x + y; no matter what the types involved are (assuming the operator is overloaded) makes it a lot faster for me to write something than if I have to use Java's bastardized mess of a library and have to look up the name of the function for adding an x to a y. Also furthermore, C++ templates is safer than Java's Object-based class hierarchy because Java allows you to have a heterogenous container and forces you to keep track of the correct class and cast things. So, aside from the fact that C++ allows access to the low level depths of C, how exactly is Java a higher level language? Do you call it that because it does garbage collection, or what?

      Since the vast majority of programmers are bad*, higher level languages should be chosen, and will ultimately win out.
      I disagree. I would assert that since the vast majority of programmers are bad, they need to be fired. It's their fault that jobs are outsourced to India because they can't produce a product of adequate quality.

    115. Re:Miguel is dead! by Sivaram_Velauthapill · · Score: 1

      Yeah... languages don't necessarily incorporate all the good features of older ones. Furthermore, some languages, that are arguably superior, never become popular and end up being forgotten/ignored.

      You also point out an important point: the underlying capabilities of computers has changed over time. Speed and memory were big in the past; not anymore. Things like distributed code will probably be more important in the future than now.

      Overall, however, the pattern has been that the dominant language is superior (in most respects) to the previously dominant one.

      Sivaram Velauthapillai

      --
      Sivaram Velauthapillai
      Seeking the meaning of life... @slashdot of all places ;)
    116. Re:Miguel is dead! by Sivaram_Velauthapill · · Score: 1

      So, aside from the fact that C++ allows access to the low level depths of C, how exactly is Java a higher level language? Do you call it that because it does garbage collection, or what?

      I'm not an expert on Java (or many other languages either). Well, things like garbage collection would definitely make it HIGHER. I haven't done java programming in a while but doesn't java also have things like better object oriented classes (eg. better inheritence, abstract classes, etc). But I think the main reason it is a higher level language is because java code can run on any machine. The higher up you go on the language hierarchy, the less the dependence on the underlying machine architecture. AT the lowest levels (say assembly), code is heavily dependent on the processor and memory subsystem. At the highest levels (say vbscript or javascript or python), code is totally independent of machine architecture. Java certainly has that feature (whether in practice java runs uniformly across all platforms is another issue).

      I disagree. I would assert that since the vast majority of programmers are bad, they need to be fired.

      You are going to totally disagree with me since you seem like a conservative. It is my opinion that jobs are simply human economic slavery (stop rolling your eyes ;) ). What this means is that the vast majority of people in a particular profession don't really want to be there. If a person was rich, I am sure they would be doing something else. This is the case with the VAST majority of people. Just to give you an idea, the vast majority of programmers probably aren't even tech-savvy. Many don't even read slashdot or keep up or whatever. 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. What you are saying makes no sense. I can understand why you are saying it though. You are probably a capitalist (like most conservatives) so you seem efficiency. 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.

      It's their fault that jobs are outsourced to India because they can't produce a product of adequate quality.

      What I said uniformly applies to everyone. By going to another country, it isn't going to change things unless Indians (or anyone else for that matter) are better. I expect bad programmers in India just like in USA. In any case, jobs are being outsourced for financial reasons--not quality.

      Sivaram Velauthapillai

      --
      Sivaram Velauthapillai
      Seeking the meaning of life... @slashdot of all places ;)
    117. 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.

    118. Re:Miguel is dead! by Cranx · · Score: 1

      Tell me what section says "oh, but if you didn't have a user-defined destructor, don't worry about 5.3.5".

      How can I show you a section that doesn't exist? It's not pertinent information. When you call destroy on a pointer to a base class which actually points to memory held by a derived class, and neither of the two classes have a destructor, it's a non-issue. Where is the section on how to grow your own tea leaves? It's not in the specification because it's non-pertinent. When you don't have destructors, the issue of a base not having a virtual destructor is a NON-issue.

      No they don't. Structs without any virtual methods are just like old C structs in many (most? all?) implementations.

      That was my point; structs and classes are the same, except for the default visibility of its members. You made a statement indicating you thought structs didn't have vtables, and I was saying they certainly do ("when needed" I admit was omitted). They operate no differently from classes.

      So far you made very strong statements about what keywords you didn't think C++ has, and implementation dependant assumptions about the existance of vtables.

      It's good you are redundantly attacking me for mistakes I've already admitted; if you actually talked about that dumb-ass test you mentioned, you'd have nothing in your favor.

      Question for you, genius. Don't bother answering me, because I will never believe you didn't look this up, but answer it to yourself nonetheless so you know how clueless you are. What is the byte size of the char date type and is it signed or unsigned, as defined by either the C or C++ specification? I know the answer without looking. Do you?

      Now, a suggestion. Such questions are moronic. Don't ask your programmers IDIOTIC things like whether void main(void) is valid or not. You might have the worlds greatest Java programmer sitting in front of you, and they're a few months worth of C++ experience away from being a FANTASTIC C++ programmer, and such a DUMB ASS question would cause you to reject that person in favor of some neophyte with a penchant for falling asleep at the keyboard who just took a C++ class and knew the answer. Instead, ask them to write code, even if breaks down into pseudocode, to determine how smart they are, and how they think. Ask them to write a quick text encryption tool that uses a password to encode/decode text, and give them 15 minutes to code some basic functions up.

      The problem with that dumbass test you showed us is twofold: one, it doesn't really say ANYTHING about if they are a good programmer or not and two, the guy was just plain wrong. If you've been impressed by anyone after quizzing them that way, you must have a hell of a team there. Oh man, Microsoft watch out! THEY HAVE GUYS THAT KNOW NOT TO WRITE VOID MAIN(VOID). Holy crap!

      Seriously though. You made me think of the boss in "Office Space." That test is wrong from the get-go, and you're using it to measure interviewees? Sweet.

    119. Re:Miguel is dead! by ron_ivi · · Score: 1
      "How can I show you a section that doesn't exist?"

      You claimed that there exceptions to the clause in the standard that I quoted. If the clause doesn't exist, then where do these exceptions that you're claiming come from?

      Let's take this part of the conversation over to comp.std.c++ where we'll find people interested in this point (and who have access to the ratified spec and will help research it).

      " I know the answer without looking. Do you?"
      Yes, I do. In my case it comes from spending too much time on a platform where sizeof(long)==5.

      " Instead, ask them to write code, even if breaks down into pseudocode, to determine how smart they are, and how they think. Ask them to write a quick text encryption tool...."
      Better to ask both types of questions. Reading and understanding other's people's code is just as important a skill as creating original code. This is what the example being debated tests - it simply asks which function gets called.

    120. Re:Miguel is dead! by Anonymous Coward · · Score: 0

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

      Hear hear.

    121. Re:Miguel is dead! by Pete · · Score: 1
      Fedallah:
      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?

      ROTFL :):)

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

      *mutters random Latin and waves hand* "You are forgiven, child. Say a dozen Hail Meyers, then go forth and sin no more."

      *grin* Well, to be fair to whoever the basta^Wguy was, he did do it under fairly stressful conditions and he was in fact building the application based on some really horrendous mid-80's era C code. The sort of C code where you get stuff like: int tmp1, tmp2, tmp3, tmp4, ...; Be afraid, be very afraid.

      In fact, if I'd been in his position, I don't know that I would have done much better. *pause for thought* No, that's a complete lie, I would have done it much better. It still wouldn't have been all that good, but at least it'd be tolerable.

      Sigh... which reminds me, I'd better get back to it. Arrrggh.

      Thanks for the sympathy Fedallah, I appreciate it. ;-)

      Pete.

    122. Re:Miguel is dead! by Nicolay77 · · Score: 1

      Hey do you want to outsource to Colombia ???

      I'm willing to work for you!!

      --
      We are Turing O-Machines. The Oracle is out there.
    123. Re:Miguel is dead! by Cranx · · Score: 1

      You claimed that there exceptions to the clause in the standard that I quoted. If the clause doesn't exist, then where do these exceptions that you're claiming come from?

      You honestly don't know you can call delete on a pointer of type base which points to a derived object safely, when neither the base nor derived has destructors? You need the specification to tell you "oh, by the way, you only need to declare your destructors as virtual IF YOU HAVE DESTRUCTORS."

      Okay then, I'll let you run around telling people that, then.

      Better to ask both types of questions. Reading and understanding other's people's code is just as important a skill as creating original code. This is what the example being debated tests - it simply asks which function gets called.

      Just remember, you get what you ask for. Interviewing programmers is like asking an evil genie for a wish. You really shouldn't care about their C/C++ skills except that they have *some*. What you REALLY should care about is how smart they are and how creative they are. A good programmer should be able to start coding in any language in a day, and be damn good at it within a couple months.

    124. Re:Miguel is dead! by William+Tanksley · · Score: 1

      The difference is that every procedural programmer -- including the ones I was working with -- knows that globals are bad. The problem is that they don't know object-oriented design, and they thought that they'd acheive it by adding classes to their existing C methods. They also knew that classes have instance variables so that objects can have state, so they added those as well.

      Yes, there are stupid programmers everywhere. No, that doesn't make "C with classes" bad -- but I don't know what the original author meant by "C with classes". If he meant "procedural programs wrapped in classes", then my warning holds.

      If you'll clarify what you mean by "C with classes" I can tell you whether my sad story applies to it.

      -Billy

    125. Re:Miguel is dead! by pyrrho · · Score: 1

      first, thank you for the conversation. Our difference comes to this.

      >>C# and Java ARE higher level than C++.

      because I agree with what else you say. I have not seen that. You base many arguments on this assumption, that the direction of higher level is to use Java or C# or indeed, Python, etc.

      I understand the perspective, but I think it's taking "high" level for granted. You draw comparisons between C++ v. C# as if I could have said the same thing about ASM v. C or C v. C++. But no, ASM does not have the syntax to support some abstractions. C++ can be used with no pointers. A C++ class can be just as high level an class as a C#'s! Seriously what is C++ missing as far as high level goes? It's not missing something... it's got too much... it still allows you to go low level. And this is a different issue. An important one, but...

      One other thing, probably semantic. Memory handling does not get abstracted away. It gets abstracted higher. You are, as you know, still handling memory, still having to plan efficient data structures and layout.

      I value these other language. I praise Java's wide multi-platform libraries. I have nothing against any tool or language, but there are certain arguments about them which seem wrong to me.

      I used to work with MSVC... people said how they could code things faster with VB? This was the environment, I think... MSVC provides a very contained C++ environment, you can use Wizards to make MFC based applications. It was just as fast to create those forms and write the C++ code behind them as the VB... but you give up much less freedom. C++ is just as high a level.

      The big pain about C++ is the antiquated development environment... the build process which can have a lot of loose ends and is still platform specific. When the build environment is coherent, the language itself performs as a high level tool.

      I know the path goes on and ever higher, we agree on that.

      cheers.

      --

      -pyrrho

    126. Re:Miguel is dead! by pyrrho · · Score: 1

      saying that anonymously is not really "completely frank" in my book.

      I'm not a zealot. Use whatever language you like. I'm entirely in favor of Java and can see many reasons to use it in many circumstances.

      This is a discussion.

      I differ with you on certain arguments ABOUT languages, and about HOW GENERAL some tools are or are not, too bad you can't handle that, but there is it.

      But what you totally miss, and why I'm responding to an AC yet again is: THERE ARE CLASS AND FUNCTION LIBRARIES TO TAKE AWAY THE GRUNT WORK FOR GOBSHITE'S LIKE ME YOU TWIT! This is the problem, not with Java or Python or C#, but fools like you that think using those languages is the only way in the world to get rid of grunt work.

      --

      -pyrrho

    127. Re:Miguel is dead! by Anonymous Coward · · Score: 0

      but fools like you that think using those languages is the only way in the world to get rid of grunt work.

      Eh? Where the hell have I said that? I'm not the one making completely unjustified and specious claims about other programming languages.

      You *ARE* a zealot, and you know damned well what is driving this ignorant tirade of yours. You are also an idiot because, despite having every single point you've made shown up for the incoherent drivel it is, you continue to post.

      You need to seriously reconsider your priorities.

    128. Re:Miguel is dead! by Sivaram_Velauthapill · · Score: 1

      Seriously what is C++ missing as far as high level goes?

      This whole argument depends on what you perceive to be a higher level language. To ME, languages progress over time. The higher level languages are the ones that have more "features" than the lower level ones. Generally, this means that higher level languages automate more things than lower level languages. That's how I look at languages. I know a lot more can be said but that's my rough vision.

      Given that, C++ is a high level language but C#/Java/Python/Javascript/etc is even higher. What's C++ missing? Well, I'm not an expert on all these languages but things like garbage cleanup, and write-once-run-anywhere, among others, are things found in higher level languages. The fact that I can write C#, Java, or Python code and run it on any machine (with a VM/interpreter/whatever) makes them a higher level language.

      C++ will never have these capabilities. Even if, as another poster in this thread says, you write using standard ANSI C++ standard, it isn't exactly machine-compatible. Correct me if I'm wrong but wouldn't things like memory system (eg. little endian vs big endian) cause problems? I presume that those problems don't exist in C# (I am not an expert on C# but that's my impression).

      Sivaram Velauthapillai

      --
      Sivaram Velauthapillai
      Seeking the meaning of life... @slashdot of all places ;)
    129. Re:Miguel is dead! by pyrrho · · Score: 1

      >>you know damned well what is driving this ignorant tirade of yours.

      blowing off steam on slashdot?

      you know what? The market will decide. The end.

      --

      -pyrrho

    130. Re:Miguel is dead! by pyrrho · · Score: 1

      btw, YOU know perfectly well I'm not a zealot and would be happy to work in Java but YOU wouldn't let me!

      --

      -pyrrho

    131. Re:Miguel is dead! by Sivaram_Velauthapill · · Score: 1

      ANSI/ISO standard C++ code runs on any machine with a C++ compiler just like Java code runs on any machine with a JVM.

      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.

      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.

      It is my view that this is not possible under capitalism...

      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.

      The whole notion of a skilled job is purely arbitrary in my opinion. So-called unskilled labour has the same issues (some people who are good, many who are not). If my assertion that the majority of people are bad is correct, then what you are proposing cannot be done. You are literally asking for the majority of computer engineers, or chemists, or lawyers, or doctors, or drivers, or teachers, or deliveryperson, or whatever, to be fired. The few who are good cannot do all the jobs. That's why people who are not good are working in the first place. Analogy to this is school. 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.

      I don't think you should develop languages so that bad programmers can make bad software.

      One doesn't develop a language for that reason. Instead, newer languages are progressive in some manner. If you are a bad programmer, you will be bad anyway--it doesn't matter if it's a high level language or not. It's just that, higher level languages allow bad programmers to pass themselves off as average. 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.

      Sivaram Velauthapillai

      --
      Sivaram Velauthapillai
      Seeking the meaning of life... @slashdot of all places ;)
    132. Re:Miguel is dead! by pyrrho · · Score: 1

      I agree with your rough idea of programming languages as far as that goes, but C++ and C have had garbage collection for years... you use a garbage collecting library or class for your memory allocation.

      Write once run anywhere is not possible as you say, write once compile everywhere is possible, but still problematic, but solvable and solved for many projects.

      But I understand why people would want WORA from a single compile or from a runtime compile, I see where the C/C++ build environment posses problems. Nothing is perfect. I'm just of the opinion that this does not make C or C++ gone from the world, or soon to be gone, or purposeless. In C++'s case, it does not make C++ purposeless for high level work.

      But you have made good points and each of these other languages no doubt has circumstances in which they are the adviseable tool to use.

      --

      -pyrrho

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

    134. Re:Miguel is dead! by Anonymous Coward · · Score: 0

      You obviously don't know C++.
      I'll take a "good C++ programmer" over a "good programmer" any day. Why? Because I know that to become a good C++ programmer, that programmer had to overcome a hell of a huge learning curve to become good, and I also know that C++ contains pretty much most if not all major programming paradigms used in most other languages. A good C++ programmer should find it very easy to learn Java and C, but a C programmer learning C++ or a Java programmer learning C++ would have a much more difficult time.
      Of course a good C++ programmer learning Perl...well, that's a different story!
      Actually, the best programmer is an expert C++ programmer on a UNIX or Linux system who is also an expert C and Perl programmer -- they can do anything. Of course I'm speaking of myself here. :-)

    135. Re:Miguel is dead! by Anonymous Coward · · Score: 0
      I think it would be a good question for an interview.

      It showed that the two of you are incompatable. He's a PHB who spends too much time playing language-lawyer with the spec; and you're defensive, swear a lot, and claim to know computer languages you don't really know.

      If this were asked in an interview, regardless of what it says about programming skills, it revealed that I wouldn't want to work with either of you.

    136. Re:Miguel is dead! by ron_ivi · · Score: 1
      "C++ will never have these capabilities."

      You might be interested in reading the papers on Visual-C++dotnet. It (through wierd thingies similar to pointers but different) will be able to run under a VM. Since it has guys from the C++ standardization body architecting it (Herb Sutter, from the infamous gotw question that started this thread), it would be interesting to see how it evolves and if these extentions get brought back into the standard.

      I think it's premature to say it'll never get in there.

      Oh, and regarding garbage collection, C++ has that too, through Boehm's garbage collector that works with C and C++

    137. Re:Miguel is dead! by Cranx · · Score: 1

      That's funny. I don't know C++.

    138. Re:Miguel is dead! by ron_ivi · · Score: 1
      That's actually a decent (not good but not bad) answer in an interview. Especially if you can describe what's ugly about it (depending on whether or not implicit conversions can take place).

      The problem is that even if someone doesn't _write_ ugly code like that, it may be the case that they'd have to _maintain_ something this ugly. If they can't read it, they might spend a lot of time rewriting it (which arguably may ultimatelly be a good thing anyway - but it's good to find out in the interview if you have close deadlines).

    139. Re:Miguel is dead! by Anonymous Coward · · Score: 0
      "...But it has nothing whatever to do with a software engineer's job, unless that job is writing C++ compilers...."

      ... or maintaining c++ code written by more than a single induhvidual....

    140. Re:Miguel is dead! by ron_ivi · · Score: 1
      Adopted? Of course it was adopted into the standard when the standard was adopted.

      A more fair question would be "when was it incorporated in the language"? 1993 is when it was debated by the standards committee, so about 11 years.:

      Date: 1993-05-24 09:34:31 PST
      Newsgroups: comp.std.c++, comp.lang.c++

      The "using" keyword is primarily intended to...

      Oh, and did you know that C has this new feature where it can check the types of arguments? :-)

    141. Re:Miguel is dead! by ron_ivi · · Score: 1
      " When was it adopted into the ANSI standard? 8 years ago you say? Somehow I doubt that. "

      Since you asked when it was adopted into the standard, I went ahead and looked it up. The "using" keyword was in the standard unanimously voted for in November 97 and received official ISO approval Jul 98, so about 6.5 years depending on which date you were asking for. (though as I mentioned the standards body was discussing this keyword since '93 years, so I still stand by 8 years as a likely date in practice)

      Since you mentioned you expressed doubt, were you guessing more or less years?

      (And I can't help pointing out that since you seem to be asking ISO/IEC 14882:1998, I think you meant ISO not ANSI - and finally, instead of asking, you probably could have looked it up as easily as I did.)

    142. Re:Miguel is dead! by Anonymous Coward · · Score: 0

      +1 insightful.

    143. Re:Miguel is dead! by ron_ivi · · Score: 1
      Parent wrote: "Go back to my first post point by point and comment. Calling destroy to a base pointer which points to a derived object is SAFE. C++ destroys objects in two steps: first, it calls the destructor, which presumably performs cleanup operatings, then it frees the memory. The amount of memory it frees is determined by a looking based on the memory the pointer points to, not the size of the object."

      I'd like to point you to the usenet discussion where James Kanze points out that the compiler is free to use the information about the virtual destructor to determine the location and size of the memory it will be freeing.

      James Kanze writes:

      ...]
      |> Thus, there are five critical pieces of information that keyword delete
      |> needs to have access to:
      |>
      |> 1. The address of the appropriate destructor.
      |> 2. The address of the block of memory to be deleted.
      |> 3. The size of the block of memory to be deleted.
      |> 4. The address of the appropriate operator delete function.
      |> 5. The arguments to be passed into operator delete.

      How the compiler finds #2 and #3 are its business, and in
      fact, several solutions are in frequent use. What is true is that if
      the class has a virtual destructor, the compiler must use the values of
      the dynamic type (most derived object); without a virtual destructor, it
      is undefined behavior if the static type and the dynamic type disagree.

      This allows the implementation that Robert proposes. In other
      implementations, however, the compiler will decide what additional
      information to put in the vtbl (or whether to use that information)
      according to whether the class has a virtual destructor or not.

      Note that in many implementations, the compiler WILL correctly evaluate
      #2 and #3 even in the absense of a virtual destructor, at least in the
      case of single inheritance. One possible result of undefined behavior
      is that the program seems to work. That doesn't mean that you have a
      correct program.
      And before you you don't trust this reference, check James's credentials before saying you know C++ beter than everyone involved with the definition of the language.

    144. Re:Miguel is dead! by ron_ivi · · Score: 1
      " But the object *has no destructors* in the example, so it's perfectly safe. "

      And yet another member of the C++ standards committee directly contradicts your claim.

      From: Andrew Koenig (ark@alice.att.com)
      Subject: virtual destructors by default
      Newsgroups: comp.std.c++
      Date: 1993-01-03 20:03:56 PST

      it is possible to write
      class definitions that have no virtual functions and nevertheless
      require a virtual destructor. For instance:

      struct Thing { Thing(); ~Thing(); };
      struct B { };
      struct D: B { Thing t; };

      main()
      {
      B* bp = new D;
      delete bp; // Oops!
      }

      The commented line is undefined unless D has a virtual destructor.
      And since I suspect you'll be too lazy to look it up, Andrew Koenig is the Project Editor of the ISO/ANSI C++ committee. You explicitly stated that you thought the chair of the committee "doesn't know squat about C++" - will you trust the Project Editor.

      "Don't insinuate I'm a bad programmer. "

      You might be fine at other languages. But when it comes to C++, aren't you encouraging people to write programs that have undefined behavior and insisting they're safe? IMHO, encouraging undefined behavior on the grounds that it sometimes works is a bad practice.

    145. Re:Miguel is dead! by Cranx · · Score: 1

      +1 taking pot shots anonymously because you're afraid of being made to look like a fool. Bukaw!

  28. And how long before we find out that... by the_skywise · · Score: 1, Interesting

    Icaza is taking major investments from Microsoft?

    1. Re:And how long before we find out that... by Cereal+Box · · Score: 1

      Come on. You're taking zealotry to a whole new level.

      Is it really easier for you to believe that this guy is taking kickbacks from Microsoft than to believe that maybe once Microsoft actually made a decent product that this guy really believes in?

  29. 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 Anonymous Coward · · Score: 0

      Of course, C# vs. Java is like getting ass-reamed daily with lube as opposed to without.

      No thanks, I'll take obviously inferior C over .NET any day.

    2. 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
  30. 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!

  31. Not ready, and not catching up, eh? by Anonymous Coward · · Score: 0

    What I'd like to know is why it's not ready, and why it's not catching up?

    Heck, why is it "catching up" in the first place? Why was the open-source community, so lauded by its advocates for being forward-thinking and quick-paced, not the first entity to pounce on creating something like this?

    If Mono is trailing so badly behind .NET, why is it that Microsoft is so often derided as being immobile in software development? Would this not be a hefty chunk of evidence to the contrary, and perhaps point to a blind spot -- or worse, a point of self-contradiction -- in the traditional anti-Microsoft, pro-OSS dogma?

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

    2. Re:Not ready, and not catching up, eh? by Xabraxas · · Score: 1
      Heck, why is it "catching up" in the first place? Why was the open-source community, so lauded by its advocates for being forward-thinking and quick-paced, not the first entity to pounce on creating something like this?

      Why reinvent the wheel? Java has been around for a long time now. I don't think any OSS developer had any inclination to reimplement something that was already working. I do think that that was the reasoning for the OSS community to ask that Java be open sourced though. Java is a perfectly good solution that could have been tailored to suit the needs that .NET is now going to do because Java remains shackled by SUN. I guess if the community had known it was going to turn out like this then something new and different would have been created.

      --
      Time makes more converts than reason
    3. Re:Not ready, and not catching up, eh? by damballah · · Score: 1
      I have no problem w/ them using Mono to get people to migrate more easily to linux. I do have a problem w/ them proclaiming that Mono might be the replacement for C in desktop programming. Why put all your eggs in the same basket?

      Why not use Java as the platform of use (and Eclipse as the editor of choice), since it is more mature? It seems to me that the Mono team went out of their way to do something that could've have taken less time and manpower.

      BTW, how does Eclipse compare to MonoDevelop as an editor? I'm curious to know.

    4. Re:Not ready, and not catching up, eh? by gabebear · · Score: 1
      Java is a perfectly good solution that could have been tailored to suit the needs that .NET is now going to do because Java remains shackled by SUN.

      Mono is shackled by Microsoft, Sun has at least blessed the open-source version of Java with a legit licence to use the API, I doubt Mono will ever get that.

    5. Re:Not ready, and not catching up, eh? by Xabraxas · · Score: 1
      Your point? I was simply giving reasons why something like this was not done earlier in the open source community. I know about blackdown, I use it.

      I wish that Java would be GPL'd so free software developers could add the features that they've always wanted and .NET could be done away with. No matter how good it is or isn't I just don't think it's safe for the open source community to be tied to Microsoft. I don't trust them.

      --
      Time makes more converts than reason
  32. 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 globalar · · Score: 1

      Sounds like FUD, but I am not a lawyer (even on /.). These things were addressed, informally, on the Mono-list at Ximian a while ago. The questions were asked here, and the relevant responses are here and here.

    3. Re:Dealing with MS patents .... by Anonymous Coward · · Score: 0

      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.
      4) ???
      5) Profit!

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

    5. Re:Dealing with MS patents .... by razmaspaz · · Score: 1

      4) Get a law degree 5) Profit!

      --
      I tried for 5 years to come up with a clever sig...only to realize that I am not clever.
  33. Go Miguel! by brucehoult · · Score: 1

    This should boost Miguel's star ranking on Orkut -- at the moment he's only #5 with 193 fans, one place behind Wesley Clark with 194 fans.

    Go Miguel!

    (and hopefully past that whorkut Leonie with 208)

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

    1. Re:What a choice... by willdenniss · · Score: 1

      Theres a lot more to Java than just Sun Microsystems. Sure they came up with it but now due to the JCP they have as much control over it as the other members do. Will.

  35. Equation by Fat+Jedi+Kid · · Score: 1, Funny

    Mono = Mono poly = .NET Mono + .NET = ?

    1. Re:Equation by NortWind · · Score: 1
      Mono = Mono poly = .NET Mono + .NET = ?
      Profit!
    2. Re:Equation by Fat+Jedi+Kid · · Score: 0

      Negative Karma:

      #1 Try to make a joke based on article.
      #2 Think you are being clever, by leaving out obvious punchline.
      #4 ...
      #5 Profit?

      #5 Well profit for somebody else (T-T)

    3. Re:Equation by Anonymous Coward · · Score: 0

      Yeah, I know it will be negative karma, but it had to be done. There are standards, you know.

    4. Re:Equation by Fat+Jedi+Kid · · Score: 0

      I was speaking of my situation. (#_#>)

  36. Where is that view? by Chuck+Chunder · · Score: 1

    I'm not sure he's ever claimed that the desktop is equivalent to the operating system.
    It seems to me that he simply talking about the section of software that he works on and interests him most, the desktop.

    While I don't follow it closely I haven't noticed any posts from Miguel on LKML advocating they switch to C#.

    --
    Boffoonery - downloadable Comedy Benefit for Bletchley Park
  37. C++??? by Anonymous Coward · · Score: 0


    Well if C is dead why didn't he fricken program Gnome in a real OOP language like C++? What a moron.

    1. Re:C++??? by Anonymous Coward · · Score: 0
      Everything that people hate about app dev in C applies to C++ as well.

      I assume that Miguel is a smart enough guy to know that C (and assembly language) will live on in OS and driver dev for the forseable future. The quote about C being dead probably only applies to app development within Gnome. Gnome itself will probably be developed in C for the forseable future.

    2. Re:C++??? by Trejkaz · · Score: 1

      Probably because C++ sucks even harder than C.

      Now maybe if they made it in Objective C...

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
  38. But why? Hmm? by Anonymous Coward · · Score: 0

    You can't a better .NET than .NET

    For Windows, I'm sure that's true.

    But what about an utter Linux equivalent? Why should the open-source community be incapable of creating something like that? Financial limitations? Lack of drive? Lack of dedication? Uncoordinated, decentralized efforts? Simple tardiness in recognizing the demand for something like this and scrambling to catch up to Microsoft (who, strangely, is often maligned as being paralyzed in its developmental efforts and yet always seems to be leading the way)?

  39. 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 omicronish · · Score: 1

      I'm not very familiar with Parrot and the type of languages it supports (although I've done quite a lot of Python coding), but it would be really interesting to see Parrot developed into a dynamic language framework, sort of how .NET is a framework that eventually compiles to machine code. I'm sure I probably worded that wrong, but I can imagine Parrot being used as a scripting system for .NET applications. Currently there are annoying limitations in .NET (cannot unload assemblies) that present severe problems with using .NET languages for scripting.

    2. 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.
    3. Re:Parrot/Perl6 by globalar · · Score: 1

      I think you are right, but Parrot is not in the same game with Java and .NET., yet.

      Even /. has gotten over (most of) its .NET trolling and is starting to look at the platform in a practical, even positive light. There are coding projects well into production, some are finished, and surely there are some in maintenance stages. By the time Longhorn rolls out, the .NET runtime will probably be on the majority of active Windows systems. Mono may be an even bigger contender in the near future.

      Meanwhile, programmers are waiting, many patiently, for Parrot which is just at 0.1.0. As an equivalent, Parrot isn't really in the race yet. Everyone would love to seriously consider it, but it's not a contender (in the same way .NET and JVM are) to technically consider yet. I hear things like mod_parrot are still in need of work, though there are related projects coming about.

      Hopefully Parrot will become adopted over projects like Mono, not just in concept and ideology but in a practical platform. I think Python support may be critical, even more so than Perl6. Let's hope Parrot's maturity doesn't need to wait for Perl6.

      Recent developement summaries on Parrot and other Perl-related things. Is there a timeline for Parrot? I haven't seen it.

    4. 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?
    5. Re:Parrot/Perl6 by sICE · · Score: 1
      Is there a timeline for Parrot? I haven't seen it.

      I dont think there's one but you might wanna look at this recent thread.
    6. Re:Parrot/Perl6 by ansak · · Score: 1

      2. It's immune to the kind of MS mischief that .NET will undoubtedly have to struggle with.
      It may be immune to that kind of mischief but I find I'm more worried by that "RAND" licensing. The software can not be entirely F/L-OSS if there's the spectre of "we'll only let you keep going if we think you're playing fair."

      No matter how smart Miguel is technically, he may be wrong on the IP-issues front. How would we all like to have a SCO-like suit coming at Linux from Redmond?

      cheers...ank

      --
      Still hoping for Gentle Treatment...
  40. Re:Isn't Miguel Icaza gay? by Anonymous Coward · · Score: 0

    Lies, you are full of feces and lies. Pascal is the most beautiful language in the world. I can make wonderful programs in turbo pascal using 640k of memory and overlay files. so there you terd

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

    1. Re:Netcraft confirms: C is DYING by Anonymous Coward · · Score: 0

      s/Theo/Bjarne/

    2. Re:Netcraft confirms: C is DYING by Anonymous Coward · · Score: 1, Funny

      You lousy rat! You stole my troll from the SCO/IBM story the other day! If you own up now, you only owe me a $699 licensing fee. Don't tempt my ire, though! I may have to sue, and then you'll be sorry...

    3. Re:Netcraft confirms: C is DYING by cshark · · Score: 0

      Netcraft never said C was dying.

      That post is a little misleading, and discounts potentially important information. For example: what do you mean by c dying? Do you mean that it's not growing, or that people are abandoning it for newer languages? Are you accounting for the rate of growth or languages like java, and C++, and running a comparative analysis, based on inclines, declines, and actual usage projections? Things like machine sales, number of new projects in the enterprise, IT staff fluctuations based on historic averages, etc?

      Dude, you might not need to be Scott Mcneally to predict this stuff, but you could at least know what you're talking about. It would be helpful.

      --

      This signature has Super Cow Powers

    4. Re:Netcraft confirms: C is DYING by Requiem · · Score: 1

      YHBT. YHL. HAND.

    5. Re:Netcraft confirms: C is DYING by Anonymous Coward · · Score: 0

      01010111011010010111001101100101001000000110000101 11001101110011001011100010111000101110

    6. Re:Netcraft confirms: C is DYING by talaphid · · Score: 1

      I hear there was a massive lexographical mistake a decade ago, resulting in the word "gullible" being omitted from most printing runs of popular dictionaries, such as Merriam-Webster, Roget, and Netcraft. Go check for yourself in any new dictionary.

    7. Re:Netcraft confirms: C is DYING by Anonymous Coward · · Score: 0

      My mate still uses C and C++.

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

    2. Re:Exactly by gauchopuro · · Score: 1

      > OCaml ... And I don't know why you call it "pseudo" functional

      OCaml is not a pure functional language in that it allows for references to mutable objects. A pure functional language, such as Haskell, does not allow mutation or side effects in functions. In order to allow things like IO, Haskell uses monads, which essentially thread the mutable state through function calls in order to give the appearance of side effects without breaking the referential transparency offered by pure functional languages.

    3. Re:Exactly by Anonymous Coward · · Score: 0

      > OCaml ... And I don't know why you call it "pseudo" functional

      OCaml is not a pure functional language in that it allows for references to mutable objects.


      And? It's still a functional language, not a "pseudo-functional" language. Functional > pure functional.

      Haskell is a beautiful language, but in practice it's playing Pascal to ML's C - more elegant, more sophisticated, but ultimately it's too damn frustrating to get any real work done in it. (Does Haskell even have a standard library for binary I/O yet?)

    4. Re:Exactly by Jagasian · · Score: 1

      I disagree. The main reason to program in a functional language instead of a imperative language is because you want a program that is easier to statically analyze and verify properties. If you don't have purity, you effectively throw away this benefit of functional languages... so why not just program in C if you are going to give up purity?

  43. It's a cloning effort, you fool! by Anonymous Coward · · Score: 1, Insightful

    With new versions coming out regularly, any clone will never be caught up to the status of the original project.

    1. Re:It's a cloning effort, you fool! by styrotech · · Score: 1

      With new versions coming out regularly, any clone will never be caught up to the status of the original project.

      Yeah, but hopefully mono (and linux) will have enough market share that enough vendors and developers will want to support both for interoperability reasons.

      Then mono can be the lowest common denominator that holds back .NET progress - just like IE is the lowest common denominator that holds back progress in web development standards. Give em a taste of their own medicine!!! ;)

    2. Re:It's a cloning effort, you fool! by Anonymous Coward · · Score: 0

      Tell that to Microsoft who cloned Apple's GUI.

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

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

  46. 10 years later, Java is cloned by MS. by Anonymous Coward · · Score: 1, Interesting

    Yes, this is about right. Didn't Java come out around 1994? Bytecodes, the end of 'C', the "platform", the virtual machine. Deja vu all over again.

    Maybe the continuing pressure from MS and the total refusal of the government to enforce it's laws will force Sun to start seriously considering freeing Java to the point that it can be distributed with Linux distros.

    1. Re:10 years later, Java is cloned by MS. by Anonymous Coward · · Score: 0

      Bytecodes? You mean P-Code from over twenty years back.

    2. Re:10 years later, Java is cloned by MS. by Valar · · Score: 1

      Bytecode is a _very_ old concept (well, by CS standards). I have a textbook which contains the source to a bytecode interpreter for a PDP11. I agree that the downfall of C has been/is incorrectly forecasted-- a language like C doesn't die, though within another few eons, it will probably at least fade away :P. And of course, VMs are as old as the first legacy support breaking big iron upgrades.

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

    1. Re:Give me a break by anthonyrcalgary · · Score: 1

      I agree 100%. When I don't need to touch fortran anymore, we can talk about getting rid of C. And every OS that has a kernel written primarily in C will need to be reimplemented in something else. Last time I checked, that was all the ones that counted.

      --
      When someone might yell at me, it has to be OpenBSD.
    2. Re:Give me a break by tshak · · Score: 1

      Will enterprise apps be developed with C,

      Not in the near future. It's too bug prone, insecure, and difficult to manage in larger codebases. Finally, the time to market with C is too costly for the enterprise.

      Will C# get used for "enterprise apps".

      It allready does, and we're talking mission critical Fortune 500. Google is your friend, use it before making rash statements. I'd much rather use .NET or J2EE for an enterprise level applications. Both .NET and J2EE support lower level programming (Managed C++/PInvoke and JNDI respectively) for the rare instances that direct hardware access is needed.

      Yes, C/C++ will be around for a long time, but new applications will continue to use higher level platforms as those platforms mature.

      --

      There is no longer anything that can be done with computers that is nontrivial and clearly legal. -- Paul Phillips
    3. Re:Give me a break by Anonymous Coward · · Score: 0

      You're totally missing the point, somewhat purposely it would seem. Mono is not aiming for total world domination where it doesn't make sense, nor in the scenarios you cite. It aims to be the bread and butter of middle tier web applications (displacing Java) as well as in *NIX desktop applications (significantly easing the very steep learning curve currently needed to develop GNOME applications in C). Miguel blogs about this here

    4. Re:Give me a break by Anonymous Coward · · Score: 0
      He didn't say that. It's not a quote. It's not in double quote marks. He could have had a long reasoned reasoning about the majority of websites and the software they use, how you can reuse apps and libraries for MS's .NET, and how C won't give that portability.

      And then it could have been boiled down to 'c is dead' (note: not actually a quote, because they're not quotation marks).

      So don't be so quick to judge please.

      And to respond to your post, you're talking about fringe scenarios. Most sites don't need what you're saying c can do, and most sites would prefer quicker development time (not to say that .Net is quicker, but that there are all kinds of reasons why it might be better suited for most mid-size sites because not everything needs to scale to a million hits on a P166MMX with 32MB ram).

    5. Re:Give me a break by Anonymous Coward · · Score: 0

      The only systems I am aware of that are what MS calls "enterprise" are the ones mentioned in .NET magazine or other windows magazines. For example, there was an article last year about London stock exchange using MS analysis service and .NET front end. Once you read more closely, it wasn't that London exchange was moving to Sql Server as the core backend. They were using it for smallish value added applications as a test bed, using MS Analysis Service as a lightweight data mining application. They aren't using MS Sql Server as the primary database. There wasn't enoughd details to know exactly how they managed it, but more likely than not, MSAS is getting feeds from Sybase/DB2/Oracle and using MOLP. That by the way is not real-time and allows for significant latency in data accuracy. So yeah it's being used for non-critical, non-core apps that I am aware of. But lets not pretend that magically windows and .NET is suddenly able to reach the same performance levels with .NET 1.1 as Unix system that have been around for decades.

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

    1. Re:Alternative mono names by baywulf · · Score: 1

      I think Mono is supposed to mean monkey in Spanish and we all know Ximian used primate names for everything they do.

    2. Re:Alternative mono names by wideBlueSkies · · Score: 1

      Gangrene

      Leukemia

      Montezuma's Revenge

      wbs.

      --
      Huh?
    3. Re:Alternative mono names by No.+24601 · · Score: 1
      After a long time searching I found these alternative names they considered.
      ...
      Genital Herpes
      Oily discharge

      With a name like bangular, you're clearly no stranger to these.

    4. Re:Alternative mono names by Anonymous Coward · · Score: 0

      i spent last summer in costa rica. 'Mono' does mean 'monkey', but it's also a slang term for a homosexual.

    5. Re:Alternative mono names by Anonymous Coward · · Score: 0

      ..apparently only to discover that their phb had personal reasons to avoid those three so they had to pick the dummy one which was there just for an illusion of choice.

    6. Re:Alternative mono names by Jellybob · · Score: 1

      Ummm... something to support that statement?

      So... we have:
      Mono (ok, you can have that one)
      Evolution (not a primate last time I checked)
      Red Carpet (nope... most definately not a form of monkey)
      Ximian Desktop (maybe, loosely, related to primates)

      So, it appears that you lose, thanks for playing.

    7. Re:Alternative mono names by Anonymous Coward · · Score: 0

      Slang varies greatly from region to region. At one time, "Donald Duck" was a slang term for homosexual in certain regions.

  49. 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 spongman · · Score: 1

      close, but no biscuit. there's plenty of stuff you can do in MSIL (even CLS-compliant stuff) that you can't do with C#. The closest natural representation of MSIL is managed-C++.

    4. Re:That is where you are mistaken by Anonymous Coward · · Score: 0

      Obviously, if NET was any good with loosely-typed* languages, there would be a VBS and a real ECMAScript frontend for it, so that people could have migrate their existing ASP code. So, it's no shock that Python falls down equally.

      * you know what I mean

    5. Re:That is where you are mistaken by Anonymous Coward · · Score: 0

      No, No, No. The difference is that the language Java was designed first and then the VM. Microsoft designed the CLR first and then designed C#.

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

    7. Re:That is where you are mistaken by alex_tibbles · · Score: 1

      That means that the demonstration Python on .Net implementation that the paper is about does not have those features... (i.e. will no support most Python programs).

    8. Re:That is where you are mistaken by tommck · · Score: 1

      I agree on multiple inheritance, but referencing "self" in construction? Could you elaborate?

      And, avoiding calling super-classes' constructors completely violates the concept of polymorphism. If that base class was designed to be constructed in a certain way, that's it! If you don't want to construct it that way, use something else.

      --
      ---- It puts the lotion on its skin or else it gets the hose again. It does this whenever it's told.
    9. Re:That is where you are mistaken by cshark · · Score: 1

      A very good illustration of this is in the attempt to create a Python.NET implementation by the folks at ActiveState.

      Or what M$ did to good ol visual basic. It's been distorted beyond recognition.

      --

      This signature has Super Cow Powers

    10. Re:That is where you are mistaken by Anonymous Coward · · Score: 0

      Umm, nothing stops the Python.NET guys from including polymorphism. That's the beauty of IL and its tight interaction with native code. You want polymorphism figure it out. Visual C++ can. Now your polymorphic classes won't interact with the CTS, but you can still run your python on top of .NET.

    11. Re:That is where you are mistaken by srn_test · · Score: 1

      Well, I don't know .NET, but they seemed to be saying you couldn't reference "this" in the constructor in .NET?

      And sometimes you know enough about the constructor to have done everything the superclass needs to do, and you just don't want to call it. It's not an uncommon thing to do in python...

    12. Re:That is where you are mistaken by Anonymous Coward · · Score: 0

      You can definitely call 'this' in a .NET constructor.

    13. Re:That is where you are mistaken by tommck · · Score: 1

      well, you definitely can access "this" in a C# constructor. How would you set member variables otherwise?

      and when it comes to constructors in superclasses, it is completely counter-intuitive to OO concepts to NOT construct a superclass in the manner in which it was intended. That is the whole point to inheritance. You will be doing things just like the base class and you look just like that base class, you just override some implementation. Construction is a contract. If the base class requires that it is done a certain way, that's just the way it is. I'm not very familiar with Python, but if it allows you to ignore base class contracts, then it is a really bad tool for OO solutions. That idea (not using base class constructors) should even pop into the head of a person trying to implement an OO solution.

      T

      --
      ---- It puts the lotion on its skin or else it gets the hose again. It does this whenever it's told.
  50. 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."
  51. Re: It looks like... by bill_doors · · Score: 1

    I still don't want to accept it... but sometimes Icaza say somethings that make me feel he is not thinking about code, programming or open source... but money... money comming from M$ :(

  52. 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 omicronish · · Score: 1

      Mono is particularly interesting for people like me, who primarily do Windows coding using Microsoft technologies but are still interested in Linux. Sure, Java and C developers probably don't care about Mono, but I would love to see a Linux implementation of .NET simply because of the possibility of running my current Windows .NET applications on Linux with minimal changes.

    4. Re:Why Mono Will Fail by Sesostris+III · · Score: 1

      Yes, but up to now Linux hasn't been mainstream. This is changing. I feel that the migration from Windows to Linux is going to increase in pace, and that means an increase in Windows developers moving to Linux. The prior expertise thay will have will be (most probably) either in Java or .NET.

      As Linux gains in popularity, the "Linux Culture" will change. Admittedly, some might not like it!

      --
      You never know what is enough unless you know what is more than enough. - Blake
    5. Re:Why Mono Will Fail by Trejkaz · · Score: 1

      You neglect to mention that it only feels like a native app on Linux. On Windows it feels like a Windows 2000 app, and I've heard nasties about its Mac performance.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    6. Re:Why Mono Will Fail by bcrowell · · Score: 1, Interesting
      Yeah, 10 years from now we'll still be doing manual memory management. Sure...
      Quite a few open-source developers have embraced automatic memory management. It's just that we tend to write our programs in Perl and Python.

      And for some reason Linux developers avoid Java like the plague, even though it's got a godzillion features that make everything so much easier (garbage collection, huge consistent class library, security, etc).
      "For some reason"? You make it sounds like we all just got PMS. There are two very clear reasons.

      1. Java is owned -- lock, stock, and barrel -- by Sun. If I want to install a Java runtime and Java development tools on my FreeBSD box, I have to jump through a bunch of different hoops, and click through on a lot of 20-page licensing agreements.
      2. Unlike Perl and Python, the available implementations of Java are not of high quality. Sun's implementations are bloated and slow. Sun put out AWT and then admitted that they goofed and needed to replace it with something completely different. Meanwhile the Perl and Python have gotten everything right the first time.
    7. Re:Why Mono Will Fail by Anonymous Coward · · Score: 0

      Yeah, 10 years from now we'll still be doing manual memory management.

      Dude, they're still doing UNIX-style programming and using C. They don't WANT to advance.

    8. Re:Why Mono Will Fail by jrcamp · · Score: 1

      If you take a look at the news for Eclipse 3.0 M7 you'll see that it looks like any other Windows XP application on XP. These were the most convenient screeshots to find, but I don't think this is anything new in the new version of SWT.

    9. Re:Why Mono Will Fail by fupeg · · Score: 1
      Java is owned -- lock, stock, and barrel -- by Sun. If I want to install a Java runtime and Java development tools on my FreeBSD box, I have to jump through a bunch of different hoops, and click through on a lot of 20-page licensing agreements
      The spec is owned. You are free to install any implementation of the spec that you like, from Sun or whoever.
      Unlike Perl and Python, the available implementations of Java are not of high quality. Sun's implementations are bloated and slow. Sun put out AWT and then admitted that they goofed and needed to replace it with something completely different. Meanwhile the Perl and Python have gotten everything right the first time.
      Umm, where have you been for the past four years? How can you even bring up AWT? It is not even close to relevant in evaluating modern Java. It's funny Java's not fast enough for Linux desktops, but it is fast enough for the most demandng enterprise systems. Try running any spec test on Linux with BEA's JVM vs. Perl or Python.
    10. 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.
    11. Re:Why Mono Will Fail by Anonymous Coward · · Score: 0

      There is no open-source JVM for Linux. Mono is open-source. Maybe that doesn't matter to you, but it does to me..

    12. Re:Why Mono Will Fail by alien_blueprint · · Score: 1

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

      We don't need, or want, Java *or* C# because we already have Python ;)

    13. Re:Why Mono Will Fail by cryptoluddite · · Score: 1

      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?

      Okay, now off-topic but all Smalltalk did was put these things together into one package:

      Mouse/Pointer: Doug Englebart
      Menus, drag and drop, word processor, etc: Ivan Sitherland.
      OO: Simula
      Garbage Collection: LISP (and others)

      All these things came well before Smalltalk. Smalltalk isn't even the same OO as the successful object-oriented languages: Java, C#, C++, SIMULA. SWT is good because it came from good people at IBM and uses native widgets, not because it came from Smalltalk. For example, it has manual allocation/free of resources -- not very smalltalk-like, is it?

    14. Re:Why Mono Will Fail by Homology · · Score: 1
      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.

      SUN's Java is schrouded in restrictive licenses, that also includes the documentation. Kudos to the Open Source developers for making alternative implementations, despite the licenses hurdles they have to overcome.

      As for Mono, a keyword : Patents.

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

    16. Re:Why Mono Will Fail by sholden · · Score: 1

      Meanwhile the Perl and Python have gotten everything right the first time.

      If you ignore all the things they didn't.

      perl threads, for example.

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

    18. Re:Why Mono Will Fail by bluelan · · Score: 1

      You don't have to manually manage memory in c++ if you don't want to. C++ can be garbage collected.

      --

      I used to be a narrator for bad mimes. (wright)

    19. Re:Why Mono Will Fail by nagora · · Score: 1
      Okay, now off-topic but all Smalltalk did was put these things together into one package

      "If I have seen further it is by standing on the shoulders of giants" I. Newton

      Sometimes the ability to see the power of combining things is the stroke of genius.

      As to the type of OO, I've never used Java or C# but C++ and SIMULA are not really OO. The very reason they are successful in terms of user numbers is that they allow you to go into non-OO mode at a whim instead of forcing consistancy. This makes them easier to learn and use but it's arguable whether it's a good thing or not in the long run.

      TWW

      --
      "Encyclopedia" is to "Wikipedia" what "Library" is to "Some people at a bus stop"
    20. Re:Why Mono Will Fail by ignavus · · Score: 1

      Maybe SWT is the answer - it is fast, Java, and uses either Gtk or Motif on Linux, while also running on Win32 without a recompile. Swing sucks for speed, and AWT just plain sucks.

      And remember - Mono is short for "Monopolistic"

      I wouldn't touch it with a bargepole.

      --
      I am anarch of all I survey.
    21. Re:Why Mono Will Fail by aled · · Score: 1

      JPackage has rpms for lots of Java apps.

      --

      "I think this line is mostly filler"
    22. Re:Why Mono Will Fail by Anonymous Coward · · Score: 0

      The Java-Gnome project, hosted on sourceforge, allows you to build Gnome and GTK apps using Java. Check them out!

      Glenn

    23. Re:Why Mono Will Fail by AbbyNormal · · Score: 1

      At work, I use Java and perl nearly exclusively. In my previous position, I wrote in C# nearly exclusively. Why did I like C# better? If I needed a form, I would simply drag and drop components onto a blank slate, double-click on them and write their events. If I didn't like their layout, a simply move here and there and voila? If java were to make it bigtime, in my opinion, some sort of tool featuring this ease of coding GUI use would need to be implemented. I don't have time to muck around with "Gridlayouts" and the sorts. I use eclipse to do most of my work, but there are some SIMPLE features in it, that have yet to be implemented in two years (folding...it NEEDS folding).

      --
      Sig it.
    24. Re:Why Mono Will Fail by metamatic · · Score: 1

      Yeah, now all it needs is some documentation.

      --
      GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
    25. Re:Why Mono Will Fail by claes · · Score: 1

      Yes, or how good is Tkinter in Python? AWT quality in my opinion.

    26. Re:Why Mono Will Fail by razmaspaz · · Score: 1

      Thats because both linux developers and java developers are not stupid. They know when to use what language. However look at the number of websphere/jboss/web logic installed on linux servers. IBM has made linux their websphere platform of choice. Sure there are no linux app developers using java, linux developers write tools for other linux developers. But there are tons of companies that use linux to provide a business dvelopment platform (like java/.NET) "Yeah, 10 years from now we'll still be doing manual memory management" I hope so. Somebody has to manage the memory. As a developer of business applications I REALLY don't want to worry about memory management. I focus on providing business logic and I don't know a darn thing about memory management (well not really I am a cs grad) but I shouldn't have to. Thats the kernel developers job. After all an operating system is The low-level software which handles the interface to peripheral hardware, schedules tasks, allocates storage, and presents a default interface to the user when no application program is running. -Dictionary.com I think they should add manages memory. After all why should I have to worry about how memory is managed if I don't have to worry about where things are stored in registries or on a disk?

      --
      I tried for 5 years to come up with a clever sig...only to realize that I am not clever.
    27. Re:Why Mono Will Fail by Anonymous Coward · · Score: 0

      Why open source JVMs can not keep up with the fast development? Are you suggesting that open source projects are too slow, compared to closed source projects?

      Anyway, I agree with you that, open source means less number of developers because people with good skills do not contribute much or that you don't have enough number of such people.

      That's also why Sun shouldn't open source Java, because it means that open source developers will not be able to keep up with the fast changes.

    28. Re:Why Mono Will Fail by Anonymous Coward · · Score: 0

      Which project have you seen that Linux community that you are talking about made it a big success? Apache, Mozilla are success of their own people, not the Linux community you are talking about. Linux community are using those projects and if you have noticed it, these apps are also available on Windows. Linux community's projects are KDE, Gnome etc... These projects are not big successes yet. Even company backed projects like OpenOffice are not successfull. So I don't know what do you mean by "Linux community wakes up". Linux community doesn't have much power, they can't even prevent Munich from failing. You totally misunderstand the Linux. Most of the projects that are sucessfull come from some big company or university sponsoring the project in some way. Very few projects that are started as hoppy become successful, Linux kernel is one example, but most of the open source projects fail, even the ones used extensively. KDE for example is still far away from Windows XP, in terms of usability, application support and so on.

      Also you totally forget that kiddies are reading slashdot mostly, very few developers are hanging out here. They read the news only.

    29. Re:Why Mono Will Fail by Trejkaz · · Score: 1

      It must be new at least since M5, because I have screenshots from a test app I wrote using the SWT from Eclipse M5, which actually look worse than Windows 2000.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    30. Re:Why Mono Will Fail by Johann · · Score: 1
      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.

      Well, given that Swing sucks and it's the main toolkit supplied with Java (unless you want AWT, which is even more primative), you answered your own question -- more Linux developers don't write java apps because the GUI toolkit is feature-prohibitive, compared to QT or (gasp) GTK+.

      Later

      --
      "You're gonna need a bigger boat." - Chief Brody
  53. 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.

    1. Re:This is the time... by Anonymous Coward · · Score: 0

      Sure, but I don't think people see a need for .NET. Heck, Windows programming sucks, so I'm all for .NET rather than trying to use Win32 directly, but programming on Unix is a pleasure as it is. There isn't really need for some cohesive megaproject that doesn't provide any additional value over existing tools.

    2. Re:This is the time... by Anonymous Coward · · Score: 0

      Sounds like step 2) ... of the usual business plan.

    3. Re:This is the time... by furriskey · · Score: 1

      The concept is good, but I think the implementation could be Java - if IBM succeed in their current effort to convince Sun to open-source Java.

      Bob Sutor of IBM said, in regards to open source java "If you could get every Linux distribution with an official, certified Java implementation where you could count on what it did, what its characteristics were, that would be a very powerful thing,"

      On the GUI front, Eclipse SWT is an open source cross-platform native-gui-widget api for Java. It has a GTK implementation on Linux. Interestingly there is also a QT implementation - but due to licensing issues Eclipse have not released it - yet.

      I hope IBM succeed in their twisting of Sun's arm on this issue. With Eclipse, and the vast array of open source java libraries available, java is a good platform for developing on linux, and other platforms.

      -f

  54. Did you read that in Datamation ? by Anonymous Coward · · Score: 0
    1. Re:Did you read that in Datamation ? by Anonymous Coward · · Score: 0

      No this is based on real data. do a search on biztalk compared to IBM. You'll see that IBM debunks the numbers MS posted last year. the ony way biztalk was able to come close to IBM MQSeries for transactional messages was to dump the messages. It didn't actually do anything with the messages. IBM has a write up with enough details to reproduce the test. In Microsoft's report they didn't provide enough details. It took IBM time to run their own tests to figure how those numbers were achieved. Google for the link yourself. I don't remember the exact numbers, but as the number of clients went above 20 for transactional messages, performance took a dive.

  55. Re:Isn't Miguel Icaza gay? by Anonymous Coward · · Score: 0

    I just bough Delphi 8 with .NET, you insensitive clod!

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

    1. Re:claim less, do more by Brandybuck · · Score: 1

      The trick with building Gnome for FreeBSD (or any other platform), is to stick with a well publicized even.dot.oh release. Use 2.4.0.0.0. Or 2.6.0.0.0. Anything else will shatter under mild impacts. So wait for the FreeBSD Gnome team to make an even.dot.oh announcement on Daemonnews, and go grab it right then. Wait a few days and a minor bug fix will happen to some dependency and you're screwed.

      --
      Don't blame me, I didn't vote for either of them!
    2. Re:claim less, do more by Anonymous Coward · · Score: 0

      Try gnome-2.6 when it comes out in a few weeks. The file manager (nautilus) now starts instantly.

    3. Re:claim less, do more by 0x0d0a · · Score: 1

      That doesn't happen on my Red Hat system.

      All this means is that FreeBSD distribution is broken (failing to give you proper releases), not that GNOME is broken.

      Finally, if one more goddamn person claims that "Miguel likes C#, so GNOME is going to become C#", I swear I'm going to go nuts. Miguel may like C#. That's great. Lots of the *rest* of us like to write software in C. Guess what? We aren't changing, and nobody has proposed to do so! Guillame Laurent likes C++, but you didn't see GNOME get converted to C++, did you?

      There is almost certainly *someone* involved with the core KDE team that likes ocaml or ruby. Incredibly enough, *KDE is not written in ocaml or ruby*! It's written in -- wait for it -- good ol' C++, same as it always has been!

      Christ.

    4. Re:claim less, do more by nineoneone · · Score: 0

      I'm running (well "running" may be an overstatement) GNOME 2.4 on a slowish box and it IS mind-numbingly slow to open an app. Thing is though, it seems to be very stable compared to KDE and I have grown to prefer the environment.
      The trick is to open Nautilus and whatever else you may want, once, at start-up and leave them open. I find that it is very capable and it will get faster with time, I'm sure..

      --
      sig under development
    5. Re:claim less, do more by metamatic · · Score: 1

      Well, GNOME self-destructed on my Fedora system, and when I went back to KDE to get some work done I discovered that KDE was much, much faster.

      --
      GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
  57. 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.

    1. Re:Me too. by Anonymous Coward · · Score: 0

      I see your dollar, and raise you ten dollars.

    2. Re:Me too. by Billly+Gates · · Score: 1
      C would of died if it were not for Unix.

      When I first got serious about linux I was supprised about C being the defecto standard. Especially gnome which was object oriented was writtin in non object oriented c???

      But its the standard. KDE is only now introducing Unix to C++. Part of it all the problem of course is the gnu c++ compiler really sucks ass and must unix users used that re-affirm why C was better. WIth Intel's c++ compiler and now wigh g++ 3.2x that is changing.

    3. Re:Me too. by Anonymous Coward · · Score: 0

      C would of died if it were not for Unix.

      Well duh! Thats about as insightful as saying Visual Basic would have died were it not for Windows.

  58. C is dead by shadowbearer · · Score: 1
    How strange that one types the phrase "c is dead" into google, and gets this about George C. Scott's obit from 1999 as the first hit.

    What's weirder is I just got done watching the movie Patton on some cable channel or another.

    (queue twilight zone music here)

    /me removes tinfoil hat and puts it on the workbench for further study. There *must* be some connection, right?

    SB

    --
    It's old. The more humans I meet, the more I like my cats. At least they are honest.
    1. 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.
    2. Re:C is dead by Anonymous Coward · · Score: 0

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

      They won't miss it. K and S kan be used instead. It's kompletely unesessary.

    3. Re:C is dead by MyHair · · Score: 1

      Crap! Now those sobriety tests will be extra hard to remember!

    4. Re:C is dead by Anonymous Coward · · Score: 0

      Now THAT was funny. :-)

  59. 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..."
  60. COMPLETELY different by Azureflare · · Score: 1
    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.

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

    1. 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
    2. Re:COMPLETELY different by Anonymous Coward · · Score: 0

      Yet, without the Samba project, the lives of sysadmins preferring Linux machines would be much more difficult. I for one, couldn't imagine a mixed Windows/Linux network without Samba. It's a must. Granted, it doesn't have the level of compatibility with Windows compared with a windows machine, but that's not a fair comparison, as Samba never intended to implement 100% of Windows features anyway.

      Besides, implementing the .NET framework shortens/eliminates the design phrase, an area most OSS developers aren't too keen on. Just look how long it took for Perl 6 to develop new syntax, methods and paradigms.

    3. Re:COMPLETELY different by spongman · · Score: 1
      Operating systems are NOT, I repeat, NOT in the same boat as operating systems.
      MAN OVERBOARD!
    4. Re:COMPLETELY different by Anonymous Coward · · Score: 1, Insightful

      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.

      Yes! This is the biggest problem I have with any Microsoft standard. They have done this since they started; create/coopt a standard, change the standard with every release and deliberately break compatibility with any previous version. It allows them to "churn" all their competition, tying them up with changes just to make existing stuff keep working while Microsoft "innovates".

      Mod me as Troll if you must, but the biggest problem with .NET is not in any technical merits/demerits, it's in the fact that it is Microsoft's!

  61. It tends to use a wee bit of memory too by konmaskisin · · Score: 1

    ... of course RAM is cheap right? So buy two Gigs and reboot often.

  62. Hrm by Anonymous Coward · · Score: 0
    You must have been running on a celery 500. Seriously, Gnome 2.4, and 2.6 coming up, is a much better desktop environment than 2.2 and previous versions. I think Gnome is a great environment, but it's not the best. There's no need to bash it. It's got a lot of quality in it, and it's (In my experience) more stable than KDE, which tends to crash quite a bit. KDE still beats Gnome on speed, but Gnome isn't as bad as you make it out to be. It's quite usable.

    I hope you're not trolling. Because really, you're sounding like a gnome-bashing troll to me.

  63. 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 Anonymous Coward · · Score: 0

      I reckon Intel's compiler is available on x86 (duh) but almost anyone on linux uses gcc. go figure!

    2. Re:One thing you need to know about DeIcaza.. by Anonymous Coward · · Score: 0

      If Microsoft doesn't want the .Net framework available on other platforms, they're not going to make it available.


      Then I guess they want it on other platforms. Quoting http://www.go-mono.com/faq.html:

      Question 54: What architectures does Mono support?

      Mono today ships with a Just-in-Time compiler for x86-based systems. It is tested regularly on Linux, FreeBSD and Windows (with the XP/NT core).

      There is also an interpreter, which is slower that runs on the s390, SPARC and PowerPC architectures.
    3. Re:One thing you need to know about DeIcaza.. by HRbnjR · · Score: 1

      You just don't get it.

      I don't give a flying monkey what platform MS .NET stuff runs on, because I wouldn't look sideways from Mono until MS *LGPL* it.

      Some of us actually care about Freedom in our Free Software.

    4. Re:One thing you need to know about DeIcaza.. by Anonymous Coward · · Score: 0

      This is from someone who's rocket scientist idea for Gnome was "Rollback Desktops", or whatever it was you called them.

    5. 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.
    6. Re:One thing you need to know about DeIcaza.. by Anonymous Coward · · Score: 1, Interesting

      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.

      Thanks for ditching the efforts of thousands of volunteers in the current direction of Gnome, that is quite different than Windows'. Miguel currently works solely on Mono, and has no saying in Gnome development.

      Of course, I'm sure Gnome's direction would be much better if you were still designing its interface. Heh.

    7. Re:One thing you need to know about DeIcaza.. by Anonymous Coward · · Score: 0



      Hey, at least I tried! :) Hell, even back then, most of who watched Gnome's early development knew how ultimately pointless building a Windows knock-off would be. I did my best with what I had back then to dissuade people away from that idea.

      Personally, I can recall a number of conversations I had with Federico and Miguel at the time, circa '98.. Neither of these guys had a clue about how a proper GUI was designed. The only thing I kept hearing from them was, "We should mimic the Mac OS style guide." ....which would have been just as bad, when you think about it. Instead of Linux having a second-rate Windows knock-off, they figured on giving Linux a second-rate Mac OS knock-off.

      Both Gnome & KDE's fixation on mimicking Windows is (IMHO, at least) the single largest factor in Linux's inability to get a foothold in the desktop market.. Why? Well, In the end, all they have to offer the world is a sub-standard version of precisely what people are trying desparately to get away from. Windows.

      Think about it. Try to imagine for a moment, being totally new to Linux, and seeing Gnome or KDE for the first time. It comes across as "Hi, welcome to Linux. This is the best we can do for a desktop right now. Sorry." .....All we have to offer the world is a clone of something everyone agreed 7 years ago was worth giving up -- Windows.

      That being said, I've never understood the hesitancy people have when it comes to trying new ideas. Just as it was back then, the vast majority of Gnome's developers seem absolutely hell-bent on replicating Windows for some reason. If you ask them why, they look like a deer caught in the headlights. It's like they have a switch flipped in the back of their heads that says "Avast ye!! ALL DESKTOPS MUST LOOK AS CLOSE TO WINDOWS AS POSSIBLE! I scorn thee, HERETIC! New ideas are the DEVIL'S WORK! The people have NEVER SEEN these tools before! They wont know what to do with them! The sky will fall if we let the people use them! Cast them into the fire!! Buuuuuurrrn them!!"


      Every time I see this sort of thing, I'm dumbfounded at the fact that most of these guys haven't even stopped to think if their work is even justified -- if their design beliefs are even rational, let alone backed up by real-world usability studies. The desktop design methodology Microsoft introduced with Windows 95 & 98 (the idea of a "Start" menu, a tray, and a taskbar) has been pointed to for years as being one of the clumsiest, most unintuitive, most unergonomic desktop designs ever concieved!

      The Linux community would benefit greatly from an skunk-works'ish outlet where designers could test-fly their ideas There needs to be a little more bravery among us, and alot less goose-stepping, as I see it. I don't care how preposterous an idea may seem on the surface--I like to see new things, new ideas. Even the ones that go down in flames still provide a good show. :) All that I can do in the meantime is write mine down, and share them, hoping somebody listens.

      The guy who figures out how to flip the Linux community's desktop innovation switch back to the "On" position will be King.......but I can guarantee you it wont be DeIcaza. It simply doesn't make sense to say "I'm not happy with Windows, so I switched to Linux", and then go and build the exact same thing you're trying to get away from! Windows!

      The problem with Miguel, bless his heart, is that Miguel wants a "Winux". The rest of the Linux community just wants a unique desktop they can call their own. Something that gives Linux a common face, the way OS X's desktop gives the Mac a face, the way Windows gives the PC a face.

      Gnome's core developer constituancy are (for the most part) a very bright, very talented group of guys... But the sum total of their efforts are amounting to jack squat, having to continually play second fiddle to Windows..It's that simple. Sad, but..simple.

      Cheers,
      Bowie

    8. Re:One thing you need to know about DeIcaza.. by Anonymous Coward · · Score: 0

      Neither of these guys had a clue about how a proper GUI was designed.

      I guess your awful lamps that didn't consider accessibility (hello? define "colorblind") demonstrate you're much better than them. Kettle and Pot.

      Of course, if you had some involvement in gnome nowadays, you'd know the UI design has changed hands since long ago.

      Instead of Linux having a second-rate Windows knock-off, they figured on giving Linux a second-rate Mac OS knock-off.

      Gnome has pieces from Mac OS (like the default panel positioning), Windows (ordering of window buttons in metacity), OS/2 (new template system) and a few of their own (like the screenshot system).

      It's much more a mix of many interfaces than a straight knock-off.

      Every time I see this sort of thing, I'm dumbfounded at the fact that most of these guys haven't even stopped to think if their work is even justified -- if their design beliefs are even rational, let alone backed up by real-world usability studies.

      No usability studies? Man, in 2001 Sun did usability studies in gnome 1.4 and the results were used in 2.0. You're a little late to criticize that. And there's been a new one, with results being publicized soon.

      Add to that that if you think they copied Mac, its interface is derived from one with really good usability studies.

      Are you for real?

      I don't care how preposterous an idea may seem on the surface--I like to see new things, new ideas. Even the ones that go down in flames still provide a good show. :)

      Are we considering getting linux in the enterprise desktops, or using it forever as a geek toy?

      It's better to take ideas that work from existing interfaces than inventing crap that makes the desktop suck.

      All that I can do in the meantime is write mine down, and share them, hoping somebody listens.

      You only say imitation is bad, and bash people that, unlike you, are working on getting usable desktops. No new ideas in your last posts, just trolling.

      Gnome's core developer constituancy are (for the most part) a very bright, very talented group of guys... But the sum total of their efforts are amounting to jack squat, having to continually play second fiddle to Windows..It's that simple. Sad, but..simple.

      It's your personal opinion. I find gnome light years ahead from Windows in usability.

      BTW, nice touch, not login in. Don't want to lose karma, huh?

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

    10. Re:One thing you need to know about DeIcaza.. by Anonymous Coward · · Score: 0

      Hey, you ought to try using Bowie's software before slamming his design ideas. I love the looks and simplicity of his pogo launcher.

      Hey, Bowie ought to try recent gnome releases before slamming its developers' ideas. I love the looks and simplicity of gnome desktop.

      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.

      Gnome developers don't just blow smoke, they have real software and very firm opinions and convictions. If Bowie doesn't agree with them that is fine, but he shouldn't slam them for their opinions, and make like they are someone who does nothing for the community.

      You people have problems looking at the other side of the wall :P

    11. Re:One thing you need to know about DeIcaza.. by Anonymous Coward · · Score: 0

      ...His karma is excellent, actually. (sic)

      weather you like him or not Poag has a point.

  64. 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
    1. Re:The peril that is .Net by alex_tibbles · · Score: 1

      Perhaps you might find Scheme.NET more interesting. It's Scheme. There is also dot-scheme. Scheme isn't a half-baked functional language. Of coure, it isn't a Haskell or ML, but it is pretty pure... (I'm just not quite sure what it is beyond "a statically scoped and properly tail-recursive dialect of the Lisp programming language").

  65. Create and extend... by Anonymous Coward · · Score: 0

    ...in this case.

  66. 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.
  67. Java is a better choise by Anonymous Coward · · Score: 0

    Maybe in couple of years they will get Mono to the point where it's useful, if MS does not claim that they violate their IP (a la SCO).

    For now, if one wants a high paying job and interesting projects, it's Java all the way.

    1. Re:Java is a better choise by Anonymous Coward · · Score: 0

      C will be around for times to come; however, it only appears dead because people like you don't know how to use C, when given a choiCe.

  68. Postulate by Lord+Bitman · · Score: 1

    I have a theory here, and I'd like to see how it stands the test of time:
    If you are trying to communicate with someone, and you arent using an open standard, you really shouldnt be communicating with anyone.

    --
    -- 'The' Lord and Master Bitman On High, Master Of All
  69. 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
    1. Re:Generics by lupus-slash · · Score: 1

      Mono has already support for generics, both in the runtime and in the C# compiler (use the gmcs variant).

  70. C is dead by corian · · Score: 4, Funny

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

  71. 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!
  72. An interesting idea... by SuperKendall · · Score: 1

    I do like addressing the duplication, but we'll have to see how much traction it gets. Will Microsoft add it to Visual Studio? Will Struts be ported to it?

    I do fear it being weakened by the differences between languages. When Generics goes in to both .net and Java, they go separate ways in capabilities regarding runtime reflection over generic types (still not sure which is better, I like the capabilities .Net is offering but appreciate the goal of backwards compatibility with Java) and I don't see how this language can handle things like that gracefully without dumbing down the language and loosing some really powerful features from either language.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  73. 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

    1. Re:New Slogan: Catch Mono! by pyrrho · · Score: 1

      "Microsoft - Duplicates anything they don't own and control"

      and that is only reason #13!

      --

      -pyrrho

  74. It wouldn't kill you to learn to read. by Murmer · · Score: 1, Informative
    Specifically, the bit in the ECMA Code of Conduct where it says they allow you, unlike virtually any other standards agency, to obtain a "standard" designation for proprietary patented technology.

    Why do you think they did that, I wonder?

    --
    Mike Hoye
    1. Re:It wouldn't kill you to learn to read. by Valar · · Score: 1

      Having read significant parts of ecma 334 & 335, I see no notification of patent retention. However, it should be noted that HP, Intel and Microsoft (which implies that HP and Intel also own some of the associated patents-- generally, only the IP owners are creditied as inventors in these standards) jointly submitted 334 and that if a judge construed the lack of a patent declaration in the standard to be misleading to people using the standard, then their patent could be ruled effectively void.

    2. Re:It wouldn't kill you to learn to read. by Anonymous Coward · · Score: 0

      ...his continued participation to the relevant committee will imply that such a patent, when obtained later, will be made available from his company for licensing on a reasonable, non-discriminatory basis.

      I think the non-disciminatory basis was what he was referring to. It would be pretty hard for MS to prove they aren't descriminating against the mono project if they pursued a lawsuit. In other words, defensive patents are allowed, offensive ones are not.

    3. Re:It wouldn't kill you to learn to read. by OeLeWaPpErKe · · Score: 1

      Their patent could be nullified because they didn't metion it ?

      You interpret the mere omission of the patent declaration as a free license to use said patent in any application ? I seriously doubt any judge will follow you in this.

      And, don't forget, if the US legal system has made anything clear, it's that it will stick to patents until the argument go into absurdities (and even then, remember one-click ?)

      But the point is, you are insane if you think that argument you just made will hold up.

    4. Re:It wouldn't kill you to learn to read. by Anonymous Coward · · Score: 0

      "Non-disciminatory" just means they have to have flat rate sheet. It could be $1 Million bucks (not that Novell/Ximian couldn't afford it) -- but it can't be "Give us Patents A, B, and maybe C."

      Since Mono is the only .NET copy I know of, "discrimination" doesn't enter into the picture at all.

    5. Re:It wouldn't kill you to learn to read. by Anonymous Coward · · Score: 0

      That's why its also an ISO standard as well as ECMA...

      Same with the next version of C++ coming out in Whidbey. It's in the pipeline to be ISO and ECMA standardized.

    6. Re:It wouldn't kill you to learn to read. by Valar · · Score: 1

      In general, you are right. However, in the context of ecma standards, they have to declare their patent and intent to license in the draft if they intend to do so. It isn't the law in general that would nullify their patent, it is their agreement (think contract law) with the ecma.

  75. Re:Miguel's....This is NOT a troll. Mod back up! by Anonymous Coward · · Score: 0

    If you dont like what this guy is saying, ignore it, or reply to it. Don't mod the goddamn thing a troll, fuckwit.

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

    1. Re:C not dead, .NET/C# not interesting by Anonymous Coward · · Score: 0

      Or how about when Ruby has a great environment like Eclipse (which is far superior to VS). Oh wait, it already exists. I'm pretty sure there are Ruby plugins for Eclipse. Check them out.

    2. Re:C not dead, .NET/C# not interesting by Anonymous Coward · · Score: 0
      C is the only language I know where I can control memory and CPU usage

      If people could control memory in C, there wouldn't be so damn many segmentation faults and buffer overruns.

      What kind of sloppy idiot doesn't check for buffer overflows? What kind of crappy language lets him get away with it?

  77. Disease by Anonymous Coward · · Score: 0

    Maybe the monkeys in yellow bubbles are carriers.

  78. Java is RAD? Surely you jest... by Anonymous Coward · · Score: 0

    Java is slow and laborious to code with. You want fast application development, you use something like [Perl|Ruby|Python] with a cross-platform toolkit like wxwindows. And download wxglade while you're at it.
    I guarantee you'll speed up development time by threefold or more. And the app will actually be responsive (unlike lots of java apps).
    And just wait a few years for parrot. Then there'll be no reason at all to use a commercially-imposed toolkit (Sun's Java, or MS's .NET) instead of a toolkit designed for actually getting shit done.

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

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

    --
    Cheers,
    RoadkillBunny
  80. Re:Important comparisons between .Net and Linux by Anonymous Coward · · Score: 0

    Mod parent up, that was great!

  81. 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.
    2. Re:Danger! by Anonymous Coward · · Score: 0

      So how do the GNOME people think to take over the Linux Desktop with s/.NET/MONO/g?
      License: Microsoft "non-discriminatory". -> Debian: "non-free" ... Bruce Perens: "GNOME is SUPERIOR!"
      The whole MONO/GNOME/GTK disease sucks!

    3. Re:Danger! by Anonymous Coward · · Score: 1, Interesting

      Well for a start the MSFT/SCO has not been black and white 100% proven in a court of law so dont try to use it in any context to prove a point. Besides which:

      "So why implement the Microsoft APIs at all? Simple: to make migration from Windows to Linux as easy as possible"

      Show me the quote where Miguel has said that MSFT will definately never ever try to sue / destabilise / be evil over it ? you cant because you have assumed this is his stance since it fits with you anti-MS,SCO,some big company view.

    4. Re:Danger! by Elektroschock · · Score: 1

      Patents are dangerous but they have to be fixed at the lawmaker. It would be very good to devote more time to fix the law rather that avoid trivial patents.

      C# is a nice language.

      Mono an ambitious project, however it lacks qt integration.

      We don't x JVM, y .NET implementations. what we really need is a stable and working plattform.

      I prefer Java anc C# over C and C++ because they are safer in the application space.

      However a real success may be a proper Visual Basic replacement.

      I also like Lazarus
      http://lazarus.freepascal.org

      I don't want software that will be mature when it is obsolete.

    5. Re:Danger! by Anonymous Coward · · Score: 0
      I've found the loophole in democracy. It's stupid people. Vast masses of stupid people.

      Preach it, brother.

  82. 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 00420 · · Score: 1

      The site won't let me watch it because it says there is no available plugin for my browser that I can watch it in.

      I guess Microsoft has never heard of MPlayer.

      So I clicked "download the video" and it gave me the option to download an .exe file.

      Why does MS have to be such a bitch?

    2. Re:Why should we bother? by Anonymous Coward · · Score: 0

      Yikes! did they just come back from SF city hall?

    3. Re:Why should we bother? by bonch · · Score: 1

      This is on MSDN--the obvious assumption is that Windows developers will be watching it.

      The .exe extracts a large .wmv file. Perhaps someone could mirror?

    4. Re:Why should we bother? by gabebear · · Score: 1
      The video is a damned windows executable file!!!

      That's Fing hilarious on many levels

    5. Re:Why should we bother? by pAnkRat · · Score: 1

      I thought the same,
      Maybe I _want_ to switch from Debain to Longhorn
      after seeing how kewl it is.

      But I can't watch the video...

      --
      we need an "-1 Plain wrong" moderation option!
    6. 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
    7. Re:Why should we bother? by edooper · · Score: 1

      They're using emacs as the editor - cool. But maybe someone should show them some tricks: like M-/ for word completion. Always gets on my nerves when people use emacs and don't use features like that.

      Oh, and you can also use wine to extract the .wmv from the download.

    8. Re:Why should we bother? by pNutz · · Score: 1

      I guess what you're impressed by is Avalon.

      Enlightenment's edje library does basically the same thing. The UI is completely abstracted from the program, so you can design the entire interface in a simple text (.edc) file. The syntax is a little uglier than Avalon, but it is strictly interpreted (Avalon's xaml files can be interpreted at runtime, but the performance hit is [reportedly] bad). Edje files seem to be more powerful, as you can write little subroutines in the files for things like 'check all boxes'. I'm sure Longhorn's widgets more than make up for this though.

      But what I'm saying is that we can do this. Too bad nobody cares about enlighenment anymore.

      Oh, and edje (and all of the EFL's) are strictly C.

      --
      Death and danger are my various breads and various butters.
  83. +5 Insightful!!! by GypC · · Score: 0, Troll

    These people want to make Unix into a bad version of Windows.

    I use shell commands for file management. I don't trust binary and opaque protocols.

    Gnome is crap. Windows is crap. CORBA is crap. COM+ is crap.

    Lusers who won't learn suck. People who cater to lusers who won't learn suck. People who think being popular is better than being good suck. People who copy inferior paradigms because they are more popular suck ass.

    Icons aren't any easier than shell commands. Lusers can't figure out shell commands. Lusers can't figure out the fucking icons and folders either and you know it. You might as well get rid of that crap and quit pretending. It's much easier to tell the lusers what to type instead of which illiterate little cute little fucking pictures to click on ("Do I use the right mouse button again? Or the left?" BLAM! BLAM! BLAM! "DIE, LUSER!")

    Miguel, Gnome fans, KDE fans, Microsoft and their entire horde of lusers and sycophants all suck. They are a bunch of top-posting, HTML-mailing, file-losing, mouse-clicking, virus-spreading, Bonzai-buddy-downloading, binary-document-and-protocol using, drooling, XML-abusing, idiots who would rather drown their own grandmothers than admit that their giant, unstable, digital house of cards isn't good for much else than Solitaire, Excel, and job-security. Oh yeah, and as a very expensive and unstable platform on which to run a terminal emulator so they can use a REAL FUCKING COMPUTER!!!

    1. Re:+5 Insightful!!! by Anonymous Coward · · Score: 0

      CLI fans suck. People who say "luser" suck ass.

  84. C is dead ??? by bzImage8 · · Score: 1, Interesting

    Pardon me, but i wonder this:

    The C++ compiler its writted in basic ?
    The C# compiler its writted in assembler ?
    The java compiler its writted in java ?
    isn't C the basis for all the compilers code ?

    --
    Unix its simple, but sometimes it takes a geniuos to understand the simplicity -- Dennis Ritchie
    1. Re:C is dead ??? by Anonymous Coward · · Score: 0

      Sun's javac is written in Java. The JVM is not. The JVM startup time is a big reason small java compile jobs seem to take forever per line of code. You've abviously never abused your javac and gotten it to throw an exception while compiling.

      Many Pascal compilers are written in Pascal.

      On the other hand, Jikes is a java compiler written in C.

      You are right in that it will take a lot to replace C/C++ as the "bare metal" interface of choice.

      I would suspect that most of the CLR is written in C++.

      C/C++ is often used for "bootstrapping" languages. There's even some bootstrapping required for C compilers on machines that already have C compilers. Try compiling GCC sometime. There's a mini comiler written in ANSI-C that gets compiled first and is able to understand the GCC-isms in the rest of the GCC code. That mini compiler then compiles all of GCC. This second compiler then compiles all of GCC again and the results are compared. If the second and third compilers are identical, then it is deemed a successfull build.

  85. 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
    1. Re:Please MS punish us? by Anonymous Coward · · Score: 1, Funny

      Building Gnome on top of Mono is fine, really I see no problem with it, but why would I want a desktop with a smelly foot on it?

    2. Re:Please MS punish us? by entrigant · · Score: 1

      RTFA

      Only the windows api's are patented. Obviously, gnome probably won't be using those.

    3. Re:Please MS punish us? by prockcore · · Score: 1


      Do ANYONE think that MS would let the oppurtunity to use a patent against OSS go by?


      Perhaps you should just drop OSS altogether and go with Windows. Because if you believe that MS doesn't have patents that could apply to the linux kernel itself, you're deluding yourself.

  86. 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
  87. Should we come up with our own? by bonch · · Score: 1

    ...our own similar run-time framework? I mean, why isn't Java being embraced? Is there something inferior about Java? Is Mono the future, or should we instead be concentrating on creating something entirely innovated by the OSS community for use in GNU/Linux?

    I'm not sure I like the idea of just blatantly copying Microsoft. As you correctly point out, it'll never truly be the .NET that Microsoft puts out.

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

    1. Re:Gmone needs to distance itself from Mono by GauteL · · Score: 1

      "Miguel has a solid reputation and has done a lot for the community, but in this case he is either (best case) a fool for thinking that Micro-Soft can be trusted or (worst case) a quisling. Either way, it's barge pole time."

      I'm sorry, but there is at least one more option which you are conviniently disregarding:
      c) He's right

    2. Re:Gmone needs to distance itself from Mono by Anonymous Coward · · Score: 0

      Sure, and I might die because the air in this room will suddenly rush to the corners, leaving me in vacuum.

    3. Re:Gmone needs to distance itself from Mono by Anonymous Coward · · Score: 0

      It's spelled "Microsoft", dammit!

  89. what i think he means by c being dead by mehtars · · Score: 1

    I think that c is going to be phased out more and more..
    we're just waiting for the next big language to come accross and have the same effects that c had.

    Java was supposed to be that language, but somewhere along the line, sun screwed up-- basically i believe with having portability..

    but anyways.. C sharp might become that language we have been waiting for.

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

    -

  91. warning - troll by Anonymous Coward · · Score: 0

    moderators, do yourself a favor and check this asswipe's posting history. he's not the real Miguel, he's just a jackass imposter.

  92. 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 certsoft · · Score: 1

      This has been happening for years, there's nothing special about C in this regard. In fact, I think I read that the C# compiler is written in C#, no reason for it not to be.

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

    4. Re:No language can replace C ... by LarsWestergren · · Score: 1

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

      Espresso
      - a Java compiler written in Java.

      A list of compiler and compiler tools in Java -including parser generators like JavaCC

      --

      Being bitter is drinking poison and hoping someone else will die

    5. Re:No language can replace C ... by certsoft · · Score: 1
      So, let me ask, in what language was coded the first C# compiler ? or the first C++ compiler ? or the first Java compiler ?

      I don't have any inside information about those, but I can relate my own experience back in the 1980's. I wrote a Pascal compiler (to run on Motorola 6809, an 8 bit processor) in 6809 assembly language. Later, when the 68000 was catching on I first modified the code generator to produce 68000 code instead of 6809 code. I used that kludge (it was not a commercial product) to write a 68000 Pascal compiler in 6809 Pascal. Once done, that compiler could then be compiled with itself on the 68000 system.

    6. 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
    7. 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
    8. 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
    9. Re:No language can replace C ... by Anonymous Coward · · Score: 0

      Y'know, your post was still more readable than half the other posts on Slashdot.

  93. Miguel de icaza is a jerk by Anonymous Coward · · Score: 0, Interesting

    I have the chance to meet him and he thinks that he is the master of the universe and everybody must know that.

    In other words, he is a real jerk


    If he says C its dead, i dont care, he can try to copy .net as long as he wish, meanwhile, i will continue programming in C

  94. Does Sclumberger know about this? by Anonymous Coward · · Score: 0

    I was under the impression there already was a trademarked piece of software called Eclipse

    1. Re:Does Sclumberger know about this? by Darth · · Score: 1

      I was under the impression there already was a trademarked piece of software called Eclipse

      There are no trademark symbols used anywhere on that page with respect to the use of the name Eclipse for that piece of software. I imagine it is not trademarked.

      If it were, it might still not be considered an infringement of their trademark since their software has a different market than the eclipse ide.

      --
      Darth --
      Nil Mortifi, Sine Lucre
  95. Well how come Microsoft can... by Anonymous Coward · · Score: 0

    better Unix than Unix, ala NT (Next Technology)

  96. 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 Mr.+Hankey · · Score: 1

      He does have a point which shouldn't be dismissed without some thought. Do you remember when the primary version of Java under Linux was from Blackdown? There was quite a bit of friction when Sun released a Linux version of Java without any credit toward the Blackdown team. I doubt that Microsoft would be terribly worried about pulling the same stunt themselves.

      --
      GPL: Free as in will
    2. 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).

    3. Re:What a load of rubbish by Graymalkin · · Score: 1

      Microsoft's longterm plan is to have their software on everyone's computer. While forcing vendors to stick Windows on new PCs has worked for a while it won't necessarily work forever. Windows is being eclipsed by Linux in a variety of areas anymore. While Linux isn't about to replace Windows the world over tomorrow it is making headway in a number of large organizations.

      Enter .NET. No matter what the underlying operating system Microsoft could still get their software on everyone's computer. The .NET environment is designed to be highly portable and as such can be run on Linux, HP-UX, AIX, Solaris, Linux, MacOS X, Windows, even embedded OSes. Using .NET frameworks and compiling software to p-code means that software will run on any computer with a .NET runtime environment installed on it. I'm pretty sure Microsoft would want that to be every computer. I think that is the entire reason Microsoft's been pushing .NET so much lately, Windows is going to be turned into a commodity product. Instead of pushing Windows Microsoft will be pushing its .NET environment instead. Munich, the DoD, or all of China could switch to Linux and Microsoft could still make money hand over fist selling those organizations .NET runtimes.

      "Run Linux and still have all of your old Windows .NET programs available!"

      In the early days of the PC industry Microsoft managed to commoditize the PC. Since MS-DOS would run on any PC it didn't matter what hardware vendor your organization chose. No matter if you bought from IBM, Compaq, or Packard-Bell, DOS and you entire software library would still run. I think it stands to reason that Microsoft wants to do the same thing with the OS market. An OS takes a huge amount of work to produce and maintain. Until the final support contracts run out money has to be poured into the development of the OS to keep it patched and functional and working with the software your big customers need. I could see Microsoft wanting out of that mainstream market in a few years when the playing field is much more competitive with Linux, MacOS, and even an as yet unknown OS vying for supremacy in the market. Instead of slugging it out with real competition Windows could just just another system .NET runs on.

      ergo, it doesn't seem unlikely .NET will be released on any and every platform with enough users to make money off of.

      --
      I'm a loner Dottie, a Rebel.
  97. Try an OS written in C#.... by EmbeddedJanitor · · Score: 1

    ... when Intel make the 15 THz Pentium 10.

    --
    Engineering is the art of compromise.
  98. Mono is coded in Cobol ? by Anonymous Coward · · Score: 0
    Might be Miguel could be right ... Mono is coded in Cobol ....

    Maybe C is not just dead yet ... or Miguel will not be hawking Gtk#,Gnome#... all wrappers of stuff over good old C code ... he'll be rewriting Windows.Forms in C# ... like some other fools are doing

    Wake up ! ... he's just trying to sell the Mono idea to the Gnome community

  99. My favorite part of this post would have to be... by boredofthesane · · Score: 1

    The "Love" part. It combines a "knowitallness" with a dash of "aren't you a dumbass." Very Nice...

  100. 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
  101. Door Swings Both Ways by TiKwanLeep · · Score: 1
    Mono will make it easy for Windows devs to develop on Linux BUT it will also make it easy for Linux devs to move to and develop on Windows.

    The door swings both ways. If Mono becomes a Linux success and the future of Gnome &| KDE then the Mono team will have essentially handed Linux developers over to the Microsoft platform...

  102. SWT and GCJ by kupci · · Score: 1
    I use WSAD, which is built on Eclipse. It's pretty darn impressive. The main goal was to provide a great development environment and I'd say they achieved that. Certainly there are other great IDEs (IntelliJ?). It's SWT, not Swing, and you can see the difference in apps that do use swing such as JEdit, Sun's NetBeans and Togethersoft's TogetherJ. Yes they are good, but when you use a product every day every little bit of speed, ease of use is important.

    Also here's a good article on SWT and GCJ.

  103. the dead sea...errr...C by ocularDeathRay · · Score: 0

    I mean this in reference to all the articles saying C is dead lately... not JUST this one. look... I am very tired of people overgeneralizing stuff like this. C is dead... define dead in the context of programming languages. Last I checked C was never ALIVE. People decide they don't like something these days and they decide it must not usefull to other people either. In my eyes the strength of open source is that it offers a broad range of choices. If Mono...or Bill Gates... or ANYBODY decides something is dead, does that mean I am not allowed to use it anymore? Bah, I am sick of this. I still enjoy getting out my old Nintendo Entertainment System and playing a few old games. This is completely contrary to the people who told me it was DEAD when SNES was released. I may not use that nintendo as often as before... but I still find it usefull. If something is of less use than when it was new... should we declare it dead? of course not. I will feel very free to write software in any language I wish. I will feel very free to write software in a language that is not well suited to the task... if that fires my rocket. Many of us are having trouble finding programming jobs... but work on open source for various reasons. My reason is plain old FUN. Maybe tomorrow I will decide it would be FUN to write a game in cobol. but COBOL is DEAD you say... well sue me. sorry. I am bored tonight and getting rather worked up over stuff that shouldn't bother me. I am gonna go to bed and try to have happy dreams... dreams where I don't feel like I am surrounded by idiots.

    --
    Obama is a twitter sock puppet
  104. you should patent ypur idea by Anonymous Coward · · Score: 0

    because your new c! language seems interesting :)

    how do you pronounce the '!'?

  105. GNOME.NET by Anonymous Coward · · Score: 0

    aehm ... will GNOME3 be GNOME.NET? When will all GNOME/GTK users asked "upgrade" to M$ Windows? ... this sucks! rm -rf mono

  106. .NET != C+ by Anonymous Coward · · Score: 1, Informative

    .NET is a framework or idea. It is not the same thing as C#. C# is a language, like C, C++, Tcl or whatever. .NET is about portability of meta-data, XML web-services, and whatever other buzz-words MS feels like using today. In any case, .NET is not C#. You can write COBOL and still utiilze .NET. (Funny thing is they advertise that...COBOL.NET that's just funny)

  107. 10 years later, Smalltalk is cloned by Sun. by Anonymous Coward · · Score: 0

    ^ Pretty common post from 10 years ago.

  108. My preferred development platform by Anonymous Coward · · Score: 0

    Well right now I mostly use python, but what I would like to do is use multiple languages at once. I would use a functional language, probably haskell since that's what I know, whenever possible. I would use C when I need tight performance, and use python as an imperative wrapper around the haskell code.

    Who says you can only use one language at a time?

  109. Three Step Plan for Conquering the Desktop by paul.dunne · · Score: 0
    1. Copy MS Windows
    2. *************
    3. Profit!!
  110. 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.
    1. Re:Trust me. by Scott+Francis[Mecham · · Score: 1

      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.

      I'm obviously walking into a trap, but so far you really haven't stated anything above and beyond what's available in the 2.1 Eclipse JDT; not to mention the new features as of 3.0 M7.

      It even does efficient code folding for you. And it's not a huge set of ctrl+key shortcuts like Emacs!

      Shit! Roll to save vs. buzzwordry!

      --
      --
    2. Re:Trust me. by cerberusss · · Score: 1
      It's not just the environment, it's that the IDE is so well designed to work with the language

      I agree it's very good, however, the features you describe are pretty standard among IDEs. And then the question still remains.

      --
      8 of 13 people found this answer helpful. Did you?
    3. Re:Trust me. by Felonious+Ham · · Score: 1

      Save for the GUI development bits (which I don't use at work at all), I don't see where VS.Net environment has an edge over Eclipse/Java. Without a doubt, Eclipse has improved my productivity by lots (I'm not willing to put a number on it) by providing all of the helps VS.Net provides.

      Yes, I am an Eclipse fanboy.
      http://www.zclipse.org

    4. Re:Trust me. by Anonymous Coward · · Score: 1, Funny

      Once you sit down and use VS.net, you'll know why it's the best development set.

      Funny, VS is the thing I hate most about .NET (maybe VB), it always gets in the way, and all those side bars make the working area way too small (and if set to autohide, it's even more shit to get in the way).

      I press ESC more in VS than I do in /bin/vi, because of the f**king intellisense popups always popping up over something I'm trying to read, and trying to be clever, such that if I type Xml.Something, it will write XmlDataDocument.Something, because I used XmlDataDocument the last time. So, I use backspace until it says "Xml", and put a dot there, and staight back to "XmlDataDocument." - ok, so backspace again, until it says Xml, and then press ESC a few times to close all the f**king intellisense popups, so that I can add a dot without getting my code changed to something completely different.

      Of course, I could just turn intellisense off, and if the libraries made any kind of sense, I definitely would. But with this confusing POS, I would be using 80% of my time searching the help, instead of the current 40%.

    5. Re:Trust me. by SoTuA · · Score: 1
      Hmmm, nopes, doesn't sound like anything I've ever used. Or does it?

      Sorry, all that and more (such as refactoring) is available with Java and eclipse. Give it a try, it rocks.

    6. Re:Trust me. by Anonymous Coward · · Score: 0

      VS.Net is what Eclipse is trying to be, except with more quirks and bugs :)

  111. Re:exceptions stuff by jhoger · · Score: 1

    Return codes are better than exceptions.

    Exceptions are worse than gotos... at least you know when and where the goto is going to go...

    Exceptions break normal program flow.

    They are an unstoppable evil force and anyone that thinks otherwise is simply misinformed.

    Also handling API's which normally generate "exceptions" (seem more like the rule than the exception...) makes every piece of code that uses the API look like a nested mess of spaghetti (hmmm... sort of like any given C# program...)

    For serious CPU confusion hitting a low level exception handler makes sense... null pointer deref, divide by zero, invalid instruction...

    But exceptions are an evil bane of modern languages and I can only hope they are a temporary fad.

  112. .NET by Baki · · Score: 1, Troll

    He wrote he used it a few months. In fact so did I and I came to exactly the same conclusion. He is not flaming but gave some very valid comments on C#.

    Please, you learn both Java and C# and you MUST come to the same conclusion: C# is nothing more than a bastardized Java with some "instant short term gratification" features thrown in, at the cost of a loss in consistency and qualtity on the whole.

  113. Yes, C *is* dead... by Art+Tatum · · Score: 1

    It has been replaced by Objective-C. Mono my ass.

  114. 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
  115. C# by Anonymous Coward · · Score: 0, Flamebait

    Has anyone noticed that C# is really just VB with curly brackets?

  116. Why he should be the one exception by Anonymous Coward · · Score: 1, Interesting

    Because Interfaces should not be patentable.

    Patent implementations all you want.. the interface independent parts and those details not specifically arising from an interface.

    There's code and then there's housekeeping. As is.. and we still have a chance to affect the discussion in Europe, you get a patent for square corners in the design of the house.. instead of for what you made the walls from.

    So rather than whining about software patents, lets whine about interfaces being patentable instead of being available for fair use in order to enable commerce and competition.

    That's why his project is among the world's most important software projects and why what he's doing is going to be a bigger test for freedom than anything to date. Its an RMS **2 thing.

    Support it.

  117. "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 ;-)

  118. Re:VB 4 EVAR!!1! by Anonymous Coward · · Score: 0

    Yeah but VB.NET has nothing to do with VB.

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

  120. Re:Bitch is inaccurate by http · · Score: 1
    Stunned cow is more like it. i'm running mozilla 1.0.0 on Debian and instead of a download I got
    --
    Setup detected that you are running:Solaris
    It is recommended that you download:

    Windows Media Player 6.3
    Total Size:
    Microsoft VBScript runtime error '800a01f4'

    Variable is undefined: 'L_size12_Text'

    /windows/windowsmedia/9Series/d ownload/download.asp, line 574
    --
    I'm not sure I want to download a file so large they need a special font to show me its size in bytes.
    So is this an indication of how much thought they are putting out to get developers to switch to MicroSoft Windows?
    --
    If opportunity came disguised as temptation, one knock would be enough.
    3^2 * 67^1 * 977^1
  121. Miguel is C by Eudial · · Score: 1

    -dead.

    --
    GAAH! MY PRINTER IS ON FIRE!!! PUT IT OUT! PUT IT OUT!
  122. Sorry... by ceeam · · Score: 1

    Uhm, _what_ desktop? ;)

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

  124. 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!
    2. Re:Quoted way out of context! by ChaoticCoyote · · Score: 1

      The parent is correct; as far as I can tell, de Icaza was speaking for himself, not the industry as a whole.

      I'm no fan of .Net or Mono, but I certainly don't begrudge people who want to work in those languages. If Mono becomes onerous in Gnome, I'll switch to KDE. That's what makes free software great -- options.

      There's nothign to see here, folks. Move along...

  125. C "Dying", Scripting Languages, Cross Platform by DavidNWelton · · Score: 1

    I think Miguel is pretty sharp - with a comment like that, he'll get people talking, if nothing else.

    One of the things that strikes me about all this is how, in 2004, some the advantages of Mono are basically what scripting languages have had for ages, and it still isn't there %100.

    For instance, "Using Mono vastly reduces the amount of boilerplate code that must be written, along with the opportunity for bugs to creep in.". Well.. I can write even less code in Tcl/Tk (same goes for Python, I'm sure).

    Another thing scripting languages have going for them are that they are cross platform. Write once, run anywhere, no bullshit! I recently developed a small application in Tcl/Tk for a client on my PPC Linux machine (I don't run windows at all), did a bit of testing on another friend's windows box, just to be sure, then handed it off to the client. It "just works"!

    And yet, with this, we are being told that there are two API's to keep track of. One that might be relatively free of IP problems, and another with Microsoft breathing down its neck. This doesn't bode well for a platform I can write to and then run on different machines.

    Of course, C# and Mono are not just a scripting language. They do some neat stuff like JIT compilation, so the code is fast, and can be used for more computationally intensive areas where a scripting language would traditionally be bound to a compiled language via an extesion.

    Fast, but it still seems to gobble memory (even if a lot of it is shared):

    41336 11872 mono /usr/share/dotnet/gtk-sharp-examples/button.exe
    9 048 1820 mono /usr/share/dotnet/gtk-sharp-examples/button.exe
    4 1388 11456 mono /usr/share/dotnet/gtk-sharp-examples/scribble.exe

    Which is significantly more than the equivalent Tcl/Tk apps would eat (but around the same, or less than Java?). Seems to do an ok job of sharing memory.

    Conclusion: yes, Mono does some things well, and it's certainly got some interesting work that's been put into it, but some of it is ground that others have tread, and done well.

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

    2. Re:C "Dying", Scripting Languages, Cross Platform by n3m6 · · Score: 1

      you wouldn't want to ignore the fact that most applications is and will be written to the MS platform. if most of these applications run on linux all the better right ?

    3. Re:C "Dying", Scripting Languages, Cross Platform by Cederic · · Score: 1


      Make the libraries as ubiquitous and standard as the Java J2SE and J2EE APIs, chuck in a few de facto standard libraries (equivalent status to JUnit and Log4J in Java) and make these available and guaranteed to work on all target platforms, and you'll be as cross platform as I need.

      Java is cross platform (most people develop on Windows and deploy on Unix for server-side software) and as much down to the consistency of the libraries as the underlying VM/bytecode support. .Net will be nice if it can learn from that and be as ubiquitous, and .Net has the advantage of being multi-language. (Sure, Java VMs can run bytecode compiled from Python, etc. It's not exactly industry standard practice.)

      ~Ced

    4. Re:C "Dying", Scripting Languages, Cross Platform by sik0fewl · · Score: 1

      How much more cross platform do you want?

      I want it to run on my toaster

      --
      I remember when legal used to mean lawful, now it means some kind of loophole. - Leo Kessler
    5. Re:C "Dying", Scripting Languages, Cross Platform by Art+Tatum · · Score: 1
      How much more cross platform do you want?

      Cocoa/GNUstep is pretty nice. Mac and UNIX is working pretty well (see GNUMail.app for a good example), the win32 graphics backend is maturing rapidly, and there's a guy who has put together a small-footprint PDA distribution too. Besides that, "write once, compile anywhere" is much more reasonable than "write once, run anywhere".

  126. 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
  127. Managers always judge without sensitivity by Anonymous Coward · · Score: 0


    Nice subject line, but that's as close as I can get right now. Project managers always see the world from their invested perspective. In a way it is their job to do that, but project managers should not judge outside of their project domain. And they always do. The more "important" their managerial role, the harder they judge, and the more they generalize.

    I think this is a little complicated for you slashdot folks. Those who have ears to hear will hear...

    here are four or five young fools!
    nothing they do is honest or true
    they've scarcely scanned ten volumes
    yet their brushes are always ready with a caustic comment
    they take up the "rules for confucian behavior"
    and pronounce it no better than a code for thieves
    a species of pest like the silverfish
    that chews through the binding of other men's books

  128. JCP by SuperKendall · · Score: 1

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

    You'd think people would have learned by now about the Java Community Process, a far more useful standards body (composed of companies and individuals) than a puppet ISO committee.

    Java is a standard in all the ways that matter.

    The developers of .Net did have the luxury of looking over Java and enhancing it - which they did to some extent (more in some areas, less in others). But of course they are also Microsoft, and so went there own way on some things to their detriment - and they simply didn't have time to copy everything, especially not all upcoming parts of the JCP. One thing I can't believe is that they didn't put in Generics from the start - I guess they were waiting to see of the JSR went on that one before committing the .Net implementation!

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  129. QT gets them instead by Burz · · Score: 1

    This is the sort of platform-independence that OSS developers take to. (The Windows license restrictions are probably not only unimportant, but may give QT a sort of psychological edge with the OSS crowd.)

    Java in general attracts people who want $$$ from square one.

  130. What a load of rubbish-Spiking the punch. by Anonymous Coward · · Score: 0

    "I doubt Microsoft will be releasing .Net for Linux. I'm more worried people adopt Mono/.NET and Microsoft then decides Mono is violating it's Patents(which it probably is). "

    They might if all their other methods fail to garner the results they desire. MS above all else is devious.

  131. 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
    1. Re:Once you use Eclipse you'll understand by GnuVince · · Score: 1
      It's nice that everything you like about Eclipse comes from Smalltalk. I like to joke and say that there is a race between Microsoft and Sun to see which will make its language (C# or Java) a Smalltalk dialect first :)

      Of course, it's very nice that languages begin to look more and more like Smalltalk, because ti really kicks ass.

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

    1. Re:Out of Context by Carewolf · · Score: 1

      "To me Migual is dead" (or should be).

      C will never die until someone makes a new language that is just as awfull.

    2. Re:Out of Context by Anonymous Coward · · Score: 0

      C will never die until someone makes a new language that is just as awfull.

      It's not quite as bad as C, but this might be the language you're looking for.

  133. Overnight-Enemy of my enemy is Mono. by Anonymous Coward · · Score: 0

    "The Mono project is my favorite of all OSS projects because it will make developing for Linux and Windows just as easy as for Windows, which will make Linux a better competetor to MS, which will make everyone better off."

    Setting aside evrything else for a second. Why on God's green earth would Microsoft want to play a part in creating a competetor against itself? Especially Linux of all platforms?

    1. Re:Overnight-Enemy of my enemy is Mono. by rnd() · · Score: 1
      Microsoft decided on three things:

      to have C# ECMA standardized, and

      to have source code produce IL which can easily be understood, allowing for relatively easy reverse engineering, and

      to publish much of its own .NET source code on the web (you can compile the .NET runtime on BSD).

      This says to me that they have learned from some of their mistakes and are trying to provide enough transparency so that people will feel comfortable building large software apps using the technology.

      They might try to collect royalties from Mono, but it really wouldn't make sense legally, because Mono is a completely black box reverse engineering exercise, which is precisely what Microsoft did when it won its first contract with IBM to provide MSDOS.

      Microsoft has some huge advantages: Billions of dollars, thousands of top notch programmers, and a huge infrastructure to leverage. I really don't think they're threatened by Mono, because if they were then it would mean they were only an Intellectual Property company, something that most Microsoft Employees would likely find insulting.

      --

      Amazing magic tricks

    2. Re:Overnight-Enemy of my enemy is Mono. by Anonymous Coward · · Score: 0
      Mono is a completely black box reverse engineering exercise, which is precisely what Microsoft did when it won its first contract with IBM to provide MSDOS

      Yeah, but that was before the DMCA.

  134. 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
  135. Cross-platform strategy by Anonymous Coward · · Score: 0

    So, if I wanted to create a 3D graphics application using the .NET framework, what technology choices should I make if I want it to run on both Linux and Windows? (and perhaps Apple...)

    OpenGL seems obvious, but could Direct3D appear in Mono?

    How about GUI toolkit? How is System.Windows.Forms looking in Mono?

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

    2. Re:Or... by scrytch · · Score: 1

      More importantly, why didn't he define an overloaded == for strings? C++ has java beat for sheer expressive power here.

      Lacking multiple inheritance is understandable, but they didn't go far enough -- they should have removed all implementation inheritance, and allow delegation to any class that's inferrable as a subtype.

      Type inference in Java. Oh sorry, I dropped the brown acid again.

      --
      I've finally had it: until slashdot gets article moderation, I am not coming back.
    3. Re:Or... by Trejkaz · · Score: 1

      Whatever, I guess guns kill people too.



      If what you are manipulating are numbers, you should use a syntax closer to the problem domain. It actually increases the readability in all the cases where it is an appropriate feature to use.



      Hell, if you don't want operator overloading for complex numbers, why have it for real numbers? I'm sure you would all be more comfortable if every time you had to add 1 and 2, you needed to write:



      1.add(2);


      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    4. Re:Or... by greenrd · · Score: 1
      Lacking multiple inheritance is understandable, but they didn't go far enough -- they should have removed all implementation inheritance, and allow delegation to any class that's inferrable as a subtype.

      That doesn't make sense. Surely you'd want to delegate to a supertype, not a subtype?

      Type inference in Java. Oh sorry, I dropped the brown acid again.

      Java already has type inference. What do you think type-checking x.y().z() does, guesswork?

    5. Re:Or... by SuperKendall · · Score: 1

      If what you are manipulating are numbers, you should use a syntax closer to the problem domain. It actually increases the readability in all the cases where it is an appropriate feature to use.

      I don't think Java is a good language for working with numbers in that way as it is - operator overloading or no.

      You should use a language much better suited to the problem domain than trying to shoehorn everything into Java. Trying to build a language with a feature only really useful to small subset of the populace and letting the other 98% of programmers write code like carInstance = carInstance + wheel1 + wheel2 + engine is probably a bad idea.

      --
      "There is more worth loving than we have strength to love." - Brian Jay Stanley
    6. Re:Or... by scrytch · · Score: 1

      > That doesn't make sense. Surely you'd want to delegate to a supertype, not a subtype?

      Typo on my part. Yes, I meant supertype.

      > Java already has type inference.

      It most certainly does not (except to some limited degree with parametric types). I urge you to become familiar with terms before you correct others on their use.

      > What do you think type-checking x.y().z() does, guesswork?

      No, guesswork is in fact what type inferencing is, it "guesses" which type you're using based on the signatures of the methods you call on it, and if it can't guess with complete certaintity, it won't compile.

      No doubt there will be criticisms calling this approach slipshod, levied by people who have never used a ML language in their lives. I got one word for people who think java is typesafe: null.

      --
      I've finally had it: until slashdot gets article moderation, I am not coming back.
  137. 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
    2. Re:ActiveState screwed up by ajagci · · Score: 1

      The most damning problem in the ActiveState report is that the CLR cannot directly support a number of Python's language features.

      C doesn't "directly" support a number of Python's language features and neither does the JVM. Yet, both of them have excellent Python implementations based on them.

      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.

      Well, I used to be a very active Java and Jython user myself, but I just got pissed off by Sun's policies and have no incentive to contribute to Java or Java-related technologies anymore. I suspect many people in the OSS community feel the same way. And I suspect that's also the reason why Hugunin, a long-time open source developer and Java developer, himself is now building a project like IronPython on top of the CLR.

      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.

      It should require no more work to do that with IronPython than it did with Jython.

      As an aside, I think in part, however, some of these issues are better addressed by changing the Python language; Python exposes implementation details (e.g., the use of dictionaries in objects) that make efficient implementations unnecessarily hard. I hope Hugunin will actually push for language changes and not strive for full compliance with Python's regression tests. Jython already had some beneficial effects on the Python language in that way.

  138. Munich by klacke · · Score: 1
    Miguel de Icaza mentioned some of these at the introductory session, covering enterprise deployments, embedded systems vendors, and the open source world. Of particular note was an installation in Munich, Germany, supporting 350 servers and 150,000 users.
    Uhhh, that doesn't seem like a wise move. They're running the unmature .NET mono code while deploying linux in Munich. Say it isn't true !!
    1. Re:Munich by Anonymous Coward · · Score: 0

      Hehe.

  139. Re:C is Dying? yes just like unix was 13 yrs ago by Bob+Bitchen · · Score: 1

    NT was going to kill off unix.

    Did Netcraft get an infusion of money from Microsoft recently?

    --
    http://tinyurl.com/3t236
  140. JDE or Eclipse by SuperKendall · · Score: 1

    I still primarily use XEmacs for writing Java (or just about anything else). You can use packages like JDE to do completion for you, just as in other IDEs.

    Personally I despise completion though, as I find it slows you down a lot and really weakens your innate knowledge of what classes and methods are available to you - I actually find the combination of knowing the libraries very well and referring to JavaDoc sometimes far faster than all the little pauses after I hit "." waiting for the system to feed me the method I can use.

    When I compile if I get those 100 errors it's pretty easy to know where the problem is usually - and Emacs has nice support to just jump to the line of any error in the output.

    However, what I have started doing sometimes is writing a lot of code in XEmacs, and then wandering over to Eclipse and refreshing the project - the Eclipse auto-correct is pretty nice, and I do like how it organizes imports. So I batch-correct a lot of errors and then head back into XEmacs for editing (which is still faster than Eclipse for day-to-day writing I find). By using a combination of XEmacs which lets me write code very quickly, and Eclipse which lets me do some powerful refactoring also easily, I have a very good combo.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:JDE or Eclipse by GuyWithLag · · Score: 1

      Ahhh, yes, but the beauty of the Eclipse way is the discoverability: you can learn just-in-time.

      I find that after a time I use autocompletion a lot simply because pressing ctrl-space on unique prefixes is faster than typing the whole thing out by hand (and get the ultra-annoying typo once in a while).

  141. He who laughs last didn't get it by Paul+Crowley · · Score: 1

    There really should be a word or well-understood phrase for someone who repeats a joke because they don't realise the comment they're replying to was making the same joke first time around.

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

  143. C isn't for quick apps by Anonymous Coward · · Score: 0

    Don't get all hot and bothered, people. I don't for a minute think Miguel is trying to say that C is dead for all purposes. He is saying that for application development, it isn't the right (i.e. time-efficient) choice, and he is right. C++ is certainly a step forward, and Java and C# are another big step. I don't like Microsoft but I have to admit that C# and a lot of the related technology are good ideas.

  144. 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 nineoneone · · Score: 0

      Yeah, this thing keeps cropping-up on /.
      I have programmed in Java but it just cannot compete with C/C++ in speed terms (I don't know what these Java fanboys are on when they claim that they can achieve performance which matches or excedes C)
      Python has, as you say, thrived because of its merits and I refuse to use Java because it is so stodgy.

      --
      sig under development
    2. 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
    3. Re:Why Java is Failing on Linux by LarsWestergren · · Score: 1

      When you come from a C / Perl / Python background, you quickly notice a few misfeatures of Java

      Many programmers tend to find one or two languages they like, and all deviations from that way of thinking is seen as flaws. Adressing your specific points:

      (5) It's slow and resource-hungry

      True, the VMs have been memory hogs and slow to load, and that is one thing that Sun really has been a bit slow in adressing. However, with Java 1.5 soon to be released, they have licenced Apple's code which allows VMs to share most of the code, so once a VM has been started, the remaining Java programs you start will not consume much more memory, and will be much faster to load.

      They have been advancing greately lately. Now Java is fast enough to write platform independent graphics drivers:
      http://java.sun.com/products/jfc/tsc/art icles/jcan yon/

      (1) It's huge
      (4) Did I mention it is huge?


      You are either repeating the complaint from point 5, or you are complaining about one of the great things about Java, the huge amount of libraries available for everything from graphics, databases, XML processing, PDAs, servers....
      Hint, you don't have to use these libraries if you don't want to. You can rewrite everything from scratch if you suffer from Not Invented Here syndrome.

      (2) The code-compile-test cycle takes too long
      (6) It is difficult to debug


      That is just pure bullshit. I have never had such great tools such as Eclipse, Ant and JUnit. Not even Visual Studio comes close.

      Why do you think the .Net clones Nant and NUnit came so quickly?

      (3) It's hard to use

      No it isn't.

      Ask the developers. They will tell you that the debug-compile-test cycle has been significantly slowed.

      I'm right here. No it hasn't. I can ask my two collegues sitting in the same room. Nope, they like Java too, and we are getting paid to program in it.

      They will show you the POs for new servers needed to handle the same load that the mod_perl servers were handling.

      I have been able to run quite big Java applications under Tomcat on fairly old hardware running Linux. With speed and memory improvements in Java 1.4 and Java 1.5, as well as improved POSIX threads in Linux kernel 2.6 they will do even better.

      Have you done any significant work in either [Pearl or Python].

      Nope, haven't had time. Getting better at Java has been better for my salary. I do intend to learn C++ and Python better this summer though.

      Linux is a breeding ground for good concepts that work. Java is not one of them, hence, it is floundering. [...] 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.

      Java is the third most popular language on Sourceforge. It has survived full frontal attacks by Microsoft to destroy it (few things have). It is being used in big businesses such as banks. It is very popular in mobile phones in Japan and Europe. NASA used it for quite a lot of the software during the latest Mars mission. Java is surviving quite well on its merits too. But thanks for playing.

      --

      Being bitter is drinking poison and hoping someone else will die

    4. Re:Why Java is Failing on Linux by Anonymous Coward · · Score: 0
      Obviously you are not performing serious programming to say that. By serious, I mean a complete project.


      Perl is nice to glue pieces together, to develop small projects and prototypes. On the long term, it's hard to maintain and there is so many ways to shoot yourself in the foot. And then, debugging is not an easy task at all.


      C, do I have anything to say about this? Shortcomings are well known to developers.


      I don't know PHP.

    5. Re:Why Java is Failing on Linux by otis+wildflower · · Score: 1

      Perl is nice to glue pieces together, to develop small projects and prototypes. On the long term, it's hard to maintain and there is so many ways to shoot yourself in the foot. And then, debugging is not an easy task at all.

      I wholeheartedly disagree with everything here but the first sentence. Perl's problems stem from its virtues, namely flexibility, TMTOWTDI, and colloquialism. You can write bad code in any language, but Perl makes it so easy to do in so many ways. Good Perl coders self-document, write code that's readable and self-evident, pick an idiom and stick with it. Also, CPAN. Nuff said.

      Python? I really don't use it, and I'm sorry but the concept of tabs and crlfs being functional throws me, given how much cutting and pasting I do across different TERMs.

      I don't know PHP.

      I don't like the way it handles lists and hashes ('dictionaries') compared to Perl, the way it uses only a $ (which is less descriptive than Perl's line-noise) for variable names, and I don't like that while it aims to be OO it has FUGGGLY support for even the simplest functional overloading. OTOH it makes writing LAMP apps super fast and simple, and I've used it to decent effect in the past. Also, some of the more interesting open projects (like geeklog, phpgroupware, etc) are in PHP so it's prudent to learn it. I also hear PHP5 fixes some of the more obnoxious crap including functional overloading, so all I can say is I'm interested in learning Mason (PHP in real Perl)..

  145. does c=c++? by linuxislandsucks · · Score: 0, Offtopic

    deos c=c==?

    coem on folks soem intellignece please

    --
    Don't Tread on OpenSource
  146. is dead, indeed. See details. by skandalfo · · Score: 1
    Our latest researh has shown that is atually dead.

    No need for Netraft to onfirm this.

  147. How to program battlerobots. by JollyFinn · · Score: 0, Redundant

    In soviet russia C says Miguel is dead.

    --
    Emacs is good operating system, but it has one flaw: Its text editor could be better.
  148. Long live C! by jgardn · · Score: 1

    C is a standard, like English or SMTP. It's not going away, not anytime soon. Anyone that thinks so is a fool. Both English and SMTP satisfy a pressing need: In the case of English, the need to communicate between two people. In the case of SMTP, the need to send email from one place to another. In the case of C, to write assembler code efficiently.

    If you could look at a graph with the vertical or y axis being "amount of code generated per unit time" and the x axis being "efficiency of code", and plotted all languages that compile into assembler code, you would find C would stand out in the upper right hand corner as supreme. It allows the programmer to generate vast amounts of highly optimized and efficient code with minimal time.

    C++ may fail. It has forgotten its roots and tried to abstract too much, leaving the details between the assembler code and the C++ code up to the compiler. Currently, *NO* C++ compiler has gotten everything right.

    C, however, is a perfect fit, and the compilers are simple enough that most of the attention is spent on optimizing the resulting assembler code.

    Is C harder than perl, python, C#, and Java? Of course it is. But do perl, python, C#, or Java compile to assembler instructions? No. Comparing C to them is like comparing a forklift with a VW Bug. Sure, it may be easier to drive a Bug, but you can't load trucks with it!

    --
    The radical sect of Islam would either see you dead or "reverted" to Islam.
  149. C is dead by kbewley · · Score: 0, Redundant

    In Soviet Russia C makes YOU obselete

    Had to be said.. ;-)

    --
    -- These views are my own and do not represent those of my employer in any way.
  150. MODERATION ABUSE (mod parent back up) by MechaStreisand · · Score: 0, Troll

    Overrated when it was scored at 1 to start with?

    Seriously, we need to do away with the lack of accountability of the "overrated" mod. The parent, an insightful and on-topic post, was modded overrated by some C-bigot moderator on crack. Too bad you can't get those on metamod...

    --
    Disclaimer: IANAL. This post is, however, legal advice, and creates an attorney-client relationship.
  151. 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.

  152. Re:Mod Parent DOWN -1 RACIST by Anonymous Coward · · Score: 0

    Mexico is not a race, it's a country. If word play about other people's countries would be racist pretty much all Europeans would be racist. It's like being from New Englang and making joked about Texans.

  153. Interesting point of view! by Zo0ok · · Score: 1

    Interesting point of view! That C is a tool for generating assembly code rather than a a tool only for building applications.

    Keeping that in mind when thinking of Cs shortcomings (compared to perl, python, C# or Java) forgives a lot.

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

    2. Re:and of course by Anonymous Coward · · Score: 0

      And retards will post stupid pompous statements on slashdot.

    3. Re:and of course by Javagator · · Score: 1

      Well, there was nothing else to do.

    4. Re:and of course by pyrrho · · Score: 1

      javagator, the comment you reply to was self referential... not about you!

      or at least, it seems that way to me.

      --

      -pyrrho

    5. Re:and of course by mlrtime · · Score: 1


      I agree. Perl 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.

      Insightful?

    6. Re:and of course by Rick+BigNail · · Score: 1

      Your comment are insightful. You just don't recognize it.

      Perl and C++ are similiar in complexity.

      Unless I misunderstand you, that you like to program in, say Python + C.

  155. Re:.NET [this time, correctly quoted] by ajagci · · Score: 1

    With the method overloading, you have the class which the method belongs to, so it is fairly easy to check what it does.

    The same is true for operator overloading. "x + y" means nothing other than "x.__plus__(y)".

    I gave them very explanatory names, but even with something more cryptic, non static like
    x.print(d);
    I know that the behaviour of print MUST be defined in the class x and nowhere else.


    "x" isn't a class, it's a variable that holds an instance of a class. You need to know both the class of the instance of x and the type of the argument d to determine which piece of code will get invoked. The same would be true if you used operator syntax like, say, "x << d".

    On the other hand, with operator overloading, whenever you join a new project you must keep in mind that it is possible that an operator has been overloaded to do something surprising.

    That is always the case with overloading or method dispatch; "x.print()" may reboot your computer instead of the expected operation.

    Other classes can have print methods, such as
    System.out.print("Hello");
    but I always see the classname first, so there is no risk of confusion between the methods.


    You are only seeing a class name first because "out" happens to be a static variable in class System. In fact, "System.out.print" doesn't even invoke a method on an instance of class System, it invokes a method defined in the class of the instance that the variable System.out happens to hold. You can't even tell at compile time what class that instance belongs to (but it's a sure bet that it isn't an instance of class "System").

  156. sure, learn them by pyrrho · · Score: 1

    but don't love them. Do not love a proprietary language. That's my feeling anyway.

    And if you trust Microsoft, you'll never see the knife before it's in.

    --

    -pyrrho

  157. Re:Youll never get at all the "undocumented featur by Anonymous Coward · · Score: 0

    Mono will have the usefulness and stigma
    of WINE.


    Are we talking about the same WINE used in Disney to run Photoshop? Yeah, pretty useless, that crap.

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

  159. What about KDE? by Anonymous Coward · · Score: 1, Informative

    nobody thinks about KDE?
    In europe KDE has way bigger marketshare compared to Gnome.
    I use it too, and to take over Linux Desktop, Gnome has to pass KDE first.
    'Take over linux desktop' - This all sounds a bit arrogant.

    1. Re:What about KDE? by Anonymous Coward · · Score: 0

      I estimate KDE has more desktop share in the US too. I know 0 people who run GNOME. They all run KDE and get real work done on their Microsoft free systems.

    2. Re:What about KDE? by nineoneone · · Score: 0

      I am happy using GNOME (moved from KDE)

      --
      sig under development
    3. Re:What about KDE? by otis+wildflower · · Score: 1

      Also, personally at least, I find KDE to be the richest environment, what with DCOP and KParts basically doing what Miguel wants without the stain of M$..

      Also, in theory, learning QT and working with KDevelop would put you in good stead when it comes to writing embedded apps for Linux devices (such as Sharp PDAs and Mot fones), and I just feel kinda queasy about installing all of GNOME's dependencies while KDE's systems feel a bit more 'designed' and integrated.

      I think the eventual Kolab client will be huge, and hopefully it will be runnable in Win32 so we can get rid of Outlook's (and Exchange's, incidentally) hold on corporate email.. KDE is far more Mac OS X like than GNOME IMHO in its reusability and integration, and Baghira theme is as close to Aqua as I've found lately ;)

      (Baghira plus the Apple fonts I fondu'd from my laptop equals KDE w/Lucida Grande.. Much nicer than MS' plain-jane Tahoma..)

  160. BOXING by pyrrho · · Score: 1

    I believe that is actually converting primatives into objects... boxing them in an object... for wierd languages where everything is an object, except the things that aren't. Also known as languages where operator overloading is stupid and useless... except for string. Also known as a language where the containers take only objects.

    I wouldn't be surpised if this, like polymorphism, has an array of official definitions.

    --

    -pyrrho

  161. Mono(poly) by Benjim · · Score: 1

    When reading the headline I instantly felt myself going into a defensive mode. I have to say I'd be much happier to have .NET around if it wasn't a bespoke implementation. If we do want Linux to be ubiquitous; then we must be able to provide companies what they want. This is the choice thing that M$ don't provide! If .NET *is* used, I'd much rather it ran on a stable and mature *real* OS, rather than the - IMHO - inferior Windows platform. We should change the world by embracing it; not opposing and trying to change it capriciously, and provide the *right* solution to all those who use the systems we produce!

  162. Re:.NET [this time, correctly quoted] by LarsWestergren · · Score: 1

    >>x.print(d);
    >>I know that the behaviour of print MUST be defined in the class x and nowhere else.
    >"x" isn't a class, it's a variable that holds an instance of a class.

    Yes, sloppy typing, I meant "in the class of x".

    That is always the case with overloading or method dispatch; "x.print()" may reboot your computer instead of the expected operation.

    Yes, I know. I believed it was easier to check these things in Java though, and that it was better at preventing abuse, but it seems the difference was not as great as I thought.

    In fact, "System.out.print" doesn't even invoke a method on an instance of class System, it invokes a method defined in the class of the instance that the variable System.out happens to hold.

    First I thought, "What the hell is he saying. Of course it goes to an instance of the class system. What does he think all those 'final' and 'static' keywords stand for?" Then I decided to test it. I was amazed that this worked, and without even a warning!
    String Integer = new String("Hello");
    System.out.print(Integer);

    Hmm, you learn something new every day...

    --

    Being bitter is drinking poison and hoping someone else will die

  163. You're being a sucka Icaza by theolein · · Score: 1

    It is conceivable that Microsoft would enforce licensing terms on the implementation of the APIs that it hasn't submitted to ECMA. In the worst case, says de Icaza, distributors of those APIs would need to pay fees to Microsoft.

    If you believe that Microsoft will sit around and blithely let you "copy their ip" then you have another think coming. Take a look at how how much MS spends on anti-Linux FUD alone and I think you're going to be one dumb monkey sometime in the future at Microsoft's choosing, and then the rest of us will laugh at you for having been such an arrogant toss over how "C is dead". We'll be able to say, "Yeah, but MIguel's ass belongs to Microsoft"

    Microsoft will do anything to sink Linux if it can and you making statements over having to pay licencing money to microsoft as if it were no problem whatsoever if hugely arrogant and makes me wonder if you're actually that dumb.

  164. But those are no monopolies by Udo+Schmitz · · Score: 1
    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).

    They have to. All MS wants is to sell more Windows licences, or better: Sell at least as much as in the past few years.

    You can be pretty sure that MS will change any .net specifications if it feels like it. Or better, they could find some patents in their basement. What interest should they exactly have in .net compatibility on Linux? Linux playing catch up with Windows is stoopid.

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

  166. Another pile of Bull by HeTTaR · · Score: 1

    This is such a pile of bull. I can't see anyone with any intelligence thinking that it is a good idea to tie the linux desktop to a MS patented technology. Besides which KDE which is miles ahead of gnome in useability/quality/kick assness appears to have no intention of ever being tie to mono.

    --
    Hettar.
  167. Everybody is dead! by Anonymous Coward · · Score: 0

    -BSD.

  168. don't cry for/to us miguel by Anonymous Coward · · Score: 0

    you've got your billybuks, now keep your distance.

  169. What happens when you no longer have C by nimblebrain · · Score: 1

    <obligatory with-apologies="yes">

    Bounder: Anyway, you're interested in one of our adventure holidays?

    Tourist: Yes I saw your advert in the bolour supplement

    Bounder: The what?

    Tourist: The bolour supplement

    Bounder: The colour supplement?

    Tourist: Yes. I'm sorry, I can't say the letter 'B'

    Bounder: C?

    Tourist: Yes that's right. It's all due to a trauma I suffered when I was a sboolboy. I was attacked by a bat

    Bounder: A cat?

    Tourist: No, a bat

    Bounder: Can you say the letter 'K'?

    Tourist: Oh yes, Khaki, king, kettle, Kuwait, Keble Bollege Oxford

    Bounder: Why don't you say the letter 'K' instead of the letter 'C'?

    Tourist: What, you mean...spell bolour with a K?

    Bounder: Yes

    Tourist: Kolour. Oh that's very good, I never thought of that! What a silly bunt

    </obligatory>

    --
    Binary geeks can count to 1,023 on their fingers :)
  170. Re:Mod Parent DOWN -1 RACIST by Anonymous Coward · · Score: 0

    You mean Texicans.

  171. Re:.NET [this time, correctly quoted] by ajagci · · Score: 0, Troll

    First I thought, "What the hell is he saying. Of course it goes to an instance of the class system. What does he think all those 'final' and 'static' keywords stand for?" Then I decided to test it. I was amazed that this worked, and without even a warning!
    String Integer = new String("Hello");
    System.out.print(Integer);


    Sorry, but you still don't understand. "out" is just a final static variable that happens to be in the class "System". "System.out" actually holds values of type "java.io.PrintStream". You can even change the code that gets invoked when you call "System.out.print" by using "System.setOut". I doubt java.lang.System ever gets instantiated (its existence just attests to another design stupidity in Java).

  172. It's wrong to trust Microsoft. by Queuetue · · Score: 1

    Flat out. It's a wrong move to trust them. Evil or not, predator or not, MS is known to use it's influence over technology and technology companies to destroy competition.

    In this case, you're making a decision where it's openly known by all parties that MS can stop all of your work at any time of their choosing - ANY TIME!

    The fact that they've made a non-binding promise to leave you alone has nothing to do with how they will act in the future. Microsoft lies. Microsoft cheats. And Microsoft will - guaranteed - use their legal rights to destroy gnome if it ever proves a threat.

    Keep in mind that the people who are making you promises today may not even be there when MS shuts gnome down. Using this technology is death for the Gnome project, at some unspecified point in the future - either through technical failure, nonadoption, or simple legal cancellation by MS.

    I'm a 100% gnome user. But now I have to start cross-training myself, because the day is not far off that I will switch, just to avoid being locked in by this terrible, terrible decision...

  173. This is just not true by kahei · · Score: 1

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


    Well, I am in that industry, and .NET seems to scale well to that sort of level. The problem is that it's only available on Windows and therefore not available on really big machines and clusters. That can certainly be a decisive factor. But on machines of a given size, it compares well to Java and adequately to C++.

    Now, when/if Mono matures, maybe there _will_ be a .NET for really big machines. That'd be great. Until then, .NET tends to be limited to what you can do on Windows.

    --
    Whence? Hence. Whither? Thither.
    1. Re:This is just not true by Anonymous Coward · · Score: 0
      Well, I am in that industry, and .NET seems to scale well to that sort of level. The problem is that it's only available on Windows and therefore not available on really big machines and clusters. That can certainly be a decisive factor. But on machines of a given size, it compares well to Java and adequately to C++.

      I agree .NET can scale to that level if the application uses stored procedures to update a few tables per transaction, parititioning the table is acceptable, you can use COM+ with MSMQ to handle transactions in a message oriented fashion, you don't need to run Analytics on the entire table in real-time and the number of concurrent queries is within 2x the number of CPU's.

      Once you go above the number of worker threads, which is generally set to 2 workers per cpu, the performance starts to drop significantly. If the application doesn't have to handle a burst of 1K transactions and complete in one second, sure .NET can scale. It might take several minutes. If you happen to use isolation level 1, I would say .NET + Sql Server can't handle that kind of load on a single 8 CPU system. You'd have to get one with atleast 16 or 24 CPU's from IBM/HP/NEC. You can horizontally partition your database, but only if you don't need to run analytics on the entire table. I don't know of any financial application that doesn't have analytics as a requirement, or isn't planning on adding analytics in the near future. .NET and windows do scale, but it doesn't scale the same as Unix for complex transactions or distributed transactions which need to follow business rules for the commit/rollback threshold.

      Sure you can go to HP, IBM and NEC to purchase a 64 Way server that costs 8million. But at that point, why would you choose windows over Unix. At those prices, you want something that has proven reliability and your staff has expertise in. How many experts are there with years of experience scaling windows and .NET to handle 50K transactions per second, with an average concurrency of 500 users? I don't know of any, but I do know Oracle DBA's with that level of expertise. I don't have that experience, but I listen to their advice.

  174. Mono... by brian728s · · Score: 0

    Linux should a little more careful about who he kisses.

  175. Re:.NET [this time, correctly quoted] by LarsWestergren · · Score: 1

    I believe I DO understand. :-)

    I was with all the way until this:
    I doubt java.lang.System ever gets instantiated (its existence just attests to another design stupidity in Java).

    The Javadoc claims the class never gets instantiated. But why is the existance of that class so poor design? I thought it was fairly conventient.

    --

    Being bitter is drinking poison and hoping someone else will die

  176. "C is dead" by Ghengis · · Score: 1

    That statement shows VERY little insight into the computer/electronics industry. With embedded systems becoming such a big deal, C is FAR from dead. I'd ask Miguel to stop by my office and see just how much C (and ASSEMBLY) is really being used. Yes, there's alot of C++, too, but C is currently the tool of choice at the office.

    --

    "The best laid plans of mice and men gang oft agley..." - ROBERT BURNS

  177. Ah for the good ole days by Umrick · · Score: 1

    Used to be simple. KDE was based on evil closed source libraries, and Gnome wasn't. KDE now is GPL'd, but to Gnome folks that's just as bad as companies can't sell commercial products without paying.

    Just uncomfortable with the direction Gnome is going. I for one don't want .Net in any flavor on my boxes. Some part of me suspects Miguel drank from the same poisonous well as MS.

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

  179. C dead? Not until you can program COM ports! by Anonymous Coward · · Score: 0

    Yes that is right... microsoft .NET has no built in API for accessing COM ports. Dead my ass. I can't use .NET because there arent even third party multi-platform .NET COM APIs.

  180. you mean... by thebes · · Score: 1

    longlive.c right?

    1. Re:you mean... by sik0fewl · · Score: 1
      I think he means:
      long live_c;
      --
      I remember when legal used to mean lawful, now it means some kind of loophole. - Leo Kessler
  181. 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.

  182. Not just Eiffel by DelawareBoy · · Score: 1

    >>> "Well, all I'm doing is calling C# libraries with this weird syntax so I might as well make life easier by just using C#". the same thing was done with "Hot Dog Scheme"... I believe the guy working on that also stopped because things started looking too much like C#. Probably with a bunch more Parens than brackets, though.. :) -Delaware Boy in 2004

  183. Well by Guardian+of+Terra · · Score: 1, Informative

    I beleive DotGNU project is better. While Mono is faster on i386, here and now, Portable.Net is really portable to anywhere, does not rely on non-standard things, have working System.Windows.Forms and so on and so on. And is GNU project. Surprised why ou never headr of it? Because mono is actively PRed by articles like this.

  184. Benefits of repetition by amightywind · · Score: 0

    But that said, I have never developed software more rapidly than in C#. .NET has trippled my productivity (on the Windows platform) and my approval rating at work has skyrocketed as I have rolled out several solutions on .NET that are stable, solid, and effective.

    This often happens when you rewrite a system 4 times. M$C, C++, COM, C#.Net, did I forget any?

    --
    an ill wind that blows no good
  185. There was a memo by Anonymous Coward · · Score: 0

    From the Department of Redundancy Department on this subject.

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

    1. Re:No, from an EE student by dubious9 · · Score: 1

      Did you profile your code to see exactly what part of the code was slow? Most high level languages (even java,perl,python, and AFAIK ruby) allow you to write intensive code in C outside of it's virtual machine.

      The most intensive part of a code tends to be quite small in relation to the whole. Most code in programs are GUI stuff, event handlers, error checking/handling, I/O processing, non-computational business logic.

      If you are doing serious number crunching, or creating alot of advanced data types, most likely the critical code can be exacted into a small amount of C while still recieving the high-level benefits of newer languages for most of the program.

      --
      Why, o why must the sky fall when I've learned to fly?
    2. Re:No, from an EE student by TheRaven64 · · Score: 1

      Have you considered trying a hybrid approach, writing your code in a high-level language, and then replacing the computationally expensive parts with calls to C functions? It's generally true that 90% of the computer's time is spent in 10% of the code, so if you just wrote this 10% in C, and the rest in a high-level language you would probably get the best of both worlds (i.e. fast and maintainable)

      --
      I am TheRaven on Soylent News
    3. Re:No, from an EE student by TheLink · · Score: 1

      Is ocaml really 2-4x slower than C? I heard it's pretty fast in most things.

      --
    4. Re:No, from an EE student by phurley · · Score: 1

      I have found that using those slow languages and a nice swig of low level goodness after performance tuning to be a very powerful combination. I try to get the problem correct first and optimize as needed.

      --
      Home Automation & Linux -- now I know I'm a geek
    5. Re:No, from an EE student by Anonymous Coward · · Score: 0

      You might try Java...with native methods you can write your signal processing pieces in C so they get that 2x-4x speed bump you speak of and write the rest in Java and get all the Java goodies for the rest of what you're writing.

      It's all a matter of profiling your code. If you find that it spends a large percentage of its time on a small percentage of the code, use low-level languages to implement only the important code. But using low-level languages for an entire project is rarely necessary.

    6. Re:No, from an EE student by Larthallor · · Score: 1

      So, I see two main possibilities:

      1) Your apps were mostly computation-intensive or used in cases where raw speed was essential to be usable/competitive.

      2) Your apps were mostly not computation-intensive, but included small sections that had the need for speed.

      In case one, you now realize correctly that you may have chosen the wrong tool; C was probably a better choice than LISP.

      Case two, however, has me confused. Most of the higher-level, modern production languages (Python, Perl, Java, C#, etc.) have support for native methods written in C. Why wouldn't you simply write the bits that need the speed (e.g. signal processing, as you mention) in C and call it from your high-level language? Then, you get the best of both worlds. Of course, you make cross-platform deployment more difficult, but no more difficult than if you wrote the whole thing in C.

      BTW, none of this is to say that C is "unsuitable" for writing GUIs or anything else. I'm just saying that you don't have to give up the convenience of a high-level language because a small amount of code needs to be very fast.

  187. My favourite quote by DukeyToo · · Score: 1

    My favorite quote from the article:

    Mono compilation happens so fast it could almost be done in real time.

    --
    Most writers regard truth as their most valuable possession, and therefore are most economical in its use - Mark Twain
  188. I've read the bulk of this thread, but the obvious by smittyoneeach · · Score: 1

    has not been stated.
    Mono is Microsoft's long term survival hedge.
    They re-do all of Office in C#.
    They get the OS community to prepare the platform for them.
    They recompile everything with Mono, and start selling it in all markets which have dropped them for Linux.
    In other words, if Windows dies, Microsoft can live on.
    Not that Netcraft is scheduled to predict the death of Windows anytime soon, but MS didn't achieve 800 lb. gorilla status by not thinking deep thoughts.
    The only people who will be offended by this are those who object to MS on theological grounds.

    --
    Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
  189. Not just C geeks... by r6144 · · Score: 1
    Last week I wrote a 2-D DWT program in C. It has a buffer which is a "double **buf[ORDER][ORDER][2]" (should be a pretty natural solution I think), so I end up with pretty constructs like "buf[0][0][0][0][0] = 0.0;"

    In another research program I wrote, pointers-to-arrays are used so much that anyone who can understand that (no, the program isn't hard-to-read) can teach that part of C, which is IMHO the most difficult part in my C class.

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

    Nope.

    "Miguel de Icaza is dead" -- C

    --
    MOD THE CHILD UP!
  191. Re:exceptions stuff by joto · · Score: 1

    This depends on the application. If you don't think exceptions have merit, you haven't learned to use them properly. Using exceptions where return codes make for simpler code is wrong. Using return codes where exceptions make for simpler code is just as wrong. If you blaim exceptions for spaghetti code, you are putting the blame at the wrong place. The problem isn't exceptions, it's people that haven't understood how and when to use them.

  192. That's why Java doesn't hide functions by Anonymous Coward · · Score: 0

    It's a breath of fresh air to move from C++ to Java, and to realize that by simplifying C++'s hairball of inheritance rules, Java made it easy for a programmer to predict what method will get called. Java has it's own insider tricks, but most of them move the learning curve up into the class libraries and frameworks and out of the semantics of the language. Progress!

  193. C is dying? by embill · · Score: 1

    In other news, the hourly rate for experienced C programmers just doubled. FWIW, out on the bleeding edge of technology, everything older then a year is dead or dying. But back in the real world, in the other side of the chasm, we're still coding in Cobol, C and Fortran, maintaining the odd snippets of Assembly code and wondering what this odd, two button thing is attached to our terminals.

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

    1. Re:Python and data types by GnuVince · · Score: 1
      Good thing we have array types :)
      >>> import array
      >>> print array.__doc__
      This module defines an object type which can efficiently represent
      an array of basic values: characters, integers, floating point
      numbers. Arrays are sequence types and behave very much like lists,
      except that the type of objects stored in them is constrained. The
      type is specified at object creation time by using a type code, which
      is a single character. The following type codes are defined:

      Type code C Type Minimum size in bytes
      'c' character 1
      'b' signed integer 1
      'B' unsigned integer 1
      'u' Unicode character 2
      'h' signed integer 2
      'H' unsigned integer 2
      'i' signed integer 2
      'I' unsigned integer 2
      'l' signed integer 4
      'L' unsigned integer 4
      'f' floating point 4
      'd' floating point 8

      The constructor is:

      array(typecode [, initializer]) -- create a new array

      >>>
      and usage:
      >>> a = array.array('B')
      >>> a.append(10)
      >>> a.append('HellO!')
      Traceback (most recent call last):
      File "<stdin>", line 1, in ?
      TypeError: an integer is required
      >>>
      How nice, eh?
    2. Re:Python and data types by Jerf · · Score: 1

      The answer to your questions is to use extensions. If you want to handle graphics, don't bit-bang in Python, grap the Python interface to SDL or something. If you want to bit-bang, do it in C or Pyrex or something.

      I mean no disrespect, but when comparing languages it is important to see each language in terms of itself. There is an old saying "You can write Pascal in any language" (where Pascal can be any language); this means that while any language can generally support any paradigm, it's better to work with the language then against it.

      Python deliberately ties in to C very well, and this is one of its great strengths. If you force it to bit-bang like Java, you'll never get the speed you're looking for.

      I've done some GUI programming in Python with dynamically generated bit-maps, and I've always used the TkCanvas stuff (partially because my app is in Python/Tk, but even when I tried out wxWindows I ended up sticking with the TkCanvas-based code in PIL (Python Imaging Library)); unless you're writing Gimp-like code that generally does everything you need.

    3. Re:Python and data types by Ian+Bicking · · Score: 1
      You're already proposing several solutions, as others are as well -- SDL (probably most accessible through PyGame), PIL, Numeric, some extensions available through SciPy, and eventually moving into things like PyTables or even lower-level functionality like array or ctypes, there's also the possibility of coding in C or another compiled language, or using Pyrex. for some easy-Python-integration goodness, or Psyco which can do some pretty magic stuff in select situations.

      No, it's not like MATLAB -- Python is a general-purpose language. If you want MATLAB, then you're looking for a more specialized environment, like SciPy (maybe using iPython to provide a nice interactive environment). As a MATLAB replacement, Python is probably a work in progress.

      If you want homogeneous collections with fast transformations, you must do it with somewhat opaque containers like Numeric, where anything that runs inside the inner loops of transformations is written in a very fast language. (Oh, I just remembered Weave) This is true in Lisp as well, though Lisp has also had compiled forms which are pretty quick.

      Anyway, lots of options. Stop complaining and enjoy what you got!

      So, is Java really better? I honestly don't know the scientific or image processing domain, so I don't know where Java's at there.

  195. yeah right by Grizzlysmit · · Score: 0, Troll

    C is dead, yeah right!! Miguel de Icaza is a complete cretin, that about covers it.

    --
    in my life God comes first.... but Linux is pretty high after that :-D
    Francis Smit
  196. GNU Mono by Anonymous Coward · · Score: 0

    Microsoft finally succeeded!

    the .NET is a complete joke! Java was a disaster and they want to make a Java++??

    but they succeeded: they fooled the GNU community as well.
    C# with Mono (with the idea stolen from Microsoft) instead of the good old languages like C, LISP, PERL or Python?
    why?

    what has C# to offer?

  197. C#/Mono can't succeed if it is slow/memory hog by kbradl1 · · Score: 1

    Miguel has done a lot of good work for Gnome, but I don't understand his preoccupation with tying Gnome so closly to Mono. Doesn't C#/Mono run much slower than C/C++ because of the runtime baggage, garbage-collection etc? Why would I want my DE (gnome) to run any slower than it already does? Also the extra memory needed will further reduce the number of machines such a bloated DE would run well on. If Gnome 3.0 has a significant Mono footprint, then it is back to KDE for me.

  198. Unfortunately, C/C++ is not dead yet ... by Etyenne · · Score: 1

    The installed base of C/C++ application is so huge, it will never die. KDE is written almost entirely in C++. The whole GNU suite. XFree86. Apache, Samba, every major MTA that I know of. Rewriting all these software in a type/memory safe language is an impossible task for the OSS community to achieve in the near- or mid-term. Unfortunately, we will have to continue to live with the deficiency of C for a long time to come : buffer/stack overflow, memory leak, segmentation fault and cie.

    Right now, I would bet that 90% (yes, this statistic is coming out of my ass) of bugs and security advisory for software I use are directly related to the deficiency of C and C++. I, for one, will cheer the day that C/C++ will stop being used for daemon and user application (operating system is another story) as this will cut down seriously the number of update I will have to apply. Good riddance !

    --
    :wq
    1. Re:Unfortunately, C/C++ is not dead yet ... by nberardi · · Score: 1

      Yeah like you said, when C/C++ stops getting used for applications and daemon's, it will be a great day. And I think that is what he ment by C++ is dead. There is always going to be a place for C++ at the low-level of programming that needs quick and fast processing, like Kernel's, Missle Guidence Systems, etc.

      But for the front end on most new projects that are getting started they aren't C++, they are Java, Python, .Net, PHP, and I am sure I am missing a couple but you get the point. C++ may still bwe getting used for apache, KDE, Samba, XFree86, but look at the history of those programs, most of them are 7+ years old. Java was just in it's infancy 7+ years ago. In addition there wasn't much in the way of development options on Linux 7+ years ago either.

      C++ is dead for the front/user-end. Because as applications start moving to the web and the desktop and internet get an even blurry line between which is what. What I am trying to say is that in the next 5 years your desktop is going to be a more of a client for the internet than a seperate entity from the internet. As most of us know C++ isn't the best language for programming web applications or even applications that need a good, solid, feature rich, interface.

  199. Re:Java is a better choice by Anonymous Coward · · Score: 0

    Choice, Choise, choiCe, what's the difference? Java's still a better option.

  200. LOL. by Anonymous Coward · · Score: 0

    "I think this problem would be solved by writing things in Scala. Scala compiles to .Net or Java runtime and is a far more advanced language than C# or Java."

    "far more advanced" and still fits on limited virtual machines. Even David Copperfield can't do better than that :)

    1. Re:LOL. by Anonymous Coward · · Score: 0

      C++ is far more advanced than assembler, but it still fits on limited CPUs.

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

  202. LOL by Anonymous Coward · · Score: 0

    "The Mono project is my favorite of all OSS projects because it will make developing for Linux and Windows just as easy as for Windows, which will make Linux a better competetor to MS, which will make everyone better off."
    This isn't like your favorite pet, is it ?
    Get real !
    Do you code using Gtk# BTW ?

    1. Re:LOL by rnd() · · Score: 1

      I haven't tried GTK# yet, but I plan to prior to Mono 1.0.

      --

      Amazing magic tricks

  203. Get real by Anonymous Coward · · Score: 0

    "Add to that that there is a high-quality open source implementation (Mono) and a complete stack of non-proprietary open-source libraries (Gtk#, etc.), and people have really strong reasons for preferring Mono to Java."
    If Mono is high quality I wonder what kind of quality the Dotnet Framework by Microsoft would be.

  204. Re:Danger! - Check out the Mono FAQ by The+Wookie · · Score: 1

    The Mono FAQ addresses this question and refers to an e-mail from Jim Miller of Microsoft. The e-mail says:

    Beppe,

    As one of the inventors on that patent as well as the person heading up
    the standardization efforts for the CLI, I'd like to explain why I've
    never felt the two are in conflict.

    The ECMA process requires that all patents held by member companies that
    are essential for implementing its standards are available under
    "reasonable and non-discriminatory (RAND) terms" for the purpose of
    implementing those Standards. This is the normal condition used in all
    International Standards organizations, including both ECMA and ISO.

    But Microsoft (and our co-sponsors, Intel and Hewlett-Packard) went
    further and have agreed that our patents essential to implementing C#
    and CLI will be available on a "royalty-free and otherwise RAND" basis
    for this purpose.

    Furthermore, our release of the Rotor source code base with a specific
    license on its use gives wide use to our patents for a particular
    (non-commercial) purpose, and as we explicitly state we are open to
    additional licenses for other purposes.

    --Jim

  205. Yes, from an EE student by IncohereD · · Score: 1

    Your signal processing can't be that complicated if you're more worried about it's speed than getting it clear and right, which is 8000x times easier in a high-level language (or even MATLAB), because you can write the algorithm like it looks on paper.

  206. let me see ....(oh one of those claims pltttt, ha) by Grizzlysmit · · Score: 1

    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.

    Now let me see, a claim that tool set X has tripled said persons productivity, the new wonder product X shines my glasses, makes me coffee in the morning, ... give me a break, stop reading the brochure, what crap, there never that good, sooner or later you need to to do something other than join n components together in some trivial way, and bang you find out just how much of that was an illusion, and then the earlier code has been out long enough now for the falsehood of it's stability to become plain, it's stable alright, but only under a narrow subset of conditions, conditions which are almost guaranteed to occur in a typical development/debug session, but in real usage ???, now you loose all your productivity gains etc in wrestling with bad/inadequate debugging tools, and library code that is in reality written by the the incompetent, for the incompetent, of the incompetent. I've worked with a lot of rad tools over many years, and with all of them there was at least a touch of this, at some point at some time, but only with .NET, was all of this true in spades .NET is the biggest piece of junk I've ever seen. The more code is written for it, the more it is used, the more it's inherent flakiness will be revealed, the more Coders with end up in the psych wards.
    --
    in my life God comes first.... but Linux is pretty high after that :-D
    Francis Smit
  207. what to port .NET to J2EE? by f00zbll · · Score: 1

    No one will read it, but MainSoft has a product now that will assist .NET conversion to J2EE. Their Visual MainWin will compile VB.NET and C# for J2EE. I'm sure MS will be pissed at that one. I just hope they don't get killed by MS.

    1. Re:what to port .NET to J2EE? by PrimeNumber · · Score: 1

      I just hope they don't get killed by MS.

      I hope they dont get bought by Microsoft.

  208. Back to Mono? by trailerparkcassanova · · Score: 1

    First there was mono, then stereo, then quadrophonic, back to stereo, then Dolby Digital. Now we're back to Mono? Ay-yi-yi-yi-yi, Lucy!!!

  209. Then Is .NET's predecessor public domain software? by Anonymous Coward · · Score: 0
    Since OmniVM was a CMU project, it almost undoubtedly falls into the public domain and/or was federally funded. This means that all work and patents resulting may also be public domain.

    Could this free Mono from Microsoft's patents, by providing either prior art or by asserting that the original concept/implementation was public domain?

  210. At least one place where C++ is KING by IceAgeComing · · Score: 1

    I can think of cases where C is the right tool for the job (small memory embedded systems), and I can think of cases where Java/C# is (large scale enterprise software); but I don't see C++ as the right tool for either job.

    I can, since I've been using C++ for the past ten years in industry. OO is extremely useful for large software projects split over multiple developers, so I'm not disagreeing with your idea that Java/C# are useful in this arena.

    However, Java is not the right paradigm when you're writing computationally intensive programs (in my case, data mining software) for specific hardware. The Java philosophy says write once, run everywhere. I don't know about C#, but I'm guessing since it's aimed at enterprise solutions, it's not going to have Pixar Studios, weather forecasting labs, or anyone similar jumping onto the C# bandwagon.

    C++ is great for large, computationally intensive programs. You have the benefits of OO for large developer teams, control over memory management and object creation/copying details, and access to the underlying hardware.

    1. Re:At least one place where C++ is KING by Sivaram_Velauthapill · · Score: 1

      I think you are wrong in the LONG TERM (what you are saying is true in the short term over the next few years though). What you are overlooking is the rise in computational power. As computers get more and more powerful, the benefit of using higher level, albeit slower, languages will diminish. So the day WILL come when C# (or for that matter even higher level languages like Python) replace C++.

      If you don't believe me, just look at the history of languages. Why do you use C++? Why not, say, assembly? Why did programmers switch to C++ from cobol or fortran?

      When computing power became adequate for the task at hand, programmers started using C++ instead of C or assembly. The same reason applied when people switched to C from assembly.

      So, you are wrong. Pixar Studios, weather forecasting labs, and others WILL switch to C#/Java/etc at some point. The question is when. I personally think it will happen much sooner than you think. Since Longhorn is supposed to be focused on .NET, I imagine the computing power will be sufficient at that point for companies (and hence programmers) to start using C#. For computationally intensive software it will take longer (say 5 to 8 more years) but it WILL happen.

      It is my theory (nothing fancy) that higher level languages will always continue to replace lower level ones. The benefits of higher level languages are just too good, assuming the computing power is there.

      This is actually an interesting thread... the original guy supports a two-tier language system (high level and low-level) but he says C++ sucks... you say C++ is great but high level ones suck... I say, high level ones rule and low level ones will dissapear... of course, I'm speaking about the long term. Nothing is going to change over the next year but after that, we'll see...

      Sivaram Velauthapillai

      --
      Sivaram Velauthapillai
      Seeking the meaning of life... @slashdot of all places ;)
    2. Re:At least one place where C++ is KING by GenSolo · · Score: 1

      So, you are wrong. Pixar Studios, weather forecasting labs, and others WILL switch to C#/Java/etc at some point.
      I think they'll keep using C++ with the libraries they've developed over the years because to keep pushing the envelope in their fields, they have to increase their processing requirements.

      Why do you use C++? Why not, say, assembly? Why did programmers switch to C++ from cobol or fortran?
      I use C++ over C because I can write C-style code that works better in C++. I use C over COBOL or FORTRAN for the same reason that I use C++ over Java: I don't like the language telling me I have to write a program its way when its way isn't the right way for the task at hand. I use C and C++ over assembly because the compiler writes better assembly code than I do. For me to write a better/faster/smaller program would take a lot of time, and the compiler does it faster than I would. Well-written C is faster than assembly for non-trivial programs.

    3. Re:At least one place where C++ is KING by Sivaram_Velauthapill · · Score: 1

      I think they'll keep using C++ with the libraries they've developed over the years because to keep pushing the envelope in their fields, they have to increase their processing requirements.

      There is a lot of investment in existing code. So it's not as if they will be thrown out just because a new language is popular (although, doing so will create jobs for programmers a la Y2K problem). A lot of companies, especially banks, used COBOL well after it was "extinct". 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.

      For me to write a better/faster/smaller program would take a lot of time, and the compiler does it faster than I would.

      That is the same reason you will switch from your beloved C++ ;) to a higher level language in the future. Your fate is written on the wall. I can see it ;)

      Sivaram Velauthapillai

      --
      Sivaram Velauthapillai
      Seeking the meaning of life... @slashdot of all places ;)
    4. 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.

    5. Re:At least one place where C++ is KING by Anonymous Coward · · Score: 0

      C# is getting more expressive though (Java too, to some extent). And the JITs are getting faster too. You may find them overtaking C++ in a few years.

  211. C is NOT dead, de Icaza is an idiot. by Peterius · · Score: 1

    Computers are imperative, and until their architecture changes vastly, object oriented languages will simply by syntactic sugar for people who want a different approach, an object oriented approach to programming. Its true that computers are getting fast enough, and compilers are good enough that C++ is negligibly slower than C but it doesn't mean that C is dead at all, and there are still many applications where one must use C. C is still the portable assembly of choice. It was once a standard and it should always be a standard until we have object oriented hardware, whatever that is, or something completely different. Your processor does not deal with objects; thinking in terms of objects can only take you away from the machine. If you want to see the most direct, human-readable, representation of code that has to be fast and efficient on multiple architectures, you use C. And C is not a difficult language to use. That crud about it having the ease of use of assembly is simply not true. C is a simple, efficient language that does what is needed and has the power and flexibility to do anything easily,if you know a little about it. Its unfair for some OOP junkie brought up on javascript to claim that C is difficult to use because he doesn't like pointers. If he learned C first, he would be more familiar with pointers and more familiar with computer architecture as a result. For someone to make a broad statement like that about a standard language being dead, I..just can't fathom someone saying that. He's probably trying to kill it by spreading rumors because he's an OOP junkie as mentioned above. I wish I hadn't read this thing 2 days after it was posted because this needs to be said. Everyone is brought up on OOP languages lately, so no one really knows the alternatives, and they just stick with what they know and thats not necessarily a good thing.

  212. In Other News by displague · · Score: 1

    Associated Press
    Sesame Street, Any Town, PA

    A local resident was found starved to death in his home on Sesame Street yesterday. A note was found with the body which read,

    "C is for cookie. That's good enough for me."

    Authorities could not be contacted for further information.

    --
    Marques Johansson
  213. What is he smoking? by rsmith · · Score: 1

    I wouldn't touch anything that MS has a patent or copyright stranglehold over with a 10 ft pole!

    If you do use it, you are inviting MS to screw you over whenever it suits them. Whatever their intent might be at this moment doesn't matter, it's the capability that counts. IHMO that's not a position a Free Software developer wants to be in.

    As to anybody who wants to do kernel development in C#, go talk to Linus for a good LARTing. :-)

    --
    Never ascribe to malice that which is adequately explained by incompetence.
  214. But neither are really .Net! by SuperKendall · · Score: 1

    To start with, dot-scheme is just a Scheme wrapper to gain access to .Net libraries:

    _dot-scheme_ is a PLT Scheme bridge to the Microsoft _.NET_
    framework. It provides comprehensive access to .NET libraries,
    offering integrated exception handling, support for .NET delegates,
    and the ability to implement .NET interfaces in Scheme. dot-scheme
    works by analyzing .NET libraries (also known as assemblies) and
    generating Scheme wrappers for its definitions. Bindings for the .NET system libraries can be loaded by importing dot-scheme provided
    modules such as `mscorlib.ss' and `system.ss'. Alternatively
    wrappers can be generated through the `import-dotnet-types' macro
    detailed below.


    Similar things exist to get to lots of other native libraries, and if I were looking to use an external library in Scheme, I would probably choose something that was around on a lot more platforms.

    Scheme.NET seems to be a scheme interpreter, in the same way you can write an interpreter for scheme in C - I don't think it compiles scheme to bytecode? Even if does comile scheme to bytecode, it's got a long ways to go to be complete.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  215. Java will take ouver Linux desk top by Anonymous Coward · · Score: 0

    Java is the best for linux desk top.

    1. Re:Java will take ouver Linux desk top by SnapperHead · · Score: 1

      A month ago, I started working with Java and C#. Basicly, I was looking for a new language to develop some client side applications.

      Java is ugly, and very slow. Not to mention, there are a billion different ways of handling widgets, some of which are so ugly, they aren't even worth using. I think the "brushed metal" look is rather dead, move on. I have always had bad luck with getting Java apps installed. Somehow, it always turns into a nightmare. I could only imagine what the end user would go through.

      C# was much nicer. Its syntax is much closer to C++. It doesn't require header files, which I have always hated :P

      Outside of the language, what I liked most about C# was the fact you can compile native code, and THEN create byte code for cross platform. The byte code is optional. Lets face it, byte code is slow.

      C isn't dead, its not going anywhere for a very long time, Same thing with C++.

      --
      until (succeed) try { again(); }
  216. No. by Anonymous Coward · · Score: 0

    It's "Hear, hear."

  217. M$ evil game with Mono by Anonymous Coward · · Score: 0

    We are seeing what M$ is doing with SCO .
    I have the same feeling with EVIL M$ what it would do with Mono

    All it wants is all to use .Not in wondoze.

    M$ wants to kill Java and Linux

  218. You also forget, C is easy to learn by Adolph_Hitler · · Score: 0

    How easy is it to learn C# compared to regular C? or C++ compared to regular C? Even Java is harder to learn than regular C. When people talk bad about C, they also ignore the fact that all the open source code in the world is written in C practically, and its easy to find refrences and learn C. How the hell am I supposed to learn C# and mono? Thats like starting from scratch. Perl? Perl will never be mainstream, its even harder to learn than C++, Python has a chance but I don't think its powerful enough. You say that higher level languages are better but it all depends on the style and type of syntax it uses as well as the quality of the code produced for it which can be used as refrence. To learn C anyone can look at lots of C programs, learning C# when almost no one knows C# is much harder and unless migel plans to write some documentation and tutorials o C#, why should i use is favorite language instead of what I already know? I know C, I know the flaws and strengths of C, I don't know C#. Also some of us arent concerned with running an application on multiple platforms but even if we were, why not use Java? Still a more developed language than C#.

    --
    People don't exist to serve systems, systems exist to serve people.
  219. .Net is dying by Anonymous Coward · · Score: 0

    .Net is dying so M$ wants to be with Mono to help .Net

    then later M$ will cut the Mono balls off to make .net rule in wondoze.

  220. From C by Anonymous Coward · · Score: 0

    The Reports of My Death have been Greatly Exaggerated.

  221. C is too difficult by TheLink · · Score: 1

    "The trade-off, of course, is not being able to see the assembly language instructions in your mind anymore"

    Is that a plus or a minus in the x86 world? OK x86 asm is not as bad as goatse.cx or tubgirl but still... ;).

    Seriously though, my main complaint about C is: simple AND common errors very often allow "an attacker to execute arbitrary code of his choice". There are a number of high performing programming languages that aren't as vulnerable to this problem.

    It seems only one or two people in the world can program securely in C (assuming moderately complex programs like network services). If you don't believe me go look at Bugtraq.

    C looks deceptively easy to use, and in practice it does not fail gracefully. The side/hidden costs of using C and other unsafe languages are great and far reaching.

    But then again since I work in IT security, maybe I shouldn't complain so much ;).

    --
  222. Darn... It did not go away. by Damon+C.+Richardson · · Score: 1

    I've just been waiting for MONO to go away. I'm not interested in C# or and #'s for that matter. Well it looks like its not going away.

    So all I have to do is make sure I don't have any of this mono crap on my computer right? Because if it's a requirement to use gnome I'm out. I'll switch to KDE.

    after 10 years of programming I've done my fair share of MS based programming methodologys. I'm not doing it anymore. You see I've seen MS back them selves in a corner before. With VB with VC++ it's bound to happen with .NET while Miguel just follows right along. Don't get me wrong Miguel is a better programmer then I. However I can claim to have some knowlege about what works in Corp n-tier systems. .NET reminds me of the dog and pony show. With Mono following right behind trying to validate it. As far as I'm concerned .NET is bad excution of a good idea out of reaction from competition against Java.

    Now to the statement about C. Your a idiot. I will now file your name with all the other idiots that have told me over the years that Cobol and C are dead. In the world of business legacy is still the king of the game. Most people that come into Corp IS with the idea of sweeping changes find themselves incharge of nothing. So... I'd bet on being able to get a job programming C 5 years from now before I'd put a dime on Mono. Actually I'm one of those developers that won't put more then a glance in the direction of Mono. It's not a viable solution to anything I see myself doing in the future. And by the time it is. it will be rolled over by something,,, let's say more established.

    --

    Last one in jail is a fascist.
  223. Can't declare them anywhere else? by emil · · Score: 1
    As in where you have to declare all your variables at the very beginning and can't declare them anywhere else.

    Sure you can.

    #include <stdio.h>
    main()
    {
    int i = 2;
    printf("%d\n", i);
    {
    int j = 5;

    printf("%d\n", i + j);
    }

    printf("goodbye, world!\n");
    }

    In some cases, it is more clear to do the above than have useless variables defined over much larger scopes - it may be easier on memory, too, since the automatic variable will exist over a sorter duration.

    As a grad student, I worked with a team where the project lead insisted that infinite loops be written at "while(1)" - even though K&R wrote them as "for(;;)" - and the position was not changed even after I produced documentation.

    Just because some stupid teacher says that a certain programming style is bad, doesn't mean that it has no application. If your teachers told you that flat-head screwdrivers were stylistically bad and should never be used, would you believe them?

    1. Re:Can't declare them anywhere else? by Ironsides · · Score: 1

      It wasn't the teacher that told me I couldn't do that, it was the compiler/assembler. Ever try arguing with one of those?

      --
      Fly me to the moon Let me sing among those stars Let me see what spring is like On jupiter and mars
  224. cross platform? by mausmaki · · Score: 0

    I'm reading all this stuff about cross platform programming... why the hell would Microsoft do crossplatform stuff? To release people from Windows? Smells like a trap... crossplatform my a**.

  225. i've reviewed the 'question(s)' by LifesABeach · · Score: 0

    a couple of points in my wanderings through life.

    1. most managers can't ask the question(s) you've submitted, then can't understand the answers given.

    2. most maintenance/journey-men programmers don't know how to repeat the question(s) in a different way.

    question: why do you wish to hire a senior level software engineer? just tell papa-bear, i'll point you in the right direction.

    1. Re:i've reviewed the 'question(s)' by Anonymous Coward · · Score: 0
      "why do you wish to hire a senior level software engineer?"

      Are you saying I should outsource the group to India instead of hire an engineering team here? :-)

  226. Matlab/Octave are useful but not cure-for-all by r6144 · · Score: 1
    I have considered all your suggestions, but none of them helps in the cases where I did use C.

    Matlab/Octave are of course used extensively, usually during the "exploration" phase. However, many algorithms aren't as simple as a couple of SVDs (indeed, if I can find such a simple-and-beautiful algorithm in a new problem field, assuming one exists, I would be instantly famous --- such things are usually beyond my ability), and Matlab-like apps becomes slow when manual loops are involved, so it is often only useful to show that an algorithm "is not terribly broken and might have promise", when a C implementation is written to actually evaluate its performance. Also, such algorithms are usually quite heuristic, so it needs tweaking regardless of what it is written in, and certainly won't look good on paper until some good results are obtained and I have some time to clean the thing up.

    Someone said that I can use a hybrid approach, using high-level languages for non-speed-critical stuff. Well, this is a valid methodology in many user-oriented applications that contains a lot of GUI-related or other non-performance-critical code. In my research programs, we usually have a pretty flat profile, with only 50% or less of the code replacable with slower-and-higher-languages, and such parts are usually the easiest parts (argument parsing, data reading/writing, etc.) that aren't modified often and doesn't take a significant percentage of the time to write, even in C. The core algorithm can be several hundred lines long (it is the kind with a bit of heuristics and some other messy stuff, not something solvable by several SVDs which can be handled well by Matlab-like stuff), and gprof says that most of the lines takes significant time to execute --- many functions takes over 5% time in the profile (the top one is at 15~20%), and most take over 1%, so there isn't much room to slow that down.

    Another problem is that factoring out the speed-critical part to C means some complexity, which can be significant considering the whole program isn't big anyhow. I have written such glue codes, and although this isn't difficult, it does take some time and care. Sometimes it isn't at all clear what and how to factor stuff out --- if this is done carelessly one ends up with a super-messy mixture of Your-favorite-language and C, and a lot of time is spent in passing large amounts of data around. What's worse, when something goes wrong in the glue code, it is usually harder to debug.

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

  228. Zealotry? No... by the_skywise · · Score: 1

    I made an opinion. But then there were people who thought SCO was acting independently because why would Microsoft stoop so low? .NET is a friggin' VM!!! Anybody could do it! Sun did! There's no innovation there. Microsoft hired away Borland's main man with an obscene amount of cash and said, make a new language that we can call our own. Nobody would touch Delphi with a ten foot pole, but now C#, C#, C#... and, oh yeah.. C is dead.

    I see no reason to assist Microsoft in taking over the world. Microsoft owns .NET and Microsoft owns C#. Microsoft isn't going to LET .NET work on Linux long term, remember they see Linux as a THREAT. Right now though, this serves their purposes to further entrench C# and .NET in the psyche of programmers. Less time spent on other projects (Python, Java, etc) further entrenches Microsoft's hold on Programmer Mindshare and dictates how the world will compute. I have no problem with Microsoft as a company. I have some problems with how it runs its business, but hey that's life. But why, when you have a completely separate AND OPEN platform, do you want to adopt a closed source solution as the anchor point to the GUI?

  229. whoops... i was effectively ot/trolling by ansak · · Score: 1

    Oh just ignore me. My attention was distracted when I posted this. I was referring to Mono, not Parrot

    --
    Still hoping for Gentle Treatment...
  230. My thoughts while watching video by SuperKendall · · Score: 1

    I'll type as I watch:

    Hey, they use Emacs - I know that!!

    Build files in XML (msbuild)? Why, MS has embraced and extended Ant!

    They also have re-discovered XUL as Xaml!

    Pop up dialog boxes with text are beter than System.Writeln?

    They really enjoy FlowLayout.

    Now demonstrating Aqua (Avalon) features... transparency all over! They must have really been impressed with OS X.

    Not sure about Windows with background video. Sense future abuse of this feature. Have to play with that on OSX and see if it can be used to effect.

    No infinite repeat count on video?

    I think calling "/" whack is, well, - whack.

    Watching people mentally pause when intellisense activates is painful.

    Hey, is that Blog SOAP interface secured???

    Extends or Inherits? I know which is more intuitive, and so do they...

    Indigo - Ehh. IPC by any other name...

    Gah!!! Geeks on laps!!! TMI!!!

    Here near the end, video is out of sync - frogot you can't pause Media Player without ill effect.

    Watching people debug on TV is painful. Really painful.

    WinFS - interesting but too limited example to tell much about how pratical it will be to use.

    Well, overall some of the stuff )(like the video window, though OS X can do that right now) is kind of neat but you can do that programming through XML file multiple ways at the moment already. I know a guy that uses JSP's just like they used Xaml, throwing code in a form quickly to see how it works.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  231. Because... by SuperKendall · · Score: 1

    that's the one overloading everyone uses that makes some sense... it was syntactic convienience like other parts of the language. I agree with the other poster that an == overload would have been nice as well.

    But general operator overloading leads to madness - I've personally seen it happen way too much in C++.

    I know I've never once missed it. And I once had a developer explian to me that C# was abour 70% faster than Java to develop in because it had features like operator overloading...

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:Because... by ClosedSource · · Score: 1

      "that's the one overloading everyone uses that makes some sense... it was syntactic convienience like other parts of the language."

      That's what all applications of operator overloading are intended to do. If you want to stop with strings, that's fine, but other programmers may want to use it in situations that make sense to them.

  232. Are you kidding?? MS is thrilled! by Qwavel · · Score: 1

    The article says "For Microsoft's part, they're nervous onlookers..."

    What, is this some sort of delusion that is necessary to allow Linux folks to use MS technology?

    MS is letting this happen. Actually, they are thrilled. Do you think MS doesn't have enough money to hire lawyers, or to plan their legal strategies? No, Novell and Miguel, like Apple, have found a way to make money without offending MS.

    On the other hand, dotNet is good technology. I'm a hardcore C/C++ programmer, but I'm not stupid: I'd rather write a GTK app using Mono rather than C.

    But if they really wanted to use the dotNet technology to the best advantage of the OSS community, and w/o benefitting MS, they would:
    - not be working so hard to implement MS proprietary API's,
    - would have accepted the idea of a cross-gui api (SWT#) instead of insisting on GTK# and thereby setting back all alternatives to WinForms.
    - they would have added support to Mono for dynamic language (pyton, ruby, etc), favoured by the OSS and Linux communities. This would not be difficult.

    In other words, they should have taken the best from dotNet, but tried to create a viable alternative set of API's for the OSS community, rather than focussing on compatibility.

    Compatibility is for the shareholders, not the community. It is the shareholders that own Novell/Ximian, so it is their right. But don't try to pretend that you are scaring MS and thinking only of Linux/OSS.

    Tom.

  233. Re:exceptions stuff by jhoger · · Score: 1

    There is no way to use exceptions that is generally readable. And rampant uncontrollable gotos, which is a significant aspect of exceptions isn't avoidable (please enlighten me otherwise).

    And whether libraries generate exceptions instead of return codes isn't typically under your control. It's under the control of the creator of the library.

    Any exception handler is going to be a nested block of code. and if you allow an outer exception handler to be reached you really have a totally unpredictable result as far as the curent state of the machine. You have no choice but to write ugly code if exceptions are around.

    Add to that C#'s interminable nesting of classes generally, and you have code moving several levels deep to the right.

    There's no way to make such code readable.

    -- John.

  234. Obviously they don't teach english at your college by RodeoBoy · · Score: 1

    To quote "To me C is dead." Since he is an accomplished C/C++ programmer, that now has developed a compiler in C#, I think his statement refers to his own personal programming practices not that of the world. Of course the fact that I have both a BA and a BSc may be clouding my perspective.

  235. Re:.NET [this time, correctly quoted] by ajagci · · Score: 1

    The Javadoc claims the class never gets instantiated. But why is the existance of that class so poor design? I thought it was fairly conventient.

    "System" is being used as a namespace full of static variables and functions. But because that would not be "object oriented", there is no such thing as a static variable or a static function; you have to declare a class and then put static methods and static members into it. But classe are not namespaces in Java (for example, you can import java.io.*, but you can't import System.*). To fix such limitations of such a construct, Java 1.5 adds even more kludges to the language. Object-oriented dogma has led to unnecessary language complexity. Sorry, but I find that stupid, in particular in light of several decades of experience with "class" and "module" concepts in computer science.

  236. nope by LifesABeach · · Score: 0

    'papa bear' lives in southern california, and i prefer my cow 'medium well'.

    your previous question was one of a level of computer understanding that is part of the knowledge base that senior level software engineers are comfortable with.

    if your looking for questions to interview software engineers with; try this one, "how many programmers does it take to screw in a light bulb?" you'd be frighteningly amazed at the blank stares it generates. for me, i'm looking for a reaction, any reaction, not a blank stare. someone that thinks, will react. The software line of work is a 'service', a creative mind will find a way; others will not.

    as for the 'india' reference. it takes a business, any business, 5 years to recover from a disaster. i've noticed that its the same for people also. i've pondered the nature of the cheap-labor/outsourcing problem, and have found that an equitable answer for the outsourcing of business products would be to not allow ANY tax benefits to those businesses that would use this method to generate funds; including ALL business expenses. with 3 million productive people out of work, this not a group of people that i can easily ignore.

  237. What I am trying to do by Latent+Heat · · Score: 1
    I apologize -- I came across as whining. Allow me to tell you what I am trying to do.

    I am interested in teaching Electrical Engineering students how to write software to implement signal processing algorithms. I want them actually writing code rather than running some canned engineering package that designs all the filters for them and shows pretty pictures.

    I wrote a canned program that shows pretty pictures of signals run through filters with the results showing up on spectrum plots where the students could write extension modules in C++ to implement their filters. A typical extension modules is derived from a base class that buffers the signal input and output from the filter, a filter is typically written by overriding a couple of virtual methods -- one to calculate the filter coefficients and another to apply those filter coefficients to the next buffer of data.

    The students have been told that it is valuable for an engineer to have some C++ experience, but even this sheltered, structured use of C++ makes it hard to get students to take my course. C++ has a clunky edit-compile-test cycle, it is a lot of effort to get a clean compile, and then more often than not a student written C++ program crashes and is hard to debug because it is an embedded object in another program (yeah, yeah, I have a test framework).

    The engineering students regard C++ as cod liver oil -- they would all rather use Matlab. They use Matlab in all their other courses. Back in the days engineers would struggle to get a FORTRAN program to compile and then struggle to get it debugged. No one wants to bother with implementing engineering calculations at that level, it is all Matlab now. Matlab has an "eval" loop style of programming, good numeric libraries, good plot libraries, reasonable error message feedback, excellent self-discovery and help capability.

    I am not a Stallmanesque zealot and a don't begrudge MathWorks making a profit, but in the olden days interesting software came out of the academy (P-system, BSD, Lisp) and these days we seem to be a trade school for the preferred commercial packages. Universities are supposed to be at the leading edge. Why aren't we using Lisp if we wanting something interactive and developing engineering packages for it (there is a thermodyamic modelling package written in Lisp called CyclePad by the way)?

    Outfits like the National Labs (Sandia, Livermore) and the Space Telescope Science Institute are doing what the universities ought to be doing -- they are looking into Python as the next Lisp. It is a good effort and I look forward to it bearing fruit.

    All I am trying to say is that if Python is going to become an "infix Lisp" for science and engineering, there are a number of things (such as NumArray) that are a work in progress but not fully there yet.

    Using Python as glue and doing the heavy lifting in C/C++ extension modules is OK, but it doesn't solve the following problem. NumArray over here has this neat Python class implemented in C++ for efficiency, and there is this plot package over there that doesn't know about NumArray, and how am I going to get the data from here to over there without diving into C/C++ sources of third party packages to extend them to know about NumArray?

    There is a lot of interest in using Python as a numerical, infix Lisp, but there needs to be more interoperability of these new data types. I am hoping this will come with time, but it is not quite there yet.

  238. What I am also trying to say by Latent+Heat · · Score: 1
    What I am also trying to say is that instead of putting effort into things like Mono, which is tied to Microsoft and all that entails, why not put the same effort into advancing Python?

    Python doesn't have the corporate fetters of either C# or Java, and while it is nowhere near the execution speed (especially for numeric work), it seems to have growth potential, especially if array data types could be standardized.

  239. Goes Both Ways Really by HopeOS · · Score: 1

    One of the big interview questions that I ask involves the difference between virtual and member functions. Maybe one in ten applicants comes even close to answering the question correctly. Of those, less than half know what a vtable is. We use this question as a disqualifier, but we have hired some of these people as junior programmers from time to time. Interestingly enough, many of those who answered correctly still could not program in C++ to save their lives. Having a thorough understanding of the compiler generated implementation is not the same as having a good background of algorithms or experience with cost-performance balances in implementation. For every sin I've witnessed in C++, I can recall at least as many in C.

    -Hope

  240. Boxing and unboxing by ingenuus · · Score: 1

    Actually, referencing and dereferencing are not the same thing as boxing.

    Boxing is the act of taking a given Value (which does not have any inherent type info) and creating an equivalent Object (which has embedded type info).

    Boxing is a solution to viewing everything as "Objects" while not requiring type information (e.g. a vtable) to be maintained with every binary block (e.g. ints, floats, etc.).

    e.g. In some languages, every 'int' is an Object, which roughly means that it contains: 1) a vtable pointer AND 2) the actual int value.

    Hence, these Int Objects are twice the size of what an 'int' needs to be. This is often silly since, in most cases, there is no need to abstract away the type of an 'int'.

    I think the reason for the confusion is that 'Objects' exist on the heap and are passed by reference, while 'Values' (non-Objects) exist on the stack and are passed by value. Hence, it is the Values which need to be boxed in order to use them as Objects.

  241. well played ! by pyrrho · · Score: 1

    and there is also no open bracket.

    I have not python only a little so far (although I use Zope), and yes, it's a very nice tool.

    Keep in mind that my comment is in general... learn how memory works... not that you can't use a language (or C++ class system) that manages memory at a higher level, but learn how it works anyway. It's important. I suspect you in particular probably have.

    But I don't like the VM excuse from people that think the concept of pointer is too complex. I feel it's important to understand how the machine thinks of what you tell it. I love abstraction and see no limit to valuable high level abstractions and languages whatever. But in the end it is a machine, and how it wants to work is the most important thing for an engineer.

    --

    -pyrrho

  242. Re:exceptions stuff by joto · · Score: 1
    There is no way to use exceptions that is generally readable. And rampant uncontrollable gotos, which is a significant aspect of exceptions isn't avoidable (please enlighten me otherwise).

    Yes it is. That is exactly why we have exceptions, to avoid thousands of if-tests to test for every particular error everywhere. If you e.g. make a simple recursive descent parser, it makes sense for the parser to throw exceptions instead of infecting all your code with tests for errors. You are generally not in a position to "fix" the error anyway, all you want is to say which part of the input is wrong, and that can be done at a single place in your code.

    Without exceptions, you must either write each routine to be able to return a new error code, and make each routine test for that all the places it calls other routines. This is dead ugly. Alternatively, simply longjmp out of the entire block, but that is the same as with exceptions, except that it is uncontrollable.

    And whether libraries generate exceptions instead of return codes isn't typically under your control. It's under the control of the creator of the library.

    Yes, that is the way the world is. Writing general purpose libraries is always hard. And unfortunately, not every library writer has a clue. If you are really offended by the braindead choices done in some badly designed library (e.g. CORBAs C++-bindings) that you have to use, there's always the possibility of wrapping up the stupid code.

    Any exception handler is going to be a nested block of code. and if you allow an outer exception handler to be reached you really have a totally unpredictable result as far as the curent state of the machine. You have no choice but to write ugly code if exceptions are around.

    No, it is not uncontrollable. That is exactly why C++ offers the "resource acquisition is initialization" idiom, java and C# offers try-finally blocks, common lisp offers unwind-protect, etc... This is great stuff, it gives you the opportunity to jump out of the offending code quickly and painlessly, while at the same time being guaranteed cleanup of resources and state in a predictable manner.

    And in most cases, you don't even need them. Unless your code goes about allocating resources or modifying global state, you could care less about what happens with local variables on the stack you are jumping out of.

    Add to that C#'s interminable nesting of classes generally, and you have code moving several levels deep to the right. There's no way to make such code readable.

    Ever heard of abstraction? If you, or your co-workers isn't capable of writing short readable methods that spans no more than a screenfull, with a nesting-level below 3, it is hardly the languages fault.

    I can see where you are coming from. I've seen some horrible code using exceptions in obtuse ways. If you are always testing for errors immediately anyway, exceptions doesn't make your code any more readable (in fact, it makes it worse, which we both seem to agree upon).

    The power of exceptions comes from being able to write code that is clean, safe, and isn't threaded with error-checking everywhere. You can start writing modular code again: normal program logic in one place, error-reporting somewhere else. And the system will take care of the details, if you learn to use it properly.

    Using exceptions isn't a device to stop idiot programmers from having to think about error conditions. Like any other way of handling errors, it requires you to think and plan your way of attack. What it does give you, is the tools to write cleaner and more modular code, if you know how to use them.

  243. Oh yeah, C is dead by TaQ · · Score: 1

    Let's rewrite all our apps with C#. Better yet, let's rewrite and compile the Linux kernel using C#. Maybe is enough for Miguel or he wants to put C# on Mars also? ;-)

  244. And they should be stopped by SuperKendall · · Score: 1

    And that's exactly the point when they should be stopped, for the sake of maintainability.

    I would be fine without "+" for strings in Java, but realize they had to add it in to strike a language balance people would find appealing.

    For numerics I could see them adding a complex type and overloading for that I guess... but perhaps that is really the realm of a different language.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:And they should be stopped by ClosedSource · · Score: 1

      You keep adding exceptions based on your judgment. Why not just assume that other programmers are as capable as you of making that judgment?

      My original point was that even the Java creators didn't believe 100% that operator overloading was bad. I suspect the real reason the feature doesn't exist is because they thought it was more trouble to implement than it was worth.

  245. Oh yes by SuperKendall · · Score: 1

    It's far better to have one "master language", kind of like when you have a lot of eggs you like to keep them in one basket for maximum safekeeping.

    That standpoint (on uber-syntax) is exactly the worst feature of .Net, because you loose true language diversity and thus languages that fit really well into fringe problem domains slowly are eaten away. There is nothing wrong with knowing more than one language - just as in real life it's always better to know a foreign language or two.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:Oh yes by RhettLivingston · · Score: 1

      You seem to be confused. I have personally programmed in C#, VB, Perl, and J# under the DotNet environment. Many more languages are available. I have only programmed in Java and Ada under the Java environment and don't know that the Ada front end is still around.

      DotNet, by providing a strong language independent platform for all syntaxes to be built on opens the door for me to use exactly the right syntax for the problem at hand at a fine grained level and have the classes produced in solving each problem all contribute to a single large scale program. Java can't (or more accurately, won't) touch that.

      You may be thinking that all syntaxes become equal under DotNet, but I haven't found that to be the case. It is still vastly easier, for example, to utilize regular expressions from Perl than from C#. So, C# is not even close to threatening Perl for the text processing applications that Perl shines on.

      Of course, everyone here probably recognizes the ulterior motive of this design. DotNet isn't a language and it isn't a development studio. It is plain and simply the new windows API that will finally allow Win32 to be replaced. When Longhorn comes around, the underlying windows calls will be reduced from over 56,000 to under 8,000. Those 8,000 remaining calls will be geared to very closely match the needs of the DotNet runtime. The Win32 compatibility will be supplied via a conversion layer. So, even if Mono succeeds, they will only end up expanding a market for software that will run best on a Microsoft OS because the OS was designed from the ground up to run it.

  246. Don't agree by SuperKendall · · Score: 1

    Value classes and a better native code interface are crucial performance improvements. Fixed exception handling and generics are important for large projects.

    You can have value-like classes in Java. You can use exception handling EXACTLY the same way in Java (I've used Runtime exceptions in Java for years exactly because that is better - in most cases). Generics are very useful which is why Java will have them in 1.5 (does C# have them yet? I was under the impression they were not in the platform yet - or at least people at work using the platform are not using it at all).

    At least with Java and exceptions, you have a choice and can indicate to an external unknown user in certain situations there may be a problem. Think about this in terms of a builder tool - if you wanted to write a builder that could hook up various classes and flow between them - would you not also want to manage the flow of error cases?

    If declared exceptions are so bad, then why is there a wsdl:fault element for SOAP?

    Parrot and Tcl are slow interpreters. Mono contains a JIT that gives near-native performance on a lot of code. Mono and C# can replace C and C++ as general purpose languages, Parrot, Tcl, and Java cannot.

    There are options used to compile Java - the reason why they are not more widespread is that they are not needed very much.

    I still think that in many cases, a runtime JIT compiling to native code dynamically is a better solution because it's optimizing what the user is actually doing, not what the compiler thinks it might do.

    First of all, Mono is not .NET; Mono, as you would know if you bothered to read the article, is both a fully independent set of APIs and libraries and a set of .NET compatibility libraries. You don't have to use the .NET compatibility libraries in Mono at all; in fact, most Mono applications don't and won't.

    Mono is striving to equal the CLR though. And that spec will change according to MS wishes, and also has patent issues.

    Second, I really don't care about whether Mono helps or hurts Microsoft. Why would that make any difference to me?

    Why not just use the real thing then? Why are you using Linux when you could be using Windows 2003 server?

    I don't see Sun as a victim. And, yes, I hope that people will port open source Java code to Mono as fast as possible so that that code will finally run on an OSS platform (I don't care one way or another whether it also gets ported to .NET).

    And then have that platform sued out form underneath them. Good luck with that plan. And good luck with porting everything under the sun, while all y'all are out porting Java code is moving forward. I don't know why you'd want to use a platform that is always a step behind.

    You be better off supporting an all OSS Java. Then you'd also have a much larger codebase of support to choose from.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  247. Of course by SuperKendall · · Score: 1

    My master plan is the rise and eventual domination of Smalltalk, as just about anything I really like in Java came from that direction...

    See, now if MS had just put together a real smalltalk based system I would not be so harsh of them (though I doubt I will ever forgive them for my years under Windows98). But a second rate clone of Java just shows no imagination and retards the industry.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  248. No, they thought it shouldn't be used by SuperKendall · · Score: 1

    I think they could have handled operator overloading if they'd wanted it in the language - but also thought (like I do) it was simply a bad practice with no practical value.

    I wouldn't include operator overloading in any language I designed, not because it's difficult but it's far too easy a trap for developers and you can always find an alternate means of development that is acceptable and probably better in the long term. Operator overloading is a crutch.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  249. The party line by SuperKendall · · Score: 1

    DotNet, by providing a strong language independent platform for all syntaxes to be built on opens the door for me to use exactly the right syntax for the problem at hand at a fine grained level and have the classes produced in solving each problem all contribute to a single large scale program. Java can't (or more accurately, won't) touch that.

    If DotNet is such a miracle of langauge support, then Java must be even more spectacular with some 143 languages compiling to Java bytecode. The only difference? No-one has created a unified tool to stuff many of these languages into one environment, as there is little need to do so (or someone would have done it). Obviosuly some of those languages are more real than others, but a number of them have widespread use.

    You may be thinking that all syntaxes become equal under DotNet, but I haven't found that to be the case. It is still vastly easier, for example, to utilize regular expressions from Perl than from C#. So, C# is not even close to threatening Perl for the text processing applications that Perl shines on.

    Because just about all the languages you've used are pretty much equivilent. Sure stuff like Perl regex use is going to be really similar in the .Net version of Perl. It's when you get into more interesting languages that you have issues.

    I still don't see hardly any real-life systems of any size using the mixed-language features. In a real project of any size it would be a nightmare if you had a few guys coding in perl, and a few in C#.

    It seems like even with Perl, although the language would be simialr the library support would fall mostly to calling common .Net libraries. Not being that familiar with Perl I could not say what exactly is missing.

    Of course, everyone here probably recognizes the ulterior motive of this design. DotNet isn't a language and it isn't a development studio. It is plain and simply the new windows API that will finally allow Win32 to be replaced. When Longhorn comes around, the underlying windows calls will be reduced from over 56,000 to under 8,000. Those 8,000 remaining calls will be geared to very closely match the needs of the DotNet runtime. The Win32 compatibility will be supplied via a conversion layer. So, even if Mono succeeds, they will only end up expanding a market for software that will run best on a Microsoft OS because the OS was designed from the ground up to run it.

    I agree with that. They did need to simplify their API's, it just would have been easier on everyone if they had used Java as the base - they could have compiled it to native code the way they do right now. They could have built the multi-language IDE around it. But instead they figured that would mean you could write code for something other than Windows and that must not be encouraged, so they figure. They could not stand to not be in control and follow the will of a real standards bodies cotrolling the direction of language or libraries. It's NIH on a massive scale.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley