This and super keyword

what is the difference between this and super keyword?

this serves as a reference to the current object whilst super refers to the superclass of the current object.

Similar Messages

  • This and super keywords, array.length attribute

    'this' and 'super' keywords and array.length attribute are declared in which java class?
    and also during running of a java program how they are initialized and how they work?

    'this' and 'super' keywords and array.length attribute are declared in which java class?They are not declared in any Java class, any more than the keywords 'class', 'interface', 'for', 'while', etc., are. They are defined in the grammar of the Java language, in the Java Language Specification.
    and also during running of a java program how they are initialized and how they work?That's much too large a question for a forum. Try reading the Java Tutorial.

  • This() and super() invocations in constructor bodies

    Hi,
    Could someone please explain why it is not allowed to explicitly
    call this() or super() in a constructor body anywhere as opposed
    to the first statement in the constructor (which in turn implies that
    this() and super() can not be used together) ?
    Also, If the constructor is a constructor for an enum type, it is a compile-time
    error for it to invoke the superclass constructor explicitly. Why ?
    And the last question - why it is not allowed to invoke this() or super()
    with instance fields ?
    Cheers,
    Adrian

    AdrianSosialik wrote:
    Could someone please explain why it is not allowed to explicitly
    call this() or super() in a constructor body anywhere as opposed
    to the first statement in the constructorI think it was a language design decision. One could allow certain statements before invoking another constructor, but this would probably cause more confusion than help. So I guess it was deliberatly chosen to not allow this.
    (which in turn implies that this() and super() can not be used
    together) ?Yes, but if this would be permitted, it would also be harder to guarantee that a superclass constructor gets called exactly once.
    Also, If the constructor is a constructor for an enum type,
    it is a compile-time error for it to invoke the superclass
    constructor explicitly. Why ?Could you provide a "compilable" code snippet that demonstrates this?
    And the last question - why it is not allowed to invoke this()
    or super() with instance fields ?As you are not able to store something in them before the invocation, they contain their default values... (the JVM allows storing values in instance fields before invoking another constructor, but it was apparently decided to not include such a thing in Java)

  • What's the difference between this and super in this class

    public interface Doggie {
    public void wao();
    public void fetchBall();
    public void run();
    public void sleep();
    public class Kittie {
    public void miao() {
    public void catchRat() {}
    public void run() {}
    public void sleep() {}
    public class KtoD extends Kittie implements Doggie {
    public void wao() {
    this.miao();//here super.miao() will work too,
    //what is the difference between them?
    public void fetchBall() {
    this.catchRat();//here too
    public void run() {
    super.run();
    public void sleep() {
    super.sleep();
    }

    well, just off the top of my head (someone who wants to quote the relevant parts of the JLS can reply here too) - this makes sense, because your KtoD class extends Kittie, which has a miao method. You've not overridden this method, so KtoD's miao method is Kittie's method. Thus, this.miao() and super.miao() refer to the same method. If you had overridden this method in your KtoD class then this.miao() would refer to the overridden miao method, and if you had wanted to call the miao method from Kittie then you would have had to use super.miao()
    Did that answer your question?
    Lee

  • This and super?

    anybody knows why when I used "this" to call a subclass in a subclass and used "super" to call a subclass in a subclass the output is the same
    Is there any difference with that 2? thanks..

    CodeSniffer wrote:
    The "super" calls the method in the first class , it ignores the same name in other subclasses, it just calls the first method declared in the first class
    and the "this" calls the method just within the class
    am i right?Is that description consistent with the output from this program?
    class A {
        public void f() {System.out.println("A.f");}
        public void g() {System.out.println("A.g");}
        public void h() {System.out.println("A.h");}
    public class B extends A {
        @Override public void g() {System.out.println("B.g");}
        public void example() {
            super.f();
            this.f();
            super.g();
            this.g();
            super.h();
            this.h();
        public static void main(String[] args) {
            new C().example();
    class C extends B {
        @Override public void h() {System.out.println("C.h");}
    }

  • Keywords "this" and "super"

    Hi,
    For the readability of my codes, I use the keyword "super" instead of "this" or nothing in a class to refer to the metheod defined in its super class, even if there is no overwritting of that method.
    Is there any risk of this practice?
    Your comments are welcome.
    Cheers,
    Pengyou

    I was not convinced by the first two ...You should have your keyboard taken away. :pclass RealizationOfSomething {
    protected void doSomething() {
    // implementation here
    // implementation here
    // implementation here
    // implementation here
    // implementation here
    // implementation here
    // implementation here
    class MyClass extends RealizationOfSomething {
    public void doSomethingElse() {
    //first do many other things .....
    //then doSomething as
    super.doSomething(); // 1
    this.doSomething(); // 2
    doSomething(); // 3
    A: if MyClass overrides doSomething, then 1 is different from 2
    B: if MyClass does not override doSomething, then is 1 the same as 2 (performance)?
    If yes, then for the reason of "readability", I prefer 1; for the reason of maintenance, I accept 2.
    In any case, I would ignore the lazy case 3, although most people use it.
    This is my conclusion.
    Pengyou

  • This and super funda

    what is the difference b/w the statements
    super(title);and
    this.title=title;in the definition of a constructor for a class
    sam

    sorry was feeling sleepy so asked such a ques.
    thanx neway
    samThen wake up my dear!
    These things are fun and they're right at the heart of OOPs - so they have to be understood and <emphasis>PLAYED WITH</emphasis>, this is the only real way to understand - So be awake and play, it was written just for you;-class SuperClass{
       String str = "Hello my baby subclass.";
       public SuperClass(){
          System.out.println("I'm right right here");
       public SuperClass(String str){
          System.out.println(this.str);
    public class Subclass extends SuperClass{
       static String str="Hi dad, where's super constructor?";
       public static void main(String []params){
          new Subclass("");
       Subclass(String str){
          super(str);
          System.out.println(this.str);
          new SuperClass();

  • This ans super

    < Why the "this" and "super" objects of java are non-=static? >

    JoachimSauer wrote:
    What would a static "this" refer to?A static this (you'd have to call it something else, say thisClass) would be treated as an alias for the class name of the enclosing class. You could use it in situations like:
    private static ImageIcon = new ImageIcon(thisClass.class.getResource("img.png"));Or
    private static Log log = LogFactory.getLog(thisClass.class);

  • I have a new mac book pro System Version: OS X 10.9.4 just one week old. When i play games using chrome the mac gets super hot and in the middle and the bottom. I had to return a mac last week because of this and got a new one replaced. But it still

    I have a new mac book pro System Version: OS X 10.9.4 just one week old. When i play games using chrome the mac gets super hot and in the middle and the bottom. I had to return a mac last week because of this and got a new one replaced. But it still

    I ran the diagnostics suggested in Macbook Pro Running Slow and Overheating, High kernel_task CPU Usage. Results below. Any help would be great.
    System Version: OS X 10.9.4 (13E28) 
    Kernel Version: Darwin 13.3.0
    Boot Mode: Normal
    Model: MacBookPro11,1
    USB
       Dell USB Optical Mouse (Dell Inc.)
    System diagnostics
       2014-09-20 PluginProcess spin
       2014-09-20 PluginProcess spin
       2014-09-20 iTunes spin
       2014-09-22 PluginProcess spin
       2014-09-22 PluginProcess spin
       2014-09-25 PluginProcess spin
       2014-09-26 Google Chrome spin
       2014-09-26 Google Chrome spin
    User diagnostics
       2014-09-20 CalendarAgent crash
       2014-09-22 DashboardClient crash
    Kernel messages
       Sep 26 17:21:23   IOPPF: Sent gpu-internal-plimit-notification last value 4 (rounded time weighted average 4)
       Sep 26 17:21:35   IOPPF: Sent cpu-plimit-notification last value 5 (rounded time weighted average 5)
       Sep 26 17:21:35   IOPPF: Sent gpu-internal-single-slice-plimit-notification last value 3 (rounded time weighted average 3)
       Sep 26 17:21:35   IOPPF: Sent gpu-internal-plimit-notification last value 3 (rounded time weighted average 3)
       Sep 26 17:21:47   IOPPF: Sent cpu-plimit-notification last value 8 (rounded time weighted average 7)
       Sep 26 17:21:47   IOPPF: Sent gpu-internal-single-slice-plimit-notification last value 3 (rounded time weighted average 3)
       Sep 26 17:21:47   IOPPF: Sent gpu-internal-plimit-notification last value 3 (rounded time weighted average 3)
       Sep 26 17:22:01   IOPPF: Sent cpu-plimit-notification last value 5 (rounded time weighted average 7)
       Sep 26 17:22:01   IOPPF: Sent gpu-internal-single-slice-plimit-notification last value 2 (rounded time weighted average 3)
       Sep 26 17:22:01   IOPPF: Sent gpu-internal-plimit-notification last value 2 (rounded time weighted average 3)
       Sep 26 17:22:21   IOPPF: Sent cpu-plimit-notification last value 10 (rounded time weighted average 9)
       Sep 26 17:22:21   IOPPF: Sent gpu-internal-single-slice-plimit-notification last value 4 (rounded time weighted average 3)
       Sep 26 17:22:21   IOPPF: Sent gpu-internal-plimit-notification last value 4 (rounded time weighted average 3)
       Sep 26 17:22:34   IOPPF: Sent cpu-plimit-notification last value 8 (rounded time weighted average 8)
       Sep 26 17:22:34   IOPPF: Sent gpu-internal-single-slice-plimit-notification last value 5 (rounded time weighted average 5)
       Sep 26 17:22:34   IOPPF: Sent gpu-internal-plimit-notification last value 5 (rounded time weighted average 5)
       Sep 26 17:22:47   IOPPF: Sent cpu-plimit-notification last value 6 (rounded time weighted average 6)
       Sep 26 17:22:47   IOPPF: Sent gpu-internal-single-slice-plimit-notification last value 5 (rounded time weighted average 5)
       Sep 26 17:22:47   IOPPF: Sent gpu-internal-plimit-notification last value 5 (rounded time weighted average 5)
       Sep 26 17:23:01   IOPPF: Sent cpu-plimit-notification last value 7 (rounded time weighted average 7)
       Sep 26 17:23:01   IOPPF: Sent gpu-internal-single-slice-plimit-notification last value 5 (rounded time weighted average 5)
       Sep 26 17:23:01   IOPPF: Sent gpu-internal-plimit-notification last value 5 (rounded time weighted average 5)
       Sep 26 17:23:12   IOPPF: Sent cpu-plimit-notification last value 6 (rounded time weighted average 6)
       Sep 26 17:23:12   IOPPF: Sent gpu-internal-single-slice-plimit-notification last value 5 (rounded time weighted average 5)
       Sep 26 17:23:12   IOPPF: Sent gpu-internal-plimit-notification last value 5 (rounded time weighted average 5)
    Extrinsic daemons
       com.adobe.fpsaud
    Extrinsic agents
       com.google.keystone.user.agent
    launchd items
       /Library/LaunchDaemons/com.adobe.fpsaud.plist
        (com.adobe.fpsaud)
       Library/LaunchAgents/com.apple.FolderActions.enabled.plist
        (com.apple.FolderActions.enabled)
       Library/LaunchAgents/com.apple.FolderActions.folders.plist
        (com.apple.FolderActions.folders)
       Library/LaunchAgents/com.google.keystone.agent.plist
        (com.google.keystone.user.agent)
    Startup items
       /Library/StartupItems/TuxeraNTFSUnmountHelper/TuxeraNTFSUnmountHelper
    Extrinsic loadable bundles
       /Library/Internet Plug-Ins/Flash Player.plugin
        (com.macromedia.Flash Player.plugin)
       /Library/PreferencePanes/Flash Player.prefPane
        (com.adobe.flashplayerpreferences)
       /Library/PreferencePanes/Tuxera NTFS.prefPane
        (com.tuxera.ntfs.mac.prefpane)
       Library/Address Book Plug-Ins/SkypeABDialer.bundle
        (com.skype.skypeabdialer)
       Library/Address Book Plug-Ins/SkypeABSMS.bundle
        (com.skype.skypeabsms)
    User login items
       iTunesHelper
       Google Chrome
    Restricted user files: 45
    Elapsed time (s): 75

  • I have to wipe my computer clean as I have a corrupted file some where,I was wondering if I will lose all my keywords if i do this and what should i do to pervert this

    I have to wipe my computer clean as I have a corrupted file some where, I was wondering if I will lose all my keywords if i do this and what should I do to pervert this.

    Keywords are stored in the catalog. Just be sure your catalog(s) is backed up as well as all you image files before reformatting the drive.

  • My phone gets super hot! What is making my phone of this and how do I stop it from getting hot?

    My phone gets super hot! What is making my phone of this and how do I stop it from getting hot?

    If the internal temperature gets too high, you will see the following.
    Has this occured?

  • I have a new mac book pro System Version: OS X 10.9.4 just one week old. When i play games using chrome the mac gets super hot and in the middle and the bottom. I had to return a mac last week because of this and got a new one replaced.

    i have a new mac book pro System Version: OS X 10.9.4 just one week old. When i play games using chrome the mac gets super hot and in the middle and the bottom. I had to return a mac last week because of this and got a new one replaced.The issue still remains

    I ran the diagnostics suggested in Macbook Pro Running Slow and Overheating, High kernel_task CPU Usage The results are below.
    System Version: OS X 10.9.4 (13E28) 
    Kernel Version: Darwin 13.3.0
    Boot Mode: Normal
    Model: MacBookPro11,1
    USB
       Dell USB Optical Mouse (Dell Inc.)
    System diagnostics
       2014-09-20 PluginProcess spin
       2014-09-20 PluginProcess spin
       2014-09-20 iTunes spin
       2014-09-22 PluginProcess spin
       2014-09-22 PluginProcess spin
       2014-09-25 PluginProcess spin
       2014-09-26 Google Chrome spin
       2014-09-26 Google Chrome spin
    User diagnostics
       2014-09-20 CalendarAgent crash
       2014-09-22 DashboardClient crash
    Kernel messages
       Sep 26 17:21:23   IOPPF: Sent gpu-internal-plimit-notification last value 4 (rounded time weighted average 4)
       Sep 26 17:21:35   IOPPF: Sent cpu-plimit-notification last value 5 (rounded time weighted average 5)
       Sep 26 17:21:35   IOPPF: Sent gpu-internal-single-slice-plimit-notification last value 3 (rounded time weighted average 3)
       Sep 26 17:21:35   IOPPF: Sent gpu-internal-plimit-notification last value 3 (rounded time weighted average 3)
       Sep 26 17:21:47   IOPPF: Sent cpu-plimit-notification last value 8 (rounded time weighted average 7)
       Sep 26 17:21:47   IOPPF: Sent gpu-internal-single-slice-plimit-notification last value 3 (rounded time weighted average 3)
       Sep 26 17:21:47   IOPPF: Sent gpu-internal-plimit-notification last value 3 (rounded time weighted average 3)
       Sep 26 17:22:01   IOPPF: Sent cpu-plimit-notification last value 5 (rounded time weighted average 7)
       Sep 26 17:22:01   IOPPF: Sent gpu-internal-single-slice-plimit-notification last value 2 (rounded time weighted average 3)
       Sep 26 17:22:01   IOPPF: Sent gpu-internal-plimit-notification last value 2 (rounded time weighted average 3)
       Sep 26 17:22:21   IOPPF: Sent cpu-plimit-notification last value 10 (rounded time weighted average 9)
       Sep 26 17:22:21   IOPPF: Sent gpu-internal-single-slice-plimit-notification last value 4 (rounded time weighted average 3)
       Sep 26 17:22:21   IOPPF: Sent gpu-internal-plimit-notification last value 4 (rounded time weighted average 3)
       Sep 26 17:22:34   IOPPF: Sent cpu-plimit-notification last value 8 (rounded time weighted average 8)
       Sep 26 17:22:34   IOPPF: Sent gpu-internal-single-slice-plimit-notification last value 5 (rounded time weighted average 5)
       Sep 26 17:22:34   IOPPF: Sent gpu-internal-plimit-notification last value 5 (rounded time weighted average 5)
       Sep 26 17:22:47   IOPPF: Sent cpu-plimit-notification last value 6 (rounded time weighted average 6)
       Sep 26 17:22:47   IOPPF: Sent gpu-internal-single-slice-plimit-notification last value 5 (rounded time weighted average 5)
       Sep 26 17:22:47   IOPPF: Sent gpu-internal-plimit-notification last value 5 (rounded time weighted average 5)
       Sep 26 17:23:01   IOPPF: Sent cpu-plimit-notification last value 7 (rounded time weighted average 7)
       Sep 26 17:23:01   IOPPF: Sent gpu-internal-single-slice-plimit-notification last value 5 (rounded time weighted average 5)
       Sep 26 17:23:01   IOPPF: Sent gpu-internal-plimit-notification last value 5 (rounded time weighted average 5)
       Sep 26 17:23:12   IOPPF: Sent cpu-plimit-notification last value 6 (rounded time weighted average 6)
       Sep 26 17:23:12   IOPPF: Sent gpu-internal-single-slice-plimit-notification last value 5 (rounded time weighted average 5)
       Sep 26 17:23:12   IOPPF: Sent gpu-internal-plimit-notification last value 5 (rounded time weighted average 5)
    Extrinsic daemons
       com.adobe.fpsaud
    Extrinsic agents
       com.google.keystone.user.agent
    launchd items
       /Library/LaunchDaemons/com.adobe.fpsaud.plist
        (com.adobe.fpsaud)
       Library/LaunchAgents/com.apple.FolderActions.enabled.plist
        (com.apple.FolderActions.enabled)
       Library/LaunchAgents/com.apple.FolderActions.folders.plist
        (com.apple.FolderActions.folders)
       Library/LaunchAgents/com.google.keystone.agent.plist
        (com.google.keystone.user.agent)
    Startup items
       /Library/StartupItems/TuxeraNTFSUnmountHelper/TuxeraNTFSUnmountHelper
    Extrinsic loadable bundles
       /Library/Internet Plug-Ins/Flash Player.plugin
        (com.macromedia.Flash Player.plugin)
       /Library/PreferencePanes/Flash Player.prefPane
        (com.adobe.flashplayerpreferences)
       /Library/PreferencePanes/Tuxera NTFS.prefPane
        (com.tuxera.ntfs.mac.prefpane)
       Library/Address Book Plug-Ins/SkypeABDialer.bundle
        (com.skype.skypeabdialer)
       Library/Address Book Plug-Ins/SkypeABSMS.bundle
        (com.skype.skypeabsms)
    User login items
       iTunesHelper
       Google Chrome
    Restricted user files: 45
    Elapsed time (s): 75

  • Regarding Inheritance (and super)

    Let:
    class A { ... }
    class B extend A { ... }
    From within class B, the super keyword allows me to access the visible methods and variables in A. However, super does not seem to be a reference; that is, while I can legally do
    Object a = this;
    I cannot do
    Object a = super;
    But, I would really like to be able to do this. That is, from the context of B, I would like to obtain a reference to the supertype, such that (ref instanceof A == true), (ref instanceof B == false). In short, I want a 'super' that behaves exactly like a 'this'. The ultimate goal of this is to pass a reference to the supertype into a method (say, a static method). Is this at all possible in Java? My only idea at the moment is to create a new instance of the superclass and set all of its state correctly, pass this instance into the desired method, then reestablish state once the method returns. Sounds painful and error-prone, though.
    Thanks for any ideas.

    sancho_panza wrote:
    ejp wrote:
    Why? Any method will already accept a reference to B as a reference to A, if B extends A.I am performing a transformation on Java classes that involves turning instance methods into static methods. It is not problem to pass a reference to 'this' into such a static method. But what if the instance method invokes super? Super cannot be invoked statically; thus I would like to pass 'super' into this method, which is impossible. I suppose creating a temporary container for the superclass is the easiest way (though it seems like this should be a lot easier).To do this you need to transform the Java static inheritance to a dynamic equivalent. This is quite straightforward. Say you have,
    class A {}
    class B extends A {}Now the A class is split into an interface A and an implementation class A_IMPL. You get this,
    interface A {}
    class A_IMPL implements A {}
    class B implements A {
       private A a_ref = new A_IMPL(); // object holding implementation of A
       // The implementation of inherited A methods is delegated to the A_IMPL object
    }In the above a_ref is the super reference you desired.

  • Super wide Zoom and Super telephoto Zoom for 6D without vignette effect

    I have a Canon 6D Full frame camera. And I just bought the 24- 70 L II USM lens. 
    To complete my kit, I'm looking to invest a super wide zoom ( as low as 10 going uptil 22/ 24 mm) and super telephoto above 70 mm going uptil 300 mm (both preferably L series USM, with wide openings along the full focal range) 
    Before I make the purchases I want to be sure which lenses do NOT have the problem of vignetting AT ALL. 
    I am okay with barell distorition on the wide. But vignetting is something I want to totally avoid. 
    All you experienced folks out there, please guide me. Would also appreciate any links to lists that enumerate the same. 
    Alternatively I am also open to using prime lenses, but they are really low on my preference. 
    Appreciate your time and response. 

    In most software that allows you to add in some vignetting, you can also subtract it.  
    Some apps have lens profiles so they know how much vignetting occurs with that specific lens and at various focal lengths.
    But you can also do this manually.  In astro imaging we calls these images "flats".  The purpose of a "flat" is to determine how much vignetting there is in an image so that we can correctly adjust for it using a program like Photoshop.  
    To create a "flat" you would cover the lens with a piece of white translucent fabric.  Put some light on the fabric so that the fabric itself is evenly lit.  This means the view through the camera is basically just an all-white field with no contrast or features.   Then take a photo (it doesn't matter that the camera cannot focus on the fabric.)
    What you'll get is an all-white image typically brighter in center and dimmer toward the edges but the image can be used to measure the lens' specific vignetting (and in the case of a zoom that level of vignetting would vary by focal length.)  The image can be used as a reference image with software to completely eliminate vignetting.
    A photographer would normally not go to such extremes to get a perfectly flat field (lighting wise), but astro-imagers have to do this as a matter of routine.
    Tim Campbell
    5D II, 5D III, 60Da

  • Why doesn't SAP use SAPUI5 for this and that

    This is my personal opinion about this topic! Again and again I stumble about this and now I want to share some of my thoughts about this topic. I want to share this from a point of view, when I was not a SAP Employee - I worked at a SAP Partner company - because this best reflects the view from the outside.
    1. SAP "wants" us to use SAPUI5
    I don't think that "wants" is the right word - the right word is offers! In terms of: hey now even included in your license and open sourced (because you wanted it so). Look - we build sooo many Fiori apps with it - and put in some great enterprise features (right to left, accessibility, translation, ...) and it is responsive. So if you want to build Fiori-like "apps" - there you go - this is your technology to go! This is what I understood.
    I was very very very happy that it was build with open standards. But the main point for me another thing - (because I worked with Sybase Unwired Platform and SAP Mobile Platform) OMG an open data protocol!!! OData FTW! I could use ANY front-end technology and consume SAP data - the protocol is REST based - a dream came true. And so I did - yes I played around with Sencha Touch and OData, I used data.js and used it in a standard HTML5 application. We played around with an iOS application we already had and consumed the data. I feed the data into d3.js. I prototyped around with SAPUI5 and I have build apps with it. Brilliant, so I could choose whatever UI technology I wanted.
    I always had the feeling, that SAPUI5 was meant for B2E applications - and building many of that - and they should look and feel the same and I can theme the apps. I can use it when I want to make my applications SAP like - so that the user thinks the apps are all the same and everything fits nicely into the Fiori launchpad - great if you want to build partner apps. In my ex company we won a SAP Pinnacle Award - for a native iOS app, no SAPUI5 in sight - but we have received an award, so SAP did not "want us" to use SAPUI5 ;-)
    2. Is it the right UI technology for everything?
    At my ex-company I was dealing with mobile applications and web apps. I always knew that I get the best user experience when I write a real native application and if you want it to look like in a very specific way with awesome UI --> you would not do it with a write-once-run-everywhere HTML5 super-styled wrapped (phone gap/cordova) app - you would write the apps for the specific platform and it should feel like it was written for the platform. SAP offered us the SAP Fiori Client that I could enhance the user experience for the Fiori apps, but I was never told to use SAPUI5 it for everything.
    The same discussion goes on with: why was the new SAP website not build with SAPUI5, or the UX Explorer (eat your own dog food), or a useful internal app - why Angular, or the other way around why do we even use SAPUI5 and not Angular JS itself. Back to the past - SAP did never tell me to build a website with it, or to build something tiny and small with it (a widget) - or to enhance parts of a website with it - or to build something super-specific with it.
    And yes maybe the UI in a mobile app was not SAPUI5 but do you know if it uses Gateway with OData or the SAP Mobile Platform, was the API managed with Apigee, was HCI involved in getting the data from different sources, was it maybe wrapped with SAP Mobile Secure, did it maybe use a HANA backend or some of its features (predictions, text analytics, ...) - are some backend parts maybe hosted on HCP - who knows? So yeah, maybe other SAP technology was involved which you don't see, but in the end it made your life simpler.
    Instead of arguing around why this and that was used for this and that - can we save our energy and instead look at the result - which is all what counts - that it was the right UI technology with the right user interface which makes the user happy? I stated something like - does Google use AngularJS for everything? Nope. They offer us something great we can use. Right, maybe AngularJS is not as important for Google like SAPUI5 is for us. But we have something with which we can build our day-to-day business apps with and we do so.
    3. We missed great opportunity in not using SAPUI5 for this and that
    Let's think about how projects are going: you want something, you look at the costs, you choose most efficient option. Yes this could mean reusing an existing native application which was written long ago and you pimped it up. Or you had outsourced it to a company which wrote a similar app. Or you bought the source code. Or you have some cheap internal staff which could do it (students, trainee), or you could outsource it cheaply. Or all you have is people with experience in this and that technology. Or it must look in a very very specific way (because marketing says so) and you go native. Or it maybe should even differentiate itself and should look NOT like a Fiori app. And no - I don't think - this is my employees view - we are not for example an event app producer. We normally build business applications. And I don't think that we can write an app from scratch "just" for an event in a certain technology. Yes it would be nice if this and that would use SAPUI5, I think if it would be possible in terms of time and costs and UI wishes and hundreds of other factors we would do it with SAPUI5.
    Working at the partner SAP showed me over 50 Fiori apps, now hundreds of Fiori apps are released. SAP now showed that SAPUI5 is going big with S/4HANA. We have seen the Simple Finance solution. I was walking around at the CeBIT this year and I was impressed myself which cool apps and screens have been shown with SAPUI5. I used the SAPUI5 app on a Samsung Smart Watch myself. The SAP Web IDE itself is built with SAPUI5 in its heart. I don't need any other "proves" that SAPUI5 is great. I have seen great use cases for it, but I also know myself when I would use other stuff.
    4. My conclusion
    There is never every anything which can cover all different use cases. One-size-fits-all clothes also does not fit for everyone even if it says so. If someone creates something great don't judge it by the UI technology. Judge it by the experience and the value it creates. There are reasons why this and that was chosen. Use what fits your needs best with your requirements. Make the end user happy!

    Hey Denise,
    Thanks for pulling this discussion into SCN. Makes it much easier to discuss compared to Twitter. But I also have to apologize in the beginning that my answer now exceeds 140 characters by 50 times.
    Let me share my thoughts and personal opinion as well. I will try to look at it from a strategic point of view, as you – as the technical UI5 expert - have already covered the technical perspective.
    SAP recommends using SAPUI5 where it fits to customers’ requirements
    Let me begin with a clear statement from my perspective: It makes no sense that SAP takes customer decisions.
    Of course, customers expect SAP to help them with their strategies and decisions and of course we are helping. But at the end, the decisions have to be taken by the customer who needs to take the specific conditions of the company into account. The most important condition in the context of UX is the end user. But we shouldn't forget the business strategy as the most important influence factor. I’m not saying that technical decisions are completely unimportant, but I would like to point out that other things are more important for a company.
    As a result, it wouldn't make a lot of sense if SAP would just want every customer to use SAPUI5. To me, customers need recommendations leading to solutions that satisfy their needs and requirements.
    There is not that one UI technology that serves all needs
    This headline might be a challenging statement and I can already imagine reactions to it. But in fact I can confirm this sentence easily. You always have to combine different technologies. Some of them are from SAP others not. The selection and combination of these technologies is different from customer to customer because the requirements are different. There are still reasons to use Web Dynpro ABAP and I’m still recommending SAP NetWeaver Business Client, POWL (Power Lists), WDA Chips, FPM based on the given environment of the customer. And obviously there are also reasons for UI5.
    SAP already proves the usage of SAPUI5
    In general, I see two different use cases here: Developing custom applications vs. adopting applications from SAP.
    In the one case, customers want recommendations on development environments and UI technologies that consider their development requirements and existing conditions (e.g. existing skills, given implementations). SAPUI5 is a great UI technology and there are some special aspects that make the decision obviously easy. If I want to create simple business applications that can be connected with my SAP system easily, especially in combination under responsive conditions on multiple devices and targeted for casual and/or occasional users UI5 might be the right choice for many.  Exactly this pattern is what many customers are searching for these days. So, the recommendation for UI5 comes quite often.
    Whether or not SAP proves the usage of SAPUI5 in their own world is to me more connected to the use case where customers want to adopt SAP applications. And in deed, SAP is using SAPUI5. There are hundreds of SAP Fiori applications that have been built with SAPUI5 and there have been a lot of other applications developed using SAPUI5, too. And again, there is a huge need for applications for casual and/or occasional users, so that’s a big reason for SAP to create such applications.
    Websites vs. Business Applications
    This discussion was triggered by some statements in twitter, that SAP sites such as sap.com, SAP UX Explorer or the latest mobile conference app are not developed using UI5. Actually I see these to be websites but not business applications. I have never told a customer to build a website in UI5 and I would continue to do so.
    Maybe we need to discuss the difference between a website and a business application. I guess it is not easy to find a common understanding here, as the borderlines between several worlds have disappeared in the last years.
    Some years ago it was more or less easy to differ between:
    Native desktop applications running on a specific desktop OS
    Native mobile applications running on a specific mobile OS
    Browser-based applications running in specific browsers
    Websites, basically running on many browsers
    In the first three categories we saw business applications. 1 and 2 were selected especially when specific functions of the device and OS where needed to be accessed (for example the camera of the mobile device, the fast rendering capability of the desktop). 3 was also used for business applications but in most cases on desktop browsers.
    Today, one can develop browser-based applications that look like native applications and even can access the devices like native applications. Responsive design breaks the borderlines even more. Now, browser-based content can be rendered perfectly on a desktop browser as well as on a mobile phone and a user might even not be able to judge whether it was originally intended to be developed for the one or the other.
    So maybe there is no big difference anymore between websites and browser-based applications. But there is still a difference between browser-based applications and browser-based business applications, where additional requirements such as integration into business systems are drivers. Here I see SAPUI5 as a very cool UI technology.
    That’s just my 2 (personal) cents,
    JJ

Maybe you are looking for

  • Bill To Account is missing on Service Contract line after customer merge

    Hi This probelem relates to service contracts that have customers that were merged. After the existing customer (on the contract) was merged with a new customer the contract address are updated with the the new Customer and Addresses (this is all sta

  • Writing query to Oracle DB with DATE field in it.

    When I try to execute the following query on Oracle DB I get an exception. I know that the problem is with Date representation on the query string. Please, if anyone knows how to make it work help me. query = "INSERT INTO MYTABLE (NAME , BIRTHDAY ) V

  • Conditional rendering of JSF page depending on Navigation case

    Hi Can we conditionally render the JSF page depending the navigation case, which brought us in that page.. Lets say that a page A does both Edit and create operations , we have two navigation cases "edit" and "create" directing to this page from main

  • Iphone crashes itunes

    After I updated my iphone 5s to ios 8.2, itunes 12.0.1.26 crashes when I attach the iphone to the PC (WIN7)

  • Group Policy not populating IE11's compatibility sites.

    We normally do not allow IE updates, but we got a pallet of new computers with IE11 preinstalled on them from Dell.  I figured now is a good time to get this working in our environment. The issue is that under our group policy settings are not puttin