03-18-2016 12:51 AM
74 123
tools
  1. rhapdog's Avatar
    When a user launches an iOS app in WP, the Objective-C runtime has to be loaded and many iOS libraries. If after that the user launches an Android app, the Android runtime has to be loaded and many Android libraries. The same for Windows apps and HTML5 apps.
    Ah, no. My understanding from the Build is that the plug-in will convert the iOS API calls to W10 API calls, therefore, no iOS libraries are being loaded. The final product published to the store is a native Windows 10 app. Microsoft is making it easier to port, not trying to run iOS apps on WP. You've got that one wrong.

    To a large extent, the same is happening with Android, except there will be some portions of an Android runtime, as it is necessary to be able to fully sandbox it. It will still perform better on WP than on Android.

    I think most of the apps ported to WP will be Android apps because they require less changes or no changes at all to the original code base. iOS apps require more work and a bigger divergence in the code base.
    Actually, iOS apps will be an easier port, from what I understand.
    a5cent and Yazen like this.
    05-11-2015 04:08 PM
  2. a5cent's Avatar
    Going forward into W10 more required memory is still just an assumption currently, but it makes sense to think the OS will scale with the hardware available at the time.
    Specifically in regard to RAM consumption, that is mostly incorrect.

    It is only correct if an OS often struggles to keep all the programs in memory that it is frequently required to execute.

    This is often true for 512MB devices. For example, such devices will often forsake executing background tasks, while the user is making a VoIP call. There is rarely enough RAM to do both.

    On 1GB devices however, that sort of competition is very rare, simply because the resource RAM isn't limited to the same extent.

    It's more accurate to think of RAM the other way around: Not having enough RAM can seriously degrade performance. Once you have enough RAM to keep most everything OS related in memory, in addition to four or five of the user's favorite apps, that's when adding even more RAM starts to offer ever diminishing returns.
    Saying that something "scales" implies a linear relationship between a device's RAM capacity and some other measurable benefit. There is no such benefit to be found beyond the 1GB mark, so software can't be said to scale in that way.
    Last edited by a5cent; 05-11-2015 at 05:00 PM.
    Laura Knotek and rhapdog like this.
    05-11-2015 04:37 PM
  3. a5cent's Avatar
    most of the apps ported to WP will be Android apps because they require less changes or no changes at all to the original code base.
    Source please. Everything I've read so far suggests the exact opposite.
    rhapdog likes this.
    05-11-2015 04:53 PM
  4. a5cent's Avatar
    Errr, the L535 does have 1gb ram, low end perhaps but it's not a 512 device.
    Gosh darn it, sorry 'bout that. Keep forgetting the 535 is a 1GB device. 😒

    I guess I just didn't quite grasp what improvement would have been expected from a L535 with more than 1GB of RAM.
    Last edited by a5cent; 05-11-2015 at 06:04 PM.
    Wbutchart1 likes this.
    05-11-2015 05:04 PM
  5. Spectrum90's Avatar
    Ah, no. My understanding from the Build is that the plug-in will convert the iOS API calls to W10 API calls, therefore, no iOS libraries are being loaded. The final product published to the store is a native Windows 10 app. Microsoft is making it easier to port, not trying to run iOS apps on WP. You've got that one wrong.
    Objective-C apps are universal apps, they have access to the whole WinRT API surface, but Microsoft also implemented a subset of the iOS APIs, so apps can be ported easily. Some of these iOS APIs are probably thin adapters to WinRT APIs. In other cases It's impossible to replicate the original behavior using WinRT components. For example the UI, Microsoft implemented UIKit, the iOS UI framework, directly over DirextX, so UIKit is at the same level as XAML, not reusing XAML.
    WP has to load the Objective-C runtime and the iOS libraries when an iOS app is launched.

    To a large extent, the same is happening with Android, except there will be some portions of an Android runtime, as it is necessary to be able to fully sandbox it. It will still perform better on WP than on Android.
    I think for Android Microsoft used the source code of AOSP replacing only the components that interact with Operating System.
    For APIs that require high level OS services, for example keyboard or share contract, Microsoft also replaced the Android implementation for the Windows implementation. However, most APIs are just the original AOSP code, I think.
    Last edited by Spectrum90; 05-11-2015 at 05:43 PM.
    05-11-2015 05:26 PM
  6. Spectrum90's Avatar
    Source please. Everything I've read so far suggests the exact opposite.
    http://channel9.msdn.com/Events/Build/2015/3-610
    http://channel9.msdn.com/Events/Build/2015/2-702
    05-11-2015 05:27 PM
  7. a5cent's Avatar
    WP has to load the Objective-C runtime and the iOS libraries when an iOS app is launched.

    There is no such thing as "the Objective C runtime".
    Thx. Will take a look tomorrow.
    05-11-2015 05:52 PM
  8. rhapdog's Avatar
    For example the UI, Microsoft implemented UIKit, the iOS UI framework, directly over DirextX, so UIKit is at the same level as XAML, not reusing XAML.
    Thank you for clearing that up. Like I said, it was my understanding, but I haven't looked into it as deep as you have, because I'm retired from having to do all that still. Glad I'm retired. Still, it's good to know exactly what is happening underneath, since I still retain the curiosity of the programmer, just not the drive to "keep at it" as hard as I once did.
    Spectrum90 likes this.
    05-11-2015 05:53 PM
  9. Spectrum90's Avatar
    There is no such thing as "the Objective C runtime".

    Thx. Will take a look tomorrow.
    Objective-C is dynamic, so of course it has a runtime.

    Objective-C is a runtime oriented language, which means that when it's possible it defers decisions about what will actually be executed from compile & link time to when it's actually executing on the runtime. This gives you a lot of flexibility in that you can redirect messages to appropriate objects as you need to or you can even intentionally swap method implementations, etc. This requires the use of a runtime which can introspect objects to see what they do & don't respond to and dispatch methods appropriately.
    Cocoa Samurai: Understanding the Objective-C Runtime



    Besides, all programing languages can be considered to have a runtime:

    As a simple example of a basic runtime, the runtime system of the C language is a particular set of instructions inserted into the executable image by the compiler. Among other things, these instructions manage the processor stack, create space for local variables, and copy function-call parameters onto the top of the stack. There are often no clear criteria for deciding which language behavior is considered inside the runtime system versus which behavior is "compiled". In this case, the reason that C's stack behavior is part of the runtime, as opposed to part of a keyword of the language, is that it is systematic, maintaining the state of the stack throughout a program's execution. The systematic behavior implements the execution model of the language, as opposed to implementing semantics of particular keywords which are directly translated into code that computes results.
    Runtime system - Wikipedia, the free encyclopedia
    Last edited by Spectrum90; 05-12-2015 at 12:02 AM.
    05-11-2015 11:33 PM
  10. a5cent's Avatar
    Objective-C is dynamic, so of course it has a runtime.
    Okay, a "runtime library" and a "language runtime" are two completely different things, yet you're implying that both are conceptually similar because they both include the word "runtime". We could almost just as well say that a person who deserts, and my ice cream deserts are the same thing, because both include the word "deserts". Somewhat ridiculous.

    Yes, all languages except assembler have some kind of runtime support, but pretending they're all similar or related just isn't helpful.

    Objective C, C and C++ all link with various standard language and platform RUNTIME LIBRARIES. Objective C's runtime libraries are a little more involved, but for all these languages, it's the CPU that defines the runtime model they execute under.

    This is not true of languages like Java or C# who's execution model is not governed by the CPU but by an intermediate software layer that abstracts the hardware. This is the LANGUAGE RUNTIME. It's what allows these programs to be platform independent.

    Normally, the term "runtime" is understood to refer to a language runtime, but I'll try and better qualify that going forward.

    Anyway, the point is somewhat getting lost here. The reason this matters is because language runtimes can, for some applications and on some lower power hardware, incur a significant amount of time (CPU cycles) and space (RAM) overhead. This is true for WP's C# apps. It will also be true for Android's Java apps that are ported to WP.

    However, that won't be true of the iOS apps that are ported to WP. Without the need for a language runtime, those apps won't incur the same resource penalties, which includes RAM. These apps will get by just fine on a 1GB device, just like the iPhone is.

    I'm skeptical the same can be said for apps ported from Android.
    Last edited by a5cent; 05-12-2015 at 04:30 AM.
    rhapdog likes this.
    05-12-2015 04:07 AM
  11. psudotechzealot's Avatar
    Has any developer(Who, that did not previously have an app in the MSFT store) revealed to the public, that they will now, finally, create an app for windows10?
    05-12-2015 06:17 AM
  12. Spectrum90's Avatar
    Okay, a "runtime library" and a "language runtime" are two completely different things, yet you're implying that both are conceptually similar because they both include the word "runtime". We could almost just as well say that a person who deserts, and my ice cream deserts are the same thing, because both include the word "deserts". Somewhat ridiculous.

    Yes, all languages except assembler have some kind of runtime support, but pretending they're all similar or related just isn't helpful.

    Objective C, C and C++ all link with various standard language and platform RUNTIME LIBRARIES. Objective C's runtime libraries are a little more involved, but for all these languages, it's the CPU that defines the runtime model they execute under.

    This is not true of languages like Java or C# who's execution model is not governed by the CPU but by an intermediate software layer that abstracts the hardware. This is the LANGUAGE RUNTIME. It's what allows these programs to be platform independent.

    Normally, the term "runtime" is understood to refer to a language runtime, but I'll try and better qualify that going forward.

    Anyway, the point is somewhat getting lost here. The reason this matters is because language runtimes can, for some applications and on some lower power hardware, incur a significant amount of time (CPU cycles) and space (RAM) overhead. This is true for WP's C# apps. It will also be true for Android's Java apps that are ported to WP.

    However, that won't be true of the iOS apps that are ported to WP. Without the need for a language runtime, those apps won't incur the same resource penalties, which includes RAM. These apps will get by just fine on a 1GB device, just like the iPhone is.

    I'm skeptical the same can be said for apps ported from Android.
    A runtime library is a set of APIs used to invoke functionality of the runtime environment. In the case of Objective-C the runtime environment is not implemented only by the CPU or the Operating system. The runtime environment in Objective-C provides high level services that are specific to the language. Objective-C is dynamic, It supports reflection. The compiler stores type information of the object model in the binary, the runtime environment load that information and provide reflection services that are invoked through the runtime library.

    So, yes, Objective-C has a language runtime an incur in an overhead. Although, problem for WP is not that Objective-C has a language runtime, the problem is that iOS/Android/Windows/HTML5 have different runtime environments and libraries, so more memory could be needed.
    05-12-2015 11:07 AM
  13. a5cent's Avatar
    ^ I understand your point and agree with most of it. I just disagree with your definition of what qualifies as a language runtime.

    No language specific and CPU independent execution environment = No language runtime.
    C++ also supports runtime reflection mechanisms, yet nobody claims it depends on a language runtime. What Objective C offers is no different. It's just a more elaborate runtime library.
    However, I do agree that simultaneously having to support multiple runtimes could pose a major problem. I just don't yet know enough to judge. I hope MS has a few tricks up their sleeve, e.g. by possibly converting Java to something that runs on the CLR rather than ART,
    Last edited by a5cent; 05-12-2015 at 04:31 PM.
    Laura Knotek likes this.
    05-12-2015 04:09 PM
  14. syspry's Avatar
    I don't even know why there's even a thread about this. Putting the bare minimum of RAM is just plain miserly and stupid. Apple deserves equal scorn here for doing it too.

    I don't want nor do I buy hardware with minimalist specs. You'd think RAM was gold with these guys based on how they hold back
    Laura Knotek likes this.
    05-12-2015 05:19 PM
  15. James Light's Avatar
    For me the question is how much life still has the -20 series...
    05-12-2015 05:23 PM
  16. Spectrum90's Avatar
    ^ I understand your point and agree with most of it. I just disagree with your definition of what qualifies as a language runtime.

    No language specific and CPU independent execution environment = No language runtime.
    C++ also supports runtime reflection mechanisms, yet nobody claims it depends on a language runtime. What Objective C offers is no different. It's just a more elaborate runtime library.
    However, I do agree that simultaneously having to support multiple runtimes could pose a major problem. I just don't yet know enough to judge. I hope MS has a few tricks up their sleeve, e.g. by possibly converting Java to something that runs on the CLR rather than ART,

    Reflection is a service of the runtime environment specific to the language, there is no such a thing as a "type system" in machine code.
    The C++ compilers store some type information, but the C++ runtime doesn't support reflection. Although, some type information can be obtained through hacks.
    In general I would say, the runtime is just simpler for low level languages, and more complex for higher level languages. Objective-C definitely has runtime environment functionality that is language specific, C++ too. C# and Java have A LOT more runtime functionality. Although, the tendency for mobile is to move some of that to the compiler to improve the performance.

    I don't know if Microsoft has ART working, I haven't heard anything about it. That would help.
    05-12-2015 08:29 PM
  17. a5cent's Avatar
    I don't even know why there's even a thread about this. Putting the bare minimum of RAM is just plain miserly and stupid. Apple deserves equal scorn here for doing it too.
    Simple:

    A) With 512MB devices on the market, it's quite clear that 1GB is not the bare minimum.
    B) Sell 10 million of anything and see how quickly it matters to you whether it's worthwhile to save $5. That's 50 million more profits or 50 million less in losses.
    C) On a 720p device, adding more than 1GB to a WP device would have very little noticeable benefit (on WP8.1, no idea about W10)
    rhapdog likes this.
    05-13-2015 01:11 AM
  18. colinkiama's Avatar
    For me the question is how much life still has the -20 series...
    I think it will last till next year, that's when I expect all the really complex apps to be released
    05-13-2015 03:08 PM
  19. syspry's Avatar
    Simple:

    A) With 512MB devices on the market, it's quite clear that 1GB is not the bare minimum.
    B) Sell 10 million of anything and see how quickly it matters to you whether it's worthwhile to save $5. That's 50 million more profits or 50 million less in losses.
    C) On a 720p device, adding more than 1GB to a WP device would have very little noticeable benefit (on WP8.1, no idea about W10)
    I could see your point if we were speaking of phones in developing markets being used for little more than light usage. In high end flagship land, no 1gb just doesn't cut it anymore. Especially for people demanding robust multitasking to keep apps retaining their current state when another app is running in the foreground. I'm even hearing iPhone 6+ users complaining a lot lately on that particular issue.

    I'm guessing you're pretty firm in your thoughts on this, but in my opinion excusing anything less than 2gb on a modern flagship on WP, iOS, and Android is just that - an excuse.

    1gb of RAM on a WP or iPhone won't hold a candle to what you'd be able to do with 2gb and up for multitasking. Personally I think ANY flagship mobile device launching in 2015 should be running 3gb for your average 2 years covering 2015-2017. As I said in my last post, why are we even debating this? As long as you're willing to pay for it, why not want it? It's not as if 1-2 GB of RAM is going to end up being a notable price difference in modern markets. It's not as if any of these companies isn't going to offer low-mid range phones with reduced specs for those unable to buy a flagship level phone anyway. I think Apple was stubborn and stingy to do it on the iPhone 6. They should've upped it to 2gb and saved the 1gb for an iPhone 6C.

    Wanna bet your next pay check they move to 2gb this fall?
    05-13-2015 08:32 PM
  20. colinkiama's Avatar
    I could see your point if we were speaking of phones in developing markets being used for little more than light usage. In high end flagship land, no 1gb just doesn't cut it anymore. Especially for people demanding robust multitasking to keep apps retaining their current state when another app is running in the foreground. I'm even hearing iPhone 6+ users complaining a lot lately on that particular issue.

    I'm guessing you're pretty firm in your thoughts on this, but in my opinion excusing anything less than 2gb on a modern flagship on WP, iOS, and Android is just that - an excuse.

    1gb of RAM on a WP or iPhone won't hold a candle to what you'd be able to do with 2gb and up for multitasking. Personally I think ANY flagship mobile device launching in 2015 should be running 3gb for your average 2 years covering 2015-2017. As I said in my last post, why are we even debating this? As long as you're willing to pay for it, why not want it? It's not as if 1-2 GB of RAM is going to end up being a notable price difference in modern markets. It's not as if any of these companies isn't going to offer low-mid range phones with reduced specs for those unable to buy a flagship level phone anyway. I think Apple was stubborn and stingy to do it on the iPhone 6. They should've upped it to 2gb and saved the 1gb for an iPhone 6C.

    Wanna bet your next pay check they move to 2gb this fall?
    Yeah you are right about flagships but if you read the title of this thread it's about the whole os requiring 1gb ram which obviously isn't true since even the 520 has access to the tech preview and they are 512mb ram devices.
    05-16-2015 03:59 PM
  21. daimv's Avatar
    Oh the good old times when you could multitask with 512 MB in Symbian (Nokia 808) or 256 MB (Nokia N8), lots of fun :P although yeah those phones are slow...

    Anyhow, here's to 2018 and 32GB RAM in phones :P (haha! and 128 GB in laptops)
    05-21-2015 02:24 AM
  22. Alfa Kapa's Avatar
    Anyhow, here's to 2018 and 32GB RAM in phones :P (haha! and 128 GB in laptops)
    If I can recall correctly, kingston has already shown it's 128Gb ram modules for desktops (dual 64Gb modules).
    And technology is there for more than 4Gb ram in smartphones at the moment, so I agree with you, in 2018-2020 we might have those specs in the high end devices!

    As a response to the OP, having used for many months the lumia 630, I could count more than 100 crashes/ out of memory instanses.
    But in the last 2 months that I own the 730 I haven't encounter any problem of this kind (well IE has crashed on me 2 times, but nothing major)
    So, for WP8.1 1Gb is enough. Having said this, W10m might feel quicker in 2Gb+ devices, but for the moment we clearly don't know.

    Having installed W10tp 10080 on the 630 (my guinea pig), at least the new MSN apps definetely feel snappier than the old once!
    05-25-2015 02:36 AM
  23. P_1's Avatar
    Totally agree with you. But don't you think guys that internal memory for the windows phone should be bumped up to 16 GB.
    Koen C likes this.
    05-25-2015 03:09 AM
  24. Paulius V's Avatar
    rhapdog, please don't compare a Samsung phone with a smartphone. They have so much bloatware that their 2GB phones perform like 1GB, or even worse, 512MB phones from other manufacturers.
    Last edited by Guytronic; 03-18-2016 at 01:23 AM.
    03-18-2016 12:51 AM
74 123

Similar Threads

  1. Why there is no gdr2 update for lumia 730?
    By Brijesh Langalia in forum Nokia Lumia 730 & 735
    Replies: 5
    Last Post: 05-26-2015, 04:19 AM
  2. I have download mp3 on Lumia 532. Where do they download to?
    By Windows Central Question in forum Ask a Question
    Replies: 2
    Last Post: 05-23-2015, 01:41 PM
  3. Can I download meta trade 4 for my lumia 535?
    By Windows Central Question in forum Ask a Question
    Replies: 1
    Last Post: 05-07-2015, 04:42 AM
  4. Any developers planning an Insteon app for the Band?
    By WPCentral Question in forum Ask a Question
    Replies: 0
    Last Post: 05-06-2015, 10:02 PM
LINK TO POST COPIED TO CLIPBOARD