Slashdot Mirror


Novell Bringing .Net Developers To Apple iPad

GMGruman writes "Paul Krill reports that Apple's new iPad could be easier to write apps for, thanks to Novell's MonoTouch development platform, which helps .Net developers create code for the iPad and fully comply with Apple's licensing requirements — without having to use Apple's preferred Objective-C. This news falls on the footsteps of news that Citrix will release an iPad app that lets users run Windows sessions on the iPad. These two developments bolster an argument that the iPad could eventually displace the netbook."

4 of 315 comments (clear)

  1. Re:Certainly won't displace it in... by Darkness404 · · Score: 3, Informative

    What the hell is it with you flash boys?

    Flash would open up a -lot- of content. Things like Hulu, Homestar Runner and many, many Flash games. How many times have you run into sites that are Flash only? There are still a lot of them out there, or sites with HTML, but Flash navigation.

    But really why the hell should most people care about flash? So I can't play Bloons Tower Defender 4, or some other stupid game. Give me a real reason to need flash. My guess is whatever your reason, there's already an app for that.

    Hulu.

    --
    Taxation is legalized theft, no more, no less.
  2. Re:Easier? by bondsbw · · Score: 3, Informative

    You really have no clue what you're talking about, do you?

    Objective-C is solid, only on its second release (2.0). It has a learning curve for most non-Apple devs. Based on Smalltalk, messages (methods) are bound at runtime. Garbage collection and properties were added in the latest version.

    Java is very stable, but given the number of releases I would say less solid (it's on its seventh major release, with a beta for it's eighth). Based loosely on C++, but with garbage collection (no pointers), it is really the only system that produces true cross-platform binaries.

    C# is on its third version (3), although the runtime is on its fifth (3.5). Most people agree that as a language, it is superior to Java due to support for events, functional/lambda-style programming, LINQ, generics (which are generally considered better than Java's), etc. C# is standardized, but open source/cross platform implementations (Mono) are behind those from Microsoft. Silverlight, however, is available cross-platform via Moonlight. The next version is in the works (C#/.NET 4.0).

    I really don't get where you were saying "if you crash your data is gone". That doesn't even make sense, in the context of a computer programming language.

    --
    All my liberal friends think I'm a conservative, all my conservative friends think I'm a liberal.
  3. Re:as someone who programmed for both by furball · · Score: 3, Informative

    Garbage collection doesn't save you from leaks. A developer still has to be conscious of memory usage even in systems with GC.

    At the same time, Xcode offers static code analysis that tells you when you are leaking memory at compile time. There are a lot of language innovations in Objective-C that is noteworthy. As the iPhone's hardware capabilities catches up (that A4 chip sure is interesting), I'd expect to see GC and the introduction of blocks into the iPhone SDK.

  4. Re:Easier? by shutdown+-p+now · · Score: 3, Informative

    ObjC as used on the Mac combines the best of both worlds -- you get pointers for low level control, *and* a nice OO framework/API and niceties like garbage collection.

    It should be noted that this is equally true for C# - it also has raw pointers and related stuff available for when you need it, but otherwise it's fully OO, runs under VM with GC, and so on.

    Out of my head, I can think of a few advantages either one has over the other.

    C# advantages:
    - namespaces
    - generics, so all collections can be statically typed
    - first-class functions and lambdas (closures) with argument type inference
    - LINQ query comprehensions (a la Python's "[x for x in ...]", but much more extensive - covering sorting, grouping, joins etc.
    - portable code generation with JIT(System.Reflection.Emit & DynamicMethod)
    - mark-compact generational GC (ObjC one is a conservative mark & sweep, which means that it's both slower and suffers more from heap fragmentation)

    ObjC advantages:
    - truly dynamic dispatch, objects can intercept unknown messages sent to them, redirect them etc
    - duck typing (C# is going to have it in 4.0, though, which is right around the corner)
    - can avoid GC altogether even when using all OO-related language facilities, which can have some performance benefits
    - can use C/C++ libraries directly, no wrapping or FFI declarations needed
    - gcc generally produces better optimized code than .NET JIT, much less Mono JIT

    In general, I'd say that C# is a little bit more high-level, but overall the preference for one or another depends on whether you like static or dynamic typing more. ObjC provides more features to go with the latter, but can be type-unsafe at times (e.g. due to non-generic collections).