Slashdot Mirror


Android Ported To C#

New submitter Eirenarch writes "Xamarin has just announced that they got the Java part of Android ported to C# via machine translation. The resulting OS, called XobotOS, is available on Github. They claim some serious performance gains over Dalvik. For them, this is an experiment that they are not planning to focus on, but they will be using some of the technologies in Mono for Android."

351 comments

  1. Software Apocolypse... by raydobbs · · Score: 5, Funny

    ....this still won't save you from the Oracle software apocalypse.

    1. Re:Software Apocolypse... by nicholas22 · · Score: 4, Funny

      If Oracle wins the suit, this project will be liable for damages to Google :) A brave new world indeed!

    2. Re:Software Apocolypse... by Anonymous Coward · · Score: 0

      I think it would be great that if Oracle wins against Google, that Google remove all references to Oracle from all search results.

    3. Re:Software Apocolypse... by Isaac+Remuant · · Score: 2

      But how will economists make accurate predictions without the source?

      --
      "Science can amuse and fascinate us all, but it is engineering that changes the world. " - Asimov.
    4. Re:Software Apocolypse... by gstoddart · · Score: 1

      But how will economists make accurate predictions without the source?

      How do economists make 'accurate' predictions now?

      --
      Lost at C:>. Found at C.
  2. Can I run Android or iOS on my PC? by cpu6502 · · Score: 1

    I'd like to try them sometime.

    --
    My AC stalker: " I personally agree with your posts most of the time, but that won't keep me from modding you troll"
    1. Re:Can I run Android or iOS on my PC? by nurb432 · · Score: 4, Informative

      Android was ported to x86 a few versions ago.

      --
      ---- Booth was a patriot ----
    2. Re:Can I run Android or iOS on my PC? by Anonymous Coward · · Score: 2, Informative

      Yes, you can:
      http://www.android-x86.org/
      http://forum.xda-developers.com/showthread.php?t=1373161

      Heck, even Eclipse has an emulator that could do the trick for you.

    3. Re:Can I run Android or iOS on my PC? by zill · · Score: 4, Informative

      Yes, you can. There are two ways to go about it:

      Download the Android SDK which contains an Android emulator.

      If you have any virtualization software installed, grab an Android x86 ISO image and run it in a VM.

      The second method gets you higher performance (virtualization vs binary translation), but has major compatibility issues. Any app that contains ARM native code won't work in Android x86 unfortunately.

    4. Re:Can I run Android or iOS on my PC? by Anonymous Coward · · Score: 2, Interesting

      At the moment, yes. That might change, though.

      There's now at least one phone available (in India, anyway) which runs an x86 (Intel Medfield) version of Android:

      http://arstechnica.com/gadgets/news/2012/04/the-first-intel-smartphone-comfortably-mid-range-eminently-credible.ars

      It can run most apps that contain ARM native code, by using a JIT. I don't know if the source code for that is available anywhere, but it'd be useful for running Android on x86. It's also not that hard to port an Android on ARM app over to Android on x86 (generally, it's just a recompile), so if Intel make any headway with x86 phones, developers might start simply compiling all their apps for both ARM and x86.

      I don't know if Intel will get very far with this. Right now, their solution is OK, but not competitive with high-end ARM SoCs. Give them a couple of iterations, and given Intel's enormous lead in manufacturing process, they might become competitive soon enough. Then it's a question of whether any phone manufacturer decides to use Intel over ARM, whether people actually buy such a phone, and whether developers decide to bother supporting both ARM and x86.

    5. Re:Can I run Android or iOS on my PC? by SirusTV · · Score: 1

      there are also versions for some iphones

    6. Re:Can I run Android or iOS on my PC? by ThePeices · · Score: 1

      I'd like to try them sometime.

      Android, yes easily done, as mentioned above.

      iOS? For the love of dog, please don't do it on non Apple hardware. Apple Legal will find out, and they will utterly destroy you.

    7. Re:Can I run Android or iOS on my PC? by Anonymous Coward · · Score: 0

      I wonder if there's an easy way to get hold of the arm->x86 layer intel uses in their x86-based android phone?

  3. c# what a lousy name by ozduo · · Score: 0

    with all the letters in the ascii table why can't you get past C http://www.asciitable.com/

    --
    I got to the chocolate box before you, that's why the hard ones have teeth marks.
    1. Re:c# what a lousy name by AlephNaut · · Score: 2

      You don't play an instrument? I thought it was quite a clever name...

    2. Re:c# what a lousy name by zill · · Score: 2, Funny

      No wonder C# never caught on. Microsoft grossly overestimated the cardinality of the intersection between the set of programming nerds and the set of music nerds.

    3. Re:c# what a lousy name by Anonymous Coward · · Score: 1

      Insert Db pun here.

      (for those who don't get it: in music, generally speaking, the sharps and flats overlap. C sharp = D flat)

    4. Re:c# what a lousy name by ozmanjusri · · Score: 2
      While I do play an instrument, I prefer to call the language by it's real name, C-Hash.

      At least that way, you're never in doubt about the goal of its creators.

      --
      "I've got more toys than Teruhisa Kitahara."
    5. Re:c# what a lousy name by Trogre · · Score: 0

      Yes, but to interpret a hash (#) as "sharp" there is usually a previous musical context.

      In my part of the woods, the Microsoft language is simply known as C hash.

      --
      "Nine times out of ten, starting a fire is not the best way to solve the problem." - my wife
    6. Re:c# what a lousy name by Anonymous Coward · · Score: 1

      Your part of the woods must be pretty retarded then.

    7. Re:c# what a lousy name by brianerst · · Score: 1

      Philistine! Everyone knows the proper pronunciation is C-Octothorpe!

    8. Re:c# what a lousy name by RichardJenkins · · Score: 2

      Generally, for those who don't get it: don't explain.

    9. Re:c# what a lousy name by Anonymous Coward · · Score: 0

      Would that be the back part of the woods then?

    10. Re:c# what a lousy name by Anonymous Coward · · Score: 0

      Never caught on? ROLF. Pull your head out of the sand. There are more people being paid to write and maintain C# code then any other managed language. But hey, pick on it all you want.

    11. Re:c# what a lousy name by Anonymous Coward · · Score: 2, Informative

      Microsoft clearly says it's pronounced C Sharp.

      http://msdn.microsoft.com/en-us/library/kx37x362.aspx

      C# (pronounced "C sharp") is a programming language that is designed for building a variety of applications that run on the .NET Framework. C# is simple, powerful, type-safe, and object-oriented. The many innovations in C# enable rapid application development while retaining the expressiveness and elegance of C-style languages.

      -wmbetts

    12. Re:c# what a lousy name by Anonymous Coward · · Score: 0

      C-hekje

    13. Re:c# what a lousy name by admdrew · · Score: 2

      In my part of the woods, the Microsoft language is simply known as C hash.

      Why (honestly curious)?

    14. Re:c# what a lousy name by Anonymous Coward · · Score: 0

      About as retarded as Microsoft yup.

    15. Re:c# what a lousy name by Anonymous Coward · · Score: 0

      Modded offtopic, because there's no completely wrong mod.

    16. Re:c# what a lousy name by darrenkopp · · Score: 1

      Pretty sure it's more a play on "a sharp c" by it's relation to c the language, rather than it being c# the music note.

    17. Re:c# what a lousy name by HelioWalton · · Score: 1

      C Pound

    18. Re:c# what a lousy name by Anonymous Coward · · Score: 5, Funny

      Hash? I though it was a bunch of pluses squished together to save space. You're saying C# isn't C++++?

      Wow, my mind's blown. Cue Lemmings' self-destruct animation: Grabs head and explodes!

    19. Re:c# what a lousy name by vux984 · · Score: 1

      In my part of the woods, the Microsoft language is simply known as C hash.

      If you are going to be deliberately ignorant, why not call it C octothorpe?

    20. Re:c# what a lousy name by Cylix · · Score: 1

      As every telecom expert knows...

      C Pound.

      --
      "You should always go to other people's funerals; otherwise, they won't come to yours." -- Yogi Berra
    21. Re:c# what a lousy name by Anonymous Coward · · Score: 1

      In the UK if you call up one of those automated voice menu things it will say "press hash" because there is no pound (£) button on telephones.

    22. Re:c# what a lousy name by Anonymous Coward · · Score: 2, Funny

      Looked like C tic tac toe to me.

    23. Re:c# what a lousy name by Anonymous Coward · · Score: 0

      Never caught on? ROLF. Pull your head out of the sand. There are more people being paid to write and maintain C# code then any other managed language. But hey, pick on it all you want.

      I don't see how the compiler source code being hard to maintain is an indication of the success of the language.

    24. Re:c# what a lousy name by Anonymous Coward · · Score: 0

      How could you say that? He's likely the only one there.

    25. Re:c# what a lousy name by Anonymous Coward · · Score: 0

      Whooosh! (in D flat)

    26. Re:c# what a lousy name by Tarlus · · Score: 1

      C Number

      --
      /* No Comment */
    27. Re:c# what a lousy name by Anonymous Coward · · Score: 1

      C Pound

      C£?

    28. Re:c# what a lousy name by jd2112 · · Score: 1

      They should have renamed ado.net as Db.net.

      --
      Any insufficiently advanced magic is indistinguishable from technology.
    29. Re:c# what a lousy name by larry+bagina · · Score: 1

      To interpret a pound (#) as "hash" there is usually a previous drug reference.

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    30. Re:c# what a lousy name by ceoyoyo · · Score: 2

      "(for those who don't get it: in music, generally speaking, the sharps and flats overlap. C sharp = D flat)"

      Unless you're a music theorist.

    31. Re:c# what a lousy name by amicusNYCL · · Score: 1

      Microsoft grossly overestimated the cardinality of the intersection between the set of programming nerds and the set of music nerds.

      I think you might be underestimating it. It turns out that the creative minds that enjoy programming also enjoy other creative things. I almost went to music school, actually. I wouldn't consider myself a "music nerd" even though I play guitar occasionally, but I certainly know what a C sharp is.

      --
      "Our two-party system is like a bowl of shit looking at itself in a mirror." - Lewis Black
    32. Re:c# what a lousy name by Anonymous Coward · · Score: 0

      You don't play an instrument? I thought it was quite a clever name...

      My language of choice would be D flat. But it all depends on whether or not you prefer reading 7 sharps over a much more user friendly 5 flats! Obviously C# would not be very user friendly for B flat woodwinds like a Sax or Clarinet!

    33. Re:c# what a lousy name by Anonymous Coward · · Score: 0

      Erm... "C hash" is quite clearly wrong.

      The symbol is actually a sharp symbol (a , rather than a #). It's usually typed as "#", because "" is a pain in the neck to type, but it definitely is a sharp symbol. It shows up basically anywhere it's represented graphically, from the splash screen, to the icons, official logos, and so on. Oddly, not on their own website, though...

      The compiler's called "csc" - "C Sharp Compiler". The extension for source code is ".cs" - "C Sharp". A number of tools or libraries available have "sharp" in the name somewhere.

    34. Re:c# what a lousy name by Anonymous Coward · · Score: 0

      Because it's a letter C followed by a hash (#)

    35. Re:c# what a lousy name by Anaerin · · Score: 1

      Given that, in the parent's location, a "Pound" refers to the symbol £ (Pounds sterling), the symbol # is referred to as a "Hash" or "Hash mark" (possibly derived from the word "Hatch", as in "Crosshatch" or "hatchmark").

    36. Re:c# what a lousy name by FutureDomain · · Score: 1

      Every professional INTERCAL programmer knows that the name is "C Mesh".

      --
      Hydraulic pizza oven!! Guided missile! Herring sandwich! Styrofoam! Jayne Mansfield! Aluminum siding! Borax!
    37. Re:c# what a lousy name by Anonymous Coward · · Score: 0

      Pound is £
      Hash is #

    38. Re:c# what a lousy name by binarylarry · · Score: 0, Troll

      Actually, the proper Redmond way to pronounce it is "C Douche."

      Because a douche is what you see, when you see a programming writing software in C#.

      --
      Mod me down, my New Earth Global Warmingist friends!
    39. Re:c# what a lousy name by binarylarry · · Score: 0

      programmer*

      --
      Mod me down, my New Earth Global Warmingist friends!
    40. Re:c# what a lousy name by Jah-Wren+Ryel · · Score: 1

      In my part of the woods, the Microsoft language is simply known as C hash.

      Why (honestly curious)?

      Because you have to get seriously baked to think it is a good idea to use it?

      --
      When information is power, privacy is freedom.
    41. Re:c# what a lousy name by Bengie · · Score: 1

      U C-hash, I add pepper and salt, then U no C-hash.

    42. Re:c# what a lousy name by hobarrera · · Score: 1

      C£ ?

    43. Re:c# what a lousy name by Immerman · · Score: 1

      You're probably right, but the fact is the only people who might read # as "sharp" are music nerds who are familiar with the sharp symbol it somewhat resembles. Pretty much everyone else will read # as either "number", "pound", or "hash", and I think each of those is worse than the last in terms of marketing potential.
      * C Number... well we're not actually sure which number it is, there have been a lot of variants of C. But this one is from Microsoft!
      * See us Pound this powerful, widely used language into something more accessible to hobbiest programmers. Sure we lost some really useful features, but... Garbage Collection!
      * See the Hash we made of this language?

      Yeah, I'm just not seeing it.

      --
      --- Most topics have many sides worth arguing, allow me to take one opposite you.
    44. Re:c# what a lousy name by pspahn · · Score: 2

      And for the rest of us, it's C Tic-Tac-Toe thingy.

      --
      Someone flopped a steamer in the gene pool.
    45. Re:c# what a lousy name by shutdown+-p+now · · Score: 1

      It was originally called "Cool" internally, which was an acronym for "C-like Object-Oriented Language".

    46. Re:c# what a lousy name by Anonymous Coward · · Score: 0

      There's an enormous intersection. In fact, I'd be very suspicious of someone that claimed to be a programmer but wasn't musical or otherwise creative.

    47. Re:c# what a lousy name by Anonymous Coward · · Score: 0

      Or you may simply exist in an actual English speaking country. # is a hash, pound is either lb or the Pound Sterling symbol.

    48. Re:c# what a lousy name by batkiwi · · Score: 1

      Your part of the woods is wrong then:

      http://msdn.microsoft.com/en-us/library/microsoft.csharp.aspx

      Official microsoft namespaces for the underlying compiler are "microsoft.csharp".

      You can pronounce c++ as "see tee tee" but you look like an idiot doing so.

    49. Re:c# what a lousy name by ScrewMaster · · Score: 1

      They should have renamed ado.net as Db.net.

      Really, this is all much ado about nothing.

      --
      The higher the technology, the sharper that two-edged sword.
    50. Re:c# what a lousy name by ScrewMaster · · Score: 1

      There's an enormous intersection. In fact, I'd be very suspicious of someone that claimed to be a programmer but wasn't musical or otherwise creative.

      I'm a programmer and I'm writing a sci-fi novel. Does that count?

      --
      The higher the technology, the sharper that two-edged sword.
    51. Re:c# what a lousy name by Jaxoreth · · Score: 1

      "(for those who don't get it: in music, generally speaking, the sharps and flats overlap. C sharp = D flat)"

      Unless you're a music theorist.

      And specifically an ill-tempered one. :-)

      --
      In general, it is safe and legal to kill your children. -- POSIX Programmer's Guide
    52. Re:c# what a lousy name by Anonymous Coward · · Score: 0

      Outside of music when is a hash tag considered sharp?

    53. Re:c# what a lousy name by similar_name · · Score: 1

      I don't think it's deliberate ignorance. If you don't use it why would you know what it stands for. The symbol has a lot of names and if you asked 100 people what they thought it stood for sharp would probably not be at the top of the list. It's entirely possible to do a lot of programming and never use it.

    54. Re:c# what a lousy name by Anonymous Coward · · Score: 0

      Yeah, I hear people saying pound tag all the time.

    55. Re:c# what a lousy name by Anonymous Coward · · Score: 0

      I don't see how the compiler source code is hard to maintain. What the fuck are you talking about again?

    56. Re:c# what a lousy name by narcc · · Score: 1

      I read # as "octothorpe" you insensitive clod!

    57. Re:c# what a lousy name by jedwidz · · Score: 1

      ... which was also a clever name, except that it's terribly uncool to call a language 'Cool'.

      If only they'd called it 'UnCOOL', backronynmed to 'Universal C-link Object-Oriented Language' - that'd be awesome!

      In 100 years time the monkey-boy dance would still be a revered masterpiece of postmodern performance art.

    58. Re:c# what a lousy name by jedwidz · · Score: 1

      Oops... 'C-like'

    59. Re:c# what a lousy name by LynnwoodRooster · · Score: 1

      Not that anger scales well...

      --
      Browsing at +1 - no ACs, I ignore their posts. So refreshing!
    60. Re:c# what a lousy name by Patch86 · · Score: 1

      The "previous musical context" would be the musical pun- C Sharp as in the note. I prefer it to C Hash, which is fairly meaningless,

    61. Re:c# what a lousy name by Anonymous Coward · · Score: 0

      Granted, I haven't experienced what's it like in a real all-microsoft-shoppe, but generally C# is like a breath of fresh air after years of Java. Sure there's shit all over the place, but people seem to acknowledge it instead of making a cargo cult around it. (remove getenv? seriously? and don't get me started on j2me or swing..)

    62. Re:c# what a lousy name by deniable · · Score: 1

      C-comment

    63. Re:c# what a lousy name by deniable · · Score: 1

      Null pointer exception.

    64. Re:c# what a lousy name by Anonymous Coward · · Score: 0

      I call it Goat-C as in }#3>

    65. Re:c# what a lousy name by Anonymous Coward · · Score: 0

      That is silly.

    66. Re:c# what a lousy name by Anonymous Coward · · Score: 0

      Call me Rolf again and I'll tie you down and hit you with me didgeridoo mate

    67. Re:c# what a lousy name by binarylarry · · Score: 1

      How exactly is a clone of Java a breath of fresh air?

      --
      Mod me down, my New Earth Global Warmingist friends!
    68. Re:c# what a lousy name by Anonymous Coward · · Score: 0

      He's implying that the "more people ... than any other managed language" are all or almost all microsofties maintaining the compiler, and that, implicitly, you're an idiot. This is pretty typical flamewar insult, and of course doesn't mean you are an idiot -- the fact that you couldn't even comprehend that grade-school level insult, OTOH, does.

    69. Re:c# what a lousy name by Anonymous Coward · · Score: 0

      Actually I did, I was playing dumb. Too bad you were too focused on calling other idiots to call him out on his stupidity directly instead of replying to me.

    70. Re:c# what a lousy name by vux984 · · Score: 1

      Yes, it is deliberate ignorance.

      If you don't use it why would you know what it stands for.

      Its one thing not to know what it stands for the first time you see it, and its entirely reasonable to guess c-hash.

      But if you start having conversations about c-hash, you'll pretty rapidly run into someone who knows what its called, and they'll let you know its c-sharp.

      After that, calling it c-hash is willful ignorance.

      It's entirely possible to do a lot of programming and never use it.

      Sure and its entirely possible to a lot of eating and only run into words like ganache, coulis, shitake, edamame, crimini, filet mignon, gyoza, pad kee mao,... and if you asked 100 people, you'd likely get a bunch that didn't know how to pronounce some of those.

      But there's no "in my neck of the words we pronounce edamame where it rhymes with 'said-its-lame' and where mignon rhymes with 'doggone'.

      There are people who don't know how its pronounced, and that might persist a long time if they never hear it spoken. But if they start wandering around talking about it they will run into lots of people who do know how its pronounced, and they will hear the correct pronunciation.

      So while I'm fine with the idea that there are programmers out there who have only seen c# listed on job postings or something... if people are wandering around having conversations about c-hash, odds are they've been corrected, and have chosen to keep calling it c-hash anyway.

      That's willful ignorance.

    71. Re:c# what a lousy name by Anonymous Coward · · Score: 0

      It must be, he doesn't know that the correct subunit of a arborial zone is called a "neck".

      Probably a nigger.

    72. Re:c# what a lousy name by GoatCheez · · Score: 1

      Object reference not set to an instance of an object.

    73. Re:c# what a lousy name by similar_name · · Score: 1

      You're assuming a lot though. A lot of self taught programmers wouldn't necessarily know the correct pronunciation. You're assuming he's talked to other people who knew the correct pronunciation. People don't know what they don't know and it doesn't mean it's deliberate. What's obvious to you may not be to others.

      I hear some people say S Q L and others say SEQUEL. Is saying S Q L deliberate ignorance? How about GNU. I've met people who treat the G as silent and say new instead of ga new. And back in the day a lot of geeks pronounced Linux as Lie Nux. It's all in what you've heard, if you've heard it all and if what you've heard is correct.

      It seems to be a common enough occurrence with many words and technical terms to indicate more than just deliberate ignorance. But if your convinced it is deliberate ignorance I'm unlikely to change your mind ;)

    74. Re:c# what a lousy name by Anonymous Coward · · Score: 0

      But there's no "in my neck of the words we pronounce edamame where it rhymes with 'said-its-lame' and where mignon rhymes with 'doggone'.

      Apparently you've never been to Miami, Oklahoma. It's pronounced Miama in case you're wondering.

    75. Re:c# what a lousy name by vux984 · · Score: 1

      A lot of self taught programmers wouldn't necessarily know the correct pronunciation.

      Because they went on the web and looked at c-hash tutorials on c-hash forums?

      You know... c-hash forums like

      csharp-station.com
      csharpfriends.com
      c-sharpcorner.com

      and surely they never went to:

      social.msdn.microsoft.com/forums/en-US/category/visualcsharp

      And the article this very slashdot story was attached to:
      Android Ported to C#
      http://blog.xamarin.com/2012/05/01/android-in-c-sharp/

      Really, you would pretty much have to have your head up your own ass not to notice it.

      Your other examples are minor variations in how to pronounce the same word ... how hard should the g be in gnu, how soft should the i be in linux... these are distinctions of accent. Linus is americanized to Lie-nus... so Lie-nux is an americanization of the finnish Linus (Lee-nus) and his Lee-nux.

      That applies to Ubuntu as well... I frequently hear it called you-bun-too, which is a pretty reasonable americanization of the native oo-boon-too. I'm fine with either in that case too.

      And as for SQL both variations are correct. IBM originally developed Structured English Query Language (SEQUEL)... eventually it was shortened to just (Structured Query Language) SQL but the sequel pronunciation stuck. But there is also nothing wrong with enunciating the SQL acronym as ess-que-ell.

      Calling C# C-hash after you've been corrected is like someone looking at the X.org logo, and then insisting on calling it "greater than less than" even after being told its just X.

    76. Re:c# what a lousy name by Trogre · · Score: 0

      No, it's because these languages and frameworks coming out of Microsoft deserve suspicion at best, and in most cases, nothing but contempt. If I was actually using C# in day-to-day life I would use the given name, but I don't and have no intention of doing so. You shouldn't either.

      Remember, this is the company whose sole driving force is to push its bread-and-butter products (Windows and Office) at the expense of all competition, and keep you dependent on these products. No matter how many worthless "promises" and "pledges" have been issued by slippery lawyers. If C# works for you on a non-windows platform for now, great for you, but don't expect it to in ten years.

      That is why I call this language a hash. Yes, they're trying to be clever with a musical pun, but 'sharp' is giving Microsoft supporters more credit than I think they deserve. In ASCII a sharp (#) is indistinguishable from a hash (#), so you'll forgive me if I choose to be a bit derogatory and use the latter.

      --
      "Nine times out of ten, starting a fire is not the best way to solve the problem." - my wife
    77. Re:c# what a lousy name by Trogre · · Score: 1

      Yes, just like pronouncing "Arkansas" as "ar-kin-saw", "Internet" as "enner-nat" and, the worst offence of all, "solder" rhyming with "fodder".

      --
      "Nine times out of ten, starting a fire is not the best way to solve the problem." - my wife
    78. Re:c# what a lousy name by similar_name · · Score: 1

      Calling C# C-hash after you've been corrected is like someone looking at the X.org logo, and then insisting on calling it "greater than less than" even after being told its just X.

      That's really the area I'm disagreeing with. You're assuming he has been corrected. Maybe now he knows but up until now you just can't say. It's very common for a circle of people to say something wrong (this why people don't understand that common sense is only common to your social group and don't get why people outside of their social group seem to lack it). It seems very obvious to you because you know what it's supposed to be. Even when being self taught the pronunciation doesn't always come up. You can look to see how to do something in C# and get the answer without anyone mentioning the pronunciation. It's trivial.

      Go to a small town (aka 'neck of the woods') and see how many things are mispronounced. It's not a matter of deliberate ignorance just plain ignorance. Not in an offensive way, just a matter of not knowing. On top of everything else the original comment may have been half in jest and we are wasting both of our time at this point. I don't know whether it is deliberate or not I'm just not making the assumption that it is and recognize that there are plenty of reasons for a mispronunciation to occur and plenty of reasons for it not to be corrected. I would be surprised if there weren't things that you and I take for granted that are just wrong and we don't know any better because you don't know what you don't know.

      Now if he had actually made an argument that the correct way was c hash that might be deliberate ignorance but he merely stated that in his neck of the words they say it one way. That's human nature and occurs all the time. Maybe I'm more forgiving because 99% of people say my last name wrong even though it's pronounced exactly how it's spelled. But I can see you are clearly right and will admit that I'm wrong.

    79. Re:c# what a lousy name by Trogre · · Score: 1

      See this comment for an explanation.

      --
      "Nine times out of ten, starting a fire is not the best way to solve the problem." - my wife
    80. Re:c# what a lousy name by Anonymous Coward · · Score: 0

      By not being a 100% clone. C# is ruled by pragmatists, Java isn't.

    81. Re:c# what a lousy name by TangoMargarine · · Score: 1

      If you look at the marketing, they do actually use a sharp sign; the slant of the crossbars is different. It's just that there's no sharp sign on your average keyboard...

      --
      Unity? Screw that: XFCE. Slashdot Beta? Screw that: SoylentNews. Australis? Screw that: Pale Moon. UX developers DIAF
  4. Re:Android by Goaway · · Score: 5, Informative

    1. The Microsoft patent grant for C# is more permissive than the patent grant for Java.
    2. Oracle is suing Google over Java right now..

  5. Re:Isn't Mono dead? by PlastikMissle · · Score: 1

    Mono is dead? Since when?

  6. Re:Isn't Mono dead? by Anonymous Coward · · Score: 0

    mono and mono programs was removed from ubuntu 12.04

  7. Re:Isn't Mono dead? by Anonymous Coward · · Score: 0

    Xamarin is now behing mono and more focused than ever before now that they are independent from their former bosses at Novell.

  8. Re:Android by TheRaven64 · · Score: 2, Funny

    Maybe if Google ships this Microsoft and Oracle will fight to the death over who gets to sue Google...

    --
    I am TheRaven on Soylent News
  9. Java to C# is easy by MrEricSir · · Score: 1

    Well, relatively easy, since at a bytecode level Java is a subset of CLR.

    Now just try going from C# to Java.

    --
    There's no -1 for "I don't get it."
    1. Re:Java to C# is easy by nonicknameavailable · · Score: 1

      linux doesn't need windows underneath to work

      --
      Mendacem Memorem Esse Oportet
    2. Re:Java to C# is easy by zill · · Score: 0

      Yeah, but I don't see why'd you use Mono on Linux when you have to run Windows underneath Linux anyway.

      What do you mean by "you have to run Windows underneath Linux anyway"? Are you talking about the Microsoft compatibility stack? I was under the impression that Mono was fully FOSS and not reliant on Microsoft code.

      I agree with your overall point though; there are dozens of much better languages to develop in on Linux, none of which share C#'s patent uncertainties and dark origins.

    3. Re:Java to C# is easy by Anonymous Coward · · Score: 0

      Wow, Slashdot comments are reaching a new low.

    4. Re:Java to C# is easy by Anonymous Coward · · Score: 0

      I was under the impression that Mono was fully FOSS and not reliant on Microsoft code.

      It is, you just got trolled.

    5. Re:Java to C# is easy by armanox · · Score: 1

      I think you need to explain your "Windows underneath Linux" remark. There is no Windows underneath Linux, and never was. And our wheel is less reinvented then Microsoft's...

      --
      I'm starting to think GNU is the problem with "GNU/Linux" these days.
    6. Re:Java to C# is easy by Anonymous Coward · · Score: 0

      Loverock, is that you?

  10. Re:Android by Anonymous Coward · · Score: 0

    mono eats up batteries fast

  11. Managed code to become irrelevant? by IGnatius+T+Foobar · · Score: 1

    This may not matter. If the litigious bastards at Oracle have their way, future Android builds will migrate to "all native code" just like on the iPhone and other non-vm based devices. They'll just sadly set aside Dalvik and declare ARM to be the official ISA of Android phones, or do some crazy thing where applications are compiled (perhaps in the cloud?) before installation to a device. I don't see C#/CLR/Mono becoming part of the Android stack, not now, not ever. Google wouldn't abandon one third-party managed code environment only to embrace another. Perhaps what Google should do is settle the case: "We will pay you a royalty for every Android if you make Microsoft go away."

    --
    Tired of FB/Google censorship? Visit UNCENSORED!
    1. Re:Managed code to become irrelevant? by mobby_6kl · · Score: 0

      This may not matter. If the litigious bastards at Oracle have their way, future Android builds will migrate to "all native code" just like on the iPhone and other non-vm based devices.

      You say that like it's a bad thing. I hate Oracle too, but seriously, fuck Java, Oracle can keep it for themselves.

    2. Re:Managed code to become irrelevant? by modmans2ndcoming · · Score: 1

      If they did that, then Google should pick a very nice language and build a compiler for their platform.

    3. Re:Managed code to become irrelevant? by Anonymous Coward · · Score: 0

      Looking at Oracle's arguments (for the copyright part of their case, anyway), most of what they're complaining about stems from the use of Java the language, and a re-implementation of a subset of Java's APIs. It wouldn't matter if they recompiled everything to native ARM code offline - you'd still be using the same APIs, and you'd still be using Java the language.

      They also have complaints about Dalvik (patents, as far as I can tell), but dumping Dalvik for another VM, or for native code only, wouldn't solve the problem.

    4. Re:Managed code to become irrelevant? by Eskarel · · Score: 1

      And in this market, you really think Google could actually afford to do that? To have the next android update remove Davlik and break every non native app? To fragment their app market into "old devices" and "new devices"? Not to mention reducing their developer pool to people who can actually write native Linux binaries.

      If it was as easy as "sadly setting aside" they'd have done it by now and saved themselves the cost of a lawsuit.

    5. Re:Managed code to become irrelevant? by Anonymous Coward · · Score: 0

      They have - it's called Go.

    6. Re:Managed code to become irrelevant? by gbjbaanb · · Score: 1

      ah, but if its a case of paying royalties they can begin to deprecate Java on Android... wait a couple of iterations and then drop it completely. In the meantime they will have to pay Oracle per device but eventually they'll become royalty-free.

      Maybe they could offer a Java to x converter, and hopefully make x a native code platform and everything will run much faster (even than Xamarin's claims that their C# port runs faster than Java).

      If you don't start, you never get anywhere.

  12. Re:Android by zill · · Score: 4, Funny

    The order of the battle has already been decided. Oracle is the mini boss and Microsoft is the last boss.

  13. Re:Isn't Mono dead? by nurb432 · · Score: 1

    Didnt know it was dead, but i do agree why do this when java works fine for this 'use case' ?

    --
    ---- Booth was a patriot ----
  14. Re:Isn't Mono dead? by PlastikMissle · · Score: 1

    From the README file: "XobotOS is a Xamarin research project that explored porting Android 4.0 from Java/Dalvik to C# to explore the performance and memory footprint benefits of C#."

  15. RUN FOR YOUR LIVES by dominious · · Score: 1, Offtopic

    I'm currently trying to learn the WPF in C# for a project and it just makes my life difficult! The combination of MVC, XML, LINQ and routed events just broke my ability to do real programming. You will really find yourself spend hours trying to do simple tasks and end up hacking up some weird solutions that will make your project into spaghetti code (talking about large projects at least).

    1. Re:RUN FOR YOUR LIVES by Qwertie · · Score: 2

      That's not really on-topic. Yes, WPF makes life difficult, but Mono for Android doesn't even support WPF. On Android, you'll be using the same widgets in C# as Java developers do.

    2. Re:RUN FOR YOUR LIVES by Anonymous Coward · · Score: 0

      Don't confuse the clusterfuck that is WPF with the awesomeness of C#.

    3. Re:RUN FOR YOUR LIVES by Anonymous Coward · · Score: 0

      WPF and MVC in the same project

      Found your problem bro. No idea how you managed to bring those two together, but I'm willing to bet you are just throwing buzzwords together in a shitty attempt to troll. Well played.

    4. Re:RUN FOR YOUR LIVES by Richard_at_work · · Score: 1, Insightful

      Sounds like you are doing it wrong then, because there's a whole ecosystem of .Net developers out there who seem to get things done just fine...

    5. Re:RUN FOR YOUR LIVES by FrootLoops · · Score: 3, Funny

      I agree this is off-topic, but I really like WPF. It has a steep learning curve and a lot of quirks, but data binding, templates, and the layout system save a lot of time and make things look nice. The people complaining about WPF in your link often called themselves old; maybe that's the real problem (I'm quite young).

    6. Re:RUN FOR YOUR LIVES by PRMan · · Score: 1

      MVC makes things way faster and so does LINQ when used judiciously. WPF/XAML does make things difficult at times.

      --
      Peter predicted that you would "deliberately forget" creation 2000 years ago...
    7. Re:RUN FOR YOUR LIVES by gbjbaanb · · Score: 1

      you think that's bad... the current design pattern du jour for WPF is the MVVM pattern - that's Model, View, Viewmodel. (like they couldn't even come up with a good name... model, view. umm, err. I know! ViewModel!)

      You know you got problems when the creator of the pattern says that the overhead involved is too great for simple projects, and the complexity is too great for large projects, and in any case you have to be really careful or you end up using massive amounts of memory in the middle bit.

      So, its no good for small, large or intermediate projects then... This is Microsoft's state of the art folks and it's currently the only pattern worth knowing if you're going for a WPF/C# job. It amazes me that so many people blindly follow whatever hype comes out of Redmond sometimes.

    8. Re:RUN FOR YOUR LIVES by SageMusings · · Score: 0

      Except we cannot make 1.7 oz burgers like those PHP studs are capable of crafting.

      --
      -- Posted from my parent's basement
    9. Re:RUN FOR YOUR LIVES by Lunix+Nutcase · · Score: 0

      Pshaw, you're still using MVVM? All the cool kids already switched to Model, View, ViewModel and ViewModelMetaData (MVVMVMMD, or MV3)

    10. Re:RUN FOR YOUR LIVES by Anonymous Coward · · Score: 0

      That's because MVC is garbage.

    11. Re:RUN FOR YOUR LIVES by Anonymous Coward · · Score: 0

      That's why I avoid MSDN magazine like the plague. It's full of somewhat interesting concepts with no practical use in a LOB application. Lightswitch is as much a development platform as Access is a database.

    12. Re:RUN FOR YOUR LIVES by Anonymous Coward · · Score: 0

      I was certain that you were joking....

      And then I checked the link

    13. Re:RUN FOR YOUR LIVES by modmans2ndcoming · · Score: 1

      you realize if you find yourself hacking a weird solution, then you are likely not using the available tools correctly, and likely building the software against the grain of the framework.

    14. Re:RUN FOR YOUR LIVES by modmans2ndcoming · · Score: 1

      MVVM is so damn close to MVC that if you know MVC it is not too hard to understand MVVM....besides that, you should probably get in the habit of getting it working, then refactoring it into the pattern...it is a lot faster.

    15. Re:RUN FOR YOUR LIVES by modmans2ndcoming · · Score: 2

      There are shops out there that actual utilize the principles of software engineering to get the job done. You get much better, more reusable software packages with a whole lot fewer bugs and those bugs are discovered at a much earlier point in the development life cycle....Software patterns are part of that....avoiding fads is one thing...not all patterns are fads....most patterns are not designed to be a development template, but a refactoring template to allow ease of maintenance.

    16. Re:RUN FOR YOUR LIVES by shutdown+-p+now · · Score: 1

      The design pattern for WPF apps is often MVVM, but WPF itself does not impose it on you, and its data binding is flexible enough to handle direct binding to a well written model (with custom converters, and custom markup extensions for brevity) - which is what I personally recommend.

    17. Re:RUN FOR YOUR LIVES by Anonymous Coward · · Score: 0

      Actually, if you know what you're doing, you can do simple and complex tasks really fast.

    18. Re:RUN FOR YOUR LIVES by Anonymous Coward · · Score: 0

      Not really true, take a look at Caliburn Micro, easy to use for a project of any size. People are making this stuff seem way more difficult that it is.

    19. Re:RUN FOR YOUR LIVES by terjeber · · Score: 1

      Sorry, you and the blogger you refer to are just stuck in a mid-1990s programming model, one that WPF actively discourages by being a pain in the rear to work with if you use said programming model.

      WPF allows for a very clean separation of concerns, it actively encourages good design patterns such as (some would argue against) MVP, MVVM etc. Yes, there is a learning curve, but for a team developing apps that are to stay alive for years and years, WPF makes all other heavy client programming seem like it is rooted in the late crestateous. Is it perfect? No way, but it is improving, particularly now that tooling is making things easier (with the ability to debug bindings in VS2 for example.

      Spend some time with Ruby, do some Rails or Sinatra stuff. Go through an entire project where you write your tests before your code, and then you will see what MS is doing with WPF.

      Think about it, you can test every aspect of your GUI in code. Easily. You can click buttons, make sure the correct things show up/vanish/are enabled/disabled etc without ever showing the GUI at all.

      Here is a tip, if you are writing C# code in your WPF project you are doing it wrong. If you write code-behind, you are doing it wrong. If you do any GUI related work outside of your View Model, you are probably doing it wrong (*)

      *) Unless you code the entire GUI in C#, which is also easy with WPF, but you should only create your GUI components in code, all GUI manipulation should still happen in your View Model. In a separate projet.

    20. Re:RUN FOR YOUR LIVES by rdnetto · · Score: 1

      I tried using WPF in my late teens, and I gave up after writing 2 or 3 applications. The reason was performance: where a WinForms app starts (virtually) instantaneously, a blank WPF form took about half a second, which is *not* a trivial delay in terms of responsiveness. I later found Qt when doing some C++ development, which achieves the same separation of code and (XML-based) GUI, with none of the performance issues. Frankly, Microsoft would have done better to fork it (it is open source, after all) and implement exceptions properly. (Important function calls like connecting signals to slots (events and event handlers in .NET) should not fail silently and only output messages to the console).

      --
      Most human behaviour can be explained in terms of identity.
    21. Re:RUN FOR YOUR LIVES by FrootLoops · · Score: 1

      Yes, WPF apps take a long time to start up the first time. It must be some sort of library overhead since if you start the same app (or any other WPF app) after the first time it's near-instant. Other than that, I haven't hit any irreconcilable speed issues myself; virtualizing containers have been enough. I've never used Qt though I've heard good things as a rule.

    22. Re:RUN FOR YOUR LIVES by rdnetto · · Score: 1

      I still have some simple apps I wrote back then, and timing one just now it took a full 2 seconds to start, and that was constant no matter how many times I ran it.
      That said, they did target .NET 3.0, so it's likely that they fixed that in one of the later versions with some kind of caching.

      --
      Most human behaviour can be explained in terms of identity.
    23. Re:RUN FOR YOUR LIVES by FrootLoops · · Score: 1

      Ah sure, my experience is 4.0.

  16. double threat = safety by rst123 · · Score: 1

    game plan: Oracle's copyright lawyers fight Microsoft's patent lawyers over who gets to destroy them first. lawyers kill each other and the whole world wins?

  17. WAITING FOR MONO FOR WINDOWS PHONE MYSELF !! by Anonymous Coward · · Score: 0

    Then, when that happens, I can do anything anywhere and everywhere, and not just run, either !!

    Next wish: GoSub for Forth !! Now we be cookin !!

  18. Re:Android by Anonymous Coward · · Score: 4, Insightful

    Microsoft is a bigger, more evil giant than even Oracle.

    I'm not entirely sure you've ever dealt with Oracle...

  19. Unimpressed by diegocg · · Score: 2

    It seems like they are "translating" the Java code to C#, then compiling it with Mono. I had expected support for running Android bytecode, or something like that...

    1. Re:Unimpressed by Lunix+Nutcase · · Score: 0

      It seems like they are "translating" the Java code to C#, then compiling it with Mono.

      Yes, that is what "ported to C#" means.

    2. Re:Unimpressed by binarylarry · · Score: 0

      It would probably be more difficult to run Dalvik bytecode on Mono. .NET/Mono is just a direct rip off of Java, so running Java bytecode is pretty trivial (IKVM couldn't have been very difficult to write).

      Unlike Java (and thus it's clones), Dalvik is not stack based, it's register based.

      --
      Mod me down, my New Earth Global Warmingist friends!
    3. Re:Unimpressed by Anonymous Coward · · Score: 0

      Automated Translation of Java to C# compiled under mono? Sounds like a rake used to sodomize Oracle with.

    4. Re:Unimpressed by Anonymous Coward · · Score: 0

      Also, the C# version runs 8x faster than the Java version.

    5. Re:Unimpressed by SplashMyBandit · · Score: 1

      No. It is faster than the "Dalvik" version. The Java Virtual Machine is very very fast these days. Here's some history for you, when .NET was first release Microsogft expilicitly prohibited benchmarking it against Java because the JVM was much faster. These days the current JVMs cream the performance of the JVMs at the time .NET was released. Now, I'm sure that .NET has gotten much faster, but it turns out the Sun engineers (and now Oracle and the Open Source community [which also includes other big corps contributing to OpenJDK]) know a thing or two about compiler optimization. I would be very surprised it the JVM and .NET weren't comparable on speed terms for the execution of a large program (micro-benchmarks and contrived tests are always misleading), although I'd still put my money on the OpenJDK JVM to have a little edge (especially on any platform that wasn't Windows, like the tens of thousands of Linux boxen Google uses to power all its stuff).

    6. Re:Unimpressed by khipu · · Score: 1

      The JVM may be faster than the CLR on microbenchmarks, but that doesn't mean it's faster on real code, since the JVM has less performance-relevant functionality than the CLR (e.g., generics, arrays, pointers, etc.).

      Imagine, in the limit, you could come up with a really simple VM with just two or three instructions that performed spectacularly well on a very restricted set of microbenchmarks, but it wouldn't be any good for writing large programs in.

    7. Re:Unimpressed by Robert+Zenz · · Score: 1

      ...since the JVM has less performance-relevant functionality than the CLR (e.g., generics, arrays, pointers, etc.).

      Did I get this right? You say JVM doesn't have arrays? ... I'm sure I misunderstood you, so care to explain what exactly you mean?

    8. Re:Unimpressed by SplashMyBandit · · Score: 1

      Actually, I was saying the opposite - microbenchmarks are bad, only trust programs that are similar to those you want to run yourself. In this case I would say the JVM and CLR are pretty close (although I'd be surprised if the JVM wasn't just a little better, even now JDK 7u4 has some significant improvements). I was trying to point out that the x8 times faster figure for the C# version was wrong because it compared Dalvik (not the JVM) and was probably about some micro-benchmark. I also wonder whether the tests were on the exact same hardware (Android devices are fairly limited compared to PCs, and are optimised for different problems).

    9. Re:Unimpressed by benjymouse · · Score: 1

      I'm not the GP but he may have been referring to

      Generics: C#/.NET has reified generics which are validated at class load time and (unlike Java) does not require typecasts at runtime. That's performance advantage every time a generic method is used. Furthermore, generics can be realized using primitive/value types which will. That will add up to a performance advantage when using generics with primitive/value type parameters because of 1) one level of indirection saved and 2) less pressure on the garbage collector.

      Arrays: C# has true rectangular arrays in addition to arrays-of-arrays. Java only has arrays-of-arrays. True rectangular arrays will in *some* cases with high random access usage offer a performance advantage over the array-of-arrays model. In other cases rectangular arrays will be slower, so the developer has to consider pros/cons. As with generics, arrays support *value types* - i.e. arrays of simple (struct) types which are allocated inline with the array rather than the arrays containing references to class instances. The latter incurs a performance overhead when dereferencing array items compared to inlined items. Depending on the size of the structs and the usage patterns (how much they are copied around) it may allow for performance gains as well.

      Pointers: Unsafe code directly manipulating pointers (pointer arithmetic). Can allow substantial performance gains at the expence of type safety.

      I will add myself:

      P/Invoke - especially when creating a layer directly on top of an OS which will frequently need to use that OS - allows for a much more direct path to system functions. P/Invoke. Much less glue code and fewer rituals are needed when invoking base platform functions.

      --
      Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
    10. Re:Unimpressed by Anonymous Coward · · Score: 0

      The bytecode isn't the problem -- they're already not using Oracle's technology for the VM. The reason Oracle is suing is for the use of the Java language itself. All they have to do is translate all Java into another language and they should be fine. In this case, the Mono guys helped out by translating it into C#.

      dom

    11. Re:Unimpressed by khipu · · Score: 1

      Benjymouse explained it very well. I was referring to multidimensional arrays, which are essential to a lot of scientific work. There is a long list of performance-relevant functionality in which the JVM is deficient relative to other languages.

    12. Re:Unimpressed by complete+loony · · Score: 1

      What's the dalvik vm running again? It doesn't run java bytecode either.

      --
      09F91102 no, 455FE104 nope, F190A1E8 uh-uh, 7A5F8A09 that's not it, C87294CE no. Ah! 452F6E403CDF10714E41DFAA257D313F.
  20. Re:Android by rabtech · · Score: 5, Interesting

    I can already tell you how that will turn out: Microsoft won't be suing anyone.

    C# and the core runtime are ECMA standards with strong patent promises, meaning Microsoft explicitly gives everyone in the world the right to implement their own C# compiler and version of the System.* libraries.

    Their open-ness with regard to the CLR and C# is far and away better than Sun did with Java. They even contributed DLR code to mono itself.

    Not to mention how much better the language is... With real co/contra variant generics (type erasure? GTFU), first-class functions with delegates, closures, lambda expressions, and LINQ. Plus the new async/await stuff. On and type inference just makes things easier on a day to day coding basis.

    Meanwhile Java has spent the last 10 years standing still. They couldn't even get closures into the latest release and from my understanding of the docs they aren't going to do true first-class closures anyway. It's a freakin joke of a language at this point.

    --
    Natural != (nontoxic || beneficial)
  21. Re:Android by gman003 · · Score: 4, Insightful

    Bigger? Perhaps. More evil? Not a chance in hell.

  22. Re:Isn't Mono dead? by colinrichardday · · Score: 1

    No. Ubuntu 12.04 includes a lot of mono packages, including mono runtime.

  23. Re:Android by Anonymous Coward · · Score: 1

    Doesn't matter. Microsoft is a bigger, more evil giant than even Oracle. They will always, always try to screw you over.

    Oracle is perhaps the most evil of all the large software companies.

  24. Re:Android by JAlexoi · · Score: 3, Interesting

    1. The Microsoft patent grant for C# is more permissive than the patent grant for Java.

    Aaa.... No it's not. There is a defensive termination clause(I will be corrected if I'm wrong...) in Microsoft's grant, but not in Oracle's.

  25. Re:Android by nicholas22 · · Score: 1, Redundant

    Freaking joke of a language? It's the number 1 or 2 language in use today (along with C) if you consult language ranking sources... The reason it stood still for a few years is due to Sun going under. But we can't complain. Sun created Java and languages directly inspired by it (such as C#) owe a lot to them.

  26. Re:Isn't Mono dead? by randy+of+the+redwood · · Score: 2
    Mono (Xamarin) is now more about a way to write mobile apps once, and have them run on both iPhone and Android with minimal porting. If you are a .NET shop (my company is), this is a good way to get efficient use of programmers rather than forcing them to context switch between C#, objective C and java. We have been very happy with the performance of several mobile apps developed on this platform, and have plans for more.

    There doesn't seem to be a perfect option to write cross platform, and this does require some porting, but it seemed the best option when we evaluated the alternatives last year.

    --
    The sun is the same in a relative way, but you are shorter of breath and one day closer to death
  27. Re:Android by Bobfrankly1 · · Score: 5, Funny

    Microsoft is a bigger, more evil giant than even Oracle.

    I'm not entirely sure you've ever dealt with Oracle...

    Oracle vs Google is like "do no good" vs "do no evil".

  28. COBOL port by Anonymous Coward · · Score: 1

    I'm waiting for the COBOL port...

    1. Re:COBOL port by SQLGuru · · Score: 1

      No machine has enough RAM to hold the source code.....it's too wordy.

    2. Re:COBOL port by multicoregeneral · · Score: 1

      There are dozens of cobol ports. It's open source and everything http://cobolforgcc.sourceforge.net/

      --
      This signature intentionally left blank.
  29. Re:Android by jd2112 · · Score: 4, Insightful

    Having dealt with both I can say Oracle is much more evil than Microsoft.

    --
    Any insufficiently advanced magic is indistinguishable from technology.
  30. Trolling tips by MrEricSir · · Score: 1

    Look, if you're going to troll that's fine. But at least make your trolling remarks internally consistent; first you complain that Mono requires Windows to run, then you claim it's unnecessary to create a fully FOSS CLR runtime.

    Well, Windows is obviously not FOSS, so your two claims are mutually exclusive.

    Or to put it another way: lern2trol.

    --
    There's no -1 for "I don't get it."
    1. Re:Trolling tips by Anonymous Coward · · Score: 0

      lurn2lurn2! It's a u, not an e.

  31. Re:Android by svick · · Score: 1

    I don't know about you, but at this point, I consider a general-purpose language without closures to be a joke. In my experience, they are very useful and I would find it hard to work on a large project without them.

    Even C++ has closures now.

  32. Re:Isn't Mono dead? by gbjbaanb · · Score: 1

    They removed mono from Ubuntu 12.04, if you want Tomboy (I think that's the only package it was added for) you'll have to download it and its dependencies yourself.

  33. Re:Android by stephanruby · · Score: 3, Interesting

    1. The Microsoft patent grant for C# is more permissive than the patent grant for Java.

    Are you a lawyer? I've been reading the promise Microsoft made, and it's all gibberish to me. And I doubt that even the original lawyer who drafted it would actually understand what he had written.

  34. Re:Android by JonySuede · · Score: 3, Interesting

    What are closures main advantage over anonymous class referring to final identifiers ?
    Verbosity ?

    --
    Jehovah be praised, Oracle was not selected
  35. Re:Isn't Mono dead? by bob')DROP+TABLE+user · · Score: 1

    Good point, I hear ubuntu is the only Linux distribution out there now too. Did they also remove the ability to install packages in 12.04 too?

  36. Re:Isn't Mono dead? by colinrichardday · · Score: 1

    I searched mono on synaptic. There are a lot of mono packages listed. The change logs show activity from April 4th, 2012, and the person listed as making that change has an ubuntu.com email address. The mono packages aren't on the CD, but the CD has only 28 packages.

  37. Re:Isn't Mono dead? by armanox · · Score: 1

    LOL. Mono was removed from the default install on Fedora quite a while ago (I think around F13?), and is not in the default install on RHEL6.

    --
    I'm starting to think GNU is the problem with "GNU/Linux" these days.
  38. Re:Isn't Mono dead? by Anonymous Coward · · Score: 0

    Apparently Java is well on its way.

  39. Re:Isn't Mono dead? by binarylarry · · Score: 1

    Mono was so valuable that Novell literally put it in the garbage and let Miguel and co run off with it.

    --
    Mod me down, my New Earth Global Warmingist friends!
  40. Re:Android by a13coach · · Score: 1


    Have to go with the above posts. Oracle > Microsoft when it comes to evil giants.

  41. Re:Android by svick · · Score: 1

    I must admit that I don't use Java, so I wasn't aware that you can refer to final local variables from anonymous classes.

    But yeah, verbosity is a big deal. If LINQ used anonymous classes instead of lambdas, it would be almost unusable (and unreadable). A lambda that can be written in about a dozen characters in C# requires five lines when written as a Java anonymous class.

    C# 2.0 had anonymous methods, which were already less verbose than anonymous classes. Then C# 3.0 introduced lambdas, with the main difference being that they are even less verbose (big part of that is thanks to type inference, which means you don't have to specify the types of the parameters of the lambda).

    And I think the fact that you can use only final variables is quite limiting too.

  42. Re:Isn't Mono dead? by ChunderDownunder · · Score: 1

    Seems like a lot of work to translate Java to C# for 'performance'.

    I would've first attempted to target IKVM.NET. It already runs Java bytecode on mono.

    There are performance and memory footprint benefits of C# ? Benchmarks?

  43. Re:Android by hobarrera · · Score: 3, Insightful

    Java has something C# lacks: a good IDE.
    Java has eclipse.
    C# has ... ? Monodevelop? Yeah right. Visual Studio. LOL!

  44. Re:Android by devent · · Score: 2

    2. Oracle is suing Google over Java right now..

    I am following the Oracle suite very much, because I'm myself a Java developer (and I searched long [Python, C#, C, C++, Php, Ruby] but I can't find any other language that suites my needs better). So this statement is just wrong, because Oracle is not suing over Java, but the use of the Java API and the structure, sequence and organization (SSO).

    For me, the whole suite is just a stupid attempt by Oracle to get a piece of the mobile pie from Google and such a suite can only happening in the USA with it's more then confusing laws about copyright and patent laws which can patent everything.

    Such suite can be easily happening with Microsoft over C#'s API or SSO, they don't hire 100s of layers for nothing.

    --
    http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
  45. Re:Isn't Mono dead? by ChunderDownunder · · Score: 1

    Answering my own question, I read the article.

    It compares the performance of Dalvik to Mono. Java's Hotspot has been shown in the past to beat dalvik on most performance benchmarks, so if the Oracle suit ruled in their favour, Android might get a real JVM. :)

  46. Re:Isn't Mono dead? by modmans2ndcoming · · Score: 1

    What is a CD? Oh... you mean those round disks that Linux used to come on before net installers?

  47. Re:Isn't Mono dead? by modmans2ndcoming · · Score: 1

    Because C# is awesome, Oracle and Larry are douche bags, and Java is a sucky security risk vector?

  48. Re:Android by devent · · Score: 1

    Maybe the language (C#) is better (with is a personal opinion anyway, for example I don't like C# with the class/struct distinction, the unsafe delegates, the clumsy syntax for properties, the two collection frameworks [one with generics, one without] and many more issues)

    But where it counts, Java is clearly the better choice, it's not for nothing the #1 used language now.

    Where it counts is the Open Source Community, the build tools (is there any equivalent of maven for C#?), the libraries, the IDEs. There is C# still the underdog.

    --
    http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
  49. Re:Android by Goaway · · Score: 1

    Well, the thing is, this is actually happening with Oracle right now. It has not happened with C#.

    So why is it that C# is the "trap" here, but not Java?

  50. I'll wait for the Pascal++ by Anonymous Coward · · Score: 0

    Android on Pascal++

  51. Re:Android by Goaway · · Score: 4, Interesting

    So the fact that Oracle has sued someone over their language while Microsoft hasn't doesn't matter, it's still Microsoft that is more evil.

    I mean, what exactly does matter, then?

  52. Neat, but too much hype by Anonymous Coward · · Score: 0

    It's neat that Xamarin used machine translation to port Android, but the hype is silly. There have been several Java -> C# translators out there. Microsoft used to provide one. IBM iLog open sourced their translator. I know it's much more fun to re-invent shit and hype it like a crazy car salesman, but Xamarin is smoking crack. There's nothing new here. Over the last 15 years, there have been a few products that could translate C/C++ to Java. Glad to see Xamarin still has NIH syndrome.

  53. Re:Android by Anonymous Coward · · Score: 0

    I've never been terribly impressed with eclipse. It's good, but a bit short of awesome. Resharper, on the other hand...that's the bee's knees.

  54. Re:Android by Heir+Of+The+Mess · · Score: 3, Informative

    Java has something C# lacks: a good IDE. Java has eclipse.

    Wow, where did you get that opinion from? Using a beta version of VS2005? VS2001?. The team I'm in right now is coding Java for Android in NetBeans because Eclipse sucked hard. But coding in C# in Visual Studio 2008/2010 is way better, way more productive. Hell even coding Javascript / HTML in VS2010 is better than this.

    --
    Australian running a company that does C# / C++ / Java / SQL / Python / Mathematica
  55. Thermonuclear on Android. by landswipe · · Score: 1

    Wasn't Larry Ellison a good friend of Steve Jobs? Is it possible that the whole Oracle Java thing is simply 'Steve Job's going thermonuclear' on Google/Android?

  56. Re:Android by Anonymous Coward · · Score: 0

    Both are "Do No Good". Theres a Google rap sheet a mile long stemming from the last 4 years.

  57. Re:Android by symbolset · · Score: 1

    You're arguing that one trap is better than the other. As long as "no trap" exists as an option, that's silly.

    --
    Help stamp out iliturcy.
  58. Re:Android by Galestar · · Score: 3, Interesting

    Sorry but Visual Studio >>> Eclipse. It may be proprietary and not support the 100 languages Eclipse does, but for the languages does support, it is hands down 100 times better than Eclipse. Hate Microsoft all you want, but their developer tools have always been first class - which is why their OS had such widespread adoption (its about getting applications on your platform, not the quality of your platform itself).

    P.S. get Resharper and NUnit.

    --
    AccountKiller
  59. Re:Android by Anonymous Coward · · Score: 0

    The original lawyer can understand it, but only when drunk on mead made from the tears of babies and kittens.

  60. Re:Isn't Mono dead? by colinrichardday · · Score: 1

    Got to have something to initiate the install. I've heard of doing a net boot, but does that work over the internet (as opposed to a LAN)?

  61. Re:Android by shutdown+-p+now · · Score: 1

    C# closures can capture mutable variables as well.

    But yes, this isn't actually a big deal. Verbosity is, though. You can write code in map/filter/fold style in Java, but it'll be insanely verbose with anon inner classes - whereas C# lambdas are as compact as those in, say, Scala or Ruby (thanks to type inference).

  62. Wishing Android was all .Net by Galestar · · Score: 0

    C# is a far superior language, and I would much rather work in Visual Studio then tear my eyes out everyday dealing with Eclipse.

    --
    AccountKiller
    1. Re:Wishing Android was all .Net by SplashMyBandit · · Score: 1

      Well, if you don't like Eclipse there is always NetBeans or IntelliJ Idea or a bunch of other tools that actually suit your personal style. Visual Studio is not a bad IDE (although too buggy for my tastes), but it certainly is not the best out there.

    2. Re:Wishing Android was all .Net by Robert+Zenz · · Score: 1

      C# is a far superior language...

      I don't care for the language, it's the framework that sucks in my opinion. And the IDE, too...well, maybe I just had a bad start with that one.

    3. Re:Wishing Android was all .Net by Anonymous Coward · · Score: 0

      lol

    4. Re:Wishing Android was all .Net by Anonymous Coward · · Score: 0

      Use IntelliJ or NetBeans?

  63. Performance improvements indeed by steveha · · Score: 2, Interesting

    The chart from TFA:

    http://tirania.org/s/71de890b.png

    Whoa. Those benchmarks show Java/JVM about 7 times slower than C#/DLR. (I thought "DLR" in TFA was a typo, but it's correct. DLR stands for Dynamic Language Runtime.)

    I'm not entirely surprised. I remember reading the history of IronPython, where Jim Hugunin (the original author of Jython, which is Python running on the JVM) did some experiments with the CLR, intending to prove how sucky and lousy the CLR was; instead, he found that the CLR was faster than the JVM, and he went ahead and created IronPython to run on the CLR.

    steveha

    --
    lf(1): it's like ls(1) but sorts filenames by extension, tersely
    1. Re:Performance improvements indeed by Anonymous Coward · · Score: 0

      he found that the CLR was faster than the JVM

      Correction: he found that it was faster than CPython! Which trivially proves that it was faster than Jython on the JVM, so the above statement is correct as far as it goes.

    2. Re:Performance improvements indeed by Anonymous Coward · · Score: 0

      It's been pretty common knowledge, at least I thought, that the JVM is pretty much slow as hell and always has been for the benefit of really portable code. It's not AS noticeable now with modern hardware, but my god was it slow just a few processor generations ago.

      That's kinda always been Java's thing, supported everywhere, slow everywhere.

    3. Re:Performance improvements indeed by Anonymous Coward · · Score: 5, Informative

      That's Dalvik, NOT the JVM.

    4. Re:Performance improvements indeed by steveha · · Score: 4, Informative

      That's Dalvik, NOT the JVM.

      Whoops, you are correct. Sorry about that.

      I wish I could go back and edit the post. Oh well.

      steveha

      --
      lf(1): it's like ls(1) but sorts filenames by extension, tersely
    5. Re:Performance improvements indeed by ChunderDownunder · · Score: 1

      In the past, Java had notoriously had performance issues with dynamic languages. Java 7 features a new 'invokedynamic' bytecode to speed up implementations such as ruby and python.

      Not available on Dalvik but I doubt once Jython has integrated the necessary support that IronPython would have such a compelling performance gap against OpenJDK 7.

    6. Re:Performance improvements indeed by SplashMyBandit · · Score: 1

      Dynamic languages may have been slow in the past (personally I hate them, you can't write huge codebases in a dynamic language and get a team to understand it), but *Java* was always pretty damn fast: http://blogs.oracle.com/jag/entry/current_state_of_java_for (and that was 4 years ago, the JVM is very much faster since 1.6.0u10).

    7. Re:Performance improvements indeed by khipu · · Score: 1

      Dynamic languages may have been slow in the past (personally I hate them, you can't write huge codebases in a dynamic language and get a team to understand it),

      Whether a large codebase is easy to understand or not depends on documentation, architecture, and unit testing, not on static type checking.

      but *Java* was always pretty damn fast:

      That's because the JVM has a lot of restrictions and people only write benchmarks that conform to those restrictions. Try translating an idiomatically written modern Fortran 2008 (or C++) HPC program into Java: it's extremely hard (because Java lacks a lot of functionality), and getting anything like Fortran/C++ performance out of the Java is even harder.

    8. Re:Performance improvements indeed by Anonymous Coward · · Score: 0

      Surely to be valid, benchmark comparisons against Dalvik would need to show performance relative to power consumption?

    9. Re:Performance improvements indeed by SplashMyBandit · · Score: 1

      Actually that is the same going from any language to any other language, I translated some scientific code written in FORTRAN (mostly F77, but I'm sure you know the old saying, "You can write bad FORTRAN in any language" [including FORTRAN]) to ANSI C. There were plenty of constructs even in primitive FORTRAN that were alien in C. Lots of things weren't the same, and since it was for scientific work I needed the operations to be the same bit-for-bit (iterative multi-dimensional fitting, so any rounding errors multiply quickly, the real 'butterfly effect'). So I don't see this as a problem peculiar to Java. Hence, I see your comment as a reflection of your experience, but your are limiting your scope - all cross-language translations have this problem [even natural languages], so blaming seems a little lame/biased from a wider perspective.

      I'm afraid I still stand by my statement. Dynamically-typed languages have a flexibility that is excellent for small programs that is a hinderance for large programs, and especially large teams (many commercial developers are not as experienced or dedicated as your or I, yet they still need to be productive - this makes the "language du hour" with its wonderful new-fangled features less useful rather than more useful - which is why they don't get adopted in the Real World [and why language boffins can't grok that throwing keywords and quirky features at a language is actually a bad thing to do]). Yes, the factors you name are significant - I would also add the fact that in a strict statically typed language the ability of the compiler and linker to catch a lot of your mistakes *before you even run the program* is such an advantage for large programs (where your mental capacity is saturated with the complexities of the problem space, and trying not to focus on the minor nuances of the programming language at hand). Catching errors as you run the program is a crappy way to develop (and unfortunately, few people get religion on unit testing to the point of good coverage). I know, when I was using Perl a lot I found it convenient to bash scripts out (which was deceptive) but subtle errors wouldn't be found for hours of runtime (I was using Perl to manage the astrophysical image processing routines I'd written in C++ for huge data sets). Such errors would often be trivally caught or warned about by a strict language/compiler/linker combo.

      With regard to the performance of Java vs C++ (and in 2008 no less) I often point people to a research paper written by INRIA (the French scientific outfit - the supercoming division in this case): http://blogs.oracle.com/jag/entry/current_state_of_java_for
      This paper shows the Java's performance is better than C++ (and I won't even start on the very significant development productivity enhancements of Java over C++, not to mention the vastly better portability [test on Windows, run on your multi-thousand CPU Linux cluster]). That was in 2008, the JVM, and especially the libraries, have gotten much faster since then. More importantly, with Java you will finish your program sooner, and with fewer lines of code, than in C++ (save months of development means the software costs less to build, you are earlier to market, and sooner to start using it - all of which should not be sneezed at).

      I understand the apeal of dynamic languages for quick hacks, but I maintain that if you were to invest in tools and experience (the more time you have on a single language the more productive you are, in an exponential way) in a single language then I think Java is probably the best choice for most developers.

    10. Re:Performance improvements indeed by Anonymous Coward · · Score: 0

      These are cooked benchmarks! I dare you to run some basic binary tree or hash map benchmarks yourself.

      http://shootout.alioth.debian.org/demo/benchmark.php?test=all&lang=csharp&lang2=java

    11. Re:Performance improvements indeed by khipu · · Score: 1

      I'm not just talking about a mismatch; Fortran 77 and C are not that different as languages. Fortran 2008 has a ton of features for HPC, optimization, genericity, and parallelism that Java is completely lacking. Translating Fortran 2008 into Java is like translating it into Fortran 66, and the code still won't run as fast.

    12. Re:Performance improvements indeed by khipu · · Score: 1

      There is nothing new-fangled about dynamic languages. Some of the oldest and most proven programming languages, Smalltalk, Lisp, and APL, are dynamically typed. For practical purposes, Java is dynamically typed as well; Java's static type system is so badly designed that it might as well not be there.

      Furthermore, dynamic typing's strength isn't in quick hacks, it's in building large, long-running systems. You cannot build those systems without reflection, introspection, duck typing, and other dynamic features. When people try to build them in strictly statically typed languages, they implement their own dynamic type systems, and they usually do a worse job than if it were built in.

      Perl's problem is not that it is dynamically typed, it is that it is weakly typed (in addition to being generally poorly designed).

    13. Re:Performance improvements indeed by khipu · · Score: 1

      More importantly, with Java you will finish your program sooner, and with fewer lines of code, than in C++ (save months of development means the software costs less to build, you are earlier to market, and sooner to start using it - all of which should not be sneezed at

      Java lacks multidimensional arrays, slicing, array ops, parallel loops, arrays of structures, usable numeric semantics, by-value passing, fast parameterized types, overloading, and tons more features that are pretty much required for numerical computing and that are impossible to provide well through libraries. Even when performance is no object, writing and debugging numerical Java code is cumbersome, and when performance matters, it's it makes you want to jump off a bridge (believe me, I have stood over that precipice). A line of efficient, natural C++ or Fortran 2008 code may take dozens of lines of equivalent Java code and still not run as fast, and often take orders of magnitude longer to write and debug.

      There are Java-like languages for which what you say is true. For example, numerical computing in C# could be both fairly efficient and easy if people invested a bit more effort in the compilers and created decent libraries. But Java is singularly badly designed for numerical computing.

    14. Re:Performance improvements indeed by dubbreak · · Score: 1

      Which is more notable as Dalvik is supposed to be quicker than the Sun^H^H^H Oracle JVM.

      --
      "If you are going through hell, keep going." - Winston Churchill
    15. Re:Performance improvements indeed by Anonymous Coward · · Score: 0

      I'd take exceptional results like this with a large pinch of salt.

    16. Re:Performance improvements indeed by alexo · · Score: 1

      That's kinda always been Java's thing, supported everywhere, slow everywhere.

      Sort of like Canadian healthcare?

    17. Re:Performance improvements indeed by clay5 · · Score: 1

      Dalvik had a bunch of design aims: faster load times, lower memory footprint, and reduce battery power draw. Long-running runtime performance has always been better on the Java HotSpot worktstation/server VM. Dalvik was never aiming to beat the traditional VM in this regard.

  64. Re:Isn't Mono dead? by Anonymous Coward · · Score: 0

    Thanks for the tip. I was looking into AIR alternatives. It's good to know I can leverage our .NET assets in the mobile space.

  65. Re:Android by shutdown+-p+now · · Score: 2

    I don't like C# with the class/struct distinction

    You must then positively hate the primitive/class distinction in Java, since it's exact same thing, except that you can't add your own primitives.

    the unsafe delegates

    What's unsafe about delegates? They're exactly equivalent to a single-method interface implemented by an anonymous inner class wrapping a method call - except that they're several times more efficient (because they're represented as a simple pair of object pointer + method pointer internally).

    the clumsy syntax for properties

    Not sure what's clumsy about it, especially since you can have it auto-define the backing field and all plumbing for you since C# 3. But it sure beats the lack of properties on language level...

    the two collection frameworks [one with generics, one without]

    Yep, I'll give you that one. That's the price for proper (reified) generics, though - Java could retrofit old collections with generics because its generics are a compiler sham which can be discarded if needed, so old code doesn't even notice they're still there - it's all just objects. Since C# generics are runtime type-safe, there's no way you could retrofit them onto the old collections.

  66. Re:Android by Trogre · · Score: 1, Funny

    Why is that? Has Ballmer stood down as CEO or something?

    I know Oracle is a horrible, horrible company, not worthy of our money but comparing it to Microsoft is perhaps like comparing Robert Mugabe to Atilla the Hun.

    --
    "Nine times out of ten, starting a fire is not the best way to solve the problem." - my wife
  67. Re:Android by Anonymous Coward · · Score: 0

    So the fact that Oracle has sued someone over their language while Microsoft hasn't doesn't matter, it's still Microsoft that is more evil.

    Oracle being more evil has nothing to do with the current Java/Android case. You think Microsoft screw their customers and users over, Oracle do it 10x more. You think Microsoft's products are ordinary, Oracles are 10x worse.

  68. Re:Android by Anonymous Coward · · Score: 1

    Actually I think the solution would be neither.

    Python FTW!

  69. Re:Android by JonySuede · · Score: 1

    I am biased by my years of enterprise java so while I sometime do read lines and lines of lines consisting of }, the representation given by my IDE is quite ordered,
    Also I do not type that stuff in, I know my IDE well. To achieve a fake lambda (copy the variable to a final identifier in a new scope in an anonymous class) I need about 15 key stroke and no mouse interaction. While I would love the have the lambda expression, I don't feel bad about resorting to lines of generated }.

    --
    Jehovah be praised, Oracle was not selected
  70. Re:Android by svick · · Score: 2

    But it's not just about writing. Reading is at least as important. And you need to read thought a lot of noise to get to the signal if you're using an anonymous class.

  71. Re:Android by Anonymous Coward · · Score: 2, Insightful

    Both are "Do No Good". Theres a Google rap sheet a mile long stemming from the last 4 years.

    "Do No Good"? Isn't there anything they might have done recently that might earn them a little karma? Like say, pulling out of China when every other corporation is busy sucking Comrade Dick for the mere hint of market access.

    It's costing them, too. For instance, the PRC government has been threatening to disrupt the Motorola merger -- since Motorola has a major presence in China (including a lot of development and manufacturing), they could seriously work Google over using their regulatory agencies.

  72. Re:Android by Dcnjoe60 · · Score: 3, Informative

    IANAL but unless they did a clean room conversion to C#, then Oracle's patent, if valid, would still apply. In otherwords, if Android is found to infringe on Oracle's IP and they programmers examined the infringing code and converted it to C#, the the C# implimentation still infringes.

  73. Re:Android by Anonymous Coward · · Score: 1

    Because the .NET development space is about 20% of the Java space. If .NET were dominant (as Microsoft intended when it created C# from their implementation of Java, via the intermediate language 'Cool') then it is likely that any compatible implementations would have been destroyed a long time ago.

    One thing a lot of critics of Java in this thread miss (scared by the headlines created by Oracle, without actually understanding the situation), is that Google is being sued but the vastly more important *OpenJDK is not*. The importance of OpenJDK is that is it is *Free Software* (and is supported by, but not owned by, Oracle). If Google wanted leverage the vast popularity of Java they should have made a compatible implementation and paid for the Test Compatibility Kit (peanuts given their revenue); or based their stuff on OpenJDK (once it was Freed). Making an incompatible 'Java' was not very clever - especially in the insanely litigious US. If Google had used or made a Real Java (as IBM did) then users would benefit from having Java everywhere (including a compatible version in Android) and Google would also avoid the legal headaches brought on by (relatively evil and certainly avaricious) Oracle.

  74. Re:Android by steveha · · Score: 1

    The team I'm in right now is coding Java for Android in NetBeans because Eclipse sucked hard.

    A couple of years ago I tried out Eclipse on Ubuntu and I thought it sucked horribly.

    Recently I started doing some Android development , and based on the tutorials and references and such I started using Eclipse again. I was pleased to find that the current Eclipse, "Indigo", is much better than what I tried out in the past.

    So now I'm wondering what version of Eclipse you were using before. I'm also wondering if I should try out NetBeans.

    steveha

    --
    lf(1): it's like ls(1) but sorts filenames by extension, tersely
  75. Re:Android by slack_justyb · · Score: 3, Interesting

    their developer tools have always been first class

    This is what I have noticed about Visual Studio users, and I will preface the list with this; it may be that someone just doesn't know how to use the tool, but with C#, VB.NET, C++.NET, etc... Microsoft has very clearly made the .NET platform to be developed using their tools, so knowing how to use the tool (Visual Studio) is a key requirement to knowing how to program anything for .NET (which has a lot of cons in my opinion but that's getting off topic.) [PS: In case you need an example of how absolutely dependent .NET and Visual Studio are to each other look no further than the Entity Framework]

    1. Visual studio users tend to be autocomplete hunters. I agree autocomplete is a handy tool, but lack of knowledge of the .NET APIs is usually rampant with Visual Studio people.

    2. Auto-generated boiler plates *usually* makes it to production and *usually* remains until version three or four. Again, it's handy that a lot of work is done for you, in this fast pace world we live in, it can be a life saver. However, sometimes it's time to retire the boiler plate code for something that is a better fit for your solution. Visual Studio coders tend to not even realize that this is going on behind the GUI.

    3. Kill diff and commit new. I can't put my finger on it, but Visual Studio coders then to forego working on already committed branches and just start fresh every time or at least every other time. For the life of me, I simply don't understand why they don't tend to follow the "dozen little gears" approach... (which leads me into)

    4. If Visual Studio didn't break up the functionality, VS coders tend to cobble everything into a handful of classes. Coders tend to have a single class that handles every, single, stinking, GUI event and possible combination thereof. Really?! Why?!

    5. Visual Studio coders don't seem to build components, if they do, the component isn't very focused on task. Usually the library is something along the lines of "AllTheUsefulFunctionsThatWeKeepTypingOverAndOverForOurCompany.dll" As opposed to say, "FunctionsForASingleCustomer.dll" This makes rebuilding libraries, for me, a pain in the ass because every department has to approve the changes. I have no idea why Visual Studio coders feel that everything plus a chicken is a great idea for everything and the chicken?!

    6. Exceptions! Catch them please! No one is immune to this, granted. However the forgot to catch an exception for Visual Studio coders is quite higher than say the guys that write C++ or Java and use Eclipse.

    I've worked at several places coding on everything from .NET, Java, RPG, C++, etc... However, the people who use Visual Studio tend to have (for lack of a better term) an addiction to the "Visual" part of VS. Now there are a couple of people I've met that have written some quality code using VS, but I'd hate myself trying to convince myself that I wasn't seeing a pattern here.

    I like Visual Studio but the most frustrating thing is it always seems to get in my way, it always wants to think for me (usually doing a pretty bad job at it), and it really does so many things behind the scene that it tends to breed a "ignorance is bliss" attitude that carries over into actual user written code.

    Now before you pick up the rock and bash my head in!! I totally understand that VS is just the tool. I get that and trust me, some of the coders that I'm talking about are some of my best drinking buddies, so I really don't want to think badly of them. But I just keep seeing this wherever I go when it comes to Visual Studio coders, not just my buddies, but others too. I can't help but feel that, "if the soldiers keep dying, it may not be the soldiers' fault." Like wise, if the code keeps coming from VS, in an ugly state, it may not be the coders' fault.

    Okay I'm ready to hear reasons as to why I'm just crazy and dreaming all this up.

  76. Re:Isn't Mono dead? by DragonWriter · · Score: 1

    The mono packages aren't on the CD

    Or, more importantly, the base install.

    They are essentially free add-on software that is supported by the free OS vendor, but they are no more part of the OS than Microsoft Office is part of Windows.

  77. Re:Android by Anonymous Coward · · Score: 0

    More like, VS >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> anything else.

  78. Re:Isn't Mono dead? by Anonymous Coward · · Score: 0

    And with MVVMCross, you can target iPhone/Android/Wp7.

  79. Re:Android by JonySuede · · Score: 1

    You don't actually read the noise... that is why you have to use an IDE, let me quote myself:

    the representation given by my IDE is quite ordered

    Each anonymous class are graphically represented in the methods where they appear, people just don't usually touch to those code representation options. An eclipse like outline view, is a powerful refactoring tool. I am pretty sure that visual studio have the same thing.

    --
    Jehovah be praised, Oracle was not selected
  80. You are wrong .... it is .... by Anonymous Coward · · Score: 0

    "Do no good" vs "do as much evil as you can get away with"

  81. Re:Isn't Mono dead? by colinrichardday · · Score: 1

    Was mono ever part of the base install? Did one ever require mono to run Ubuntu?

  82. Re:Android by DavidRawling · · Score: 2

    1. Agreed

    2 - not sure it is that big an issue, but I don't believe you're wrong.

    3 - not sure what you're saying here, this is about teaching people to use the code management tools available to them, not the IDE.

    4 - are you contradicting yourself - you say VS coders break things up and Coders don't?

    5 - isn't just VS coders.

    I'd specifically like to call out statement 6 though:

    Exceptions! Catch them please! No one is immune to this, granted. However the forgot to catch an exception for Visual Studio coders is quite higher than say the guys that write C++ or Java and use Eclipse.

    I think you're conflating two different approaches here. On the class library side of things, I'm strongly against catching all exceptions. The only exceptions a library should catch - and this is one of many opinions I freely admit - are those where the cause of the exception is totally and completely within the method call. That means any method using external data, externally configured data sources, parameters etc should not hide the exception but allow it to bubble back to the calling app. The app can then decide what to do (example - a misconfigured database connection string).

    A program/application, on the other hand, should almost never show a user an unhandled exception. Not that I'm great at that either but still, that's my viewpoint. Again an exception - things like exceptions in an exception handler might be good exceptions to the "don't show exceptions" mantra.

  83. Re:Android by Anonymous Coward · · Score: 0

    I can already tell you how that will turn out: Microsoft won't be suing anyone.

    The amount of uncertainty here is huge, so that is extremely optimistic on your part.

    As just one issue, C# 3.0, 4.0 and 5.0 are *NOT* ISO standards. It's been years since 3.0 came out, so this isn't just that Microsoft "hasn't gotten around to it". And Mono does implement 3.0, 4.0 and 5.0. So there is definite risk. Which way will it go? No one knows, so your certainty that it will be cool is grossly unfounded.

  84. Re:Android by Galestar · · Score: 2

    Not trying to bash your head in, but I think you may just have encountered the wrong developers. One thing about Visual Studio is its ease of use (as opposed to Eclipse). This makes the barriers for entry much much smaller, allowing non-developers to write simple but very bad WinForms applications, which grow into monolithic and dear-god-kill-me-now bad applications.

    This is similar to how Javascript in the late 90s was used by so many laymen (who wanted to call themselves web developers) to write the most god-awful code known to mankind.

    So please don't judge a tool by a subset of its users. There are plenty of us out there that actually write reusable, testable, readable code using Visual Studio and C# (for the love of god I wish VB.Net would die in a fire) - and we do it very quickly and effortlessly thanks to the ease of use of VS (and Resharper :)

    It also generally helps when your team does not *completely* drink the Microsoft Koolaid. Their source control and CI tools are just plain garbage. Use git, with a proper diff tool and some level of CI. Encourage constant refactoring and TDD. <-- generally these techniques are not practiced in Microsoft shops as MS does not preach this kind of stuff very loudly or very well, and some managers are deaf to everything but what MS has to say.

    --
    AccountKiller
  85. Microsoft Mono for Android? by dgharmon · · Score: 1

    Will Microsoft be coming after Xamarin for the Android tax?

    --
    AccountKiller
  86. Re:Android by Anonymous Coward · · Score: 0

    > What's unsafe about delegates?

    Hints: "unsafe" is a keyword in c#

  87. Re:Android by ChunderDownunder · · Score: 1

    I guess it comes down to what you're used to.

    I had to write some code for work in VS 2010 and found it confusing. Except for a couple of issues, I would have switched to Sharpdevelop, which although sparse, seemed more intuitive somehow.

    Similarly, those used to VS would probably find Eclipse or Netbeans lacking.

  88. Re:Isn't Mono dead? by aiht · · Score: 1

    Was mono ever part of the base install? Did one ever require mono to run Ubuntu?

    Yes. Did you really never notice people complaining about this?

  89. Re:Android by shutdown+-p+now · · Score: 1

    Sure, it is. And it's applicable to many things other than delegates. And it's an explicit keyword for a reason - when you need it, it's indispensable, but when you don't, just don't use it.

  90. Re:Android by ChunderDownunder · · Score: 1

    Hence the proposal(s) for closures in Java 8.
    I'm actually curious about Mirah, which is a statically typed Ruby-like language. For those, like me, expert at the Java API but fed up with boilerplate, it generates normal java bytecode without, say, Scala's runtime library.

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

    You need to say how VS encourages that behavior, not just that it happens. Horrible coders do horrible things. If you are claiming that VS makes a good coder do bad things, I think that is a weak position to have. A good coder will recognize bad things and wouldn't let the code stand, no matter what some random IDE encouraged/allowed.

    If you want to justify your positions, you need to talk about a feature of Eclipse that forces you to catch all exceptions. Or that forces you to break your dlls on intelligent boundaries (which 'singleCustomer' seems a bit arbitrary and app specific there as well but whatever), or how it encourages you to break up into classes along intelligent boundaries, or how it helps one learn the API system without autocomplete. VS has integrated validation (maybe not the free version?) that can warn you on some bad design decisions like this - does eclipse provide that guidance as well?

  92. Re:Isn't Mono dead? by colinrichardday · · Score: 1

    No, I noticed neither the complaints nor the necessity of mono on Ubuntu 9.10.

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

    I use NetBeans for PHP, but what a PITA it is to use it through remote desktop. Lags terribly and somehow copy-paste does not work.

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

    Did you honestly compare Eclipse to Visual Studio only to let out "LOL!" ? Jesus christ, people these days will say the most retarded shit... I guess you're using vi/gdb because it gives you a bigger penis?

  95. Re:Android by Undead+Waffle · · Score: 1

    Lately I've been using both Eclipse (for Python) and VS2010 (for C#) at work and I really don't get why people are so crazy about VS. I work with someone who kept talking about how great it is and when I asked why his only response was "Eclipse is slow".

    The first thing I did when I installed VS2010 was look for a way to turn on the 80 character vertical line. I couldn't find it under the options so I searched Google. I got some instructions to install a third party plugin then edit my registry. It also seems to make quite a mess with the folder structure when creating a new project or solution, though I admit that could be my own failure to configure it properly.

    Aside from the lack of the 80 character line the editor is much like any other. You can write code, autocomplete, etc. It has a decent debugger, maybe slightly better than other IDEs but not drastically. Qt has a much better GUI editor. And you really can't ignore Eclipse's extendability and the fact that you can zip up a copy of Eclipse with a bunch of plugins and hand it to someone as a preconfigured development tool. I just don't see what VS has that makes it sooo much better than everything else.

  96. Re:Android by SplashMyBandit · · Score: 1

    The C# language and runtime specification is open. Full marks to Microsoft there. The *libraries* are not. Turns out, that is the important bit. Shame most C# proponents never grok this. Meanwhile the JDK license explicitly allows compatible implementations of the language, runtime *and* the all-important libraries. The term "Java" is trademarked, and an implementation can't use it without passing the Testing Compatibility Kit (which ensures the "write-once, run-everywhere" promise is kept).

    Conclusion: Java is actually far more open and Free (as in liberty) than C#/.NET, just ask the OpenJDK guys, or the IBM JDK guys, or kaffe, or GNU GCJ/Classpath. Just don't try and pull a Microsoft and create an implementation that breaks Java compatibility (which Google could also seen to be doing, if you squint hard enough).

  97. Re:Android by SplashMyBandit · · Score: 1

    Bro, it is all a "compiler sham". Turns out whether you are prepared to sacrifice true cross-platform for a few extra keywords and features (which make fsck-all difference when your projects are *huge*).

  98. Re:Android by shutdown+-p+now · · Score: 1

    True cross-platform is there with Mono, though that depends on project type (looks kinda crappy with Gtk# on Windows & OS X... then again, so does Java with Swing).

    The many (not few) extra features make surprisingly big difference when you use frameworks that are designed around them. A similar case can be seen with Ruby, where the expressivity of the language itself was picked up by framework developers and driven to the extreme.

    And some of those features have no replacement at all - if you're writing Java, it's the kind of thing for which you'd just need JNI (and have all the hassle of writing & debugging that).

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

    You're right: anonymous classes (in particular, those implementing Runnable) are closures.

    The anonymous class syntax is annoyingly verbose, but the proposed new Java closure syntax is much worse; the parameter and exception declaration syntax makes it virtually unreadable.

  100. Re:Android by Anonymous Coward · · Score: 0

    Sorry but Visual Studio >>> Eclipse

    Not for C++ work, and most certainly not when you compare its C# niceties to the niceties offered for Java development in Eclipse. (Wanna see an *entire* inheritance tree [not just superclasses]? You can do that in Eclipse!)

    If you haven't used CDT in the past three or four years, do give it a try. It's far better than the "Oh shit, Intellisense stopped working, better delete my NCB and restart Visual Studio, wait for five minutes while it gets rebuilt and hope that Intellisense actually works again!" workflow that was my five years in various versions of VS. Actually, that's not giving it enough credit. CDT's code completion is just as good or better than Intellisense's. Wanna correctly list the member variables of an element of an array of templated objects that's wrapped in a macro? CDT can do that. Plus, the GDB integration is no worse than my experience with the Visual Studio debugger. Additionally, you can use all of the fancy GDB config files that you might have acquired over the years.

  101. Re:Android by flimflammer · · Score: 4, Informative

    The (irrevocable, legally binding) promise Microsoft made was not just related to C#, but the .NET framework. So long as it's implemented properly (eg. all elements Microsoft deems "required" for the implementation is implemented), Microsoft will not peruse any legal action on anyone using the technology. That includes the API. The reason Microsoft did this was so people would not be afraid to use it. They want people to use it.

    The two situations are not comparable at all. Microsoft would not sue over someone implementing the API.

  102. Re:Android by Anonymous Coward · · Score: 0

    There are a lot of people using Java and the trap already sprung. Just because Java was a trap as well doesn't make .NET not a trap

  103. Re:One fatal flaw by flimflammer · · Score: 1

    So it's Windows only, except that it's not Windows only?

  104. Re:Android by sFurbo · · Score: 1

    Is clean room relevant to patents? I thought patents covered the idea, so it didn't matter how you got the idea, while copyright covered the source of the idea, so clean room implementations should get you out of copyright hot waters. Am I mistaken? Or is there something special about Oracles patent that makes the situation different?

  105. Re:Android by Anonymous Coward · · Score: 0

    6. Exceptions! Catch them please! No one is immune to this, granted. However the forgot to catch an exception for Visual Studio coders is quite higher than say the guys that write C++ or Java and use Eclipse.

    This is just wrong... you should rarely need to catch exception explicitly, let the VM/caller catch it and handle it properly. It's called EXCEPTION and not EXPECTATION for a fucking reason.

  106. Re:Android by TheRaven64 · · Score: 2

    The proposals for closures in Java 8 are very similar to the proposals for closures in Java 7. These, in turn, were strikingly similar to proposals for closures in Java 6. There have been proof-of-concept implementations around for years and several other languages running on the JVM have had closures for as long, so I'm not really holding my breath...

    --
    I am TheRaven on Soylent News
  107. Re:Android by Chrisq · · Score: 2

    Microsoft is a bigger, more evil giant than even Oracle.

    I'm not entirely sure you've ever dealt with Oracle...

    Oracle vs Google is like "do no good" vs "do no evil".

    More like "do evil with pride" vs "do evil and hide".

  108. Re:Android by Anonymous Coward · · Score: 0

    Even C++ has closures now.

    Is there any language feature-of-the-day that C++ hasn't collected yet?

  109. Re:Isn't Mono dead? by modmans2ndcoming · · Score: 1

    All my Ubuntu installs are installed through the internet. I use a USB Stick to boot the installer.

  110. Re:Android by Anonymous Coward · · Score: 0

    I can already tell you how that will turn out: Microsoft won't be suing anyone.

    Just like Microsoft is not persuading anyone to pay them for Android phones presumably violating their patents in the linux kernel? Surely you jest, they are only waiting for the correct moment to milk the cow.

  111. Re:Android by davidbrit2 · · Score: 1

    So you're saying Oracle is more honest than Google?

  112. Re:Android by Heir+Of+The+Mess · · Score: 1

    I haven't personally used Eclipse for 3 years but, as I'm primarily a C++ developer, I left the IDE choice to my full time Java developing peers who informed me that Eclipse sucked hard. I had assumed this was an informed opinion. The problem I've found with NetBeans is that we are using Ant for the build process, which seems to work like a shell script rather than a makefile. I've found I'm faster in C#/VS2010 mainly because the intellisense seems to work better with that combination. As someone who is continuously changing languages and platforms I find intellisense quite valuable.

    --
    Australian running a company that does C# / C++ / Java / SQL / Python / Mathematica
  113. Re:Android by shiftless · · Score: 1

    Isn't there anything they might have done recently that might earn them a little karma? Like say, pulling out of China when every other corporation is busy sucking Comrade Dick for the mere hint of market access.

    No, not really.

    After years of sucking Chinese cock....when you suddenly decide to stop sucking cock, you are still a cock sucker.

  114. Re:Android by Anonymous Coward · · Score: 0

    So the fact that Oracle has sued someone over their language while Microsoft hasn't doesn't matter, it's still Microsoft that is more evil.

    I mean, what exactly does matter, then?

    So basically, is your judgement that defines something as "evil" instead of, you know, doing "evil stuff", why don't you just do what your username says and just go away, what a moron

  115. Re:Android by toutankh · · Score: 2

    This would actually be a great slashdot poll!

    Who is the most evil?

    Apple
    Microsoft
    Google
    Oracle
    AT&T
    RMS (there is always a nonsense option)

  116. Re:Android by toutankh · · Score: 1

    In the mean time, closures have been implemented since at least 1975 in Scheme. Funny how at first functional languages were seen as "too abstract" and "for researchers only" but with time people slowly realise that they have in fact useful features that other more mainstream languages lack.
    FFS even C++ has closures now. The fact that they are still not present in Java says a lot about the skills of the average Java programmer, who clearly doesn't have a use for such obscure and abstract stuff.

    (disclaimer: I am language agnostic and sometimes use Java)

  117. Re:Android by SplashMyBandit · · Score: 1

    Sigh. You again, with your erroneous statements.

    Nimbus with Swing looks awesome. My customers tell me so (without prompting). Do your customers tell you this?

    True cross platform with Mono >> horsehit. The language is cross-platform, the libraries are not - and it is the libraries that matter! The Mono libraries aren't used by the Windows folks and the Microsoft libraries can't be used on any other platform (if they exist, WPF does for Mono and apparently never will according to the project pages). Conclusion, your statement is incorrect - Mono is not cross-platform in the way that Java is.

    You wouldn't write JNI (unless you were out of touch and didn't know any better) - although I happen to have written JNI interfaces many times (eg. controlling radars and large roadsigns from Java) and it wasn't as hard as people make out (I suppose if you were a nugget it might seem hard). You would either use JNA (vastly easier, and no native code required) or use a 100% pure Java library (which can be done for everything except device driver integration - are you doing device driver integration).

    Ruby is excellent at what it was designed for (isn't everything?). It is a pretty piss-poor general purpose language (device control in Java is palatable; in Ruby? square peg, round hole).

  118. Agreed by cbhacking · · Score: 1

    The ability to create stack-allocatable objects, give them their own functions, and access them by reference instead of by value if you wish... Yeah, these are features of a good language.

    Java has primitives (stack-allocated, can't invoke functions on them, can't add your own, can't add any sort of complex type). C# has a sub-set of its "structs" that are simply slightly fancier versionns of the Java primitives, plus some more complex structs. If you don't *like* your Point to be a pass-by-value type, use Nullable (which is conveniently available in shorthand Point?).

    C# also has a number of types that Java could stand to pick up, like unsigned integer types. Especially when working with native code, which is sadly a requirement of a number of real-world programs, the lack of unsigned types in Java is messy.

    Delegates are exactly type-safe function pointers. The concept of calling them "unsafe" is ridiculous. In what possible way are they unsafe?

    You don't have to write properties. They're handy at times, but are completely optional. Having lots of Java-style
    public fooType getFoo() { return this.foo; }
    public void setFoo(fooType f) { if (validateFoo(f)) this.foo = f; }
    public barType getBar() { return this.bar; }
    functions is hardly shorter to write, and doesn't seem any easier on the user of your API either. You can certainly do it that way if you want, though; C# won't stop you. Java will, however, prevent going the other direction...

    Java's generics system is just broken. This becomes especially apparent if you want to create an array of any generic type. The existence of a separate namespace for the generics classes may seem awkward at first, but the actual experience of using a well-designed generics system is well worth that little bit of hassle.

    A few other points:

    There are good uses for operator overloading. Not the extremes that C++ takes it to, but things like being able to implement an addition operator for a numeric type, or a multiplication operator for a vector times a scalar, or other intuitive uses.

    Somewhat similarly, another aspect of peroperties, being able to define your own index operation is really nice (there's no good reason why ArrayLists and Arrays need different syntax to use them; in C# they don't).

    Being able to define both implicit and explicit casts manually is lovely. Yes, you can still use
    public bazType toBaz()...
    functions, but if it makes perfectly good sense that somebody might want to use your type as a bazType, and it's safe to do so, why not let the cast be implicit?

    The existence of the "preprocessor" in C# is great. Your debug code isn't even compiled into your release binary, resulting in more compact files and better runtime performance without needing to maintain debug branches (debug being merely an example here, but one of the most common). No C-style macros, though - both a blessing and a limitation.

    Out and Ref parameters... the ability to return multiple values from a function call is incredibly handy sometimes. It's never technically mandatory to implement an API this way, but it's frequently convenient.

    P/Invoke (DllImport) is an incredibly easy way to call native code from managed code. Of course, it requires that the managed code support the same types and behaviors as the native code, or directly analogous ones, so things like unsigned types and user-defined structs and out parameters do become quite beneficial again...

    --
    There's no place I could be, since I've found Serenity...
  119. Re:Android by AttillaTheNun · · Score: 1

    Together, nothing will get done.

  120. Re:Android by Anonymous Coward · · Score: 0

    The first thing I did when I installed VS2010 was look for a way to turn on the 80 character vertical line.

    Do you print out source code on a dot-matrix printer as well?

  121. Re:Brace for it by Hognoxious · · Score: 1

    ... and the Larrytards/Ellishills.

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  122. Re:Android by Hognoxious · · Score: 1

    The nonsense option is Cowboy Neal. Always. Even if the question is "what is your favorite sandwich?"

    Now get off my lawn!

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  123. What about resources usage? by Anonymous Coward · · Score: 0

    JVM beats Dalvik and Mono VM in speed, but uses a lot more memory.
    Performance alone means nothing. A mobile can't use 100Mb per process.

  124. Re:Android by benjymouse · · Score: 3, Informative

    Aaa.... No it's not. There is a defensive termination clause(I will be corrected if I'm wrong...) in Microsoft's grant, but not in Oracle's.

    There is a termination clause:

    If you file, maintain, or voluntarily participate in a patent infringement lawsuit against a Microsoft implementation of any Covered Specification, then this personal promise does not apply with respect to any Covered Implementation made or used by you.

    I.e. you can sue Microsoft for infringement of your own patents by SQL Server or Windows, but if you sue claiming that one of the specifications/implementations covered under the open specification promise infringes your patents, Microsoft reserved their right to countersue you for infringement of the same specifications.

    This is a standard defensive mechanism. Sun/Oracle has one as well:

    b. With respect to any patent claims owned by Sun and covered by the license granted under subparagraph 2, whether or not their infringement can be avoided in a technically feasible manner when implementing the Specification, such license shall terminate with respect to such claims if You initiate a claim against Sun that it has, in the course of performing its responsibilities as the Specification Lead, induced any other entity to infringe Your patent rights.

    c. Also with respect to any patent claims owned by Sun and covered by the license granted under subparagraph 2 above, where the infringement of such claims can be avoided in a technically feasible manner when implementing the Specification such license, with respect to such claims, shall terminate if You initiate a claim against Sun that its making, having made, using, offering to sell, selling or importing a Compliant Implementation infringes Your patent rights.

    If you were to rely on these specifications for a product you are building, it actually benefits you that there is a defensive mechanism in there to deter against crippling lawsuits.

    So, not much difference. Standard defensive mechanism in the common interest of the users of the products.

    --
    Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
  125. Re:Android by Anonymous Coward · · Score: 0

    The word is SUIT, you fucking squarehead.

  126. Re:Android by Goaway · · Score: 1

    What.

  127. Re:Android by Goaway · · Score: 1

    So basically, since Microsoft has not sued anyone, we can just imagine that they would sue people, and then call them evil?

  128. Re:Android by Hognoxious · · Score: 1

    If Google had used or made a Real Java (as IBM did) then users would benefit from having Java everywhere (including a compatible version in Android) and Google would also avoid the legal headaches brought on by (relatively evil and certainly avaricious) Oracle.

    Am I the only one who wonders why in tarnation they didn't do exactly that?

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  129. Re:Android by devent · · Score: 1

    the unsafe delegates

    As I understand correctly, C# delegates are only signature-safe. So the delegates are "safe" as Pythons functions if they follow the method signature. But from a strongly typed language I expect "safe" to mean "type-safe" not "signature-safe". So for example you have the following code:

    // C# delegate void Fire(double, double);
    ...
    public Fire fire;

    // Java
    interface MissleLauncher { void fire(double, double); }
    interface FireIgnator { void fire(double, double); }
    ...
    public FireIgnator ignator;

    In C# code, fire can mean different things in different contexts. You can assign fire everything, it just have to meet the method signature. But for ignator you can assign only a FireIgnator.

    Not sure what's clumsy about it

    It's just so many { and } in C# (4 levels of braces):

    namespace foo {
    class Foo {
    public int Xx {
    get { }
    set { }
    }
    }
    }

    Other language have solved that problem in a more elegant way, for example Groovy:

    class Foo {
    def xxx // automatic setter and getter
    def getXxx() { } // override the getter
    void setXxx(def foo) { } // override the setter
    }
    ...
    Foo foo = new Foo()
    foo.xxx = "new value"
    println foo.xxx

    That there are other issues with C# that I dislike. For example:

    • the IXxxx for interfaces. I mean really, what is the point? You shouldn't care less if it's an interface or not, since it's OOP, which means that you should not known which specific implementation you are programming to.
    • the 100s (exaggerated a little) of keywords, also see Ten C# Keywords That You Shouldn’t Be Using
    • the distinction between class/struct. Optimization should happen without that the programmer should care about. The VM should be intelligent enough to notice when a class it's just value holding record and optimize it. Also see C# Optimization Secrets
    • Unless you know more about the C# language than I do, it is typically best to avoid structs entirely. If you use structs, you must be careful to not pass the struct as a parameter to methods often, or performance will degrade to worse than using a class type. The reason for this is that structs are copied in their entirety on each function call or return value.

    • namespaces, #region, ref, out, arrays/jagged arrays (why two incompatible array types?)
    --
    http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
  130. Re:Android by MrSteveSD · · Score: 1

    Not to mention how much better the language is...

    You missed out that amazingly advanced feature that C# has and which Java is still working on. i.e. The ability to pass arguments by reference. Can you believe that? The inability to pass by reference! I was in disbelief for a whole day over that. I've had to work with Java a lot recently and the language is so crippled it just makes me want to punch everyone involved in it's development.

    I don't know about the possible legal issues, but C# would be great for game development on Android. The stack-allocated structs alone would be a real boon.

  131. Re:Android by ciggieposeur · · Score: 1

    made a compatible implementation and paid for the Test Compatibility Kit

    I was under the impression that Sun had refused for years to let any non-Sun-derived Java implementation get the Test Compatibility Kit, and that was a big holdup for Apache Harmony and GNU Classpath.

    Was I mistaken?

  132. Re:Isn't Mono dead? by colinrichardday · · Score: 1

    In that sense, I also installed through the internet, as the CD has only 28 packages.

  133. Re:Android by Anonymous Coward · · Score: 0

    What can you do in C# that can't be done in .Net's version of VB?

  134. Re:Android by Galestar · · Score: 1

    What can you do in C# that can't be done in .Net's version of VB?

    How about, write readable code?

    --
    AccountKiller
  135. Re:Android by Anonymous Coward · · Score: 0

    Oh, you can only read curly-brace languages. You should have made that clear initially.

  136. Re:Android by shutdown+-p+now · · Score: 1

    Nimbus with Swing looks awesome. My customers tell me so (without prompting). Do your customers tell you this?

    I don't write in Java. That said, you only need to look at the bug tracker of any Java Swing app to see the user feedback - which tends towards negative when it comes to L&F. Try IDEA (or any IntelliJ IDE) or NetBeans for starters.

    I don't care whether Swing looks awesome or not. What I do care about is that it looks alien regardless of the platform (and "native" L&F has gaping holes in it - are they still using that crappy self-written file open dialog on Windows?).

    I mean, seriously - do you think that people who wrote SWT, and people who use it in their Java projects, did it for the fun of it?

    True cross platform with Mono >> horsehit. The language is cross-platform, the libraries are not - and it is the libraries that matter! The Mono libraries aren't used by the Windows folks and the Microsoft libraries can't be used on any other platform (if they exist, WPF does for Mono and apparently never will according to the project pages). Conclusion, your statement is incorrect - Mono is not cross-platform in the way that Java is.

    Not all .NET libraries are cross-platform, but enough is - e.g. ASP.NET is, and so is MVC, so everything you need for web apps is cross platform. For GUI, there's nothing precluding you from using Mono libraries on Windows, so ditch WPF and use Gtk# - and you get your cross-platform capability.

    You wouldn't write JNI (unless you were out of touch and didn't know any better) - although I happen to have written JNI interfaces many times (eg. controlling radars and large roadsigns from Java) and it wasn't as hard as people make out (I suppose if you were a nugget it might seem hard). You would either use JNA (vastly easier, and no native code required) or use a 100% pure Java library (which can be done for everything except device driver integration - are you doing device driver integration).

    Oh cmon. Sure, you can do "anything" in any Turing complete language - but in real world the questions are also cost and speed. It so happens that some things can be written to run much faster when you can ditch VM checks and use raw pointer arithmetic and such - that's one use case for C (or C# unsafe).

    For another, a great many things have already been written, tested etc - as C or C++ libraries. In C# you use P/Invoke to access them, and it's easy to use and fast because it is backed by a type system that can fully match anything that you can see on the C side (again, raw pointers, but also structs, unions, unsigned types etc). All similar solutions in Java suffer from the fact that Java type system is not expressive enough. Sure, you can use signed instead of unsigned, and you can represent structs as classes, and you can provide some wrappers for pointers... except that the result is often more verbose, and it's certainly slower (a blittable C# struct is layout-compatible with a C struct, so P/Invoke just passes the pointer directly; a Java class has to be marshaled field-by-field).

    Ruby is excellent at what it was designed for (isn't everything?). It is a pretty piss-poor general purpose language (device control in Java is palatable; in Ruby? square peg, round hole).

    Ruby is a general purpose language, it wasn't designed for anything in particular. Device control is certainly not a common task for most general purpose languages out there, but if you really need it, it can be done in exact same way as in Java - by using a wrapper written in C (whether a special one you write yourself, or a generic customizable one that's written for you).

  137. Re:Android by shutdown+-p+now · · Score: 1

    In C# code, fire can mean different things in different contexts. You can assign fire everything, it just have to meet the method signature. But for ignator you can assign only a FireIgnator.

    There's nothing precluding a malicious person from implementing the wrong interface in Java, either.

    Anyway, in practice, how many listeners have you written where you actually care about anything but the signature? I know that nothing in Swing would qualify, for example.

    But from a strongly typed language I expect "safe" to mean "type-safe" not "signature-safe".

    "Signature-safe" is type-safe - it requires types to match (sans co/contravariance). What you want is "semantics-safe". A language cannot verify that without behavioral types.

    It's just so many { and } in C# (4 levels of braces):

    Why do you count namespace and class braces as part of property syntax? That doesn't make sense.

    And, sure, Groovy has more concise syntax - as do most other languages that deviate further from C-style syntax. But we were comparing C# with Java. I very much doubt that C# syntax for properties is more verbose than Java syntax, given that in the latter you have to repeat the name and the type of property twice (and gotta make sure that it matches yourself!).

    the IXxxx for interfaces. I mean really, what is the point? You shouldn't care less if it's an interface or not, since it's OOP, which means that you should not known which specific implementation you are programming to.

    It's a naming convention that you can adhere to or not. Partly it's just COM legacy. Partly it's convenient in that it lets you define the "standard implementation" for the interface with the same name sans the I - for example, the standard library has IList, and then it also has List (which in Java would be ArrayList). It's convenient, because 99% of users that need a concrete instance of IList want an ArrayList.

    the 100s (exaggerated a little) of keywords, also see Ten C# Keywords That You Shouldn’t Be Using

    More keywords provide for clearer code - for example, where in Java "final" has several very different things in different contexts, in C# that difference is made explicit by using "sealed", "readonly" and "const". Furthermore, there is a difference between final variables in Java, as well - some of them can be used as compile-time constants (e.g. in switch), some can't - and in C# that is again captured in the difference between "readonly" and "const" - if you declare something "const", and give it the wrong kind of initializer, the compiler tells you right away.

    Other keywords come from being more explicit - e.g. "virtual" is there because virtualness is not the default behavior in C# (to prevent inadvertent introduction of the brittle base class problem). "operator", "explicit" and "implicit" are there to support a feature that Java simply doesn't have.

    As for the list of keywords you've linked to, it's plain silly. Don't use "sealed"? it's not just for classes, you know, it's for methods as well - and there are good reasons to use it from correctness perspective (I don't want to guard against the possibility of someone overriding every single method I declare), not just speed. Don't use "struct" because it has 'strange' behavior - WTF? it has the exact same behavior as any primitive type (because they are also value types). It just so happens that some things make much more sense when they don't have any implicit object identity, and are copied around by default - so you make them structs. unsafe/stackalloc/fixed/ref (they forgot "out", BTW) are all extremely useful when working with native code. "goto" is useful because switch in C# doesn't have fallthrough from label to label if you forget "break" (which is good!), so you can use "goto case" to do it explicitly.

    the distinction between class/struct. Optimiza

  138. Re:Android by Anonymous Coward · · Score: 0

    For a general purpose language to limited to a single, if large, niche after all these years, considering that wasn't from a lack of trying, that's a joke.

    That's likely for two reasons, the abysmal licensing terms, and suns focus on using it to sell servers. The licensing terms prevent anyone from adding useful features to the language except Sun. And remember Sun sued Microsoft when they tried exactly that. Afterwords no one was going to make any attempt at all to improve the language to serve other problem domains. Suns focus on server hardware meant they had no interest in adding language features outside of that domain. So the language languishes.

    C# on the other hand was developed to make it easy to write desktop GUI applications and to be able to use standard windows dll's. That makes for a better and more capable language. Also Hejlsberg is a more capable language designer than Gosling

  139. Oracle, Microsoft, Google, Big Proprietary Corps by Anonymous Coward · · Score: 0

    It all ends badly. It always ends in broken apps that need a rewrite. Or in court. Or in big fees.

    It's not about programming and programmers. Its about creating valuable, unencumbered, portable, long lived assets. Do they build F1 cars out of duct tape and cardboard because it is easier on the constructors? Are the pyramids built out of Nerf because it is lighter than stone and easier on the slaves?

    Either you code in C, or you do not. All the rest is folly. But don't take my word for it. Reality is a hard, unforgiving mistress, a sadistic bitch that will take great joy beating this into you.

  140. Re:Android by CharlyFoxtrot · · Score: 1

    How about we take the word of the man who actually created Java and worked for both Google and Oracle :

    "Just because Sun didn't have patent suits in our genetic code doesn't mean we didn't feel wronged. While I have differences with Oracle, in this case they are in the right. Google totally slimed Sun. We were all really disturbed, even Jonathan: he just decided to put on a happy face and tried to turn lemons into lemonade, which annoyed a lot of folks at Sun."

    Not a lawyer, not a PR drone, not an out of touch CEO but an honest to god real programmer and someone who has actually achieved something in this industry saying Google's wrong. Oh wait I forgot, Google said that they aren't evil, it must be alright then.

    --
    If all else fails, immortality can always be assured by spectacular error.
  141. Re:Android by CharlyFoxtrot · · Score: 1

    Yeah, that's like saying you're still a virgin if you practice "coitus interrupts."

    --
    If all else fails, immortality can always be assured by spectacular error.
  142. Re:Android by CharlyFoxtrot · · Score: 1

    So you're saying Oracle is more honest than Google?

    If you think about how much of the worlds most critical data is being managed by Oracle software they have a much better track record than the privacy control evading, personal information snooping, data mining Google.

    --
    If all else fails, immortality can always be assured by spectacular error.
  143. Re:Android by MrHanky · · Score: 1

    This would actually be a great slashdot poll!

    Who is the most evil?

    Oracle
    RMS (there is always a nonsense option)

    All the non-Oracle options are nonsense.

  144. Re:Android by CharlyFoxtrot · · Score: 1

    I think the word you're looking for is "ruthless", not evil.

    --
    If all else fails, immortality can always be assured by spectacular error.
  145. Re:Android by dubbreak · · Score: 1

    So please don't judge a tool by a subset of its users. There are plenty of us out there that actually write reusable, testable, readable code using Visual Studio and C# (for the love of god I wish VB.Net would die in a fire) - and we do it very quickly and effortlessly thanks to the ease of use of VS (and Resharper :) It also generally helps when your team does not *completely* drink the Microsoft Koolaid. Their source control and CI tools are just plain garbage. Use git, with a proper diff tool and some level of CI. Encourage constant refactoring and TDD. <-- generally these techniques are not practiced in Microsoft shops as MS does not preach this kind of stuff very loudly or very well, and some managers are deaf to everything but what MS has to say.

    Agreed. Plus with the latest versions of Visual Studio there are some pretty cool testing options available.

    I use Hg not Git, but same deal. Refactoring is not painful. The built in tools in VS11 are good (in VS2008 I couldn't live without resharper). Back in the day of Source Safe (arrrghhh kill me now!!) yeah that would have been hell and my experience with non distributed systems (CVS, SVN) has not been the best either. In this day and era there is no excuse to not switch to a distributed versioning system.

    --
    "If you are going through hell, keep going." - Winston Churchill
  146. How many terroist plots would their be by Anonymous Coward · · Score: 0

    if the FBI guys just stayed home for a few days? My guess is very few, actually.

  147. Re:Isn't Mono dead? by nurb432 · · Score: 1

    And Microsoft isn't?

    --
    ---- Booth was a patriot ----
  148. Re:Android by Anonymous Coward · · Score: 0

    Fucking awesome.

    Is that a quote from somewhere? or are you really just that clever!? (That not sarcasm at all. That kinda made my day.)

  149. Re:Isn't Mono dead? by modmans2ndcoming · · Score: 1

    My installer was 120 ish MB.

  150. Oops by colinrichardday · · Score: 1

    I failed to include the squashed packages. Mine was pretty much a full CD (~700 MB).

  151. Re:Android by JonySuede · · Score: 1

    the average Java programmer

    That is true, the average Java programmer sucks,many claim to be Java programmer, and they to do so while ignoring fundamental classes like WeakRefence, ThreadLocal, Futures, and ConcurentHashMap. Those classes that are required to understand the java model correctly. And those who do not know about them should be called java as a second language writers ! Just as I am in English.

    --
    Jehovah be praised, Oracle was not selected
  152. Re:Android by Anonymous Coward · · Score: 0

    He just doesn't have a taste for code that looks like vomit. Which is what every single VB.Net developer ends up writing.

  153. Re:Android by devent · · Score: 1

    We can argue all day long. Funny, how you didn't address my main concern with C#, the Community, the Libraries, the Tools, the IDEs.

    I prefer my language to be neat and clean, with as less keywords as possible. For example, I wouldn't care less if Java would drop Generics, inline classes or would never implement closures. My preferences are with the Community, the Libraries, the Tools, the IDEs.

    Because with the 4 important pillars I can work around any issues with the language, and the less things are in the language, the less problems I will have.

    I did mix in Groovy (or I would mix in Scala, JPython, Closure, etc.) because it is part of Java. The Groovy language is just a simple Jar file that I include to my project (plus an addon to Eclipse), it's really that simple. So yes, Java has no closures, but who cares, if you can just add a simple Jar file to your project and use Groovy, with is transparent to Java (meaning you can easily mix Groovy and Java code). Or if you like the new functional programming trend you add a different Jar file and have Scala.

    Microsoft can only bloat up the language, until you end up with 100s of keywords, each with it's quirks. But really productive I can only be with a language if I'm perfectly sure that for each problem I encounter I will find a Open Source Library or an Open Tool.

    --
    http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
  154. Re:Android by devent · · Score: 1

    More keywords provide for clearer code - for example, where in Java "final" has several very different things in different contexts, in C# that difference is made explicit by using "sealed", "readonly" and "const".

    That is no advantage. Human language uses the same words with different meanings all the time. That have a reason, so we don't have to invent (and learn and remember) yet another word. That can be applied to computer languages. A final method, a final class, a final field/variable, have all the same meanings. The meaning is: you can't change it. So why you need 3 different keywords?

    That's wishful thinking.

    No, that's user-friendliness, and only a technological problem (meaning it can be solved, you just need time and developers). Why should the user be suffering with a workaround that have it's own traps.

    What's wrong about them? They're strictly better than packages, because they don't dictate physical layout, nor do they provide a false sense of security with package-private types.

    That is a big advantage of Java and a great idea of the designers to dictate the physical layout. Because now not every single source file is in one directory, but have a structure that follows the code.

    What false sense? The compiler is enforcing package-private, i.e. it gives you a compiler error.

    Because they represent two different things - a 2D array is guaranteed to be a matrix (every row is the same length), a jagged one is not.

    And why we need them for? You can just use a List. It's really funny then, if library A needs a normal array and library B needs a jagged array. Why we can't just have a List, with would be generic for both libraries.

    --
    http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
  155. Re:Android by hobarrera · · Score: 1

    Mind you; I said "good IDE", not "terribly awesome IDE".
    Eclipse has lots of shortcommings, and issues, etc.

    But the rest is *so* far behind, that they make eclipse seem awesome (in comparison).

  156. Re:Android by hobarrera · · Score: 1

    Visual Studio 2008 actually. Found it *way* too hard to use,. Really. Ended up not-using it. :)

  157. Re:Android by hobarrera · · Score: 1

    I disagree. I've tried dozens of tools for plenty of languages, and have found Visual Studio one of the application with most usability issues *ever*, and by a very large margin.

  158. Re:Android by hobarrera · · Score: 1

    No, I didn't "lol" at the comparison, I "lol"d at how funny it seems to consider VS a good IDE.

  159. Re:Android by godefroi · · Score: 1

    In case you need an example of how absolutely dependent .NET and Visual Studio are to each other look no further than the Entity Framework

    The Entity Framework isn't integral at all to .NET. I program in .NET every day (have for about 10 years, since 1.0), and I've never used it. I don't understand how something that is built on top of .NET and has strong tooling in VS proves "how absolutely dependent" .NET and VS are on each other. EF may be dependent on VS (I wouldn't know, and don't care), but that's a whole other thing entirely.

      Other than that, I'm only going to address a few of your points:

    2. Auto-generated boiler plates *usually* makes it to production and *usually* remains until version three or four. ... Visual Studio coders tend to not even realize that this is going on behind the GUI.

    So, incompetent coders are incompetent. Great. VS didn't make them that way, it just made coding easy enough for incompetents to be able to do a passable job at it. I don't think that "it's not hard enough to use" is really a valid criticism, sorry. Not in my world, anyway. Most of your arguments boil down to this. "I worked with bad programmers, and they used VS, so VS is therefore bad". Doesn't cut it, sorry. Correlation, causation, you know the drill.

    I like Visual Studio but the most frustrating thing is it always seems to get in my way, it always wants to think for me (usually doing a pretty bad job at it), and it really does so many things behind the scene that it tends to breed a "ignorance is bliss" attitude that carries over into actual user written code.

    Aha, so now we're at the real problem. You don't know how to use the tool well, so it must be a bad tool, in your estimation. In mine, you don't know how to use the tool, so that makes YOU bad.

    Also, IntelliJ IDEA is ten times the IDE that Eclipse is.

    --
    Karma: Poor (Mostly affected by lame karma-joke sigs)
  160. Re:Android by Anonymous Coward · · Score: 0

    If VS isn't a good IDE then you must be using one from the future. It has an excellent debugger, plenty of very good extensions, and makes working with .NET a breeze. Barely anything matches it. Eclipse? Come on..

  161. Re:Android by shutdown+-p+now · · Score: 1

    That is no advantage. Human language uses the same words with different meanings all the time. That have a reason, so we don't have to invent (and learn and remember) yet another word. That can be applied to computer languages. A final method, a final class, a final field/variable, have all the same meanings. The meaning is: you can't change it. So why you need 3 different keywords?

    The meaning of "final" for classes is "you can't inherit from it" (you can't change classes anyway). The meaning of "final" for methods is "you can't override it" (again, you can't change a method once it's defined). And for variables, you'll see the difference as soon as you try using them in "case".

    No, that's user-friendliness, and only a technological problem (meaning it can be solved, you just need time and developers). Why should the user be suffering with a workaround that have it's own traps.

    Thermonuclear fusion is also "only a technological problem" that "just needs time". In the meantime, though, we have to get things done, and that means providing useful workarounds. C# does just that.

    You are, of course, welcome to solve this problem for Java, and contribute the code to Oracle. They will be very glad to have it for Java 8, because it will solve a great many design issues in their lambda proposal.

    That is a big advantage of Java and a great idea of the designers to dictate the physical layout. Because now not every single source file is in one directory, but have a structure that follows the code.

    It is incredibly annoying to navigate Java source trees because of all those useless folders on the top, like ./com/sun/java/... - the top three are completely pointless for example, because they have exactly one subfolder.

    For C#, it is also common to have file structure that follows namespace hierarchy (which tends to be flatter), and one file per class, but you're not forced to - and this is very handy when it comes to e.g. generated code (which can then be all just shoved into a single directory without recreating the whole package structure).

    What false sense? The compiler is enforcing package-private, i.e. it gives you a compiler error.

    The false sense of security stems from the fact that you can always add your class to any package out there, and thereby gain access to package-private stuff. And, unlike inheriting, it does not give you any disadvantages, and is always possible to do. In contrast, in .NET, you can't just randomly add your types to someone else's assembly, which makes "internal" (assembly-private) visibility actually meaningful when security is enforced in a sandbox.

    And why we need them for? You can just use a List.

    You mean, a List of Lists? Again, it's not the same semantically as a 2D array. For one thing, its elements can be lists of different lengths. For another, a list can have elements added and removed to it. If I'm writing a function that operates, say, on 2D matrices, I don't want to have to write code at the beginning that checks that the jagged array (or List) passed to it is really a 2D matrix and throw if it's not - it's just useless code that doesn't bear any relation to what the function actually does, and furthermore it will only catch any mistakes at runtime rather than compile time.

    It's really funny then, if library A needs a normal array and library B needs a jagged array. Why we can't just have a List, with would be generic for both libraries.

    If library A and library B both need a 2D matrix, they'll both ask for a 2D array, because that is the standard type that most closely models the concept. If library B actually needs a jagged array, it's likely that it does so because it actually needs something else, not a matrix.

    Anyway, the argument from different libraries (assuming that one of them is badly designed) that you make doesn't make sense, because it applies just as well to stock collections. Suppose that, in Java, one library wants a List, and another wants a Set - what then?

  162. Re:Android by shutdown+-p+now · · Score: 1

    I can be productive with a language so long as I can find a library or tool for my problems - I don't need them to be FOSS. There are plenty of libraries and tools for .NET - probably less than for Java, but I've never run into a situation where I didn't find something that I needed. A lot of them are FOSS, too.

    The community is very big. Have you seen StackOverflow? The most popular languages there are .NET ones.

    The IDE - by and large there's only VS, but it can certainly stand up against Java IDEs. In some areas (e.g. code editing) it is somewhat worse, which can be rectified by extensions like Resharper. In some areas (e.g. visual designers) it's better. In some it's vastly better - show me a Java IDE that lets you debug both Java and C in a single session, properly handling things like "Step into" on a JNI call, or C code calling back into Java via JNI; VS can do that with P/Invoke.

    The tools are out there, too - you'll have to be more specific about what you need.

    With respect to other languages, if you start bringing in Groovy, Scala etc into the picture, then for .NET you also have to bring in F#, C++ (not C++/CLI, the full thing - it can still compile to managed code), and, funnily enough, even Java - because CLR as a VM has a strict superset of the capabilities of JVM, you can run the latter on top of the former, but not vice versa.

  163. Re:Android by sourcerror · · Score: 1

    In fact the context-assist (that's how Intellisense is called outside VS) is much better in Eclipse than Netbeans (and it has been so for years), and needs less memory, is more responsive. On the other hand it lacks a good GUI builder, and gettin JEE working with it is a little more complicated.

  164. Re:Android by slack_justyb · · Score: 1

    The Entity Framework isn't integral at all to .NET.

    See point that it was an example. Read into that, if you may, that it is a single element of a set. Therefore conclude, that I have a list of items "that depends on VS" but as oppose to getting into an exhaustive list of that set, I have merely stated a single element from the list. I am doubtful that anyone would care for a post detailing how tightly coupled VS and .NET are to each other. If you wish to seek such a list, by all means, Google is your friend. You will find that I am not alone in this thinking that VS and .NET are nearly inseparable.

    That said, there are cases where .NET can be used independent of VS, but the use cases are slim or for platforms that are not Microsoft made. The logic behind most of that is the XML cruft that is required for a lot of functionality related to anything within the System.Data namespace. But an even better example would be XAML and anything that has to do with the mess that is WPF. Attempting to do anything with those two outside of VS is simply a task of frustration.

    However, you may not be fully convinced of my position, so therefore let us then move to a comparison of EF to something like JPA. EF requiring complex tangles of XML versus JPA which relies on annotations. However, let's look at EF 4.2 and go from there. Here we have three different models for coding.

    1. Database first model - This is the original bad boy. If you look in any documentation from MSDN you will see that every single thing points to "use the wizard". This coding style has been in the .NET platform since v1.0 days. However, you might point out that there are other "wizards" out there. You would be correct. There are tools that developed for other DB vendors (other than Microsoft) to that the CSDL and MSL are created for you. However, they require Visual Studio, but that's not the point. The point being is why there is even a CSDL and MSL required for such a simple task... You will shortly see that Microsoft "fixed" the method by the Code first model in the EF, however, I would be doing a disservice to you if I just said that the Code first model fixes everything.
    2. Model first model - This horrifically titled model is new to .NET since the EF v4.0 days. I won't bore you with details because little in the way was fixed in the line of VS to .NET inter-dependence. Go wherever you like and you will find, "use the wizard" as the only choice if you so choose to code with this model.
    3. Code first model - This model brings .NET in line with JPA 2.0 in most respects and if you were to ever use EF, I would highly suggest you stick to this model, it is much cleaner and nicer to work with, but alas, it is more manual and I would hate to increase the difficulty of your job. This model is new to .NET in EF v4.1 but PLEASE DO NOT USE THIS MODEL UNDER 4.1 use EF v4.2 or better and you will have little to worry about. (I'll spare you why you shouldn't use v4.1 for code first models, but it has a lot to do with commits, rollbacks, and transactions using that version versus the other version) See I'm getting off topic here, apologies. The code first model would be the first break from the VS + .NET dependency if it were not for the insane config file. Oh ho! You might say as you currently peruse the code first walk through, the config file addition is only but six lines and three elements of XML, that is way better than JPA with it's persistence.xml file! Guilty, I would say, yes the config file is indeed much simpler, however, for Microsoft DB products only. For you see, if you choose to use another DB vendor, prepare thyself for Step 7 in the walk-though! Setting an Initialization Strategy For you see, if you use another DB vendor, you will need VS 2010 and a pl

  165. Re:Android by SurfsUp · · Score: 1

    Having dealt with both I can say Oracle is much more evil than Microsoft.

    Impressive. How is that even possible?

    --

    Posted from my Android tablet

    --
    Life's a bitch but somebody's gotta do it.
  166. Re:Android by SurfsUp · · Score: 1

    Microsoft would not sue over someone implementing the API.

    Sorry, but I just can't take your word for that.

    --
    Life's a bitch but somebody's gotta do it.
  167. Re:Android by flimflammer · · Score: 1

    So let me get this straight. Microsoft makes a public promise not to sue over implementing the .NET framework, which they declare is both a legally binding and irrevocable promise, and you can't take their word on that?

    You'll have to excuse me if I'm a bit skeptical you're not just a nut with a full bodysuit of tinfoil.

  168. Re:Android by devent · · Score: 1
    I think I feed a troll, but anyway.

    The meaning of "final" for classes is "you can't inherit from it" (you can't change classes anyway). The meaning of "final" for methods is "you can't override it" (again, you can't change a method once it's defined). And for variables, you'll see the difference as soon as you try using them in "case".

    Oh com'on use some of your brains. The meaning is the same. If you can't inherit a class from, you can't change it. If you can't override a method, you can't change it. And I really don't know what "case" is suppose to do with final variables. Case is a Java language construct with have limitations, the limitations applied whether it's final or not. Yes, you can argue that it's a design flaw, but really when you are using switch-case anyway.

    It is incredibly annoying to navigate Java source trees because of all those useless folders on the top, like ./com/sun/java/... - the top three are completely pointless for example, because they have exactly one subfolder.

    That's an issue with the File Browser you are using. Also when are you really open the Java files in a text editor yourself, instead of using an IDE?

    This enforcement is for example very handy on a smartphone, where many apps are coming from different vendors. For example in Android. If you have a package com.devent.myapp (with needs to have a registered domain devent.com) you can save your stuff on /com/devent/myapp/. First, this enforced convention is very handy to avoid file collisions, and second, Android will delete everything in this app-directory automatically at deinstallation of the app.

    and this is very handy when it comes to e.g. generated code (which can then be all just shoved into a single directory without recreating the whole package structure).

    Yeah right, that is the most difficult issue of a code generator, to create directories.

    The false sense of security stems from the fact that you can always add your class to any package out there, and thereby gain access to package-private stuff.

    With is handy if you do unit testing. Also I don't think package-private is a security feature. It is what it means: package-private.

    You mean, a List of Lists?

    No I mean, using arrays for matrices and Collections for jagged-arrays. because jagged-arrays are not arrays anyway.

    And if both libraries just use a standard interface for arrays and jagged-arrays (Collections), instead of two incompatible types, we can actually have some interoperability. You can just convert a List to a Set without copying all of the elements, because a Set can be just a different view (or implementation) to a List. That's why a List and Set in Java have the same interface: Collection. So library A and B just use Collection and we all happy. The library that needs a 2D Matrix just use the toArray() method.

    --
    http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
  169. Re:Android by devent · · Score: 1

    The community is very big. Have you seen StackOverflow? The most popular languages there are .NET ones.

    Only that you have more questions for a language, does not mean it's more popular. If you want popularity, then I guess Tiobe is a much better source. With C# at place 5. (down from 4.), overturned by Objective-C.

    --
    http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
  170. Re:Android by jd2112 · · Score: 1

    Having dealt with both I can say Oracle is much more evil than Microsoft.

    Impressive. How is that even possible?

    --

    Posted from my Android tablet

    Easy. Once you work with both you realize that Microsoft isn't quite as evil as you thought (perhaps only about the 660th level of Hell evil) and Oracle is more evil than you could have possibly imagined. (667th level of Hell, they are digging out a new level just for Larry E.!)

    Actually with an Enterprise contract Microsoft support is among the best I've worked with. Oracle support is among the worst.

    --
    Any insufficiently advanced magic is indistinguishable from technology.
  171. Re:Android by Anonymous Coward · · Score: 0

    Wow. Such generalizations about people who Visual Studio. You really have no idea.

    You may have "encountered" people who fit what you have described above, but I'm willing to bet you have not "encountered" the thousands of VS developers who don't fit.

    It's like saying, "...I've met 100 Americans who are rude, so therefore all Americans are rude..." Guess what, there are over 300,000,000 Americans...some are rude, many are not. You can't (or shouldn't) generalize about a whole population of people based solely on what you personally have experienced.

    This doesn't just go for VS devs...the same can be said for any group of devs.

    No offense. Just thought I'd point that out.

    Good day.

  172. Re:Android by shutdown+-p+now · · Score: 1

    If you want popularity, then I guess Tiobe [tiobe.com] is a much better source.

    And you call me a troll? Have you looked at how TIOBE computes its index?

    If you want popularity, you look at the number of job openings.

  173. Re:Android by shutdown+-p+now · · Score: 1

    Oh com'on use some of your brains. The meaning is the same. If you can't inherit a class from, you can't change it. If you can't override a method, you can't change it.

    I suggest we stop going in circles on this one, and just agree to disagree. It's clear to me that the meaning is different in these cases, and I much prefer for it to be reflected in different keywords for clarity. If "final" is clear enough for you, I'm not going to argue, but I think it's silly to claim that it's some kind of major advantage either way.

    And I really don't know what "case" is suppose to do with final variables.

    You can only use a variable in "case" if it is a final variable of a primitive type or String, that is initialized with a constant expression. Java language spec even has a special term for this, which is "constant variable". Switch was just an example - there are more places in Java where this is important - just open the JLS and search for "constant expression".

    In C#, where similar distinction exists, it is distinguished when the variable is declared. If you want the variable to be used in constant expressions, you use "const" with it, and the compiler will ensure that its type and initializer satisfy all constraints (and produce an error if they don't). On the other hand, if you use "readonly", there are no constraints - you can use any type and any initializer - but the variable is no longer usable in a context where constant expressions are expected. It has other implications regarding versioning, as well: when you declare something as "const", you guarantee to all API clients that the value of that constant is never going to change in the future versions.

    This enforcement is for example very handy on a smartphone, where many apps are coming from different vendors. For example in Android. If you have a package com.devent.myapp (with needs to have a registered domain devent.com) you can save your stuff on /com/devent/myapp/. First, this enforced convention is very handy to avoid file collisions, and second, Android will delete everything in this app-directory automatically at deinstallation of the app.

    I was talking about source code, not class files. Java classes are normally distributed in .jar files, anyway. \

    I agree that it's not a big deal, but then I'm not the one who started picking on minor things in a language...

    With is handy if you do unit testing.

    A good unit testing framework couldn't care less about visibility rules because it can circumvent them if and when needed. E.g. TypeMock, which lets you do even more insane things, like mock static methods.

    Also I don't think package-private is a security feature. It is what it means: package-private.

    Visibility specifiers are a security feature when you have a sandbox. Suppose someone runs a downloaded applet in the browser - this requires a sandbox to be secure. Said applet is exposed to a certain subset of stock Java APIs, the API surface of which is deemed safe. But the API surface is stuff that's public - if the applet can get access to private members of a class (that are often some representations of a wrapped lower-level API), it could do more than it's normally permitted to do, such as e.g. read/write files anywhere on the filesystem where the user has access.

    Package-private is misleading in that it's a seemingly restricted specifier - much like private - that is, however, not really enforceable. If you have a private field, you can sandbox that in Java. If you have a package-private field, you cannot.

    Granted, the security model of relying on VM sandbox is flawed in any case (on both Java and .NET, where it exists as well) - applets and such should really run under a different account with permissions restricted according to what is needed. But that's not how applets work in practice, so.

  174. Re:Android by TheSkepticalOptimist · · Score: 1

    So, because your are an idiot, then VS sucks. That's pretty much run of the course for Slashdot opinions.

    What is hard about opening up a code file and coding? Or starting a project from 100's of templates. I found that all Eclipse has done is try to play catch up to VS and has not come close. You even said Eclipse has many shortcomings, largely because they are trying to do things that Microsoft has been doing for decades in VS.

    In fact with C#, VS is about the best IDE you are going to get with any development language. I would even accept that even C++ development on VS is lacking, but C# and Intellisense are about the most synergistic coupling I have yet to find in any language/IDE combination. Also, there are 2 new versions of VS since your first foray into "development" on VS.

    To say VS is "hard" and therefore it sucks pretty much solidifies that your opinion doesn't count. Any new IDE is going to be a struggle to become efficient in, I found Eclipse difficult and annoying to set up an Android project environment at first and while I use it now to develop Android and web stuff, but it pails in comparison in so many ways to VS.

    --
    I haven't thought of anything clever to put here, but then again most of you haven't either.
  175. Re:Android by TheSkepticalOptimist · · Score: 1

    Yeah

    public bool MyProperty { get; set; }

    Very clumsy...

    The only thing unsafe about delegates is the level of intelligence of the coder using them.

    Ah, you don't understand generics, that's ok, web development doesn't use them much anyways.

    --
    I haven't thought of anything clever to put here, but then again most of you haven't either.
  176. Re:Android by hobarrera · · Score: 1

    Actually, it's not a simple as "creating a proyect"; you need to create a "solution". Beats me why they decided to change the terminology everyone else uses.

    I found most of the IDE counterintuitive, with insane defaults, and it seemed it was deliberately trying to make things harder for the user (developer) at every turn.

  177. Re:Android by godefroi · · Score: 1

    Holy crap, I don't even know where to begin. Let's do this:

    See point that it was an example. Read into that, if you may, that it is a single element of a set. Therefore conclude, that I have a list of items "that depends on VS" but as oppose to getting into an exhaustive list of that set, I have merely stated a single element from the list.

    Uh huh, How's this for logic: If you were attempting to make an argument, and you had a "list" of evidence, you'd pick the best piece of evidence from your list to present. When that piece of evidence turns out to not be evidence at all, it bodes poorly for your entire list. You keep going on about EF. You seem to not like it at all. Why not simply not use it (as I have chosen to do)?

    Then, you go on about XAML. Your argument there is, "VS is the best/only viable XAML editor, therefore VS and .NET are inextricably tied together". Again, you've taken something built on top of .NET that has strong VS tooling (yet could be used via notepad and the command line, if one were persistent enough), and presented it as evidence. It's not.

    Why do we have static typing? Why is type safety important? It exists to help break programmers of bad habits.

    There's a lot of language designers that would disagree with you there. Static typing isn't a programmer training tool. It's not my place to educate you on that, however. This particular argument boils down to, "VS is bad, so .NET is bad, so VS is bad (because it's built on .NET)". Does that mean that VS2001 (the first version with .NET support) wasn't bad, since it wasn't built on .NET?

    Anyway, you seem to be a very angry person, and I wish you peace and luck in your endeavors.

    --
    Karma: Poor (Mostly affected by lame karma-joke sigs)
  178. Re:Android by clay5 · · Score: 1

    Generics Type Erasure: If this generics info at runtime is important to you, you can get that with JVM languages like Kotlin. "real" co/contra type variance generics: You can also get this on the JVM with Kotlin or Scala if this is an important feature. first class functions: Pretty much every JVM language except Java has this. Closures: Java has outer variable capture, which is the textbook definition of closures. Java has closures. Java does have the "final" requirement on outer variable capture, which some people argue that makes Java have not "real" closures, but this was done on purpose as letting programmers capture non-final variables would be a common source of programmer error as you see in C#. Secondly, I'd argue that for overall language cleanliness and conciseness, languages like Kotlin and Scala go beyond C#/Java. Thirdly, I'd argue that JVM has the broadest language support. Languages like Scala and Clojure and Fantom released both .NET and JVM versions, but only the JVM community really took them seriously and adopted them. The .NET culture is generally a very Microsoft-only place.

  179. Re:Android by slack_justyb · · Score: 1

    I wish you peace and luck in your endeavors.

    Sure no problem. Same to you as well.

    Why not simply not use it (as I have chosen to do)?

    Some of us do not have the fortune to pick and choose what we do and do not like. Instead our job is a function of what we are told to do and how well we meet that goal that is set by people other than ourselves. You should consider yourself lucky if you have such a position where you can pick and choose what to use.

    (yet could be used via notepad and the command line, if one were persistent enough)

    Feel free to try XAML via notepad if you like. I assure you that you will find yourself quickly mired in all of the problems that have arisen from the back and forth that Microsoft has made of the markup language. The explicit reason given for most of these changes is, "to make it easier for IDEs like Visual Studio to use the language." It is the logic that we should craft a language to make it easier to implement in an IDE that I cite as Microsoft's goal to link VS and .NET together. Microsoft has gone forward with the notion that you will be using an IDE from step one when considering changes to the .NET platform. Head over to MSDN and you'll see no shortage of proof.

    Static typing isn't a programmer training tool.

    I never said that it was a training tool. It's there to catch bad habits of casting. Many people would logically think that a double can be cast to string with no need to rely on API conversions. We have boxing and unboxing to thank for that. However, people get so hung up on .NET's boxing method that they think that it logically applies to custom types. Which in some cases, it does if we are talking about a simple structure with primitive types. However, if you want to take a class and do boxing, either invoke the complex methods required to do so, or invoke the wizard to create that boiler plate for you. However, with any boiler plate, if you create your own list, BST, or other data structure you cannot rely on the boiler plate because it will not go deep enough into the structure to carry out whatever your intended wishes were. If you head over to MSDN, they are totally silent on this fact. Instead the argument is just use the built-in structures within the .NET platform, because they have the required meta-data for Visual Studio to hook into.

    That's bunk thinking in my opinion. However, I guess you are content with just using anything that is pre-fabricated for you. However, not all of us have jobs that allow us to just sit there and put puzzle pieces together and call it a day.

    So yeah, you may have an argument if we were strictly talking about a world where everyone is expected to cookie cutter program. However, most programmer are tasked with much more than that. The .NET platform and VS is designed, ground up, to be a cookie cutter platform and if you want to go outside of that and Visual Studio does not provide a tool for it, then woe be to you. The normal approach it to build a library that is central for the functions that you rely on, but the .NET platform makes it near impossible to build those because there are so many hoops that have to be jumped through, those hoops exist because Microsoft figured there was a need for those to make it easier to use the structure in question with an IDE. That kind of rationale is suspect at best.

    At any rate it doesn't change the minds of the people at my work from thinking VS is the best stuff since sliced bread, and I doubt the same arguments would sway you either for pretty much the exact same reasons they won't give up VS. Visual Studio is indeed a nice IDE but it's fault is its hubris. It is so good at what Microsoft intended it to do, that it sucks at anything that Microsoft didn't foresee. That's my chief comp

  180. Re:Android by Chester+K · · Score: 1

    Are you a lawyer? I've been reading the promise Microsoft made, and it's all gibberish to me. And I doubt that even the original lawyer who drafted it would actually understand what he had written.

    As far as legalese goes, Microsoft's Community Promise is actually pretty clear.

    Basically, they grant you the right to use their patents to the extent of implementing the standards they've released under the promise. But in order to qualify, you have to implement the whole standard. (This is not a 'gotcha' clause so they can sue you if you have a bug, it's a clause to ensure that you can't take the patent grant and use it in a totally different context by saying you started from the standard specification and removed functionality until only the patented piece was left, then re-expanded it out to a totally different thing.)

    Once you've implemented the whole standard, you can even continue and add additional functionality to your implementation, so long as the original standard remains implemented. (This is in key contrast to Java's grants, which only apply if you implement exactly what they specify and nothing more -- that "and nothing more" part is what got Microsoft in trouble when they extended the syntax of J++ to include anonymous closures.)

    If you ever sue Microsoft over any patents involved in the specification you're implementing under the promise, the protection of the promise and its patent grants to you dissolve. It's "don't sue us, and we won't sue you", just scoped to a single standard -- in other words, you could sue Microsoft over other patents not related to the standard without losing your patent grant.

    It's also irrevocable. They can't just decide one day to no longer honor the (legally binding) promise.

    Compared to Java's grant, which even ends up involving things like field-of-use restrictions once you get the TCK license involved, it's incredibly permissive. Under the Community Promise, had Google used C# in the same way they used Java, they would be completely in line with the terms of the promise.

    --

    NO CARRIER