Over the past few months the Errai team has been busy at work preparing the next version of the Errai Framework, Errai 2.0.
It is a significant update that leverages all the best ideas that Errai 1.x had, while retiring some ideas and approaches that didn’t quite work out the way we’d planned.
Errai has developed a philosophy about rich application development in the browser. That philosophy might be summed up as: Your Application. Everywhere. Literally.
However, there’s been some people who’ve criticized this methodology. I’d like to respond to some of this now.
We have eschewed much of the conventional wisdom about how you should architect a web application by focusing on not just rich user experience, but rich developer experience. We believe that the latter ultimately leads to a better former.
We reject the need for polyglot applications as necessary -- the idea that the best way to build an application is to arrange a constellation of disparate languages and frameworks into a coherent single application is simply the “best approach” is something we don’t agree with.
You’re building your application in Java on the server. Why do you build the other part of it in JavaScript? The common response to this is, well, “that’s just the best way to do it”. But is it?
We don’t think it is. At the end of the day, the whole HTML5 group of technologies is just a specification that tells us how to make a browser do things.
Whether we write HTML and JavaScript directly or not, whether it’s translated from CoffeeScript, Dart, or in the case of Errai -- Java -- is immaterial. And it’s wrong to even suggest that Errai, with its use of the GWT compiler, sandboxes you into a world that proscribes any of these things. It doesn’t.
With Errai, your application can contain no JavaScript, or be almost all JavaScript.
The important part is how Errai helps you share not just model between the client and the server, but functionality. Without the need to write it twice, or write marshalling code, or worry about setting up your own comet or websockets. The communication model is central to the application development model.
Being able to share functionality, using the same code, with the same functionality is a good thing. You get all the benefits of type checking, code reuse, and productivity.
The implication that some make that, this sort of thing “hides the true nature of the web” is always one that puzzled me among those who advocate for a pure JavaScript approach.
I’ve always been of the opinion that such essentialist notions of pretty much anything are probably notions you should be suspicious of. I mean, the Java compiler hides bytecode. The C++ and C that the JVM is written in hides machine code.
It goes without saying that JavaScript itself is hiding all of this.
Moreover, JavaScript isn’t a terribly good language for large applications. And it surprises me that some of the very same people who trumpet the advantages of Java over other languages, will so willingly jettison their arguments in favor Java when it comes to JavaScript. There’s no immutability, side effects are hard to control, the object model is a mess, there’s nothing resembling a threading model, etc.
To which, counterarguments often include techniques about how JavaScript prototypes can be used in ways that simulate classes and inheritance, unit testing can guard against unintended side effects in large codebase, concurrency concerns do not apply in the world of the future, etc -- as if any of this somehow redeems JavaScript in any way in the eyes of someone who buys into these notions as being intrinsically good parts of a language.
JavaScript isn’t a bad language. Don’t get me wrong. It is mature and well understood. It does what its supposed to do. But the problem is, it was never designed with large application development in mind. Its designers did not envision a world where there’d be codebases of 100,000 lines of JavaScript code.
Yet, this is the world we’re quickly moving into. And the reality is, that technologies like GWT are extremely good solutions to manage these sorts of projects.
Over the next few weeks we’re going to show you why. Watch this space.
Totally agree! Well done!
ReplyDelete> The important part is how Errai helps you share not just model between the client and the server, but functionality. Without the need to write it twice, or write marshalling code, or worry about setting up your own comet or websockets. The communication model is central to the application development model.
ReplyDeleteThat argument can be reversed by saying "just use javascript on the server". Note that running javascript on the server is a natural thing. You don't have to compile javascript to java to run it on the server.
> The implication that some make that, this sort of thing “hides the true nature of the web” is always one that puzzled me among those who advocate for a pure JavaScript approach.
It's not about hiding the nature of the web, it's about whether you trust X -> HTML5/JS compilers to output something useful.
If you don't care about the generated markup, then by all means use the tools. If you care about semantic accessible markup then you use HTML5 and JavaScript.
If your platform can actually write semantic and accessible markup then I'll be greatly suprised and interested.
It can. Look up UiBinder.
ReplyDeleteHopefully Errai 2 will leverage the GWT RequestFactory stuff to allow JPA Entities to be sent back and forth complete with validation annotations etc... Or maybe this is already possible and I missed it? Complete with data-binding. Ah, I can dream...
ReplyDeleteOur plan for JPA is a little bit different than the approach taken by the GWT team with RequestFactory. You will start hearing more about that soon. And it's really, really cool.
ReplyDeleteI am exicited about HTML5 but Flash can do all these things youtube html5 player
ReplyDeletecan do in a better way.Creating slideshow in HTML5! wow! what, flash did that 10 years ago! It is very easy to create a flash animation, for example a ball bouncing in flash professional in less than am minute. Javascript is a mess when compared to AS3.
Responsive HTML5 Web design has the solution. The conception behind the amalgam of JavaScript, CSS and CSS3 is to build the flowing website design which is capable to contract, expand, remove or rearrange with user's screen size accordingly and become accessible on all internet devices.
ReplyDeleteInterestingly some of these keratin proteins contain a high level of sulphur. (Some hair loss herbal remedies on the keranique reviews market use sulphur containing amino acids to provide an underlying matrix for healthy hair growth. See resource box below for NewHair Biofactors)
ReplyDeletehttps://goldencondor.org/keranique-reviews/
It is really a great and useful piece of info. I’m glad that you shared this helpful info with us. Please keep us informed like this.
ReplyDeleteMobile App Development Company in Dubai
Android App Development Company in Dubai
Mobile App Development Company in UAE
I'm very happy being Herpes free now. It was a sad incident that was announced to me after the check up in the hospital and I was diagnosed of HSV 2. I thank God now for using Dr.odey Abang to cure my virus. I'm not ashamed to say this because no virus of such can be detected in me. I'm Charlotte from Columbia. I thought about it many Times when I heard about this Herbal cures for Herpes. I was really happy when I came across blogs of comments of Doctors who run cures sicknesses and was comfortable to try Dr. Abang from patients testimony I came across here on my online page. I knew now they are real Africa herbalists who run cures for Herpes. There's every opportunity to be cure with natural herbs, because all medical prescriptions are derived from herbs and roots. Its really hard time living with Herpes on drugs which can't get you cure. I tried this and I can boost of myself now as a woman. I need to be loved not to lost, get your instant cure to all sicknesses from Dr, Odey Abang.
ReplyDeleteHe cures HSV,HPV,Cancer,low spam count and much more from the evidence I saw 💯 % sure no site effects with active immune booster
Email him for you cure
Odeyabangherbalhome@gmail.com
WhatsApp/calls
+2349015049094
ارقام صيانة توشيبا
ReplyDeleteارقام صيانة سيمنس
ارقام صيانة فريجيدير
ارقام صيانة سوني
ارقام صيانة يونيفرسال
ارقام صيانة كاريير
ارقام صيانة سامسونج
ارقام صيانة بوش
ReplyDeleteارقام صيانة شارب
ارقام صيانة دايو
ارقام صيانة يونيون اير
ارقام صيانة تكنو جاز
ارقام صيانة وايت ويل
ارقام صيانة وايت بوينت
ReplyDeleteارقام صيانة زانوسي
ارقام صيانة كريازي
ارقام صيانة هايسنس
ارقام صيانة كلفينيتور
ارقام صيانة الكتروستار
ارقام صيانة جاك
ارقام صيانة الاسكا
ارقام صيانة ال جي
ارقام صيانة اندست
ارقام صيانة وستنجهاوس
ارقام صيانة بوتاجاز توشيبا
ReplyDeleteارقام صيانة بوتاجاز سيمنس
ارقام صيانة بوتاجاز فريجيدير
ارقام صيانة بوتاجاز يونيفرسال
ارقام صيانة بوتاجاز سامسونج
ارقام صيانة بوتاجاز بوش
ارقام صيانة بوتاجاز شارب
ReplyDeleteارقام صيانة بوتاجاز دايو
ارقام صيانة بوتاجاز اندست
ارقام صيانة بوتاجاز يونيون اير
ارقام صيانة بوتاجاز تكنوجاز
ارقام صيانة بوتاجاز وستنجهاوس
ارقام صيانة بوتاجاز وايت ويل
ارقام صيانة بوتاجاز وايت بوينت
ReplyDeleteارقام صيانة بوتاجازات زانوسي
ارقام صيانة بوتاجازات كريازي
ارقام صيانة بوتاجازات هايسنس
ارقام صيانة بوتاجاز كلفينيتور
ارقام صيانة بوتاجاز الكتروستار
ارقام صيانة بوتاجازات جاك
ارقام صيانة بوتاجاز ال جي
ارقام توكيل ثلاجات توشيبا
ReplyDeleteارقام توكيل ثلاجات سيمنس
ارقام توكيل ثلاجات فريجيدير
ارقام توكيل ثلاجات سوني
ارقام توكيل ثلاجات يونيفرسال
ارقام توكيل ثلاجات سامسونج
ارقام توكيل ثلاجات بوش
ReplyDeleteارقام توكيل ثلاجات شارب
ارقام توكيل ثلاجات دايو
ارقام توكيل ثلاجات اندست
ارقام توكيل ثلاجات يونيون اير
ارقام توكيل ثلاجات وستنجهاوس
ارقام توكيل ثلاجات وايت ويل
ارقام توكيل ثلاجات وايت بوينت
ReplyDeleteارقام توكيل ثلاجات زانوسي
ارقام توكيل ثلاجات كريازي
ارقام توكيل ثلاجات هايسنس
ارقام توكيل ثلاجات كلفينيتور
ارقام توكيل ثلاجات الكتروستار
ارقام توكيل ثلاجات جاك
ارقام توكيل ثلاجات ال جي
ارقام توكيل ثلاجات الاسكا
ارقام صيانة ديب فريزر توشيبا
ReplyDeleteارقام صيانة ديب فريزر سيمنس
ارقام صيانة ديب فريزر فريجيدير
ارقام صيانة ديب فريزر سوني
ارقام صيانة ديب فريزر يونيفرسال
ارقام صيانة ديب فريزر سامسونج
ارقام صيانة ديب فريزر شارب
ReplyDeleteارقام صيانة ديب فريزر دايو
ارقام صيانة ديب فريزر اندست
ارقام صيانة ديب فريزر يونيون اير
ارقام صيانة ديب فريزر وستنجهاوس
ارقام صيانة ديب فريزر وايت ويل
ارقام صيانة ديب فريزر وايت بوينت
ارقام صيانة ديب فريزر زانوسي
ReplyDeleteارقام صيانة ديب فريزر كريازي
ارقام صيانة ديب فريزر هايسنس
ارقام صيانة ديب فريزر كلفينيتور
ارقام صيانة ديب فريزر الكتروستار
ارقام صيانة ديب فريزر جاك
ارقام صيانة ديب فريزر ال جي
ارقام صيانة ديب فريزر الاسكا
ارقام صيانة سخانات توشيبا
ReplyDeleteارقام صيانة سخانات سيمنس
ارقام صيانة سخانات يونيفرسال
ارقام صيانة سخانات سامسونج
ارقام صيانة سخانات بوش
ارقام صيانة سخانات دايو
ارقام صيانة سخانات اندست
ReplyDeleteارقام صيانة سخانات يونيون اير
ارقام صيانة سخانات تكنوجاز
ارقام صيانة سخانات وايت ويل
ارقام صيانة سخانات زانوسي
ارقام صيانة سخانات كريازي
ارقام صيانة سخانات هايسنس
ارقام صيانة سخانات جاك
ارقام صيانة سخانات ال جي
ارقام صيانة شاشات توشيبا
ReplyDeleteارقام صيانة شاشات سوني
ارقام صيانة شاشات يونيفرسال
ارقام صيانة شاشات سامسونج
ارقام صيانة شاشات شارب
ارقام صيانة شاشات دايو
ReplyDeleteارقام صيانة شاشات يونيون اير
ارقام صيانة شاشات هايسنس
ارقام صيانة شاشات جاك
ارقام صيانة شاشات ال جي
ارقام صيانة شاشات توشيبا
ReplyDeleteارقام صيانة شاشات سوني
ارقام صيانة شاشات يونيفرسال
ارقام صيانة شاشات سامسونج
ارقام صيانة شاشات شارب
ارقام صيانة شاشات دايو
ReplyDeleteارقام صيانة شاشات يونيون اير
ارقام صيانة شاشات هايسنس
ارقام صيانة شاشات جاك
ارقام صيانة شاشات ال جي
ارقام صيانة غسلات توشيبا
ReplyDeleteارقام صيانة غسالات سيمنس
ارقام صيانة غسالات فريجيدير
ارقام صيانة غسالات سوني
ارقام صيانة غسالات يونيفرسال
ارقام صيانة غسالات سامسونج
ارقام صيانة غسالات بوش
ReplyDeleteارقام صيانة غسالات شارب
ارقام صيانة غسالات دايو
ارقام صيانة غسالات اندست
ارقام صيانة غسالات يونيون اير
ارقام صيانة غسالات وستنجهاوس
ارقام صيانة غسالات وايت ويل
ارقام صيانة غسالات وايت بوينت
ReplyDeleteارقام صيانة غسالات زانوسي
ارقام صيانة غسالات كريازي
ارقام صيانة غسالات هايسنس
ارقام صيانة غسالات كلفينيتور
ارقام صيانة غسالات الكتروستار
ارقام صيانة غسالات جاك
ارقام صيانة غسالات ال جي
ارقام صيانة ميكروويف توشيبا
ReplyDeleteارقام صيانة ميكروويف سيمنس
ارقام صيانة ميكروويف فريجيدير
ارقام صيانة ميكروويف سوني
ارقام صيانة ميكروويف يونيفرسال
ارقام صيانة ميكروويف سامسونج
ارقام صيانة ميكروويف بوش
ReplyDeleteارقام صيانة ميكروويف شارب
ارقام صيانة ميكروويف دايو
ارقام صيانة ميكروويف اندست
ارقام صيانة ميكروويف يونيون اير
ارقام صيانة ميكروويف وستنجهاوس
ارقام صيانة ميكروويف وايت ويل
ReplyDeleteارقام صيانة ميكروويف وايت بوينت
ارقام صيانة ميكروويف زانوسي
ارقام صيانة ميكروويف هايسنس
ارقام صيانة ميكروويف الكتروستار
ارقام صيانة ميكروويف جاك
ارقام صيانة ميكروويف ال جي
كريازي
ReplyDeleteال جي
توشيبا
يونيون اير
هايسنس
جولدي
ReplyDeleteسيمنس
فريجيدير
باناسونيك
هيتاشي
ReplyDeleteبيكو
الكتروستار
اريستون
سوني
جالانز
ReplyDeleteالاسكا
البا
هوفر
الكترولوكس
سيتال
ReplyDeleteسميج
ايه اي جي
جاك
سامسونج
بوش
ReplyDeleteاندست
دايو
جنرال اليكتريك
ReplyDeleteكلفنييوتر
ويرلبول
زانوسي
هاير
ReplyDeleteميلا
طومسون
وايت بوينت
وايت ويل
ويستنجهاوس
كاريير